原创 单片机制作六位数显电子钟

2008-3-29 15:03 4234 11 11 分类: 工程师职场
 



xzzb01.jpg


6位LED数码管显示的电子钟,成品板20元,元件包16.5元,单购线路板1.8元




很多网友都买过本站的单片电子钟元件包,有的朋友说不需要这么大,就是想需要一个小小的LED数显电子钟,为了方便网友,本站推出了最低价格的6位LED数码管显示的电子钟,成品板20元,元件包16.5元,单购线路板1.8元,本板选用超亮LED数码管,更美观更实用!本元件包一次性组装成功率高达98%,特别适合学校批量订购制作。对于学校来说,特别是对于非电子专业的学校来说,组织学生进行这种电子制作活动,可以提高学生的兴趣,有利于从侧面培养学生的科学观念,这对一个受教育者的益处是相当具大的。由于很多学校没有这方面的教师人才,所以很多家长自己才会买给自己的孩子。


说明:成品板是指接上电源即可正常走时校时和定时,没有外壳,仅仅只能显示时间和发出声音!元件包就是还需要通过自己动手组装才会变成成品板。


本套件包含电路板,电路板上的所有元件,制作说明书,元件清单,原理图 胶袋包装。


关于数码管的引脚分布大家可以看看这里


http://www.51dz.com/pic/LED/04021-400.gif


http://www.51dz.com/s.asp?id=2156



装好的成品如下:


6wxzz-4.jpg



本板装配无误一般都能正常工作,仔细检查线路板安装无误后,插入单片机芯片(为了防止大家焊接有误本站给大家配备一个20脚的IC插座)。
本数字钟板使用直流4V-5V工作电压。
1.正常走时:默认为走时状态,按24小时制显示“时时:分分:秒秒”,按实际时间以秒为单位变化,同时四个秒点变化。
2.走时调整:长按K1(或K2、K3),时、分、秒会有其一快速闪动,按K1会循环,按K2和K3可以分别对闪动的数字进行加或者减。
3.闹时调整:再次长按K1(或K2、K3),时、分、秒会有其一慢速闪动,按K1会循环,按K2和K3可以分别对闪动的数字进行加或减。
  注意:时位01-64变化,表示64路定时;分位00-24变化,表示24小时和不闹,默认为24不闹;秒位00-59变化,表示60分钟。因此,只能以分钟为最小单位设定多路闹时。
4.误差修正:走时精度由高频石英晶振(4MHz比32.768KHz高出100倍)决定。理论上可以做到月误差小于6秒。在闹时调整状态下,长按K1(或K2、K3),时位、分位会变成全“一”或者全“三”表示变慢或者变快,按K1选择;按K2、K3秒位会在00-80中变化,数字越大,表示修正越大,00等于不变快也不变慢。
5.任何状态下:长时间(20秒以上)不按任何按键,都会自动回到正常走时状态。这时:
A、如果正逢闹铃响(会长响20秒)中,按K1、K2、K3任意键可以停止发声。
B、按K3可以启停电子钟每秒都发出短短的“嘀”声。
C、整点报时功能:按K2可以开启和关闭整点报时功能。开启后每逢整点就会听到长响两秒“嘀”声。
6、闹时开关功能:按K1可以开启和关闭定时闹铃功能。关闭闹铃时,设置的数据仍然保留,但是不输出。


蜂鸣器可以用压垫陶瓷片代替如下图所示:


070815220438.jpg



本电子钟跟下面的电子钟的功能、原理、使用方法基本上一样,区别在于将分立的LED改成了一体化小巧的LED数码管,这样显示更美观,并且,由于现在LED数码管2V电源即可点亮(以前的分立LED是两支串联,需要4V以上电源才能正常点亮),因此,现在的电子钟可以在3.6V的手机电池供电下良好的工作。强列推荐用旧手机电池做后备供电,确保停电后时间照常走时!!!以下资料供参考,收到实物和以下会不同,更详细资料以收到的实际货物为主。


1052bao.JPG


  电路特点
  这里介绍的电子钟,电路可称得上极简,它仅使用单片的20引脚单片机完成电子钟的全部功能,而笔者见到的其它设计方案均采用二片以上的多片IC实现。
 一片20引脚的单片机STC1052(引脚排列与AT89C2051完全相同)为电子钟主体,其显示笔画数据从P1口分时输出,P3口则输出对应的六位选通信号。由于LED数码管点亮时耗电较大,故不能使用AT89C2051单片来完成,但是可以可以用STC12C1052来完成。另外,本站制作时用超高亮的发光二极管代替昂贵的大数码管,成本低,效果独特。

   由于电路设计得极其简单,因此丰富的功能只能由软件完成,这里软件设计成为了关键。下面介绍软件设计中采用的一些要点。

  本电子钟程序设计时只使用了一个定时数T0,其它的中断全部关断,定时器工作在两个8位自动加载初始值状态。这是保证走时精确稳定的重要方法。站长看到很多书本教材上都让大家用定时器中断来执行动态显示程序和按键扫描程序,这是一种很不好的方法,除了浪费硬件资源以外,还会增加程序复杂性,还会影响其它程序运行。

  站长认为,越是中断程序,就要越写得简短,最好几条指令就立即结束,对于动态扫描显示、按键功能等等可以写在主程序中让程序不停的反复运行,如果中断多,最大的坏处就是影响到主程序运行时间不够,扫描显示会出现闪烁,或者按键反应变慢(一般觉察不出),可是,这又有另一好处,你可以随时改良程序并且立即看到结果。
  LED动态扫描显示是分时点亮各个LED,利用人的视觉暂留特性,让人觉得是连续点亮。当点亮的频率高时,说明单片机有充足的时间运行主程序。

  最后补充:
  1、这个电子钟程序认认真真的写了半个多月,全部用汇编语言写成,写一个程序真不简单。因此,本源程序需要花68元价格购买。但是,本程序的思路以及部分片断会在网上公开,请大家谅解,因为本站还要靠这个程序赚钱。
  2、本程序尚未最后完工,因为现在必需要求不掉电才能保存时间以及设置状态。由于STC1052(2052)芯片具有IAP功能,不需外接EEEPROM就可以停电永久保存时间,一年后我打算继续完成这个程序,因为现在写得太累了,或者,以后,站长会了C语言,就方便写这个程序了。
  3、本电子钟对于学单片机是有帮助的,大家购买后可以自己重新写程序也行,相信,很多人会写得更好,功能更强,效果更好,因为,对于站长来说,单片机技术毕竟是只会点皮毛。


更多详情:http://www.51dz.com/s.asp?id=kjf888

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
11
关闭 站长推荐上一条 /3 下一条