實驗三LED指示燈循環控制
一、實驗目的熟悉uVision4編譯軟件、掌握C51編程與調試方法
二、實驗原理
實驗電路原理圖如教材219圖A.34所示,圖中8只LED指示燈接于P0口,切都有上拉電阻。時鐘電路、復位電路、片選電路與前面的實驗電路相同。
在編程軟件的配合下,要求實現如下功能:8只發光二極管做循環點亮控制,且亮燈順序為D1-D2-D3…-D8-D7…-D1,無限循環,兩次亮燈的時間間隔約為0.5s,軟件編程原理為:
首先使P0.0-1,其余端口-0,這樣可使D1燈亮,其余燈滅;軟件延時0.5s后,使P0口整體左移1位,得到P0.1-1,其余端口-0,這樣可使
D2燈亮其余全滅;照此思路P0整體左移7次,再又移7次,如此無限往復即可實現上述功能。
三、實驗內容
1、按照教材P219的圖A.34,繪制實驗三電路原理圖;
2、根據功能要求,編寫C51程序;
3、練習μVision4程序動態調試方法,并最終實現8個LED燈依次點亮的功能:
P0.0→P0.1→P0.2→P0.3→
┅
→P0.7→P0.6→P0.5→
┅
→P0.0的順序,無限循環,間隔約50ms;
4、觀察仿真結果,完成實驗報告。
四、實驗步驟
(1)
在ISIS中繪制電路原理圖,按照表A4.1將元件添加到編譯環境中;
(2)
在uVision4中編寫C51程序;
(3)
利用uVision4的編譯調試功能檢查語法和邏輯錯誤;
(4)
下載可執行文件,在Proteus中觀察仿真結果,檢查程序的正確性。
五、實驗要求
提交的實驗報告中應包括電路的原理圖和實驗結果分析。
Category
Reference
Value
Microprocessor
ICs
U1
80C51
Miscellancous
X1
CRYSTAL
Capacitors
C2~C3
CAP
Capacitors
C1/22uF
CAP--ELEC
Resistors
R2~R8/200
RES
Resistors
R10~R17/100
RES
Optoelectronics
D1~D8
LED--YELLOW1、電路分析及原理圖
圖12、編程思路及C51源程序
編程思路
1,P0口賦一初值,使D1燈亮,D2~D8燈滅
2,調用函數delay,傳入參數值為50(ms)
3,采用while結構的無限循環體
4,由上向下循環控制(變量i的初值為1,終值小于8,增量為+1)
5,使P0中的數值向左移1位
6,調用函數delay,傳入參數值為50(ms)
7,返回第二部繼續進行
如圖2為本次實驗源程序
圖2
調試運行
圖3
調試運行
圖44、仿真運行效果
起始時的情況
運行中的情況
5、實驗小結
1,通過實驗我們實現了最終實現8個LED燈依次點亮的功能:
P0.0→P0.1→P0.2→P0.3→
┅
→P0.7→P0.6→P0.5→
┅
→P0.0的順序,無限循環,間隔約50ms;