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

如题所述

第1个回答  2022-11-16
#include\x0d\x0asbit output=P1^0;//定义输出端\x0d\x0aunsigned char num;\x0d\x0avoid main()\x0d\x0a{\x0d\x0ainit();\x0d\x0a while(1)\x0d\x0a {\x0d\x0a if(num<=7) output=1;//输出高电平,改变数值大小调整占空比,数值不能大于10\x0d\x0a else output=0;//输出低电平\x0d\x0a }\x0d\x0a}\x0d\x0a \x0d\x0avoid init()\x0d\x0a{\x0d\x0anum=1;//给num赋初值\x0d\x0aTMOD=0X01;\x0d\x0aTH0=(65536-t)/256;//调整t的值改变频率\x0d\x0aTL0=(65536-t)%256;\x0d\x0aEA=1;\x0d\x0aET0=1;\x0d\x0aER0=1;\x0d\x0a}\x0d\x0a \x0d\x0avoid time0 interrupt 1//中断函数\x0d\x0a{\x0d\x0aTH0=(65536-t)/256;\x0d\x0aTL0=(65536-t)%256;\x0d\x0anum++;\x0d\x0aif(num>10)\x0d\x0anum=1;\x0d\x0a}