如何制作数字时钟

2011-07-13 17:14:48来源: 互联网
如何制作数字时钟

花79美元让一只LED亮起来似乎有些奢侈。你肯定更想用BASIC Stamp制作出更实用的东西。花上100多美元,你就可以制作一台精致的数字时钟!这好像也过于奢侈,但以后做其他各种装置时,你会发现这些元件都可以重复利用。

我们将使用BASIC Stamp的输入输出引脚来显示数字。在数字时钟部分,我们了解了如何连接7447芯片的7段显示发光二极管。7447芯片可以和BASIC Stamp协同工作。将BASIC Stamp的四根输入输出引脚直接与7447相连,就可以很容易的显示0到9的数字。BS-1版本的Stamp有8根输入输出引脚,这样可以直接驱动两片7447芯片。

就一个时钟而言,需要至少显示4个数字。为了用8个输入输出引脚驱动4片7447,我们需要更有创造性一些。下图给出了一种解决办法:

用8个输入输出引脚驱动4片7447的解决办法

上图中,8根输入输出引脚从左边引入。该方法用4个输入输出引脚驱动全部的4片7447。剩余的4个引脚,用来按顺序激活4片7447(芯片上的“E”表示“Enable 使能”——7447芯片上的5号引脚)。要让这个系统工作,Stamp的程序首先通过4根数据线发出第一个数字,并且把第一片7447的E引脚与第一根控制线置位,从而把7447激活。然后发出第二个数字,激活第二片7447,就这样按顺序不停的反复激活四片7447。 实际上,稍微改动一下连线,一片7447就可以实现这些功能。使用74154多路转换芯片以及一些驱动,就可以用这种方法驱动多达16个数字。

这就是实际中控制发光二极管显示屏的标准方法。如果你有一个老式的发光二极管显示的计算器,边晃动边观察显示屏。你会发现同一时刻只有一个数字被点亮。这种技术被称为多路复用显示。

这种技术在时钟和计算器上有很好的应用,但是存在两个重要问题:

  • 发光二极管耗电量大。
  • 7 段显示发光二极管只能显示数字。

另一方法是使用液晶显示屏。 液晶显示屏应用广泛,而且与Stamp连接方便。 例如,下图所示的两行字母数字式的液晶显示屏在Jameco公司(部件号150990)和Parallax公司(部件号27910)都可以买到。 此处展示的是一个典型的液晶显示屏,将液晶显示屏插在面包板上,便于和其他芯片连接:

个典型的液晶显示屏,将液晶显示屏插在面包板上,便于和其他芯片连接

这类液晶显示屏的优点:

  • 一根引脚就可以驱动显示。 显示屏包含允许Stamp以串行方式与自己通信的逻辑电路,因此只需一根引脚。 此外,BASIC Stamp中的SEROUT命令可以十分容易的实现串口通信,控制显示屏十分简单。
  • 液晶显示屏可以显示字母数字文本,包括: 字母和数字,甚至可以是自定义字符。
  • 液晶显示屏耗电量极低——只需3毫安的电流。

唯一美中不足就是,这样的一个液晶显示屏要花费59美元。显然,没有人会在烤箱上装这样的显示屏。 而设计烤箱时,一般会先用这样的显示屏作样品试验,而后用自己设计的芯片和软件驱动便宜的显示屏,用于最终的产品。

驱动这样的显示屏,你只需提供5伏以上的电源和地线(Stamp的9伏电池满足这两个条件),然后把Stamp的一个输入输出引脚与显示输入线连接。 要将Stamp的输入输出引脚连接到像液晶显示屏这样的设备,我能找到的最轻松的方法,是使用Jameco公司生产的连线工具(部件号34577)和30-gauge规格的连接线(部件号22541)。这样不需要焊接,并且连接结实、可靠。

下面的程序中,BASIC Stamp完成了一个时钟的功能,通过液晶显示屏输出时间(假定液晶显示屏接在Stamp输入输出0号引脚上):

 
pause 1000 '等待液晶显示屏启动
serout 0, n2400, (254,1) '清除显示
serout 0, n2400, ("time:") 显示屏上 显示“time:”
'在加载程序之前进行预设
b0 = 0 '秒数
b1 = 27 '分钟数
b2 = 6 '小时数

again:
b0 = b0 + 1 '秒数加1
if b0 < 60 then minutes
b0 = 0 '如果秒数等于60
b1 = b1 + 1 '则分钟数加1
minutes:
if b1 < 60 then hours
b1 = 0 '如果分钟数等于 60
b2 = b2 + 1 '则小时数加1
hours:
if b2 < 13 then show
b2 = 1 '如果小时数等于13,则重置为1

show:
serout 0, n2400, (254, 135) '在显示屏上定位光标,
'然后显示时间
serout 0, n2400, (#b2, ":", #b1, ":", #b0, " ")
pause 950 '暂停950毫秒
goto again '重复

这个程序中,通过SEROUT命令向液晶显示屏发送数据。 序列 (254, 1) 用于清空液晶显示屏,其中254是转义字符,1是清空屏幕的指令。 序列(254, 135)用于定位光标。其他两个SEROUT指令只是将文本字符串发送到显示屏。

这种方法将得到一个比较精确的时钟。通过调整PAUSE语句,可以将每天的误差控制在数秒之内。显然,真正的时钟需要一到两个按钮来校正时间—— 在这个程序中,你需要在向 Stamp 载入程序前,预先设置时间。

此方法简单、有效,但并不十分准确。如果你需要提高计时精度,在Stamp上连接实时时钟芯片是一种好的选择。这样,每过一秒左右就会从芯片读取时间并显示出来。实时时钟芯片中使用石英晶体获得极佳的精确度。 时钟芯片通常还包含日期信息,并可以自动进行闰年修正。

要让实时时钟和Stamp实现对接,一个简单的办法是使用称为Pocket Watch B的元件。


Pocket Watch B模块
Pocket Watch B在Jameco公司(部件号145630)和Parallax公司(部件号 27962)都可以买到。该元件只有一枚硬币大小,包括时钟芯片、石英晶体和与输入输出引脚通信用的串行接口。它的价格在30美元左右,也不适用于烤箱,但却非常适合在搭建样品模型时使用。

关键字:制作  数字  数字时钟

编辑:神话 引用地址:http://www.eeworld.com.cn/mndz/2011/0713/article_10580.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
制作
数字
数字时钟

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved