摘 要: 利用Philips公司LPC系列單片機(jī)的一些特殊功能,在不外加元件的情況下,定制了一片高性能的LED顯示驅(qū)動器" title="顯示驅(qū)動器">顯示驅(qū)動器芯片。分析了通用4位7段LED顯示驅(qū)動器芯片的定制方法與6位“米”字段LED顯示驅(qū)動器芯片的定制方法,并介紹了LED顯示驅(qū)動軟件編程" title="軟件編程">軟件編程方法。
關(guān)鍵詞: LED LED顯示驅(qū)動器 I2C總線 P87LPC762 P89LPC932
隨著計算機(jī)技術(shù)和電子技術(shù)的飛速發(fā)展和廣泛應(yīng)用,電器設(shè)備的輸出顯示技術(shù)也變得復(fù)雜多樣,諸如CRT顯示、LCD顯示、多位LED顯示及發(fā)光二極管顯示等應(yīng)運而生。在這些顯示當(dāng)中,LED及發(fā)光二極管顯示電路較為簡單,成本也較低,在功能單一的儀器儀表與機(jī)電設(shè)備中應(yīng)用較廣。但當(dāng)設(shè)備顯示的點或位較多時,就需要采用一定的驅(qū)動電路與相應(yīng)的驅(qū)動方式。
在LED的驅(qū)動和顯示單元的設(shè)計中,采用的方式有許多種:利用計算機(jī)芯片的端口作為LED的驅(qū)動口,并通過軟件編程加外部驅(qū)動實現(xiàn),缺點是占用計算機(jī)芯片的時間和相關(guān)資源;利用專用接口芯片如Intel8155、8255等作為計算機(jī)芯片的端口擴(kuò)展,并通過軟件編程加外部驅(qū)動實現(xiàn),缺點是電路較復(fù)雜,功耗較大,也要占用計算機(jī)芯片的時間和相關(guān)資源;利用顯示用專用芯片如Intel8279、MAX7219、PS7219等,可實現(xiàn)較復(fù)雜的功能,但其占用計算機(jī)芯片端口還是較多,并且芯片價格較高。大多數(shù)顯示驅(qū)動器都沒有嚴(yán)格的總線時序,在強(qiáng)干擾環(huán)境下容易造成時序混亂,使顯示不正常。本文討論的LED顯示方案是利用Philips公司的LPC系列單片機(jī)芯片的電路特性,從另一種形式來定制專用的LED顯示驅(qū)動控制器芯片。主要利用基于I2C總線的通訊接口,使連接可靠;且基于軟件編程控制顯示,使顯示方式及種類多樣。由于LPC系列芯片的端口驅(qū)動能力較強(qiáng),一般的LED可直接連接,在不外加元件的情況下,可實現(xiàn)多位LED或大量發(fā)光二極管的顯示,與其它芯片連接時,占用的I/O" title="I/O">I/O口較少。
1 4位7段LED顯示器
通常的4位LED顯示器如圖1所示,其內(nèi)部由多只發(fā)光二極管構(gòu)成,按連接方式不同可分為共陽極LED與共陰極LED。其電路特性基本一致:發(fā)光二極管導(dǎo)通壓降為1.2V~1.8V、正向工作電流為2mA~15mA。在顯示驅(qū)動方式中,采用動態(tài)掃描。當(dāng)掃描到n1~n4公共端時,LED驅(qū)動器分別對應(yīng)輸出a~dp的顯示段,LED就能正常顯示。在自定制LED顯示驅(qū)動器芯片中,LPC系列中的P87LPC762單片機(jī)芯片具有較好的端口設(shè)置與較強(qiáng)的內(nèi)部功能,因此可以通過編程設(shè)置其引腳功能作為LED顯示器的驅(qū)動芯片。
2 定制4位7段LED顯示驅(qū)動器芯片
要實現(xiàn)4位7段LED的顯示,只要使流過發(fā)光二極管每段的電流達(dá)到要求就可以了。在這里選用Philips公司LPC系列的P87LPC762單片機(jī)實現(xiàn)顯示驅(qū)動電路。P87LPC762是一款增強(qiáng)型51系列的單片機(jī),除具有一般單片機(jī)的功能外,還具有驅(qū)動LED的性能:
·I/O口具有上拉" title="上拉">上拉輸出模式或開漏輸出模式設(shè)置,可作為共陰極或共陽極LED的段輸出與位輸出。
·具有較大的端口拉電流或灌電流,內(nèi)部有短路保護(hù)功能,可實現(xiàn)LED的電流驅(qū)動。
·當(dāng)設(shè)計4位LED驅(qū)動器時,芯片其余引腳可作I2C總線地址設(shè)置、LED的極性選擇。
·內(nèi)部有2K的OPT,可作為程序存儲器,用以實現(xiàn)接口與顯示程序化。
·自帶I2C硬件接口,便于接口編程與多芯片連接。
·內(nèi)部看門狗與內(nèi)部復(fù)位,可提高驅(qū)動顯示的可靠性。
·內(nèi)部設(shè)有RC振蕩器,減少了外部元件。
P87LPC762芯片的引腳功能如圖2所示。它有三個端口:Port0、Port1、Port2。當(dāng)選擇內(nèi)部振蕩和內(nèi)部復(fù)位時,最大的I/O端口數(shù)目可達(dá)到18個。大多數(shù)端口均可以通過軟件配置成準(zhǔn)雙向、上拉、輸入、開漏輸出四種類型之一。對于上拉輸出模式,P87LPC762在標(biāo)準(zhǔn)的準(zhǔn)雙向口基礎(chǔ)上增加了第三只三極管以提供強(qiáng)上拉功能,在高電平時可輸出很大的拉電流;對于開漏輸出模式,端口對外可提供很大的灌電流;對于輸入模式,端口引腳電平由外部電壓決定。
根據(jù)4位動態(tài)LED的顯示特性,在此對P87LPC762的端口作定義,定義引腳如表1所示。P0.0~P0.7作為4位LED的段輸出,根據(jù)LED極性不同,端口可設(shè)為上拉輸出或開漏輸出;P1.0、P1.1、P1.6、P1.7作為4位LED的位輸出,根據(jù)LED極性不同,端口可設(shè)為開漏輸出或上拉輸出;P1.5作為LED的極性選擇,設(shè)置為輸入模式;P2.1、P2.0、P1.4作為I2C總線外部地址,便于多芯片連接時對I2C總線地址設(shè)定,設(shè)置為輸入模式;P1.2、P1.3保持I2C總線接口功能不變。定義后的芯片引腳如圖3所示。
要實現(xiàn)以上的芯片設(shè)置,P87LPC762的部分內(nèi)部特殊功能寄存器及引腳設(shè)置如表2所示。PxMx為端口模式設(shè)置,配合LED極性進(jìn)行選擇。UCFG1為芯片系統(tǒng)配置字,在芯片編程時需寫入,在程序運行后便不可以設(shè)置了。當(dāng)配置字為FBH時,其意義為:啟動看門狗、內(nèi)部復(fù)位、復(fù)位后口線為高電平、欠壓電壓為2.5V、六個Clock時鐘,內(nèi)部RC振蕩器。
3 定制6位“米”字段LED顯示驅(qū)動器芯片
通常,1位“米”字段LED顯示器外形圖如圖4所示,其內(nèi)部由多只發(fā)光二極管構(gòu)成。如要組成6位“米”字段LED顯示器,需將相同的段、位分別連接起來,每位公共端引出以便進(jìn)行動態(tài)掃描。根據(jù)發(fā)光二極管連接極性不同,可分為共陽極與共陰極兩種方式。6位“米”字段LED顯示器由于輸出段、位較多,可選用LPC系列的P89LPC932芯片實現(xiàn)顯示驅(qū)動電路,其引腳為28腳封裝,最大的I/O端口數(shù)目可達(dá)到26個,功能引腳如圖5所示。P89LPC932具有與P87LPC762相同的端口電氣特性,并且具有較多的I/O端口,因此可以將它作為6位“米”字段LED顯示器的驅(qū)動器芯片。新定制的驅(qū)動器芯片引腳如圖6所示:a~n為驅(qū)動段輸出,n1~n6為驅(qū)動位輸出;A/K作為共陽極與共陰極的選擇端;A0~A2作為I2C總線外部地址選擇,最多可連接8只外部芯片;SDA、SCL保持I2C總線接口功能不變。
?
4 定制的LED顯示驅(qū)動器芯片的應(yīng)用
以定制的4位7段LED顯示驅(qū)動器芯片為例,設(shè)計的LED顯示驅(qū)動器的原理圖如圖7所示。它采用89C52" title="89C52">89C52單片機(jī)的通用I/O口P1.0、P1.1作為模擬I2C總線;LED顯示器為4位共陰極LED,A/K引腳接電源;顯示驅(qū)動芯片采用P87LPC762作定制,命名為LED-762。第一塊芯片的I2C總線外部地址為000,用A0、A1、A2引腳接地來實現(xiàn),其余芯片地址依次設(shè)置,最多可連接8只外部芯片(圖中未畫出)。從電路圖來看,LED-762可以不加任何外部元件就可以作為LED的驅(qū)動器,由于采用I2C總線連接,占用系統(tǒng)資源最少,電路較簡單。如在I2C總線上連接8只LED-762, LED擴(kuò)展位數(shù)可達(dá)到32位。對于“米”字段LED顯示驅(qū)動器芯片的應(yīng)用,可采用同樣的連接方式。在同樣的I2C總線上,最多可擴(kuò)展的“米”字段LED可達(dá)到48位,足可以滿足一般使用要求。
為了提高I2C總線驅(qū)動能力,在實現(xiàn)多片連接時,SCL、SDA需接總線匹配上拉電阻。
5 定制的LED顯示驅(qū)動器芯片的軟件編程
由于LPC系列芯片內(nèi)部帶有支持I2C總線硬件接口,用戶可以直接把它作為I2C總線的主控器或I2C總線的被控器。被控器通過I2C硬件中斷處理可實現(xiàn)從總線上接收或發(fā)送數(shù)據(jù);主控器操作I2C總線可實現(xiàn)起始時序、數(shù)據(jù)時序、應(yīng)答時序、停止時序來檢測I2C總線被控器,并實現(xiàn)相應(yīng)的數(shù)據(jù)傳送。I2C總線上的被控器是以I2C總線地址來區(qū)別的。I2C總線地址統(tǒng)一由I2C總線委員會實現(xiàn)分配,芯片地址共7位(它占據(jù)了D7~D1位),高4位(D7~D4)決定芯片種類,用戶也可以自定義芯片種類,低3位(D3~D1)通過芯片A0、A1、A2引腳設(shè)置。
當(dāng)使用帶有I2C總線接口的LPC系列芯片定制LED顯示驅(qū)動器芯片時,定制的LED顯示驅(qū)動器芯片設(shè)置為被控器,而要發(fā)送顯示數(shù)據(jù)的CPU設(shè)置為I2C總線主控器。定制的LED顯示驅(qū)動芯片通過I2C中斷接收數(shù)據(jù)的流程圖如圖8所示。當(dāng)從I2C總線上接收第一個數(shù)據(jù)時,判斷是否與本芯片地址相同,如相同并且為寫顯示數(shù)據(jù),則發(fā)送應(yīng)答時序接收4位顯示數(shù)據(jù),然后I2C接口恢復(fù)到空閑狀態(tài)。要實現(xiàn)LED動態(tài)顯示,可對LED顯示驅(qū)動器編制顯示程序,根據(jù)LED極性輸入,分別送出要顯示的段和位,LED就能正常顯示。
根據(jù)I2C總線協(xié)議要求,對主控器發(fā)送來的數(shù)據(jù)有一定的響應(yīng)時間要求。最短時間可由RC振蕩器的倍頻頻率和中斷響應(yīng)時間來決定,最高速率可達(dá)到400kbs/s。最低速率可由LPC系列內(nèi)部專用I2C定時器I來控制,為了適應(yīng)非標(biāo)準(zhǔn)的低速率的I2C總線操作,可關(guān)閉定時器I。
6 芯片測試及主要性能指標(biāo)
按照定制要求,將完整的LED顯示驅(qū)動程序與芯片設(shè)置參數(shù)通過編程器固化后,要制作芯片測試連接圖,如圖7所示。這里采用89C52的P1.0與P1.1作為模擬I2C總線控制線,編寫模擬I2C驅(qū)動程序。而且,89C52主機(jī)重新復(fù)位、I2C總線通訊斷線等情況下均不能影響顯示驅(qū)動器的下一次正常數(shù)據(jù)接收。如果關(guān)閉定制的LED驅(qū)動器中的定時器I,模擬I2C程序暫停、單步調(diào)試定制的LED驅(qū)動器也能正常驅(qū)動顯示。由于Philips公司的LPC系列芯片端口輸出電流能力較強(qiáng),在驅(qū)動0.5英寸共陰極與共陽極LED時,LED亮度均達(dá)到要求。在長期全亮顯示時,定制的LED驅(qū)動芯片溫升正常,能夠長期連續(xù)工作。在實際使用時,控制端口A/及A0、A1、A2由于編程時設(shè)置成輸入模式,故其懸空時輸入電平為不確定狀態(tài),并隨機(jī)變化,有可能造成不正常顯示,應(yīng)根據(jù)地址設(shè)定要求,強(qiáng)制接VCC或GND。
參考文獻(xiàn)
1 張毅剛,彭喜源,譚曉昀等. MCS-51單片機(jī)應(yīng)用設(shè)計.哈爾濱:哈爾濱工業(yè)大學(xué)出版社, 1997
2 何立民. I2C總線應(yīng)用系統(tǒng)設(shè)計.北京:北京航空航天大學(xué)出版社, 1995
3 周航慈.51LPC 系列OTP 單片機(jī)原理及應(yīng)用設(shè)計. 北京:北京航空航天大學(xué)出版社,2000