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