導航:首頁 > 源碼編譯 > 庫函數編譯led燈閃爍

庫函數編譯led燈閃爍

發布時間:2023-06-09 17:15:50

A. 用keil編一個led燈閃爍程序

點亮 小燈的程序我們第二課完成了,就是讓 LED = 0。熄滅小燈的程序也很簡單,就是 LED = 1。點亮和熄滅都會了,那麼如果我們在亮和滅中間加個延時,反復不停的點亮和熄滅小燈,就成了閃爍了。

我們首先復習一下 Keil 寫程序的過程,建立工程-->保存工程-->建立文件-->添加文件到工程-->編寫程序-->編譯-->下載程序。

LED 對於有 C 基礎的同學來說很簡單,那我先寫出來,大家可以先看下。沒有C 語言基礎的同學也可以跟著抄一遍,下節課我會補充部分 C 語言基礎知識,這樣你先抄一遍後,再跟著看 C 語言基礎知識的時候也比較容易理解透徹。

純文本復制

#<reg52.h>

sbit LED = P0^0;

sbit ADDR0 = P1^0;

sbit ADDR1 = P1^1;

sbit ADDR2 = P1^2;

sbit ADDR3 = P1^3;

sbit ENLED = P1^4;

main(){ //void 即函數類型

//以下為聲明語句部分

unsigned int i = 0; //定義一個變數 i,並賦初值 0

//以下為執行語句部分

ENLED = 0; //U3、U4 兩片 74HC138 總使能

ADDR3 = 1; //使能 U3 使之正常輸出

ADDR2 = 1; //經 U3 的 Y6 輸出開啟Q16

ADDR1 = 1;

ADDR0 = 0;

(1){

LED = 0; //點亮小燈

for (i=0; i<30000; i++); //延時一段時間

LED = 1; //熄滅小燈

for (i=0; i<30000; i++); //延時一段時間

}

}

大家把這個程序編譯一下,下載到里,就會發現 LED2 這個小燈會閃爍了。

B. 利用C51自帶的庫函數_crol_,以間隔500ms實現10個LED燈亮滅循環的C語言程序

先發一個8 個燈的。
#include<reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar temp,num;
void delay(uint);
void main()
{

temp=0xfe;
while(1)
{
for(num=0;num<8;num++)
{
P1=temp;
delay(100);
temp=_crol_(temp,1);
P1=0xff;
delay(100);
}

}
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}

/****************************************************************************
再發一個10個燈的,不過函數是IROL
*******************************************************************************/
_crol_不好實現,我用_irol_實現的。
//P2低兩位,P1全部8位分別接LED,共十隻LED
#include <reg51.h>
#include <intrins.h>

void delay(unsigned int z)
{
unsigned int x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}

main()
{
unsigned int j;
unsigned char i;
while(1)
{
j=0xfffe;
for(i=0;i<10;i++)
{
P2=j/256;
P1=j%256;
delay(500);
j=_irol_(j,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. 單片機 8個LED燈隨機閃爍怎麼做

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

閱讀全文

與庫函數編譯led燈閃爍相關的資料

熱點內容
什麼是民政生存認證app 瀏覽:630
java怎麼退出 瀏覽:902
掛接pdf 瀏覽:165
浪潮伺服器遠程修改bmc地址 瀏覽:119
單立文電影 瀏覽:873
linuxtar命令 瀏覽:876
優酷app如何屏蔽短視頻 瀏覽:480
看著就解壓的軟體 瀏覽:785
android撥號界面源碼 瀏覽:54
在線高清 瀏覽:375
程序員陸漓發型劉海 瀏覽:484
台灣電影《三十兒立》 瀏覽:315
南京學程序員培訓班 瀏覽:267
怎麼把華為手機app密碼刪掉 瀏覽:623
android事件冒泡 瀏覽:685
大片在線高清電影 瀏覽:791
程序員限制年齡怎麼辦 瀏覽:428
ug80數控編程視頻教程下載 瀏覽:771
四川信息化少兒編程定製 瀏覽:9
跟血戀一樣打真搶的電影 瀏覽:931