标题: 基于51单片机的pwm信号发生器,求指导设计思路 [打印本页]

作者: 2841799476    时间: 2021-11-12 09:03
标题: 基于51单片机的pwm信号发生器,求指导设计思路
基于单片机的定时器设计并实现500Hz的PWM发生器
1.输出方波的占空比可以用按键控制从10%~90%,设置9个按键2.用示波器显示波形;
3.用LCD1602显示占空比。
4.通过串口_上报占空比到PC端。


作者: 小猫电子    时间: 2021-11-12 18:34
设置 9 个按键,每个按键递进 10%,刚好
晶振选用11.0592,串口波特率一般采用9600
定时器内设置一个变量,用于控制占空比
作者: 2841799476    时间: 2021-11-13 00:55
有没有大佬代码学习学习
作者: weijoyer    时间: 2021-11-13 08:06
用定时器来产生PWM波
作者: 2841799476    时间: 2021-11-13 10:50
想了解怎么通过串口上报电脑,其他要求已经达到
作者: 188610329    时间: 2021-11-13 11:12
2841799476 发表于 2021-11-13 10:50
想了解怎么通过串口上报电脑,其他要求已经达到

"其他要求已经达到" 是通过你自己的努力达成的话, 这个应该知道吧? SBUF = ??
作者: 111111343562224    时间: 2021-11-13 11:16
设置 9 个按键,每个按键递进 10%,刚好
晶振选用11.0592,串口波特率一般采用9600
定时器内设置一个变量,用于控制占空比
作者: wufa1986    时间: 2021-11-13 11:49
现成是不可能有的
作者: 18376669510    时间: 2021-11-13 23:31
500hz的周期是2ms,假设占空比为a,那么高电平时长就是2乘ams,低电平时长就是2乘(1-a)ms,你可以在定时器中断里函数里依据当前pwm输出的电平判断需要装载的重装载值,并且完成pwm电平的翻转,在主函数里进行按键检测和lcd显示,以及串口发送
作者: 18376669510    时间: 2021-11-13 23:41
上周刚写过一个类似的代码,也是定时器产生pwm,用lcd显示当前占空比,原本是打算用来做数控恒流源的,但是发现死区有点大就不了了之了。如果想要产生无死区pwm的话,建议用自带pwm功能的单片机,或者用dac产生一个锯齿波,然后用模拟比较器将锯齿波和一个可调电压比较,就会输出一个pwm,调整可调电压完成占空比调整。
作者: 2841799476    时间: 2021-11-14 09:49
现在是一个定时器和串口中断冲突,发不出数据
作者: angmall    时间: 2021-11-14 09:59
2841799476 发表于 2021-11-14 09:49
现在是一个定时器和串口中断冲突,发不出数据

之所以不能使用串口中断,是因为你的定时器设置太小,已经等于小于机器周期。
而定时器中断优先级高于串口中断,所以不能执行串口中断。

解决方法
1定时器时间改长一点
2把串口优先级设高于定时器。
作者: hylot    时间: 2021-11-14 11:52
两个按键设置占空比步进加或减,再两个按键调节占空比加或减,程序里可把占空比限定在10%~90%。用定时器,产生精确占空比




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