51單片機C程序實驗LED燈:[2]左到右的流水燈?

依舊是基礎的LED燈部分的實驗

說明:實現一排燈從左到右依次一個一個點亮熄滅,實現流水燈

工具/原料

proteus仿真軟件

keil軟件

proteus電路圖

元件清單:(分別是)

51單片機

電容

瓷片電容(也可用普通電容)

晶振

紅色二極管

電阻

51單片機C程序實驗LED燈:[2]左到右的流水燈

電路圖的連接方法

51單片機C程序實驗LED燈:[2]左到右的流水燈

程序清單

說明:本例有兩種程序寫法

第一種是入門級別比較基礎的寫法

先是依舊延時子程序,然後主程序利用直接賦值,與“>>”循環

第二種是稍微高級一些的寫法,調用了其他頭文件

主要是利用了一個intrins.h文件下的右循環語句”P0=_cror_(P0,1); “另也有左循環_crol_(),括號裡面是要循環移位的值。

51單片機C程序實驗LED燈:[2]左到右的流水燈

51單片機C程序實驗LED燈:[2]左到右的流水燈

【第一種】

#include

//延時

void delay()

{

int i;

for(i=0;i<=30000;i++);

}

void main()

{

char i;

int m;

m=0x80;

delay();

for(i=0;i<=7;i++)

{

P0=~m;

m=m>>1;

delay();

}

}

【第二種】

#include

#include

//延時

void delay()

{

int i;

for(i=0;i<=30000;i++);

}

//主程序

void main()

{

P0=0xfe;

while(1)

{

P0=_cror_(P0,1); //P0 的值向左循環移動

delay();

}

}

完成結果仿真圖

因為是靜態圖。。所以大家看看就好

51單片機C程序實驗LED燈:[2]左到右的流水燈

注意事項

還是注意電阻值,太大不會亮,這是實際生活的嘗試,仿真中可能會忘記

有問題可評論

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