徐航


摘要:LED點陣顯示屏以其亮度高、壽命長、視角大、性價比高及面積可定制等優勢廣泛應用于各種顯示場合。以單片機為控制核心,文章設計了一種分辨率為16×128的條型LED顯示屏。為了驗證設計,運用Proteus軟件繪制電路硬件原理圖,并通過KeilC51軟件編寫控制程序,通過2個軟件的聯合調試來仿真整個設計。整個設計比較實用,控制程序可以針對實際硬件電路進行調整和移植,可以較好地滿足-中英文及簡單圖案的顯示要求。
關鍵詞:LED點陣顯示屏;單片機;Proteus仿真
隨著LED顯示技術的深入發展,LED點陣顯示系統在各種顯示場合的應用日益廣泛。其中,條型LED點陣顯示屏在火車車廂、地鐵、銀行、公交車、機場等信息發布場合的應用非常普遍。這些LED點陣顯示屏既是重要信息的發布窗口,也是廣告宣傳的重要媒。很多常見的LED點陣顯示屏都是單一的平移顯示或靜態顯示。本設計為基于單片機控制的LED點陣顯示屏,可以實現多種中英文顯示效果,具有可靠性好、性價比高的特點。
1.LED顯示系統
1.1LED點陣顯示原理
LED點陣顯示屏由特定形狀的發光二極管(LED)按照矩陣排列方式連接而成,常見的LED點陣模塊的分辨率為8X8,5X8,5X7,各種尺寸的LED顯示屏都是由多個點陣模塊組合而成的。以最常見的分辨率為8X8點陣模塊為例,一個8X8的點陣由64個發光二極管按照每行發光二極管的陰極相連引出l根引腳,每列發光二極管的陽極相連引出l根引腳,總共引出8根行引腳和8根列引腳,組成一個16根引腳的8X8點陣。使用時,行引腳接低電平,列引腳接高電平,行列交叉的發光二極管將導通發光。在顯示中英文字符或圖案時,需要采用逐行掃描的方式來驅動點陣。具體來說,就是在行引腳逐行給定顯示所需要的電平信號,達到逐行“選定”的目的,與此同時,在列引腳給定顯示所需要的電平信號則相應位置的發光二極管導通發光。這種行引腳逐次掃描、列引腳逐次輸出顯示內容所需的電平的逐行顯示方式一次點亮一行發光二極管,遍歷所有行后,完成一次顯示掃描。當顯示掃描的頻率逐漸增加并大于24Hz的時候,就達到了所謂的閃爍臨界頻率。人的肉眼由于視覺暫留效應無法識別大于閃爍臨界頻率的閃爍,而識別為一直發光。這樣就實現了讓人看起來整個屏幕都在顯示的效果。
以單片機為控制核心的LED顯示屏,由于引腳驅動能力的限制,需要設計相應的驅動電路來驅動LED顯示屏的顯示,一般可以選用現成的緩沖器芯片或者直接選用三極管驅動。為了充分利用單片機有限的I/0引腳,顯示屏的行引腳一般選用譯碼器和三極管放大器的組合來輸出信號,列引腳則利用移位寄存器來輸出信號。
1.216×128長條型LED顯示系統的構成
長條型LED顯示屏在火車車廂、銀行服務窗口、公交車等場合應用時,都需要與相關的設備進行通信。因此這些顯示系統一般都是由一個控制核心進行控制,通過常用的CAN總線或者RS485總線與其他單元進行數據傳送。具體的系統結構如圖1所示。
2.仿真電路設計
2.1仿真環境
由英國的LabcenterElectronics公司開發的EDA軟件Proteus是當今應用最廣泛的單片機開發仿真工具。本設計應用Proteus中的ISIS軟件進行電路原理圖的設計和仿真。
整個顯示系統采用AT89C8l單片機為控制核心,顯示屏由32塊分辨率為8X8的LED點陣模塊組合而成。最終形成一個16行128列的顯示屏,其中16根行引腳連接1片4 6線譯碼器74LSl54的輸出引腳,譯碼器的4根輸入引腳由單片機的I/0引腳控制;128根列引腳的信號由16片74HC595移位寄存器提供。將相關的外圍電路和單片機最小系統連接好后,整個電路設計部分就完成了。
2.2單片機系統及外圍電路
單片機采用AT89C51型號,選用振蕩頻率在24MHz以上的晶振來保證顯示屏的顯示穩定。控制顯示屏行引腳信號的譯碼器和控制列引腳信號移位寄存器都由單片機的Pl口控制。單片機工作所需的晶振電路、復位電路等基本連線都按標準的單片機最小系統連接。整個電路比較簡潔實用,沒有因為LED顯示屏而占用過多的I/0口資源,為LED點陣顯示系統與其他系統的通信提供了便利。
2.3LED點陣顯示屏
為了更好地顯示多個漢字,整個顯示屏的分辨率設計為16×128,以16×16分辨率顯示一個漢字,整個顯示屏一次可以顯示8個漢字。以8X8的點陣模塊為基本單元,32塊模塊緊密排列成16行、128列的點陣顯示屏。
2.4行驅動電路
行驅動電路由4-16譯碼器74LSl54和電流放大電路組成。74LS154的4個輸入引腳連接單片機的P1.0~P1.3引腳,使能端正常連接。整個顯示屏一行有128個發光二極管,如果全部點亮的話,通過譯碼器輸出引腳的電流將達到1280mA,這顯然超過了74LS154引腳的驅動能力。因此在74LSl54的每一個輸出引腳連接一個2N3392三極管來放大電流,以保證顯示屏清晰顯示。
2.5列驅動電路
列驅動電路由16片74HC595移位寄存器級聯組成,前—片寄存器的Ds引腳與后一片的Q7引腳連接,最后一片寄存器的DS引腳連接單片機P1.4引腳,所有寄存器的控制引腳SHCP并聯至單片機的P1.5引腳,控制引腳STCP并聯至單片機的P1.6引腳,使能端0E并聯至單片機的P1.7引腳。
3.軟件設計
顯示屏軟件的主要功能是接收上位機發送的顯示數據并向顯示屏提供各種控制信號,保證數據的正常顯示。依據軟件工程中的分層設計思想,本文把顯示屏的軟件分為底層的顯示驅動程序和上層的系統應用程序。顯示驅動程序的主要功能是依據顯示的需要產生所需的各種控制信號,保證顯示數據正確地傳送至顯示屏,并配合完成LED點陣顯示屏的掃描工作。系統應用程序則完成系統初始化、單幀圖像的掃描顯示和動態變化顯示效果的處理等工作。
3.1開發環境
考慮到程序的可移植性和復雜算法的實現,本文采用c語言進行控制程序設計。為配合Proteus軟件聯合調試,選用了KeilC5l作為開發環境。利用2個軟件的聯合調試功能,可以很好地進行仿真開發。
3.2顯示驅動程序設計
顯示驅動程序通過對單片機定時器T0的控制,實現顯示屏刷新頻率的穩定輸出和精確控制,然后通過查詢得到當前點亮的行號,從字碼數組中讀取下一行顯示的字碼數據,并通過串口發送至移位寄存器。為了避免“拖尾”現象的產生,在現實數據完成鎖存前,驅動程序必須先關閉顯示屏顯示,即進行“消隱”操作,當數據鎖存完成后再重新打開顯示。
3.3一幀圖像的靜態顯示
LED點陣靜態顯示一幀圖像是動態顯示圖像的基礎。所以要實現顯示屏的動態顯示必須先設計好完整顯示一幀圖像的控制程序。具體的工作流程是首先由單片機的串口接收外部設備傳送的字碼,并存入字碼數組。由單片機控制74LS154選定LED點陣顯示屏的第1行,將屏幕第1行對應的顯示內容通過移位寄存器移位鎖存操作后輸出到各列,完成第1行的顯示。如此逐行顯示,循環16次,完成一幀圖像的顯示一次掃描。控制好每一行的顯示時間,將一幀圖像的刷新頻率控制在24Hz以上,實現穩定的顯示。具體的程序流程如圖2所示。
3.4動態圖像的顯示
在穩定實現一幀圖像的基礎上,通過控制字碼數組的變化形成新的一幀圖像。不同的數組變化方式就能實現不同的動態顯示效果。具體的字碼數組變化控制也可以考慮由上位機的程序進行,以提高顯示效率,減輕單片機系統的運算負擔。這些設計需要根據顯示場合的具體情況靈活處理。
4.結語
通過仿真實驗的驗證,以單片機為控制核心的長條型LED點陣顯示系統,顯示效果好,畫面穩定,能實現中英文字符及圖案的動態顯示,電路結構簡單,程序可移植性高,整體性能穩定可靠,成本低廉,可根據實際的顯示場合進行軟硬件訂制,體現了良好的實用性。