實驗一 IO口輸入、輸出實驗
貴 州 大 學 實 驗 報 告 紙
系 别電科班 級電科091班姓 名學号課 程 名 稱單片機成 績
評 定
教師簽名實 驗 時 間 2012年 5 月5 日實驗一 I/O口輸入、輸出
一、實驗目的
掌握單片機P1口、P3口的使用方法。
二、實驗要求
根據實驗内容編寫一個程式,并在實驗儀上調試和驗證。
三、實驗内容
以P1口為輸出口,接八位邏輯電平顯示,LED顯示跑馬燈效果。以P3口為輸入 口,接八位邏輯電平輸出,用來控制跑馬燈的方向。
四、實驗說明和電路原理圖
P1口是準雙向口,它作為輸出口時與一般的雙向口使用方法相同。由準雙向口結構 可知當P1口作為輸入口時,必須先對它置高電平使内部MOS管截止。因為内部上拉電阻阻值是20K~40K,故不會對外部輸入産生影響。若不先對它置高,且原來是低電平,則MOS管導通,讀入的資料是不正确的。
本實驗需要用到CPU子產品(F3區)和八位邏輯電平輸出子產品(E4區)和八位邏輯電平顯示子產品(B5區),八位邏輯電平輸出電路原理圖參見圖1-1。八位邏輯電平顯示電路原理圖參見圖1-2。
圖1-2 八位邏輯電平顯示
圖1-1 八位邏輯電平輸出
五、實驗步驟
㈠ 實驗程式編寫
實驗程式:
;//******************************************************************
;檔案名: Port for MCU51
;功能: I/O口輸入、輸出實驗
;接線: 用導線連接配接八位邏輯電平輸出子產品的K0到CPU子產品的RXD(P3.0口),K1
;到CPU子產品的P3.1口;
;用8位資料線連接配接八位邏輯電平顯示子產品的JD4B到CPU子產品的JD8(P1口)。
;//******************************************************************
DIR BIT P3.0
ORG 0000H
LJMP START
ORG 0100H
START:
Output1:
mov a, #0fEH
mov r5, #8
loop1:
CLR C
mov C,DIR
JC Output2
mov P1, a
rl a
Acall Delay
djnz r5, loop1
Sjmp Output1
Output2:
mov a, #07fH
mov r5, #8
loop2:
CLR C
mov C,DIR
JNC Output1
mov P1, a
rr a
Acall Delay
djnz r5,loop2
Sjmp Output2
Delay:
mov r6,#0
DelayLoop1:
mov r7,#0
DelayLoop2:
NOP
NOP
djnz r7,DelayLoop2
djnz r6,DelayLoop1
ret
end
修改後的程式為:
ORG 0000H
LJMP START
ORG 0100H
START:
Output1:
mov a, #0fEH
mov R5, #8
loop1:
MOV R2,P3
CJNE R2,#0FFH,Output2
mov P1, a
rl a
Acall Delay
djnz R5, loop1
Sjmp Output1
Output2:
mov a, #07fH
mov R5, #8
loop2:
MOV R2,P3