1、单片机电子钟课程设计 单片机原理与应用课程设计报告书系别: 机械与电子工程学院 专业: 自 动 化 班级: 10206201 姓名: 冷 木 龙 指导教师: 朱 兆 优 12.6.25一、实验任务3二、编程思路3三、程序流程图4四、使用资源分配5五、实验调试与结果分析5六、实验总结5七、实验程序清单(加注解)6八、实验电路图14设计题目 多功能电子钟1、实验任务用8051单片机设计扩展6位数码管的静态或动态显示电路,再连接几个按键和一个蜂鸣器报警电路,设计出一个多功能电子钟,实现以下功能: (1)走时 (能实现时分秒,年月日的计时) (2)显示 (分屏切换显示时分秒和年月日,修改时能定位闪烁显
2、示) (3)校时 (能用按键修改和校准时钟) (4)定时报警(能定点报时)2、编程思路(1) 选择工作方式,计算初值;(2) 采用中断方式进行溢出次数累计;(3) 从秒-分-时和年-月-日的计时是通过累加和数值比较实现的;(4) 时钟显示缓冲区:时钟时间在方位数码管上进行显示,为此在内部RAM中要设置显示缓冲区,共6个地址单元。显示缓冲区从左到右依次存放时、分、秒、年、月、日数值。(5) 主程序:主要进行定时器/计数器的初始化编程,然后反复调用显示子程序的方法等待中断的到来。(6) 中断服务程序:进行计时操作。3、程序流程图 中断走时流程图4、使用的资源分配把单片机系统区域中的P0.0-P0.
3、7端口用线连接到动态数码显示区域中的A-H端口上;把单片机系统区域中的P3.0-P3.7端口用线连接到动态数码显示区域中的S1-S7端口上;把单片机系统区域中的P3.0-P3.5端口用导线连接到6个数码管的公共端。5、实验调试与结果分析实验调试1.实验程序的调试在TKStudio软件中,反复运行,发现错误并改正。2.实验电路的调试把调试好的程序载入单片机中,在运行看是否有错误。结果分析本次设计的单片机时钟系统中,其误差主要来源包括晶体频率误差,定时器溢出误差,延迟误差。晶体频率产生这震荡,容易产生走时误差;定时器溢出的时间误差,本应这一秒溢出,但却在这一秒溢出,造成走时误差;延时时间过长或过短
4、,都会造成与基准时间产生偏差,造成走时误差。6、实验总结经过将近一周的努力,在指导老师和同学的帮助下,终于完成了多功能电子时钟的课程设计。刚开始拿到实验题目的时候,一头雾水,不知该从何看起,单通过对程序的模块化分解,各个问题也就明了了。在此次的多功能电子钟设计过程中,更进一步地熟悉了芯片的结构及掌握了各芯片的工作原理和其具体的使用方法。此次的多功能电子钟设计重在于仿真和编程,虽然能把电路原理图接出来,并能正常显示,但对于电路本身的原理并不是十分熟悉.总的来说,通过这次的设计实验更进一步地增强了实验的动手能力。这次的课程设计终于完成了,在此次课程设计中我们获益非浅,其过程中遇到了很多编程问题和操
5、作问题,但最终还是在老师的指导下迎刃而解。7、实验程序清单(加注解)ORG 0000 AJMP MAIN ORG 001BH LJMP TIME ORG 0100H MAIN: MOV 20H,#10H ;中断次数 MOV 32H,#18H ;赋初值 MOV 31H,#28H MOV 30H,#00H MOV 40H,#23H MOV 41H,#12H MOV 42H,#12H MOV R7,#00H MOV TMOD,#10H ;选择定时器/计数器工作方式1 MOV TL1,#0B0H ;定时器/计数器赋初值 MOV TH1,#3CH SETB TR1 ;启动定时器/计数器1 MOV IE,
6、#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
7、 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
8、RET KEY16: JNB P1.6,$ CJNE R6,#0BH,KEY16B MOV A,32H ADD A,#01H DA A MOV 32H,A CJNE A,#24H,KK1 MOV 32H,#00H KK1: LCALL YSH2SLL ;调用延时 LCALL DISPS KEY16B: LJMP DUSP RET KEY15: JNB P1.5,$ CJNE R6,#0BH,KEY15B MOV A,31H ADD A,#01H DA A MOV 31H,A CJNE A,#60H,KK2 MOV 31H,#00H KK2: LCALL YSH2SLL LCAll DISPF
9、KEY15B: LJMP DUSP RET KEY14: JNB P1.4,$ CJNE R6,#0BH,KEY14B MOV A,30H ADD A,#01H DA A MOV 30H,A CJNE A,#60H,KK3 MOV 30H,#00H KK3: LCALL YSH2SLL 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
10、,#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,
11、KEY13 JNB P1.2,KEY12 JNB P1.1,KEY11 AJMP DUSPP RET KEY12: JNB P1.2,$ CJNE R5,#0BH,KEY12B MOV A,41H ADD A,#01H DA A MOV 41H,A CJNE A,#13H,KK4 MOV 41H,#01H KK4: LCALL DISPY LCALL YSH2S ;调用延时 KEY12B: LCALL DUSPP RET KEY11: JNB P1.1,$ CJNE R5,#0BH,KEY11B MOV A,40H ADD A,#01H DA A MOV 40H,A CJNE A,#31H,K
12、K5 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
13、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 RET YSH2SLL:MOV 60H,#05 ;长延时程
14、序 MM3: MOV 61H,#20 MM2: MOV 62H,#20 MM1: DJNZ 62H,MM1 DJNZ 61H,MM2 DJNZ 60H,MM3 RET TIME: PUSH PSW ;走时程序 PUSH ACC MOV TL1,#0B0H MOV TH1,#3CH DJNZ 20H,RETURN MOV 20H,#10H CPL P2.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,RETUR
15、N MOV 31H,#00H MOV A,32H ADD A,#01H DA A MOV 32H,A CJNE A,#24H,RETURN MOV 32H,#00H MOV 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,#01H MOV A,42H ADD A,#01H DA A MOV 42H,A CJNE A,#99,RETURN MOV 42H,#00H RETURN: POP AC
16、C 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
17、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 YSH2S ;调用延时程序 MOV A,30H SWAP A ANL A,#0FH MOVC A,A+DPTR ;查表 MOV P0,A MOV P3,#11101111B ;显示 LCALL YSH2S RET TAB: DB 3FH,06H,5BH,4FH,66H,6DH ;表 DB 7DH,07H,7FH,6FH END8、实验电路图电路连接总图按键电路图键名实现功能K1调试开关,控制调试开始K2实现时加一K3实现分加一K4实现秒加一K5实现年月日的切换K6实现月的加一K7实现日的加一各按键实现功能说明表
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1