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

c51单片机中如何用定时器中断产生pwm,详解,越详细越好

第1个回答  推荐于2017-09-22
#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;
}本回答被提问者采纳