1. 單片機流水燈程序
程序如下:
#include <reg52.h>
sbit led1 = P2^0;
sbit led2 = P2^1;
sbit led3 = P2^2;
sbit led4 = P2^3。
讓電子信息技術與單片機技術相融合,有效提高了單片機應用效果。作為計算機技術中的一個分支,單片機技術在電子產品領域的應用,豐富了電子產品的功能,也為智能化電子設備的開發和應用提供了新的出路,實現了智能化電子設備的創新與發展。
從二十世紀九十年代開始,單片機技術就已經發展起來,隨著時代的進步與科技的發展,目前該技術的實踐應用日漸成熟,單片機被廣泛應用於各個領域。現如今,人們越來越重視單片機在智能電子技術方面的開發和應用,單片機的發展進入到新的時期。
無論是自動測量還是智能儀表的實踐,都能看到單片機技術的身影。當前工業發展進程中,電子行業屬於新興產業,工業生產中人們將電子信息技術成功運用。
2. 單片機上連接的八個LED為什麼每個都串聯一個電阻
因為LED是非線性元件,每個元件的製造不可能100%都一樣(跟線性元件一樣),所以每個LED燈的在壓降不相同,並一起會亮暗不均勻,所以要分開各支路供電,另外是LED的電流要在它工作電流內,單片機貼片的一般在3-20mA之間都可以,廠家的規格書上有,但若電流過大會燒毀LED,把電阻換成一個LED,那就是兩個LED串後接在單片機的5伏上,一個LED的導通壓降一般1.7V~2.3V。U=IR,(5 - 1.7 - 1.7)/0.01=160歐姆,直接接會燒led的可能性大,不行,在接個100-500歐姆的電阻吧。
3. 關於單片機的led燈
可以接,現在的單片機都能夠提供較大的灌電流輸出電流,最大50mA,驅動小功率 LED (最大電流20mA)是沒有問題的,常用的接法有兩種:一:用灌電流驅動,在LED上串個1K 1/4W的電阻接入單片機(輸出的不提倡)。二:用單片機接個三極體,再驅動LED 如果供電電壓是5V,在LED上面接個1K的電阻就可以(對LED亮度要求不高,做一般指示用)。如果接LED比較多,就需要用擴展IC口來控制。現在的LED顯示屏技術都是用的這方面技術。驅動晶元有很多才廠家在做也比較成熟了,像這些公司做的都不錯,點晶,聚積,東芝,飛利浦,國半,超科(Supertex),士蘭,廣鵬,芯瑞,晶錡科技,泉芯IC。大小功率的都有做的。
4. 求教如何用單片機控制LED燈的亮度
控制ked亮度不難,你硬體直接連連接好led燈,串個限流電阻。如果引腳一直給電平那麼燈肯定最亮,那你如果改變給燈的時間燈就能調亮度了,如你用定時器或者延時多少個時間引腳電平取反一次。例如每間隔1毫秒電平取反一次就可以改變亮度。那你在用個變數值來給這個時間賦值。就能調亮度了啊,比如你接個電位器電位器值改變你程序你就讓定時器時間也相應跟著變動
程序名稱:一隻按鍵控制兩只LED燈十種亮度顯示
編程人:xx
備註:此程序簡單
#include<stc12c2052ad.h>
*** it d1=P1^7;、、 定義LED燈1
*** it d2=P1^6; 定義LED燈2
*** it key1=P3^0; 定義按鍵燈
void delay(unsigned int a){ 延時程序
unsigned int i;
while( a-- != 0){
for(i = 0; i < 100; i++);
}
}
void main(){
while(1){
unsigned int a,b,c,d;
if(key1==0)d++; 按鍵判斷
switch(d) 按鍵信息比較
{
case 1: b=9;;a=1;break;
case 2: b=8;;a=2;break;
case 3: b=7;;a=3;break;
case 4: b=6;;a=4;break;
case 5: b=5;;a=5;break;
case 6: b=4;;a=6;break;
case 7: b=3;;a=7;break;
case 8: b=2;;a=8;break;
case 9: b=1;;a=9;break;
}
while(key1==0); 判判斷按鍵是否松開
if(d==10)d=0; 按鍵9種亮度判斷,是否是第9種,如果是,則d=0
for(c=0;c<2;c++){ 亮度模式循環顯示
d1=0;
d2=1;
delay(a);
d1=1;
d2=0;
delay(b);
}
}
}
、2010.10.05 20;06修改
此程序是我寫的簡單程序,已做過實驗,並且通過!
用pic的脈寬調制功能就可以了,只需要給單片機不同的占空比的值,單片機就可以產生不同占空比的信號,將這個信號用三極體放大驅動LED就行了。還有什麼問題可以給我留言
第一,要理解中斷在這里的作用是固定的「一小段」時間進入一次。 第二,PWM_ON在程序中的作用很大,它會由0------>CYCLE------>0並且一直循環下去。可以把它看成一個有規律的變化的量。 第三,每進入中斷一次count++,滿足條件count==PWM_ON或coun..
接好單片機的硬體電路,然後編寫程序,再然後燒寫程序,然後就可以程序了,沒問題的話就可以按你的要求點亮了
# include<reg51.h>
void delay(unsigned int j)
{
unsigned int i;
for (;j>0;j--)
{
for(i=0;i<1000;i++)
;
}
}
void main()
{
while(1)
{
P1^0=0;
delay(100);
P1^0=1;
delay(100);具體數值根據你單片機晶振頻率而定
}
}
原理是PWM波占空比不同,其功率亦不同,只要PWM頻率很大,人眼分辨不出其閃爍,就可通過控制占空比(高電平時間和周期之比)的大小來控制其亮度。
才用PWM調制
LED燈不好控制亮度,在電流變化較大的范圍中,亮度變化不明顯
如果是電燈泡還可以的
控制LED燈的亮度 這個其實有難度的, 先練習聲音控制開關燈,成功後再考慮控制亮度
LED亮度是通過的電流決定的,控制亮度其實就是控制電流.這一點至今沒辦法做到便宜又簡單.
當然,也有種簡易的辦法是PWM控制亮關比,優點是容易,缺點是閃爍.
還有就是目前燈亮度有幾種控制方式,連續變化的貴,高中低分檔位的便宜些.
void main()
{
unsigned int temp,i;
temp=1;
while(1)
{
P1=temp&0x00ff; 取temp低8位
P2=(temp&0xff00)>>8; 取temp高8位
for(i=0;i<65535;i++)
{} 延時
if(temp!=0x8000)
temp<<=1; temp左移一位
else temp=1;
}
}
如果不需要控制轉速,一個三極體一個繼電器就可以控制馬達了。
5. 用c語言編寫單片機流水燈程序,(8個發光二極體從左至右循環點亮)
#include<reg51.h>
voiddelay(void)
{
unsignedinti,j;
for(i=0;i<200;i++)
for(j=0;j<1000;j++)
;
}
voidmain(void)
{
while(1)
{
P3=0xfe;//第一個燈亮
delay();//延時
P3=0xfd;//第二個燈亮
delay();
P3=0xfb;//第三個燈亮
delay();
P3=0xf7;//第四個燈亮
delay();
P3=0xef;//第五個燈亮
delay();
P3=0xdf;//第六個燈亮
delay();
P3=0xbf;//第七個燈亮
delay();
P3=0x7f;//第八個燈亮
delay();
}
}
(5)單片機燈串擴展閱讀
單片機C語言16種方式流水燈
voidmain()
{
while(1)
{
P1=0xfe;//點亮第一個發光管
Delay(5000);
P1=0xfd;//點亮第二個發光管
Delay(5000);
P1=0xfb;
Delay(5000);
P1=0xf7;
Delay(5000);
P1=0xef;
Delay(5000);
P1=0xdf;
Delay(5000);
P1=0xbf;
Delay(5000);
P1=0x7f;//點亮第八個發光管
}
}