本帖最后由 liujieshui 于 2020-4-14 11:02 编辑
软件开发第五讲 - PWM灯调整亮度
二、学习板获取方式 方法1:自己设计PCB,自行打板焊接; 方法2:用硬件家园设计的PCB,自行打板焊接; 方法3:向硬件家园购买。
三、程序功能 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、主函数如下: 通过结构体Hardware_Init的函数指针调用系统初始化函数,完成GPIO的初始化,接着进入主循环,进行按键2检测与PWM灯亮度调节。 3、参数定义
利用枚举定义PWM占空比值; 利用结构体定义占空比、初始化函数指针、PWM灯亮度调节函数指针。 4、程序思路 版权需要,这部分内容,请在微信公众号阅读。 5、源代码 版权需要,这部分内容,请在微信公众号阅读。 说明:公众号文章附了源代码下载链接。
七、直播说明 固定周六21:00在B站进行单片机实战教学直播,搜索硬件家园。
实战项目计划:
1、STC15单片机实战项目; 正在进行
2、STM32+GPRS 物联网实战项目;
3、基于STM8的太阳能对锂电池充电实战项目;
4、 原文出处:硬件家园(微信公众号 - yjjy168168168)刘杰编辑
|