单片机电子钟课程设计.doc_第1页
单片机电子钟课程设计.doc_第2页
单片机电子钟课程设计.doc_第3页
单片机电子钟课程设计.doc_第4页
单片机电子钟课程设计.doc_第5页
免费预览已结束,剩余11页可下载查看

下载本文档

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

文档简介

单片机原理与应用课程设计报告书系别: 机械与电子工程学院 专业: 自 动 化 班级: 10206201 姓名: 冷 木 龙 指导教师: 朱 兆 优 12.6.25目 录一、实验任务3二、编程思路3三、程序流程图4四、使用资源分配5五、实验调试与结果分析5六、实验总结5七、实验程序清单(加注解)6八、实验电路图14设计题目 多功能电子钟1、实验任务用8051单片机设计扩展6位数码管的静态或动态显示电路,再连接几个按键和一个蜂鸣器报警电路,设计出一个多功能电子钟,实现以下功能: (1)走时 (能实现时分秒,年月日的计时) (2)显示 (分屏切换显示时分秒和年月日,修改时能定位闪烁显示) (3)校时 (能用按键修改和校准时钟) (4)定时报警(能定点报时)2、编程思路(1) 选择工作方式,计算初值;(2) 采用中断方式进行溢出次数累计;(3) 从秒-分-时和年-月-日的计时是通过累加和数值比较实现的;(4) 时钟显示缓冲区:时钟时间在方位数码管上进行显示,为此在内部RAM中要设置显示缓冲区,共6个地址单元。显示缓冲区从左到右依次存放时、分、秒、年、月、日数值。(5) 主程序:主要进行定时器/计数器的初始化编程,然后反复调用显示子程序的方法等待中断的到来。(6) 中断服务程序:进行计时操作。保护现场T1中断秒加11秒到?1分到?1小时?分加11天?时加11个月?天加11年?年加1月加1恢复现场返回YYYYYYNNNNNN3、程序流程图 中断走时流程图4、使用的资源分配把单片机系统区域中的P0.0-P0.7端口用线连接到动态数码显示区域中的A-H端口上;把单片机系统区域中的P3.0-P3.7端口用线连接到动态数码显示区域中的S1-S7端口上;把单片机系统区域中的P3.0-P3.5端口用导线连接到6个数码管的公共端。5、实验调试与结果分析实验调试1.实验程序的调试在TKStudio软件中,反复运行,发现错误并改正。2.实验电路的调试把调试好的程序载入单片机中,在运行看是否有错误。结果分析本次设计的单片机时钟系统中,其误差主要来源包括晶体频率误差,定时器溢出误差,延迟误差。晶体频率产生这震荡,容易产生走时误差;定时器溢出的时间误差,本应这一秒溢出,但却在这一秒溢出,造成走时误差;延时时间过长或过短,都会造成与基准时间产生偏差,造成走时误差。6、实验总结经过将近一周的努力,在指导老师和同学的帮助下,终于完成了多功能电子时钟的课程设计。刚开始拿到实验题目的时候,一头雾水,不知该从何看起,单通过对程序的模块化分解,各个问题也就明了了。在此次的多功能电子钟设计过程中,更进一步地熟悉了芯片的结构及掌握了各芯片的工作原理和其具体的使用方法。此次的多功能电子钟设计重在于仿真和编程,虽然能把电路原理图接出来,并能正常显示,但对于电路本身的原理并不是十分熟悉.总的来说,通过这次的设计实验更进一步地增强了实验的动手能力。这次的课程设计终于完成了,在此次课程设计中我们获益非浅,其过程中遇到了很多编程问题和操作问题,但最终还是在老师的指导下迎刃而解。7、实验程序清单(加注解)ORG 0000 AJMP MAIN ORG 001BH LJMP TIME ORG 0100H MAIN: MOV 20H,#10H;中断次数 MOV 32H,#18H;赋初值 MOV 31H,#28H MOV 30H,#00HMOV40H,#23HMOV41H,#12HMOV42H,#12HMOVR7,#00H MOV TMOD,#10H;选择定时器/计数器工作方式1 MOV TL1,#0B0H;定时器/计数器赋初值 MOV TH1,#3CH SETB TR1;启动定时器/计数器1 MOV IE,#88H;允许定时器/计数器中断 DUSP: MOV R2,#3;显示年月日主程序 MOV R0,#30H MOV DPTR,#TAB MOV P3,#0DFH LOOP: MOV A,R0 ANL A,#0FH;取秒的低位 MOVC A,A+DPTR;查表 MOV P0,A ;把日的低位送到P0口 LCALL YSH2S;延时 MOV A,P3 RR A MOV P3,A MOV A,R0 ANL A,#0F0H;取日的高位 SWAP A MOVC A,A+DPTR;查表 MOV P0,A LCALL YSH2S;延时 MOV A,P3 RR A MOV P3,A INC R0 DJNZ R2,LOOP循环3次,分别显示时分秒 JNB P1.7,KEY17;查询键17有没有按下 JNB P1.6,KEY16;查询键16有没有按下 JNB P1.5,KEY15;查询键15有没有按下 JNB P1.4,KEY14;查询键14有没有按下 JNB P1.3,KEY13;查询键13有没有按下 AJMP DUSP;跳到显示年月日的子程序 KEY17: JNB ET1,KEY17B;键处理 CLR ET1 CLR EA MOV R6,#0BH LJMP DUSP RET KEY17B: MOV R6,#0AH SETB ET1 SETB EA LJMP DUSP RET KEY16: JNBP1.6,$CJNE R6,#0BH,KEY16BMOVA,32HADDA,#01HDAAMOV32H,ACJNEA,#24H,KK1MOV32H,#00H KK1:LCALLYSH2SLL;调用延时 LCALL DISPS KEY16B: LJMP DUSP RET KEY15: JNBP1.5,$CJNE R6,#0BH,KEY15B MOVA,31HADDA,#01HDAAMOV31H,ACJNEA,#60H,KK2MOV31H,#00HKK2:LCALLYSH2SLL LCAll DISPF KEY15B: LJMP DUSP RET KEY14: JNBP1.4,$ CJNE R6,#0BH,KEY14BMOVA,30HADDA,#01HDAAMOV30H,ACJNEA,#60H,KK3MOV30H,#00HKK3:LCALLYSH2SLL LCALL DISPM KEY14B: LJMP DUSP RET KEY13: JNB P1.3,$ INC R7 CJNE R7,#01H,KEY13B AJMP DUSPP KEY13B: CJNE R7,#02H,KEY13BB MOV R5,#0BH AJMP DUSPP KEY13BB:MOV R5,#0AH MOV R7,#00H AJMP DUSP RET DUSPP: MOV R2,#3;年月日的显示子程序 MOV R0,#40H MOV DPTR,#TAB MOV P3,#0DFH LOOPP: MOV A,R0 ANL A,#0FH MOVC A,A+DPTR MOV P0,A LCALL YSH2S MOV A,P3 RR A MOV P3,A MOV A,R0 ANL A,#0F0H SWAP A MOVC A,A+DPTR MOV P0,A LCALL YSH2S MOV A,P3 RR A MOV P3,A INC R0 DJNZ R2,LOOPP JNB P1.3,KEY13 JNB P1.2,KEY12 JNB P1.1,KEY11 AJMP DUSPP RET KEY12: JNBP1.2,$ CJNE R5,#0BH,KEY12B MOV A,41HADDA,#01H DA A MOV 41H,A CJNE A,#13H,KK4 MOV 41H,#01H KK4: LCALL DISPY LCALL YSH2S;调用延时 KEY12B: LCALL DUSPP RET KEY11: JNBP1.1,$ CJNE R5,#0BH,KEY11B MOV A,40HADDA,#01H DA A MOV 40H,A CJNE A,#31H,KK5 MOV 40H,#01H KK5: LCALL DISPR LCALL YSH2S KEY11B: LJMP DUSPP RET DISPY: MOV DPTR,#TAB;单独显示年 MOV A,41H ANL A,#0FH MOVC A,A+DPTR;查表 MOV P0,A MOV P3,#11110111B;显示 LCALL YSH2S MOV A,41H SWAP A ANL A,#0FH MOVC A,A+DPTR;查表 MOV P0,A MOV P3,#11111011B;显示 LCALL YSH2S RET DISPR: MOV A,40H;日的独立显示 ANL A,#0FH MOVC A,A+DPTR;查表 MOV P0,A MOV P3,#11011111B;显示 LCALL YSH2S MOV A,40H SWAP A ANL A,#0FH MOVC A,A+DPTR MOV P0,A MOV P3,#11101111B LCALL YSH2S RET YSH2S: MOV 50H,#01H;延时程序 LOOP2: MOV 51H,#14H LOOP21: MOV 52H,#5AH XHD3: DJNZ 52H,XHD3 DJNZ 51H,LOOP21 DJNZ 50H,LOOP2 RETYSH2SLL:MOV60H,#05;长延时程序MM3:MOV61H,#20MM2:MOV62H,#20MM1:DJNZ62H,MM1 DJNZ61H,MM2DJNZ60H,MM3RET TIME: PUSH PSW;走时程序 PUSH ACC MOV TL1,#0B0H MOV TH1,#3CH DJNZ 20H,RETURN MOV 20H,#10HCPLP2.0 MOV A,30H ADD A,#01H DA A MOV 30H,A CJNE A,#60H,RETURN MOV 30H,#00H MOV A,31H ADD A,#01H DA A MOV 31H,A CJNE A,#60H,RETURN MOV 31H,#00H MOV A,32H ADD A,#01H DA A MOV 32H,A CJNE A,#24H,RETURN MOV 32H,#00HMOV A,40H ADD A,#01H DA A MOV 40H,A CJNE A,#31H,RETURN MOV 40H,#01H MOV A,41H ADD A,#01H DA A MOV 41H,A CJNE A,#13H,RETURN MOV 41H,#01HMOVA,42HADDA,#01HDAAMOV42H,ACJNEA,#99,RETURNMOV42H,#00H RETURN: POP ACC POP PSW RETI DISPS: MOV DPTR,#TAB;单独显示时 MOV A,32H ANL A,#0FH MOVC A,A+DPTR MOV P0,A MOV P3,#11111101B LCALL YSH2S MOV A,32H SWAP A ANL A,#0FH MOVC A,A+DPTR MOV P0,A MOV P3,#11111110B LCALL YSH2S RET DISPF: MOV A,31H;单独显示分 ANL A,#0FH MOVC A,A+DPTR MOV P0,A MOV P3,#11110111B LCALL YSH2S MOV A,31H SWAP A ANL A,#0FH MOVC A,A+DPTR MOV P0,A MOV P3,#11111011B LCALL YSH2S RET DISPM: MOV A,30H;单独显示秒 ANL A,#0FH MOVC A,A+DPTR MOV P0,A MOV P3,#11011111B LCALL

温馨提示

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

评论

0/150

提交评论