|
|
| <!--插入廣告JS代碼--> |
實驗任務(wù)
如圖一所示:在P1.0端口上接八個發(fā)光二極管LED0-LED7,使LED1至LED2做流水顯示實驗。
電路原理圖

系統(tǒng)板上硬件連線
本實驗可在本站的:成功一號、新動2005、精簡型2004、ISP下載型等學(xué)習(xí)套件上直接操作。
相關(guān)常識說明:
單片機在上電初始后,其各端口輸出為高電平。如果我們現(xiàn)在想讓接在P1.0口的LED1亮,那么我們只要把P1.0口的電平變?yōu)榈碗娖骄涂梢粤。想讓LED1滅,LED0亮,只需將P1.0升高,P1.1變低,LED1就熄滅LED2隨后既點亮!依始類推如下所示8只LED變會一亮一暗的做流水燈了。
本實驗原程序如下:
;正反流水燈實驗
;****************************************************************
;* Date : 2004.4.20 --------------------------------------------*
;* Support Mb: 020-34007281 E-mail:c51cn@163.com ------*
;* Create by :dengdewu http://www.c51.cn 更多例程請登陸網(wǎng)站 ----*
;* 網(wǎng)站單片機學(xué)習(xí)資料同步更新,敬請新老朋友隨時關(guān)注 ------------*
;****************************************************************
ORG 0030H ;程序由地址30開始
JMP DDW
DDW: MOV SP,#60H ;設(shè)置堆棧指針到RAM地址60H
LOOP: ;循環(huán)
CLR C ;進位標志清除
MOV A,11111111B ;加載初值使LED全部熄滅
MOV R4,#8 ;左移計數(shù)值 移8次
LOOPL:
RLC A ;累加器內(nèi)含值左移一位
MOV P1,A ;由P1輸出
MOV R5,#50 ;延遲0.5S
CALL DELAY
DJNZ R4,LOOPL ;繼續(xù)左移
MOV R4,#8 ;右移計數(shù)值,移8位
LOOPR:
RRC A ;累加器內(nèi)含右移一位
MOV P1,A ;由P1輸出
MOV R5,#50 ;延遲0.5S
CALL DELAY
DJNZ R4,LOOPR ;繼續(xù)右移
JMP LOOP ;再執(zhí)行循環(huán)一次
DELAY: ;延時子程序
MOV R6,#50
S1: MOV R7,#100
DJNZ R7,$
DJNZ R6,S1
DJNZ R5,DELAY
RET