📄 秒表程序.asm
字号:
ORG 0000H
AJMP START
ORG 0003H
AJMP SERI0
ORG 000BH
AJMP SERT0
ORG 001BH
AJMP SERT1
ORG 0100H
;主程序
START: MOV SP,#5FH
SETB PT0
CLR PT1
MOV TMOD,#11H
MOV TL0,#78H
MOV TH0,#0ECH
MOV TL1,#0CH
MOV TH1,#0FEH
MOV 40H,#00H
MOV 30H,#00H
MOV 31H,#00H
MOV 32H,#00H
MOV R0,#36H
MOV R2,#01H
SETB EA
SETB EX0
SETB ET0
SETB ET1
SETB IT0
SETB TR1
CLR TR0
SJMP $
;INT0 中断服务程序
SERI0: PUSH ACC
MOV A,40H
CJNE A,#01H,NOEQR
ONE: CLR TR0
MOV 40H,#02H
AJMP BACK
NOEQR: JC ZERO
TWO: CLR TR0
MOV 30H,#00H
MOV 31H,#00H
MOV 32H,#00H
MOV 40H,#00H
AJMP BACK
ZERO : SETB TR0
MOV 40H,#01H
BACK: POP ACC
RETI
;T1中断服务程序
SERT1: PUSH ACC
MOV TL1,#0CH
MOV TH1,#0FEH
SETB TR1
MOV DPTR,#TABLE
MOV A , @R0
MOVC A , @A+DPTR
CLR C
MOV R3,#08H
LOOP: RLC A
MOV ACC.0 ,C
MOV DPTR,#0FE06H
MOVX @DPTR,A
SETB ACC.0
MOV DPTR,#0FE04H
MOVX @DPTR,A
CLR ACC.0
MOVX @DPTR,A
DJNZ R3,LOOP
MOV DPTR,#0FE02H
MOV A,R2
MOVX @DPTR,A
CJNE R0,#3CH,NOE
MOV R0,#36H
MOV R2,#01H
SJMP BACK1
NOE: INC R0
MOV A,R2
RL A
MOV R2,A
BACK1: POP ACC
RETI
; T0中断服务程序
SERT0: PUSH ACC
MOV TL0,#078H
MOV TH0,#0ECH
MOV A,30H
ADD A,#01H
DA A
MOV 30H,A
CJNE A, #00H,X0
MOV A,31H
ADD A,#01H
DA A
MOV 31H,A
CJNE A,#60H,X0
MOV 31H,#00H
MOV A,32H
ADD A,#01H
DA A
MOV 32H,A
CJNE A,#60H,X0
MOV 32H,#00H
X0: LCALL DISP
POP ACC
RETI
;写缓冲区
DISP: PUSH ACC
MOV R1,#36H
MOV A,30H
MOV B,#10H
DIV AB
MOV @R1,B
INC R1
MOV @R1,A
INC R1
MOV A,31H
MOV B,#10H
DIV AB
MOV @R1,B
INC R1
MOV @R1,A
INC R1
MOV A,32H
MOV B,#10H
DIV AB
MOV @R1,B
INC R1
MOV @R1,A
POP ACC
RET
TABLE: DB 03FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -