51单片机定时器PWM发生
1.功能
定时器t1 (0.5ms)中断] 中断中做 PWM 输出
------------1000/(0.02ms*250)=200Hz
2.代码
/******************************************************************************** * 标题: 恒速运行 * * * ********************************************************************************* * 通过本例程了解PWM 的基本原理和使用 * * * * * * * *********************************************************************************/ #include <reg52.h> unsigned char timer1; sbit PWM=P1^1; void system_Ini() { TMOD|= 0x11; //PWM TH1 = 0xfe; //11.0592m TL1 = 0x33; TR1 = 1; IE =0x8A; } main() { system_Ini(); while(1) { if(timer1>100) timer1=0; if(timer1<30) PWM=0; else PWM=1; } } /************************************* [ t1 (0.5ms)中断] 中断中做 PWM 输出 ------------1000/(0.02ms*250)=200Hz *************************************/ void T1zd(void) interrupt 3 //3 为定时器1的中断号 1 定时器0的中断号 0 外部中断1 2 外部中断2 4 串口中断 { TH1 = 0xfe; //11.0592 TL1 = 0x33; timer1++; }