導航:首頁 > 編程語言 > c51單片機編程實例

c51單片機編程實例

發布時間:2024-09-15 14:07:11

Ⅰ 用c51單片機控制一個閃光燈循環閃光5次以後熄滅不再閃光,用C語言編程,求程序……

用C語言編程,求程序的方法:

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

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

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

Voiddelay(Void)螞肢//Void表示沒有返回值,也沒有傳遞參數。

Unsignedint我;定義一個最大值為65535的無符號整數。

For (I = 0;我< 20000;i++) //執行20000個空循環。

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

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

函數函數:主函數(C語言規則必須有且只能有一個主函數)。

********************************************************/空白主要(空白)

而(1)//無限循環。

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

延遲();//推遲一段時間。

P0=0XFF;//P1=11111111B,P0.0輸出高電平。

延遲();//推遲一段時間。

單片機驅動LED光源程序:

#include//頭文件。

定義uint無符號int

#定義uchar無符號字元

SbitLED1=P1^7;//定義。

空白delay_ms(單位);//帶參數的ms級延時函數。

Voidmain()

而(1)

LED1=0;

Delay_ms(1000);

LED1=1;

Delay_ms(1000);

Voiddelay_ms(uintz)//delay子常式

使用Uintx,y;

For (x = z;X > 0;X -)

For (y = 110;Y > 0;Y -);

(1)c51單片機編程實例擴展閱讀:

單片態盯機應用分類:

一般類型:

這是關於微控制器的。例如80C51通用型單片悶閉世機,它並不是為特定的目的而設計的;專用單片機是為某一類產品甚至某一種產品而設計生產的。例如,為了滿足電子體溫計的要求,晶元中集成了具有ADC介面的溫度測量控制電路等功能。

主線:

這是由微控制器是否提供並行匯流排來區分的。匯流排微控制器一般安裝有並行地址匯流排、數據匯流排、控制匯流排,這些引腳擴展並行外圍設備可以通過串口與單片機連接。

另外,很多單片機都需要將外圍設備和外圍設備的介面集成在一塊,所以在很多情況下不能並行擴展匯流排,大大降低了封裝成本和晶元體積,這種單片機被稱為非匯流排單片機。

控制類型:

這是關於微控制器的一般應用。一般來說,工業控制定址范圍大,計算能力強。家用電器的單片機大多是專用的。

它通常是小包裝、低價格、高集成的外圍設備和外圍介面。顯然,上述分類並不獨特和嚴格。例如,80C51類單片機既是通用的,又是匯流排的,還可以用於工業控制。

Ⅱ 求單片機c51的C語言編程:設當開關為1時,控制2個led交替閃爍,閃爍時間為5秒

#include#,led;sbitkey1=P1^0;sbitkey2=P1^1;voidt0isr()interrupt1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;times++;}voidrolled(){P0=led;led=(led>>1)|0x80;if(led==0xff)l

Ⅲ C51單片機編程,按鍵控制流水燈

#include "reg51.h"
unsigned char led[]={0xfe,0xfd,0xfb,0xf7}; //LED燈的花樣數據
void delay(unsigned char time){ //延時函數
unsigned int j=15000;
for(;time>0;time--)
for(;j>0;j--);
}
void main(){
bit dir=0,run=0; //標志位定義及初始化
char i;
while(1){
switch (P0 & 0x0f){ //讀取鍵值
case 0x0e:run=1;break; //K1動作,設run=1
case 0x0d:run=0,dir=0;break; // K2動作,設run=dir=0
case 0x0b:dir=1;break; //K3動作,設dir=1
case 0x07:dir=0;break; //K4動作,設dir=0
}
if (run) //若run=dir=1,自上而下流動
if(dir)
for(i=0;i<=3;i++){
P2=led[i];
delay(200);
}
else
for(i=3;i>=0;i--){ //run=1,dir=0,自下而上流動
P2=led[i];
delay(200);
}
else P2=0xff; //若run=0,全部燈滅
}
}

Ⅳ 求一個c51單片機的程序

很簡單,柄24個led接P0,P2,P3,三個口,佔24個io口,上面5個花狀因為同一圓圈led同時亮

可以並在一起,佔8個io口,剛好32個io口。

我們從下到上將led定義為1~24號,擴散從中心往外定義為25~32號led。

1~32號lde,分別接到P0,P2,P3,P1的P0_0~P0_7號腳,P2_0~P2_7號腳,P3_0~P3_7號腳,P1_0~P1_7號腳

下面給出程序:

#include<reg52.h>

unsignedinti=0;

unsignedcharcodedis1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//正向

unsignedcharcodedis2[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//反向

voiddelay()//;//單個led延時

{unsignedintj,k;

for(j=0;j<400;j++)

for(k=0;k<20;k++);

}

voidmain()

{

while(1)

{

i=0;

for(i=0;i<7;i++)//最底8個逐個顯示

{P0=dis1[i];delay();}//單個延時

P0=255;//關閉

for(i=0;i<7;i++)//上移8個

{P2=dis1[i];delay();}

P2=255;

for(i=0;i<7;i++)//再上移8個

{P3=dis1[i];delay();}

P3=255;

for(i=0;i<7;i++)//中心向外擴散

{P1=dis1[i];//上面5組8個向外擴散

P3=dis2[i];//下面柄自中心向下擴散

delay();

}

P1=P3=255;//關閉

}

}

如果圖片看不清,點擊「查看大圖」,然後保存到你的電腦上,再查看更大的圖。

閱讀全文

與c51單片機編程實例相關的資料

熱點內容
手機proxy伺服器地址 瀏覽:449
吉他清音壓縮 瀏覽:301
簡歷模板程序員 瀏覽:881
螺桿壓縮機虛標型號 瀏覽:953
idea開發項目伺服器ip地址 瀏覽:125
串口伺服器出現亂碼怎麼解決 瀏覽:950
命令按鈕的default 瀏覽:161
戰網如何登錄其他伺服器 瀏覽:990
中國銀行app如何關閉簡訊 瀏覽:493
nx120編程技巧 瀏覽:722
手機也能使用源碼公式 瀏覽:918
怎樣把壓縮的文件下載 瀏覽:334
pdf是哪的 瀏覽:27
群暉伺服器如何建立自己資料庫 瀏覽:868
win10怎麼查找伺服器地址 瀏覽:506
freepdfsplit 瀏覽:172
如何更改linux伺服器地址 瀏覽:221
編程求字元串abcdefh長度 瀏覽:312
座機時間伺服器地址 瀏覽:419
華康寶app是怎麼樣的 瀏覽:73