惠州學院-微控制器實驗1-P1口亮燈實驗
阿新 • • 發佈:2018-10-31
計算機科學系實驗報告(首頁)
課程名稱 |
微控制器原理及應用 |
班級 |
14計科2班 |
|||||
實驗名稱 |
P1口亮燈實驗 |
教導教師 |
王明安 |
|||||
姓名 |
張欽穎 |
學號 |
1414080901218 |
組號 |
17 |
日期 |
2016年10月13日 |
|
|
|
|
一、實驗目的
1、熟悉程式設計和程式除錯
2、學習P1口的使用方法
3、學習延時子程式的編寫
二、實驗內容
P1口做輸出口,接八隻發光二極體,編寫程式,使發光二極體迴圈點亮,修改程式,改變延時常數,使發光二極體閃亮時間改變,並使發光二極體閃亮移位方向改變。
三、程式框圖
四、實驗步驟
1、用8芯線將P1.0~P1.7連至L1~L8;
2、執行程式HW01.asm,觀察發光二極體閃亮移位情況。
五、實驗結果
程式原始碼:
ORG 0000H LJMPSE18 ORG0080H SE18: MOVP1,#0FFH ;送P1口 LO34: MOVA,#0FEH ;L1發光二極體點亮 LO33: MOVP1,A LCALLSE19 ;延時 RLA ;左移位 SJMPLO33 ;迴圈 SE19: MOV R6,#0A0H ;延時子程式 LO36: MOVR7,#0FFH LO35: DJNZR7,LO35 DJNZ R6,LO36 RET END
改變延時常數,使發光二極體閃亮時間改變,並使發光二極體閃亮移位方向改變
原始碼:
ORG 0000H
LJMP SE18
ORG 0080H
SE18: MOV P1,#0FFH ;送P1口
LO34: MOV A,#0FEH ;L1發光二極體點亮
LO33: MOV P1,A
LCALL SE19 ;延時
LCALL SE19 ;延時
LCALL SE19 ;延時
LCALL SE19 ;延時
LCALL SE19 ;延時
LCALL SE19 ;延時
LCALL SE19 ;延時
LCALL SE19 ;延時
LCALL SE19 ;延時
RR A ;右移位
SJMP LO33 ;迴圈
SE19: MOV R6,#0A0H ;延時子程式
LO36: MOV R7,#0FFH
LO35: DJNZ R7,LO35
DJNZ R6,LO36
RET
END
七、實驗結論、實驗體會
此次實驗是微控制器上機操作的第一次實驗,由於此前已經在軟體實驗中接觸過所需的Keil軟體,遂在軟體安裝等方面沒有花費太多時間;實驗前半部分是將既定程式通過軟體連線至機箱執行,其實驗結果為LED燈從左到右依次點亮,在第二個燈點亮時前一個燈熄滅,形成流水燈效果,此部分沒有遇到太大的困難;更改延時程式部分,經過查詢,由於Keil該軟體不支援傳送立即數資料首位為子母位以及一些未知問題、且經過測試更改R6為#0A00H或者#0A000H均無法實現相應延時效果,其結果不是不能執行,即是程式報錯,我們遂採取下策,將原程式的延時子程式多次呼叫以實現LED燈亮滅間隔達到1S的效果;另外把左移指令RL改為右移指令RR,則可以使發光二極體閃亮方向改變。