利用單片機(jī)來(lái)控制LED點(diǎn)陣
掃描二維碼
隨時(shí)隨地手機(jī)看文章
引言
單片機(jī)自20世紀(jì)70年代問世以來(lái),以極其高的性價(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í)后,也能依靠自己的力量來(lái)開發(fā)所希望的單片機(jī)系統(tǒng),并可獲得較高的經(jīng)濟(jì)效益。正因?yàn)槿绱耍谖覈?guó),單片機(jī)已被廣泛地應(yīng)用在工業(yè)自動(dòng)化控制、自動(dòng)檢測(cè)、智能儀表、家用電器等各個(gè)方面。在現(xiàn)代工業(yè)控制和一些智能化儀器儀表中,越來(lái)越多的場(chǎng)所需要用點(diǎn)陣圖形顯示器顯示漢字。漢字顯示方式是先根據(jù)所需要的漢字提取漢字點(diǎn)陣(如16×16點(diǎn)陣),將點(diǎn)陣文件存入ROM,形成新的漢字編碼;而在使用時(shí)則需要先根據(jù)新的漢字編碼組成語(yǔ)句,再由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ù)語(yǔ)一樣,LED圖文顯示屏并沒有一個(gè)公認(rèn)的嚴(yán)格的定義,一般把顯示圖形和/或文字的LED顯示屏稱為圖文屏。這里所說(shuō)的圖形,是指由單一亮度線條組成的任意圖形,以便于不同亮度(灰度)點(diǎn)陣組成的圖像相區(qū)別。圖文顯示屏的主要特征是只控制LED點(diǎn)陣中各發(fā)光器件的通斷(發(fā)光或熄滅),而不控制LED的發(fā)光強(qiáng)弱。LED圖文顯示屏的外觀可以做成條形,叫做條形圖文顯示屏(簡(jiǎn)稱條屏),也可以按一定高度比例做成矩形的平面圖文顯示屏。其實(shí)條屏只不過是其寬度遠(yuǎn)大于高度的平面顯示屏,在顯示與控制的原理上并無(wú)區(qū)別。
不論顯示圖形還是文字,都是控制與組成這些圖形或文字的各個(gè)點(diǎn)所在位置相對(duì)應(yīng)的LED器件發(fā)光。通常事先把需要顯示的圖形文字轉(zhuǎn)換成點(diǎn)陣圖形,在按照顯示控制的要求以一定的格式形成顯示數(shù)據(jù)。對(duì)于只控制通斷的圖文顯示屏來(lái)說(shuō),每個(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ī)通用的字庫(kù)字模。組成一個(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ā)光器件。換句話說(shuō),對(duì)應(yīng)于每種顏色都有自己的顯示矩陣。顯示的時(shí)候,各顏色的顯示點(diǎn)陣是分開控制的。事先設(shè)計(jì)好各種顏色的顯示數(shù)據(jù),顯示時(shí)分別送到各自的顯示點(diǎn)陣,即可實(shí)現(xiàn)預(yù)期效果。每一種顏色的控制方法和單色的完全相同,因此掌握了單色圖文顯示屏的原理,雙色屏和多色屏就不難理解了。
為了吸引觀眾增強(qiáng)顯示效果,可以有多種顯示模式。最簡(jiǎn)單的顯示模式是靜態(tài)顯示。這里所說(shuō)的“靜態(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ù),可以通過一定的算法從原來(lái)的顯示數(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è)51CUP和一些外圍電路。在整個(gè)電路當(dāng)中此控制電
路部分相當(dāng)于一個(gè)上位機(jī),它負(fù)責(zé)控制整個(gè)電路以及相應(yīng)的程序的運(yùn)行、與PC機(jī)的串行通訊、以及給屏體電路部分發(fā)送命令。智能顯示屏體電路部分它包括一個(gè)51CPU及其一些外圍電路,用來(lái)通訊的MAX232接口電路,一個(gè)具有一個(gè)8bit串入并出的移位寄存器和一個(gè)8it輸出鎖存器的結(jié)構(gòu),而且移位寄存器和輸出鎖存器的控制是各自獨(dú)立的。另外還有74LS165、點(diǎn)陣顯示屏體、以及它的行和列的各個(gè)驅(qū)動(dòng)電路。由于兩部分的電路在制板時(shí)可以放到一起,所以可以將其字庫(kù)放到控制電路部分使用串行通訊方式來(lái)與屏體電路部分進(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é)束語(yǔ)
LED點(diǎn)陣的應(yīng)用很廣,對(duì)于不同的應(yīng)用環(huán)境和應(yīng)用要求,可以有各種各樣的應(yīng)用方式。常用的應(yīng)用有群顯示應(yīng)用、紅外遙控式應(yīng)用、無(wú)線遙控式應(yīng)用。采用本文的單片機(jī)控制設(shè)計(jì)方案,對(duì)以上各種應(yīng)用都可以方便簡(jiǎn)單而且很有效地進(jìn)行控制、設(shè)計(jì)。