📄 可预置可逆4位计数器.asm
字号:
;可预置可逆4位计数器
COUNT EQU 30H ;定义计数变量COUNT的地址为30H
ORG 0000H
START:MOV A,P3 ;处理按键K1-K4
ANL A,#0FH
CPL A
MOV COUNT,A
MOV P1,A
SK2:JB P3.6,SK1 ;SK1的按键是否按下,否的话,跳转至SK1
LCALL DELY10MS ;是的话,延时10ms,用来防抖动
JB P3.6,SK1 ;SK1是否真的按下,否的话,跳转至SK1
DEC COUNT ;是的话,COUNT加1
MOV A,COUNT
CJNE A,#16,NEXT ;COUNT是否为16,否的话,跳转至NEXT
MOV A,P3 ;是的话,重新初始化A
ANL A,#0FH
MOV COUNT,A
NEXT:MOV P1,A
WAIT:JNB P3.6,WAIT ;SK1是否释放,否的话,等待
LJMP SK2 ;是的话,跳转至SK2
SK1:JB P3.7,SK2
LCALL DELY10MS
JB P3.7,SK2
INC COUNT
MOV A,COUNT
CJNE A,#0FFH,NEX
MOV A,P3
ANL A,#0FH
MOV COUNT,A
NEX:MOV P1,A
WAIT2:JNB P3.7,WAIT2
LJMP SK2
;10ms延时子程序
DELY10MS:MOV R6,#20
MOV R7,#248
D1:DJNZ R7,$
DJNZ R6,D1
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -