新聞中心

        EEPW首頁 > 光電顯示 > 設計應用 > 基于單片機的RGB LED背光源的設計方案

        基于單片機的RGB LED背光源的設計方案

        作者: 時間:2012-04-11 來源:網絡 收藏

        摘 要:為提出了一種解決。根據三原色原理,利用作為控制元件、結合NCP 5623三原色控制芯片,了一種 。對于NCP 5623的控制所用的I2 C總線的實現上,采取利用任意2個通用I/O管腳和NCP兩5623的I2 C引腳連接,作為I2 C總線,通信協議實現上采用軟件模擬的方式,且作為控制單元,只需實現最小系統的功能。這種方式簡化了,節約了I2 C總線主控制器器件,降低了成本。在軟件設計上,在此給出了軟件模擬I2 C協議方式下的NCP 5623每一個功能的實現程序模板,給出了NCP 5623應用的一種通用方法,組合使用可實現三原色及亮度可調的基本功能。對教學和實踐都有深刻意義。

        本文引用地址:http://www.104case.com/article/168185.htm

        0 引 言

        液晶顯示器(LCD)是光調制器件,自身并不發光,所以為了可以清楚地看到透射式液晶顯示器的顯示內容,需要給液晶屏匹配一個背。目前的背光模組一般使用冷陰極管(CCFL)為光源,包含了紅、綠、藍等各色光的頻率。CCFL因輝度高、成本低廉、技術成熟等優點被廣泛的運用在平板顯示器上。隨著發光二極管()亮度的改善,背光模組顯示出CCFL無法比擬的優點,如色彩還原性好、壽命長、不含汞、有利于環境保護,這些使其成為LCD背光模組中的研究熱點。LED背光模組的設計主要包括光學結構設計,驅動電路設計以及程序設計,顯示性能主要表現在亮度、色度、均勻性等方面。本文將從驅動電路和軟件設計的角度進行闡述,講述了設計所采用的元器件、硬件原理及其軟件編程,詳細地探討了 LED背光源的設計

        1 硬件設計

        本設計采用單片機作為LED的控制核心器件,選用NCP 5623實現LED背光源的靜態顯示。單片機主要實現的功能是通過I2C協議控制NCP 5623芯片,NCP 5623根據單片機發送的命令調節3種顏色的LED的亮度從而達到背光的效果。NCP 5623是安森美半導體日前推出的高能效3路輸出LED驅動器,帶有I2C接口,并且內置漸進調光功能,3路LED可獨立控制,總LED電流9可達0mA,并且是一種無鉛器件。

        該器件特別適用于驅動手機和MP3播放器等便攜產品中的3色(紅、綠、藍)LED裝飾光和增強型LCD背光。硬件結構圖如圖1所示。

        圖1 三原色LED驅動硬件結構圖

        圖1 三原色LED驅動硬件結構圖

        2 軟件設計

        NCP 5623是接受單片機的命令而產生動作,單片機給NCP 5623芯片發送指令是通過I2C總線,兩者之間通過I2C協議進行通信。I2C總線的實現可以有多種方法,而對于本文的情況,速率不是問題的重點,所以采取一般的單片機用某兩個普通I/O 口模擬I2C 總線。對于單片機模擬I2C總線已經非常成熟,只要根據以往的程序根據自己的需要略加修改即可。對于背光光源來說,主要調整三原色之間的亮度比例和根據自己的需要進行總體亮度調節,這些都可以通過NCP 5623所提供的命令實現,所以只要掌握了這些指令傳輸的程序實現,可以自己根據需要組合實現自己想要的功能,下面就給出NCP 5623各個命令的子程序實現。

        NCP 5623能實現的功能如表1。

        表1 NCP 5623編程序列圖

        表1 NCP 5623編程序列圖

        該表的$70代表NCP 5623的I2C器件寫地址。

        對于NCP 5623來講沒有讀操作。該器件的命令為1個字節,它可以被認為是I2C傳輸的內容部分。該字節最高3位用來表征命令,后面5位用來表征命令的參數,比如001表示對3個LED亮度同時進行控制,而后面5位則表示亮度。下面是每個命令的子程序實現,I2C_Start()是啟動I2C總線讀寫函數,I2C_Stop()是停止I2C傳輸函數,writeByte()是傳輸數據函數。每個命令的實現開頭都應該有I2C_Start()啟動傳輸,最后應該有I2C_Stop()停止I2C總線活動。

        燈滅命令實現:

        bit tempbit;

        tempbit=0;

        I2 C_Start();

        writeByte(0x70);

        tempbit=checkAck();

        writeByte(0x00);

        tempbit=checkAck();

        I2 C_Stop();

        為了節約篇幅,下面的程序省略I2C_Start();I2C_Stop()和每個writeByte()函數后面的tempbit =checkAck()。

        同時控制3個燈的亮度命令模板:

        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


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 永济市| 梓潼县| 中阳县| 玉林市| 武冈市| 岫岩| 寻乌县| 元谋县| 永吉县| 霞浦县| 荆门市| 日照市| 马鞍山市| 龙门县| 沂水县| 彭泽县| 禹城市| 汝阳县| 新余市| 南投市| 六枝特区| 定西市| 临泉县| 图木舒克市| 平昌县| 博兴县| 彩票| 波密县| 虎林市| 双柏县| 泊头市| 娄底市| 共和县| 张北县| 玉林市| 金沙县| 贵南县| 贵德县| 阳高县| 武义县| 淳安县|