當前位置:文書都 >

實用範文 >論文 >

論文單片機系統中的漢字顯示

論文單片機系統中的漢字顯示

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

論文單片機系統中的漢字顯示

關鍵詞:單片機 液晶顯示器 29F040 漢字顯示

引言

在現代工業控制和一些智能化儀器儀表中,越來越多的場所需要用點陣圖形顯示器顯示漢字。通常的漢字顯示方式是先根據所需要的漢字提取漢字點陣(如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個字節為“房”的顯示點陣。

  • 文章版權屬於文章作者所有,轉載請註明 https://wenshudu.com/shiyongfanwen/lunwen/yylwo2.html
專題