1、基于汇编语言编写的数码管显示时钟程序如图用汇编语言编写的可调时钟(用定时器定时,不精准),此程序只是提供一个idea操作:最上面的键是开始调整键,后面依次为时分秒的切换键、加键、减键、调整完成键.程序如下: SHI EQU R2 FEN EQU R3 MIAO EQU R4 CHANGE EQU R5 ORG 00H LJMP MAIN ORG 000BH /中断入口 LJMP ITOR ORG 60HMAIN: MOV TMOD,#01H /初始化定时器 MOV TH0,#3CH MOV TL0,#0B0H /50mS SETB ET0 SETB EA CLR F0 /键盘设定标志位 MOV
2、 R0,00H MOV R1,00H MOV P0,#0FFH MOV SHI,#00H MOV FEN,#00H MOV MIAO,00H MOV CHANGE,00H SETB TR0 /打开定时器M1: LJMP KEY /键盘扫描M2: LCALL INIT /动态显示 LJMP M1 INIT: MOV A,SHI /显示函数 MOV B,#0AH DIV AB MOV 40H,A MOV 41H,B CLR P2。0 CLR P2.1 CLR P2。2 JNB F0,O1 CJNE CHANGE,#00H,O1 CJNE R1,#0,O1 MOV P1,00H CPL P2.7 L
3、CALL DELAY LJMP O10O1: MOV DPTR,#TABLE MOV A,40H MOVC A,A+DPTR MOV P1,A LCALL DELAY MOV P1,#00HO10: CLR P2。0 CLR P2。1 SETB P2。2 JNB F0,O2 CJNE CHANGE,#00H,O2 CJNE R1,0,O2 MOV P1,00H LCALL DELAY LJMP O20O2: MOV DPTR,#TABLE MOV A,41H MOVC A,A+DPTR MOV P1,A LCALL DELAY MOV P1,#00HO20: CLR P2。0 /显示小时 SE
4、TB P2。1 CLR P2.2 MOV P1,040H LCALL DELAY /显示分隔符 MOV P1,#00H MOV A,FEN MOV B,0AH DIV AB MOV 40H,A MOV 41H,B CLR P2.0 SETB P2.1 SETB P2。2 JNB F0,O3 CJNE CHANGE,#01H,O3 CJNE R1,#0,O3 MOV P1,#00H LCALL DELAY LJMP O30O3: MOV DPTR,#TABLE MOV A,40H MOVC A,A+DPTR MOV P1,A LCALL DELAY MOV P1,00HO30: SETB P2。
5、0 CLR P2.1 CLR P2。2 JNB F0,O4 CJNE CHANGE,#01H,O4 CJNE R1,0,O4 MOV P1,#00H LCALL DELAY LJMP O40O4: MOV DPTR,#TABLE MOV A,41H MOVC A,A+DPTR MOV P1,A LCALL DELAY MOV P1,#00H /显示分钟O40: SETB P2。0 CLR P2.1 SETB P2。2 MOV P1,040H LCALL DELAY /显示分隔符 MOV P1,00H MOV A,MIAO MOV B,0AH DIV AB MOV 40H,A MOV 41H,B
6、 SETB P2。0 SETB P2。1 CLR P2.2 JNB F0,O5 CJNE CHANGE,#02H,O5 CJNE R1,0,O5 MOV P1,#00H LCALL DELAY LJMP O50O5: MOV DPTR,TABLE MOV A,40H MOVC A,A+DPTR MOV P1,A LCALL DELAY MOV P1,00HO50: SETB P2。0 SETB P2.1 SETB P2.2 JNB F0,O6 CJNE CHANGE,#02H,O6 CJNE R1,#0,O6 MOV P1,00H LCALL DELAY LJMP O60O6: MOV DPT
7、R,TABLE MOV A,41H MOVC A,A+DPTR MOV P1,A LCALL DELAY MOV P1,00H /显示秒O60: RETKEY: MOV A,P0 XRL A,0FFH CJNE A,#00H,A1 LJMP M2A1: LCALL DELAY1 MOV A,P0 XRL A,0FFH CJNE A,00H,KEY1 LJMP M2KEY1: CJNE A,80H,KEY2 /按键1、开始键 SETB F0/ CLR TR0 JNB P0。7,$ LJMP M2KEY2: CJNE A,#40H,KEY3 /按键2、切换键 JNB F0,B1 INC CHANG
8、E MOV A,CHANGE CJNE A,#03,B2 MOV CHANGE,#00HB1: JNB P0.6,$ LJMP M2B2: JNB P0。6,$ LJMP M2KEY3: CJNE A,20H,KEY4 /按键3、加键 JNB F0,C1 MOV A,CHANGE CJNE A,#00,C2 INC SHI CJNE SHI,24,C1 MOV SHI,#00H C1: JNB P0。5,$ LJMP M2C2: CJNE A,01,C4 INC FEN CJNE FEN,#60,C3 MOV FEN,00HC3: JNB P0.5,$ LJMP M2C4: INC MIAO
9、CJNE MIAO,60,C5 MOV MIAO,00HC5: JNB P0.5,$ LJMP M2KEY4: CJNE A,#10H,KEY5 /按键4、减键 JNB F0,D1 MOV A,CHANGE CJNE A,00,D2 CJNE SHI,#00H,D0 MOV SHI,24D0: DEC SHID1: JNB P0。4,$ LJMP M2D2: CJNE A,01,D3 CJNE FEN,00H,D00 MOV FEN,60D00: DEC FEN JNB P0。4,$ LJMP M2D3: CJNE MIAO,#00H,D000 MOV MIAO,#60D000: DEC MI
10、AO JNB P0。4, LJMP M2KEY5: JNB F0,D0000 /按键5、停止键 CLR F0 MOV R0,#00HD0000: JNB P0.3, LJMP M2ITOR: MOV TH0,#3CH MOV TL0,0B0H INC R0 JNB F0,E0 CPL P2.6 INC 44H MOV A,44H CJNE A,#5,RETURN MOV 44H,#00H LJMP E1 E0: CJNE R0,19,RETURN MOV R0,00H JB F0,E1 INC MIAO CJNE MIAO,60,RETURN MOV MIAO,#00H INC FEN CJNE FEN,#60,RETURN MOV FEN,00H INC SHI CJNE SHI,#24,RETURN MOV SHI,00H LJMP RETURNE1: INC R1 CJNE R1,2,RETURN MOV R1,0RETURN: RETIDELAY: MOV R7,255 DJNZ R7,$ RETDELAY1: MOV R6,#115 /10mSDL1: MOV R7,#248 DJNZ R7, DJNZ R6,DL1 RET TABLE: DB 3FH,06H,5BH,4FH DB 66H,6DH,7DH,07H DB 7FH,6FH END
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1