新聞中心

EEPW首頁 > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > 基于51單片機(jī)的漢字LCD智能顯示模塊設(shè)計(jì)

基于51單片機(jī)的漢字LCD智能顯示模塊設(shè)計(jì)

——
作者:李子鍵 東華理工學(xué)院電子與機(jī)械工程學(xué)院 時間:2007-01-26 來源:《電子元器件應(yīng)用》 收藏


引言

在電子產(chǎn)品設(shè)計(jì)中,人機(jī)交互顯示界面是必不可少的工作,目前一般使用的液晶顯示器均為七段筆劃式,只能顯示數(shù)字和少量字符,功能往往受到局限,對于較復(fù)雜的字符或圖形則無能為力。而lcd智能型顯示則是一種低功耗、低損耗、低價值的顯示器件,它不但可以顯示各式各樣的字符、漢字和圖形,同時具有可編程能力,且與單片機(jī)接口方便,基于以上優(yōu)點(diǎn),lcd智能顯示獲得了廣泛的應(yīng)用。

系統(tǒng)組成

本文引用地址:http://butianyuan.cn/article/21534.htm

本系統(tǒng)主要由三部分組成,分別為單片機(jī),lcd和flash字庫,圖1所示是該系統(tǒng)的硬件原理框圖,由于顯示所需要占用的資源過多(本設(shè)計(jì)采用的是16×16點(diǎn)陣,每個漢字存儲需要32個字節(jié)),而單片機(jī)內(nèi)部ram資源及其有限,所以系統(tǒng)設(shè)計(jì)時有必要擴(kuò)展—flash存儲器,i2c接口主要負(fù)責(zé)通訊,該接口具有通訊速度較快,器件之間電氣部分設(shè)計(jì)較好等特點(diǎn),可以使接口部分達(dá)到設(shè)計(jì)標(biāo)準(zhǔn)。

漢字的顯示原理

漢字一般是以點(diǎn)陣式存儲的,如16×16,24×24點(diǎn)陣,漢字的字模其實(shí)是漢字字形的圖形化,所謂16點(diǎn)陣字模,就是把漢字寫在一個16×16的網(wǎng)格內(nèi),漢字的筆劃通過某網(wǎng)格時該網(wǎng)格就對應(yīng)1,否則該網(wǎng)絡(luò)對應(yīng)0,這樣,每一網(wǎng)絡(luò)均對應(yīng)1或0,把對應(yīng)1的網(wǎng)格連起來看,就是這個漢字,漢字就是這樣通過字節(jié)表示其點(diǎn)陣存儲在字符字庫中的,為了方便查找所需漢字的點(diǎn)陣,每個漢字都與一個雙字節(jié)的內(nèi)碼一一對應(yīng),通過漢字的內(nèi)碼可以計(jì)算出它的點(diǎn)陣起始字節(jié)?,F(xiàn)以16點(diǎn)陣為例來進(jìn)行說明,首先,可由內(nèi)碼計(jì)算出他在漢字庫中的區(qū)位碼,其計(jì)算公式為:

bq=bn1-160

bw=bn2-160

式中,bq表示區(qū)碼,bw為表示位碼,而bn1和bn2則分別表示內(nèi)碼的第一字節(jié)和內(nèi)碼的第二字節(jié)。

當(dāng)這些區(qū)位碼被計(jì)算出來之后,就可以用區(qū)位碼得到它在漢字庫中字模第一個字節(jié)的位置,即:

(bq×94+bw)×32

這樣,接下來就可以向連續(xù)讀出由32個字節(jié)組成的該字的點(diǎn)陣數(shù)據(jù)。

主要器件介紹

◇ 顯示模塊lm12864

lm12864是內(nèi)置了hd61202u控制器的128×64點(diǎn)陣式液晶顯示器,lm12864的顯示區(qū)域被分為左右兩個區(qū),均為64×64大小,左右區(qū)的選擇由csa和csb的組合來決定,當(dāng)csa、csb的組合為01時,選擇左區(qū),當(dāng)二者的組合為10時,選擇右區(qū),二者組合為00或11時均無效,lm12864內(nèi)置的hd61202u為一可編程器件,通過對hd61202u控制器的編程可以實(shí)現(xiàn)液晶顯示器的各種功能,所有顯示功能均可由指令控制實(shí)現(xiàn),本系統(tǒng)共有7條指令。

◇ flash存儲器

串行flash存儲器以其體積小、密度高、功耗低、操作易而備受青睞,本文簡單介紹了megawin公司生產(chǎn)的flash存儲器mm36sb020e,mm36sb020e為2m×8bit串行flash,大小為256kbyte,接線方式可采用2線和3線制,器件的忙判斷可以由內(nèi)部的狀態(tài)寄存器來判斷,也可以通過外部引腳busy來判斷,可以說,該flash不僅操作十分簡單,并且可以適用于多個設(shè)計(jì)方案。

通??梢园褲h字庫放在flash里,典型的漢字庫可選用ucdos下的字庫,(如16點(diǎn)陣字庫hzk16),但需要256kb空間,讀取也很不方便,鑒于實(shí)際應(yīng)用中需要的漢字非常少,因此可以自己制作小的漢字庫,在這個小字庫里只包含系統(tǒng)需要的漢字, 需要顯示某個漢字時,先算出它的區(qū)位碼,再求出點(diǎn)陣起始位置,接著從flash中順序調(diào)出該字的點(diǎn)陣數(shù)據(jù)并存在緩沖區(qū)里,最后依次送往lcd顯示,以描出該字。

軟件設(shè)計(jì)

◇ 字庫制作和維護(hù)軟件設(shè)計(jì)

漢字庫可存儲在2線串行存儲器mm36sb020e中,該存儲器分為2048頁,每頁為128字節(jié)的存儲單元,且?guī)в?28個字節(jié)的緩沖區(qū),它有嚴(yán)格的時序和規(guī)定的命令格式,操作時可以通過其特有緩沖區(qū)(128字節(jié))對其內(nèi)部進(jìn)行讀或?qū)懀骷闹悄茱@示接口模塊通過i2c通訊接口從外部獲取漢字點(diǎn)陣庫的源數(shù)據(jù),并根據(jù)漢字的區(qū)位碼確定其點(diǎn)陣信息在漢字庫中的存放位置,接著把存儲器的點(diǎn)陣信息整頁讀出到緩沖區(qū)進(jìn)行修改,最后再寫入存儲器,操作結(jié)束時,應(yīng)清除新指令標(biāo)志以免重復(fù)響應(yīng),字庫制作與維護(hù)的流程如圖2所示。

◇ 顯示軟件設(shè)計(jì)

lm12864中的顯示區(qū)共有64行,分為8頁,每頁8行,這樣就必須向兩頁中的對應(yīng)列送數(shù)據(jù),實(shí)際上,在寫每個漢字時,一般先取字模的上16個字節(jié)并將其寫在一頁中,再將字模的下16個字節(jié)寫在下一頁中即可。共顯示流程如圖3所示。

結(jié)束語

本文所介紹的這種lcd智能顯示模塊不但能夠顯示數(shù)據(jù),也能夠顯示中文文字和圖形,其顯示效果遠(yuǎn)遠(yuǎn)超過數(shù)碼管;隨著其價格的不斷下降,該模塊無疑將被越來越多的智能系統(tǒng)所采用。



關(guān)鍵詞: 模塊

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉