一種多功能LED臺燈設(shè)計方案
1.7 按鍵系統(tǒng)
按鍵控制系統(tǒng)由S2~S5 五個按鍵組成,分別為S2 時間設(shè)置鍵、S3 數(shù)值增大鍵、S4 數(shù)值減小鍵、S5 鬧鐘設(shè)置鍵以及S6 亮度調(diào)節(jié)鍵。S2 用于選擇需要調(diào)整的時間日歷以及鬧鐘參數(shù),并作為時間日歷參數(shù)的存儲確認(rèn)鍵。S3 與S4 用于調(diào)整被選參數(shù)值的大小。S5 用于鬧鐘查看與存儲確認(rèn)鍵。S6 用于LED 燈光10 級亮度的調(diào)節(jié)鍵。
1.8 電源系統(tǒng)
本系統(tǒng)設(shè)計最大功率約1.6W,可采用電池或穩(wěn)壓電源多種方式供電。由于系統(tǒng)光源采用20 只LED 燈珠并聯(lián)組成,所以LED 恒流驅(qū)動芯片PT4115 供電電源在6~30V 電壓范圍內(nèi)均可使LED 燈正常使用。但單片機(jī)供電系統(tǒng)采用三端穩(wěn)壓芯片7805,該線性穩(wěn)壓芯片正常工作輸入電壓與輸出電壓差值應(yīng)至少高于2V,若差值過大會增加額外功耗。因此,本系統(tǒng)宜選用2 節(jié)4.2V 鋰電池或9V 的穩(wěn)壓電源方式供電。同時,本文LED 恒流驅(qū)動系統(tǒng)設(shè)計簡潔靈活,可根據(jù)用戶需求適當(dāng)調(diào)整驅(qū)動電路參數(shù),即可擴(kuò)展LED 照明功率,最大可至10W左右。
2 系統(tǒng)軟件設(shè)計
該系統(tǒng)控制程序主要包含系統(tǒng)初始化程序、實時時鐘芯片處理程序、溫度傳感器芯片處理程序、液晶顯示程序、鍵盤檢測與處理程序、鬧鐘中斷以及定時器產(chǎn)生PWM 程序構(gòu)成。
2.1 系統(tǒng)主程序
系統(tǒng)主程序主要包括系統(tǒng)初始化程序(包括I/O 口初始化、DS12C887 時鐘芯片初始化、液晶1602 的初始化、外部中斷0 與定時器T0 設(shè)置)、按鍵檢測和處理程序、時鐘數(shù)據(jù)的讀取與處理程序、溫度數(shù)據(jù)的讀取與處理程序、液晶顯示程序、鬧鐘報警的判斷和處理程序、PWM 調(diào)光處理程序等。程序中設(shè)置鬧鐘標(biāo)志位Flag_ri,一旦鬧鐘時間到達(dá),時鐘芯片IRQ引腳觸發(fā)外部中斷0,進(jìn)入中斷程序則置Flag_ri=1,用于主程序中鬧鐘報警的判斷與處理。
系統(tǒng)主程序流程圖如圖10 所示。
圖10 主程序流程圖
2.2 按鍵檢測和處理程序
按鍵控制系統(tǒng)由S2~S6五個按鍵組成,分別為S2時間設(shè)置鍵、S3數(shù)值增大鍵、S4數(shù)值減小鍵、S5鬧鐘設(shè)置鍵以及S6亮度調(diào)節(jié)鍵。S2用于選擇需要調(diào)整的時鐘以及鬧鐘參數(shù),根據(jù)S2按下次數(shù),依次選擇秒、分、時、星期、日、月、年,液晶屏上被選參數(shù)下方以光標(biāo)閃爍狀態(tài)提示,再通過按下S3或S4調(diào)整被選參數(shù)值的大小,S2按下累積8次時,則退出選擇功能并保存當(dāng)前數(shù)據(jù)至?xí)r鐘芯片。S5用于鬧鐘時間的查看與設(shè)置;首次按下S5,1602液晶屏第二行顯示已設(shè)置的鬧鐘時間;可通過S2、S3與S4重新設(shè)置鬧鐘時間;再次按下,則退出鬧鐘查看功能并保存當(dāng)前設(shè)置的鬧鐘參數(shù)至?xí)r鐘芯片。同時,S3與S4還可獨立作為鬧鐘產(chǎn)生時的取消鍵與LED燈光的關(guān)閉鍵。S6實現(xiàn)LED燈光亮度的10級調(diào)節(jié),每按一次,LED亮度增大一級;當(dāng)達(dá)到亮度最大時,再次按下則關(guān)閉LED燈光。每次有按鍵按下,蜂鳴器都以短'滴'聲提示。按鍵檢測與處理流程圖如圖11所示。
圖11 按鍵檢測與處理流程圖
2.3 鬧鐘中斷程序
系統(tǒng)到達(dá)設(shè)置的鬧鐘時間,DS12C887 時鐘芯片IRQ 引腳輸出由高電平變?yōu)榈碗娖?,作為單片機(jī)P3.2 口INT0 中斷的申請輸入,并可通過讀取DS12C887 芯片的C 寄存器來清除IRQ 引腳輸出。因此,將外部中斷INT0 設(shè)置為負(fù)跳變沿觸發(fā)中斷,并設(shè)置鬧鐘標(biāo)志位Flag_ri,鬧鐘時刻到達(dá)時設(shè)置Flag_ri=1,用于主程序中的鬧鐘報警處理。鬧鐘中斷程序如圖12 所示。
圖12 鬧鐘中斷流程圖
2.4 定時器中斷程序
為產(chǎn)生調(diào)節(jié) LED 燈光亮度的PWM 信號,定時器T0 設(shè)置為工作方式0,即13 位計數(shù)器定時,最多裝載數(shù)值為213=8192 個。因為系統(tǒng)晶振采用12MHz,賦值使TH0=(8192-400)/ 32 與 TL0=(8192-400)%32,即可實現(xiàn)400μ S 的定時中斷。10 次中斷(即4mS)作為一個周期,通過調(diào)節(jié)每個周期內(nèi)單片機(jī)P1.1(該控制口名稱定義為LED_PWM)輸出的占空比來產(chǎn)生PWM 脈沖信號,以控制PT4115 恒流驅(qū)動芯片實現(xiàn)LED 燈的10 級亮度調(diào)節(jié)。
程序設(shè)置對T0 中斷次數(shù)(即定義為T0_num)進(jìn)行計數(shù),以便判斷一個周期到否;同時判斷比較高電平脈沖個數(shù)(即定義為scale 值,由調(diào)光鍵S6 按下次數(shù)設(shè)置)用于實現(xiàn)不同亮度等級的調(diào)節(jié)。在定時器T0 中斷服務(wù)程序中,首先T0 重新裝入定時為400μ S 的初值;定時器中斷次數(shù)T0_num 加1,判斷一個方波周期到否,若到達(dá),令T0_num 歸零,并將P1.1口輸出電平置高(即LED_PWM=1);如果一個方波周期還沒到,則與亮度等級scale 值作比較,判斷高電平脈沖個數(shù)scale 到否,若到達(dá),令P1.1 口輸出電平置低(即LED_PWM=0),否則繼續(xù)保持P1.1 口輸出高電平(即LED_PWM=1);而后中斷返回,等待下一次定時中斷。
這樣,P1.1 口就產(chǎn)生了所需的PWM 調(diào)光信號。定時器生成PWM 流程圖如圖13所示。
圖13 定時器生成PWM流程圖
3 實驗結(jié)果
根據(jù)以上設(shè)計方案,本文制作了該款基于PWM 調(diào)光的多功能LED 臺燈。經(jīng)調(diào)試后系統(tǒng)運行穩(wěn)定可靠,基本可以滿足家庭生活的使用要求。系統(tǒng)工作時,最低功率(即LED 熄滅狀態(tài))為0.28W;最大功率(即LED 最高亮度狀態(tài))約為1.52W;同時,液晶顯示時間、日歷與溫度數(shù)據(jù)準(zhǔn)確,鬧鐘功能穩(wěn)定。實物照片如圖14 所示。
圖 14 實物照片
pwm相關(guān)文章:pwm是什么
led燈相關(guān)文章:led燈原理
蜂鳴器相關(guān)文章:蜂鳴器原理 晶振相關(guān)文章:晶振原理 脈沖點火器相關(guān)文章:脈沖點火器原理 上拉電阻相關(guān)文章:上拉電阻原理 調(diào)光開關(guān)相關(guān)文章:調(diào)光開關(guān)原理
評論