中级会员
- 积分
- 308
- 威望
- 250
- 贡献
- 50
- 兑换币
- 16
- 注册时间
- 2010-4-6
- 在线时间
- 4 小时
|
呵呵,自己以前编的主要是注意要有防抖动的延迟,以及自循环等待按键的弹起
ID EQU 30H
K1 BIT P1.4
K2 BIT P1.5
K3 BIT P1.6
K4 BIT P1.7
L1 BIT P1.0
L2 BIT P1.1
ORG 0000H
CLR P1.0
MOV ID,#01H
LJMP START
ORG 0100H
START:
CPL L1
LCALL DELAY
CPL L1
LCALL DELAY
SJMP START
KK: JB K1,REL ;K1没闭合转
LCALL DELAY10MS ;K1闭合,延时消抖动
JB K1,REL ; :再判断
MOV ID,#01H ;k1闭合了执行的程序
REL: JNB K1,$ ; ;等待开关弹起
JB K2,REL2
LCALL DELAY10MS
JB K2,REL2
MOV ID,#02H
REL2:JNB K2,$
JB K3,REL3
LCALL DELAY10MS
JB K3,REL3
MOV ID,#03H
REL3:JNB K3,$
RET
DELAY10MS:
MOV R6,ID ;延时10MS子程序
LOOP1: MOV R7,#248
DJNZ R7,$
DJNZ R6,LOOP1
RET
DELAY:
MOV R5,#250 ;延时20MS子程序
LOOP2: LCALL DELAY10MS
LCALL KK
DJNZ R5,LOOP2
RET
END |
|