基于单片机C语言电子时钟完整版(闹钟-整点报时)_第1页
基于单片机C语言电子时钟完整版(闹钟-整点报时)_第2页
基于单片机C语言电子时钟完整版(闹钟-整点报时)_第3页
基于单片机C语言电子时钟完整版(闹钟-整点报时)_第4页
基于单片机C语言电子时钟完整版(闹钟-整点报时)_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、提供全套毕业设计,欢迎咨询单片机技术课程设计说明书数字电子钟系、 部: 电气与信息工程学院学生姓名:指导教师:职称专 业:班 级:完成时间:2013-06-07电子钟在生活中应用非常广泛,而一种简单方便的数字电子钟则更能受到人们的欢迎。所以设计一个简易数字电子钟很有必要。 本电子钟采用ATME公司的AT89S52 单片机为核心,使用12MHz晶振与单片机AT89S52相连接,通过软件编程的方法实 现以24小时为一个周期,同时8位7段LED数码管(两个四位一体数码管)显示小时、 分钟和秒的要求,并在计时过程中具有定时功能,当时间到达提前定好的时间进行蜂 鸣报时。该电子钟设有四个按键 KEY1 K

2、EY2 KEY3 KEY4和KEU5键,进行相应的操 作就可实现校时、定时、复位功能。具有时间显示、整点报时、校正等功能。走时 准确、显示直观、运行稳定等优点。具有极高的推广应用价值。关键词 电子钟;AT89S52硬件设计;软件设计ABSTRACTClock is widely used in life, and a simple digital clock is more welcomed by people. So to design a simple digital electronic clock is necessary.The system use a single chip AT

3、89S52of ATMEL s as its core to con trol The crystal oscillator clock,us ing of E-12MHZ is conn ected with the microco ntroller AT89S52, through the software program ming method to achieve a 24-hour cycle, and eight 7-segme nt LED digital tube (two four in one digital tube) displays hours, minutes an

4、d seconds requirements, and in the time course of a timing function,when the time arrived ahead ofscheduled time to buzz a good timekeep ing. The clock has four buttonsKEY1, KEY2, KEY3,KEY4 and KEY5 key, and make theappropriate action can be achieved when the school, timing, reset. With a time displ

5、ay, alarm clock sett in gs,timer fun cti on,corrective acti on. Accurate travel time, display and in tuitive, precisi on, stability, and so on. With a high applicati on value.Key wordsElectronicclock; ; AT89S52; Hardware Design ;Software Desig n TOC o 1-5 h z HYPERLINK l bookmark4 o Current Document

6、 1设计课题任务、功能要求说明及方案介绍 1 HYPERLINK l bookmark6 o Current Document 设计课题任务1 HYPERLINK l bookmark8 o Current Document 功能要求说明1 HYPERLINK l bookmark10 o Current Document 设计总体方案介绍及原理说明1 HYPERLINK l bookmark12 o Current Document 2设计课题硬件系统的设计 2 HYPERLINK l bookmark14 o Current Document 设计课题硬件系统各模块功能简要介绍 2 HYP

7、ERLINK l bookmark16 o Current Document 设计课题电路原理图、PCB图、元器件布局图 2 HYPERLINK l bookmark18 o Current Document 设计课题元器件清单 5 HYPERLINK l bookmark20 o Current Document 3设计课题软件系统的设计 6设计课题使用单片机资源的情况6 HYPERLINK l bookmark22 o Current Document 设计课题软件系统各模块功能简要介绍 6 HYPERLINK l bookmark24 o Current Document 设计课题软件系

8、统程序流程框图6 HYPERLINK l bookmark26 o Current Document 设计课题软件系统程序清单 10 HYPERLINK l bookmark28 o Current Document 4设计结论、仿真结果、误差分析、教学建议 21 HYPERLINK l bookmark30 o Current Document 设计课题的设计结论及使用说明 21 HYPERLINK l bookmark32 o Current Document 设计课题的仿真结果 21 HYPERLINK l bookmark34 o Current Document 设计课题的误差分析

9、22设计体会 22 HYPERLINK l bookmark36 o Current Document 教学建议 22结束语 23参考文献 24致谢 25附录 261设计课题任务、功能要求说明及方案介绍设计课题任务设计一个具有特定功能的电子钟。具有时间显示,并有时间设定,时间调整功 能。功能要求说明设计一个具有特定功能的电子钟。该电子钟上电或按键复位后能自动显示系统提示符“ d.1004-22 ”,进入时钟准备状态;第一次按电子钟启动 /调整键,电子钟 从12时0分0秒开始运行,进入时钟运行状态;按电子钟 KEY1键,则电子钟进入 时钟调整状态,此时可利用各调整键调整时间,调整结束后可按 KE

10、Y1键再次进入时 钟运行状态。设计课题总体方案介绍及工作原理说明本电子钟主要由单片机、键盘、显示接口电路和复位电路构成,设计课题的总 体方案如图1所示:图1-1总体设计方案图本电子钟的所有的软件、参数均存放在 AT89S52的Flash ROM和内部RAM中, 减少了芯片的使用数量简化了整体电路也降低了整机的工作电流。键盘采用动态扫 描方式。利用单片机定时器及计数器产生定时效果通过编程形成数字钟效果,再利 用数码管动态扫描显示单片机内部处理的数据,同时通过端口读入当前外部控制状 态来改变程序的不同状态,实现不同功能。2设计课题硬件系统的设计设计课题硬件系统各模块功能简要介绍本设计的硬件系统主要

11、采用以下基本模块来实现,单片机最小系统模块,输入 模块、输出模块、电源模块。(1)单片机最小系统模块:包括低功耗、高性能 CMOS位微控制器AT89S52复位电路;晶振电路。本本模块 AT89S52系统控制核心,单片机系统复位由复位电路 完成,单片机内部有一个高增益、反相放大器,其输入端为芯片引脚XTAL1,其输出端位位引脚XTAL2通过这两个引脚在芯片外并接石英晶体振荡器和两只电容。这样就构成一个稳定的自激振荡器。(2)输入模块:本模块共用到了 4个按键,1个电源开关,一个复位键,单片机 运行期间,利用按键完成复位操作。3个按键独立式键盘,KEY1键控制电子钟的启 动,KEY2键为加1键,K

12、EY3键为减1键,KEY1键第三次控制电子钟的调整状态。且 KEY1 KEY2 KEY3 任一键都独自连一个 I/O (P1.0、P1.1、P1.2、P1.3) 口线,说 明它们可以独立实现相应的电子钟功能。(3)输出模块:本次设计显示为 8位,采用两个四位一体数码管(共阳极)作为显示窗口,既可以节约成本又能简化电路。数码管用8个PNP三极管驱动。(4) 电源模块:现在市面上销售的编程器有很多都是由PC机的USB口直接供电 为了降低本设计的成本及节省设计时间,没有另外设计编程器,而直接购买了市场 上的USB供电及下载器。2.2 设计课题电路原理图、PCB图、元器件布局图1*JIl JaI h

13、岭J:jFJT 1HJ jrjpjiitjFJi 1jip阳Jlhi总设计原理图见附录A原理总设计图见附录附录Br-ir-iPiiT1 rit-j|ni4iVInl-lljftIM1*1.桝“IUW厂!wPM|I4 |f |l IWr|r | jIWhlI*J!1申IHfl1 JUIJJ1*1 I-iRlWIbIJ-IJ f誣H JJ Vil 讣iI-咋sri -1:lid*-HlL阿i-ar-Ini-FJta比冲l|1 J *NIJ|IrU J押.j rA”.jp-rjiri”rip-11HI i!.J.- il*4l.l riB.Hib.| 日.r./巳IIWrvir| !尸* JVfT

14、厝 fIVil图2-1电路原理图PCB图见附录C设计课题元器件清单表2-1设计所用元器件清单名称数量参数电容2个33pF数码管2个4位一体电阻1个200 Q下载口1个WE普通插座1个40PIN电阻16个470 Q按键4个三极管9个PNPUSB供电线1根晶振1个12MHz极性电容1个22卩F-H- UL 心片1块AT89S52发光二极管9个LED六角开关1个SW-PB3设计课题软件系统的设计3.1设计课题使用单片机资源的情况 设计课题使用单片机资源的情况如下:P0 口输出数码管段选信号,P2 口输出数码管位选信号;晶振12MHz调整选择 键KEY1 P1.0 ;通过选择键选择调整位,选中位闪烁;

15、增加键 KEY2 P1.1 ;按一次 使选中位加1;减少键KEY3 P1.2 ;按一次使选中位减1;此数字钟可实现基本的走 时和显示时间时、分、秒;时间的调整;闹钟的设定和调整;闹钟的开启和关闭功 能,具体如下:(1)实现基本的走时和显示时间的时、 分、秒,上电自动显示初始时间12-00-00, 且控制闹钟状态的的蓝色led灯为亮的状态。(2)当第一次按下第一个弹性按键时进入时间的调节状态,此时实现对显示时间 的小时调节,按下第二个按键时实现小时的加一调节,按下第三个按键时实现小时 的减一调节。(3)当第二次按下第一个弹性按键时进入显示时间的分钟调节状态,按下第二个 按键时实现分钟的加一调节,

16、按下第三个按键时实现分钟的减一调节。(4)当第三次按下第一个弹性按键时进入闹钟的小时调节状态,按下第二个按键 时实现闹钟小时的加一调节,按下第三个按键时实现闹钟小时的减一调节。(5)当第四次按下第一个弹性按键时进入闹钟的分钟调节状态,按下第二个按键 时实现闹钟分钟的加一调节,按下第三个按键时实现闹钟分钟的减一调节。(6)当第五次按下第一个弹性按键时返回正常的显示时间走时状态。(7) 当同时按下第二和第三个弹性按键时,关闭闹钟,且此时蓝色led灯为灭, 及定时时间到蜂鸣器并不响,若再次同时按下第二和第三个弹性按键,则开启闹钟, 且此时蓝色led灯为亮,定时时间到蜂鸣器发出滴滴的闹铃声,同时按下第

17、二和第 三个弹性按键即可关闭闹铃。闹铃状态默认为开启。设计课题软件系统个模块功能简要介绍本设计的软件系统主要采用以下基本模块来实现,主程序、中断服务程序、键 盘输入程序模块、数码管及其驱动模块和延时模块。主程序:主要是用于对输入信号的处理、输出信号的控制和对各个功能程序模 块的运用及其控制。中断服务程序:主要是用于电子钟的准确运行、数据输入过程中的闪烁。键盘输入程序模块:主要是用于确定按键并得到特定的键码值。数码管及其驱动模块:主要是用于驱动数码管及利用数码管显示时间。延时模块:程序中有两种延时子程序,一种是短延时用于判键按下等,一种是长延时。设计课题软件系统程序流程框图系统软件采用汇编语言按

18、模块化方式进行设计,然后通过Keil软件开发平台将程 序转变成十六进制程序语言,接着使用Proteous进行仿真,读出显示数据。主程序流程框图如3-1所示;时间处理子程序流程框图 3-2所示;中断服务程序程序如3=3所示;J V g1 QO 1冇杠 -J I J苗彳饰河训-JZ lip IXI赫芯仏工力11j甩t 入iAM屮,势冶村寸bU 1 iW晔况图3-1主程序流程框图图3-2时间处理子程序流程框图InJ 于【J ?YY列Y60分时I司至I2I吋单兀乎胃芒图3-3中断子程序引卜F I讪T1 :沉厂玉2 -1【寸力【1 1杪卜W亡泞于步,乡卜钏【1Jjii1千少11寸fHj Z设计课题软件系

19、统程序清单;项目名称:数字电子钟;项目功能:本电子钟实现24小时制,8位数码管显示时分秒,显示格式:12-59-00 通过4只按键来调整时间,调整选择键 KEY1 P1.0;通过选择键选 择调整位,选中位闪烁,增加键 KEY2 P1.1 ;按一次使选中位加1。减少键KEY3 P1.2;按一次使选中位减1,bear:P3.1 ;到了整点和闹 钟就会响,如果长按KEY1第一次切换到正常时钟显示,按第二次切换到时的调整, 按第三次切换到分的调整,同时led:P1.2就会闪烁,按第四次和第五次分别切换到闹钟的时分的调整,可进行调时、调分快进快减,并停止闪烁。如果选中位是秒,则按增加键或减少键可实现,但

20、无调时快进和快减功能。P0 口输出数码管段选信号,P2 口输出数码管位选信号;晶振12MHz编程作者:林炽逸完成时间:2013年06月8日程序请清单如下:#in clude #in clude #in clude vintrin s.h #defi ne uint un sig ned int#defi ne uchar un sig ned charsbit KEY仁卩1人1; sbit KEY2=P1A2; sbit KEY3=P1A7;sbit bear=P3A1;/切换键/minute ,hour调整加1定义/minute ,hour调整减1定义/闹铃sbit led=P1A2; /闹

21、钟,整时灯闪烁code un sig ned char tab=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90,0 xbf,0 xc8,0 x8e,0 xff,0 x21;/ 段码控制char code weiko ng_code=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x7f;uchar ms8=2,2,10,4,0,0,1,14;uchar StrTab8;uchar minute=59,hour=12,second=O; / 正常 时钟秒,分,时 定义uchar mi

22、nute1=00,hour1=00; seco nd仁 00;/ 闹钟 时钟秒,分,时 定义uchar flag=0, flag1=0; / 切换标志uchar num=0;uint count=O;/定时器计数,定时50ms, count满20,秒加1/*子函数声明 */void xia nshishuzu(); /显示数组子程序void alarm();/闹钟子程序*延时子程序 *void delay( uint z)ui nt x,y; for(x=0;xz;x+) for(y=0;y110;y+);/*void time_pro(void)if(sec on d=60)sec on d

23、=0 ;minu te+; if(mi nute=60) minu te=0;hour+;if(hour=24) hour=0;/*时寸间处理子程序 */显示时钟子函*/void dispaly(uchar w8) un sig ned inti,j,aa;aa=0 xfe; for(i=0;i8;i+)位选初值1111 1110依次将数组w中八个数取出,并显示P2=aa; j=wi;PO=tabj; aa=_crol_(aa,1); delay(1);PO=Oxff;位选取出要显示的数码/取出段选编码/位选信号循环右移?/显示延时/消影/*void xia nshishuzu()显示时钟数组

24、子程序*/StrTab1=seco nd/10;/秒个位StrTab0=seco nd%10;/秒十位StrTab2=10;间隔符StrTab4=mi nute/10;/分个位StrTab3=mi nu te%10;/分十位StrTab5=10;间隔符时个位时十位StrTab7=hour/10;StrTab 6=hour%10;键盘扫描子程序*void keyca n()if(KEY1=0)/按一次,正常显示,按第二次,时调整,按第三次,分调这整, delay(10); if(KEY1=0)flag+; while(!KEY1); if(flag=1) if(KEY2=0) delay(10)

25、;/按键1去抖以及动作/确认按键是否按下/切换标志释放按键if(KEY2=0) hour+;if(hour=24)hour=0; while(!KEY2)dispaly(StrTab); if(KEY3=0)delay(10);if(KEY3=0) hour-;if(hour=0)hour=23; dispaly(StrTab);/正常时间小时/释放按键/正常时间小时while(!KEY3) dispaly(StrTab); if(flag=2)if(KEY2=0) delay(10);if(KEY2=0) mi nu te+;if(mi nu te=60)mi nu te=0;while(!

26、KEY2) dispaly(StrTab); if(flag=3) if(KEY3=0) delay(10);if(KEY3=0) sec on d+;if(sec on d=0)sec on d=59; while(!KEY3) dispaly(StrTab);/按键去抖以及动作/分加1/秒表的加1秒加1if(flag=3) if(KEY2=0) delay(10);if(KEY2=0) hour1+;if(hour 仁=24)hour 仁0;while(!KEY2) alarm(); if(KEY3=0) delay(10);if(KEY3=0) hour1-;if(hour 仁=0)ho

27、ur1=23; while(!KEY3) alarm();if(flag=4)if(KEY2=0) /按键去抖以及动作delay(10);if(KEY2=0)minu te1+;if( minu te1=60) minu te1=0;while(!KEY2) alarm(); if(KEY3=0) /按键去抖以及动作delay(10);if(KEY3=0) minu te1-;if( minu te1=0 )minu te1=59; while(!KEY3) alarm。;/闹钟对时/闹钟时间小时加1闹钟时间小时减/闹钟分加1/闹钟分减1虫蜂鸣器子程序 *void ben g()bear=1;

28、P3=0 xfd; delay(100);bear=0;P3=0XFf;delay(100);*点报警子程序 *点报警子程序 *void zhe ngdia n (void)uchar i=0;if(second=0)&(minute=0) 整点报时for(i=0;i=sec ond1&sec on dsec on d1+5)|(m inu te= 0&sec on d1)for(i=0;i0)/主循环TR0=0; dispaly(ms); keyca n(); if(flag=1|flag=2)TR0=1; dispaly(StrTab); zhe ngdian ();if(flag=3|f

29、lag=4) TR0=0;alarm(); if(flag=5)dispaly(StrTab); if(flag=6)TR0=0; flag=0; dispaly(ms); 4设计结论、仿真结果、误差分析、教学建议设计课题的设计结论及使用说明本设计为基于单片机的电子钟的设计。刚开始,我们很多地方理不清头绪,无 从下手,但通过认真研究设计课题,找书上网查资料买元件,确定基本设计方案, 对所用芯片功能进行查找、调试,然后画电路图制PCB板、打孔、溶铜、焊接等,真的经历了许多困难,却积累了很多宝贵的经验,本设计用2个四位一体的共阳数码管做为显示器,它显示时间值;设计中有三个按键,其中KEY1为启动键

30、,KEY2为加控制键KEY3为减控制键。设计课题的仿真结果在Proteus ISIS 的Debug菜单中选择Execute,运行程序,系统仿真结果如图所示。仿真结果图见附录 D实现功能:可调整运行的电子钟具有三种工作状态:“d.1004-22 ”状态、运行状态、调整状态。(1) 、“d.1004-22 ”状态,依靠上电或按复位键进入,在此状态下,按KEY2 KEY3键均无效,按KEY1键有效,进入运行状态;(2)、运行状态,在此状态下,按 KET2 KEY3键均无效,只有按KEY1键有效,按下KEY1键后,退出运行状态,进入调整状态;(3) 、调整状态,按KEY1键进入时、分、秒的闪烁,在此状态下,按KEY2( +1键)、KEY3(-1键)键均有效;调整结束后必须按 KEY1键,即可退出调整状态, 进入运行

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论