1、 N Y 3、按键处理: N Y N Y 5、拆分时间的十位及个位:N5、显示: Y6、闹铃四、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五、程序清单 WEI EQU 46H NZKG EQU 52H ;闹钟开关 K1 BIT P3.2 K2 BIT P3.
2、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,START 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
3、 MOV R7,#0 INC SEC MOV A,SEC CJNE A,#60,LOOP0 MOV SEC,#0 INC MIN MOV A,MIN MOV MIN,#0 INC HOU MOV A,HOU CJNE A,#24,LOOP0 MOV HOU,#0LOOP0: ;LCALL DELAY10 MOV A,BELH CJNE A,#0,NEXT09 MOV A,BELM MOV NZKG,#0 JMP NEXT08NEXT09: MOV NZKG,#1NEXT08: MOV A,BELH CJNE A,HOU,NEXT10 CJNE A,MIN,NEXT10 MOV FMBZ,#1
4、LCALL FENGM JMP NET11NEXT10:NET11: LCALL WORK_T MOV A,AHOH CJNE A,#0,XIANS MOV AHOH,#10XIANS: LCALL DISPLAY2 LCALL DISPLAY AJMP LOOPFENGM: PUSH ACC MOV A,NZKG CJNE A,#1,FMRET MOV A,FMBZ CLR C MOV A,#4 SUBB A,R3 JNC FMRET CPL BELLFMRET: POP ACC RET TIMER1: INC R7 ;定时 INC R3 ;闪烁标志 CJNE R3,#8,NET MOV R
5、3,#0NET: RETIWORK_T: PUSH ACC MOV B,#10 DIV AB MOV AMIH,A MOV AMIL,B MOV A,HOU MOV AHOH,A MOV AHOL,B 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 SUBB A,R7 MOV A,R4 JNC DIS3 CLR ACC.7DIS3: MOV SBUF,A JNB
6、 TI,$ CLR TIDEC 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 POP PSWSMKEY: MOV R6,#0 SETB C MOV K1,C MOV C,K1 JC KK2 ;K1没有按下,看K2 LCALL DELAY10 JC KK2 JNB K1,$ MOV R6,#1 AJMP RETURNKK2: MOV K2,C MOV C,K2 JC KK3
7、 JNB K2,$ MOV R6,#2KK3: MOV K3,C MOV C,K3 JC RETURN JNB K3,$ MOV R6,#3 RETURN:OVER0: 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,#0INCM: CJNE A,#2,INCBH MOV R5,MIN CJNE R5,#59,NEXT1INCBH
8、: CJNE A,#3,INCBM INC BELH MOV R5,BELH MOV BELH,#0INCBM: CJNE A,#4,ELS INC BELM MOV R5,BELM MOV BELM,#0 NEXT1: MOV R6,#0ELS: CJNE R6,#3,XS CJNE A,#1,DECM DEC HOU CJNE R5,#255,DECM MOV HOU,#23DECM: CJNE A,#2,DECBH DEC MIN CJNE R5,#255,XS MOV MIN,#59DECBH: CJNE A,#3,DECBM DEC BELH CJNE R5,#0,XS MOV MI
9、N,#23DECBM: CJNE A,#4,XS DEC BELM MOV BELM,#59 XS: MOV R4,A JNC QM PUSH MINPUSH HOU CJNE A,#3,NET0 MOV MIN,BELM MOV HOU,BELH JMP SANBELNET0: CJNE A,#4,SANBELSANBEL: POP HOU POP MIN LCALL DISPLAY2 LCALL DELAY10 JMP SMKQM: CJNE A,#1,SANH MOV AHOL,#10 MOV AHOH,#10 JMP SMKSANH: CJNE A,#2,SANBHMOV AMIL,#
10、10 MOV AMIH,#10 LCALL DISPLAYJMP SMKSANBH: CJNE A,#3,SANBLPUSH MINMOV HOU,BELHMOV MIN,BELMLCALL WORK_TMOV AHOL,#10SANBL: CJNE A,#4,SMK PUSH HOU MOV MIN,BELM MOV AMIL,#10SMK: CJNE A,#5,JS00 CLR AOVER:JS00: AJMP JSDUTAB: DB 0C0H,0F9H,0A4H,0B0H,99H,092H,082H,0F8H,80H,90H,0FFH END六、设计总结:通过这次课程设计,更加深刻地了解了8051单片机的工作原理,加深了对汇编语言的掌握。但在本次设计中,还有很多没有完善的地方,比如,校准时间的程序没有用指针操作,所以导至程序冗余。七、参考资料:李全力单片机原理及应用清华大学出版社。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1