📄 c09.asm
字号:
DS3 DATA 73H
DS4 DATA 74H
DS5 DATA 75H
DS6 DATA 76H
DS7 DATA 77H
DS8 DATA 78H
BUFF DATA 7AH
SBUFF DATA 7BH
MBUFF DATA 7CH
PIO XDATA 0a001H
PIO1 XDATA 0a000h
ORG 0000H
AJMP START
ORG 001BH ;使用定时器1
AJMP CLOCK
ORG 0030H
START: MOV SP,#60H
CLR 20H
MOV DPTR,#0a001H ;8279初始化 ;;;;;;;;;;;;;;;;;
MOV A,#0DFH
MOVX @DPTR,A
LOOP10: MOVX A,@DPTR
JB ACC.7,LOOP10
MOV A,#0eH ;选择输入,显示器译码扫描,
MOVX @DPTR,A
MOV A,#32h
MOVX @DPTR,A
MOV SBUFF,#00H
MOV MBUFF,#00H
MOV A,MBUFF
CJNE A,#60H,TIME2
TIME2: JNC STOP
MOV A,SBUFF
CJNE A,#60H,TIME3
TIME3: JNC STOP
MOV BUFF,#00H
MOV TMOD,#10H
MOV TH1,#0DBH
MOV TL1,#0F0H
SETB TCON.TR1
SETB ET1
SETB EA
TIME5:
CJNE A,#20H,TIME6
AJMP STOP
TIME6: ACALL PTDEA
ACALL DSUP
SJMP TIME5
;
STOP: CLR 0CAH
MOV IE,#00000000B
STOP1: SJMP STOP1
;
PTDEA: MOV R0,#DS6
MOV A,BUFF
ACALL PTDEA1
; MOV DS6,#12H
; DEC R0
;MOV DS5,#12H
; DEC R0
MOV A,SBUFF
ACALL PTDEA1
PTDEA1: MOV R1,A
ACALL PTDEA2
MOV A,R1
SWAP A
PTDEA2: ANL A,#0FH
MOV @R0,A
DEC R0
RET
;
CLOCK: CLR EA ;定时器1处理子程序
PUSH PSW
PUSH ACC
CLR 0CFH
INC BUFF
MOV A,BUFF
CJNE A,#64H,CLOCK1
MOV BUFF,#00H
MOV A,SBUFF
INC A
DA A
MOV SBUFF,A
CJNE A,#60H,CLOCK1
MOV SBUFF,#00H
MOV A,MBUFF
INC A
DA A
MOV MBUFF,A
CJNE A,#60H,CLOCK1
MOV MBUFF,#00H
CLOCK1: POP ACC
POP PSW
SETB EA
RETI
DSUP: mov 30h,#81h ;显示子程序
mov 31h,#DS3
mov r7,#04h
loop3: mov dptr,#PIO
mov a,30h
movx @dptr,a
mov r0,31h
mov a,@r0
mov dptr,#SGTB
movc a,@a+dptr
mov dptr,#PIO1
movx @dptr,a
inc 31h
mov a, 30h
clr c
rlc a
orl a,#80h
mov 30h,a
djnz r7,loop3
ret
SGTB: DB 0C0H ;0 字形表
DB 0F9H ;1
DB 0A4H ;2
DB 0B0H ;3
DB 99H ;4
DB 92H ;5
DB 82H ;6
DB 0F8H ;7
DB 080H ;8
DB 90H ;9
DB 88H ;A
DB 83H ;B
DB 0C6H ;C
DB 0A1H ;D
DB 86H ;E
DB 8EH ;F
DB 0FFH ;
DB 8CH ;P
DB 0BFH ;-
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -