1、单片机简易数字电子钟设计单片机课程设计报告数字电子钟设计姓 名: 古名壬 专 业: 10级电气自动化 班 级: 电气二班 学 号: 1040632209 指导老师: 朱星华老师 完成时间: 2012-6-17 一、前言随着电子技术的发展,单片机技术的日趋成熟,在我们的生活中,随处可见单片机的身影,在控制领域,单片机也因其精确性及数字化逐步取代传统的模电控制手段。作为电气自动化的学生,学习单片机技术不仅能加深对自动控制的理解,用新的技术实现自动控制,而平时做一些小制作更能为我们的大学生活增添一份光彩!这次课程设计是用单片机实验箱的硬件基础上设计一个电子钟,限于硬件的限制,只要在实验箱上调试成功即
2、可。本次设计以8051内核单片机作为主控芯片,用四位数码管实现时间的显示,并且具有调校、闹铃的功能。二、设计方案硬件电路如下图所示:1、单片机基本组成电路:电源,晶振电路,复位电路等2、显示:串口工作于方式0,即移位寄存器方式,以级联方式驱动四位数码管静态显示。3、3位独立按键:为了实现调校功能,至少要有两个按键以上才能更方便地调校时间,因此在本次设计中采用了三位独立按键,一个用来作调校切换,另外两个作加减,但在实际制作了,为了简化电路及节约硬件资源,可以使用两位独立按键。4、程序用汇编语言编写,并分多个模块分别调用,提高了程序的编写效率及可移植性。三、程序流程图1、主流程:2、按键扫描:(其
3、它两个键一样) N Y N Y 3、按键处理: N Y N Y N5、拆分时间的十位及个位:N Y5、显示:N Y6、闹铃 N Y四、RAM的分配秒:分:时:分个位:分十位:时个位:时十位:延时用:延时用:闹铃时:闹铃分:蜂鸣标志: SEC EQU 30H MIN EQU 31H HOU EQU 32H AMIL EQU 40H AMIH EQU 41H AHOL EQU 42H AHOH EQU 43H N EQU 44H M EQU 45H BELH EQU 48H BELM EQU 49H FMBZ EQU 50H五、程序清单 SEC EQU 30H MIN EQU 31H HOU EQ
4、U 32H AMIL EQU 40H AMIH EQU 41H AHOL EQU 42H AHOH EQU 43H N EQU 44H M EQU 45H WEI EQU 46H BELH EQU 48H BELM EQU 49H FMBZ EQU 50H NZKG EQU 52H ;闹钟开关 K1 BIT P3.2 K2 BIT P3.3 K3 BIT P3.4 BELL BIT P2.7 ORG 00H LJMP MAIN ORG 0BH LJMP TIMER1 ORG 28HMAIN:MOV R1,#30HSTART: MOV R1,#0 INC R1 CJNE R1,#55H,STAR
5、T SETB BELL MOV SCON,#00H ;初始化 MOV TMOD,#01H MOV TH0,#HIGH(65536-50000) MOV TL0,#LOW(65536-50000) SETB EA SETB ET0 SETB TR0LOOP: LCALL SMKEY LCALL CLKEY CJNE R7,#20,LOOP0 MOV R7,#0 INC SEC MOV A,SEC CJNE A,#60,LOOP0 MOV SEC,#0 INC MIN MOV A,MIN CJNE A,#60,LOOP0 MOV MIN,#0 INC HOU MOV A,HOU CJNE A,#2
6、4,LOOP0 MOV HOU,#0LOOP0: ;LCALL DELAY10 MOV A,BELH CJNE A,#0,NEXT09 MOV A,BELM CJNE A,#0,NEXT09 MOV NZKG,#0 JMP NEXT08NEXT09: MOV NZKG,#1NEXT08: MOV A,BELH CJNE A,HOU,NEXT10 MOV A,BELM CJNE A,MIN,NEXT10 MOV FMBZ,#1 LCALL FENGM JMP NET11NEXT10: SETB BELLNET11: LCALL WORK_T MOV A,AHOH CJNE A,#0,XIANS
7、MOV AHOH,#10XIANS: LCALL DISPLAY2 LCALL DISPLAY AJMP LOOPFENGM: PUSH ACC MOV A,NZKG CJNE A,#1,FMRET MOV A,FMBZ CJNE A,#1,FMRET CLR C MOV A,#4 SUBB A,R3 JNC FMRET CPL BELLFMRET: POP ACC RET TIMER1: PUSH ACC MOV TH0,#HIGH(65536-50000) MOV TL0,#LOW(65536-50000) INC R7 ;定时 INC R3 ;闪烁标志 CJNE R3,#8,NET MO
8、V R3,#0NET: POP ACC RETIWORK_T: PUSH ACC MOV A,MIN MOV B,#10 DIV AB MOV AMIH,A MOV AMIL,B MOV A,HOU MOV B,#10 DIV AB MOV AHOH,A MOV AHOL,B POP ACC RETDISPLAY2:PUSH ACCLCALL DELAY10 ;静态显示 MOV R0,#40H MOV R2,#4LOOP1: MOV DPTR,#DUTAB MOV A,R0 MOVC A,A+DPTR MOV R4,A CJNE R2,#2,DIS3 MOV A,#10 CLR C SUBB
9、A,R7 MOV A,R4 JNC DIS3 CLR ACC.7DIS3: MOV SBUF,A JNB TI,$ CLR TI ;DEC R0 INC R0 DJNZ R2,LOOP1POP ACC RET DELAY: PUSH PSW MOV M,#20DEL: MOV N,#100 DJNZ N,$ DJNZ M,DEL POP PSW RETDELAY10:PUSH PSW LCALL DELAY LCALL DELAY POP PSW RETSMKEY: MOV R6,#0PUSH ACC PUSH PSW SETB C MOV K1,C MOV C,K1 JC KK2 ;K1没有
10、按下,看K2 LCALL DELAY10 SETB C MOV C,K1 JC KK2 JNB K1,$ MOV R6,#1 AJMP RETURNKK2: SETB C MOV K2,C MOV C,K2 JC KK3 LCALL DELAY10 SETB C MOV C,K2 JC KK3 JNB K2,$ MOV R6,#2 AJMP RETURNKK3: SETB C MOV K3,C MOV C,K3 JC RETURN LCALL DELAY10 SETB C MOV C,K3 JC RETURN JNB K3,$ MOV R6,#3 RETURN: POP PSWPOP ACC
11、RETOVER0: AJMP OVERCLKEY: MOV A,R6 CJNE A,#1,OVER0JS: LCALL SMKEY CJNE R6,#1,NEX1 INC ANEX1: CJNE R6,#2,ELS CJNE A,#1,INCM INC HOU MOV R5,HOU CJNE R5,#24,NEXT1 MOV HOU,#0 INCM: CJNE A,#2,INCBH INC MIN MOV R5,MIN CJNE R5,#59,NEXT1 MOV MIN,#0 INCBH: CJNE A,#3,INCBM INC BELH MOV R5,BELH CJNE R5,#24,NEX
12、T1 MOV BELH,#0INCBM: CJNE A,#4,ELS INC BELM MOV R5,BELM CJNE R5,#59,NEXT1 MOV BELM,#0 NEXT1: MOV R6,#0ELS: CJNE R6,#3,XS CJNE A,#1,DECM DEC HOU MOV R5,HOU CJNE R5,#255,DECM MOV HOU,#23 DECM: CJNE A,#2,DECBH DEC MIN MOV R5,MIN CJNE R5,#255,XS MOV MIN,#59 DECBH: CJNE A,#3,DECBM DEC BELH MOV R5,BELH CJ
13、NE R5,#0,XS MOV MIN,#23 DECBM: CJNE A,#4,XS DEC BELM MOV R5,BELM CJNE R5,#0,XS MOV BELM,#59 XS: MOV R4,A MOV A,#4 SUBB A,R3 MOV A,R4 JNC QM PUSH MINPUSH HOU CJNE A,#3,NET0 MOV MIN,BELM MOV HOU,BELH JMP SANBELNET0: CJNE A,#4,SANBEL MOV MIN,BELM MOV HOU,BELHSANBEL: LCALL WORK_T POP HOU POP MIN LCALL D
14、ISPLAY LCALL DISPLAY2 LCALL DELAY10 JMP SMK QM: CJNE A,#1,SANH MOV AHOL,#10 MOV AHOH,#10 LCALL DISPLAY LCALL DISPLAY2 LCALL DELAY10 JMP SMK SANH: CJNE A,#2,SANBHMOV AMIL,#10 MOV AMIH,#10 LCALL DISPLAY LCALL DISPLAY2LCALL DELAY10JMP SMKSANBH: CJNE A,#3,SANBLPUSH MINPUSH HOUMOV HOU,BELHMOV MIN,BELMLCA
15、LL WORK_TMOV AHOL,#10 MOV AHOH,#10 LCALL DISPLAY LCALL DISPLAY2 LCALL DELAY10 POP HOU POP MIN JMP SMKSANBL: CJNE A,#4,SMK PUSH MIN PUSH HOU MOV HOU,BELH MOV MIN,BELM LCALL WORK_T MOV AMIL,#10 MOV AMIH,#10 LCALL DISPLAY LCALL DISPLAY2 LCALL DELAY10 POP HOU POP MINSMK: CJNE A,#5,JS00 MOV R7,#0 MOV SEC,#0 CLR AOVER: SETB BELL RETJS00: AJMP JSDUTAB: DB 0C0H,0F9H,0A4H,0B0H,99H,092H,082H,0F8H,80H,90H,0FFH END 六、设计总结:通过这次课程设计,更加深刻地了解了8051单片机的工作原理,加深了对汇编语言的掌握。但在本次设计中,还有很多没有完善的地方,比如,校准时间的程序没有用指针操作,所以导至程序冗余。七、参考资料:李全力单片机原理及应用清华大学出版社。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1