标题: 只用1个定时器实现51模拟PWM输出功能 [打印本页]

作者: 米醋    时间: 2015-6-25 12:37
标题: 只用1个定时器实现51模拟PWM输出功能
只是PWM频率有点低,不过效果还是不错的
先初始化TIM0或1为定时器方式2即自动装载模式。。。
定义全局变量
unsigned char PWM,PWMZ;
sbit  PWMO=P***;  //这个就是你要选择PWM输出的IO脚了
/*初始化定时器0*/
void intTIME0 (void)
{
    TMOD = 0x02|(TMOD&0XF0);         //set timer0 as mode2 (8-bit)
    TL0 = 200;                         //这里最终影响的PWM频率
    TH0 = 200;
    ET0 = 1;                        //enable timer0 interrupt
    EA = 1;                         //open global interrupt switch
}

/* Timer0 interrupt routine */
void tm0_isr() interrupt 1 using 1
{
   PWMZ++;
   if (PWMZ ==100)
    {
          PWMZ= 0;
          PWMO = 0;
         }
   if (PWMS == PWM) { SPZ = 1;}       
}



作者: 米醋    时间: 2015-6-25 13:14
自己坐沙发!!!
作者: lxa0    时间: 2017-8-14 02:16
能行不?




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1