找回密码
 立即注册

QQ登录

只需一步,快速开始

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

基于51单片机的pwm信号发生器,求指导设计思路

[复制链接]
跳转到指定楼层
楼主
ID:928685 发表于 2021-11-12 09:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
基于单片机的定时器设计并实现500Hz的PWM发生器
1.输出方波的占空比可以用按键控制从10%~90%,设置9个按键2.用示波器显示波形;
3.用LCD1602显示占空比。
4.通过串口_上报占空比到PC端。

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

使用道具 举报

沙发
ID:883698 发表于 2021-11-12 18:34 | 只看该作者
设置 9 个按键,每个按键递进 10%,刚好
晶振选用11.0592,串口波特率一般采用9600
定时器内设置一个变量,用于控制占空比
回复

使用道具 举报

板凳
ID:928685 发表于 2021-11-13 00:55 | 只看该作者
有没有大佬代码学习学习
回复

使用道具 举报

地板
ID:339654 发表于 2021-11-13 08:06 | 只看该作者
用定时器来产生PWM波
回复

使用道具 举报

5#
ID:928685 发表于 2021-11-13 10:50 | 只看该作者
想了解怎么通过串口上报电脑,其他要求已经达到
回复

使用道具 举报

6#
ID:624769 发表于 2021-11-13 11:12 | 只看该作者
2841799476 发表于 2021-11-13 10:50
想了解怎么通过串口上报电脑,其他要求已经达到

"其他要求已经达到" 是通过你自己的努力达成的话, 这个应该知道吧? SBUF = ??
回复

使用道具 举报

7#
ID:980554 发表于 2021-11-13 11:16 | 只看该作者
设置 9 个按键,每个按键递进 10%,刚好
晶振选用11.0592,串口波特率一般采用9600
定时器内设置一个变量,用于控制占空比
回复

使用道具 举报

8#
ID:879348 发表于 2021-11-13 11:49 | 只看该作者
现成是不可能有的
回复

使用道具 举报

9#
ID:948088 发表于 2021-11-13 23:31 来自手机 | 只看该作者
500hz的周期是2ms,假设占空比为a,那么高电平时长就是2乘ams,低电平时长就是2乘(1-a)ms,你可以在定时器中断里函数里依据当前pwm输出的电平判断需要装载的重装载值,并且完成pwm电平的翻转,在主函数里进行按键检测和lcd显示,以及串口发送
回复

使用道具 举报

10#
ID:948088 发表于 2021-11-13 23:41 来自手机 | 只看该作者
上周刚写过一个类似的代码,也是定时器产生pwm,用lcd显示当前占空比,原本是打算用来做数控恒流源的,但是发现死区有点大就不了了之了。如果想要产生无死区pwm的话,建议用自带pwm功能的单片机,或者用dac产生一个锯齿波,然后用模拟比较器将锯齿波和一个可调电压比较,就会输出一个pwm,调整可调电压完成占空比调整。
回复

使用道具 举报

11#
ID:928685 发表于 2021-11-14 09:49 | 只看该作者
现在是一个定时器和串口中断冲突,发不出数据
回复

使用道具 举报

12#
ID:155507 发表于 2021-11-14 09:59 | 只看该作者
2841799476 发表于 2021-11-14 09:49
现在是一个定时器和串口中断冲突,发不出数据

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

解决方法
1定时器时间改长一点
2把串口优先级设高于定时器。
回复

使用道具 举报

13#
ID:639698 发表于 2021-11-14 11:52 | 只看该作者
两个按键设置占空比步进加或减,再两个按键调节占空比加或减,程序里可把占空比限定在10%~90%。用定时器,产生精确占空比
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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