LED點陣電子顯示屏制作簡單,安裝方便,被廣泛應用于各種公共場合,如汽車報站器、廣告屏以及公告牌等。本文介紹的是一種可用在值班室外等場合的公告牌的LED點陣電子顯示屏設計。公告內(nèi)容隨時可以更新,能夠?qū)崟r顯示溫度和日期時間,并具有自動亮度調(diào)節(jié)功能??紤]到所需元器件的易購性,本設計使用了8×8的點陣發(fā)光管模塊,組成16×64發(fā)光點陣,顯示待定的中文、字符以及數(shù)字。
方案論證
1 點陣顯示屏部分
方案一:串行方式顯示。這種方式可同時顯示4個16×l6點陣漢字或8個16×8點陣的漢字、字符或數(shù)字。點陣顯示屏每個單元由16個8×8點陣LED顯示模塊、行信號選擇譯碼器74HC138、驅(qū)動器74HC245、數(shù)據(jù)移位寄存器74HC595和行驅(qū)動器組成,如圖1所示。單元顯示屏可以接收控制器(主控制電路板)或上一級顯示單元模塊傳輸下來的數(shù)據(jù)信息和命令信息,并可將這些數(shù)據(jù)信息和命令信息不經(jīng)任何變化地再傳送到下一級顯示模塊單元中,因此顯示屏可擴展至更多的顯示單元,用于顯示更多的內(nèi)容。
圖1 串行方式顯示邏輯結構框圖
此方案為點陣顯示屏系統(tǒng)中比較常用的,所用器件也比較常用,容易買到。但是它存在一個致命的缺點,就是刷新速度不夠快。如果要驅(qū)動64列點陣顯示,通用51單片機會比較吃力,出現(xiàn)比較嚴重的閃爍停滯現(xiàn)象。此外,要實現(xiàn)文字的左右移動和調(diào)整移動速度等功能,都會給軟件設計帶來較多困難。
方案二:并行方式顯示。可以通過鎖存器芯片來擴展IO口,達到控制LED點陣的64個列線的目的。方案中運用16片鎖存器74HC573來組成8組雙緩沖寄存器,驅(qū)動LED點陣的8組列線,用4/16譯碼器74HC595對LED點陣的16行進行掃描。在送每一行的數(shù)據(jù)到LED點陣前,先把數(shù)據(jù)分別送到第一級的8個74HC573,然后再給第二級的8個74HC573送鎖脈沖,數(shù)據(jù)一起輸出到LED點陣列中,這樣就避免了各行數(shù)據(jù)顯示不同步問題。由于并行數(shù)據(jù)傳輸速度比串行快,所以字符閃爍的問題得到較好地解決,文字左右移動也比較容易控制。綜上所述,本設計最終選擇了這個方案。
2 顯示屏控制部分
方案一:單機工作模式。采用一個單片機控制實現(xiàn)所有功能,其中包括LED點陣顯示屏的刷新顯示、模式設定、時間讀取、溫度檢測,以及與上位機的通信等。只用一個單片機控制點陣顯示屏可以使電路大大減化,軟件設計方面也容易實現(xiàn)。但是,將所有功能集成在一起,一片AT89S52單片機處理能力是不夠的。此時,單片機的CPU內(nèi)部資源已顯不足,會導致系統(tǒng)功能欠佳,達不到較好的性能。
方案二:主從工作模式。采用主從單片機工作方式來控制整個系統(tǒng)。其中一個單片機用于控制LED點陣顯示,另外一個單片機用于擴展鍵盤、串口與上位機通信、溫度測量、時間讀取等工作。相對單機工作方式,主從工作模式的處理能力大大提高,并且分工明確,執(zhí)行速度得到很大的提高。雖然硬件電路以及軟件設計方面要求相對高了一些,更涉及到主從單片機通信問題。但是,為了更好地實現(xiàn)各項性能指標,本設計采用了這種方案。
硬件電路設計
本系統(tǒng)硬件電路設計的整體框圖如圖2所示。
圖2 LED點陣顯示屏系統(tǒng)框圖
1 系統(tǒng)主控器電路
系統(tǒng)主控器電路如圖3所示,即為一單片機最小系統(tǒng),外加擴展槽與一些功能電路,通過鍵盤掃描來確定工作模式以及完成相關操作。還包括了時間芯片電路和溫度檢測電路,以及與上位機RS-232接口電路。
圖3 主控器電路
本設計采用的DS1302是具有涓細電流充電能力的電路,主要特點是采用串行數(shù)據(jù)傳輸,可為掉電保護電源提供可編程的充電功能,并且可以關閉充電功能。DS18B20是一線式數(shù)字溫度傳感器;溫度測量范圍為-55℃~+125℃;測溫分辨率可達0.0625℃;其工作電源既可在遠端引入,也可采用寄生電源方式產(chǎn)生;多個DS18B20可以并聯(lián)到3根或2根線上,CPU只需一根端口線就能與諸多DS18B20通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。以上特點使其非常適用于遠距離多點溫度檢測系統(tǒng)。
2 點陣驅(qū)動與控制電路
該電路主要將單片機發(fā)送來的輸出點陣數(shù)據(jù),通過鎖存器芯片擴展的I0口,來控制LED點陣的64個列線端。本設計中用的是16片鎖存器74HC573來組成8組雙緩沖寄存器,驅(qū)動LED點陣的8組列線,用4/16譯碼器74HC595對LED點陣的16行進行掃描。在送每一行的數(shù)據(jù)到LED點陣前,先把數(shù)據(jù)分別送到第一級的8個74HC573,然后再給第二級的8個74HC573送一個鎖脈沖,將數(shù)據(jù)一起送到LED點陣的各列。
軟件設計
本設計的軟件流程如圖4所示。
圖4 LED點陣顯示屏軟件流程
電路仿真與測試
1 點陣顯示屏的仿真與程序調(diào)試
Proteus7.2是一款比較常用的單片機仿真軟件,許多仿真實例與實際電路非常相似。為了盡可能確保實際電路能達到預期的效果,減少無用功,對許多電路模塊的方案進行了仿真。對點陣顯示的處理與相應程序設計,配合使用Proteus與Keil uvision2進行仿真,旨在改善提高整機系統(tǒng)的硬件與軟件方案,提高系統(tǒng)運行效率與穩(wěn)定性。
在點陣顯示方式的方案選擇上,通過不斷修改程序與串行電路接法后發(fā)現(xiàn)串行方式很難實現(xiàn)字幕的右移功能,調(diào)整字幕移動的速度也不方便。經(jīng)過分析,決定試用并行方式顯示,結果發(fā)現(xiàn)這種方式電路不算復雜,并且給程序設計帶來很多便利,特別是便于實現(xiàn)字幕的左右移動與移動速度的設定。本系統(tǒng)仿真電路如圖5所示。
圖5 Proteus仿真電路圖
2 整機測試
把編譯器生成的代碼HEX文件下載到單片機Flash中,連接好各個模塊,將LED點陣顯示屏的功能逐一測試實現(xiàn)。
結束語
本設計所要求的顯示漢字、字母和數(shù)字均已實現(xiàn),并能控制文字的左右移動及速度。同時,溫度與日期時間可以實時顯示,并且與上位機聯(lián)機通信成功。整機系統(tǒng)的硬件制作簡便,難點是軟件設計。本系統(tǒng)采用并行方式顯示,并且采用主從單片機來控制整個系統(tǒng),這樣能夠大大減化軟件的編寫難度,容易實現(xiàn)各項功能指標。