《基于单片机AT89C52的多功能电子钟设计.docx》由会员分享,可在线阅读,更多相关《基于单片机AT89C52的多功能电子钟设计.docx(8页珍藏版)》请在三一文库上搜索。
1、第36卷第4期2010年4月信息化研究Vo36No.4l nformatizatio nResearchApr.2010基于单片机AT89C52的多功能电子钟设计刘昕,杨峰,谢晋(吉首大学物理科学与信息工程学院,湖南省吉首市416000)摘 要:文中设计了一个显时、调时、定时以及具有整点报时功能的电子钟。电子 钟使用12MHZ晶振与AT89C52单片机相连接,通过软件编程的方法实现了以24 小时为一个周期,同时显示小时、分钟和秒的要求,而且有三组定时计数功能。在 定时时间到时有蜂鸣报警。该电子钟设有五个按键按钮S1,S2,S3,S4和S5键使之具备了校时、定时和复位功能。同时,电子钟还设计 了
2、掉电保护电路,当电源断电时能保存时钟当前定时设计的全部数据。为了美化时 钟界面,在单片机外围设置了跑马电路。通过 AT89C52电子时钟的设计 对51单 片机系列有了更加深刻的认识,对其各个引脚功能掌握的更为透彻。也再次认识到 单片机的应用具有使用范围广的特点,对各个行业的技术改造和产品智能化的更新 换代起着重要的推动作用。关键词:电子钟;AT89C52;晶振;掉电保护电路;跑马电路中图分类号:TP311 采用AT24C08串行数据存储器,可以存储多组定时数据,在掉电和重新启动后,仍然 可以恢复到原来的定时时间,不需要重新定时。采用RD、WR读写端实现数据写 入和读出。采用MAX232串行接口
3、,利用RXD和TXD串行收发端实行在线下载 功能,省去了插拔单片机烧写程序的麻烦。按键 S1S4为调时和定时功能,分别接 P3.2P35按一下S1进入调时状态,按第2次,进行定时设置。S2为确认键,S3、 S4分别为加、减功能,S5为复位键。P.I7 口与蜂鸣器相连接,实现定时报警功能。 电源掉电保护电路,采用继电器和3.6V组成的掉电保护,单片机掉电后,继电器闭 合,3.6V电源提供电压,使其处于低功耗状态保持内部数据不丢失,只是I/O 口无法 驱动。总体设计框架图如图1所示。0引言数字电子钟设计与制作可采用数字电路实现,也可以采用单片机来完成。若用数字 电路完成,所设计的电路相当复杂,大约
4、需要十几片数字集成块,其功能也主要依赖 于数字电路的各功能模块的组合来实现,焊接的过程比较复杂,成本也非常高。若 用单片机来完成,由于其功能的实现主要是通过软件编程来完成,那么就降低了硬 件电路的复杂性,而且成本也有所降低。所以在该设计与制作中采用单片机AT89C52,它是低功耗、高性能的 CMOS型8位单片机,片内带有8KB的Flash存 储器,且允许在系统内改写或用编程器编程。1总电路设计1.1硬件电路的设计该电子钟是以单片机STC89C52为核心来完成的,在硬件电路中采用P0 口作为8 位LED数码管的驱动接口,由于采用共阳数码管,位选时采用1k电阻接PNP三极 管驱动,所以P0 口输出
5、允许接任何元件,就可以直接驱动LED使其发亮。8个LED 数码管采用四联性的,四个数码管连在一起,这样减少了在布线的难度。P1 口接8 个花样流水灯,在数码管走时时,进行多样变化,走时和流水灯同时进行,互不影响。 图1总体设计框架图收稿日期:2010 03 12;修回日期:2010 03 30。基金项目:湖南省教育厅科研项目(09C792)。硬件电路的设计电路图如图2所示。61常鞋器url'g驛nl朵 IntIHrIHr屮Im屮沧屮阿阿lllln 疝即电lwIrliF技术与应用 信息化研究2010年4月图2具体电路图设计1.2软件程序的设计1.2.1按键部分采取独立式键盘接口的编程模式
6、,此键盘接口程序的功能实际上就是驱动键盘工作 完成键盘的识别,根据所识别按键的键值,完成子程序的正确散转,从而完成单片机 应用系统对用户按键动作的预定义的响应。采取独立式键盘的原因是每一个按键 只占用一个I/O 口,同时每个按键的工作不影响其他按键,可直接依据每个I/O 口线 的状态进行子程序的散转,因此编制的程序较简练。本程序中利用查询方式对按键 进行判断,若有键按下,则进行软件延时消抖,避免了抖动引起的干扰,同时只有当按 键松开后,才判断其有效并进行识别,最后根据识别的按键转子程序处理(主要是对 具体按键的系统功能的执行)。1.2.2显示与跑马部分本电子钟显示采取单片机应用系统中最常用的动
7、态扫描显示法 ,因此LED显示程 序都是作为一个子程序供主程序调用,各位显示器都扫过一遍后,就返回主程序,进 行一些其他操作,再调用显示扫描程序。程序中主要通过反复调用来实现 LED数 码显示器的动态扫描。同时采用定时器中断置标志位,与位选相互结合的方法来控 制调时或定时中的闪烁以及跑马灯的运行。时、分、秒的显示则是利用中断方式 和软件译码(查表)的结合方式进行的。定时设置以及存储部分:考虑实用性,电子钟 的修改定时或调整时间采用了闪烁指示,而且可以手动设置3组闹钟,设置好的数 据存入24C08存储芯片,程序中利用一个通用算法对数据存储具体地址进行自行分 配。同时把IC总线的(启动)开始信号、
8、结束信号、时钟信号写一个字节数据、62第36卷第4期刘 昕,等:基于单片机AT89C52的多功能电子钟设计voidwritex(ucharj)/ 写一个字节 uchar,itemp;temp=;jfor(i=0;i<8;i+)if(temp&0 x80)sda=1;elsesda=0;scl=1;temp=temp«1;scl=0; scl=0;sda=1;ucharreadx()/读一个字节uchar,ik=0; scl=0;sda=1;for(i=0;i<8;i+)scl=1;k=(k<<1)|(char)(sda);1)j=1;elsej=0;
9、scl=0; return(k);图3主程序流程图技术与应用读一个字节数据都编制成为通用的子程序,便于在程序中随时调用。发送和接受应 答位的过程放到子程序中,这样可以使得程序结构简化。具体的程序过程可见程序 流程框图。闹铃比较:由于定义了 3组定时闹钟,进行一次比较3组时间。比较之 后查询闹铃标志位是否为1若为1则响铃。为了避免响铃影响显示,采用了定时出 现脉冲,驱动喇叭,不会影响显示。主程序流程如图3ATW9C51初始化24C0X初始化调用显示子程序 调用按键子程纾凋用定时比轮尹程浮 闕川跑吗件农f程序 期用迟时保存P程序返回所示。强制转换类型符if(sda=2系统调试2.1初步调试冋题当焊
10、接PCB板完成以后,把程序写进单片机,接入电源,接通电子钟开关,显示部分出 现一些问题,数码管代码段C段出现不亮的现象,整个数码管显示亮度不够。但是可以调整时间,定时功能。还有整点报时蜂鸣器不响;跑马电路显示 正常;复位所需时间过长;掉电保护电路出现问题;掉电后时间不能保存。2.2问题 分析a)数码管代码部分C段不亮,可能是C段代码管引脚连接错误,也可能是C段二极 管已损坏。b)数码管亮度不够可能是因为程序冲突或者是驱动三极管的连接电阻过大导致电 流太小。c)蜂鸣器不响可能是因为驱动它的三极管引脚接反等。d)复位时间过长可能是复位电阻过大,导致RC时间常数过大,复位延时过长。2.3 解决方案针
11、对以上出现的问题,采用以下方法加以解决:a)数码管C段不亮,经检查是 AT89C52第36脚出现虚焊现象,在36脚加焊锡,填满焊盘,问题得以解决。b)数码管先是亮度不够,用万用表检查驱动数码管的位选三极管,导通后,电压仍然 有3V,所以驱动63部分主程序如下:#in clude<reg51.h>#defi neucharun sig nedchar#defi neuintun sig nedin textern delay(i ntn );sbitsda=P3A7;/IIC 总线数据线sbitscl=P3A6;/IIC总线时钟线char;ivoidclock()/l2C 总线时钟
12、uchari=0;scl=1;while(sda=1)&&(i<255)i+;scl=0;voidx24c08_init()/24c08 初始化子程序scl=1;sda=1;voidstart()/启动 I2C 总线 sda=1;scl=1;sda=0;scl=0; voidstop()/停止 I2C 总线 sda=0;scl=1;sda=1;技术与应用 信息化研究2010年4月三极管的电阻1k没有过大。查看AT24C08文档资料,发现定时数据存储时,用比 较定时的方法写程序可能会影响显示,所以将定时用得比较程序代码撤销,放在中 断里去执行比较定时,问题得以解决,显示正确
13、。c)蜂鸣器不响,经检查,查看蜂鸣器 引脚,没有接反,此时考虑常出现的问题,就是三极管引脚焊反的问题,查看三极管 A1015PNP数据手册发现C、E脚连接反了,经调换引脚,蜂鸣器准时鸣叫。d)复位时,按键时间达到4s左右才能复位,考虑到常见问题就是复位电阻过大,经调 电阻R6、R7,由1k和10k到100k和1k后,上电复位一切正常。经过多次的 检查,调试,初步调试所出现的问题得以全部解决。经过再次系统调试电子钟完全 实现了显时、调时、定时以及整点报时的的功能。2.4计时误差分析设计的电子钟和标准时钟的时间对比见表1。表1时间对比表时钟第1组对比(10min)第2组对比(20min)第3组对比
14、(30min)起始时间终止时间起始时间终止时间起始时间终止时间20分钟内绝对误差 2为:1100%=0.083%2=20 60 30min内绝对误差 3为:2100%=0.11%3=30 60可见计时误差很低,原因是使用了 12MHz的晶振,所以计时准确度很高。3结束语利用单片机AT89C52能够很好地完成一个电子钟所应有功能,同时克服了利用 数字电路时电路复杂的情况,跑马电路美化了时钟界面,最后给电子钟设计了精美 的封装。参考文献1 童诗白,华成英模拟电子技术基础M.北京:高等教育出版社,2000.2 谭浩强.C程序设计M.北京:清华大学出版社,2005.3阎石.数字电子技术基础 M.北京:
15、高等教育出版社,2005.4刘征宇.电子电路设计M.福建:福建科学技术出 版社,2004.5孙春亮.单片机C语言入门M.北京:人民邮电出版社,2008.6李建忠. 单片机原理及应用M.西安:西安电子科技大学,2002.7徐爱钧,彭秀华.KeilCx51V7.0单片机高级语言编程与uVision2应用实践M.北京:电子工业出版社,2006.标准16 20 0016 30 0016 32 0016 52 0017 00 0017 30 00 时钟设计的电 12 00 0012 10 0112 00 0012 20 0112 00 0012 30 02子钟通过以上误差分析,可知:在10min内绝对误
16、差1为:1 =100%=0.17%10 60(1),女,副教授,硕士,主要研究方向为集成电路设计。Desig no faMulti fun ctio nClockBasedo nSCMAT89C52LlUXi n, YANGFe ng,XIEji n( CollegeofPhysicsScie ncean di nformatio nEn gi neeri ngJisho uUn iversity,Jishou416000,Chi na)Abstract:l nthispaper,a nelectro nicclockhasthefu nctio ns ofshow in gtime,time
17、setti ng,ti mingan dso undin gthehourisdesig ned.Theclockusesa12MHz crystalwithAT89C52microc on trollerco nn ecteda ndthroughsoftwareprogrammi ngmethod itrealizedthecycleof24hourscouldalsoshowhours, minu tesa ndseco nds,a ndhasthreeti min gco un ti ngfun cti on s.Whe ntimedhourcomes,thebuzzergivesal
18、arm.Theclockhasfivebuttons S1,S2,S3,S4a ndS5,soastohavethetimesetti ng,thetimi ngan dresetfu nctio ns.Bsides,thecl ockhasalsoapower downprotectioncircui.tWhenthepowerisof,ftheclockwillsaveallthecu rren tdata .In additio n, tobeautifytheclocki nterfacei nthemicroco ntrollerperipheralaHappyV alleycir
19、cuitisse.tThroughthedesignofAT89C52electronicclock,weobtainedamoreprofo undunderstandingofmicrocontroller51theseries,includingeachpin sfunction.Onceagain werecog nizedthatSCMhasawidera ngeofapplicatio ns.Soitca nplaya nimporta ntrolei nthetec hn ologicaltra nsformatio no fvariousi ndustriesa ndmaki ngin tellige ntproducts,thuspromoti n gtheappeara nceof newge nerati ons.Keywords:electronicclock;AT89C52;crysta;lpower downprotectioncircui;tHappyValle ycircuit64
链接地址:https://www.31doc.com/p-13061607.html