標(biāo)題: 只用1個(gè)定時(shí)器實(shí)現(xiàn)51模擬PWM輸出功能 [打印本頁]

作者: 米醋    時(shí)間: 2015-6-25 12:37
標(biāo)題: 只用1個(gè)定時(shí)器實(shí)現(xiàn)51模擬PWM輸出功能
只是PWM頻率有點(diǎn)低,不過效果還是不錯(cuò)的
先初始化TIM0或1為定時(shí)器方式2即自動(dòng)裝載模式。。。
定義全局變量
unsigned char PWM,PWMZ;
sbit  PWMO=P***;  //這個(gè)就是你要選擇PWM輸出的IO腳了
/*初始化定時(shí)器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;}       
}



作者: 米醋    時(shí)間: 2015-6-25 13:14
自己坐沙發(fā)。!
作者: lxa0    時(shí)間: 2017-8-14 02:16
能行不?




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