• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 基于12864點陣型LCD顯示漢字的軟硬件設計實例

    基于12864點陣型LCD顯示漢字的軟硬件設計實例

    作者: 時間:2018-01-23 來源:網絡 收藏

      點陣的顯示原理

    本文引用地址:http://www.czjhyjcfj.com/article/201801/374795.htm

      在數字電路中,所有的數據都是以0和1保存的,對控制器進行不同的數據操作,可以得到不同的結果。對于顯示英文操作,由于英文字母種類很少,只需要8位(一字節)即可。而對于中文,常用卻有6000以上,于是我們的DOS前輩想了一個辦法,就是將ASCII表的高128個很少用到的數值以兩個為一組來表示漢字,即漢字的內碼。而剩下的低128位則留給英文字符使用,即英文的內碼。

      那么,得到了漢字的內碼后,還僅是一組數字,那又如何在屏幕上去顯示呢?這就涉及到文字的字模,字模雖然也是一組數字,但它的意義卻與數字的意義有了根本的變化,它是用數字的各位信息來記載英文或漢字的形狀,如英文的‘A’在字模的記載方式如圖1所示:

        

      圖1 “A”字模圖

      而中文的“你”在字模中的記載卻如圖2所示:

        

      圖2 “你”字模圖

      點陣型簡介

      是一種圖形點陣液晶顯示器,它主要由行驅動器/列驅動器及128&TImes;64全點陣液晶顯示器組成??赏瓿蓤D形顯示,也可以顯示8&TImes;4個(16&TImes;16點陣)漢字。

        

      在使用LCD前先必須了解以下功能器件才能進行編程。12864內部功能器件及相關功能如下:

      1. 指令寄存器(IR)

      IR是用于寄存指令碼,與數據寄存器數據相對應。當D/I=0時,在E信號下降沿的作用下,指令碼寫入IR。

      2.數據寄存器(DR)

      DR是用于寄存數據的,與指令寄存器寄存指令相對應。當D/I=1時,在下降沿作用下,圖形顯示數據寫入DR,或在E信號高電平作用下由DR讀到DB7∽DB0數據總線。DR和DDRAM之間的數據傳輸是模塊內部自動執行的。

      3.忙標志:BF

      BF標志提供內部工作情況。BF=1表示模塊在內部操作,此時模塊不接受外部指令和數據。BF=0時,模塊為準備狀態,隨時可接受外部指令和數據。

      利用STATUS READ指令,可以將BF讀到DB7總線,從檢驗模塊之工作狀態。

      4.顯示控制觸發器DFF

      此觸發器是用于模塊屏幕顯示開和關的控制。DFF=1為開顯示(DISPLAY OFF),DDRAM的內容就顯示在屏幕上,DFF=0為關顯示(DISPLAY OFF)。

      DDF的狀態是指令DISPLAY ON/OFF和RST信號控制的。

      5.XY地址計數器

      XY地址計數器是一個9位計數器。高3位是X地址計數器,低6位為Y地址計數器,XY地址計數器實際上是作為DDRAM的地址指針,X地址計數器為DDRAM的頁指針,Y地址計數器為DDRAM的Y地址指針。

      X地址計數器是沒有記數功能的,只能用指令設置。

      Y地址計數器具有循環記數功能,各顯示數據寫入后,Y地址自動加1,Y地址指針從0到63。

      6.顯示數據RAM(DDRAM)

      DDRAM是存儲圖形顯示數據的。數據為1表示顯示選擇,數據為0表示顯示非選擇。DDRAM與地址和顯示位置的關系見DDRAM地址表。

      7.Z地址計數器

      Z地址計數器是一個6位計數器,此計數器具備循環記數功能,它是用于顯示行掃描同步。當一行掃描完成,此地址計數器自動加1,指向下一行掃描數據,RST復位后Z地址計數器為0。

      Z地址計數器可以用指令DISPLAY START LINE預置。因此,顯示屏幕的起始行就由此指令控制,即DDRAM的數據從哪一行開始顯示在屏幕的第一行。此模塊的DDRAM共64行,屏幕可以循環滾動顯示64行。

      12864LCD的指令系統及時序

      該類液晶顯示模塊(即KS0108B及其兼容控制驅動器)的指令系統比較簡單,總共只有七種。其指令表如表2所示:

        

      各功能指令分別介紹如下。

      顯示開/關指令

        

      該指令設置了對應液晶屏最上一行的顯示RAM的行號,有規律地改變顯示起始行,可以使LCD實現顯示滾屏的效果。

      3、頁(PAGE)設置指令

        

      該指令用來查詢液晶顯示模塊內部控制器的狀態,各參量含義如下:

      BUSY:1-內部在工作0-正常狀態

      ON/OFF:1-顯示關閉0-顯示打開

      RESET:1-復位狀態0-正常狀態

      在BUSY和RESET狀態時,除讀狀態指令外,其它指令均不對液晶顯示模塊產生作用。

      在對液晶顯示模塊操作之前要查詢BUSY狀態,以確定是否可以對液晶顯示模塊進行操作。

      6、寫數據指令

        

      11讀顯示數據

      讀、寫數據指令每執行完一次讀、寫操作,列地址就自動增一。必須注意的是,進行讀操作之前,必須有一次空讀操作,緊接著再讀才會讀出所要讀的單元中的數據。

      12864點陣型LCD軟硬件設計實例

      通過以上學習,現在就來實際應用12864LCD的軟硬件設計。本實例將在LCD上顯示如圖3所示內容:

        

      圖3 模擬顯示效果圖

      在調試前先將顯示切換開關切換到LCD顯示狀態。

        

     

      圖4 128*64LCD實驗演示圖

      硬件原理圖

        

      圖5 硬件原理圖

      程序流程圖

        

      圖6 軟件流程圖

      軟件代碼

      在編寫軟件代碼之前必須要先掌握漢字取模的方法。要得到上表中的文字,我們可以借助取模軟件來完成。目前點陣LCD的取模軟件有很多,我們以本開發板配套的取模軟件為例來介紹一下漢字的取模方法。

      打開取模軟件出現如下顯示界面:

        

      在文字輸入區中輸入文字,我們以輸入一個歡迎的“歡”字為例,了解其取模過程。在文字輸入區中輸入“歡”后按CTRL+ENTER組合鍵后就看到“歡”字已經在模擬顯示區顯示出來了

        

      在“取模方式”中選擇“C51格式”就可以在“點陣生成區”得到你要的漢字“歡”的顯示代碼。

        

      經過以上步驟后一個漢字就取模成功了,在程序中只要調用這段代碼就可顯示出漢字“歡”了,其它漢字也用同樣的方法。取完要顯示的全部漢字代碼后我們就可以編程了。



    關鍵詞: 12864 LCD

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 新泰市| 云南省| 四会市| 北安市| 崇文区| 赤城县| 高密市| 修文县| 清涧县| 元江| 射洪县| 沾化县| 海宁市| 龙陵县| 竹溪县| 延寿县| 黄龙县| 高青县| 即墨市| 夹江县| 西贡区| 建德市| 巩义市| 成武县| 抚远县| 依安县| 湄潭县| 汨罗市| 临漳县| 宣恩县| 巴彦县| 防城港市| 上饶县| 扎赉特旗| 元氏县| 合江县| 西青区| 阳泉市| 开封市| 盖州市| 吉安县|