查看: 1267  |  回复: 0
STC15单片机实战项目软件开发第五讲 - PWM灯调整亮度
JackMCU
32
主题
47
回复
发表于2020-04-12 12:02:46 | 显示全部楼层
1# 电梯直达


软件开发第五讲 - PWM灯调整亮度


一、工具链接

1、Keil uVision5 C51

    网址-> https://yunpan.360.cn/surl_yx9gj4yQm7I

2、STC-ISP下载软件

 网址-> https://yunpan.360.cn/surl_yxH4CuUUvI3


二、学习板获取方式

方法1:自己设计PCB,自行打板焊接;

 方法2:用硬件家园设计的PCB,自行打板焊接;

 方法3:向硬件家园购买,淘宝网址:

https://item.taobao.com/item.htm?ft=t&id=612010801228

 


三、程序功能

1、单击按键2,PWM灯亮度变化,0-20-40-60-80-100-0,循环往复;

2、长按按键2超过2s,PWM灯灭;

3、双击按键2,PWM灯最亮;


四、硬件部分

     


 PWM灯 -> P35控制,对应单片机的PWM0;

五、PWM

英文全称,Pulse-Width Modulation,脉冲宽度调制。是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。

PWM可用于LED调光,在几k至十几k的频率下,通过调整占空比,快速改变灯亮暗的时间,利用人眼的余晖效应,达到调整LED亮度的目的。



STC15单片机PWM原理如下:

 


六、编程说明

1、文件结构如下:


 


    main.c  -> 主函数文件,包含main函数等;

    Public.c -> 公共函数文件,包含Delay延时函数等;

    Sys_init -> 系统初始化函数,包含GPIO初始化函数等;

    LED.c    -> LED外设函数,包含LED打开、关闭函数等;

Timer0.c -> 定时器函数,包含定时器初始化,中断函数等;

KEY1.c   -> 按键1函数,包含按键检测,中断函数等;

KEY2.c   -> 按键2函数,包含按键状态机检测函数等;

PWM.c    -> PWM初始化与亮度调节函数等;


2、主函数如下:

 


3、参数定义


 

 利用枚举定义PWM占空比值;

 利用结构体定义占空比、初始化函数指针、PWM灯亮度调节函数指针。


4、程序思路

 版权需要,这部分内容,请在微信公众号阅读。

5、源代码

版权需要,这部分内容,请在微信公众号阅读。

     

七、直播

    4月11号,21:00,在bilibili平台进行直播。有时间的朋友,可以看直播,没时间的朋友,可以看回播。

 直播地址: https://live.bilibili.com/21988510


单片机实战项目免费教学,开源项目,开发工具,技术资料以及更多原创技术文章,请关注微信公众号。

 硬件家园     yjjy168168168

  


  作者:刘杰,软硬件技术10年,全职提供技术开发与技术服务、生产支持等。


如果你只做能力范围之内的事情,就永远没法进步。

主题

回复
  • 温馨提示: 标题不合格、重复发帖、发布广告贴,将会被删除帖子或禁止发言。 详情请参考: 社区发帖规则
  • 您当前输入了 0 个文字。还可以输入 8000 个文字。 已添加复制上传图片功能,该功能目前仅支持chrome和火狐

禁言/删除

X
请选择禁言时长:
是否清除头像:
禁言/删除备注:
昵 称:
 
温馨提示:昵称只能设置一次,设置后无法修改。
只支持中文、英文和数字。

举报

X
请选择举报类型:
请输入详细内容:

顶部