2 程序設計
2.1 程序結構
程序主要包含面板控制器和驅動板兩個獨立程序。
面板控制器程序根據4 個按鈕的輸入狀態, 向驅動板發送開關或照度調節命令, 並將命令狀態在8 個LED 上顯示出來。驅動板程序初始化以後, 主要通過串行口接收中斷接收操作信息, 進行Modbus 數據冗餘校驗後, 根據命令指示, 發出不同的PWM 信號。驅動板程序流程框圖如圖3 所示。
圖3 驅動板的程序結構框圖。
2.2 PWM 發生
高亮度發光二極體串的電流主要通過對LM3402 的DIM 埠進行PWM 調節,實際電流佔設定電流值的比例取決於PWM 的佔空比(duty cycle)。P89LPC932 內部定時器T0/T1 的PWM 輸出與計數輸入和定時器觸發輸出佔用相同的管腳, 發生定時器溢出時自動觸發埠輸出。
此功能通過AUXR1 寄存器中的控制位ENT0 和ENT1分別使能定時器0 和1。該模式打開時, 在首次定時器溢出前埠的輸出為邏輯1。為了使該模式生效, 必須清零C/T 位以選擇PCLK 作為定時器的時鐘源。定時器初始化設置參考程序如下:
void Timer1_init(void)
{
TMOD|=0x20 ; //定時器工作於方式6
*OD|=0x10 ;
TH1=256-n ; //n 為佔空比
AUXR1|=0x20 ; // 定時器使能
TR1=1 ; // 啟動定時器
}
其中佔空比duty cycle=256-TH1, 定時器1 的溢出將使P1.2 或P0.7 埠發生翻轉, 因此輸出頻率為定時器1溢出速率的1/2。
2.3 節能模式
能耗控制在整個無影燈控制系統中具有十分重要的意義。在多數時間,HBLEDs 處於熄滅狀態, 控制系統處於待機狀態, 將功耗降低到最低。將電源控制寄存器PCONA 設置為0xFF 時, 外部功能模塊掉電; 將電源控制寄存器PCON 設置為03H 時, 可將MCU 處於完全掉電狀態, 只有在中斷觸發的時候, 才能喚醒, 隨即給外部功能模塊上電,MCU 開始工作。驅動板上的MCU 由串行口接收中斷喚醒, 面板上的MCU 通過鍵盤中斷喚醒, 鍵盤中斷參考程序如下:
void KEY_ISR( ) interrupt 7
{
key_push=1 ; // 有鍵按下標誌
PCONA=0x00 ; //外部功能模塊上電
KBCON=0x00 ; //清除鍵盤中斷標誌
}
中國每年無影燈的市場需求量在2 萬臺以上,同時因低碳經濟發展的需求,需要進行節能改造, 所以LED無影燈的市場推廣前景十分廣闊。本文所介紹的LED無影燈技術,目前已經在江蘇某知名醫療器械公司投入批量生產,取得了良好的社會效益。