找回密码
 立即注册

QQ登录

只需一步,快速开始

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

怎么同时输出不同频率占空比的两路PWM,可调节

[复制链接]
跳转到指定楼层
楼主
stc8a8k64D4怎么同时输出不同频率占空比的两路PWM,可调节,比如说一路10khz 50%占空比             另一路5K  40%占空比,求大佬指教
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:401564 发表于 2022-7-28 20:24 | 只看该作者
在数据手册中
STC8A的PWM和其它STC型号的PWM一样洋洋洒洒一大堆,看半天看不明白,但你总得去看的,慢慢看,认真看,2个小时就可以看明白了你在这问,无非就是一堆代码,你只能看明白代码,却不会知道代码是什么意思,最终还是得看数据手册
代码在STC下载器那直接复制就行,我就不复制了


回复

使用道具 举报

板凳
ID:213173 发表于 2022-7-28 21:11 | 只看该作者
PCA/CCP/PWM只能输出3路同频不同占空比的PWM。
使用新增的15位增强型 PWM 可以输出8路不同频任意占空比的PWM。
回复

使用道具 举报

地板
ID:123289 发表于 2022-7-29 08:12 | 只看该作者
单片机上有PWM模块的用模块去做。没有模块的用定时器去做。
用定时器做N路PWM的方式:
1、用一个定时器用于时基,如:用T0中断做一个1ms的定时器。
2、做2N个计时器(寄存器)和N个开关,N个用于计高电平时间,另N个用于计低电平时间,N个开关用于控制计时器是否工作。
以第三个为例:N3H个用于计高电平时间,N3L个用于计低电平时间,K3用于控制计时器是否工作。
T0中断程序中:
检测K3和第三路的输出。
K3=0,不处理。
K3=1,输出为1时,N3H+1计数,计满后复位N3H准备下次用,再将输出清0;
K3=1,输出为0时,N3L+1计数,计满后复位N3L准备下次用,再将输出置1;
主程序中:
初始化时复位所有的计时器及开关。
调节第三路占空比时,改动N3H,N3L的复位值即可(复位值也需要占用两个寄存器,宽度大时自行增加寄存器)。
起动第三路时,将K3置1。
停止第三路时,将K3清0,并处理第三路的输入,将输入做成需要的0或1。
以8路输出为例需要占用的寄存器为33个字节:
8个字节用于输出1计时;
8个字节存放复位1的值;
8个字节用于输出0计时;
8个字节存放复位0的值;
1个字节用于8个开关,一位控制一路。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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