導航:首頁 > 操作系統 > 單片機控制led燈程序

單片機控制led燈程序

發布時間:2022-05-01 08:09:28

A. 51單片機控制LED燈

首先要查看電路的連接,看看輸入連接到單片機的哪個引腳(比如P1.0),LED燈連接到哪個引腳(比如P2.0)。然後看是高電平有效還是低電平有效(也就是高電平時LED燈亮,還是低電平時LED燈亮)。
如果是高電平燈亮的話,程序如下:
P2.0=P1.0;

B. 單片機LED燈閃爍程序

char LED;
sbit key1down=P1^0 ; // 設開關key1連接此埠
sbit key2down=P1^1 ; // 設開關key2連接此埠
void main(){

P0=0xff; // 輸出低電平LED亮

LED=0xfe;
while(1){
P0=LED; delay();
if(key1){ LED <<= 1 ; } // 將LED左移一位;
if(key2){ LED >>= 1 ; LED |=0x80; } // 將LED右移一位;
if(key1down==0) { key1=1; key2=0;}
if(key2down==0) { key1=0; key2=1;}
}

C. 用C語言編寫一個單片機控制LED燈閃爍變化的編程 急用!!!!!!!!!

C語言實現LED燈閃爍控制配套51單片機開發板。

#include //包含單片機寄存器的頭文件

/****************************************
函數功能:延時一段時間

*****************************************/

void delay(void) //兩個void意思分別為無需返回值,沒有參數傳遞。

{

unsigned int i; //定義無符號整數,最大取值范圍65535。

for(i=0;i<20000;i++) //做20000次空循環。

; //什麼也不做,等待一個機器周期。

}

/*******************************************************

函數功能:主函數 (C語言規定必須有也只能有1個主函數)。

********************************************************/
void main(void)

{

while(1) //無限循環。

{

P0=0xfe; //P1=1111 1110B, P0.0輸出低電平。

delay(); //延時一段時間。

P0=0xff; //P1=1111 1111B, P0.0輸出高電平。

delay(); //延時一段時間。

}

}

單片機驅動LED燈的源程序:

#include<reg52.h> //頭文件。

#define uint unsigned int

#define uchar unsigned char

sbit LED1=P1^7; //位定義。

void delay_ms(uint);//mS級帶參數延時函數。

void main()

{

while(1)

{

LED1=0;

delay_ms(1000);

LED1=1;

delay_ms(1000);

}

}

void delay_ms(uint z) //延時子程序

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

(3)單片機控制led燈程序擴展閱讀:

單片機應用分類:

通用型:

這是按單片機(Microcontrollers)適用范圍來區分的。例如,80C51式通用型單片機,它不是為某種專門用途設計的;專用型單片機是針對一類產品甚至某一個產品設計生產的,例如為了滿足電子體溫計的要求,在片內集成ADC介面等功能的溫度測量控制電路。

匯流排型:

這是按單片機(Microcontrollers)是否提供並行匯流排來區分的。匯流排型單片機普遍設置有並行地址匯流排、 數據匯流排、控制匯流排,這些引腳用以擴展並行外圍器件都可通過串列口與單片機連接。

另外,許多單片機已把所需要的外圍器件及外設介面集成一片內,因此在許多情況下可以不要並行擴展匯流排,大大減省封裝成本和晶元體積,這類單片機稱為非匯流排型單片機。

控制型:

這是按照單片機(Microcontrollers)大致應用的領域進行區分的。一般而言,工控型定址范圍大,運算能力強;用於家電的單片機多為專用型。

通常是小封裝、低價格,外圍器件和外設介面集成度高。 顯然,上述分類並不是惟一的和嚴格的。例如,80C51類單片機既是通用型又是匯流排型,還可以作工控用。

參考資料來源:網路-單片機



D. 單片機下面程序是怎麼實行LED燈閃爍的

  1. 原理:LED閃爍其實就是LED亮滅,要看電路,有的直接是單片機驅動的小LED,給高平亮,給低電平滅,一直給高低電平循環就表現出亮滅了。

  2. 延時:就是亮多久後滅,滅多久後亮。

  3. 實現:先給高電平,LED亮,經過延時後,再給一個低電平,LED滅,再給一個延時,如此無限循環。

E. 單片機C語言按鍵控制LED燈

其實是一樣的,也沒什麼哪個規范這一說,這個看個人習慣了

首先if(SW13==0)是判斷此引腳是否為0 (按鍵按下)
然後一個delay用於按鍵防抖動

沒被注釋的那部分是靠if在次判斷是否為0按下按下後執行LED_ON函數使LED亮
然後通過while判斷按鍵是否松開,如果松開的話就繼續執行LED_OFF將LED關閉

而注釋掉的那段是依靠while函數直接判斷按鍵是否處於按下狀態
是的話就循環執行LED_ON函數直至判斷按鍵松開(SW13=1)後在繼續執行到LED_OFF函數使LED 關閉

不過這兩種寫法的有個共同缺點就是按鍵判斷是while死循環,如果你這個按鍵按下後,單片機就只是在判斷這個條件成立與否,期間不在進行其他工作

F. 單片機通過按鈕控制一個LED小燈的亮滅,請問這個程序怎麼寫

led應該是一個變數,是代表led燈 亮或者滅的一個變數。 當你按下開關後,s1==0,就執行 led=!led 這條語句。 led=!led
的意思就是取反的意思,即原來led燈亮的話 執行該條語句後就變成滅;原來滅的話 執行該條語句後
就變成亮。按鍵按下就打控制燈的io取反就可以了。如:if(key1==1){while(key1==1); //
等待按鍵放開led1=~led1;}

G. 單片機按鍵控制LED燈亮滅程序

led應該是一個變數,是代表led燈 亮或者滅的一個變數。 當你按下開關後,s1==0,就執行 led=!led 這條語句。led=!led 的意思就是取反的意思,即原來led燈亮的話 執行該條語句後就變成滅;原來滅的話 執行該條語句後 就變成亮。按鍵按下就打控制燈的io取反就可以了。如:if(key1==1){while(key1==1); // 等待按鍵放開led1=~led1;}

H. 用C51單片機控制12個LED流水燈的C語言程序怎麼寫

#include "REG52.H"

//控制引腳定義
sbit LED1 = PX.X; //P0.0-P3.7任意引腳
.... .... .......
sbit LED12 = PX.X;
//宏定義燈亮燈滅
#define LED1_ON( ) LED1 =0 //陽極接電源
#define LED1_OFF( ) LED1 =1 //陽極接電源
....... ............. .............
#define LED12_ON( ) LED12 =0 //陽極接電源
#define LED12_OFF( ) LED12 =1 //陽極接電源

void Init_GPIO( )//埠引腳初始化,關閉所有指示燈
{
LED1_OFF( ) ;
..............
LED12_OFF( ) ;
}
void Delay_ms( u16 dat ) //延時函數
{
u16 i, j;
for(i = dat; i>0; i--)
{
for (j=300; j>0; j--);
}
}
int main( ) //主函數
{
Init_GPIO( );//引腳初始化
while(1) //大循環
{
LED1_ON( );//點亮第一個LED
LED2_OFF( );
.............
LED12_OFF( );
Delay_ms(1000);//延時 參數自己可以根據晶振頻率自己調節

LED1_OFF( ); //點亮第二個LED
LED2_ON( );
LED3_OFF( );
.............
LED12_OFF( );
Delay_ms(1000);
............. //按照上面修改;

LED1_OFF( );//點亮第十二個LED
LED2_OFF );
LED3_OFF( );
.............
LED12_ON( );
Delay_ms(1000);
}
}

I. 51單片機怎麼只控制一顆LED燈閃爍

1、新建項目,如圖所示。

注意事項:

很多公司都有51系列的兼容機型推出,今後很長的一段時間內將佔有大量市場。51單片機是基礎入門的一個單片機,還是應用最廣泛的一種。需要注意的是51系列的單片機一般不具備自編程能力。

J. 求助單片機控制LED程序

參考C程序,在word中編輯的,有的中文分號要改成英文,最後T0中斷里要寫按鈕程序:
#include<rge52.h> // 包含文件52.h

sbit P20=P2^0 ; // 定義引腳

sbit P21=P2^1 ; // 定義引腳

sbit P22=P2^2 ; // 定義引腳

sbit P23=P2^3 ; // 定義引腳

sbit P24=P2^4 ; // 定義引腳

sbit P25=P2^5 ; // 定義引腳

sbit P26=P2^6 ; // 定義引腳

sbit P27=P2^7 ; // 定義引腳

int key;

void delay( int t ) // 延時子程序

{ int i; // 定義整數i

while(t--) // 當t--為真時,循環

{for(i=0;i<125;i++) // 當i<125時執行空操作

{ } // 空操作

}

}

main( ) // 主程序

{TMOD=0X01;

EA=1;ET0=1;

TH0=-(1000/256);

TH0=-(10005256);

TR0=1;

while(1) // 死循環

{P2=0xff;

if(key==1)

{P21=1;P20=0;delay(1000); // 發光二極體LED0發光1秒

P20=1;P21=0;delay(1000); // 發光二極體LED1發光1秒

P21=1;P22=0;delay(1000); // 發光二極體LED2發光1秒

P22=1;P23=0;delay(1000); // 發光二極體LED3發光1秒

P23=1;P24=0;delay(1000); // 發光二極體LED4發光1秒

P24=1;P25=0;delay(1000); // 發光二極體LED5發光1秒

P25=1;P26=0;delay(1000); // 發光二極體LED6發光1秒

P26=1;P27=0;delay(1000); // 發光二極體LED7發光1秒

P27=1;P26=0;delay(1000); // 發光二極體LED8發光1秒

key=0;

}

if(key==2)

{
P20=1;P27=0;delay(1000); // 發光二極體LED7發光1秒

P27=1;P26=0;delay(1000); // 發光二極體LED6發光1秒

P26=1;P25=0;delay(1000); // 發光二極體LED5發光1秒

P25=1;P24=0;delay(1000); // 發光二極體LED4發光1秒

P24=1;P23=0;delay(1000); // 發光二極體LED3發光1秒

P23=1;P22=0;delay(1000); // 發光二極體LED2發光1秒

P22=1;P21=0;delay(1000); // 發光二極體LED1發光1秒

P21=1;P20=0;delay(1000); // 發光二極體LED0發光1秒

key=0;

}

if(key==3)

{P2=0;delay(400);P2=1;delay(400);//閃3次

P2=0;delay(400);P2=1;delay(400);

P2=0;delay(400);P2=1;delay(400);

key=0;

}

}

}

void timer0() interrupt 1

{

TH0=-(1000/256);

TH0=-(10005256);

}

閱讀全文

與單片機控制led燈程序相關的資料

熱點內容
加密晶元的計算方法 瀏覽:187
手機存儲為什麼找不到微信文件夾 瀏覽:695
msf埠遷移命令 瀏覽:880
工商app積分怎麼查詢 瀏覽:143
鐵路app怎麼買火車票 瀏覽:309
移魅族除的app怎麼添加 瀏覽:240
兔籠子大號加密 瀏覽:171
單片機程序燒錄操作成功 瀏覽:878
指標高拋低吸點位源碼 瀏覽:205
25匹壓縮機銅管 瀏覽:570
單片機單燈左移05 瀏覽:150
買伺服器練手什麼配置 瀏覽:783
伺服器被毀該怎麼辦 瀏覽:939
python私有庫 瀏覽:514
Python有中文嗎 瀏覽:736
麥塊的伺服器為什麼都進不去 瀏覽:474
新買的伺服器如何打開 瀏覽:35
安卓軟體游戲怎麼開發 瀏覽:319
用撲克擺愛心解壓神器怎麼擺 瀏覽:70
松下製冷壓縮機 瀏覽:275