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

第2步:給出顯示"年"的編碼及程序圖解(這是最關鍵的一步)
先看圖2中的①:理解P0口第7列至第0列的編碼;再看②:理解P2口列掃描的編碼,即明確P0口的哪一位為低電平,則掃描哪一列;最后看③:理解靜態顯示"年"字的編碼及程序。在此基礎上理解掃描原理:開始掃描第7列時,第7列兩個點亮,用時只有幾毫秒;當掃描第6列時,第6列兩個點亮,雖然第7列的兩個點滅,但由于人眼對消失光有40毫秒左右的惰性反應,故第7列的兩個點我們仍然感到亮。假如每掃描一列用時3毫秒,則掃描8列用時24毫秒,因此年字呈現在人眼中。



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

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

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

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