單片機顯控系統中的漢字輸入方法
對于PC機來(lái)說(shuō),輸入漢字是非常簡(jiǎn)單的,但在一些單片機人機接口系統中,進(jìn)行漢字的實(shí)時(shí)輸入是很困難的,而大多只能顯示事先已取好字模點(diǎn)陣的漢字,但是每個(gè)16×16漢字點(diǎn)陣由32個(gè)字節表示,對于需要靈活使用大量漢字的場(chǎng)合,程序量太大,實(shí)現起來(lái)有很大難度;下面針對漢字庫的結構進(jìn)行分析,設計一種實(shí)用的漢字拼音輸入法,并給出液晶漢字顯示模塊的基本程序。
本文引用地址:http://dyxdggzs.com/article/171621.htm1漢字的內碼表示
針對不同的操作系統漢字內碼表示不同,如在蘋(píng)果機的OS上使用的是GB231280漢字編碼,Window s系統則使用GBK漢字編碼,還有Unicode編碼,GB180302000,方正748編碼等。由于GB 231280是最早(1980年)的、由中國國家標準局頒布的《通用漢字字符集及其交換標準碼》,所以以后產(chǎn)生的各編碼都兼容了GB2312,他共收入漢字、字母、符號等7 445個(gè),其中漢字6 763個(gè),包 括一級漢字3 755個(gè),二級漢字3 008個(gè),是中國大陸及海外使用簡(jiǎn)體中文的地區(如新加坡等)強制使用的惟一中文編碼,所以也稱(chēng)為標準漢字庫。
每個(gè)漢字的點(diǎn)陣數據需要占據內存32 B,有筆劃顯示的地方為1,無(wú)筆劃顯示的地方為0。然后通過(guò)單片機的C51語(yǔ)言將點(diǎn)陣數據轉換成點(diǎn)陣液晶可顯示的點(diǎn)陣數據形式。
2漢字庫的制作
本節中論述將16×16點(diǎn)陣的宋體漢字庫燒錄到512 kB的存儲器中的具體方法。
本例中使用的存儲芯片為AM29C040,該芯片是AMD公司生產(chǎn)的512 kB的FLASH ROM,讀者也可以使用其他容量不小于256 kB的產(chǎn)品,但在具體電路設計時(shí)應注意引腳定義和邏輯關(guān)系,并在燒錄時(shí)選擇相應的型號;UCDOS軟件有一個(gè)名字為HZK16DAT 的文件,這就是16×16的國標漢字點(diǎn)陣文件,在該文件中按漢字區位碼從小到大依次存有國標區位碼中的所有漢字,每個(gè)漢字占用32 B,每個(gè)區為94個(gè)漢字,其大小為262 kB,可以全部寫(xiě)入AM29C040,除了可以存儲全部的國標漢字外還可以存儲8×16的ASCII碼點(diǎn)陣數據以及漢字語(yǔ)句編碼數據,使用起來(lái)更加方便。
在實(shí)際操作中,硬件漢字庫的制作和普通的程序存儲器的編程沒(méi)什么不同,注意將HZK16文件調入時(shí)要使用二進(jìn)制方式打開(kāi),編程并校驗成功后即可將存儲器取下備用,這樣一個(gè)硬件漢字庫就制作好了。
3設計思路
在本實(shí)例中,從低成本、低功耗設計理念出發(fā),以Philips公司的P89C51RD2單片機為核心,輸入用4×4的復用鍵盤(pán),既可輸入數字,也可輸入字母或拼音,漢字庫保存在A(yíng)MD公司的A M29C040(512 k×8 b)FLASH上,液晶顯示模塊DMF50174(320×240),顯示控制器SE D1335是日本SEIKO EPSON公司出品的液晶顯示控制芯片。各個(gè)芯片的片選(控制信號)由74 HC138譯碼產(chǎn)生。
鍵盤(pán)輸入漢語(yǔ)拼音,單片機檢索區位碼,從FLASH中讀出漢字點(diǎn)陣設計,顯示在LCD上,并利用P89C51RD2的IAP功能在線(xiàn)進(jìn)行編程,在線(xiàn)改變用戶(hù)界面或接口功能。
4漢字輸入
P89C51RD2是Philips公司于2001年發(fā)布的一款非常優(yōu)秀的單片機,該單片機是基于8位80C51單片機的派生產(chǎn)品,他在完全保留80C51指令系統和硬件結構的大框架外,進(jìn)行了多方面的加強擴展和創(chuàng )新,P89C51RD2將原有的對外數據和程序存儲器的16位尋址機制加以利用,把片上的RAM 擴展到1 kB,片上的FLASH EPROM擴展到64 kB,具有ISP(在系統可編程)和IAP(在應用中編程),具有6時(shí)鐘和12時(shí)鐘模式,6時(shí)鐘模式外部晶振0~20 MHz,12時(shí)鐘模式外部晶振可達0~33 MHz。
評論