数字电子钟的制作.docx_第1页
数字电子钟的制作.docx_第2页
数字电子钟的制作.docx_第3页
数字电子钟的制作.docx_第4页
数字电子钟的制作.docx_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

电子工艺实训2数字电子钟的制作设计报告学院:计算机与电子信息学院队长:1307300413 李子康 小组成员:1307200108高维春 1226211614黄凯操 指导老师: 聂雄 日期:2015.6.30 20目录一、任务与要求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一、任务与要求设计并制作一个数字电子钟,实现如下功能:(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.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=(65536-50000)%256这样,当计数器/定时器0计满50ms时,产生一个中断,在中断服务程序中对中断次数加以统计,就能实现数字钟的逻辑功能了。三、数字钟的组成部分(1)硬件模块单片机芯片,八位共阴数码管,驱动数码管译码的芯片74HC573(仿真时为74LS245),按键,外加电阻,导线若干;(2)软件模块数码管显示程序设计,定时器初始化,定时器中断编程,时钟的时、分、秒控制 ,按键程序设计,时间的调整与设定。开始开始四、数字钟程序设计流程图显示设计,设置定时器,定时50ms开始是 根据计数值显示时间开始秒键被按下?否否秒计数加1开始分键被按下?是否时键被按下?到60s?否是否分计数加1开始是否复位键被按下?到60min?否是小时加1开始是到24h?否开始开始是五、数字钟程序设计(1)数码管显示定义数码管的位选和段选数组uchar code wei8=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;uchar code duan10=0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F;通过程序控制来选择数码管的位码和断码(2)时钟初始化HOUR=0;/时为0MINITE=0;/分为零SECOND=0;/秒为零TMOD=0x01;/选择计数方式TH0=(65536-50000)/256;/赋初值TL0=(65536-50000)%256;(3)中断设计void Timer0(void)interrupt 1 using 1 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)按键程序sbit S_SET=P10;/定义按键控制端口sbit M_SET=P11;sbit H_SET=P12;sbit RESET=P13;void KEY_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);/按下控制“分”的按键 delay(100); if(M_SET=0) MINITE+;if(MINITE=60) MINITE=0;while(M_SET=0) DISPLAY(); if(H_SET=0);/按下控制“时”的 delay(100); if(H_SET=0) HOUR+;if(HOUR=24) HOUR=0;while(H_SET=0) DISPLAY(); if(RESET=0)/按下“复位”的按键 delay(100); if(RESET=0) restar=1; 六、遇到的问题(1)定时时间的控制刚开始不熟单片机的定时,在设计时间时常常达不到所要求的秒的误差,通过查阅资料,明白了定时时赋初值的计算方法,经过矫正,实验计数基本符合了实验要求的误差。(2)数码管的显示设置了数码管的段选和位选数组之后,怎么使它显示出想要的效果是一个很棘手的问题。解决这个问题时,我们遇到很大的困难,尤其是编好烧录后老是错乱显示。后面我们想到一种比较好的方法,就是通过时,分,秒,上的数值个位,十位来选择数码管上的数组对应的数,以达到通过数码管来显示时钟上的数值。七、仿真效果图八、实物图九、心得与体会 通过本次实验设计,我对单片机的学习有了进一步地提升,特别是对中断的控制以及中断服务程序的编写,数码管的显示。同时本次试验大大地提高了我们的团队意识。十、附录:程序代码 #include#define uchar unsigned char#define uint unsigned intsbit S_SET=P10;sbit M_SET=P11;sbit H_SET=P12;sbit RESET=P13;unsigned char SECOND,MINITE,HOUR,TCNT,restar=0;uchar code wei8=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;uchar code duan10=0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07, 0x7F,0x6F;uchar dispbuf8;void delay(unsigned int us) while(us-);void SCANDISP() unsigned char i,value; for(i=0;i8;i+) P3=0xff; value=duandispbufi; P0=value; P3=weii; delay(50); void Timer0(void)interrupt 1 using 1 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; void DISPLAY() SCANDISP(); dispbuf6=SECOND/10; dispbuf7=SECOND%10; dispbuf5=10; dispbuf3=MINITE/10; dispbuf4=MINITE%10; dispbuf2=10; dispbuf0=HOUR/10; dispbuf1=HOUR%10;void KEY_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); delay(100); if(M_SET=0) MINITE+;if(MINITE=60) MINITE=0;while(M_SET=0) DISPLAY(); if(H_SET=0); delay(100); if(H_SET=0) HOUR+;if(HOUR=24) HOUR=0;while(H_SET=0) DISPLAY(); if(RESET

温馨提示

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

评论

0/150

提交评论