/*********************************************************************** “天祥电子” 倾情奉献 www.txmcu.cn www.txmcu.com *********************************************************************** 程序功能: 本程序演示用定时器的方法产生一PWM方波,其周期为1ms(0.001s,1KHz); 占空比为1/5(高电平持续200us)。若产生其他参数的PWM波,只需更改 程序中的相关参数即可。(同学们也可试着设计可调的PWM输出) pwm波由P1^0口输出。可观察到其对应发光二极管在闪烁 (熄灭持续时间为200us,点亮持续时间为800us,闪烁周期为1ms)。 **************************************************************************/ #include #define uint unsigned int uint pp; sbit pwm=P1^0; void main() { TMOD=0x01; //模式设置,00000001,可见采用的是定时器0,工作与模式1(M1=0,M0=1)。 TR0=1; //打开定时器 TH0=0Xff; //定时器设置,每隔100微秒发起一次中断。 TL0=0Xa4; ET0=1; //开定时器0中断 EA=1; //开总中断 while(1) { if(pp<=2) pwm=1; else pwm=0; if(pp==10) pp=0; } } void time0() interrupt 1 { TH0=0Xff; TL0=0Xa4; pp++; }