首先我們規(guī)劃好硬件電路部分,在這里使用三個(gè)流水燈做簡(jiǎn)單講解吧。單片機(jī)使用簡(jiǎn)單基礎(chǔ)的51單片機(jī)。利用單片機(jī)P3.0~P3.2 三個(gè)I0口,假如外部電源給LED供電,IO口就輸出低電平時(shí)(0),LED燈就會(huì)亮,IO口輸出高電平,LED就會(huì)滅。假如是單片機(jī)IO口給led供電(如果使用P0口需要使用上拉電阻),IO口就輸出低電平時(shí)(0),LED燈就會(huì)滅,IO口輸出高電平,LED就會(huì)亮。
限流電阻阻值計(jì)算:
LED的工作電壓:紅黃為2V,綠藍(lán)白為3.2~3.6V,電流都是18-20ma。下圖是是單片機(jī)IO驅(qū)動(dòng)的情況,P0口需要使用上拉電阻。假設(shè)LED額定電流是18mA。額定電源是3.2v那么限流電阻R2=(5V-3.2V)/18mA=100Ω。(圖就是個(gè)大概,晶振回路和復(fù)位電路都沒(méi)畫(huà))

實(shí)例解析:外部電源供電,電路連接簡(jiǎn)略圖如下
程序設(shè)計(jì)思想:開(kāi)始讓P0保持高電平,三燈都是滅的。然后P0.0輸出低電平,LED1亮,延時(shí)一段時(shí)間后,讓P0.0輸出高電平,P0.1輸出低電平,LED1滅,LED2亮,再延時(shí)一段時(shí)間,讓P0.1輸出高電平,P0.2輸出低電平,此時(shí)LED2滅,LED3亮,延時(shí)后讓亮滅過(guò)程循環(huán)就可實(shí)現(xiàn)流水燈效果。

流水燈仿真實(shí)驗(yàn):4個(gè)LED
程序編寫(xiě)后需要用KECIL C51軟件生成HEX文件,用proteus可以仿真結(jié)果

程序:
#include //頭文件
#include//頭文件
#define uchar unsigned char
uchar j,temp;
void delay(unsigned int ms) //延時(shí)函數(shù)
{
uchar t;
while(ms--)
for(t=0;t<123;t++);
}
void main() //主函數(shù)
{
P1=0xff; //P1=11111111,對(duì)應(yīng)串口燈全滅
delay(500);
temp=0xfe; // 0x11111110
for(j=0;j<4;j++) //此循環(huán)執(zhí)行四次跳出
{
P1=temp; // P1=11111110, P1.0連接的LED燈亮
delay(500); // 延時(shí)
temp=_crol_(temp,1); //左移函數(shù),依次是11111101,11111011,11110111
}
P1=0xff; 跳出循環(huán),P1串口全部是高電平,LED都滅
while(1);
}
審核編輯:湯梓紅
-
led
+關(guān)注
關(guān)注
242文章
23578瀏覽量
668155 -
單片機(jī)
+關(guān)注
關(guān)注
6056文章
44799瀏覽量
643602 -
流水燈
+關(guān)注
關(guān)注
21文章
433瀏覽量
60158
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
如何去點(diǎn)亮基于51單片機(jī)的LED流水燈
如何利用51單片機(jī)點(diǎn)亮流水燈
使用51單片機(jī)控制流水燈點(diǎn)亮的詳細(xì)程序資料免費(fèi)下載

使用51單片機(jī)進(jìn)行16位流水燈收縮點(diǎn)亮的匯編編程免費(fèi)下載

使用單片機(jī)實(shí)現(xiàn)移位函數(shù)操作點(diǎn)亮流水燈的程序和工程文件免費(fèi)下載
使用單片機(jī)實(shí)現(xiàn)3移位運(yùn)算操作點(diǎn)亮流水燈資料免費(fèi)下載
使用單片機(jī)實(shí)現(xiàn)總線操作點(diǎn)亮流水燈的程序和工程文件免費(fèi)下載
使用單片機(jī)實(shí)現(xiàn)1位操作點(diǎn)亮流水燈的程序和工程文件免費(fèi)下載
51單片機(jī)實(shí)現(xiàn)流水燈

51單片機(jī)流水燈實(shí)驗(yàn)

51單片機(jī) LED點(diǎn)亮、閃爍以及流水燈實(shí)現(xiàn)

評(píng)論