找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2264|回复: 5
打印 上一主题 下一主题
收起左侧

关于单片机IO模拟PWM输出的问题,求思路

[复制链接]
回帖奖励 1 黑币 回复本帖可获得 1 黑币奖励! 每人限 1 次
跳转到指定楼层
楼主
1.最初的输出波形

2.变化后的输出波形


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




分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:161164 发表于 2022-4-14 17:44 | 只看该作者
先把你的代码贴出来才知道怎么改
回复

使用道具 举报

板凳
ID:419909 发表于 2022-4-15 09:10 | 只看该作者
提供一个思路。 仅供参考:
先把这组波形量化。再根据每个节点变换电平,
比如,目前把这组波形量化为100,那么每个分隔点具体在什么位置,自己确定后。再变换电平就行。

回复

使用道具 举报

地板
ID:123289 发表于 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。
相信你是有办法了,不再讲了。
回复

使用道具 举报

5#
ID:82533 发表于 2022-8-6 18:18 | 只看该作者
yzwzfyz 发表于 2022-4-15 10:31
初始化;
1、P1.0=1(正波),P1.1=0(负波)的初值。
2、给出周期T并假设T=100,给出周期计数器TT,并置数: ...

谢谢,感谢解答,其实改变PWM周期,再调节占空比就能实现。和你说的一样
回复

使用道具 举报

6#
ID:799053 发表于 2022-8-8 16:33 | 只看该作者
改占空比和周期就行了,直接改成可调节的 用数字电阻器调节就可以了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表