找回密码
 立即注册

QQ登录

只需一步,快速开始

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

台灯的pwm调光单片机代码问题

[复制链接]
跳转到指定楼层
楼主
网上找的一个程序,想请教大佬们,这段代码是怎么实现PWM的?X1为低电平时间,X2为高电平时间,LED置0时点亮,置1时熄灭。这段代码逻辑是啥?到底能不能实现PWM,连占空比都看不出来是多少,很急,谢谢大家。

图片1.png (19.95 KB, 下载次数: 55)

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

使用道具 举报

沙发
ID:347954 发表于 2019-5-10 21:28 | 只看该作者
本帖最后由 ccl09 于 2019-5-11 13:38 编辑

while(x1!=0){},等待 x1*指令周期   的时间  ,x1<1000, while(x2!=0){},等待 x2*指令周期   的时间,占空比x2/1000.
回复

使用道具 举报

板凳
ID:65297 发表于 2019-5-11 03:29 | 只看该作者
你的截图代码不完整,没办法解释, 而且X2本来就有问题,117-120行已经表明X1永远都是等于0后才往下执行,那么X2=1000-X1;这个就是多余的,123行的X2永远都是从1000开始减,
这个程序如果不给出完整的代码只能认为是错误的
回复

使用道具 举报

地板
ID:95038 发表于 2019-5-11 06:26 | 只看该作者
占空比=X1/1000.总时间是1000个时间量,低电平时X1个时间量,高电平是1000-X1个时间量,改变X1就是改变占空比,实现亮与暗的时间比例变化,由于时间短,看到的是光的总亮度变化。
回复

使用道具 举报

5#
ID:56665 发表于 2019-5-11 08:26 | 只看该作者
PWM周期是1000,首先是灯亮,等待X1低电平时间到,转为灯灭,持续X2时间,高电平占空比为X2/1000
回复

使用道具 举报

6#
ID:1047841 发表于 2022-12-21 10:34 | 只看该作者
看到你这个代码  让我想到的是呼吸灯的代码,从灭到亮 逐渐变化的
回复

使用道具 举报

7#
ID:883242 发表于 2022-12-21 16:51 | 只看该作者
m182892 发表于 2019-5-11 08:26
PWM周期是1000,首先是灯亮,等待X1低电平时间到,转为灯灭,持续X2时间,高电平占空比为X2/1000

问题是楼主位代码算X2的值算错了。
回复

使用道具 举报

8#
ID:1058463 发表于 2022-12-22 10:05 | 只看该作者
占空比=X1/1000.总时间是1000个时间量,低电平时X1个时间量,高电平是1000-X1个时间量,改变X1就是改变占空比,实现亮与暗的时间比例变化,由于时间短,看到的是光的总亮度变化。
回复

使用道具 举报

9#
ID:34149 发表于 2022-12-22 14:24 | 只看该作者
进来学习的,可惜代码不全。
回复

使用道具 举报

10#
ID:420836 发表于 2022-12-24 23:59 | 只看该作者
PWM是一种方波脉冲串,占空比可调,占空比是开和关持续时间的比值。 该代码分别控制开启和关闭持续时间 X1 和 X2。 循环时间/计数为 1000。
回复

使用道具 举报

11#
ID:285686 发表于 2022-12-27 14:11 | 只看该作者
搞个2812灯带玩一玩,可以任意颜色和亮度。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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