KEY1 BIT P3.0
KEY2 BIT P3.1
KEY3 BIT P3.2
KEY4 BIT P3.3
按键处理程序:
-----------------------------------
READ_KEY:
JBKEY1, K2
CALL DELAY
JBKEY1, K2
JNB KEY1, $
PUSH ACC
INC 75H
MOV A, 75H
CJNE A, #10, ZINT01
MOV 75H, #0
ZINT01:
POP ACC
JMP K_EXIT
---------------
K2: JBKEY2, K3
CALL DELAY
JBKEY2, K3
JNB KEY2, $
PUSH ACC
INC 76H
MOV A, 76H
CJNE A, #10, ZINT01
MOV 76H, #0
ZINT01:
POP ACC
JMP K_EXIT
---------------
K3: JBKEY3, K4
CALL DELAY
JBKEY3, K4
JNB KEY3, $
PUSH ACC
DEC 75H
MOV A, 75H
CJNE A, #255, ZINT03
MOV 75H, #9
ZINT03:
POP ACC
JMP K_EXIT
---------------
K4: JBKEY4, K_EXIT
CALL DELAY
JBKEY4, K_EXIT
JNB KEY4, $
PUSH ACC
DEC 76H
MOV A, 76H
CJNE A, #255, ZINT04
MOV 76H, #9
ZINT04:
POP ACC
K_EXIT:
RET
---------------
DELAY:
DJNZ R7, $
DJNZ R7, $
RET
-----------------------------------
编程时,要把整个程序,分解成一个一个模块。一个模块,只包括一个功能。
那么,KEY 模块:
读出按键、消除抖动、读取键值,返回键值。
键值包括:00H、08H... 20H,FFH(无键)。
这个 KEY 模块,到这就完了。
按键如何处理,则是另外的模块。
楼主流程图,包罗万象,好像是个主程序。不好弄。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)