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