📄 rstj.asm
字号:
ORG 0000H
LJMP START
ORG 0100H
START: MOV A,P0 ;查置数位P0.4
ANL A,#10H
JNZ START
MOV A,P1 ;送初始座位数
TS: PUSH A ;当前座位数压栈
MOV P2,A ;送数码管显示
CLR P0.0
ZZ: MOV A,P0
ANL A,#20H
JZ Z1 ;查增一位P0.5,为0则进入增一模块
MOV A,P0
ANL A,#40H
JNZ ZZ ;查减一位P0.6,为0则进入减一模块
J1: JNB P0.6,DELAY12 ;减一模块
DELAY12:LCALL DELAY ;延时
POP A
PUSH A
ANL A,#0FH
CLR C
SUBB A,#00H
JNZ J11 ;判断个位是否为0
POP A
SUBB A,#07H ;为0,减7
SJMP TS
J11: POP A
DEC A ;不为0,减1
SJMP TS
Z1: JNB P0.5,DELAY11 ;增一模块
DELAY11:LCALL DELAY ;延时
POP A
PUSH A
ANL A,#0FH
CLR C
SUBB A,#09H ;判断个位是否为9
JNZ Z11 ;不为9,跳转
POP A
ADDC A,#07H ;为9,增7
SJMP TS
Z11: POP A
INC A
SJMP TS
DELAY: MOV R1,#250 ;延时模块
DELAY1: MOV R2,#220
DELAY2: NOP
NOP
NOP
DJNZ R2,DELAY2
DJNZ R1,DELAY1
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -