A. 單片機下面程序是怎麼實行LED燈閃爍的
原理:LED閃爍其實就是LED亮滅,要看電路,有的直接是單片機驅動的小LED,給高平亮,給低電平滅,一直給高低電平循環就表現出亮滅了。
延時:就是亮多久後滅,滅多久後亮。
實現:先給高電平,LED亮,經過延時後,再給一個低電平,LED滅,再給一個延時,如此無限循環。
B. 單片機控制LED燈常亮30秒後閃爍怎麼編程
假設用的是51單片機的P1口,LED燈是低電平點亮,連接P1.0,那麼可以參考如下思路:
初始化:
P1 =0xFF;
P1.0=0;點亮
delay_s(30);延時30秒
P1.0=1;熄滅
while(1)
{
delay_s(1);延時1秒
P1.0=0;點亮
delay_s(1);延時1秒
P1.0=1;熄滅
}
C. 單片機控制單個LED閃爍五下的c程序,希望能加講解,謝謝啦
c語言程序很簡單:
#include<reg51.h>//包含頭文件
sbit LED=P1^0;//位變數定義
void main()//主程序
{
unsigned char i;//聲明一個變數
for(i=0;i<5;i++)/循環5次
{
LED=0;//亮
delayms(500);//延時
LED=1;//滅
delayms(500);//延時
}
while(1);//停止不動
}
延時子程序隨便搜一個,如果時間差別太大,可調某些參數
D. 單片機怎麼延時閃爍LED燈
這是我寫的五種方式流水燈:
#include<reg52.h> //五種花樣流水燈
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
uint a,b=7,e,f=4,h;
uchar c,d;
uchar code deng[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//流水燈位置
void delay(uint x)
{
uint i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
} //延時
void y1() //第一流水燈程序 指針
{
while(h<=16&&h>=0)
{
P1=*(deng+a);
delay(200);
a++;
if(a==8)
a=0;h++;
}
}
void y2() //第二流水燈程序 數組
{
while(h<=30&&h>16)
{
P1=deng[b];
delay(100);
b--;
if(b==0)
b=7;h++;
}
}
void y3() //第三流水燈程序 左右移
{
c=0xe7;
while(h<=43&&h>30)
{
P1=c;
delay(500);
c=c>>1;
c=c<<2;h++;
}
}
void y4() //第四流水燈程序 庫函數
{
d=0xaa;
while(h<=51&&h>43)
{
P1=d;
delay(100);
d=_crol_(d,1);h++;
}
}
void y5() //第五流水燈 定時器
{
TMOD=0x01;
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
EA=1;
ET0=1;
TR0=1;
while(h>51)
{
P1=deng[f];h++;
}
}
void y() interrupt 1
{
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
e++;
if(e==6)
e=0;
f++;
if(f==8)
f=0;
}
void main()
{
while(1)
{
y1();
y2();
y3();
y4();
y5();
}
}
E. 我剛學單片機,想讓LED上的第一個小燈間隔200MS閃爍,我編的程序是這樣的
// 定義 LED 的數碼管編號
int led = 1;
// 定義 LED 閃爍的間隔時間,單位為毫秒
int interval = 200;
void setup() {
// 初始化數字輸出為輸出模式
pinMode(led, OUTPUT);
}
void loop() {
// 讓 LED 亮起來
digitalWrite(led, HIGH);
// 延遲一段時間
delay(interval);
// 讓 LED 熄滅
digitalWrite(led, LOW);
// 延遲一段時間
delay(interval);
}
F. 用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--);
}
(6)單片機led燈延時閃爍編程擴展閱讀:
單片機應用分類:
通用型:
這是按單片機(Microcontrollers)適用范圍來區分的。例如,80C51式通用型單片機,它不是為某種專門用途設計的;專用型單片機是針對一類產品甚至某一個產品設計生產的,例如為了滿足電子體溫計的要求,在片內集成ADC介面等功能的溫度測量控制電路。
匯流排型:
這是按單片機(Microcontrollers)是否提供並行匯流排來區分的。匯流排型單片機普遍設置有並行地址匯流排、 數據匯流排、控制匯流排,這些引腳用以擴展並行外圍器件都可通過串列口與單片機連接。
另外,許多單片機已把所需要的外圍器件及外設介面集成一片內,因此在許多情況下可以不要並行擴展匯流排,大大減省封裝成本和晶元體積,這類單片機稱為非匯流排型單片機。
控制型:
這是按照單片機(Microcontrollers)大致應用的領域進行區分的。一般而言,工控型定址范圍大,運算能力強;用於家電的單片機多為專用型。
通常是小封裝、低價格,外圍器件和外設介面集成度高。 顯然,上述分類並不是惟一的和嚴格的。例如,80C51類單片機既是通用型又是匯流排型,還可以作工控用。
參考資料來源:網路-單片機
G. 單片機 8個LED燈隨機閃爍怎麼做
1、首先在電腦中新建項目:Keil uVision4 51單片機LED閃爍編程,如下圖所示。
H. 單片機LED燈閃爍延遲程序
int main(void)
{
while(1)
{
D3=0;
yanshi();
D3=1;
yanshi();
}
}
注意單片機程序是從main函數開始執行的,注意單片機主函數內部不加while大循環,程序會一直往下執行,直到RAM溢出產生錯誤為止程序將跑飛,所以主程序內部一定要加大循環,上面的格式是經過無數工程師的驗證,主函數的書寫格式。