1. <tt id="5hhch"><source id="5hhch"></source></tt>
    1. <xmp id="5hhch"></xmp>

  2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

    <rp id="5hhch"></rp>
        <dfn id="5hhch"></dfn>

      1. 單片機系統中的漢字顯示

        時間:2024-09-18 08:00:03 理工畢業論文 我要投稿
        • 相關推薦

        單片機系統中的漢字顯示

        摘要:需要顯示的漢字較多時,單片機系統中的漢字編碼非常繁瑣。本文介紹一種直接利用PC機的漢字內碼作為單片機系統的漢字編碼,以簡化系統的設計。

        引言

        在現代工業控制和一些智能化儀器儀表中,越來越多的場所需要用點陣圖形顯示器顯示漢字。通常的漢字顯示方式是先根據所需要的漢字提取漢字點陣(如16×16點陣),將點陣文件存入ROM,形成新的漢字編碼;而在使用時剛需要先根據新的漢字編碼組成語句,再由MCU根據新編碼提取相應的點陣進行漢字顯示。在這種顯示方式中,如果使用的流字數量較大或語句較多時,利用漢字的新編碼組成語句將是一件十分繁瑣而枯燥的工作。針對這種情況,本文提出了一種十分簡單的方式——直接利用PC機的漢字內碼作為單片機系統的編碼。下面以8031單片機系統為例闡述如下:

        一、硬件組成

        本系統中采用香港精電公司的內置T6963控制器[1]的240128T點陣圖形液晶顯示器。該顯示器1行為240點,能容納16×16點陣的漢字15個,總列數為128點,能顯示8行漢字。為了使用MCU操作可使用1片512KB的存儲器(如本系統中的29F040)用來存儲全部的國標16×16點陣漢遼、8×16的ASCII碼點陣數據以及漢字語句編碼數據。為了降低成本和減小體積,對于速度要求不是很高的場合也可采用大容量的串行數據存儲器,如AT45DB041B。具體的硬件控制電路如圖1所示(與漢字顯示無關的電路略)。

        由于29F040的容量為512KB,而5031微控制器只能管理64KB的數據間,所以可將29F040分成16頁,每頁32KB,占單片機系統數據空間的8000H~0FFFFH(剩余32KB為單片機系統的其他存儲器和外設)。頁碼由單片機的P1.0~P1.3選擇。液晶顯示器的地址為7FF8H~7FF9H。

        二、漢字顯示原理及軟件設計

        UCDOS軟件中的文件HZK16和文件ASC16分別為16×16的國標漢字點陣文件和8×16的ASCII碼點陣文件,以二進制格式存儲。在文件HZK16中,按漢字區位碼從小到大依次存有國標區位碼表中的所有漢字,每個漢字占用32個字節,每個區為94個漢字。在文件ASC16中按ASCII碼從小到大依次存有8×16的ASCII碼點陣,每個ASCII碼占用16個字節。

        在PC機的文本文件中,漢字是以機內碼的形式存儲的,每個漢字占用兩個字節:第一個字節為區碼,為了與ASCII碼區別,范圍從十六進制的0A1H開始(小于80H的為ASCII碼字符),對應區位碼中區碼的第一區;第二個字節為位碼,范圍也是從0A1H開始,對應某區中的第一個位碼。這樣,將漢字機內碼減去0A0AH就得該漢字的區位碼。

        例如漢字“房”的機內碼為十六進制的“B7BF”,其中“B7”表示區碼,“BF”表示位碼。所以“房”的區位碼為0B7BFH-0A0A0H=171FH。將區碼和位碼分別轉換為十進制得漢字“房”的區位碼為“2331”,即“房”的點陣位于第23區的第31個字的位置,相當于在文件HZK16中的位置為第32×[(23-1) ×94 (31-1)]=67136B以后的32個字節為“房”的顯示點陣。

        在本單片機系統中,起始地址的高4位為頁號,送P1口,低15位為數據區地址,送指針DPTR。利用“MOVX”指令連續取32個字節送LCD的相應位置,就能實現正確的漢字顯示。

        ASCII碼的顯示與漢字的顯示基本原理相同。在文件ASC16中不存在機內碼的問題,其顯示點陣直接按ASCII碼從小到大依次排列,只是每個ASCII碼在文本文件中只占1個字節且小于80H,而且ASCII碼為8×16點陣,所以在ASCII16文件中,每個ASCII碼的點陣也只占16個字節。

        首先提取16×16的國標漢字點陣和8×16的ASCII碼點陣(如UCDOS軟件中的HZK16和ASC16)并將其直接寫入29F040。其中HZK16(共256KB)點0~7頁。為了便于編程,ASC16雖然只有4KB,也單獨占用第8頁。其余剩下的空間用來存儲漢字語句的編碼。

        由于240×128點陣的LED顯示器每個只能顯示15個漢字(16×16點陣漢字),即30個字節。所以可將需要顯示的語句按30個字節為1行進行編寫,不足30個字符的則補空格。在PC機上進行錄入時,每行30個字符再加上回車鍵和換行符,實占32個字符。所錄入的語句以純文本形式存盤,再將該文本文件以二進制的形式寫入29F040的第9頁。那么,以后根據需要顯示的語句行號便可以進行正確的顯示。此,作者推出薦使用DOS版本的WPS軟件的“編輯非文收文件”功能,它能清楚地顯示每行是否有30個字符。

        根據以上原則,顯示1行漢字的具體程序框圖如圖2所示。

        為方便讀者,將已經在實際應用中中通過的匯編子程序列出如下(關于LCD控制器T6963的用戶法請見參考文獻1)。

        LCDCOM EQU 7FF9H

        LCDDAT EQU 7FF8H

        ;顯示1行漢字子程序

        ;漢字語句位置編號DPTR;行號:R6 PRHZ:MOV 24H,DPH

        MOV 25H,DPL

        PUSH DPH

        PUSH DPL

        MOV A,DPH ;計算頁號

        RR A

        RR A

        ADD A,#9;從第9區開始存放每行字符的機內碼

        ORL A,#0F0H

        MOV P1,A

        LCALL RL245 ;行號乘以32(每行32個字符)

        SETB 24H,7 ;數據地址位于8000H~0FFFFH

        MOV DPH,24H

        【單片機系統中的漢字顯示】相關文章:

        液晶顯示模塊DMF-50081在單片機系統中的應用03-18

        液晶顯示在嵌入式系統中的應用03-21

        漢字的動態編碼與顯示方案03-18

        SPI總線在51系列單片機系統中的實現03-19

        信息紐扣DS1991在單片機系統中的應用03-18

        單片機系統中的多任務多線程機制的實現03-18

        液晶顯示器在嵌入式系統中的應用03-18

        單片機協處理器在電力系統中的應用03-18

        FM31256在C8051F單片機系統中的應用03-07

        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码

        1. <tt id="5hhch"><source id="5hhch"></source></tt>
          1. <xmp id="5hhch"></xmp>

        2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

          <rp id="5hhch"></rp>
              <dfn id="5hhch"></dfn>