标题: 关于单片机IO模拟PWM输出的问题,求思路 [打印本页]

作者: 677beach    时间: 2022-4-14 15:49
标题: 关于单片机IO模拟PWM输出的问题,求思路
1.最初的输出波形

2.变化后的输出波形


请问怎么用IO模拟的方式实现1图到2图的变化???





作者: lkc8210    时间: 2022-4-14 17:44
先把你的代码贴出来才知道怎么改
作者: wfqxgw    时间: 2022-4-15 09:10
提供一个思路。 仅供参考:
先把这组波形量化。再根据每个节点变换电平,
比如,目前把这组波形量化为100,那么每个分隔点具体在什么位置,自己确定后。再变换电平就行。


作者: yzwzfyz    时间: 2022-4-15 10:31
初始化;
1、P1.0=1(正波),P1.1=0(负波)的初值。
2、给出周期T并假设T=100,给出周期计数器TT,并置数:TT=T=100
3、给出正脉冲宽度:P10W=0.5T=50,给出正脉冲计数器PP10,并置数:PP10=0.5T=50(符合图一)。
4、做个定时器,每次中断时做如下活(中断时间有你自定):
中断服务程序:
2.1、TT-1,如果TT=0,就复位TT=T,并做:P1.0=1(正波),P1.1=0(负波)【复位波形:最好这样做:P1=xxxxxx10,可以同时改变】。
2.2、PP10-1,如果PP10=0,就复位PP10=P10W,并做:P1.0=0(正波),P1.1=1(负波)【反转波形:最好这样做:P1=xxxxxx01,可以同时改变】。
以上处理,图一就有了。特点:周期由T决定,正脉冲宽度由P10W决定。

以下是图二,很简单:改变P10W的值就可以了,试试将P10W从50逐步+1到99。
相信你是有办法了,不再讲了。
作者: 677beach    时间: 2022-8-6 18:18
yzwzfyz 发表于 2022-4-15 10:31
初始化;
1、P1.0=1(正波),P1.1=0(负波)的初值。
2、给出周期T并假设T=100,给出周期计数器TT,并置数: ...

谢谢,感谢解答,其实改变PWM周期,再调节占空比就能实现。和你说的一样
作者: zilihangjian    时间: 2022-8-8 16:33
改占空比和周期就行了,直接改成可调节的 用数字电阻器调节就可以了




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1