AT89C51单片机P1.0口产生PWM波的C语言程序怎么编写?求大神(不要太复杂啊)

2024-12-22 19:09:02
推荐回答(2个)
回答1:

根据你自己的需要,PWM分级,PWM周期10ms,分100级,那么定时器中断100us,另外一个寄存器中断里计数,和你要的占空比寄存器比较,如果当前占空比50%,那么计数器比较是否大于5ms,大于则PWMP1.0输出高,小于则PWMP1.0输出低,最后判断计数是否到10ms,然后清零,从新开始!就可以了啊,很简单,如需改变占空比那么在一个PWM周期完成后改变即可,如果是调速,那么直接增加或者减少占空比,不需要等下个周期

回答2:

三路可调 PWM 仿真实例,供参考