馮月芹,湯小龍
(1.南京工程學(xué)院,南京211167;2.重慶郵電大學(xué))
隨著電子產(chǎn)品需求與覆蓋面的急劇擴(kuò)張,信息傳輸(輸入輸出)所涉及的中外文字庫(kù)信息解決方案也變得更加重要,一個(gè)有多種字庫(kù)的顯示/打印電子產(chǎn)品比只具備單一的ASCII碼的產(chǎn)品有更強(qiáng)的競(jìng)爭(zhēng)力。在現(xiàn)在字庫(kù)應(yīng)用解決方案中,電子設(shè)備商、方案商一般會(huì)有這樣幾種方案:
①一部分的IC廠商會(huì)集成一小部分的字庫(kù)信息在IC上;
②設(shè)備商、方案商會(huì)自己購(gòu)買(mǎi)存儲(chǔ)芯片(Flash等),自己獨(dú)立編寫(xiě)點(diǎn)陣信息燒錄;
③采購(gòu)標(biāo)準(zhǔn)的專(zhuān)業(yè)字庫(kù)IC,例如上海高通半導(dǎo)體有限公司生產(chǎn)的專(zhuān)業(yè)字庫(kù)芯片。
GT23H32S4W是一款內(nèi)含11×12點(diǎn)陣、15×16點(diǎn)陣、24×24點(diǎn)陣、32×32點(diǎn)陣的漢字庫(kù)芯片,支持GB2312國(guó)標(biāo)漢字及ASCII字符。排列格式為橫置橫排。圖1為芯片的引腳圖。字庫(kù)芯片與CPU的硬件連接可以是并行方式,也可以是SPI方式。筆者在使用過(guò)程中發(fā)現(xiàn),并行連接不能正確讀取漢字的字模,所以這里僅介紹SPI方式。
圖1 GT23H32S4W引腳圖
單片機(jī)P89C52X2FN與字庫(kù)芯片的連接采用SPI總線的方式,SPI接口引腳描述如下:
①串行數(shù)據(jù)輸出(SO):該信號(hào)用來(lái)把數(shù)據(jù)從芯片串行數(shù)據(jù)輸入引腳輸出,數(shù)據(jù)在時(shí)鐘的下降沿移出。
②串行數(shù)據(jù)輸入(SI):該信號(hào)用來(lái)把數(shù)據(jù)從串行數(shù)據(jù)輸入引腳輸入芯片,數(shù)據(jù)在時(shí)鐘的上升沿移入。
③串行時(shí)鐘輸入(SCLK):數(shù)據(jù)在時(shí)鐘上升沿移入,在下降沿移出。
④片選輸入(CS#):所有串行數(shù)據(jù)傳輸開(kāi)始于CS#下降沿,CS#在傳輸期間必須保持為低電平,在兩條指令之間保持為高電平。硬件電路連接圖如圖2所示。
圖2 單片機(jī)與GT23H32S4W的電路連接圖
字庫(kù)芯片的操作分為一般讀取和快速讀取。這里采用快速讀?。≧EAD_FAST)方式,具體操作步驟如下:
①首先把片選信號(hào)(CS#)變?yōu)榈碗娖?,緊跟著的是1個(gè)字節(jié)的命令字(0Bh)和3個(gè)字節(jié)的地址以及一個(gè)字節(jié)Dummy Byte通過(guò)串行數(shù)據(jù)輸入引腳(SI)移位輸入,每一位在串行時(shí)鐘(SCLK)上升沿被鎖存;Dummy Byte代表無(wú)意義的內(nèi)容,是什么值都可以,主要起到填充、隔離數(shù)據(jù)的作用。
②然后該地址的字節(jié)數(shù)據(jù)通過(guò)串行數(shù)據(jù)輸出引腳(SO)移位輸出,每一位在串行時(shí)鐘(SCLK)下降沿被移出。
③如果片選信號(hào)(CS#)繼續(xù)保持為低電平,則下一個(gè)地址的字節(jié)數(shù)據(jù)繼續(xù)通過(guò)串行數(shù)據(jù)輸出引腳(SO)移位輸出。例如讀取一個(gè)15×16點(diǎn)陣漢字需要32字節(jié),則連續(xù)32個(gè)字節(jié)讀取后結(jié)束一個(gè)漢字的點(diǎn)陣數(shù)據(jù)讀取操作。如果不需要繼續(xù)讀取數(shù)據(jù),則把片選信號(hào)(CS#)變?yōu)楦唠娖剑Y(jié)束本次操作。圖3是快速讀取點(diǎn)陣的時(shí)序圖。
字庫(kù)芯片GT23H32S4W有多種字型:11×12、15×16、24×24、32×32點(diǎn)陣。這里使用15×16點(diǎn)陣。在GT23H32S4W里,15×16點(diǎn)陣的GB2312標(biāo)準(zhǔn)點(diǎn)陣字庫(kù)的地址計(jì)算如下。其中,GBCode表示漢字內(nèi)碼;MSB表示漢字內(nèi)碼GBCode的高8位;LSB表示漢字內(nèi)碼GBCode的低8位;Address表示漢字或ASCII字符點(diǎn)陣在芯片中的字節(jié)地址;BaseAdd說(shuō)明點(diǎn)陣數(shù)據(jù)在字庫(kù)芯片中的起始地址。
計(jì)算代碼如下:
圖3 快速讀取點(diǎn)陣芯片GT23H32S4W的時(shí)序圖
這里的變量Address、MSB、LSB定義數(shù)據(jù)類(lèi)型時(shí)要注意,定義成長(zhǎng)整型,以避免計(jì)算結(jié)果溢出,造成地址計(jì)算錯(cuò)誤。
根據(jù)芯片的工作時(shí)序圖以及字模在GT23H32S4W芯片里的地址,可以實(shí)現(xiàn)一個(gè)漢字的字模的讀取。代碼如下:
該字庫(kù)芯片應(yīng)用到基于GSM的圖文顯示系統(tǒng),即通過(guò)手機(jī)發(fā)送短信,GSM模塊接收,然后單片機(jī)控制GSM模塊解析短信的內(nèi)容,得到漢字的GB碼。由漢字的GB碼,計(jì)算漢字在字庫(kù)芯片GT23H32S4W中的地址,再由所計(jì)算的地址,讀取漢字的字模,送LED屏顯示。圖4為字庫(kù)芯片的應(yīng)用系統(tǒng)框圖;圖5為實(shí)驗(yàn)結(jié)果。
圖4 字庫(kù)芯片的應(yīng)用系統(tǒng)框圖
圖5 實(shí)驗(yàn)結(jié)果
實(shí)驗(yàn)結(jié)果表明,漢字字模正確,顯示內(nèi)容清晰,可以顯示字符、多種漢字的字型。
[1] 倪曉軍,章韻.單片機(jī)原理與接口技術(shù)[M] .北京:清華大學(xué)出版社,2009.
[2] GT23H32S4W標(biāo)準(zhǔn)點(diǎn)陣字庫(kù)芯片應(yīng)用手冊(cè)V3.7,2011.
[3] 靳桅,鄔芝權(quán),李騏,等.基于51系列單片機(jī)的LED顯示屏開(kāi)發(fā)技術(shù)[M] .北京:北京航空航天大學(xué)出版社,2009.
[4] 馬忠梅.單片機(jī)的C語(yǔ)言應(yīng)用程序設(shè)計(jì)[M] .北京:北京航空航天大學(xué)出版社,2003.
[5] 馮月芹.基于P89V51RD2單片機(jī)LED點(diǎn)陣顯示屏的實(shí)現(xiàn)[J] .電子設(shè)計(jì)工程,2012(6).