作者modest218 (自由的答案)
看板ASM
标题[问题] 8051计时与计数问题
时间Fri Aug 22 19:35:18 2008
我想让我的程式每一秒判断我按按钮三下LED灯从左移变右移,
我想改成只要一秒内按小於等於三下他都会右移,该用哪一个指令,
让他判断小於等於时可以达到我要的功能呢?
以下是我的程式码:
.SYMBOLS ON
LedData .REG 30H
Count .REG 31H
ORG 00H
JMP RESET
ORG 1BH
JMP TIMER
ORG 50H
RESET: MOV SP,#5FH
START: SETB P3.4
SETB EA
SETB ET1
MOV TMOD,
#00010110B
MOV TH1,#>(20016-4999)
MOV TL1,#<(20016-4999)
MOV TH0,#256-3
MOV TL0,#256-3
SETB TR0
SETB TR1
MOV LedData,
#11111110B
MOV Count,#20
WAIT:
JBC P2.1,INT
JB TF0,OK
JMP WAIT
INT:
MOV A,LedData
RL A
MOV LedData,A
MOV P1,A
JMP WAIT
TIMER:
MOV TH1,#>(20016-4999)
MOV TL1,#<(20016-4999)
DJNZ Count,EXIT
MOV Count,#20
SETB P2.1
MOV TH0,#256-3
MOV TL0,#256-3
EXIT:
RETI
Cou:
JB TF0,OK
AJMP Cou
OK:
CLR TF0
RR A
MOV P1,A
JMP WAIT
END
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.150.36