📄 key.asm
字号:
; 该程序不是标准程序,只是供大家参考实验方法,程序编写得比较冗长,同学们可以看了以后自己写个
ORG 0000H
AJMP START
ORG 0100H
KEY1 EQU P3.2
KEY2 EQU P3.3
DATA1 EQU 40H
DATA2 EQU 41H
START:
MOV 40H, #8
MOV 41H, #8
MOV R7, 41H
MOV R6, 40H
MOV R0, #40H
MOV R1, #2
MOV R2, #0
LOOP:
CALL DISP
JNB KEY1, COUNTER1
JNB KEY2, DECCOUNTER1
AJMP LOOP
COUNTER1:
JB KEY1, COUNTER
CALL DISP
AJMP COUNTER1
COUNTER:
MOV R7, 41H
INC R7
CJNE R7, #10, OVR1
MOV R7, #0
MOV R6, 40H
INC R6
CJNE R6, #10, OVR1
MOV R6, #0
OVR1:
MOV 41H, R7
MOV 40H, R6
AJMP LOOP
DECCOUNTER1:
JB KEY2, DECCOUNTER
CALL DISP
AJMP DECCOUNTER1
DECCOUNTER:
MOV R7, 41H
DEC R7
CJNE R7, #255, OTT1
MOV R7, #9
MOV R6, 40H
DEC R6
CJNE R6, #255, OTT1
MOV R6, #9
OTT1:
MOV 41H, R7
MOV 40H, R6
AJMP LOOP
DISP:
MOV DPTR, #TABSEG
MOV A, @R0
MOVC A, @A+DPTR
CPL A
MOV P0, A
CALL OUTS
MOV DPTR, #TABBIT
MOV A, R2
MOVC A, @A+DPTR
MOV P0, A
CALL OUTB
CALL DELAY
MOV P0, #0
CALL OUTB
INC R0
INC R2
DJNZ R1, QUIT1
MOV R0, #40H
MOV R1, #2
MOV R2, #0
QUIT1:
RET
OUTS:
SETB P1.3
NOP
CLR P1.3
RET
OUTB:
SETB P1.2
NOP
CLR P1.2
RET
DELAY:
DJNZ R4, $
RET
TABSEG:
DB 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F
TABBIT:
DB 0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -