51单片机汇编四个数码管三个按键加一减一复位

51单片机汇编四个数码管三个按键加一减一复位求程序
2025-04-28 02:02:06
推荐回答(1个)
回答1:

DAT		EQU 30H
DCNT EQU 34H
SCANLED EQU 35H
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0ISR
ORG 0030H
MAIN:
MOV SP,#5FH
MOV TMOD,#01H
MOV TH0,#0D8H
MOV TL0,#0F0H
MOV P2,#00H
MOV SCANLED,#0
MOV 30H,#0
MOV 31H,#0
MOV 32H,#0
MOV 33H,#0
SETB EA
SETB ET0
SETB TR0
LOOP:
JB P3.0,LOOP1
JNB P3.0,$
INC 30H
MOV A,30H
CJNE A,#10,LOOP
MOV 30H,#0
INC 31H
MOV A,31H
CJNE A,#10,LOOP
MOV 31H,#0
INC 32H
MOV A,32H
CJNE A,#10,LOOP
MOV 32H,#0
INC 33H
MOV A,33H
CJNE A,#10,LOOP
MOV 33H,#0
SJMP LOOP
LOOP1:
JB P3.1,LOOP2
JNB P3,2,$
MOV A,30H
JNZ LOOP10
MOV 30H,#9
MOV A,31H
JNZ LOOP11
MOV 31H,#9
MOV A,32H
JNZ LOOP12
MOV 32H,#9
MOV A,33H
JNZ LOOP13
MOV 33H,#9
SJMP LOOP
LOOP10:
DEC A
MOV 30H,A
SJMP LOOP
LOOP11:
DEC A
MOV 31H,A
SJMP LOOP
LOOP12:
DEC A
MOV 32H,A
SJMP LOOP
LOOP13:
DEC A
MOV 33H,A
SJMP LOOP
LOOP2:
MOV 30H,#0
MOV 31H,#0
MOV 32H,#0
MOV 33H,#0
LJMP LOOP
;--------------------
DELAY:
MOV R3,#50
DELAY1:
MOV R4,#100
DJNZ R4,$
DJNZ R3,DELAY1
DJNZ R2,DELAY
RET
;--------------------
T0ISR:
PUSH ACC
CLR TR0
MOV TH0,#0D8H
MOV TL0,#0F0H
SETB TR0
MOV DPTR,#LEDTAB
T000: ;数字显示
MOV R0,#DAT
MOV A,SCANLED
ADD A,R0
MOV R0,A
MOV A,SCANLED
JNZ T001
MOV P2,#01H
SJMP T0DIS
T001:
DEC A
JNZ T002
MOV P2,#02H
SJMP T0DIS
T002:
DEC A
JNZ T003
MOV P2,#04H
SJMP T0DIS
T003:
MOV P2,#08H
T0DIS:
MOV A,@R0
MOVC A,@A+DPTR
CPL A
MOV P0,A
INC SCANLED
MOV A,SCANLED
ANL A,#03H
MOV SCANLED,A
POP ACC
RETI
;--------------------
LEDTAB:
DB 0C0H ;"0" 00H
DB 0F9H ;"1" 01H
DB 0A4H ;"2" 02H
DB 0B0H ;"3" 03H
DB 99H ;"4" 04H
DB 92H ;"5" 05H
DB 82H ;"6" 06H
DB 0F8H ;"7" 07H
DB 80H ;"8" 08H
DB 90H ;"9" 09H
DB 88H ;"A" 0AH
DB 83H ;"B" 0BH
DB 0C6H ;"C" 0CH
DB 0A1H ;"D" 0DH
DB 86H ;"E" 0EH
DB 8EH ;"F" 0FH
DB 0FFH ;" " 10H
;--------------------
END