一種基于單片機(jī)的RGB LED背光源的設(shè)計(jì)
2 軟件設(shè)計(jì)
NCP 5623是接受單片機(jī)的命令而產(chǎn)生動(dòng)作,單片機(jī)給NCP 5623芯片發(fā)送指令是通過(guò)I2C總線,兩者之間通過(guò)I2C協(xié)議進(jìn)行通信。I2C總線的實(shí)現(xiàn)可以有多種方法,而對(duì)于:本文的情況,速率不是問題的重點(diǎn),所以采取一般的單片機(jī)用某兩個(gè)普通I/O口模擬I2C總線。對(duì)于單片機(jī)模擬I2C總線已經(jīng)非常成熟,只要根據(jù)以往的程序根據(jù)自己的需要略加修改即可。對(duì)于背光光源來(lái)說(shuō),主要調(diào)整三原色之間的亮度比例和根據(jù)自己的需要進(jìn)行總體亮度調(diào)節(jié),這些都可以通過(guò)NCP 5623所提供的命令實(shí)現(xiàn),所以只要掌握了這些指令傳輸?shù)某绦驅(qū)崿F(xiàn),可以自己根據(jù)需要組合實(shí)現(xiàn)自己想要的功能,下面就給出NCP 5623各個(gè)命令的子程序?qū)崿F(xiàn)。
NCP 5623能實(shí)現(xiàn)的功能如表1。本文引用地址:http://cafeforensic.com/article/171347.htm
該表的$70代表NCP 5623的I2C器件寫地址。對(duì)于NCP 5623來(lái)講沒有讀操作。該器件的命令為1個(gè)字節(jié),它可以被認(rèn)為是I2C傳輸?shù)膬?nèi)容部分。該字節(jié)最高3位用來(lái)表征命令,后面5位用來(lái)表征命令的參數(shù),比如001表示對(duì)3個(gè)LED亮度同時(shí)進(jìn)行控制,而后面5位則表示亮度。下面是每個(gè)命令的子程序?qū)崿F(xiàn),I2C_Start()是啟動(dòng)I2C總線讀寫函數(shù),I2C_Stop()是停止I2C傳輸函數(shù),writeByte()是傳輸數(shù)據(jù)函數(shù),每個(gè)命令的實(shí)現(xiàn)開頭都應(yīng)該有I2C_Start()啟動(dòng)傳輸,最后應(yīng)該有I2C_Stop()停止I2C總線活動(dòng)。
燈滅命令實(shí)現(xiàn):
為了節(jié)約篇幅,下面的程序省略I2C_Start();I2C_Stop()和每個(gè)writeByte()函數(shù)后面的tempbit=checkAck()。
評(píng)論