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