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

          新聞中心

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

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

          作者: 時間:2009-04-23 來源:網絡 收藏

          1 引言

          本文引用地址:http://www.ex-cimer.com/article/173772.htm

          隨著應用領域的不斷擴大,用控制漢字顯示已成為一種發(fā)展的必然趨勢。以前那種將漢字點陣編碼存入ROM ,在顯示時再調用的方法已經不能適應當前的需求。好的應用所能顯示的決不能僅僅局限于顯示事先定義好的個別漢字,而應該提供直接使用至少包含國家標準的一、二級漢字字庫的功能。

          2 芯片器件介紹

          2.1 單片機
          單片機是EPROM型單片機,可尋址64KB字節(jié)的程序存儲器和64KB字節(jié)的外部數(shù)據(jù)存儲器。
          以單片機為核心,配以一定的外圍電路和軟件,某些功能,就組成了單片機應用系統(tǒng)。
          2.2 顯示模塊
          我們選用北京精電蓬遠公司的VPG12864T顯示模塊,內置T6963C控制器,了T6963C與行、列驅動器及顯示緩沖區(qū)RAM的接口,帶有LED邊光/底光,溫度范圍較廣,屬寬溫型,無須外部提供驅動電壓,點陣數(shù)為128×64,支持圖形、文本以及圖文合成方式的三顯示方式,且T6963C帶有內部字符集。
          液晶模塊與微處理器MPU的接口電路有兩種方式:一是直接訪問方式,將數(shù)據(jù)口P0直接與液晶模塊的數(shù)據(jù)口連接;二是采用間接控制方式,MPU通過I/O并行接口,模擬液晶模塊的時序,間接模塊的控制。本文討論的實現(xiàn)方法采用第一種方式。
          2.3 字庫芯片
          字庫芯片采用具有256K空間的可編程ROM芯片都可以,我們采用了ATMEL公司的AT27C020芯片,其中燒錄含有國家標準的一、二級漢字的16×16點陣字庫。
          漢字點陣在字庫中的首地址由如下公式計算:
          起始地址=[(區(qū)號-1)×94+(位號-1)]×32
          自此起始地址起的后續(xù)32個字節(jié)就是該漢字的字模數(shù)據(jù)。從字庫芯片中的32個字節(jié)的字模數(shù)據(jù)按下表排列構成漢字:

          其中,漢字由兩字節(jié)ASCII碼組成,分別減去0xA0即得到該漢字的區(qū)號和位號。這樣就可以直接由漢字的ASCII碼來計算該漢字在字庫中的地址:
          起始地址=[(第一字節(jié)-0xA1)×94+(第二字節(jié)-0xA1)]×32
          由于AT89C52最大尋址64K空間,所以在實現(xiàn)時將AT27C020分成多頁,每頁的空間不大于64KB,頁號通過譯碼器的有效輸出或其他擴展方式確定。

          3 硬件線路設計

          AT89C52與字庫芯片AT27C020及液晶顯示模塊VPG12864T的接口邏輯如圖1所示:

          圖2 硬件邏輯接口


          由于AT89C52的最大尋址空間為64K,而AT27C020的空間為256K,因而要對尋址進行擴展。地址擴展的方式有兩種,一種是利用MPU的IO口進行擴展,AT27C020的低16位地址直接與MPU的地址線相連,而高2位則需進行地址擴展,上圖中AT27C020的A16和A17分別接到AT89C52的P1.6和P1.7,片選信號CE接到P1.5上,此時尋址的頁大小為64KB(頁大小還可以根據(jù)需要設置為32KB,16KB等)。尋址由軟件編程來實現(xiàn),例如要讀38400H單元的內容,可由下列程序實現(xiàn):


          上一頁 1 2 3 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();