c51单片机中如何用定时器中断产生pwm?

如题所述

#include<rer52.h>
sbit output=P1^0;//定义输出端
unsigned char num;
void main()
{
init();
while(1)
{
if(num<=7) output=1;//输出高电平,改变数值大小调整占空比,数值不能大于10
else output=0;//输出低电平
}
}

void init()
{
num=1;//给num赋初值
TMOD=0X01;
TH0=(65536-t)/256;//调整t的值改变频率
TL0=(65536-t)%256;
EA=1;
ET0=1;
ER0=1;
}

void time0 interrupt 1//中断函数
{
TH0=(65536-t)/256;
TL0=(65536-t)%256;
num++;
if(num>10)
num=1;
}
温馨提示:答案为网友推荐,仅供参考