4694|17

86

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

单片机自带PWM 控制LED灯得亮度。怎么写?? [复制链接]

 

寄存器配置已经配好了, 我才学习单片机, 刚接触到PWM。现在寄存器配置好了,但是后面怎么是LED亮和灭。不知道怎么写。

我也知道高电平占整个周期的时间 就是  占空比。  但是应该怎么写呢??????????求助  !!!!!!!!!!!!!!!!!

 

此帖出自51单片机论坛

最新回复

你的PWM在单位时间内改变驱动电路开关时间,从而调整了驱动电路的电压大小,电压的大小改变灯的明暗程度。   详情 回复 发表于 2019-12-9 09:39
点赞 关注
 

回复
举报

650

帖子

8

TA的资源

纯净的硅(初级)

沙发
 

加一个while(1)循环,间隔一段时间比如100ms改变占空比,从0~100占空比,灯正常就会从亮到灭渐变

此帖出自51单片机论坛

点评

我试了。没效果了。我是手动改变的值  详情 回复 发表于 2019-10-17 17:47
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
29447945 发表于 2019-10-17 17:26 加一个while(1)循环,间隔一段时间比如100ms改变占空比,从0~100占空比,灯正常就会从亮到灭渐变

我试了。没效果了。我是手动改变的值

此帖出自51单片机论坛

点评

加了延时吗?  详情 回复 发表于 2019-10-17 21:34
 
 
 

回复

650

帖子

8

TA的资源

纯净的硅(初级)

4
 
一百年后的自己 发表于 2019-10-17 17:47
我试了。没效果了。我是手动改变的值

加了延时吗?
此帖出自51单片机论坛

点评

没有加  详情 回复 发表于 2019-10-18 09:06
 
 
 

回复

4005

帖子

0

TA的资源

版主

5
 

修改占空比寄存器就行了

此帖出自51单片机论坛
 
 
 

回复

4005

帖子

0

TA的资源

版主

6
 

是不是配置寄存器锁定了

此帖出自51单片机论坛

点评

  直接修改这一部分就可以了嘛?  详情 回复 发表于 2019-10-18 09:07
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(中级)

7
 

没有加

此帖出自51单片机论坛

点评

每次更改占空比都要延时,要不然你根本看不出来改变的过程  详情 回复 发表于 2019-10-18 09:10
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(中级)

8
 
huo_hu 发表于 2019-10-18 08:16 是不是配置寄存器锁定了

 

直接修改这一部分就可以了嘛?

image.png (17.95 KB, 下载次数: 0)

image.png
此帖出自51单片机论坛
 
 
 

回复

650

帖子

8

TA的资源

纯净的硅(初级)

9
 

每次更改占空比都要延时,要不然你根本看不出来改变的过程

此帖出自51单片机论坛

点评

[attachimg]438875[/attachimg] [attachimg]438876[/attachimg]然后我放在主函数里面,while 一直循环没问题吧,  而且周期和占空比我声明了变量,再主函数里面改变值就应该有效果吧。但是没声明改变  详情 回复 发表于 2019-10-18 09:38
[attachimg]438865[/attachimg] 这个是我新更改的寄存器配置。 每次更改占空比需要延时???  详情 回复 发表于 2019-10-18 09:26
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(中级)

10
 
29447945 发表于 2019-10-18 09:10 每次更改占空比都要延时,要不然你根本看不出来改变的过程

这个是我新更改的寄存器配置。

每次更改占空比需要延时???

此帖出自51单片机论坛
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(中级)

11
 
29447945 发表于 2019-10-18 09:10 每次更改占空比都要延时,要不然你根本看不出来改变的过程

然后我放在主函数里面,while 一直循环没问题吧,  而且周期和占空比我声明了变量,再主函数里面改变值就应该有效果吧。但是没声明改变

此帖出自51单片机论坛

点评

下面这是思路,你要自己去实现这些函数。 void main() { int pwm_value = 0; pwm_init(); while(1) { set_pwm(pwm_value ); pwm_value += 10; if(pwm_value  >= 100) pwm_valu  详情 回复 发表于 2019-10-18 09:50
 
 
 

回复

650

帖子

8

TA的资源

纯净的硅(初级)

12
 
一百年后的自己 发表于 2019-10-18 09:38 然后我放在主函数里面,while 一直循环没问题吧,  而且周期和占空比我声明了变量,再主函数里 ...

下面这是思路,你要自己去实现这些函数。

void main()

{

int pwm_value = 0;

pwm_init();

while(1)

{

set_pwm(pwm_value );

pwm_value += 10;

if(pwm_value  >= 100)

pwm_value  = 0;

delay_10ms();

}

}

此帖出自51单片机论坛

点评

如果我开始不设置函数, 我直接更改占空比得值, 那那个led灯的亮度会不会有变化????????  详情 回复 发表于 2019-10-18 11:24
好的, 谢谢  详情 回复 发表于 2019-10-18 10:04
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(中级)

13
 
29447945 发表于 2019-10-18 09:50 下面这是思路,你要自己去实现这些函数。 void main() { int pwm_value = 0; pwm_init(); ...

好的, 谢谢

此帖出自51单片机论坛
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(中级)

14
 
29447945 发表于 2019-10-18 09:50 下面这是思路,你要自己去实现这些函数。 void main() { int pwm_value = 0; pwm_init(); ...

如果我开始不设置函数, 我直接更改占空比得值, 那那个led灯的亮度会不会有变化????????

此帖出自51单片机论坛

点评

当然要先设置好定时器,再改占空比才能用啊,不设置定时器改当然不起作用。延时时间可以加长点  详情 回复 发表于 2019-10-18 12:17
 
 
 

回复

650

帖子

8

TA的资源

纯净的硅(初级)

15
 
一百年后的自己 发表于 2019-10-18 11:24 如果我开始不设置函数, 我直接更改占空比得值, 那那个led灯的亮度会不会有变化????????

当然要先设置好定时器,再改占空比才能用啊,不设置定时器改当然不起作用。延时时间可以加长点

此帖出自51单片机论坛

点评

定时器设置了,我现在又疑问,我用示波器看也有高低电平。 主要是我配置寄存器后,还需不需要用io控制led灯亮。 还是PWM就可以直接把led调亮?如果可以直接调亮,为什么我烧写程序,led不亮。我也把PWM的使能  详情 回复 发表于 2019-10-18 13:42
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(中级)

16
 
29447945 发表于 2019-10-18 12:17 当然要先设置好定时器,再改占空比才能用啊,不设置定时器改当然不起作用。延时时间可以加长点

定时器设置了,我现在又疑问,我用示波器看也有高低电平。

主要是我配置寄存器后,还需不需要用io控制led灯亮。

还是PWM就可以直接把led调亮?如果可以直接调亮,为什么我烧写程序,led不亮。我也把PWM的使能打开了。

 

此帖出自51单片机论坛
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

17
 

PWM就可以直接把led调亮 和调暗,与驱动灯电路有关。

此帖出自51单片机论坛
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

18
 

你的PWM在单位时间内改变驱动电路开关时间,从而调整了驱动电路的电压大小,电压的大小改变灯的明暗程度。

此帖出自51单片机论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表