PLC不僅具有傳統(tǒng)繼電器控制系統(tǒng)的控制功能,而且能擴(kuò)展輸入輸出模塊,特別是可以擴(kuò)展一些智能控制模塊,構(gòu)成不同的控制系統(tǒng),將模擬量輸入輸出控制和現(xiàn)代控制方法融為一體,實(shí)現(xiàn)智能控制、閉環(huán)控制、多控制功能一體的綜合控制。現(xiàn)代PLC以集成度高、功能強(qiáng)、抗干擾能力強(qiáng)、組態(tài)靈活、工作穩(wěn)定受到普遍歡迎,在傳統(tǒng)工業(yè)的現(xiàn)代化改造中發(fā)揮越來越重要的作用。但PLC設(shè)計(jì)的控制系統(tǒng)顯示界面比較單調(diào),一般通過觀察控制柜上設(shè)置的指示燈或PLC本身的LED燈來了解控制儀的狀態(tài),對(duì)于像液位采集與控制之類的儀器儀表,這種顯示界面遠(yuǎn)遠(yuǎn)不夠。為了彌補(bǔ)PLC顯示界面的不足,可以采用LED光柱顯示器或PC機(jī)顯示。本文提出了一種基于MAX7219的LED光柱顯示器與PLC的接口技術(shù)。
1 LED光柱顯示器簡(jiǎn)介
LED光柱顯示器是由若干LED管芯按規(guī)定長(zhǎng)度等距排列組成,因具有顯示醒目、直觀,亮度均勻,可靠性高以及成本低、抗振、耐沖擊、體積小、重量輕且具有連續(xù)顯示工業(yè)參數(shù)變化趨勢(shì)等特點(diǎn)已用于各種顯示調(diào)節(jié)儀表,作為過程量或控制量以及閥位的模擬指示。LED光柱顯示器具有紅、綠、橙、黃等不同顏色,有共陰和共陽兩種類型。按所含發(fā)光二極管數(shù)有101線(或100線)、64線、51線等規(guī)格,其中一個(gè)LED(對(duì)101線、51線等產(chǎn)品)一般用于電源指示,也可以作其他用途或不用,而另外的LED一般組成×8或×10結(jié)構(gòu),采用行列掃描方式以節(jié)省資源。如100線有10×10結(jié)構(gòu)和8×13結(jié)構(gòu),64線有8×8結(jié)構(gòu)。本文選用64線的共陰接法的LED光柱顯示器。
2 MAX7219管腳和功能說明
MAX7219是MAXIM公司生產(chǎn)的串行輸入/輸出共陰極數(shù)碼管顯示驅(qū)動(dòng)芯片,一片MAX7219可驅(qū)動(dòng)8個(gè)7段(包括小數(shù)點(diǎn)共8段)數(shù)字LED或64線LED光柱顯示器。該芯片具有10 MHz傳輸率的三線串行接口可與任何微處理器相連,只需一個(gè)外接電阻即可設(shè)置所有LED的段電流。它的操作很簡(jiǎn)單,PLC只需通過三個(gè)輸出端口就可以將相關(guān)的指令寫入MAX7219的內(nèi)部指令和數(shù)據(jù)寄存器,同時(shí)它還允許用戶選擇多種譯碼方式和譯碼位。此外它還支持多片MAX7219串聯(lián)方式,這樣PLC就可以通過3根線(即串行數(shù)據(jù)線、串行時(shí)鐘線和芯片選通線)控制更多的LED顯示。
MAX7219引腳排列參見圖1。其中,SEG A~SEG G和SEG DP分別為L(zhǎng)ED數(shù)碼管七段驅(qū)動(dòng)器線和小數(shù)點(diǎn)驅(qū)動(dòng)器,供給顯示器電流,用于驅(qū)動(dòng)LED光柱顯示器時(shí)則為每段中的8只發(fā)光二極管提供驅(qū)動(dòng)電流;DIG0~DIG7為8位數(shù)字位或光柱顯示器的8段驅(qū)動(dòng)線輸入,它從共陰極顯示器吸收電流。ISET為電流調(diào)節(jié)端,通過一只電阻與電源相連來調(diào)節(jié)最大段電流,以改變LED顯示亮度。DIN是串行數(shù)據(jù)輸入端,DOUT為串行數(shù)據(jù)輸出端,輸入到DIN的數(shù)據(jù)在16.5個(gè)時(shí)鐘周期后送到DOUT端,以便在級(jí)聯(lián)時(shí)傳送到下一片MAX7219。CLK最高頻率可達(dá)10 MHz,在輸入時(shí)鐘的每個(gè)上升沿均有一位數(shù)據(jù)由DIN端移入到內(nèi)部寄存器中;選通端LOAD用來裝載數(shù)據(jù),在LOAD的上升沿,16位串行數(shù)據(jù)被鎖存到數(shù)據(jù)或控制寄存器中,LOAD必須在第16個(gè)時(shí)鐘上升沿的同時(shí)或之后、在下一個(gè)時(shí)鐘上升沿之前變高,否則數(shù)據(jù)將被丟失。每組數(shù)據(jù)為16位二進(jìn)制數(shù)據(jù)包,其格式如表1所示。
其中D15~D12位不用,可為任意值,通常全取1。D11~D8位為內(nèi)部5個(gè)控制寄存器和8個(gè)LED顯示數(shù)據(jù)寄存器的地址,D7~D0位為控制寄存器的命令字或8個(gè)LED數(shù)碼管待顯示的數(shù)據(jù),因?yàn)榭刂萍拇嫫髋c顯示數(shù)據(jù)寄存器獨(dú)立編址,所以可以通過程序?qū)γ總€(gè)寄存器進(jìn)行操作。一般情況下,程序先送控制命令,后向顯示寄存器送數(shù)據(jù),每16位為一組,從高位地址字節(jié)最高位開始送,直到低位數(shù)據(jù)字節(jié)最后一位。MAX7219內(nèi)部有14個(gè)可尋址的控制寄存器和數(shù)據(jù)寄存器,各寄存器的功能及地址如表2所示。
其中,地址F0H為空操作寄存器,允許數(shù)據(jù)從輸入到輸出直接通過,可用于設(shè)備串接。 地址F1H~F8H為顯示RAM區(qū),分別對(duì)應(yīng)DIG0~DIG7引腳的8段LED顯示數(shù)據(jù)。
地址F9H為譯碼控制寄存器,譯碼方式寄存器可以對(duì)每個(gè)數(shù)據(jù)位進(jìn)行設(shè)置,使其為B碼譯碼方式或不譯碼方式。寄存器中的每一位和一個(gè)數(shù)據(jù)位相對(duì)應(yīng)。為“1”時(shí),選擇B譯碼方式,為“0”選擇不譯碼方式。當(dāng)用于驅(qū)動(dòng)LED光柱顯示器時(shí),應(yīng)設(shè)置為不譯碼方式,此時(shí),數(shù)據(jù)D7~D0分別對(duì)應(yīng)每段光柱顯示器VD8~VD1發(fā)光二極管。
地址FAH為顯示亮度寄存器,通過對(duì)該寄存器的D3~D0位寫入不同的數(shù)值可實(shí)現(xiàn)對(duì)LED顯示亮度的控制(D7~D4不用,可為任意值),從×0H到×FH共16級(jí)可調(diào)。D3~D0的值越大,LED顯示越亮。在模擬控制方式時(shí),調(diào)節(jié)V+與ISET端之間的外接電阻Rset的阻值可控制LED段電流的大小,達(dá)到硬件調(diào)節(jié)亮度的目的。
地址FBH為掃描段數(shù)寄存器,其D3~D0位數(shù)值設(shè)定為00H~07H(D7~D4不用,可為任意值),表
示顯示器動(dòng)態(tài)掃描段數(shù)為1~8。
地址FCH為待機(jī)模式控制寄存器,當(dāng)其D0位為0時(shí)(D7~D1不用,可為任意值),MAX7219處于停機(jī)狀態(tài),掃描振蕩器停振,所有顯示器消隱,寄存器數(shù)據(jù)保持不變;當(dāng)D0為1時(shí),正常工作。地址FFH為顯示測(cè)試寄存器,當(dāng)其D0位為0時(shí)(D7~D1不用,可為任意值),正常工作;當(dāng)D0為1時(shí)處于測(cè)試狀態(tài),全部LED顯示器的所有字段都以最大亮度接通顯示。
3 硬件組成
現(xiàn)以三菱公司小型PLC系列繼電器輸出型為例,LED光柱顯示器與PLC的接口電路如圖1所示。64線光柱顯示器構(gòu)成8×8結(jié)構(gòu),由一片MAX7219驅(qū)動(dòng)。因PLC輸出模塊已具有隔離PLC內(nèi)部電路與外部執(zhí)行元件的作用,因此將PLC的Y0,Y1,Y2輸出點(diǎn)經(jīng)電平轉(zhuǎn)換后分別作為MAX7219的時(shí)鐘脈沖、裝載數(shù)據(jù)、串行數(shù)據(jù)的輸入端,連接到MAX7219的CLK,LOAD,DIN腳;MAX7219的SEG A~SEG F、SEGDP端分別連接到每段LED光柱顯示器對(duì)應(yīng)的VD1~VD8發(fā)光二極管的陽極,DIG0~7分別接各段光柱顯示器的共陰極,以實(shí)現(xiàn)段選。電阻Rset值用于調(diào)節(jié)LED的亮度,Rset的最小值為9.53 kΩ。
4 驅(qū)動(dòng)程序的設(shè)計(jì)
4.1 初始化
MAX7219按5個(gè)控制寄存器規(guī)定的方式對(duì)顯示的LED線數(shù)自動(dòng)掃描顯示,所以在顯示程序之前,必須初始化5個(gè)控制寄存器。其參考設(shè)置見表3所示。
4.2 軟件設(shè)計(jì)
在PLC中,可以用16位的數(shù)據(jù)寄存器來存放16位的二進(jìn)制數(shù)據(jù)包,其中高位字節(jié)存放地址字節(jié),低位字節(jié)存放低位命令或顯示的數(shù)字。例如,我們可以在PLC的數(shù)據(jù)存儲(chǔ)區(qū)中建立一個(gè)LED顯示緩沖區(qū),顯示緩沖區(qū)首地址為D0,末地址為D7,分別對(duì)應(yīng)各顯示段的段碼和位地址,用程序控制數(shù)據(jù)以16位數(shù)據(jù)包的形式串行送入。假設(shè)PLC通過輸入模塊將工業(yè)現(xiàn)場(chǎng)的狀態(tài)信息讀入,通過用戶程序的運(yùn)算與操作,欲使LED光柱顯示器有46線亮?xí)r,其顯示區(qū)的數(shù)據(jù)格式如表4所示。
MAX7219的控制寄存器和顯示寄存器均獨(dú)立編址,顯示程序?qū)嶋H上就是PLC在Y0(CLK),Y1(LOAD)時(shí)序的配合下不斷通過Y2(DIN)向MAX7219的相應(yīng)控制寄存器和數(shù)據(jù)顯示寄存器寫入16位二進(jìn)制數(shù)據(jù)包的過程。所以問題的關(guān)鍵在于編寫一個(gè)通用寫入子程序,將D0等的內(nèi)容從高位到低位在Y0(CLK)的作用下依次移入移位寄存器,最后由Y1(LOAD)的上升沿鎖存到相應(yīng)的內(nèi)部控制寄存器和數(shù)據(jù)顯示寄存器中去。寫入子程序的梯形圖程序如圖2所示,PLC與MAX7219間串行通信工作流程圖如圖3所示。
5 結(jié) 語
基于MAX7219的LED光柱顯示器與PLC的接口電路,數(shù)碼顯示器驅(qū)動(dòng)芯片MAX7219只占用可編程控制器的3個(gè)輸出點(diǎn),通過芯片級(jí)聯(lián)可成倍增加擴(kuò)展顯示LED的數(shù)量。應(yīng)用時(shí)可利用PLC強(qiáng)大的編程能力,根據(jù)實(shí)際情況靈活編程,實(shí)現(xiàn)多線LED的顯示和功能控制,利用光柱顯示器色彩變化,還可達(dá)到顯示與警示相結(jié)合的目的。