有谁能告诉我单片机pwm定时器模拟pwm原理函数什么时候会调用啊

89C51芯片没有自带PWM发生器如果要用51來产生PWM波就必须要用软件编程的方法来模拟。方法大概可以分为软件延时和定时器模拟pwm原理产生两种方法下面将逐一介绍。

利用软件延時函数控制电平持续的时间,达到模拟pwm的效果

proteus软件仿真结果如下:

可见,用这种延时函数的方法就能简单地模拟出pwm输出但是这种方法的缺点也相当明显。当程序除了要输出pwm波还要执行其他操作比如键盘扫描、显示等操作时需要占用CPU一定的机器周期,这样就会影响pwm的准确度现在很少会用到这种方法,接下来要介绍的是比较常用的方法

这种方法利用了定时器模拟pwm原理溢出中断,在中断服务程序改变電平的高低在程序较复杂、多操作时仍能输出较准确的pwm波形。

本例程采用定时器模拟pwm原理T0在工作方式1下产生一路PWM用独立键盘控制频率、占空比的加减,频率可调范围100Hz-10kHz占空比0-100%(均为理论值,实际值略低)部分代码如下:

注:T0_H , T0_L , T1_H , T1_L 均用于暂时存储初值进入中断服务程序后直接给寄存器TH0、TL0赋值,避免了在中断中计算

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人不代表电子发烧友网立场。文章及其配图仅供工程师学习之用如有内容图片侵权或者其他问题,请联系本站作侵删 

我要回帖

更多关于 定时器模拟pwm原理 的文章

 

随机推荐