導航:首頁 > 操作系統 > 單片機led燈實驗

單片機led燈實驗

發布時間:2023-06-26 04:05:39

單片機 8個LED燈隨機閃爍怎麼做

1、首先在電腦中新建項目:Keil uVision4 51單片機LED閃爍編程,如下圖所示。

㈡ 單片機點亮一個LED燈的電路圖實訓內容所有的原件以及原件特點

單片機點亮一個LED燈,需要以下元件。80c51系列單片機一片,ch340一片,12Mhz晶體兩個,22pf電容兩個,4.7k電阻一個,10uf電容一個,輕觸開關一個,LED燈一個,2.2k 1/4w電阻一個,USB座一個,USB線一根。這些元件的特點由其自身特性決定的。

㈢ 單片機原理流水燈實驗報告

單片機原理流水燈實驗報告:一、實驗目的:進一步熟習keil模擬軟體、proteus模擬軟體的使用。認識並熟習單片機坦斗I/O口和LED燈的電路構造,學會建讓友磨立簡單的流水燈電路。掌握C51中單片機I/O口的編程方法和使用I/O口進行輸入輸出的注意事項。

㈣ 單片機實驗利用定時器控制八個LED燈每隔1S每四個為一組輪流點亮

03 8隻LED左右來回點亮

/* 名稱:8隻LED左右來回點亮

說明:程序利用循環移位函數_crol_和_cror_形成來回滾動的效果

*/

#include<reg51.h>

#include<intrins.h>

#define uchar unsigned char

#define uint unsigned int

//延時

void DelayMS(uint x)

{

uchari;

while(x--)

{

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

}

}

//主程序

void main()

{

uchari;

P2=0x01;

while(1)

{

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

{

P2=_crol_(P2,1);//P2的值向左循環移動

DelayMS(150);

}

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

{

P2=_cror_(P2,1);//P2的值向右循環移動

DelayMS(150);

}

}

}

04 花樣流水燈

/* 名稱:花樣流水燈

說明:16隻LED分兩組按預設的多種花樣變換顯示

*/

#include<reg51.h>

#define uchar unsigned char

#define uint unsigned int

uchar code Pattern_P0[]=

{

0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7,0xff,0xe7,0xc3,0x81,0x00,0x81,0xc3,0xe7,0xff,

0xaa,0x55,0x18,0xff,0xf0,0x0f,0x00,0xff,0xf8,0xf1,0xe3,0xc7,0x8f,0x1f,0x3f,0x7f,

0x7f,0x3f,0x1f,0x8f,0xc7,0xe3,0xf1,0xf8,0xff,0x00,0x00,0xff,0xff,0x0f,0xf0,0xff,

0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,

0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,

0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff

};

uchar code Pattern_P2[]=

{

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,0xff,

0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7,0xff,0xe7,0xc3,0x81,0x00,0x81,0xc3,0xe7,0xff,

0xaa,0x55,0x18,0xff,0xf0,0x0f,0x00,0xff,0xf8,0xf1,0xe3,0xc7,0x8f,0x1f,0x3f,0x7f,

0x7f,0x3f,0x1f,0x8f,0xc7,0xe3,0xf1,0xf8,0xff,0x00,0x00,0xff,0xff,0x0f,0xf0,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,

0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,

0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff

};

//延時

void DelayMS(uint x)

{

uchari;

while(x--)

{

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

}

}

//主程序

void main()

{

uchari;

while(1)

{ //從數組中讀取數據送至P0和P2口顯示

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

{

P0=Pattern_P0[i];

P2=Pattern_P2[i];

DelayMS(100);

}

}

}

05 LED模擬交通燈

/* 名稱:LED模擬交通燈

說明:東西向綠燈亮若干秒,黃燈閃爍5次後紅燈亮, 紅燈亮後,南北向由紅燈變為綠燈,若干秒後南北向黃燈閃爍5此後變紅燈,東西向變綠燈,如此重復。

*/

#include<reg51.h>

#define uchar unsigned char

#define uint unsigned int

sbit RED_A=P0^0; //東西向燈

sbit YELLOW_A=P0^1;

sbit GREEN_A=P0^2;

sbit RED_B=P0^3; //南北向燈

sbit YELLOW_B=P0^4;

sbit GREEN_B=P0^5;

uchar Flash_Count=0,Operation_Type=1; //閃爍次數,操作類型變數

//延時

void DelayMS(uint x)

{

uchari;

while(x--)for(i=0;i<120;i++);

}

//交通燈切換

void Traffic_Light()

{

switch(Operation_Type)

{

case1: //東西向綠燈與南北向紅燈亮

RED_A=1;YELLOW_A=1;GREEN_A=0;

RED_B=0;YELLOW_B=1;GREEN_B=1;

DelayMS(2000);

Operation_Type=2;

break;

case2: //東西向黃燈閃爍,綠燈關閉

DelayMS(300);

YELLOW_A=~YELLOW_A;GREEN_A=1;

if(++Flash_Count!=10)return; //閃爍5次

Flash_Count=0;

Operation_Type=3;

break;

case3: //東西向紅燈,南北向綠燈亮

RED_A=0;YELLOW_A=1;GREEN_A=1;

RED_B=1;YELLOW_B=1;GREEN_B=0;

DelayMS(2000);

Operation_Type=4;

break;

case4: //南北向黃燈閃爍5次

DelayMS(300);

YELLOW_B=~YELLOW_B;GREEN_B=1;

if(++Flash_Count!=10)return;

Flash_Count=0;

Operation_Type=1;

}

}

//主程序

void main()

{

while(1)Traffic_Light();

}

06 單只數碼管循環顯示0~9

/* 名稱:單只數碼管循環顯示0~9

說明:主程序中的循環語句反復將0~9的段碼送至P0口,使數字0~9循環顯示

*/

#include<reg51.h>

#include<intrins.h>

#define uchar unsigned char

#define uint unsigned int

uchar codeDSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};

//延時

void DelayMS(uint x)

{

uchart;

while(x--)for(t=0;t<120;t++);

}

//主程序

void main()

{

uchari=0;

P0=0x00;

while(1)

{/* for(;i<11;i++){ P0=~DSY_CODE[i]; DelayMS(300);} //注:另一方案 */

P0=~DSY_CODE[i];

i=(i+1)%10;

DelayMS(300);

}

}

㈤ 單片機led左右燈實驗:要求: 八個LED燈依次向左再向右,循環點亮,間隔閃爍

你現在的程序就有問題啊。我給你改改吧。一會兒給你發程序附件。你要的就是流水燈程序唄,就是先從左向右依次點亮led燈然後在從右向左依次點亮對吧。

程序已經給你傳到附件裡面了,用電腦下載吧,傳的c程序你可以直接用。有什麼不懂的再問我吧。(你的編程風格很有問題啊,程序寫的一坨,層次不清晰沒有標注,我初學的時候也犯了這樣的錯誤,將來你寫大篇幅的程序的時候會出現一堆問題的,清晰地編程風格非常重要,僅僅是建議。)

㈥ 單片機流水閃爍燈的實驗目的

學習基礎知識。

㈦ 51單片機LED燈閃爍實驗,具體分析一下以下程序每一步的作用,完全看不懂。。。

#include<reg51.h>
void delay(unsigned int i);
main() //主函數
{
P2=0x55; //P2口:0101 0101 從左到右:第一個口低電平,第二個口高電平。。。。
delay(600); //延時600,不延時你來不及看見燈亮
P2=0xaa; /*P2口輸出端取反,1010 1010 高電平變低電平,低電平變高電平,(原來亮的關掉,原來不亮的亮)*/
delay(600);
}
void delay(unsigned int i) //這個是延時函數
{
unsigned char j;
for(i;i>0;i--)
for(j=255;j>0;j--) ;
}
這樣應該明白了吧!不過你這個程序,按一下復位(或者打開一次電源)只亮一下。加個循環就可以不停的閃啦!

㈧ 單片機led流水燈實驗步驟

一個小的程序是不需要專門繪制流程圖的。其實在初學階段,畫好流程圖能幫助我們整理好程序設計的脈絡,讓程序變得有條理。在編程的時候,流程圖像一個指路明燈引領著程序的走向,所以應該養成良好的習慣,在編寫程序之前,繪制一份流程圖。

流程圖的繪制方法很簡單,一些編程類書籍有過專門的介紹,在本書就不再講述了。怎樣才能達到我們演示的流水燈的效果,就是讓P1埠在間隔一段時間後,輸出不同的值?假設我們想要的效果是某一時刻,只有一個LED小燈亮,而間隔的時間是一秒,當I/O埠輸出高電平的時候,LED小燈是不亮的,當I/O埠輸出低電平的時候,LED小燈才亮。如圖所示,P1的值用十六進制可以表示為FEH,因為四位二進制數可以表示一位十六進制數。我們得出在不同LED小燈被點亮的時候,P1埠輸出的狀態程序流程圖還是比較簡單的,P1口在間隔一段時間之後,輸出不同的值,然後返回到程序執行的起點,重新開始執行,這樣就會循環往復不斷地出現流水的效果。

閱讀全文

與單片機led燈實驗相關的資料

熱點內容
java轉sql 瀏覽:701
android獲取apn 瀏覽:69
phpfpm進程池 瀏覽:791
解壓掏耳朵音頻 瀏覽:670
爬香山解壓 瀏覽:948
演算法導論回溯 瀏覽:339
開盤指標源碼查詢 瀏覽:526
有道雲保存伺服器出錯 瀏覽:639
生成360文件夾 瀏覽:1004
圖庫的文件夾是哪個 瀏覽:505
程序員為什麼葯學日語 瀏覽:423
熟悉linux常用命令 瀏覽:860
印度外賣小哥是程序員 瀏覽:413
紹興程序員開發駐場流程 瀏覽:546
索納塔8的壓縮比 瀏覽:16
私有雲主要伺服器 瀏覽:939
為什麼主題解壓那麼慢 瀏覽:862
怎麼下載掃描二維碼的手機app 瀏覽:729
雲伺服器創建私有鏡像的時候一定要關機嗎 瀏覽:117
php開發學習門戶 瀏覽:387