LCD1602原理及顯示程序_第1頁(yè)
LCD1602原理及顯示程序_第2頁(yè)
LCD1602原理及顯示程序_第3頁(yè)
LCD1602原理及顯示程序_第4頁(yè)
LCD1602原理及顯示程序_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、在日常生活中,我們對(duì)液晶顯示器并不陌生。液晶顯示模塊已作為很多電子產(chǎn)品的通過(guò)器件,如在計(jì)算器、萬(wàn)用表、電子表及很多家用電子產(chǎn)品中都可以瞧到,顯示的主要就是數(shù)字、專用符號(hào)與圖形。在單片機(jī)的人機(jī)交流界面中,一般的輸出方式有以下幾種:發(fā)光管、LED數(shù)碼管、液晶顯示器。發(fā)光管與LED數(shù)碼管比較常用,軟硬件都比較簡(jiǎn)單,在前面章節(jié)已經(jīng)介紹過(guò),在此不作介紹,本章重點(diǎn)介紹字符型液晶顯示器的應(yīng)用。在單片機(jī)系統(tǒng)中應(yīng)用晶液顯示器作為輸出器件有以下幾個(gè)優(yōu)點(diǎn):顯示質(zhì)量高由于液晶顯示器每一個(gè)點(diǎn)在收到信號(hào)后就一直保持那種色彩與亮度,恒定發(fā)光,而不像陰極射線管顯示器(CRT)那樣需要不斷刷新新亮點(diǎn)。因此,液晶顯示器畫(huà)質(zhì)高且不

2、會(huì)閃爍。數(shù)字式接口液晶顯示器都就是數(shù)字式的,與單片機(jī)系統(tǒng)的接口更加簡(jiǎn)單可靠,操作更加方便。體積小、重量輕液晶顯示器通過(guò)顯示屏上的電極控制液晶分子狀態(tài)來(lái)達(dá)到顯示的目的,在重量上比相同顯示面積的傳統(tǒng)顯示器要輕得多。功耗低相對(duì)而言,液晶顯示器的功耗主要消耗在其內(nèi)部的電極與驅(qū)動(dòng)IC上,因而耗電量比其它顯示器要少得多。10.8.1 液晶顯示簡(jiǎn)介液晶顯示原理液晶顯示的原理就是利用液晶的物理特性,通過(guò)電壓對(duì)其顯示區(qū)域進(jìn)行控制,有電就有顯示,這樣即可以顯示出圖形。液晶顯示器具有厚度薄、適用于大規(guī)模集成電路直接驅(qū)動(dòng)、易于實(shí)現(xiàn)全彩色顯示的特點(diǎn),目前已經(jīng)被廣泛應(yīng)用在便攜式電腦、數(shù)字?jǐn)z像機(jī)、PDA移動(dòng)通信工具等眾多領(lǐng)

3、域。液晶顯示器的分類液晶顯示的分類方法有很多種,通常可按其顯示方式分為段式、字符式、點(diǎn)陣式等。除了黑白顯示外,液晶顯示器還有多灰度有彩色顯示等。如果根據(jù)驅(qū)動(dòng)方式來(lái)分,可以分為靜態(tài)驅(qū)動(dòng)(Static)、單純矩陣驅(qū)動(dòng)(SimpleMatrix)與主動(dòng)矩陣驅(qū)動(dòng)(ActiveMatrix)三種。液晶顯示器各種圖形的顯示原理:線段的顯示點(diǎn)陣圖形式液晶由MXN個(gè)顯示單元組成,假設(shè)LCD顯示屏有64行,每行有128列,每8列對(duì)應(yīng)1字節(jié)的8位,即每行由16字節(jié),共16X8=128個(gè)點(diǎn)組成,屏上64X16個(gè)顯示單元與顯示RAM區(qū)1024字節(jié)相對(duì)應(yīng),每一字節(jié)的內(nèi)容與顯示屏上相應(yīng)位置的亮暗對(duì)應(yīng)。例如屏的第一行的亮暗

4、由RAM區(qū)的000H00FH的16字節(jié)的內(nèi)容決定,當(dāng)(000H)=FFH時(shí),則屏幕的左上角顯示一條短亮線,長(zhǎng)度為8個(gè)點(diǎn);當(dāng)(3FFH尸F(xiàn)FH時(shí),則屏幕的右下角顯示一條短亮線;當(dāng)(000H尸F(xiàn)FH,(001H)=00H,(002H)=00H,(00EH)=00H,(00FH)=00H時(shí),則在屏幕的頂部顯示一條由8段亮線與8條暗線組成的虛線。這就就是LCD顯示的基本原理。字符的顯示用LCD顯示一個(gè)字符時(shí)比較復(fù)雜,因?yàn)橐粋€(gè)字符由6X8或8X8點(diǎn)陣組成,既要找到與顯示屏幕上某幾個(gè)位置對(duì)應(yīng)的顯示RAM區(qū)的8字節(jié),還要使每字節(jié)的不同位為“1”,其它的為“0”,為“1”的點(diǎn)亮,為“0”的不亮。這樣一來(lái)就組成

5、某個(gè)字符。但由于內(nèi)帶字符發(fā)生器的控制器來(lái)說(shuō),顯示字符就比較簡(jiǎn)單了,可以讓控制器工作在文本方式,根據(jù)在LCD上開(kāi)始顯示的行列號(hào)及每行的列數(shù)找出顯示RAM對(duì)應(yīng)的地址,設(shè)立光標(biāo),在此送上該字符對(duì)應(yīng)的代碼即可。漢字的顯示漢字的顯示一般采用圖形的方式,事先從微機(jī)中提取要顯示的漢字的點(diǎn)陣碼(一般用字模提取軟件),每個(gè)漢字占32B,分左右兩半,各占16B,左邊為1、3、5右邊為2、4、6根據(jù)在LCD上開(kāi)始顯示的行列號(hào)及每行的列數(shù)可找出顯示RAM對(duì)應(yīng)的地址,設(shè)立光標(biāo),送上要顯示的漢字的第一字節(jié),光標(biāo)位置加1,送第二個(gè)字節(jié),換行按列對(duì)齊,送第三個(gè)字節(jié)直到32B顯示完就可以LCD上得到一個(gè)完整漢字。10.8.2

6、1602字符型LCD簡(jiǎn)介字符型液晶顯示模塊就是一種專門(mén)用于顯示字母、數(shù)字、符號(hào)等點(diǎn)陣式LCD,目前常用16*1,16*2,20*2與40*2行等的模塊。下面以長(zhǎng)沙太陽(yáng)人電子有限公司的1602字符型液晶顯示器為例,介紹其用法。一般1602字符型液晶顯示器實(shí)物如圖10-53:圖10-531602字符型液晶顯示器實(shí)物圖10.8、2、11602LCD的基本參數(shù)及引腳功能1602LCD分為帶背光與不帶背光兩種,基控制器大部分為HD44780,帶背光的比不帶背光的厚,就是否帶背光在應(yīng)用中并無(wú)差別,兩者尺寸差別如下圖10-54所示:電0 G圖10-541602LCD尺寸圖1602LCD主要技術(shù)參數(shù):顯示容量

7、:16>2個(gè)字符芯片工作電壓:4、55、5V工作電流:2、0mA(5、0V)模塊最佳工作電壓:5、0V字符尺寸:2、95X4、35(WXH)mm引腳功能說(shuō)明1602LCD采用標(biāo)準(zhǔn)的14腳(無(wú)背光)或16腳(帶背光)接口各引腳接口說(shuō)明如表10-13所示:編P符號(hào)引腳說(shuō)明編號(hào)符號(hào)引腳說(shuō)明1VSS電源地9D2數(shù)據(jù)2VDD電源正極10D3數(shù)據(jù)3VL液晶顯示偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)/命令選擇12D5數(shù)據(jù)5R/W讀/寫(xiě)選擇13D6數(shù)據(jù)6E使能信號(hào)14D7數(shù)據(jù)7D0數(shù)據(jù)15BLA背光源正極8D1數(shù)據(jù)16BLK背光源負(fù)極表10-13:引腳接口說(shuō)明表第1腳:VSS為地電源。第2腳:VDD接5V正電源。第

8、3腳:VL為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地時(shí)對(duì)比度最高對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生鬼影”使用時(shí)可以通過(guò)一個(gè)10K的電位器調(diào)整對(duì)比度。第4腳:RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。第5腳:R/W為讀寫(xiě)信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫(xiě)操作。當(dāng)RS與R/W共同為低電平時(shí)可以寫(xiě)入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平R/W為低電平時(shí)可以寫(xiě)入數(shù)據(jù)。第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。第714腳:D0D7為8位雙向數(shù)據(jù)線。第15腳:背光源正極。第16腳:背光源負(fù)極。10.8.2.3 16

9、02LCD的指令說(shuō)明及時(shí)序1602液晶模塊內(nèi)部的控制器共有11條控制指令,如表10-14所示:序號(hào)指令RSR/WD7D6D5D4D3D2D1D01清顯示00000000012光標(biāo)返回000000001*3置輸入模式00000001I/DS4顯示開(kāi)/關(guān)控制0000001DCB5光標(biāo)或字符移位000001S/CR/L*6置功能00001DLNF*7置字符發(fā)生存貯器地址0001字符發(fā)生存貯器地址8置數(shù)據(jù)存貯器地址001顯示數(shù)據(jù)存貯器地址9讀忙標(biāo)志或地址01BF計(jì)數(shù)器地址10寫(xiě)數(shù)到CGRAM或DDRAM)10要寫(xiě)的數(shù)據(jù)內(nèi)容11從CGRAM或DDRAM讀數(shù)11讀出的數(shù)據(jù)內(nèi)容表10-14:控制命令表160

10、2液晶模塊的讀寫(xiě)操作、屏幕與光標(biāo)的操作都就是通過(guò)指令編程來(lái)實(shí)現(xiàn)的。(說(shuō)明:1為高電平、0為彳氐電平)指令1:清顯示,指令碼01H,光標(biāo)復(fù)位到地址00H位置。指令2:光標(biāo)復(fù)位,光標(biāo)返回到地址00H。指令3:光標(biāo)與顯示模式設(shè)置I/D:光標(biāo)移動(dòng)方向,高電平右移,低電平左移S:屏幕上所有文字就是否左移或者右移。高電平表示有效,低電平則無(wú)效。指令4:顯示開(kāi)關(guān)控制。D:控制整體顯示的開(kāi)與關(guān),高電平表示開(kāi)顯示,低電平表示關(guān)顯示C:控制光標(biāo)的開(kāi)與關(guān),高電平表示有光標(biāo),低電平表示無(wú)光標(biāo)B:控制光標(biāo)就是否閃爍,高電平閃爍,低電平不閃爍。指令5:光標(biāo)或顯示移位S/C:高電平時(shí)移動(dòng)顯示的文字,低電平時(shí)移動(dòng)光標(biāo)。指令6

11、:功能設(shè)置命令DL:高電平時(shí)為4位總線,低電平時(shí)為8位總線N:低電平時(shí)為單行顯示,高電平時(shí)雙行顯示F:低電平日顯示5x7的點(diǎn)陣字符,高電平時(shí)顯示5x10的點(diǎn)陣字符。指令7:字符發(fā)生器RAM地址設(shè)置。指令8:DDRAM地址設(shè)置。指令9:讀忙信號(hào)與光標(biāo)地址BF:為忙標(biāo)志位,高電平表示忙,此時(shí)模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。指令10:寫(xiě)數(shù)據(jù)。指令11:讀數(shù)據(jù)。與HD44780相兼容的芯片時(shí)序表如下:讀狀態(tài)輸入RS=L,R/W=H,E=H輸出D0-D7=狀態(tài)字寫(xiě)指令輸入RS=L,R/W=L,D0-D7=指令碼,E二高脈沖輸出無(wú)讀數(shù)據(jù)輸入RS=H,R/W=H,E=H輸出D0-D7=數(shù)據(jù)寫(xiě)

12、數(shù)據(jù)輸入RS=H,R/W=L,D0-D7=數(shù)據(jù),E=高脈沖輸出無(wú)表10-15:基本操作時(shí)序表讀寫(xiě)操作時(shí)序如圖10-55與10-56所示:圖10-55讀操作時(shí)序圖10-56寫(xiě)操作時(shí)序10.8.2.4 1602LCD的RAM地址映射及標(biāo)準(zhǔn)字庫(kù)表液晶顯示模塊就是一個(gè)慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。要顯示字符時(shí)要先輸入顯示字符地址,也就就是告訴模塊在哪里顯示字符,圖10-57就是1602的內(nèi)部顯示地址。圖10-571602LCD內(nèi)部顯示地址例如第二行第一個(gè)字符的地址就是40H,那么就是否直接寫(xiě)入40H就可以將光標(biāo)定位在第二行第一個(gè)字符的位置呢

13、?這樣不行,因?yàn)閷?xiě)入顯示地址時(shí)要求最高位D7恒定為高電平1所以實(shí)際寫(xiě)入的數(shù)據(jù)應(yīng)該就是01000000B(40H)+10000000B(80H)=11000000B(C0H)。在對(duì)液晶模塊的初始化中要先設(shè)置其顯示模式,在液晶模塊顯示字符時(shí)光標(biāo)就是自動(dòng)右移的無(wú)需人工干預(yù)。每次輸入指令前都要判斷液晶模塊就是否處于忙的狀態(tài)。1602液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符圖形,如圖10-58所示,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫(xiě)、常用的符號(hào)、與日文假名等,每一個(gè)字符都有一個(gè)固定的代碼,比如大寫(xiě)的英文字母“A”的代碼就是01000001B(41H),顯示時(shí)模塊把

14、地址41H中的點(diǎn)陣字符圖形顯示出來(lái),我們就能瞧到字母“A”1MCGROM和GRAM中字符代碼與字符圖群對(duì)應(yīng)關(guān)條owo0010的11。儂GIOonij11111411110mifr*Pp一Mjl«PXXxxMOJ(21JIAQ4q7A«nXXXXW1QmVIBRhrF4川:Jip0XXXXOCLIS3CScJo斗wAXX14,DTd(工卜七F口xxyxoiw一%$Eu_t0口才寸ABgk4FVI¥f方一aP工KXXX4111了7Gw1w7r*另ItXXXX10008HXhXiJ夕*fXXXXX100J91YJ_y。J小一yXXXXI&1&舊*E3z1

15、1:XJkjTXXXXIQ1I+ilKktnta*萬(wàn)XXKK11DQ<S)7VL¥1J姓0T7A>XXX11OL里M3inAV芒+xxxxim(?>*'>Nn.aw小'、a(S)0一0號(hào)7|»0圖10-58字符代碼與圖形對(duì)應(yīng)圖10.8.2.5 1602LCD的一般初始化(復(fù)位)過(guò)程延時(shí)15mS寫(xiě)指令38H(不檢測(cè),卜t信號(hào))延時(shí)5mS寫(xiě)指令38H(不檢測(cè),卜t信號(hào))延時(shí)5mS寫(xiě)指令38H(不檢測(cè),卜t信號(hào))以后每次寫(xiě)指令、讀/寫(xiě)數(shù)據(jù)操作均需要檢測(cè)忙信號(hào)寫(xiě)指令38H:顯示模式設(shè)置寫(xiě)指令08H:顯示關(guān)閉寫(xiě)指令01H:顯示清屏寫(xiě)指令06H:

16、顯示光標(biāo)移動(dòng)設(shè)置寫(xiě)指令0CH:顯示開(kāi)及光標(biāo)設(shè)置10.8.31602LCD的軟硬件設(shè)計(jì)實(shí)例在1602LCD第一行顯示網(wǎng)站名:在第二行顯示聯(lián)系電話:8。實(shí)驗(yàn)前應(yīng)先將顯示切換開(kāi)關(guān)切換到LCD工作狀態(tài)。10.8.3.1硬件原理圖開(kāi)始初始化延時(shí)設(shè)第一行顯示位置顯示第一行內(nèi)容設(shè)第二行顯示位置顯示第二行內(nèi)容LCD液晶顯示,用16F877A寫(xiě)程序如下:寫(xiě)一個(gè)字符串程序:#include<pic、h>#defineucharunsignedchar#defineuintunsignedint#defineDBPORTD/定義端口#definersRB0#defineeRB1_CONFIG(0x3B3

17、1);constuchardata尸'happyeveryday"/輸入的字符串第一行constuchardata1="xiexie"/第二行voidinit();voidwrite_commond(uchardat);/寫(xiě)指令函數(shù)voidwrite_data(uchardat);/寫(xiě)數(shù)據(jù)函數(shù)voiddelay(uintx);voiddelay(uintx)uinta,b;for(a=x;a>0;a-)for(b=110;b>0;b-);voidinit()/初始化指令write_commond(0x01);/0000000001,清除屏幕顯示

18、write_commond(0x28);/設(shè)置4位格式,2行,5X7,功能設(shè)定開(kāi)顯示 ,無(wú)光標(biāo) ,不閃爍置輸入模式,光標(biāo)右移,屏幕上的文字不移動(dòng)設(shè)定 CGRAM 地址顯示屏或光標(biāo)移動(dòng)方向進(jìn)入 LCDwrite_commond(0x0C);/0000001100,write_commond(0x06);/0000000110,write_commond(0x14);/0001000100,voidwrite_commond(uchardat)rs=0;/指令DB=dat;e=1;/允許下降沿觸發(fā)1-0delay(5);e=0;DB=DB<<4;/左移四位從RD4RD7delay(5)

19、;e=1;delay(5);e=0;voidwrite_data(uchardat)rs=1;/數(shù)據(jù)DB=dat;e=1;/允許delay(5);e=0;delay(5);DB=DB<<4;e=1;delay(5);e=0;voidmain()uchari;TRISD=0X00;/定義端口寄存器PORTD=0X00;PORTB=0X00;TRISB=0X00;init();write_commond(0x80);/第一行的DDRAM的地址,不加0x10時(shí),也可以從/最左邊開(kāi)始for(i=0;i<12;i+)write_data(datai);/第一行的數(shù)據(jù)字符delay(5)

20、;write_commond(0xc0);/第二行的DDRAM地址不加0x10也可for(i=0;i<16;i+)write_data(datai);/第二行的數(shù)據(jù)字符delay(5);/*for(i=0;i<16;i+)write_commond(0x18);/光標(biāo)不動(dòng),數(shù)據(jù)左移一位delay(5);*/while(1);寫(xiě)近一個(gè)字符A程序如下:#include<pic、h>#defineucharunsignedchar#defineuintunsignedint#defineDBPORTD#definersRB0#defineeRB1_CONFIG(0x3B31)

21、;voidinit();voidwrite_commond(uchardat);/寫(xiě)指令函數(shù)voidwrite_data(uchardat);/寫(xiě)數(shù)據(jù)函數(shù)voiddisp_char(ucharx,uchary,uchardat);/在屏幕某個(gè)位置顯示一個(gè)字符,x(0-16),y(1-2)voiddelay(uintx);voiddelay(uintx)uinta,b;for(a=x;a>0;a-)for(b=110;b>0;b-);voidinit()/初始化指令write_commond(0x01);/0000000001,清除屏幕顯示開(kāi)顯示 ,無(wú)光標(biāo) ,不閃爍置輸入模式,光標(biāo)右移,屏幕上的文字不移動(dòng)設(shè)定 CGRAM 地址顯示屏或光標(biāo)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論