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