欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 單片機PWM控制C程序語言 [打印本頁]

作者: Sooofia    時間: 2018-3-31 20:47
標題: 單片機PWM控制C程序語言
本帖最后由 Sooofia 于 2018-3-31 20:51 編輯

#include "reg52.h"
#define uint unsigned int
#define uchar unsigned char
sbit PWM = P1^1;
uchar pluse; //占空比寄存器
void Timer2() interrupt 5
{   
static uchar time;   
TF2=0;   
if(++time==pluse) PWM=0; //達到脈寬設定值時,輸出PWM低電平   
else if(time==40) //PWM的頻率為1khz左右   
{     
time=0;   
PWM=1;  
}  
}  
void InitTimer2(void) //初始化函數
{   
RCAP2H = 0xff //定時25us初值   
RCAP2L = 0x0e7;   
ET2=1;  
EA=1;  
TR2=1;
}   
void main(void)   
{      
InitTimer2();     
while(1)
{
pluse=20;  
}
}
把PWM波的周期定為1ms,占空比分40級可調(即每級差2.5%),這樣定時器T2每25us產生一個定時中斷,每40次中斷后進入下一個PWM波的周期。在程序中,pluse=20,即占空比為50%,輸出的平均電壓為12*50%=6V。PWM產生的過程是這樣的,開始時PWM為1,當計時到達pluse時(即到達了設定的脈寬寬度時間)PWM=0,隨后到達PWM周期時間后PWM=1,此時下一個PWM周期重新開始。

PWM代碼.pdf

173.98 KB, 下載次數: 12, 下載積分: 黑幣 -5


作者: Kiralfred    時間: 2018-4-11 17:35
什么意思??怎么調?




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1