基于單片機的RGB LED背光源的設計方案
摘 要:為設計背光源提出了一種解決方案。根據三原色原理,利用單片機作為控制元件、結合NCP 5623三原色控制芯片,設計了一種RGB LED背光源。對于NCP 5623的控制所用的I2 C總線(xiàn)的實(shí)現上,采取利用單片機任意2個(gè)通用I/O管腳和NCP兩5623的I2 C引腳連接,作為I2 C總線(xiàn),通信協(xié)議實(shí)現上采用軟件模擬的方式,且單片機作為控制單元,只需實(shí)現最小系統的功能。這種方式簡(jiǎn)化了設計,節約了I2 C總線(xiàn)主控制器器件,降低了成本。在軟件設計上,在此給出了軟件模擬I2 C協(xié)議方式下的NCP 5623每一個(gè)功能的實(shí)現程序模板,給出了NCP 5623應用的一種通用方法,組合使用可實(shí)現三原色及亮度可調的基本功能。對教學(xué)和實(shí)踐都有深刻意義。
本文引用地址:http://dyxdggzs.com/article/168185.htm0 引 言
液晶顯示器(LCD)是光調制器件,自身并不發(fā)光,所以為了可以清楚地看到透射式液晶顯示器的顯示內容,需要給液晶屏匹配一個(gè)背光源。目前的背光模組一般使用冷陰極管(CCFL)為光源,包含了紅、綠、藍等各色光的頻率。CCFL因輝度高、成本低廉、技術(shù)成熟等優(yōu)點(diǎn)被廣泛的運用在平板顯示器上。隨著(zhù)發(fā)光二極管(LED)亮度的改善,LED背光模組顯示出CCFL無(wú)法比擬的優(yōu)點(diǎn),如色彩還原性好、壽命長(cháng)、不含汞、有利于環(huán)境保護,這些使其成為L(cháng)CD背光模組中的研究熱點(diǎn)。LED背光模組的設計主要包括光學(xué)結構設計,驅動(dòng)電路設計以及程序設計,顯示性能主要表現在亮度、色度、均勻性等方面。本文將從驅動(dòng)電路和軟件設計的角度進(jìn)行闡述,講述了設計所采用的元器件、硬件原理及其軟件編程,詳細地探討了RGB LED背光源的設計方案。
1 硬件設計
本設計采用單片機作為L(cháng)ED的控制核心器件,選用NCP 5623實(shí)現LED背光源的靜態(tài)顯示。單片機主要實(shí)現的功能是通過(guò)I2C協(xié)議控制NCP 5623芯片,NCP 5623根據單片機發(fā)送的命令調節3種顏色的LED的亮度從而達到背光的效果。NCP 5623是安森美半導體日前推出的高能效3路輸出LED驅動(dòng)器,帶有I2C接口,并且內置漸進(jìn)調光功能,3路LED可獨立控制,總LED電流9可達0mA,并且是一種無(wú)鉛器件。
該器件特別適用于驅動(dòng)手機和MP3播放器等便攜產(chǎn)品中的3色RGB(紅、綠、藍)LED裝飾光和增強型LCD背光。硬件結構圖如圖1所示。
圖1 三原色LED驅動(dòng)硬件結構圖
2 軟件設計
NCP 5623是接受單片機的命令而產(chǎn)生動(dòng)作,單片機給NCP 5623芯片發(fā)送指令是通過(guò)I2C總線(xiàn),兩者之間通過(guò)I2C協(xié)議進(jìn)行通信。I2C總線(xiàn)的實(shí)現可以有多種方法,而對于本文的情況,速率不是問(wèn)題的重點(diǎn),所以采取一般的單片機用某兩個(gè)普通I/O 口模擬I2C 總線(xiàn)。對于單片機模擬I2C總線(xiàn)已經(jīng)非常成熟,只要根據以往的程序根據自己的需要略加修改即可。對于背光光源來(lái)說(shuō),主要調整三原色之間的亮度比例和根據自己的需要進(jìn)行總體亮度調節,這些都可以通過(guò)NCP 5623所提供的命令實(shí)現,所以只要掌握了這些指令傳輸的程序實(shí)現,可以自己根據需要組合實(shí)現自己想要的功能,下面就給出NCP 5623各個(gè)命令的子程序實(shí)現。
NCP 5623能實(shí)現的功能如表1。
表1 NCP 5623編程序列圖
該表的$70代表NCP 5623的I2C器件寫(xiě)地址。
對于NCP 5623來(lái)講沒(méi)有讀操作。該器件的命令為1個(gè)字節,它可以被認為是I2C傳輸的內容部分。該字節最高3位用來(lái)表征命令,后面5位用來(lái)表征命令的參數,比如001表示對3個(gè)LED亮度同時(shí)進(jìn)行控制,而后面5位則表示亮度。下面是每個(gè)命令的子程序實(shí)現,I2C_Start()是啟動(dòng)I2C總線(xiàn)讀寫(xiě)函數,I2C_Stop()是停止I2C傳輸函數,writeByte()是傳輸數據函數。每個(gè)命令的實(shí)現開(kāi)頭都應該有I2C_Start()啟動(dòng)傳輸,最后應該有I2C_Stop()停止I2C總線(xiàn)活動(dòng)。
燈滅命令實(shí)現:
bit tempbit;
tempbit=0;
I2 C_Start();
writeByte(0x70);
tempbit=checkAck();
writeByte(0x00);
tempbit=checkAck();
I2 C_Stop();
為了節約篇幅,下面的程序省略I2C_Start();I2C_Stop()和每個(gè)writeByte()函數后面的tempbit =checkAck()。
同時(shí)控制3個(gè)燈的亮度命令模板:
writeByte(0x70);
writeByte(value); //value可取0x20-0x3f
控制紅燈的亮度命令模板:
writeByte(0x70);
writeByte(value); //value可取0x40-0x5f
I2 C_Stop();
控制綠燈的亮度命令模板:
writeByte(0x70);
writeByte(value); //value可取0x60-0x7f
控制黃燈的亮度命令模板:
bit tempbit;
writeByte(0x70);
writeByte(value); //value可取0x80-0x9f
評論