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