📄 99.asm
字号:
SECOND EQU 30H
TCOUNT EQU 31H
ORG 00H
LJMP START
ORG 03H
LJMP PRESS
ORG 0BH
LJMP CLOCK
START: MOV SECOND,#00H
MOV TCOUNT,#00H
MOV R7,#00H
MOV TMOD,#01H
MOV TH0,#(65536-50000)/256
MOV TL0,#(65536-50000) MOD 256
SETB EA
SETB EX0
SETB ET0
SETB PX0
SETB IT0
DISPLAY: ACALL DISP
SJMP DISPLAY ;主程序结束
DISP: MOV A,SECOND ;显示子程序
MOV B,#10
DIV AB
MOV P0,#00H
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
MOV A,#0FDH ;1111 1101
MOV P1,A
ACALL DELAY
MOV P0,#00H
MOV A,B
MOVC A,@A+DPTR
MOV P0,A
MOV A,#0FEH
MOV P1,A
ACALL DELAY
RET
DELAY: MOV R6,#10 ;延时子程序
D1: MOV R5,#124
DJNZ R5,$
DJNZ R6,D1
RET ;子程序返回
PRESS: CJNE R7,#00H,J1 ;INT0的中断服务程序
INC R7
SETB TR0
SJMP BACK
J1: CJNE R7,#01H,J2
CLR TR0
INC R7
SJMP BACK
J2: CJNE R7,#02H,BACK
MOV R7,#00H
MOV SECOND,#00H
MOV TCOUNT,#00H
BACK: RETI ;中断返回
CLOCK: MOV TH0,#(65536-50000)/256 ;T0中断服务子程序
MOV TL0,#(65536-50000)MOD 256
INC TCOUNT
MOV A,TCOUNT
CJNE A,#20,NEXT
MOV TCOUNT,#00H
INC SECOND
MOV A,SECOND
CJNE A,#100,NEXT
MOV SECOND,#00H
NEXT: RETI ;中断返回
TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -