單片機學習:[2]led流水燈的製作?

學電子的,讓led動起來是一件很簡單的事情,如果你說不會,我只能認為你上課睡覺了或者到學校打了趟醬油,不過也沒關係,知識不一定只從學校學,什麼時候用到了學也不晚,就怕不學哈!好了,廢話一堆讓你久等了,往下看。

單片機開發板最小系統就可以了,但是要支持燒寫功能,在這裡就不贅述開發板的製作了,擁有一套完整成型的開發板會讓你的實驗如虎添翼的,我這裡採用了一個成型的開發板,用起來比較節省時間。led燈板才是這次講的主角。

工具/原料

單片機開發板

led燈板

電腦

方法/步驟

led燈板可以自己製作,我做的是共陽極的,因為單片機驅動低電平的能力強些,具體電路如下圖:

單片機學習:[2]led流水燈的製作

接下來就是與單片機的連接,既然焊接了32個led,最簡單的連接就是直接用單片機的I/O口驅動,下圖是單片機I/O口與led燈序的對應關係:

P0 P1 P2 P3

1~8 9~16 17~24 25~32

單片機學習:[2]led流水燈的製作

單片機學習:[2]led流水燈的製作

打開已經安裝好的編程軟件。(軟件的安裝及新建工程請百度其他經驗參閱)。

單片機學習:[2]led流水燈的製作

本程序比較簡單,沒有太多函數,已經註釋,一看就懂。

#include //頭文件

void main() // 主程序{ unsigned int h; //定義h while(1) { for(h=0;h<50000;h++) //循環for內指令50000次 { P0=0x81; //燈1燈8燈9燈16燈17燈24燈25燈32滅 P1=0x81; P2=0X81; P3=0X81; } for(h=0;h<50000;h++) { P0=0x42; //燈2燈7燈10燈15燈23燈26燈31滅 P1=0X42; P2=0x42; P3=0X42; } for(h=0;h<50000;h++) { P0=0x24; //再向裡挪一位滅 P1=0X24; P2=0x24; P3=0X24; } for(h=0;h<50000;h++) { P0=0x18; //再向裡挪一位 P1=0X18; P2=0x18; P3=0X18; } }}

程序寫好後,打開燒寫軟件,選擇所用的單片機型號,我用的是STC12C5A60S2,然後打開剛剛編寫好的.hex文件,最好先將單片機斷電,點擊下載後再上電。

單片機學習:[2]led流水燈的製作

單片機學習:[2]led流水燈的製作

程序寫完了,也編譯成功了,讓我們來看下效果。圖片是靜止的,暫時只能通過想象一下,預測效果,等你成功了,你就會看到街道上商店牌匾框框上led燈流動的效果了,加油噢!我也剛剛開始學,希望對你有幫助。

單片機學習:[2]led流水燈的製作

單片機學習:[2]led流水燈的製作

最後來個簡圖助與理解。

單片機學習:[2]led流水燈的製作

注意事項

程序是要經過不斷的修改才能達到預期的效果,不要怕麻煩。

要不斷的動腦,想象不同流動效果是怎麼得來的。

單片機, 流水燈,
相關問題答案