<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

基于51單片機的漢字LCD智能顯示模塊設計

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


引言

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

系統組成

本文引用地址:http://dyxdggzs.com/article/21534.htm

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

漢字的顯示原理

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

bq=bn1-160

bw=bn2-160

式中,bq表示區碼,bw為表示位碼,而bn1和bn2則分別表示內碼的第一字節和內碼的第二字節。

當這些區位碼被計算出來(lái)之后,就可以用區位碼得到它在漢字庫中字模第一個(gè)字節的位置,即:

(bq×94+bw)×32

這樣,接下來(lái)就可以向連續讀出由32個(gè)字節組成的該字的點(diǎn)陣數據。

主要器件介紹

◇ 顯示模塊lm12864

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

◇ flash存儲器

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

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

軟件設計

◇ 字庫制作和維護軟件設計

漢字庫可存儲在2線(xiàn)串行存儲器mm36sb020e中,該存儲器分為2048頁(yè),每頁(yè)為128字節的存儲單元,且帶有128個(gè)字節的緩沖區,它有嚴格的時(shí)序和規定的命令格式,操作時(shí)可以通過(guò)其特有緩沖區(128字節)對其內部進(jìn)行讀或寫(xiě),器件的智能顯示接口模塊通過(guò)i2c通訊接口從外部獲取漢字點(diǎn)陣庫的源數據,并根據漢字的區位碼確定其點(diǎn)陣信息在漢字庫中的存放位置,接著(zhù)把存儲器的點(diǎn)陣信息整頁(yè)讀出到緩沖區進(jìn)行修改,最后再寫(xiě)入存儲器,操作結束時(shí),應清除新指令標志以免重復響應,字庫制作與維護的流程如圖2所示。

◇ 顯示軟件設計

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

結束語(yǔ)

本文所介紹的這種lcd智能顯示模塊不但能夠顯示數據,也能夠顯示中文文字和圖形,其顯示效果遠遠超過(guò)數碼管;隨著(zhù)其價(jià)格的不斷下降,該模塊無(wú)疑將被越來(lái)越多的智能系統所采用。



關(guān)鍵詞: 模塊

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>