本設計主要由三部分組成,包括AT89C51單片機、黃色Ø05LED、電阻。該設計著重詳細地介紹了LED循環閃爍控制系統的整體系統設計方案、硬件選擇基礎、軟件使用方法及技巧。該電路以AT89C51作為CPU處理單元連接各個功能模塊,以黃色Ø05LED作為輸出模塊來顯示閃爍狀態和循環狀態。通過Protues8.7單片機電路原理圖進行連接布線連接各個模塊,再用Keil uVision5專業編譯軟件完成源程序編譯和調試,最終進行LED循環閃爍控制系統的實驗電路仿真來模擬LED循環閃爍。
360截圖16390405656875.jpg (52.74 KB, 下載次數: 54)
下載附件
2019-12-16 21:46 上傳
360截圖16220416496354.jpg (69.34 KB, 下載次數: 57)
下載附件
2019-12-16 21:46 上傳
360截圖16470412308558.jpg (73.96 KB, 下載次數: 54)
下載附件
2019-12-16 21:46 上傳
單片機源程序如下:
- //程序:led-ss.c
- //功能:LED循環閃爍控制系統
- #include<REGX51.H> //包含頭文件REGX51.H,定義了51單片機的所有SFR
- //函數名:delay
- void delay (unsigned int i)
- {
- while(i--); //i次空操作
- }
- void main() //主函數
- {
- unsigned char led ,n,i; //定義字符變量led,n,i
- led=0x01; //給變量led賦值0x01,即二進制數00000001
- for(i=0;i<8;i++) //用for循環控制移位8次
- {
- for(n=0;n<3;n++) //用for循環控制一個燈閃爍3次
- {
- P0=~led; //將led取反后的值送到P0口輸出,亮一個燈
- delay(20000); //軟件延時
- P0=0xff; //燈熄滅
- delay(20000); //軟件延時
- } // 結束3次閃爍
- led<<=1; //將led的二進制數值左移一位
- } //結束for循環
- }
復制代碼 |