摘? 要:在一些應用場合,漢字顯示使微型應用系統(tǒng)的界面非常簡單、直觀,若使用價格低廉的LCD1602實現(xiàn)更能提高系統(tǒng)的性價比。為此文章對LCD1602的漢字顯示原理做了說明,除常規(guī)的方法外,創(chuàng)新性地提出了拼接法和動態(tài)刷新法來滿足不同系統(tǒng)的要求。首先通過Proteus+Keil μVision4的聯(lián)機仿真調試進行了軟硬件原理驗證,然后在AT89S52的單片機開發(fā)板上運行,達到了預期的效果,具有一定的應用參考價值。
關鍵詞:LCD1602模塊;漢字顯示;AT89S52
中圖分類號:TN873.93;TP391.1? ? ? ?文獻標識碼:A 文章編號:2096-4706(2020)17-0035-03
Abstract:The display interface was very simple and intuitive by Chinese characters in some applications. The cost performance was better achieved by the use of low prices of LCD1602. In this paper,the principle of Chinese characters display technology of LCD1602 was described. Besides the conventional methods,the new methods of putting character together and dynamic refreshing methods were innovative proposed to meet the requirements of different systems. First the verification of principle of hardware and software was carried out by the online simulation through Proteus + Keil μVision4 integrated development environment. Then it runs on the AT89S52 MCU development board and achieves the expected effect,which has certain application reference value.
Keywords:LCD1602 module;Chinese characters display;AT89S52
0? 引? 言
近幾年筆者在指導物理與電氣工程學院大學生創(chuàng)新創(chuàng)業(yè)項目的訓練實踐中,制作的單片機應用系統(tǒng)經(jīng)常要用到一些較單一的界面,以實現(xiàn)用戶的設置交互或者測量數(shù)值及漢字的直觀顯示。在此功能的實現(xiàn)中,如果專門采用一些價格昂貴的顯示模塊就會增加成本,為提高設計的電子系統(tǒng)的性價比,可以采用價格便宜的LCD1602顯示模塊來替代。由于LCD1602字符代碼及點陣字符圖形代碼數(shù)量不多,所以本文通過多種方法的使用盡可能多地構建漢字顯示以滿足用戶界面的需要。下面對LCD1602的漢字顯示進行分析、仿真和實驗研究。
1? LCD1602的組成結構及工作原理
液晶顯示器具有超低輻射、功耗低、散發(fā)熱量少、纖薄輕巧等特點,其在現(xiàn)代數(shù)字產(chǎn)品中得到了廣泛應用。LCD1602是一種價格便宜的液晶顯示屏,常用在智能性儀表、通信和微型自動化設備中,通常用來顯示ASCII碼字符,所以被稱為“字符型顯示器件”[1]。LCD1602中的16代表每行可顯示16個字符,02代表總共可顯示2行字符。LCD1602分為兩種:帶背光和不帶背光的,控制器大都采用HD44780,帶背光的需要加背光電源,外形上更厚些,可根據(jù)應用的需要選擇是否帶背光;芯片工作電壓為4.5 V ~5.5 V,工作電流為2.0 mA(5.0 V),最佳工作電壓5.0 V,字符尺寸是2.95×4.35(W×H)mm。
LCD1602對外的連線使用標準的14腳(無背光)或16腳(帶背光)形式,標為VSS的第1腳是電源地;標為VDD的第2腳接5.0 V電源正極;標為VEE的第3腳為對比度調整端,可調節(jié)顯示器的對比度,對比度過高時會產(chǎn)生重影,可以通過接一個10 kΩ的電位器調整到合適對比度;標為RS的第4腳是寄存器選擇,選擇數(shù)據(jù)寄存器時要置高電平、選擇指令寄存器時應接低電平;標為R/ 的第5腳是讀/寫選擇端,讀操作要輸入高電平,執(zhí)行寫操作這個腳要輸入低電平;標為E端的第6腳是使能端,當E端為高電平時可以從液晶模塊讀取信息,當E端提供下跳沿信號時,可以對液晶模塊進行寫操作;標為D0~D7的第7~14腳是8位雙向數(shù)據(jù)線。16腳(帶背光)形式剩下的第15、16腳分別是背光源正極和負極。RT1602C的內(nèi)部結構可以分成三部分:LCD控制器、LCD驅動器、LCD顯示裝備。控制器使用的是HD44780,HD44780是包含了控制器和驅動器的集成電路,可選擇5×7或5×10點陣字符,能對每行80個字符進行控制,即控制5×80=400點,包含了40路列驅動器和16路行驅動器,因此HD44780可以驅動16×40點陣的LCD(兩行8個字符或單行16個字符)。LCD1602芯片內(nèi)的存儲器有顯示緩沖區(qū)(DDRAM)、字符發(fā)生存儲器(CGROM)和用戶自定義的字符發(fā)生器(CGRAM)三種。HD44780的DDRAM的大小為80個字節(jié),地址分兩行,有兩個范圍00H~27H、40H~67H,實際顯示位置分布和排列情況隨著LCD的型號而變[2]。
DDRAM與顯示屏的顯示內(nèi)容有確定的對應關系,DDRAM中80H到8FH的內(nèi)容對應顯示屏上第一行的顯示內(nèi)容,DDRAM中C0H到CFH的內(nèi)容對應顯示屏第二行的顯示內(nèi)容,共顯示32個字符,使用時將顯示的字符寫入目標要求的行列位置即可。CGROM的作用是把各類字符的代碼存儲以備調用,出廠時已固化為點陣型顯示數(shù)據(jù)。1602液晶模塊內(nèi)部已經(jīng)存儲了數(shù)字、大小寫的英文字母、常用的符號和日文假名等,與常見的ASCII碼的編碼是一致的[3]。
CGRAM是用戶自定義點陣型顯示數(shù)據(jù)的存儲器,存儲用戶自己定義的字符代碼,其格式有5×11點陣格式和5×8點陣格式2種。CGRAM存儲器總共有64個字節(jié),若采用5×8點陣格式,一共可容納8個自定義字符,地址編碼為0x00~0x07,使用時將要顯示的自定義字符按照地址編碼調用即可。要在LCD的目標位置顯示某個符號,應將其ASCII碼存入DDRAM相對應的地方,在操作內(nèi)部寄存器時控制引腳RS和R/ 的電平滿足表1的要求。
2? LCD1602模塊漢字的顯示方法
2.1? 簡單漢字的顯示方法
由于LCD1602內(nèi)部沒有標準漢字庫,所以要顯示漢字首先就要建立字模數(shù)據(jù)??梢岳米帜\浖褪謩酉嘟Y合的辦法提取5×8點陣的字模數(shù)據(jù),以1對應亮、0對應暗,例如下面一些字的取模結果:
其次把取得的字模數(shù)據(jù)通過LCD1602的相應指令存儲到液晶存儲器內(nèi)部。最后實現(xiàn)漢字顯示,用Proteus+Keil μVision4聯(lián)合仿真或下載到開發(fā)板調試[4-6]。
2.2? 漢字的拼接顯示方法
由于CGRAM的容量數(shù)不多,在完成顯示的前提下,盡量優(yōu)先選擇字庫中已有的字形,節(jié)省取模漢字占用的空間,漢字拼接有以下三種方法。
2.2.1? 字庫+字庫拼接法
尋找字庫中現(xiàn)有的一些字拼成需要的字,比如亻+卜=仆,工+力=功,木+才=材,還有其它字等。
2.2.2? 一部分取模+一部分字庫拼接法
對于漢字中的一部分進行取模,另一部分直接取字庫中的字形(偏旁或者部首)。
2.2.3? 一部分取模+一部分取模拼接法
對于漢字的各部分字形字庫中都沒有時,可以采用對每一部分分別取模,然后按順序拼接成整個漢字的方法。
2.3? 多個漢字的多次刷新顯示方法
如果需要顯示的漢字取模數(shù)較多,CGRAM空間不夠用,可以采用分屏、多次不斷刷新CGRAM區(qū)的辦法來動態(tài)顯示多個漢字。
3? 基于Proteus的仿真及實際運行效果
3.1? 實驗仿真平臺的搭建
在進行仿真前首先搭建實驗平臺,操作系統(tǒng):Microsoft Windows XP Professional SP3;集成開發(fā)環(huán)境IDE-Version:Keil μVision V4.00a,作用是調試軟件程序并生成可執(zhí)行的代碼;硬件仿真環(huán)境Proteus 7.5 SP3:實現(xiàn)單片機和LCD1602的電路連接及程序執(zhí)行、效果觀察。在Proteus中LCD1602對應的模塊為LM016L。
3.2? 仿真結果
先在Keil中編輯編譯,再聯(lián)合調試裝載到Proteus中運行,仿真結果如圖1、圖2所示。
3.3? 實際運行效果
在仿真程序適當位置加入判忙函數(shù),經(jīng)調試無誤后將生成的十六進制代碼下載到AT89S52單片機開發(fā)板中,驅動液晶效果與仿真相同,效果如圖3、圖4所示。
4? 結? 論
本文給出了利用字符型液晶LCD1602顯示漢字的方法,可根據(jù)需要手工提取漢字字模,并將字模數(shù)據(jù)保存在LCD1602的CGRAM存儲器,按照要求顯示在液晶屏合適位置;新提出的拼接法和多次刷新法增加了顯示漢字的途徑,但是也應看到受字符型顯示點數(shù)的限制,并不是所有的漢字都能夠顯示,有的顯示也并不美觀。所有方法均有示例程序在Proteus+Keil μVision4環(huán)境中的AT89C51和LM016L仿真運行,程序修改后下載到AT89S52單片機開發(fā)板中驅動液晶,結果和仿真一致。這幾種顯示漢字的技術可以為用戶提供友好界面,在一些應用場合能夠滿足用戶的要求,降低了產(chǎn)品成本,降低了對使用者的使用要求,可以更廣泛地應用在智能儀表、通信、控制等領域,具有一定的實用價值。
參考文獻:
[1] 于志贛,劉國平,張旭斌.液顯LCD1602模塊的應用 [J].機電技術,2009,32(3):21-23.
[2] 謝維成,楊加國.單片機原理與應用及C51程序設計:第3版 [M].北京:清華大學出版社,2014:239-244.
[3] 安紅霞.基于AT89S52單片機的1602型液晶屏顯示技術研究 [J].牡丹江師范學院學報(自然科學版),2014(3):23-24.
[4] 周潤景,張麗娜.基于PROTEUS的電路及單片機系統(tǒng)設計與仿真 [M].北京:北京航空航天大學出版社,2006:1-6.
[5] 鄧鵬.Proteus虛擬仿真在單片機實驗教學中的應用研究 [J].現(xiàn)代電子技術,2012,35(16):27-29.
[6] 譚筠梅,李玉龍,王履程.基于Proteus的單片機虛擬仿真實驗案例設計 [J].實驗技術與管理,2018(5):122-125.
作者簡介:趙華峰(1970—),男,漢族,陜西渭南人,講師,碩士,研究方向:計算機應用技術。