定時器0輸出80%占空比的PWM
main.c
#include <reg52.h>
unsigned char PWM_COUNT; //中斷一次加一
sbit LED = P1^0;
void timer0_init()
{
TMOD = 0x02;
TH0 = 0x47; //200us中斷一次
TL0 = 0x47;
EA = 1;
ET0 = 1;
TR0 = 1;
PWM_COUNT = 0;
}
void main()
{
timer0_init();
LED = 1;
while(1);
}
void timer0() interrupt 1
{
PWM_COUNT ++;
if(PWM_COUNT == 4) //80%占空比
LED = 0;
if(PWM_COUNT == 5) //目前周期結束
{
LED = 1;
PWM_COUNT = 0; //重新計時
}
}