<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于AT89C52的液晶顯示的實現(xiàn)

          基于AT89C52的液晶顯示的實現(xiàn)

          作者: 時間:2009-04-23 來源:網(wǎng)絡(luò) 收藏

          此種方法起來簡單明了,不需額外的硬件,缺點是占用MPU的IO資源較多,適用于IO資源有富余的情況。在筆者的應(yīng)用中,MPU的IO需要余留給其他應(yīng)用,不能分配這么多的IO來,故采用另外一種方法,由硬件邏輯,見圖3:

          本例中的頁大小為32KB。AT27C020的片選信號CS1由地址線A15產(chǎn)生(即A15連到片選信號CE上),如要讀38400H單元的內(nèi)容,先由程序產(chǎn)生高位地址AA17、AA16、AA15。對字庫芯片尋址時,先產(chǎn)生頁地址,再進行頁內(nèi)尋址,利用此種方法可進行多位地址的擴展。舉例如下:

          4 軟件的與控制

          VPG12864T模塊的系統(tǒng)指令集其實就是T6963C控制器的指令集,模塊的初始化設(shè)置一般都由管腳設(shè)置完成。T6963C的指令可帶一個或兩個參數(shù),或無參數(shù)。每條指令的執(zhí)行都是先送入?yún)?shù),再送入指令代碼,且每次操作之前要進行狀態(tài)字檢測。T6963C的狀態(tài)字如下說明。在處理顯示操作時,首先要指定字符串、文字段的有效顯示位置。

          STA0:指令讀寫狀態(tài)
          STA1:數(shù)據(jù)讀寫狀態(tài)
          STA2:數(shù)據(jù)自動寫狀態(tài)
          STA3:數(shù)據(jù)自動讀狀態(tài)
          STA5:讀/寫出錯狀態(tài)
          STA6:運行控制器檢測
          STA7:閃爍狀態(tài)檢測
          另外STA4保留.
          4.1 顯示字符
          VPG12864T模塊字符的顯示有兩種實現(xiàn)方式,一是利用T6963C提供的字符集,另一種方法是將字符的點陣數(shù)據(jù)存放在ROM內(nèi),需要時以圖形方式顯示。當電路驅(qū)動能力不夠時,可以采用第二種方式。字符顯示相對比較簡單,在這里不做詳細描敘。
          4.2 顯示漢字
          處理漢字顯示時,由于VPG12864T模塊是128×64點陣的,所以顯示16×16點陣的漢字一行最多顯示8個,且最多顯示4行。對于每一個漢字的顯示,首先應(yīng)該計算該漢字在字庫中的地址,然后讀出該漢字的點陣排列。當顯示至一行的末尾時要換行顯示。在處理漢字顯示時有兩種方法:一是一次只顯示一個漢字,即對于每一個漢字,先計算出此漢字地址,讀出其點陣數(shù)據(jù),顯示完畢再處理下一個漢字,直到處理完所有的漢字;第二種方法是將所要顯示的所有漢字的點陣數(shù)據(jù)從字庫中讀出存放外部RAM中,再集中處理顯示的問題。本文討論的是后一種方法。
          字符半角碼與全角碼有如下的對應(yīng)關(guān)系:

          半角字符對應(yīng)的全角字符的起始地址的計算公式:
          起始地址=[(2×94+(ASCII-0x21))×32
          漢字顯示處理的流程如下(用“#”作為顯示漢字段的結(jié)束標志):

          在處理漢字顯示時,如果要實現(xiàn)漢字的反顯(例如實現(xiàn)菜單操作),將漢字的32字節(jié)字模數(shù)據(jù)分別與0xFF異或(XRL)運算,或者取反(CPL)運算后再顯示即可。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();