首先你的先知道什么是PWM。PWM是一種脈寬調(diào)制技術(shù)。簡單的說就是在一個周期內(nèi)高電平所占用的時間,通過改變脈沖的周期可以調(diào)頻,改變脈沖的寬度或占空比可以調(diào)節(jié)驅(qū)動上的電壓。 第一種方法用單片機的定時器模擬出PWM。假如你用定時器延時100ms,在50ms之前某一個引腳為低電平,50ms之后該引腳為高電平,這樣高電平占用的時間為1/2,此時該引腳就會產(chǎn)生50%的占空比信號。 程序如下: #include<reg52.h> unsigned chartimer1; sbit PWM=P1^1; void system_Ini() {TMOD|= 0x11; TH1 = 0xfe; //11.0592 TL1 = 0x33; TR1 =1; IE=0x8A; } main() { system_Ini() ;定時器初始化 while(1) { if(timer1>100) timer1=0; if(timer1<=30) pwm=0;//產(chǎn)生30%的占空比 else PWM=1; } } 另一種方法就是利用簡單的延時產(chǎn)生PWM方波信號 #include<reg52.h> unsigned char count=0; sbit PWM_1=PI^1;//利用P1^1產(chǎn)生PWM void mian() {while(1) for(count=0;count<=100;count++) //讓單片機記100個數(shù) { If(count<=50){ PWM_1=1;}//前一半時間為高電平 else PWM_1=0//后一半時間為低電平這樣就產(chǎn)生了50%的占空比 } PWM不僅能夠控制小車速度還可以控制小燈的亮滅程度,朋友們可以去試試。水平有限,如果覺得對您有用請您推薦您的朋友關(guān)注我們,還請大神們輕噴。 |
|
來自: 昵稱29273511 > 《待分類》