引言
LED(發(fā)光二極管)作為一種新型光源,具有高效節(jié)能、綠色環(huán)保、使用壽命長等其他光源無法比擬的優(yōu)點,代表著未來照明技術(shù)的發(fā)展方向。本文設(shè)計了以AT89S51 單片機為核心的多功能白光LED 臺燈系統(tǒng),采用PT4115 大功率LED 恒流驅(qū)動方案,可實現(xiàn)對LED 臺燈的PWM 調(diào)光控制;同時兼有時鐘日歷、聲光鬧鐘、溫度檢測、液晶顯示等多項功能。在實現(xiàn)高效節(jié)能的同時,為家庭使用提供了極大的便捷。
該多功能LED臺燈系統(tǒng)采用20 只5mm 高亮白光LED 燈珠為光源,以AT89S51 單片機為主控芯片,由LED 恒流驅(qū)動系統(tǒng)、時鐘系統(tǒng)、測溫系統(tǒng)、液晶顯示系統(tǒng)、蜂鳴系統(tǒng)、按鍵系統(tǒng)組成。系統(tǒng)結(jié)構(gòu)框圖如圖1 所示。
該系統(tǒng)可具體實現(xiàn)LED 臺燈的10 級PWM 調(diào)光控制;液晶屏實時顯示時鐘、日歷與環(huán)境溫度信息;鬧鐘功能采用聲光報警方式,即一旦到達鬧鐘時間,LED 臺燈自動點亮,并發(fā)出蜂鳴聲報警,以喚醒用戶;用戶可通過按鍵系統(tǒng)實現(xiàn)對時鐘日歷與鬧鐘參數(shù)的設(shè)置、LED 亮度的調(diào)節(jié)以及鬧鐘報警的解除。
?
圖1 系統(tǒng)結(jié)構(gòu)框圖
1.1 單片機主控系統(tǒng)
本設(shè)計主控系統(tǒng)采用ATMEL 公司的高性能AT89S51 芯片實現(xiàn),其P0 口外接10K 的上拉電阻,P0.0~P0.7 同時作為DS12C887 的數(shù)據(jù)接口與液晶1602 的數(shù)據(jù)接口。P2.0~P2.3分別連接DS12C887 芯片的片選端CS、地址選通輸入端AS、數(shù)據(jù)選擇端DS 與讀/寫輸入端R/W,P3.2 連接其鬧鐘中斷請求輸出端IRQ.P2.5~P2.7 分別連接液晶1602 的使能端EN、數(shù)據(jù)/命令選擇端RS、讀/寫選擇端RW.P2.4 作為蜂鳴器控制端。P3.0 作為DS18B20 的信號輸入端。P3.1、P3.4、P3.5、P3.6 與P3.7 作為S2~S6 按鍵系統(tǒng)。P1.1 作為PWM 信號的輸出端并連接PT4115 芯片DIM 端,用于PWM 調(diào)光控制。系統(tǒng)晶振電路由12MHZ 晶振與兩個30PF 電容組成;復(fù)位電路則由S1 按鍵、10K 電阻與10uF 電解電容構(gòu)成。主控系統(tǒng)電路如圖2 所示。
?
圖2 單片機主控系統(tǒng)電路圖
1.2 恒流驅(qū)動系統(tǒng)
本設(shè)計 L ED 光源采用相互并聯(lián)方式,共由20 只5mm 高亮度小功率LED 燈珠組成;每只LED 燈珠的壓降約3.1V,工作電流約20mA.由白光LED 的正向伏安特性可知,當(dāng)LED 端電壓超過其正向?qū)妷汉?,較小的電壓波動都會導(dǎo)致工作電流的的劇烈變化,從而影響LED 的正常使用,固LED 宜采用恒流驅(qū)動方式。因此,本設(shè)計LED 采用高性能PT4115 恒流芯片驅(qū)動,PT4115 是一款連續(xù)電感電流導(dǎo)通模式的降壓恒流源芯片,能將直流電壓直接轉(zhuǎn)換成穩(wěn)定的恒流輸出;其采用6~30V 寬電壓輸入,輸出電流可達1.2A,轉(zhuǎn)換效率高達97%,輸出電流精度達±5%.該芯片內(nèi)部含有抖頻特性,極大的改善EMI,同時具有過溫、過壓、過流、LED 開路保護等多種功能。該芯片適合用于綠色照明LED燈的驅(qū)動電路,具有應(yīng)用電路非常簡潔的優(yōu)點。LED 恒流驅(qū)動電路如圖3 所示。
?
圖3 LED 恒流驅(qū)動系統(tǒng)電路圖
通過 PT4115 芯片上的DIM 端,可以方便的進行模擬或PWM 調(diào)光。由于模擬調(diào)光是直接改變流過LED 電流的大小來實現(xiàn)亮度調(diào)節(jié),除了亮度會改變以外,也會影響白光的質(zhì)量,即不同電流下發(fā)出的白光存在色偏。因此,本設(shè)計采用PWM 調(diào)光方案,PWM 調(diào)光的基本原理是保持LED 正向?qū)娏骱愣?,而通過控制電流導(dǎo)通和關(guān)斷的時間比例,即改變輸入脈沖信號的占空比,使LED 產(chǎn)生亮暗變化;并利用人眼的視覺殘留效應(yīng),當(dāng)LED 亮暗變化頻率大于120Hz 時,人眼就不會感覺到閃爍,而看到是LED 的平均亮度。PWM 調(diào)光的優(yōu)勢是LED 正向?qū)ǖ碾娏魇呛愣ǖ?,LED 的色度就不會像模擬調(diào)光時產(chǎn)生變化。
PT4115 恒流驅(qū)動輸出的電流值計算公式為:
IOUT =(0.1×D)/ Rs (D 為方波信號占空比,Rs 為限流電阻。
本設(shè)計 LED 光源采用20 只小功率白光LED 燈珠并聯(lián)方式,且每只LED 燈珠額定電流為20mA,則PT4115 恒流驅(qū)動輸出最大電流IOUT 應(yīng)為400mA,因此Rs 選取0.25 Ω 電阻。
L1 為鎮(zhèn)流電感,選取68μ H,用于穩(wěn)定通過LED 的電流。D1 是續(xù)流二極管,當(dāng)芯片內(nèi)部MOS 管截止?fàn)顟B(tài)時為儲存在電感L1 中的電流提供放電回路;由于工作在高頻狀態(tài),D1 選用正向壓降小且恢復(fù)速度快的肖特基二極管SS24.
PWM 脈沖信號則由單片機P1.1 產(chǎn)生,其高低電平?jīng)Q定LED 的通斷狀態(tài)。將定時器T0溢出中斷定為1/2500 秒(即400μ S),每10 次脈沖作為一個周期,即頻率為250HZ.這樣,在每1/250 秒的方波周期中,通過改變方波的輸出占空比,從而實現(xiàn)LED 燈的10 級亮度調(diào)節(jié),即LED 亮度等級由每個周期內(nèi)的高電平脈沖數(shù)目決定。當(dāng)高電平脈沖個數(shù)為1 時,占空比為1/10,亮度最低,其調(diào)光原理如圖4 所示;當(dāng)高電平脈沖為10 時,占空比為1,LED亮度最高。
?
圖 4 PWM 調(diào)光原理圖
1.3 時鐘系統(tǒng)
時鐘系統(tǒng)采用高性能的DS12C887 時鐘芯片,該芯片功能豐富,使用簡單,是一款高精度實時時鐘芯片;其可以自動產(chǎn)生世紀、年、月、日、時、分、秒等時間信息,具有閏年補償及鬧鐘(定時)功能,并且內(nèi)部自帶有鋰電池,外部掉電時,仍可維持時鐘準確,其內(nèi)部時間信息能夠保持10 年之久;外部系統(tǒng)斷電后,用戶無需重新設(shè)定時間。
DS12C887 時鐘芯片有兩種總線工作模式,即Motorola 和Intel 模式。本設(shè)計選用Intel模式,即將芯片第一引腳MOT 接GND.同時,時鐘系統(tǒng)設(shè)置為24 小時模式,寄存器存儲模式選為二進制格式。P0.0~P0.7 連接其地址數(shù)據(jù)復(fù)用端口AD0~AD7.P2.0~P2.3 分別連接芯片片選端CS、地址選通輸入端AS、讀/寫輸入端R/W 與數(shù)據(jù)選擇端DS.
P3.2 連接中斷請求輸出端IRQ,用于處理鬧鐘中斷。該時鐘接口電路如圖5 所示。
?
圖5 時鐘系統(tǒng)電路圖
1.4 液晶顯示系統(tǒng)
顯示系統(tǒng)采用1602 字符型液晶。該液晶可顯示兩行,每行顯示16 個字符;且體積小、能耗低、操作簡單;適合于本設(shè)計所需數(shù)字、英文字母以及特殊符號的顯示要求。通過單片機控制1602 液晶實現(xiàn)首行年、月、日、星期顯示,第二行時、分、秒以及環(huán)境溫度顯示。
本系統(tǒng) 1602 液晶采用并行操作方式,P0.0~P0.7 通過借助10K 的上拉電阻連接其數(shù)據(jù)端口DB0~DB7,P0 口同時也連接著DS12C887 的數(shù)據(jù)地址端口,由于各自片選信號不同,選中時操作對應(yīng)芯片將不會造成操作沖突。P2.5~P2.6 分別連接1602液晶的使能端E、讀/寫選擇端RW、數(shù)據(jù)/命令選擇端RS.第3 引腳為液晶顯示對比度調(diào)節(jié)端,通過10K 滑動變阻器接地,用于調(diào)節(jié)液晶的顯示亮度。第15 管腳背光源正極BLA通過10 歐電阻接地,第16 管腳背光源負極BLK 接地。該液晶接口電路如圖6 所示。
?
圖6 液晶系統(tǒng)電路圖
1.5 溫度檢測系統(tǒng)
溫度檢測系統(tǒng)選用DALLAS 公司"一線總線"接口的數(shù)字溫度傳感器DS18B20,該傳感器具有微型化、低功耗、高性能等優(yōu)點,可直接將溫度轉(zhuǎn)化成串行數(shù)字信號處理,測溫范圍為-55~125℃,最高分辨率可達0.0625℃。DS18B20 共有三個引腳電源正VCC、電源負GND 和信號輸入輸出口DQ.R3 為4.7K 的上拉電阻,用于保證單片機與DS18B20 通訊時高低電平準確的被單片機機和DS18B20 識別。單片機P3.0 口通過R3 連接DQ 端口實現(xiàn)溫度數(shù)據(jù)的采集處理,并通過液晶屏實時顯示。溫度檢測電路如圖7 所示。
?
圖7 溫度檢測電路圖
1.6 蜂鳴系統(tǒng)
蜂鳴系統(tǒng)用于產(chǎn)生鬧鐘報警聲以及按鍵提示音。由單片機P2.4 口控制PNP 三極管9012的通斷實現(xiàn)對蜂鳴器聲音控制;通過延遲函數(shù)實現(xiàn)蜂鳴報警聲的長短音控制,長音'滴'用于鬧鐘鈴聲,短音'滴'用于按鍵提示音。蜂鳴系統(tǒng)電路如圖8 所示。
?
圖8 蜂鳴系統(tǒng)電路圖
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ù)的存儲確認鍵。S3 與S4 用于調(diào)整被選參數(shù)值的大小。S5 用于鬧鐘查看與存儲確認鍵。S6 用于LED 燈光10 級亮度的調(diào)節(jié)鍵。按鍵系統(tǒng)電路如圖9 所示。
?
圖9 按鍵系統(tǒng)電路圖
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 燈正常使用。但單片機供電系統(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ù),即可擴展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è)置鬧鐘標志位Flag_ri,一旦鬧鐘時間到達,時鐘芯片IRQ引腳觸發(fā)外部中斷0,進入中斷程序則置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ù)下方以光標閃爍狀態(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)達到亮度最大時,再次按下則關(guān)閉LED燈光。每次有按鍵按下,蜂鳴器都以短'滴'聲提示。按鍵檢測與處理流程圖如圖11所示。
?
圖11 按鍵檢測與處理流程圖
2.3 鬧鐘中斷程序
系統(tǒng)到達設(shè)置的鬧鐘時間,DS12C887 時鐘芯片IRQ 引腳輸出由高電平變?yōu)榈碗娖?,作為單片機P3.2 口INT0 中斷的申請輸入,并可通過讀取DS12C887 芯片的C 寄存器來清除IRQ 引腳輸出。因此,將外部中斷INT0 設(shè)置為負跳變沿觸發(fā)中斷,并設(shè)置鬧鐘標志位Flag_ri,鬧鐘時刻到達時設(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)單片機P1.1(該控制口名稱定義為LED_PWM)輸出的占空比來產(chǎn)生PWM 脈沖信號,以控制PT4115 恒流驅(qū)動芯片實現(xiàn)LED 燈的10 級亮度調(diào)節(jié)。
程序設(shè)置對T0 中斷次數(shù)(即定義為T0_num)進行計數(shù),以便判斷一個周期到否;同時判斷比較高電平脈沖個數(shù)(即定義為scale 值,由調(diào)光鍵S6 按下次數(shù)設(shè)置)用于實現(xiàn)不同亮度等級的調(diào)節(jié)。在定時器T0 中斷服務(wù)程序中,首先T0 重新裝入定時為400μ S 的初值;定時器中斷次數(shù)T0_num 加1,判斷一個方波周期到否,若到達,令T0_num 歸零,并將P1.1口輸出電平置高(即LED_PWM=1);如果一個方波周期還沒到,則與亮度等級scale 值作比較,判斷高電平脈沖個數(shù)scale 到否,若到達,令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ù)準確,鬧鐘功能穩(wěn)定。實物照片如圖14 所示。
?
圖 14 實物照片