1. 51單片機PWM
#include <stc51.h>
int X ; // PWM的周期 單位:us微秒
int ty; //占空比變數
void main()
{
X=2000; //周期100uS 即PWM的頻率=10KHZ
ty=50; //占空比 50%
TMOD=0X11;
EA=1;
ET0=1;
ET1=1;
TH0=(65535-ty)/256; //定時器0 改變占空比
TL0=(65535-ty)%256;
TH1=(65535-X)/256 ; //定時器1 改變頻率
TL1=(65535-X)%256;
TR0=1;
TR1=1;
while(1) ;
}
void timer0_isr() interrupt 1 //定時器0;改變占空比
{
TR0=0;
P1=0X00;
++ty;
if(ty>=X-1) ty=1;
}
void timer1_isr() interrupt 3 //定時器1 ;改變PWM頻率 即周期
{
P1=0XFF;
TH1=(65535-X)/256; //改變周期
TL1=(65535-X)%256;
TH0=(65535-ty)/256; //改變占空比
TL0=(65535-ty)%256;
TR0=1;
//TR1=1;
}
2. 51單片機定時中斷控制燈亮度怎麼調
51單片機怎坦唯樣控制LED的光亮度
pwm,用定時器T1溢出做pwm周期,在每次T1開始計數時觸發輸出,軟體邊增1計數邊檢查溢出標志。如果軟體計數滿則清輸出,否則直到溢出清輸出、清軟體計數滿值。改變軟體計數滿值就能改變亮度。
51單片機輸出pwm波控制led燈亮度
頻率50HZ,周期是20ms
看你調節的精度 如定時器定時1ms,高電平寬度一次變化是5%
如果想要調節精度脊旁高,定時器定時時間小,就要頻繁地發生中斷,會影響主程序的運行
如 要求占空比每步調節為1%,則定時器就要定時200us,對於CpU的影響就比較大了
這時自動重裝模式可以縮短中斷程序佔用時間,但如果再提高PWM的頻率,自動重裝模式也十分吃力,因此許多增強型51單片機有硬體PWM功能
單片機控制led亮度
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信號。
3. C51單片機的PWM原理是什麼
原理是當輸出頻率一定時,輸出電壓與高電平的占空比成正比,即PWM每個周期中高電平脈寬越寬輸出電壓越高。
單片機使用方法是
1.設置定時器的工作模式為PWM和輸出引腳;
2.設置定時器的工作頻率或PWM的頻率;
3.當需要改變輸出電壓時修改脈寬參數即可