摘 要: 介紹了靜態(tài)顯示芯片MAX7219的工作原理,提出了一個適于PLC的結構簡單且十分實用的靜態(tài)顯示系統(tǒng),并以SIEMENS公司的S7-200PLC為例,,討論了硬件連接和軟件編程,。
關鍵詞: MAX7219 PLC 靜態(tài)顯示系統(tǒng)
最新推出的小型高集成度的PLC如SIEMENS S7-200系列,其主模塊上就帶有多個開關量輸入/輸出點,并且具有符合工業(yè)標準的485串行通訊口,便于用戶進行設備的單機獨立控制或連接成完全分布式的計算機監(jiān)控網(wǎng)絡,與遠方控制室連接,。但在實際運用中,有些單機控制器或一些遠離控制室的設備往往需要就地顯示,,便于操作人員操作或巡視,。SIEMENS PT200顯示器就是為此而研制的。但其顯示屏小且多為液晶顯示,,不適合強光和光線極弱的場合,,而且占用串行口資源、安裝不便,、價格較貴,。通常解決的方法是充分利用PLC開關量輸出點,采用并行方式驅動LED顯示器,。并行顯示占用的資源較多,,而一般小型PLC主模塊上的開關量輸出點不多(S7-212為6個輸出點,S7-214為10個輸出點),,難以滿足多位顯示和多點控制的要求,。本文提出了一種采用MAX7219芯片與PLC輸出點配合的方法,通過簡單的硬件連接,,利用PLC強大的編程能力,,可根據(jù)實際情況對它靈活編程,實現(xiàn)LED的顯示和功能控制,。
1 MAX7219簡介
MAX7219是一種新型的串行接口的8位數(shù)字靜態(tài)顯示芯片,。它是由MAXIM公司新推出的24腳雙列直插式芯片,其引腳圖如圖1所示,。
SEGA~SEGG和SEGDP為LED七段驅動器線和小數(shù)點線,,供給顯示器源電流,;DIG0~DIG7為8位數(shù)字驅動線,,輸出位選信號,從每位LED共陰極吸入電流,。
圖2為MAX7219工作時序圖,。由圖2可知,DIN是串行數(shù)據(jù)輸入端,,在CLK的上升沿,,一位數(shù)據(jù)被加載到內部16位移位寄存器中,,CLK端最高輸入頻率可達10MHz,在輸入時鐘信號的每個上升沿,,均有1位數(shù)據(jù)由DIN移入到內部寄存器中,,LOAD用來裝載數(shù)據(jù),在LOAD的上升沿,,16位串行輸入數(shù)據(jù)被鎖存到數(shù)字或控制寄存器中,。LOAD必須在第16個時鐘上升沿的同時或之后、在下一個時鐘上升沿之前變高,,否則數(shù)據(jù)將會丟失,。
規(guī)定一組數(shù)據(jù)為16位二進制數(shù)據(jù)包,其格式如下:
其中D15~D12位不用,,D11~D8為內部5個控制寄存器和8個LED顯示數(shù)據(jù)寄存器的地址,,地址編碼如表1所示。D7~D0為5個控制寄存器命令字或8個LED數(shù)碼管待顯示的數(shù)據(jù),。因為控制寄存器與顯示數(shù)據(jù)寄存器均獨立編址,,所以可以通過程序單獨對每個寄存器進行操作。一般情況下,,程序先送控制命令,,后向顯示寄存器送數(shù)據(jù),但必須注意,,每16位為一組,,從高位地址字節(jié)最高位開始送起,直到低位數(shù)據(jù)字最后一位為止,。
2 MAX7219與PLC的硬件連接
現(xiàn)以SIEMENS公司小型PLC S7-214為例討論PLC與MAX7219的硬件連接和軟件編程,。S7-214輸出點不多(Q0.0~Q1.1,共十位)且只有一個RS-485通信端口,。S7-214與MAX7219的硬件連接如圖3所示,。S7-214的Q0.0,作串行數(shù)據(jù)輸出,連接到MAX7219的DIN腳,,Q0.1和Q0.2通過程序分別模擬MAX7219的時鐘脈沖CLK及數(shù)據(jù)加載LOAD信號,。MAX7219的SEGA~SEGGF,SEGDP端連接到各LED數(shù)碼管對應的a~f及dp端,,DIG0~7分別接8位LED數(shù)碼管的共陰極,,以實現(xiàn)位選。
實際上,,數(shù)碼管的位數(shù)可在1~8之間任意選擇,,這可由寫入的掃描界線寄存器的命令字決定。注意:18腳和19腳間9.6kΩ的電阻是必須的,,并且為了使由峰值數(shù)字驅動器電流引起的紋波減到最小,,需要在V+和GND之間盡可能靠近芯片的地方外接一個10μF的電解電容和一個0.1μF的瓷片電容,。MAX7219應放在緊靠LED顯示器的地方,且連線盡可能短,,兩個GND引腳都必須連接到地線上,。
3 軟件編程
在S7-214的V存儲區(qū)開辟兩個字節(jié)的存儲單元VW0,專門用來放16位二進制數(shù)據(jù)包,,其中高位字節(jié)VB1規(guī)定放高位地址字節(jié),,低位字節(jié)VB0規(guī)定放低位命令字或待顯示的數(shù)字。
由于MAX7219的控制寄存器和顯示寄存器均獨立編址,,顯示程序實際上就是S7-214在Q0.1(CLK),,Q0.2(LOAD)時序的配合下不斷通過Q0.0(DIN)向MAX7219的相應控制寄存器和數(shù)據(jù)顯示寄存器寫入16位二進制數(shù)據(jù)包的過程。所以問題的關鍵在于編寫一個通用的寫入子程序,,將VW0的內容從高位到低位在Q0.1(CLK)的作用下依次移入移位寄存器,,最后由Q0.2的上升沿(LOAD信號)鎖存到相應的內部控制寄存器和數(shù)據(jù)顯示寄存器中去。寫入子程序的程序流程圖如圖4所示,。
無論初始化MAX7219的控制寄存器,,還是在相應的數(shù)碼管顯示數(shù)字,均可通過調用上述通用寫入子程序完成,。注意在調用子程序之前,,必須先用MOVW指令將正確的16位二進制數(shù)據(jù)移入VW0中。
MAX7219按5個控制寄存器規(guī)定的方式對待顯示的數(shù)字自動掃描顯示,,所以在顯示程序之前,,必須初始化5個控制寄存器。各控制寄存器的功能分述如下:
(1)譯碼方式寄存器 對每個數(shù)字設置BCD碼B(0~9,、E,、H、L,、P和-)或非代碼操作,。寄存器中的每一位與一個數(shù)字對應。邏輯高電平選擇代碼B譯碼,,而低電平選擇旁路譯碼器,。
(2)顯示亮度寄存器 其中D7~D4位可任意,而D3~D0可選擇0000~1111,。D3~D0的值越大,,LED顯示器越亮。
(3)掃描范圍寄存器 其掃描范圍寄存器設置所顯示數(shù)據(jù)的多少,,可從1至8,。它們一般以掃描速率1300Hz、8位數(shù)據(jù),、多路復用方式顯示,。
(4)關閉寄存器 其中D7~D1位可任意。D0=0,,關閉所有顯示器,;D0=1,允許顯示,。
(5)顯示測試寄存器 其中D7~D1位可任意,;D0=0,LED處于正常工作狀態(tài),;D0=1,,允許顯示。LED處于顯示測試狀態(tài),。
在送完控制字后,,可根據(jù)實際需要調用顯示子程序,改變1~8個數(shù)據(jù)寄存器的內容,,完成顯示功能,。
MAX7219只需一組+5V電源和PLC的三個輸出口,且無附加電路,,可驅動1~8個LED顯示器,,顯示亮度可調,工作可靠,。
參考文獻
1 MAXIM.新產(chǎn)品數(shù)據(jù)手冊 V2,,1998
2 SIEMENS.S7-200PLC用戶指南,1998.6