欢迎来到天天文库
浏览记录
ID:18972353
大小:108.00 KB
页数:4页
时间:2018-09-27
《stc单片机pwm的实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、一082月2010STC单片机PWM的实现PWM波是数字向模拟转换的一种重要方法,通常使用单片机的定时器做频率发生器,含有数字比较器,当设定值与定时器的值相等,引脚的电平发生翻转。控制设定值,就控制了PWM波占空比,通过滤波,输出直流模拟量。 #includesfrCCON=0xD8;sfrCMOD=0xD9;sfrCCAPM0=0xDA;sfrCCAPM1=0xDB;sfrCCAPM2=0xDc;sfrCCAPM3=0xDd;sfrCL=0xE9;sfrCH=0xF9;sfrCCAP0L=0xEA;sfrCCAP0H=0xFA; sfrCCAP1L=0xEb;sfr
2、CCAP1H=0xFb;sfrCCAP2L=0xEc;sfrCCAP2H=0xFc; sfrCCAP3L=0xEd;sfrCCAP3H=0xFd;sbitCR=0xDE;voidinit_pwm(){//定时器的来源CPS1,CPS0CMOD=0x02;//SetupPCAtimerCL=0x00;CH=0x00; }//控制占空比voidpulse_0(unsignedcharp_on){CCAP0L=p_on;//SettheinitialvaluesameasCCAP0HCCAP0H=p_on;////CCAPMn.1使能脉宽调制模式,EC0M必须=1CCAPM0=0x42;//
3、0100,0010SetupPCAmodule0inPWMmode}voidpulse_1(unsignedcharp_on){CCAP1L=p_on;//SettheinitialvaluesameasCCAP0HCCAP1H=p_on;//25%DutyCycle//CCAPMn.1使能脉宽调制模式,EC0M必须=1CCAPM1=0x42;//0100,0010SetupPCAmodule0inPWMmode}voidpulse_2(unsignedcharp_on){CCAP2L=p_on;//SettheinitialvaluesameasCCAP0HCCAP2H=p_on;/
4、/25%DutyCycle//CCAPMn.1使能脉宽调制模式,EC0M必须=1CCAPM2=0x42;//0100,0010SetupPCAmodule0inPWMmode}voidpulse_3(unsignedcharp_on){CCAP3L=p_on;//SettheinitialvaluesameasCCAP0HCCAP3H=p_on;//25%DutyCycle//CCAPMn.1使能脉宽调制模式,EC0M必须=1CCAPM3=0x42;//0100,0010SetupPCAmodule0inPWMmode}voiddelay(inta){inti;for(i=0;i5、i++);}voidmain(void){unsignedchari=0;init_pwm();CR=1;//StartPCATimerwhile(1){while(++i){pulse_0(i+50);pulse_1(i+100);pulse_2(i+150);pulse_3(i+200);delay(1000);}while(--i){pulse_0(i+50);pulse_1(i+100);pulse_2(i+150);pulse_3(i+200);delay(1000);}}}
5、i++);}voidmain(void){unsignedchari=0;init_pwm();CR=1;//StartPCATimerwhile(1){while(++i){pulse_0(i+50);pulse_1(i+100);pulse_2(i+150);pulse_3(i+200);delay(1000);}while(--i){pulse_0(i+50);pulse_1(i+100);pulse_2(i+150);pulse_3(i+200);delay(1000);}}}
此文档下载收益归作者所有