在單片機(jī)學(xué)習(xí)與開發(fā)中,部分愛好者對(duì)點(diǎn)陣顯示器的編程思路和顯示漢字的數(shù)碼表覺得很難理解。本文用圖解法,以8×8靜態(tài)顯示"年"字和移動(dòng)顯示"年"字為例給讀者講解電路原理和編程方法.講解編程方法用圖解法這種學(xué)習(xí)形式時(shí)由于其形象直觀,容易收到良好效果。之后,讀者在自學(xué)16×16靜態(tài)顯示任一漢字和移動(dòng)顯示任一漢字的編程思路和方法時(shí)會(huì)感到輕而易舉。
靜態(tài)顯示"年"字的原理及編程
8×8LED點(diǎn)陣顯示器的基本工作原理及編程有許多教材進(jìn)行介紹,我們用以下圖文并茂法使學(xué)習(xí)簡(jiǎn)捷而明快。
第1步:給出8×8共陽極LED點(diǎn)陣顯示器的控制電路
8×8共陽極LED點(diǎn)陣顯示器的控制電路由AT89S51(或用AT89c51、AT89C2051)、
74LS07驅(qū)動(dòng)芯片和8×8共陽極LED點(diǎn)陣顯示器組成,如圖1所示。其中行0~行7由P0口控制,列0~列7由P2口控制。

第2步:給出顯示"年"的編碼及程序圖解(這是最關(guān)鍵的一步)
先看圖2中的①:理解P0口第7列至第0列的編碼;再看②:理解P2口列掃描的編碼,即明確P0口的哪一位為低電平,則掃描哪一列;最后看③:理解靜態(tài)顯示"年"字的編碼及程序。在此基礎(chǔ)上理解掃描原理:開始掃描第7列時(shí),第7列兩個(gè)點(diǎn)亮,用時(shí)只有幾毫秒;當(dāng)掃描第6列時(shí),第6列兩個(gè)點(diǎn)亮,雖然第7列的兩個(gè)點(diǎn)滅,但由于人眼對(duì)消失光有40毫秒左右的惰性反應(yīng),故第7列的兩個(gè)點(diǎn)我們?nèi)匀桓械搅痢<偃缑繏呙枰涣杏脮r(shí)3毫秒,則掃描8列用時(shí)24毫秒,因此年字呈現(xiàn)在人眼中。



第3步:給出顯示"年"字流程圖
用掃描法由左向右逐列循環(huán)掃描(每隔1ms,掃一列),其流程圖見圖3:

第4步:靜止顯示"年"的程序清單
1.靜止顯示"年"的參考程序(1)-圖2中已給出完整程序

2。靜止顯示"年"的參考程序(2)-用查表法
當(dāng)有較多重復(fù)的程序段時(shí),用查表法可以使程序長(zhǎng)度縮短。下面用查表法編寫顯示漢字"年"程序。
RET ;"年"字列7~列0的行代碼數(shù)據(jù)表格 ORG 0100H TAB DB 24H,44,0DCH,54H,7FH,54H,54H,44H
數(shù)據(jù)表格中的24H為圖2中的第7列編碼;44H為圖2中第6列編碼……。一些初學(xué)者看不懂教材中的該數(shù)據(jù)表格,其根本原因就是缺少圖2所示的顯示漢字的編碼。
移動(dòng)顯示"年"的原理及編程
1.漢字"年"左移動(dòng)編程思路
參看圖4中的①~⑧分圖,按以下9步理解漢字左移動(dòng)顯示"年"的編程思路。

第①步:參看圖4中的分圖①,編寫顯示8列完整"年"字的程序。每顯示1列用3條指令,顯示8列用3×8=24條指令,見圖2中"靜止顯示"年"的程序"
第②步:參看圖4中的分圖②,將完整"年"字左移1列,被移出框外的一列不編碼,因此應(yīng)編寫顯示3×7列的"年"字程序。
第③步:參看圖4中的分圖⑧,將完整"年"字左移兩列,被移出框外的這兩列不編碼,因此應(yīng)編寫顯示3×6列的"年"字程序。
按照上述方法可編寫其它列的"年"字程序,其它漢字程序編寫方法可借此舉一反三。
2.按圖4中的分圖①②③④⑤⑥⑦⑧的順序,理解"年"字左移動(dòng)的編碼圖解。
3.按圖5-①、-②中①②③④⑤⑥⑦⑧⑨的順序,設(shè)計(jì)"年"字左移動(dòng)程序
4."年"字左移動(dòng)程序(按以下步驟自行寫出)
①編寫顯示8列完整"年"字的程序。 ........... ②編寫顯示7列部分"年"字的程序。 ........... ③編寫顯示6列部分"年"字的程序。 ........... ④編寫顯示5列部分"年"字的程序。 ........... ⑤編寫顯示4列部分"年"字的程序。 ........... ⑥編寫顯示3列部分"年"字的程序。 ........... ⑦編寫顯示2列部分"年"字的程序。 ........... ⑧編寫顯示1列部分"年"字的程序。 ........... 編寫延時(shí)1秒子程序。 ........... 編寫延時(shí)1ms子程序。 ........... 跳回開始①,反復(fù)進(jìn)行。
|