博文谷

位置:首頁 > 實用範文 > 論文

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

論文2.47W

摘要:需要顯示的漢字較多時,單片機系統中的漢字編碼非常繁瑣,單片機系統中的漢字顯示。本文介紹一種直接利用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個字節爲“房”的顯示點陣。