标准的51机是没有PWM功能的。
当然现在许多厂商已经给51做了增强功能。在不了解您使用哪种MCU情况下,假设您的MCU没有PWM功能。
先讲个简单的应用,假设要输出1Khz,占空比50%的PWM
需要将定时器设为500微秒,在定时器中断函数中,设置该引脚翻转。
复杂点,占空比不是50%,就需要增加一个计数变量。
假设占空比为33%
定义一个计数器:u8 pwmCount = 0;
定时器设为5微秒
中断函数中这样写:
pwmCount++;
if(33 == pwmCount)
Pout = 0;
else if(100 == pwmCount){
Pout = 1;
pwmCount = 0;
}