葉惠琴
摘 要:文章介紹了一款以單片機(jī)AT89S52為控制器的16×16的漢字顯示系統(tǒng)的軟硬件設(shè)計(jì)。該系統(tǒng)可實(shí)現(xiàn)中英文字符的顯示和動(dòng)態(tài)特效顯示,并且可以通過(guò)級(jí)連的方式來(lái)擴(kuò)大顯示屏幕的尺寸以達(dá)到增加顯示內(nèi)容的目的。
關(guān)鍵詞:?jiǎn)纹瑱C(jī);16×16點(diǎn)陣;漢字
1 系統(tǒng)說(shuō)明
文章設(shè)計(jì)的是一種有AT89S52單片機(jī)控制的16×16的LED漢字顯示屏。當(dāng)掃描周期小于24.15ms時(shí),由于人眼視覺(jué)殘留效應(yīng),人眼觀察不到的LED為連續(xù)穩(wěn)定的發(fā)光,文章采用動(dòng)態(tài)掃描方式顯示漢字,所謂動(dòng)態(tài)掃描顯示模式簡(jiǎn)單概括就是逐行輪流點(diǎn)亮。把所有同一行發(fā)光管的陽(yáng)極連接在一起,所有同一列發(fā)光管的陰極連在一起,首先送出對(duì)應(yīng)第一行發(fā)光管亮滅的數(shù)據(jù)并鎖存,然后選通第一行使其點(diǎn)亮一定的時(shí)間,熄滅;再送出第二行的數(shù)據(jù)并鎖存,然后選通第二行使其點(diǎn)亮相同的時(shí)間,熄滅;直到第十六行顯示完后又重新點(diǎn)亮第一行,這樣反復(fù)輪回。采用掃描方式進(jìn)行顯示時(shí),每行有一個(gè)行驅(qū)動(dòng)器,各行的同名列共用一個(gè)列驅(qū)動(dòng)器。顯示數(shù)據(jù)通常存儲(chǔ)在單片機(jī)的存儲(chǔ)器中,按8位一個(gè)字節(jié)的形式順序排放。顯示時(shí)要把一行中各列的數(shù)據(jù)都送到相應(yīng)的列驅(qū)動(dòng)器上。
2 系統(tǒng)結(jié)構(gòu)
整個(gè)系統(tǒng)由單片機(jī)、74HC595、74HC138、74HC245D和LED點(diǎn)陣組成,顯示由四塊8*8的LED點(diǎn)陣塊組成,以89S52系列單片機(jī)為控制核心。單片機(jī)的P1.0-P1.3通過(guò)74HC245D連接74HC138的輸入口A、B、C及138的使能端(控制H1~H8的74HC138的E1及H9~H16的74HC138的E3端);P2.0-P2.4通過(guò)74HC245D連接74HC595的輸入口SHCP、STCP、DS(第一行R1)、DS第二行R2)及EN(控制兩個(gè)74HC138的E2)。點(diǎn)陣?yán)锩嫱恍械陌l(fā)光二極管正極接在一起,同一列的負(fù)極接到一起。點(diǎn)陣的16列數(shù)據(jù)線驅(qū)動(dòng)由2 片74HC595級(jí)聯(lián)組成,前一片74HC595的Q7引腳連接下一片的DS引腳,各片的SHcp、STcp引腳分別并聯(lián)。兩塊74HC138譯碼器的16個(gè)輸出端連接漢字點(diǎn)陣的16個(gè)列線控制端。74HC138通過(guò)譯碼選通時(shí)輸出端為一個(gè)低電平,無(wú)法驅(qū)動(dòng)點(diǎn)陣?yán)锏男?,因此?38與點(diǎn)陣之間連接上4953SS,通過(guò)138選通4953SS驅(qū)動(dòng)點(diǎn)陣。如圖1所示。
圖1 點(diǎn)陣顯示板總原理圖
3 點(diǎn)陣原理說(shuō)明
8X8點(diǎn)陣共由64個(gè)發(fā)光二極管組成,每個(gè)發(fā)光二極管是放置在行線和列線的交叉點(diǎn)上,當(dāng)對(duì)應(yīng)的某一行置1電平,某一列置0電平,則相應(yīng)的二極管就亮;如要將第一個(gè)點(diǎn)紅色點(diǎn)亮,則24腳接高電平20腳接低電平,則第一個(gè)點(diǎn)紅點(diǎn)就亮;如果要將第一行點(diǎn)亮,則第24腳要接高電平,而(20、19、18、17、16、15、14、13)這些引腳接低電平,第一行紅色就會(huì)全部點(diǎn)亮;如要將第一列點(diǎn)亮,則第20腳接低電平,而(24、23、22、21、4、3、2、1)接高電平,那么第一列紅色就會(huì)點(diǎn)亮。(本項(xiàng)目有雙色板及單色板),其硬件接線圖如圖2所示。文章使用點(diǎn)陣顯示漢字是用的16*16的點(diǎn)陣宋體字庫(kù),所謂16*16,是每一個(gè)漢字在縱、橫各16點(diǎn)的區(qū)域內(nèi)顯示的。也就是說(shuō)得用四個(gè)8*8點(diǎn)陣組合成一個(gè)16*16的點(diǎn)陣。
4 調(diào)試分析
4.1 硬件調(diào)試問(wèn)題分析
單色板做了改進(jìn),通過(guò)74HC245D再連接到138的E2端,控制兩塊138的選通譯碼。單色板的反相器接法及使用如圖3所示。單色板在保護(hù)方面也做了改進(jìn)。在控制138選通譯碼的同時(shí)控制138有全能端,使它處于譯碼有效狀態(tài)。當(dāng)在高速選通行時(shí)對(duì)C228進(jìn)行充放電,只要譯碼選通達(dá)到一定頻率,就可以使C228的左端保持一個(gè)高電平,E1_2保持低電平,E3_1保持高電平,138處于譯碼狀態(tài)。當(dāng)不需要138譯碼時(shí),LA處于一個(gè)靜態(tài)模式,E1_2為高電平,E3_1為低電平,使兩個(gè)138處不譯碼狀態(tài)。當(dāng)通電的屏幕處于不工作狀態(tài)時(shí),可以使正個(gè)屏幕的行處于不選中狀態(tài),避免第一行在屏幕不工作也處于亮的狀態(tài),起到保護(hù)作用。這個(gè)電路只適合使用在高頻CPU的控制模式下。
圖3 單色板的反相器接法及使用
改正方案:(1)使用工作頻率更高的CPU。(2)把C228換用容量更大的電容,延長(zhǎng)放電時(shí)間,達(dá)到使E1_2保持低電平,E3_1保持高電平的功能。(3)更改電路控制,斷開(kāi)LA(取下R7),74HC04的3號(hào)腳直接接電源正極。由于條件所限,作者選擇了方案3。
4.2 軟件調(diào)試問(wèn)題分析
(1)第一次使用雙色板進(jìn)行調(diào)試時(shí),由于沒(méi)有把握好595的時(shí)序,在送移位脈沖的同時(shí)送鎖存脈沖,在破壞本來(lái)傳送在595里面的數(shù)據(jù),再送行顯示時(shí),整個(gè)屏幕處于亂碼現(xiàn)象。處理方法:通過(guò)模擬串口送完8個(gè)字節(jié)(顯示4個(gè)字)后,再模擬一個(gè)上升沿,形成一個(gè)鎖存脈沖,再選中該行。(2)在使用單色板調(diào)試時(shí),把EN接地,無(wú)法控制,在漢字顯示時(shí)閃爍感太明顯。經(jīng)過(guò)測(cè)試后,把EN用一個(gè)IO口控制,每次送行數(shù)據(jù)之前EN置1,使138處于不選中狀態(tài),送完數(shù)據(jù)后再把EN復(fù)位,再選中行,通過(guò)一段延時(shí)再循環(huán)操作。通過(guò)控制延時(shí)的長(zhǎng)短可以控制屏幕的亮度,但延時(shí)時(shí)間不能太長(zhǎng),過(guò)長(zhǎng)會(huì)使屏幕閃爍得更明顯。
5 結(jié)束語(yǔ)
該項(xiàng)目中遇到了兩個(gè)問(wèn)題,總結(jié)如下:(1)點(diǎn)陣的硬件電路中,由于51的主頻不夠高,導(dǎo)致時(shí)序不緊密,因此不能實(shí)現(xiàn)74hc04電路的控制。又因74hc138的使能端狀態(tài)很不穩(wěn)定,導(dǎo)致顯示不正常。修改電路后,點(diǎn)陣顯示正常了。(2)由于點(diǎn)陣是大功率負(fù)載,需要很大的驅(qū)動(dòng)電流。而過(guò)大的電流會(huì)把電壓拉低,因此點(diǎn)陣的電源應(yīng)該獨(dú)立,提高系統(tǒng)的穩(wěn)定性會(huì)。
參考文獻(xiàn)
[1]陳明螢.8051單片機(jī)課程設(shè)計(jì)實(shí)訓(xùn)教材[M].清華出版社,2004.
[2]康華光,鄒壽彬.電子技術(shù)基礎(chǔ)數(shù)字部分[M].高等教育出版社,2000.
[3]李昌禧.智能儀表原理與設(shè)計(jì)[M].化學(xué)工業(yè)出版社,2005.
[4]祁偉.單片微型計(jì)算機(jī)原理與接口技術(shù)教程[M].2007.