谁能分享一下PICspwm单片机程序spwm程序

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

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

proteus软件仿真结果如下:

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

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

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

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

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

}


正点原子STM32开发板购买店铺


正在做spwm谢谢分享

以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力

初级会员, 积分 84, 距离下一级还需 116 积分

进公司时间短,一直做基础性笁作仪表类的,原来是你啊我说怎么忽然有老乡短信我

以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力

初级会员, 积分 84, 距離下一级还需 116 积分

初级会员, 积分 54, 距离下一级还需 146 积分

学习,学习!谢谢分享!

新手上路, 积分 21, 距离下一级还需 29 积分

新手上路, 积分 30, 距离下一级還需 20 积分

您好已经下载了您的程序,我是在做毕设的学生您有时间加一下联系方式,给讲一下吗

新手上路, 积分 30, 距离下一级还需 20 积分

您恏已经下载了您的程序,我是在做毕设的学生您有时间加一下联系方式,给讲一下吗、我的qq

新手上路, 积分 21, 距离下一级还需 29 积分

您好這个spwm正弦波采样值是哪个软件生成的呢,试用了好几个改了改都不对另外spwm频率和生成的pwm频率一样且随着pwm频率变化一起变化,和你主函数描述那段话不一致“你可以用定时器A来产生 1Mhz的PWM然后用定时器B,做定时器中断100Khz的频率,每次中断就把一个采样值赋值给定时器A的输出 通道:CCRx。然后不停的循环每中断一百次,就输出1个波不停的循环就不停的输出,那么PWM输出端经过 滤波后,就是1Khz的正弦波了”期待您的解答。

高级会员, 积分 602, 距离下一级还需 398 积分

}

我要回帖

更多关于 spwm单片机程序 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信