《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計 > 業(yè)界動態(tài) > MAX7219在PLC中的應(yīng)用

MAX7219在PLC中的應(yīng)用

2009-03-11
作者:劉 凱 李少慧 張 岡

  摘 要: 介紹了靜態(tài)顯示芯片MAX7219的工作原理,提出了一個適于PLC的結(jié)構(gòu)簡單且十分實用的靜態(tài)顯示系統(tǒng),,并以SIEMENS公司的S7-200PLC為例,,討論了硬件連接和軟件編程
  關(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)量輸出點不多(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七段驅(qū)動器線和小數(shù)點線,,供給顯示器源電流;DIG0~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ù)包,,其格式如下:

  
  其中D15~D12位不用,D11~D8為內(nèi)部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ù)碼管對應(yīng)的a~f及dp端,,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)顯示亮度寄存器 其中D7~D4位可任意,而D3~D0可選擇0000~1111,。D3~D0的值越大,,LED顯示器越亮。
  (3)掃描范圍寄存器 其掃描范圍寄存器設(shè)置所顯示數(shù)據(jù)的多少,可從1至8,。它們一般以掃描速率1300Hz,、8位數(shù)據(jù)、多路復(fù)用方式顯示,。
  (4)關(guān)閉寄存器 其中D7~D1位可任意,。D0=0,關(guān)閉所有顯示器,;D0=1,,允許顯示。
  (5)顯示測試寄存器 其中D7~D1位可任意,;D0=0,,LED處于正常工作狀態(tài);D0=1,,允許顯示,。LED處于顯示測試狀態(tài)。
  在送完控制字后,,可根據(jù)實際需要調(diào)用顯示子程序,,改變1~8個數(shù)據(jù)寄存器的內(nèi)容,完成顯示功能,。
  MAX7219只需一組+5V電源和PLC的三個輸出口,,且無附加電路,可驅(qū)動1~8個LED顯示器,,顯示亮度可調(diào),,工作可靠。
參考文獻
1 MAXIM.新產(chǎn)品數(shù)據(jù)手冊 V2,,1998
2 SIEMENS.S7-200PLC用戶指南,,1998.6

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點,。轉(zhuǎn)載的所有的文章、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容,、版權(quán)和其它問題,,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,,避免給雙方造成不必要的經(jīng)濟損失,。聯(lián)系電話:010-82306118;郵箱:[email protected],。