軟體開發第五講 - 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年,全職提供技術開發與技術服務、生産支援等。