导航:首页 > 操作系统 > 51单片机pwm波

51单片机pwm波

发布时间:2023-12-11 19:43:52

‘壹’ 如何利用51单片机输出PWM波

1、用定时器+编程
2、51系列单片机无PWM输出功能,可以采用定时器配合软件的方法输出。对精度要求不高的场合,非常实用
3、思路:定义一个静态变量,程序每次进入定时器的中断函数中时判断是否满足你说要求的占空比,没达到就继续对变量值进行累加直到满足条件后使输出PWM波的那个引脚电平反转

4、具体详见http://wenku..com/link?url=u82FHU5L--ZvMAabY2JKxCEajqxn_f5GPMl5GQRgrnji3hAGRBq11e

‘贰’ 如何利用51单片机输出PWM波

用两个定时器的方法是用定时器T0来控制频率,定时器T1来控制占空比。大致的的编程思路是这样的:T0定时器中断让一个I0口输出高电平,在这个定时器T0的中断当中起动定时器T1,而这个T1是让IO口输出低电平,这样改变定时器T0的初值就可以改变频率,改变定时器T1的初值就可以改变占空比。
用一个定时器时(如定时器T0),首先你要确定PWM的周期T和占空比D,确定了这些以后,你可以用定时器产生一个时间基准t,比如定时器溢出n次的时间是PWM的高电平的时间,则D*T=n*t,类似的可以求出PWM低电平时间需要多少个时间基准n'。
因为这里我们是产生周期为1ms(1000HZ)的PWM,所以可设置中断的时间基准为0.01ms,,然后中断100次即为1ms。在中断子程序内,可设置一个变量如time,在中断子程序内,有三条重要的语句:1、当time>=100时,time清零(此语句保证频率为1000HZ),2、当time>n时(n应该在0-100之间变化开),让单片相应的I/O口输出高电平,当time<n时,让单片相应的I/O口输出低电平,此时占空比就为%n。
参考资料:http://wenku..com/link?url=-Q74XVCQtStw6zJYtmlveX_O4_p3CkaHS-KIbWcgOIwQVMGTOGUi

‘叁’ 用51单片机同时实现四路PWM波,(C语言)

定个时间20ms周期的定时器,然后在定时器到达那些点的时候,让自己设的那些变量依次变化。 再根据自己的变量,付给输出端口就可以了。 看着像舵机的

看了你追问的,原来是四路每一路都产生变化的波形。那个也好办。可以通过计算,把这几个波形统一起来成一个周期,比如开始0.5ms到了,让定的值取反,再加19.5再取反,再加1.3Ms再取反,再加18.7ms再取反...然后一直这样把几个都写完。
还有种方法,来改变第一个pwm的设定值。比如放数组里一共5个设定值,分别代表你设定的高电平时间,依次替换第一个定时器里面的中端时间即可。
当然,前两种都差不多,还有一种方法供你扩展:就是用两个定时器,然后按照时间去匹配修改。当然,51单片机那精度就不说了,不太确信可以达标,一个定时器进中断了,另一个就要停一下。。
BTW,个人感觉51的单片机没有很好的pwm模块,这样写了Pwm程序,别的就干不了了。建议用用带epwm模块的mcu,直接调用epwm和epwm中断,节省cpu资源,可以多写很多程序。

阅读全文

与51单片机pwm波相关的资料

热点内容
cadopen命令死机 浏览:263
腾讯云服务器用什么路由器 浏览:669
酷狗cue放在哪个文件夹 浏览:219
pythonswing 浏览:162
python分词添加词库 浏览:870
有哪个app可以下载电视剧 浏览:163
哪个app可以免费看封神英雄 浏览:963
上海中学生python培训 浏览:95
iso命令 浏览:969
云免费云服务器租用多少钱 浏览:603
python输出文件的md5值 浏览:199
安卓实况图片怎么拍成抖音视频的 浏览:542
手机详情图片压缩 浏览:953
checkpoint加密 浏览:531
哪个app可以下载失忆症 浏览:758
adc是什么意思单片机 浏览:1
通达信捕捞指标源码 浏览:962
数据管理系统源码 浏览:984
奥迪工程师编程 浏览:964
单片机烧写器和下载线区别 浏览:898