利用51單片機(jī)來控制LED點(diǎn)陣的設(shè)計(jì)方案
引言
單片機(jī)自20世紀(jì)70年代問世以來,以極其高的性價(jià)比受到人們的重視和關(guān)注,所以應(yīng)用很廣,發(fā)展很快。單片機(jī)的優(yōu)點(diǎn)是體積小、重量輕、抗干擾能力強(qiáng),對(duì)環(huán)境要求不高,價(jià)格低廉,可靠性高,靈活性好,開發(fā)較為容易。廣大工程技術(shù)人員通過學(xué)習(xí)有關(guān)單片機(jī)的知識(shí)后,也能依靠自己的力量來開發(fā)所希望的單片機(jī)系統(tǒng),并可獲得較高的經(jīng)濟(jì)效益。正因?yàn)槿绱?,在我國,單片機(jī)已被廣泛地應(yīng)用在工業(yè)自動(dòng)化控制、自動(dòng)檢測(cè)、智能儀表、家用電器等各個(gè)方面。在現(xiàn)代工業(yè)控制和一些智能化儀器儀表中,越來越多的場(chǎng)所需要用點(diǎn)陣圖形顯示器顯示漢字。漢字顯示方式是先根據(jù)所需要的漢字提取漢字點(diǎn)陣(如16×16點(diǎn)陣),將點(diǎn)陣文件存入ROM,形成新的漢字編碼;而在使用時(shí)則需要先根據(jù)新的漢字編碼組成語句,再由MCU根據(jù)新編碼提取相應(yīng)的點(diǎn)陣進(jìn)行漢字顯示。
一、設(shè)計(jì)思想
LED發(fā)光燈可以分為單色發(fā)光燈、雙色發(fā)光燈、三色發(fā)光燈、面發(fā)光燈、閃爍發(fā)光燈、電壓型發(fā)光燈等多種類型。按照發(fā)光燈強(qiáng)度又可以分為普通亮度發(fā)光燈、高亮度發(fā)光燈、超高亮度發(fā)光燈等。這種單個(gè)的發(fā)光燈適宜用做指示燈,如電源指示、電路狀態(tài)指示燈,進(jìn)而對(duì)能夠轉(zhuǎn)變成電信號(hào)的各種物理量進(jìn)行指示。也可以用多個(gè)LED發(fā)光燈組成固定的字符或圖形進(jìn)行顯示,如大型劇場(chǎng)會(huì)堂的出入口及洗手間的顯示。
和很多應(yīng)用術(shù)語一樣,LED圖文顯示屏并沒有一個(gè)公認(rèn)的嚴(yán)格的定義,一般把顯示圖形和/或文字的LED顯示屏稱為圖文屏。這里所說的圖形,是指由單一亮度線條組成的任意圖形,以便于不同亮度(灰度)點(diǎn)陣組成的圖像相區(qū)別。圖文顯示屏的主要特征是只控制LED點(diǎn)陣中各發(fā)光器件的通斷(發(fā)光或熄滅),而不控制LED的發(fā)光強(qiáng)弱。LED圖文顯示屏的外觀可以做成條形,叫做條形圖文顯示屏(簡稱條屏),也可以按一定高度比例做成矩形的平面圖文顯示屏。其實(shí)條屏只不過是其寬度遠(yuǎn)大于高度的平面顯示屏,在顯示與控制的原理上并無區(qū)別。
不論顯示圖形還是文字,都是控制與組成這些圖形或文字的各個(gè)點(diǎn)所在位置相對(duì)應(yīng)的LED器件發(fā)光。通常事先把需要顯示的圖形文字轉(zhuǎn)換成點(diǎn)陣圖形,在按照顯示控制的要求以一定的格式形成顯示數(shù)據(jù)。對(duì)于只控制通斷的圖文顯示屏來說,每個(gè)LED發(fā)光器件占據(jù)數(shù)據(jù)中的1位(1bit),在需要該LED器件發(fā)光的數(shù)據(jù)中相應(yīng)的位填1,否則填0。當(dāng)然,根據(jù)控制電路的安排,相反的定義同樣時(shí)可行的。這樣依照所需顯示的圖形文字,按顯示屏的各行各列逐點(diǎn)填寫顯示數(shù)據(jù),就可以構(gòu)成一個(gè)顯示數(shù)據(jù)文件。顯示圖形的數(shù)據(jù)文件,其格式相對(duì)自由,只要能夠滿足顯示控制的要求即可。文字的點(diǎn)陣格式比較規(guī)范,可以采用現(xiàn)行計(jì)算機(jī)通用的字庫字模。組成一個(gè)字的點(diǎn)陣,其大小也可以有16×16、24×24、32×32、48×48等不同規(guī)格。
用點(diǎn)陣方式構(gòu)成圖形或文字,是非常靈活的,可以根據(jù)需要任意組合和變化,只要設(shè)計(jì)好合適的數(shù)據(jù)文件,就可以得到滿意的顯示效果。因而采用點(diǎn)陣式圖文顯示屏顯示經(jīng)常需要變化的信息,是非常有效的。
圖文顯示屏的顏色,有單色、雙色、和多色幾種。最常用的是單色圖文屏。單色屏多使用紅色或橘紅色或橙色LED點(diǎn)陣單元。雙色圖文屏和多色圖文屏,在LED點(diǎn)陣的每一個(gè)“點(diǎn)”上布置有兩個(gè)或多個(gè)不同顏色的LED發(fā)光器件。換句話說,對(duì)應(yīng)于每種顏色都有自己的顯示矩陣。顯示的時(shí)候,各顏色的顯示點(diǎn)陣是分開控制的。事先設(shè)計(jì)好各種顏色的顯示數(shù)據(jù),顯示時(shí)分別送到各自的顯示點(diǎn)陣,即可實(shí)現(xiàn)預(yù)期效果。每一種顏色的控制方法和單色的完全相同,因此掌握了單色圖文顯示屏的原理,雙色屏和多色屏就不難理解了。
為了吸引觀眾增強(qiáng)顯示效果,可以有多種顯示模式。最簡單的顯示模式是靜態(tài)顯示。這里所說的“靜態(tài)顯示模式”不同于靜態(tài)驅(qū)動(dòng)方式。與靜態(tài)顯示模式相對(duì)應(yīng),就有各種動(dòng)態(tài)顯示模式,它們所顯示的圖文都是能夠動(dòng)的。按照?qǐng)D文運(yùn)動(dòng)的特點(diǎn)又可以分為閃爍、平移、旋轉(zhuǎn)、縮放等多種顯示模式。產(chǎn)生不同顯示模式的方法,并不意味著一定要重新編寫顯示數(shù)據(jù),可以通過一定的算法從原來的顯示數(shù)據(jù)直接生成。例如,按順序調(diào)整行號(hào),可以使顯示圖文產(chǎn)生上下平移;而順序調(diào)整列顯示數(shù)據(jù)的位置,就可以達(dá)到左右平移的目的;同時(shí)調(diào)整行列順序,就能得到對(duì)角線平移的效果。其它模式的數(shù)據(jù)刷新,也可找到相應(yīng)的算法。不過當(dāng)算法太復(fù)雜,太浪費(fèi)時(shí)間的話,也可以考慮預(yù)先生成刷新數(shù)據(jù),存儲(chǔ)備用。刷新的時(shí)間控制,要考慮運(yùn)動(dòng)圖形文字的顯示效果。刷新太慢,動(dòng)感不顯著;刷新太快了,中間過程看不清。一般刷新周期可控制在幾十毫秒范圍之內(nèi)。
二、系統(tǒng)硬件設(shè)計(jì)
由于圖文屏的控制電路采用單片機(jī)方案,控制功能的實(shí)現(xiàn)應(yīng)在硬件和軟件兩方面進(jìn)行折中。單片機(jī)及相應(yīng)軟件,主要負(fù)責(zé)存儲(chǔ)(或生成)顯示數(shù)據(jù)、安排控制信號(hào)的定時(shí)與順序、上位機(jī)進(jìn)行通信等。但是單片機(jī)的接口數(shù)量少,驅(qū)動(dòng)能力不強(qiáng),必須擴(kuò)展一定的硬件電路,才能滿足顯示屏的需要。硬件電路大體上可以分成微機(jī)本身的硬件、顯示驅(qū)動(dòng)電路、控制信號(hào)電路三部分。
控制電路部分包括一個(gè)51CPU和一些外圍電路。在整個(gè)電路當(dāng)中此控制電路部分相當(dāng)于一個(gè)上位機(jī),它負(fù)責(zé)控制整個(gè)電路以及相應(yīng)的程序的運(yùn)行、與PC機(jī)的串行通訊、以及給屏體電路部分發(fā)送命令。智能顯示屏體電路部分它包括一個(gè)51CPU及其一些外圍電路,用來通訊的MAX232接口電路,一個(gè)具有一個(gè)8bit串入并出的移位寄存器和一個(gè)8it輸出鎖存器的結(jié)構(gòu),而且移位寄存器和輸出鎖存器的控制是各自獨(dú)立的。另外還有74LS165、點(diǎn)陣顯示屏體、以及它的行和列的各個(gè)驅(qū)動(dòng)電路。由于兩部分的電路在制板時(shí)可以放到一起,所以可以將其字庫放到控制電路部分使用串行通訊方式來與屏體電路部分進(jìn)行數(shù)據(jù)和命令的傳送。
此顯示電路采用掃描方式進(jìn)行顯示時(shí),每行有一個(gè)行驅(qū)動(dòng)器,各行的同名列共用一個(gè)列驅(qū)動(dòng)器。由行譯碼器給出的行選通信號(hào),從第一行開始,按順序依次對(duì)各行進(jìn)行掃描(把該行與電源的一端接通)。另一方而,根據(jù)各列鎖存的數(shù)據(jù),確定相應(yīng)的列驅(qū)動(dòng)器是否將該列與電源的另一端接通。接通的列,就在該行該列點(diǎn)燃相應(yīng)的LED;未接通的列所對(duì)應(yīng)的LED熄滅。當(dāng)一行的掃描持續(xù)時(shí)間結(jié)束后,下一行又以同樣的方法進(jìn)行顯示。全部各行都掃過一遏之后(一個(gè)掃描周期),又從第一行開始下一個(gè)周期的掃描。只要一個(gè)掃描周期的時(shí)間比人眼1/25秒的暫留時(shí)間短,就不容易感覺出閃爍現(xiàn)象。行掃描驅(qū)動(dòng)電路原理圖如下:
列顯示數(shù)據(jù)是以字節(jié)為單位存儲(chǔ)的,使用時(shí)以8bit并行讀出。為了適應(yīng)列顯示驅(qū)動(dòng)電路串行輸入的需要,就要進(jìn)行并串變換。用74LS165并人中出移位寄存器,可以滿足這—要求。信號(hào)PL*為低時(shí),將8bit并行數(shù)據(jù)打入。PL*信號(hào)由單片機(jī)的控制口INT1提供。當(dāng)PL*為高時(shí)可以在CLK1的作用下進(jìn)行移位。移位后最高位從Q7移出,成為串行數(shù)據(jù)流。74LSl65的移位時(shí)鐘信號(hào)CLKl由單片機(jī)控制口Tl端直接輸出。為了使列顯示驅(qū)動(dòng)電路的移位信號(hào)與74LS165Q7端輸出的串行數(shù)據(jù)同步,T1同時(shí)還作為列顯示驅(qū)動(dòng)電路的移位脈沖源。
三、結(jié)束語
LED點(diǎn)陣的應(yīng)用很廣,對(duì)于不同的應(yīng)用環(huán)境和應(yīng)用要求,可以有各種各樣的應(yīng)用方式。常用的應(yīng)用有群顯示應(yīng)用、紅外遙控式應(yīng)用、無線遙控式應(yīng)用。采用本文的單片機(jī)控制設(shè)計(jì)方案,對(duì)以上各種應(yīng)用都可以方便簡單而且很有效地進(jìn)行控制、設(shè)計(jì)。
評(píng)論