数字电子钟的制作.docx

数字电子钟的制作.docx

ID:61426238

大小:684.64 KB

页数:21页

时间:2021-01-29

数字电子钟的制作.docx_第1页
数字电子钟的制作.docx_第2页
数字电子钟的制作.docx_第3页
数字电子钟的制作.docx_第4页
数字电子钟的制作.docx_第5页
资源描述:

《数字电子钟的制作.docx》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、《数字电子钟的制作》设计报告学院:计算机与电子信息学院队长:李子康小组成员:高维春黄凯操指导老师:聂雄日期:2015.6.30目录一、任务与要求2二、设计思路2(1)时钟计数的设计2(2)按键控制时间的设定和调整2(3)定时器/计数器0实现1s计数3三、数字钟的组成部分3(1)硬件模块3(2)软件模块3四、数字钟程序设计流程图4五、数字钟程序设计5(1)数码管显示5(2)时钟初始化5(3)中断设计5(4)按键程序7六、遇到的问题9(1)定时时间的控制9(2)数码管的显示9七、仿真效果图10八、实物图11九、心得与体会11十、附录:程序代码11一、任务与要求设计并制作一个数字电子钟,

2、实现如下功能:(a)采用数码管或LCD屏幕显示时、分和秒时间(b)通过按键可以调整和设定当前时间(c)要求计时准确(10分钟内计时误差<1s)(d)设计原理图、PCB图,制作和调试电路(如果有现成的单片机板子,也可以直接使用)(f)编写电子钟控制软件(g)编写实训设计报告二、设计思路(1)时钟计数的设计用AT89C51单片机的定时器/计数器T0产生1s的定时时间,作为秒计数时间,当一秒产生时,秒计数加1开始计时。显示00-00-00的时间,开始计时;(2)按键控制时间的设定和调整P1.0口控制“秒”的调整,每按一次按键加1s;P1.1口控制“分”的调整,每按一次按键加1min;P1

3、.2口控制“时”的调整,每按一次按键加1h;计时满23-59=59时,返回00-00-00重新计时。P1.3口用做复位键,在计时过程中,如果按下它,则返回00-00-00重新开始计时。(3)定时器/计数器0实现1s计数单片机选择16位定时工作方式。对T0来说,系统时钟为12MHZ,最大定时也只有65535us,无法达到所需要的1s的定时,因此必须通过软件来处理这个问题,取T0的最大定时为50ms,要定时1s需要经过20次的50ms的定时。这20次计数,采用软件的方法来实现。设TMOD=01H,设置定时器计时器0工作在方式1,则TH0=(65535-50000)/256TL0=(6

4、5536-50000)%256这样,当计数器/定时器0计满50ms时,产生一个中断,在中断服务程序中对中断次数加以统计,就能实现数字钟的逻辑功能了。三、数字钟的组成部分(1)硬件模块单片机芯片,八位共阴数码管,驱动数码管译码的芯片74HC573(仿真时为74LS245),按键,外加电阻,导线若干;(2)软件模块数码管显示程序设计,定时器初始化,定时器中断编程,时钟的时、分、秒控制,按键程序设计,时间的调整与设定。开始开始四、数字钟程序设计流程图显示设计,设置定时器,定时50ms开始是根据计数值显示时间开始秒键被按下?否否秒计数加1开始分键被按下?是否时键被按下?到60s?否是否分计

5、数加1开始是否复位键被按下?到60min?否是小时加1开始是到24h??否开始开始是五、数字钟程序设计(1)数码管显示定义数码管的位选和段选数组ucharcodewei[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};ucharcodeduan[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};通过程序控制来选择数码管的位码和断码(2)时钟初始化HOUR=0;//时为0MINITE=0;//分为零SECOND=0;//秒为零TMOD=0x01;//选择计数方式TH0=(65536

6、-50000)/256;//赋初值TL0=(65536-50000)%256;(3)中断设计voidTimer0(void)interrupt1using1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;TCNT++;//控制中断次数if(TCNT==20){SECOND++;TCNT=0;if(SECOND==60){MINITE++;SECOND=0;if(MINITE==60){HOUR++;MINITE=0;if(HOUR==24){HOUR=0;MINITE=0;SECOND=0;TCNT=0;}}}}}(4)按键程序sbitS_

7、SET=P1^0;//定义按键控制端口sbitM_SET=P1^1;sbitH_SET=P1^2;sbitRESET=P1^3;voidKEY_TEST(){DISPLAY();P1=0xff;restar=0;if(S_SET==0);//按下控制“秒”的按键{delay(100);if(S_SET==0){SECOND++;if(SECOND==60){SECOND=0;}while(S_SET==0)DISPLAY();}}if(M_SET==0);//按下控制

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。