軟件開發第五講 - 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、主函數如下:
通過結構體Hardware_Init的函數指針調用系統初始化函數,完成GPIO的初始化,接着進入主循環,進行按鍵2檢測與PWM燈亮度調節。
3、參數定義
利用枚舉定義PWM佔空比值;
利用結構體定義佔空比、初始化函數指針、PWM燈亮度調節函數指針。
4、程序思路
版權需要,這部分內容,請在微信公衆號閱讀。
5、源代碼
版權需要,這部分內容,請在微信公衆號閱讀。
七、直播
4月11號,21:00,在bilibili平臺進行直播。有時間的朋友,可以看直播,沒時間的朋友,可以看回播。
直播地址: https://live.bilibili.com/21988510
單片機實戰項目免費教學,開源項目,開發工具,技術資料以及更多原創技術文章,請關注微信公衆號。
硬件家園 yjjy168168168
作者:劉傑,軟硬件技術10年,全職提供技術開發與技術服務、生產支持等。