李金娟
摘 要:文章介紹了基于亞龍YL-236實驗臺的32×16點陣顯示屏的硬件電路設(shè)計、電路驅(qū)動、軟件設(shè)計,實現(xiàn)滾動顯示16×16的漢字、8×16的數(shù)字、字母。具有結(jié)構(gòu)簡單,可控性好,方便實現(xiàn)的優(yōu)點,具有一定的實際價值。
關(guān)鍵詞:32×16點陣;74HC573;單片機
LED點陣顯示屏是一種簡單的漢字、數(shù)字、字母顯示器,具有價廉、易于控制、使用壽命長等特點,可廣泛應(yīng)用于各種公共場合,如車站、碼頭、銀行、學校、火車、公共汽車顯示等。文章詳細介紹了一種簡單方便的32x16點陣LED顯示屏的設(shè)計過程。
1 硬件系統(tǒng)設(shè)計
亞龍YL-236實驗臺32列×16行的點陣顯示屏,由8個8×8行共陰點陣器組成。
一般說來,LED點陣顯示屏有行共陽和行共陰兩種類型,內(nèi)部結(jié)構(gòu)如圖1所示。
本顯示屏采用行共陰型LED顯示屏,采取縱向掃描(即橫向取模、字節(jié)倒序)、直接送橫向顯示碼的方式工作,基本顯示原理采用動態(tài)掃描顯示。分辨率為32X16的顯示屏由8個共陰型LED點陣單元構(gòu)成。共陰型LED點陣單元(8X8)的結(jié)構(gòu)示意圖如圖1(b),由行輸入高電平點亮(在行驅(qū)動上加了ULN2803)。
8個LED點陣單元級聯(lián)的電路原理,如圖2所示。U1、U2分別鎖存上半屏和下半屏數(shù)據(jù),并由ULN2803反相緩沖驅(qū)動,U3-U6鎖存數(shù)據(jù)并直接驅(qū)動LED顯示。因為本顯示屏采用行共陰LED,而行數(shù)據(jù)經(jīng)過ULN2803反相緩沖驅(qū)動,所以行數(shù)據(jù)和列數(shù)據(jù)都是高電平點亮。通過控制U1(或者U2)選擇上(或者下)半屏,通過控制U3-U6選擇列,來使得在任何時刻只有唯一的行導通以點亮該行,當行切換的速度足夠快時,由于人眼的視覺暫留現(xiàn)象,看上去整個屏都是亮的,這就是動態(tài)掃描的基本原理。
其實圖2已經(jīng)構(gòu)成一塊LED屏了,如果微處理器有足夠大的驅(qū)動能力和足夠多的I/O口,就可以直接驅(qū)動這塊LED屏了。但是為了能用AT89S52單片機來控制它,我們需要再加一些驅(qū)動電路和譯碼電路,以提供足夠的驅(qū)動能力以及簡化與單片機的連接。
行驅(qū)動電路使用兩片74HC573和兩片ULN2803,74HC573是比較常用的驅(qū)動芯片,當LE接高電平時,D端為輸入、Q端為輸出。
列掃描電路則利用了四片74HC573,U3、U4、U5、U6分別對應(yīng)列0、列1、列2、列3屏。U3、U4、U5、U6的LE端為高電平,D端為輸入、Q端為輸出。
本系統(tǒng)采用AT89S52單片機作控制器,整個電路主要由單片機控制及其接口電路、驅(qū)動顯示電路、電源電路等部分組成。為了簡化顯示屏電路,降低成本,本系統(tǒng)在單片機部分不加字庫存儲器。而在PC機上編輯漢字和字符顯示信息形成數(shù)組,通過keil軟件編譯生成hex文件,然后通過ISP下載線下載給單片機存儲并進行顯示處理。
2 LED點陣顯示器的掃描驅(qū)動
LED顯示屏驅(qū)動電路的設(shè)計應(yīng)與所用控制系統(tǒng)相配合。驅(qū)動通常分為動態(tài)掃描型及靜態(tài)鎖存型驅(qū)動二大類。文章選用動態(tài)掃描型驅(qū)動電路。動態(tài)掃描型驅(qū)動方式是首先選中上半屏,先后往第0塊、第1塊、第2塊、第3塊的點陣上送橫向取模字節(jié)倒序的數(shù)據(jù),然后循環(huán)8次上半屏掃描完畢;再選中下半屏循環(huán)8次,這樣子16行全部掃描完畢。只要每行的刷新速率大于50Hz,利用人眼的視覺暫留效應(yīng),人們就可以看到一幅完整的文字或畫面。
編程過程中注意:
⑴向點陣發(fā)送數(shù)據(jù)時,首先將數(shù)據(jù)送總線D0-D7,然后給相關(guān)集成塊發(fā)送鎖存信號。當74HC573的LE(ROW0、ROW1、COL0、COL1、COL2、COL3)引腳為高電平時,D端數(shù)據(jù)被傳送到其輸出端Q。當LE為低電平,Q端數(shù)據(jù)被保持,不受D端影響。
⑵要點亮點陣LED,發(fā)送的行列數(shù)據(jù)都是高電平有效。
⑶行線數(shù)據(jù)是低位在上,列線數(shù)據(jù)是低位在前。
有兩種掃描方式,即橫向掃描和縱向掃描。掃描方式不同,取模的方式不同,字模數(shù)據(jù)不同,編程的方式也不同,結(jié)合具體的硬件電路還能夠看到,顯示的亮度不同。一般說來,結(jié)合亞龍YL-236實驗臺的點陣實際電路,選擇橫向取模,字節(jié)倒序,即縱向掃描的方式,這樣亮度更亮一些。
先來看一下8×8行共陰點陣的橫向掃描和縱向掃描方式,如圖3所示。行和列數(shù)據(jù)都是高電平點亮。
本程序中漢字是16×16點陣,按照從左到右從上到下橫向取模字節(jié)倒序的方式取模,取模過程如圖4所示,右高位。
圖4采用橫向取模,字節(jié)倒序的方式進行取模,結(jié)構(gòu)上左到右從上到下。那么生產(chǎn)的字模的表格為:從第一行開始,取左側(cè)的8位,倒序讀,0x20;接著取第一行右側(cè)的8位,倒序讀,0x01;接著取第二行左側(cè)的8位,倒序讀,0x20;接著取第二行右側(cè)的8位,倒序讀,0x01;接著取第三行左側(cè)的8位,倒序讀,0x20;……
取模之后的編碼表如下:
//漢字字模表:北 //
// 漢字庫: 宋體16.dot 橫向取模右高位,數(shù)據(jù)排列:從左到右從上到下 //
/////////////////////////////////////////////////////////////////////////
unsigned char code tab[] = // 數(shù)據(jù)表
{
0x20,0x01,0x20,0x01,0x20,0x11,0x20,0x19,0x20,0x05,0x3E,0x03,0x20,0x01,0x20,0x01,
0x20,0x01,0x20,0x01,0x20,0x01,0x20,0x01,0x38,0x41,0x27,0x41,0x22,0x7E,0x00,0x00,
};
3 軟件系統(tǒng)設(shè)計
為了便于同時顯示8×16的英文和16×16的漢字,把兩種字模數(shù)組都存入同一個數(shù)組,統(tǒng)一按16字節(jié)一行,英文占一行,漢字占兩行。同時,增加一個字符索引數(shù)組,以便查找它的字模。
索引字符串存到索引數(shù)組中,索引字符串中字符的序號與其在字模中的行號相同。查找一個字符在索引中的位置,就查到了相應(yīng)字模行號。
本系統(tǒng)的軟件設(shè)計流程圖如圖5所示,該顯示程序以常用的左移為例來進行設(shè)計。
4 結(jié)語
經(jīng)過實際應(yīng)用證明,本顯示屏可以作為信息顯示裝置。用于公共場所來進行信息顯示,而且具有工作穩(wěn)定、字符清晰、亮度適中等特點。若所顯示的信息較為簡單,也可直接將信息代碼拷入單片機中,還可以通過外擴儲存器的方式來增加顯示的信息量。
[參考文獻]
[1]雷林軍.單片機控制裝置安裝與調(diào)試[M].北京:電子工業(yè)出版社,2011.
[2]楊少光.單片機控制裝置安裝與調(diào)試備賽指導[M].北京:高等教育出版社,2010.