基于A(yíng)RM7微處理器的中文液晶顯示技術(shù)
1 引言
本文引用地址:http://dyxdggzs.com/article/272615.htm液晶顯示屏LCD作為一種功耗低、體積小、無(wú)輻射的顯示器件,近幾年被廣泛應用于各式各樣的嵌入式電子產(chǎn)品中, LCD可分為段位式、字符式和點(diǎn)陣式三種,其中,段位式LCD和字符式LCD只能用于字符和數字的簡(jiǎn)單顯示,不能滿(mǎn)足圖形曲線(xiàn)和漢字顯示的要求,而點(diǎn)陣式 LCD不僅可以顯示字符、數字,還可以顯示各種圖形、曲線(xiàn)及漢字,并且可以實(shí)現屏幕上下左右滾動(dòng)動(dòng)畫(huà)功能,分區開(kāi)窗口、反轉、閃爍等功能,用途十分廣泛, 為了簡(jiǎn)化液晶 顯示電路的設計和應用,生產(chǎn)廠(chǎng)家通常將液晶顯示單元、顯示控制器,顯示內存和顯示驅動(dòng)電路等裝配在一起,做成液晶顯示模塊LCD Module(LCM)[1]。LCM對外提供標準數據和控制接口以及控制指令,本文以ATM12864C為例,介紹帶控制驅動(dòng)器ST7920的液晶顯示 模塊與Philips公司的ARM7微控制器LPC2214的接口設計及編程方法,并在此基礎詳細介紹在液晶顯示屏上顯示可連續滾動(dòng)的中文菜單及菜單項反 白選擇顯示的設計方法,并討論如何解決漢字顯示過(guò)程中出現的亂碼問(wèn)題。
2 硬件實(shí)現
ATM12864C是廣東金鵬電子有 限公司生產(chǎn)的中文液晶顯示模塊,該款液晶顯示模塊采用中文字型點(diǎn)陣的控制驅動(dòng)器ST7920,他內含8192個(gè)16×16點(diǎn)陣的國標簡(jiǎn)體漢字和126個(gè) 16×8點(diǎn)陣的英文符號字庫。用戶(hù)輸入國標碼或ASCII碼即可實(shí)現文本顯示。滿(mǎn)屏顯示為8個(gè)漢字×4行,另外,還提供64×256點(diǎn)的繪圖RAM (GDRAM),可以與文字混合顯示,而且內含字型產(chǎn)生RAM(CGRAM),提供可編程造字功能,ATM12864C提供的外部接口信號有:8位數據總 線(xiàn)D0-D8;寄存器選擇信號R/S,當R/S為高電平時(shí),控制數據寄存器,R/S為低電平時(shí),控制指令寄存器,讀寫(xiě)信號R/W,R/W為該電平時(shí)讀,低 電平時(shí)寫(xiě),使能信號E,下降沿有效,ATM12864C的寫(xiě)操作時(shí)序如圖1(b)所示,讀操作時(shí)序除R/W信號為高電平外,其余與寫(xiě)操作時(shí)序相同[2]。

LPC2214 是Philips公司推出的一款基于一個(gè)支持實(shí)時(shí)仿真和跟蹤的32位ARM7TDMI-S CPU的微控制器,頻率高達60MHz,帶有256KB嵌入的高速片內Flash存儲器和4個(gè)32位寬度的外部存儲器接口,是一款低功耗、高性能、小封裝 的微控制器,LPC2214的外部存儲器訪(fǎng)問(wèn)時(shí)序如圖1(a)所示[1]。
為了節省微控制器的普通I/O口資源和簡(jiǎn)化 程序的編寫(xiě),LPC2214可以通過(guò)數據總線(xiàn)與控制信號直接采用外部存儲器訪(fǎng)問(wèn)形式控制液晶顯示模塊,這種方式對于一些I/O口資源緊張的復雜系統有著(zhù)更 加重要的意義,由于STA7920的數據訪(fǎng)問(wèn)時(shí)序與LTC2214的存儲器訪(fǎng)問(wèn)時(shí)序有很大區別,如圖1所示。LPC2214和液晶顯示模塊的接口電路設計 的關(guān)鍵是如何通過(guò)合理的設計,使得LPC2214的存儲器訪(fǎng)問(wèn)時(shí)序和ST7920的訪(fǎng)問(wèn)時(shí)序正確的配合。
LPC2214與液晶顯示模塊的 接口電路如圖2所示。LPC2214通過(guò)低位地址A1控制LCM的R/S信號,以選擇當前控制的寄存器,通過(guò)對LPC2214寫(xiě)信號WE做適當的延遲后作 為L(cháng)CM的R/W信號控制數據總線(xiàn)上的數據流方法。而LCM的使能信號E由LPC22414的讀信號OE、寫(xiě)信號WE和存儲器控制器的片選信號CS1來(lái)合 成產(chǎn)生,在產(chǎn)生讀寫(xiě)信號R/W信號的電路中,電阻R和電容C的選擇是關(guān)鍵,根據LPC2214和ST7920的電氣特性(具體見(jiàn)文獻[1,2])和調試的 結果,理想的選值:R取1KΩ,C取12PF,為了實(shí)現低功耗,LCM的背光通過(guò)一個(gè)普通I/O口來(lái)控制,當有外部按鍵響應時(shí),背光點(diǎn)亮,否則背光熄滅。

由于LCM的片選信號由CS1控制,即使用LPC2214外部存儲器接口的Bank1地址空間,而R/S信號由A1控制,所以L(fǎng)CM的操作如下:
命令輸入地址:0x81000000
數據操作地址:0x81000002
3 軟件設計
在 帶漢字庫的液晶屏顯示程序設計過(guò)程中,中文菜單的滾動(dòng)顯示和菜單項的反白選擇是關(guān)鍵,本文所選的液晶顯示模塊可顯示4行,每行可顯示8個(gè)中文字符。當要顯 示的菜單項大于4個(gè)時(shí),需要進(jìn)行滾屏顯示。本文設計了一種人機交互友好的菜單操作程序,該程序的基本思想:在內存中開(kāi)辟一個(gè)可顯示4×16得二維字符型數 組的顯示緩沖區,把要顯示菜單項列表存儲在另一個(gè)二維數組中,通過(guò)改變顯示函數LCM_Show()的參數,方便、靈活地顯示菜單列表中指定的菜單項,假 設要顯示如圖3(a)中的5項菜單,默認的顯示焦點(diǎn)在第一行,即把第一行的菜單項進(jìn)行反白顯示,當按"下移"鍵,顯示焦點(diǎn)下移一行。當焦點(diǎn)下移至液晶顯示 屏最后一行時(shí),如圖3(b)所示,此時(shí)再按"下移"鍵,顯示屏向上滾動(dòng),如圖3(c)所示,當繼續按"下移"鍵時(shí),顯示屏繼續向上滾動(dòng),循環(huán)顯示菜單列表 中的5項菜單,如圖3(d)所示,按"上移"鍵,操作相同。

本文通過(guò)顯示函數LCM_Show()和反白顯示函數LCM_ShowInvert()來(lái)實(shí)現如上所述的菜單連續滾動(dòng)顯示功能及焦點(diǎn)反白顯示功能。具體代碼如下:




在顯示漢字的過(guò)程中,顯示內容經(jīng)常是漢字和ASCII碼混合,由于漢字是由2個(gè)字節組成,ASCII碼是一個(gè)字節,如果顯示內容中的ASCII號碼中的個(gè)數是單數,ASCII碼后面漢字的顯示就會(huì )出現亂碼的現象。
針對這一現象,本文提出了在顯示前對顯示內容進(jìn)行格式化的方法,其基本思想是:把連續的單數個(gè)ASCII碼字符后面加一個(gè)空格,使顯示內容中的連續ASCII碼字符保持雙數,這種方法很好地解決了漢字顯示時(shí)的亂碼現象。程序流程如圖4所示。

4 結語(yǔ)
本 文在對ARM7微控制器LPC2214和帶控制驅動(dòng)器ST7920的液晶顯示模塊的訪(fǎng)問(wèn)時(shí)序進(jìn)行研究的基礎上,設計了他們之間的接口電路,該接口電路無(wú)需 增加普通I/O,直接使用LPC2214的外部存儲器訪(fǎng)問(wèn)形式簡(jiǎn)單方便地對液晶顯示模塊進(jìn)行控制,既節省了普通I/O口,也使得程序的編寫(xiě)更加方便,同時(shí) 也給出了中文菜單滾屏顯示和菜單項反白選擇的程序,并且針對在顯示過(guò)程中出現的亂碼現象進(jìn)行討論,給出解決方案和程序流程。對于基于A(yíng)RM微控制器的嵌入 式系統的具有漢字顯示功能的顯示系統的設計提出了一個(gè)行之有效的解決方案。
電氣符號相關(guān)文章:電氣符號大全
led顯示器相關(guān)文章:led顯示器原理
存儲器相關(guān)文章:存儲器原理
評論