馮月芹,湯小龍
(1.南京工程學院,南京211167;2.重慶郵電大學)
隨著電子產品需求與覆蓋面的急劇擴張,信息傳輸(輸入輸出)所涉及的中外文字庫信息解決方案也變得更加重要,一個有多種字庫的顯示/打印電子產品比只具備單一的ASCII碼的產品有更強的競爭力。在現在字庫應用解決方案中,電子設備商、方案商一般會有這樣幾種方案:
①一部分的IC廠商會集成一小部分的字庫信息在IC上;
②設備商、方案商會自己購買存儲芯片(Flash等),自己獨立編寫點陣信息燒錄;
③采購標準的專業字庫IC,例如上海高通半導體有限公司生產的專業字庫芯片。
GT23H32S4W是一款內含11×12點陣、15×16點陣、24×24點陣、32×32點陣的漢字庫芯片,支持GB2312國標漢字及ASCII字符。排列格式為橫置橫排。圖1為芯片的引腳圖。字庫芯片與CPU的硬件連接可以是并行方式,也可以是SPI方式。筆者在使用過程中發現,并行連接不能正確讀取漢字的字模,所以這里僅介紹SPI方式。

圖1 GT23H32S4W引腳圖
單片機P89C52X2FN與字庫芯片的連接采用SPI總線的方式,SPI接口引腳描述如下:
①串行數據輸出(SO):該信號用來把數據從芯片串行數據輸入引腳輸出,數據在時鐘的下降沿移出。
②串行數據輸入(SI):該信號用來把數據從串行數據輸入引腳輸入芯片,數據在時鐘的上升沿移入。
③串行時鐘輸入(SCLK):數據在時鐘上升沿移入,在下降沿移出。
④片選輸入(CS#):所有串行數據傳輸開始于CS#下降沿,CS#在傳輸期間必須保持為低電平,在兩條指令之間保持為高電平。硬件電路連接圖如圖2所示。

圖2 單片機與GT23H32S4W的電路連接圖
字庫芯片的操作分為一般讀取和快速讀取。這里采用快速讀取(READ_FAST)方式,具體操作步驟如下:
①首先把片選信號(CS#)變為低電平,緊跟著的是1個字節的命令字(0Bh)和3個字節的地址以及一個字節Dummy Byte通過串行數據輸入引腳(SI)移位輸入,每一位在串行時鐘(SCLK)上升沿被鎖存;Dummy Byte代表無意義的內容,是什么值都可以,主要起到填充、隔離數據的作用。
②然后該地址的字節數據通過串行數據輸出引腳(SO)移位輸出,每一位在串行時鐘(SCLK)下降沿被移出。
③如果片選信號(CS#)繼續保持為低電平,則下一個地址的字節數據繼續通過串行數據輸出引腳(SO)移位輸出。例如讀取一個15×16點陣漢字需要32字節,則連續32個字節讀取后結束一個漢字的點陣數據讀取操作。如果不需要繼續讀取數據,則把片選信號(CS#)變為高電平,結束本次操作。圖3是快速讀取點陣的時序圖。
字庫芯片GT23H32S4W有多種字型:11×12、15×16、24×24、32×32點陣。這里使用15×16點陣。在GT23H32S4W里,15×16點陣的GB2312標準點陣字庫的地址計算如下。其中,GBCode表示漢字內碼;MSB表示漢字內碼GBCode的高8位;LSB表示漢字內碼GBCode的低8位;Address表示漢字或ASCII字符點陣在芯片中的字節地址;BaseAdd說明點陣數據在字庫芯片中的起始地址。
計算代碼如下:



圖3 快速讀取點陣芯片GT23H32S4W的時序圖
這里的變量Address、MSB、LSB定義數據類型時要注意,定義成長整型,以避免計算結果溢出,造成地址計算錯誤。
根據芯片的工作時序圖以及字模在GT23H32S4W芯片里的地址,可以實現一個漢字的字模的讀取。代碼如下:


該字庫芯片應用到基于GSM的圖文顯示系統,即通過手機發送短信,GSM模塊接收,然后單片機控制GSM模塊解析短信的內容,得到漢字的GB碼。由漢字的GB碼,計算漢字在字庫芯片GT23H32S4W中的地址,再由所計算的地址,讀取漢字的字模,送LED屏顯示。圖4為字庫芯片的應用系統框圖;圖5為實驗結果。

圖4 字庫芯片的應用系統框圖

圖5 實驗結果
實驗結果表明,漢字字模正確,顯示內容清晰,可以顯示字符、多種漢字的字型。
[1] 倪曉軍,章韻.單片機原理與接口技術[M] .北京:清華大學出版社,2009.
[2] GT23H32S4W標準點陣字庫芯片應用手冊V3.7,2011.
[3] 靳桅,鄔芝權,李騏,等.基于51系列單片機的LED顯示屏開發技術[M] .北京:北京航空航天大學出版社,2009.
[4] 馬忠梅.單片機的C語言應用程序設計[M] .北京:北京航空航天大學出版社,2003.
[5] 馮月芹.基于P89V51RD2單片機LED點陣顯示屏的實現[J] .電子設計工程,2012(6).