1. 基於51單片機的led彩燈設計。 9個燈(紅綠藍三色)。按鍵控制 c語言程序
首先要查看電路的連接,看看輸入連接到單片機的哪個引腳(比如p1.0),led燈連接到哪個引腳(比如p2.0)。然後看是高電平有效還是低電平有效(也就是高電平時led燈亮,還是低電平時led燈亮)。
如果是高電平燈亮的話,程序如下:
p2.0=p1.0;
2. 51單片機控制16個led燈,要求16個燈依次點亮後依次熄滅
假設16個燈接P0和P1,高電平點亮,每次亮一個燈
程序大致這樣:
uint b;//16位變數對應16個燈
uchar i;
while(1)
{
for(i=0;i<16;i++)
{
b=0x01<<i;
P0=b;//自動取低8位
P1=b<<8;//取高8 位
delayms(200);
}
}
3. 51單片機怎樣控制LED的光亮度
pwm,用定時器T1溢出做pwm周期,在每次T1開始計數時觸發輸出,軟體邊增1計數邊檢查溢出標志。如果軟體計數滿則清輸出,否則直到溢出清輸出、清軟體計數滿值。改變軟體計數滿值就能改變亮度。
頻率50HZ,周期是20ms
看你調節的精度 如定時器定時1ms,高電平寬度一次變化是5%
如果想要調節精度高,定時器定時時間小,就要頻繁地發生中斷,會影響主程序的運行
如 要求占空比每步調節為1%,則定時器就要定時200us,對於CpU的影響就比較大了
這時自動重裝模式可以縮短中斷程序佔用時間,但如果再提高PWM的頻率,自動重裝模式也十分吃力,因此許多增強型51單片機有硬體PWM功能
LED是電流控制器件, 而不能說成電壓控制,調節電壓的大小也能控制啊(電壓越大亮度超高),
1、PWM是脈沖寬度調制信號,注意其中的「寬度」,就是脈沖的高電平的時間。PWM信號調節LED亮度時,信號頻率是不變的,改變的是脈沖的高電平的時間,即LED的導通時間。這種信號調節亮度相當於調節LED的平均電流,所以電流會變化。
2、從LED的V-I特性可知,其曲線是非線性的,0.1V的電壓可造成100~200mA的If的變化,不易控制;另外,LED具有負溫度系數特性,所以,一般將LED說成是電流控制型器件。至於你將LED串接在電源模塊上,當輸出電壓恆定時,是恆壓源驅動LED吧,這樣調節LED亮度時,需要對輸出電壓進行分壓,以降低LED的壓降才能改變其亮度,恆壓源的電流是有一個最大輸出值的,不能調節的,不知你用什麼方法調節其輸出電流的?
3、用MCU比較方便,成本是稍高,也可以用模擬電子線路產生相應的PWM信號。
用PWM控制有幾點好處.
1 ): 可以自動適應輸入電壓范圍.即使輸入電壓低於LED的點亮電壓.LED仍然正常發光.
2 ):恆流.LED是半導體器件.對溫度很敏感.普通限流電路在其溫度變化時無法及時控制LED負載的電流.當溫度上升到一定程度.LED會被燒毀. 而PWM電路大多集成恆流源.使其電流始終保持在你設置的范圍內.
是求程序還是求啥?郵箱也沒有
可以用移位命令來實現,比如說LED介面為P0
那麼共陰極就是 P0=(P0>>1)||0X80;
移位函數來實現是最簡單的就是 intrinis
可通過按鈕的動作改變輸出LED連接腳的脈寬來控制led燈的漸亮
單片機只能產生兩個電平的信號,因此要控制LED亮度要靠LED點亮的頻率,頻率越高亮度越亮。如果你願意取得更好的效果的話還可以使用DA晶元,當然需要更多的知識。
那就要看這100個LED是想同時亮,還是一個一個地亮了。
要同時亮,就串聯或並聯都行,就相當於控制一個。
要是一個一個地亮,那就得有100個控制點了。這得需要擴展I/O介面了,簡單可行的,用13片74HC595,每個595帶8個LED。
再要看這100個LED是怎麼排列的,要是能排列成矩陣,就可以節省I/O介面了,就可以少用幾片74HC595了。
用C語言中產生隨機數的方法每次產生一個0~255間的一個隨機數,然後賦值給P0口
第一片單片機的TXD連接到第二片單片機的RXD上
第一片單片機的RXD連接到第二片單片機的TXD上
然後就可以做 串口通信了
每一片都可以發送數據,然後另一片在串口接收中斷中處理數據
4. 基於51單片機的led彩燈設計。 9個燈(紅綠藍三色)。按鍵控制 c語言程序
#include<reg52.h>
#define uint unsigned int
sbit S1=P1^0;
sbit S2=P1^1;
sbit S3=P1^2;
sbit S4=P1^3;
sbit LED1=P1^4;
void delay(uint);
main()
{
S1 = 1;
S2 = 1;
S3 = 1;
S4 = 1;
while(1)
{
if(S1==0)
{
P2 = 0X00;
LED1 = 0;
delay(500);
P2 = ~P2;
LED1 = ~LED1;
delay(500);
};
if(S2==0)
{
P2 = 0Xc0;
delay(500);
P2 = 0xff;
LED1 = 1;
delay(500);
};
if(S3==0)
{
P2 = 0X07;
LED1 = 0;
delay(500);
P2 = 0XFF;
LED1 = 1;
delay(500);
};
if(S4==0)
{
P2 = 0X38;
LED1 = 0;
delay(500);
P2 = 0xff;
LED1 =1;
delay(500);
};
};
}
void delay(uint z)
{
uint x, y;
for(x=85; x>0; x--)
for(y=z; y>0; y--);
}
具體還要看你單片機和LED引腳的連線,原理大概就是上面那樣了,可以下載到機子驗證。
5. 51單片機怎麼只控制一顆LED燈閃爍
1、新建項目,如圖所示。
注意事項:
很多公司都有51系列的兼容機型推出,今後很長的一段時間內將佔有大量市場。51單片機是基礎入門的一個單片機,還是應用最廣泛的一種。需要注意的是51系列的單片機一般不具備自編程能力。
6. 用51單片機寫程序,4個按鍵燈控制8個彩燈切換九種燈光效果
P1口接8個LED燈,P3口接4個按鍵K1~K4,用於控制流水燈的四種效果,模擬圖如下。