Home > other >  51 MCU assembly language, the minutes of the countdown, the simulation results as shown in figure, t
51 MCU assembly language, the minutes of the countdown, the simulation results as shown in figure, t

Time:11-28

The code below
ORG 0000 h
JMP BEGIN
ORG 000 bh
LJMP T0INT
ORG 001 bh
LJMP T1INT
LEDD EQU 30 h
LEDC EQU 36 h
SECC EQU 37 h
MINC EQU 38 h
39 h
HOUR EQUTCNT EQU 3 ah
ORG 0030 h
; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
TABLE:; Common cathode digital tube display code table
DB 0 FCH;" 00 h
0"The DB 60 h;" 1 "01 h
DB 0 dah;" 2 "02 h
The DB 0 f2h;" 3 "3 h
The DB 66 h;" 4 "04 h
The DB 0 b6h;" 5 "5 h
The DB 0;;" 6 6 h
"The DB 0 e0h;" 7 "07 h
The DB 0 feh." 8 "08 h
The DB 0 f6h;" 9 "09 h
The DB 0 eeh;" A "ah 0
DB 3 eh;" B "0 bh
The DB 9 ch;" C "0 ch
The DB 7 ah;" D "0 dh
The DB 9 eh;" E "0 eh
The DB eh;" "0 F fh
The DB 00 h;" "10 h
; DB 3 fh, 6 h, 5 bh, 4 fh, 66 h; 12345
; 6 DB dh, 7 dh, 7 h, 7 fh,; 6789
; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
DELAY:
MOV R6, # 25
DLY01:
MOV R7, # 100
DJNZ R7, $
DJNZ R6, DLY01
RET
; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
The BEGIN:
MOV SP, # 5 fh
MOV TMOD, # 11 h
MOV TH0, # 3 ch
MOV TL0, # 0 b0h
MOV TH1, # 0 f4h
MOV TL1, # 48 h
MOV LEDC, # 6
MOV R0, # LEDD
The CLR A
INIT:
MOV @ R0, A
INC R0
DJNZ LEDC, INIT
SETB ET1
SETB TR1
MOV P2, # 0
MOV TCNT, # 0
MOV and # 0
MOV MINC, # 0
MOV SECC, # 0
SETB ET0
SETB EA
LOOP:
JB P1.0, LOOP1
LCALL DELAY
JB P1.0, LOOP1
JNB P1.0, $
INC HOUR
A, MOV HOUR
CJNE A, # 24, LOOPH
LOOPH:
JC LOOPH1
MOV and # 0
LOOPH1:
LCALL DISHOUR
SJMP LOOP

LOOP1:
JB P1.1, LOOP2
LCALL DELAY
JB P1.1, LOOP2
JNB P1.1, $
A, MOV HOUR
JNZ LOOPH2
MOV and # 23
SJMP LOOPH3
LOOPH2:
DEC HOUR
LOOPH3:
LCALL DISHOUR
SJMP LOOP

LOOP2:
JB P1.2, LOOP3
LCALL DELAY
JB P1.2, LOOP3
JNB P1.2, $
INC MINC
A, MOV MINC
CJNE A, # 60, LOOPM
LOOPM:
JC LOOPM1
MOV MINC, # 0
LOOPM1:
LCALL DISMIN
SJMP LOOP

LOOP3:
JB P1.3, LOOP4
LCALL DELAY
JB P1.3, LOOP4
JNB P1.3, $
A, MOV MINC
JNZ LOOPM2
MOV MINC, # 59
SJMP LOOPM3
LOOPM2:
DEC MINC
LOOPM3:
LCALL DISMIN
SJMP LOOP

LOOP4:
JB P1.4, LOOP5
LCALL DELAY
JB P1.4, LOOP5
JNB P1.4, $
INC SECC
A, MOV SECC
CJNE A, # 60, LOOPS
LOOPS:
JC LOOPS1
MOV SECC, # 0
LOOPS1:
LCALL DISSEC
LJMP LOOP

LOOP5:
JB P1.5, LOOP6
LCALL DELAY
JB P1.5, LOOP6
JNB P1.5, $
A, MOV SECC
JNZ LOOPS2
MOV SECC, # 59
SJMP LOOPS3
LOOPS2:
DEC SECC
LOOPS3:
LCALL DISSEC
LJMP LOOP

LOOP6:
JB P3.1, LOOP7
LCALL DELAY
JB P3.1, LOOP7
JNB P3.1, $
CPL TR0
LOOP7:
LJMP LOOP
; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
T1INT:
PUSH the ACC
The CLR TR1
MOV TH1, # 0 f4h
MOV TL1, # 48 h
SETB TR1
MOV DPTR, # TABLE
MOV R0, # LEDD
A, MOV LEDC
T1INT0:
JNZ T1INT1
MOV P2, # 01 h
A, MOV @ R0
MOVC A, @ A + DPTR
CPL A
MOV P0, A
SJMP T1INTD
T1INT1:
DEC A
JNZ T1INT2
MOV P2, # 02 h
INC R0
A, MOV @ R0
MOVC A, @ A + DPTR
CPL A
MOV P0, A
SJMP T1INTD
T1INT2:
DEC A
JNZ T1INT3
MOV P2, # 4 h
INC R0
INC R0
A, MOV @ R0
MOVC A, @ A + DPTR
CPL A
MOV P0, A
SJMP T1INTD
T1INT3:
DEC A
JNZ T1INT4
MOV P2, # 8 h
INC R0
INC R0
INC R0
A, MOV @ R0
MOVC A, @ A + DPTR
CPL A
MOV P0, A
SJMP T1INTD
T1INT4:
DEC A
JNZ T1INT5
MOV P2, # 10 h
INC R0
INC R0
INC R0
INC R0
A, MOV @ R0
MOVC A, @ A + DPTR
CPL A
MOV P0, A
SJMP T1INTD
T1INT5:
DEC A
JNZ T1INTD
MOV P2, # 20 h
INC R0
INC R0
INC R0
INC R0
INC R0
A, MOV @ R0
MOVC A, @ A + DPTR
CPL A
MOV P0, A
T1INTD:
INC LEDC
A, MOV LEDC
CJNE A, # 6, T1INT6
T1INT6:
JC T1INTE
MOV LEDC, # 0
T1INTE:
POP the ACC
RETI
; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
HBCD:
MOV, B # 10
DIV AB
SWAP A
ORL A, B
RET
; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
T0INT:
PUSH the ACC
The CLR TR0
MOV TH0, # 3 ch
MOV TL0, # 0 b0h
SETB TR0
INC TCNT
A, MOV TCNT
CJNE A, # 20, T0INT1
T0INT1:
JC T0INTE
MOV TCNT, # 0
A, MOV SECC
A, ORL MINC
ORL. A, HOUR
JNZ T0INT2
SETB P3.0
The CLR TR0
POP the ACC
RETI
T0INT2:
A, MOV MINC
ORL. A, HOUR
JNZ T0INT3
A, MOV SECC
CJNE A, # 6, T0INT21
T0INT21:
JNC T0INT22
CPL P3.0
T0INT22:
DEC SECC
LCALL DISSEC
SJMP T0INTE
T0INT3:
A, MOV SECC
JZ T0INT31
DEC SECC
LCALL DISSEC
SJMP T0INTE
nullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnull
  • Related