2007年3月29日 星期四

補充範例(1): 指撥開關 + 8個LED

;
;指撥開關/8個LED實習板:補充範例(1)
; 用第一個指撥開關ON/OFF控制左旋/右旋,其餘的七個不用
; 第一個指撥開關接到8051的 P1.0;
; [注意]:共陰接法, 1->OFF, 0->ON; 共陽接法, 1->ON, 0->OFF; 此例採用共陰接法
; 若 P1.0==1 (即OFF)則右旋; 若 P1.0==0 (即ON)則左旋;

START:
MOV A,#7FH

LOOP:
JNB P1.0, ELSE ; 若P1.1==0則跳到 ELSE: 去做左旋
RR A ; 否則執行 右旋
AJMP END_IF ; 做完右旋後, 要跳開 ELSE, 避開左旋, 以免做白工
ELSE:
RL A ; 做左旋
END_IF:
MOV P0,A ; 輸出到 LED 上
ACALL DELAY ; 拖一下時間
AJMP LOOP

DELAY
MOV R4, #150
DL1:
MOV R5, #250
DL2: NOP
DJNZ R5, DL2
DJNZ R4, DL1
RET

END

2 則留言:

QQ 提到...

請問大大,這個需要做連線設定嗎?

如果要的話,能請大大教一下嗎@@?

謝謝,感激不盡!

小民 提到...

可以請問一下如果我今天要做一個用指撥開關來控制led的程式以及程式所執行delay的時間我因該如何去控制呢?
指撥開關總共有8個
左邊四個挑程式
右邊四個挑時間