LCD1602液晶顯示器情況介紹說明_第1頁
LCD1602液晶顯示器情況介紹說明_第2頁
LCD1602液晶顯示器情況介紹說明_第3頁
LCD1602液晶顯示器情況介紹說明_第4頁
LCD1602液晶顯示器情況介紹說明_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、LCD1602液晶顯示器簡介一概述液晶(LiquidCrystal)是一種高分子材料,因其特殊的物理、化學(xué)、光學(xué)特性,廣泛應(yīng)用輕薄顯示器上。液晶顯示器(LiquidCrystalDisplay,LCD)的主要原理是以電流刺激液晶分子產(chǎn)生點(diǎn)、線、面并配合背部燈管構(gòu)成畫面。各種型號的液晶通常是按照顯示字符的行數(shù)或液晶點(diǎn)陣的行、列數(shù)來命名。例如,1602表示每行顯示16個(gè)字符,一共可以顯示兩行。這類液晶通常稱為字符型液晶,只能顯示ASCII碼字符。12232表示液晶顯示畫面由122列、32行組成,共有122*32個(gè)點(diǎn)來顯示各種圖形。用戶可以通過程序控制這些點(diǎn)中任何一個(gè)點(diǎn)顯示或不顯示,從而構(gòu)成各種圖形

2、畫面。因此,12232稱為圖形型液晶。液晶體積小,功耗低,顯示操作簡單。但其有致命的弱點(diǎn),即使用溫度范圍很窄。通用型液晶工作溫度為0到+55攝氏度,存儲溫度為-20到+60攝氏度。二LCD160211602的外形尺寸(毫米)匚匚匚L05OO1.3C3ggcSiJf、l一1QOOOOOO0.Q75.073711602的外形尺寸(毫米)匚匚匚L05OO1.3C3ggcSiJf、l一1QOOOOOO0.Q75.07370p-251oooooooooqIS創(chuàng).5Rl.25?無背光9.5-5.5一-r*底那LED背光130-9.0一-r1.5-2主要技術(shù)參數(shù)顯示容量:16X2個(gè)字符芯片工作電壓:4.55

3、.5V工作電流:2.ChiAC5.OVJ模塊最陛工作電壓:5.OV字符尺寸:2.95X4.35XHnn 接口信號說明編號符號引腳說明媚號符號引腳說明1VSS電源地9D2Data1/C2VDD電源正極10D3Data1/C3VL液晶顯示偏壓信號11D4Data1/C4RS數(shù)據(jù)/命令選澤端(H/L)12D5Data1/C5R/W讀/寫選擇端(H/L)13DSData1/C6E使能信號14D7Data1/C1DODataI/O15BLA背光源正極8D1DataI/O16BLK背光源負(fù)輾讀狀態(tài)*寫指令:讀數(shù)據(jù)*寫數(shù)據(jù)*輸入:輸入;輸入:輸入:RS=_,RW=H,E=HRS=_,RW=L,DO讀狀態(tài)*寫

4、指令:讀數(shù)據(jù)*寫數(shù)據(jù)*輸入:輸入;輸入:輸入:RS=_,RW=H,E=HRS=_,RW=L,DOD?二指令碼,E二高脈沖RS=H,RW=H,E=HRS=H,RW=L,D0-D7=數(shù)捱,E二高脈沖輸出:輸出;輸出:輸出:D0-D7=U態(tài)字無D0-D7二數(shù)據(jù)無4RAM地址映射圖控制器內(nèi)部帶有80B的RAM緩沖區(qū)。對應(yīng)關(guān)系如下圖所示。LCDQCDID2C30105DGC7C8osQADCCD0EOFID274C4142434445464748494A4B4C4D4L4F507向圖中的000F、404F地址中的任意處寫入顯示數(shù)據(jù)時(shí),液晶可立即顯示出來;當(dāng)寫入到1027或5067地址時(shí),必須通過移屏指令

5、將他們一移入可顯示區(qū)域方可正常顯示。1602液晶模塊內(nèi)部的字符發(fā)生存儲器(CGROM)已經(jīng)存儲了160個(gè)不同的點(diǎn)陣字符圖形,如下表所示。::;魚;,::;魚;,;空;;総進(jìn)翠A1這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號、和日文假名等,每個(gè)字符都有一個(gè)固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時(shí)模塊把地址41H中的點(diǎn)陣字符圖形顯示出來,我們就能看到字母“A”。狀態(tài)字說明STA7STA3STA5BTA4BTA3BTA2STA1STADD?D6D5D4D3D2D1DOSTAO-6當(dāng)前效據(jù)t也址指針的數(shù)佶STA7讀寫接作便能1:攀.il0:允二說明:原則

6、上每次對控制器進(jìn)行讀寫操作前,都必須進(jìn)行讀寫檢測,確保STA7為0。實(shí)際上,由于單片機(jī)的操作速度慢于液晶控制器的反應(yīng)速度,因此可以不進(jìn)行檢測,或只進(jìn)行簡短的延時(shí)即可。指令說明1602液晶模塊內(nèi)部的控制器共有11條控制指令(1)顯示模式設(shè)置指令瑪功能0011100D設(shè)冒1GX2顯示5X7點(diǎn)陣,8位數(shù)搖接口2)2)顯示開/關(guān)及光標(biāo)設(shè)置指令瑪功能指令瑪D=1卄顯不;D=U關(guān)顯喬G=1昴示芳;版;0=0不昂看半版2_光標(biāo)I習(xí)爍;光標(biāo)不顯示N=1當(dāng)讀或?qū)懸徊纷址俚刂分羔樇?,光?biāo)加一N-D當(dāng)讀或?qū)懸粋€(gè)寧符后地址指計(jì)咸f旦光標(biāo)減一S=1當(dāng)寫一個(gè)字符”整屏顯示左移(N=l)或右移(N=0),以得到光標(biāo)不移動(dòng)

7、帀屏幕移動(dòng)肉戳果。S二0當(dāng)寫一個(gè)字符+整屏顯示不移動(dòng)數(shù)據(jù)指針設(shè)置指令碼功能80H+地址碼(0-27H,40H-67H)設(shè)置數(shù)據(jù)地址指針其它設(shè)置指令碼功能01H顯示清屏:1.數(shù)據(jù)指針清零,所有顯示清零02H顯示回車:1.數(shù)據(jù)指針清零控制接口時(shí)序說明時(shí)序參數(shù)時(shí)序參數(shù)苻號極限值單位測試條件最小值最丈值E信號周期to400-ns引腳EE朋門宣匱I50-nsEJ升沿/下隆沿時(shí)間tRftF-25ns地址建立時(shí)間商130-ns引卿二F3F.l地址保持時(shí)間二H1ID-ns數(shù)扌居建立時(shí)間(讀操作)to-1C0ns引腳DEED即數(shù)抵保持時(shí)間j丈操作二H:20-ns啟招建立時(shí)間(寫操作)L5F240_ns數(shù)搞尿持吋

8、間(寫操作)-HCSIO-ns讀操作時(shí)序?qū)懖僮鲿r(shí)序初始化過程1)延時(shí)15ms2)寫指令38H(不檢測忙信號)3)延時(shí)5ms4)寫指令38H(不檢測忙信號)5)延時(shí)5ms6)寫指令38H(不檢測忙信號)7)(以后每次寫指令、讀/寫數(shù)據(jù)操作之前均需檢測忙信號)8)寫指令38H:顯示模式設(shè)置9)寫指令08H:顯示關(guān)閉10)寫指令01H:顯示清屏11)寫指令06H:顯示光標(biāo)移動(dòng)設(shè)置12)寫指令OCH:顯示開及光標(biāo)設(shè)置三驅(qū)動(dòng)程序舉例1I/O方式驅(qū)動(dòng)程序3WLSS510P3P3陽R=ZO歐姆J/2WWBLKBLAUO9OWS3WLSS510P3P3陽R=ZO歐姆J/2WWBLKBLAUO9OWS程序如下:

9、/*=SMC1602A(16*2)l/O口線接線方式連接線圖:|LCM51|LCM51|LCM51|DB0P1.0|DB4P1.4|RWP2.0|DB1P1.1|DB5P1.5|RSP2.1|DB2P1.2|DB6P1.6|EP2.2|DB3P1.3|DB7P1.7|VLCD接1K電阻到GND|注:AT89S51使用12M晶體震蕩器=*/#includesbitLCM_RW=P2S;定義引腳sbitLCM_RS=P2A1;sbitLCM_E=P2A2;#defineLCM_DataP1#defineBusy0 x80/用于檢測LCM狀態(tài)字中的Busy標(biāo)識voidWriteDataLCM(uns

10、ignedcharWDLCM);voidWriteCommandLCM(unsignedcharWCLCM,BuysC);unsignedcharReadDataLCM(void);unsignedcharReadStatusLCM(void);voidLCMInit(void);voidDisplayOneChar(unsignedcharX,unsignedcharY,unsignedcharDData);voidDisplayListChar(unsignedcharX,unsignedcharY,unsignedcharcode*DData);voidDelayms(unsignedi

11、ntn);voiddellay(unsignedinth);unsignedcharcodeblog_adr=EDNchina;unsignedcharcodeemail=;voidmain(void)/Delay400Ms();/啟動(dòng)等待,等LCM講入工作狀態(tài)LCMInit();/LCM初始化DisplayListChar(6,0,blog_adr);DisplayListChar(0,0,email);while(1);寫數(shù)據(jù)RS=H,RW=L,D0D7=數(shù)據(jù),E=高脈沖voidWriteDataLCM(unsignedcharWDLCM)dellay(100);LCM_E=0;LCM_R

12、S=1;LCM_RW=0;LCM_Data=WDLCM;/dellay(100);/短暫延時(shí),代替檢測忙狀態(tài)/ReadStatusLCM();/檢測忙LCM_E=1;LCM_E=0;寫指令RS=L,RW=L,D0D7=指令碼,E=高脈沖voidWriteCommandLCM(unsignedcharWCLCM,BuysC)/BuysC為0時(shí)忽略忙檢測/if(BuysC)ReadStatusLCM();/根據(jù)需要檢測忙dellay(100);/短暫延時(shí),代替檢測忙狀態(tài)LCM_E=0;LCM_RS=0;LCM_RW=0;LCM_Data=WCLCM;LCM_E=1;LCM_E=0;/讀數(shù)據(jù)RS=H

13、,RW=H,E=HunsignedcharReadDataLCM(void)LCM_RS=1;LCM_RW=1;LCM_E=1;return(LCM_Data);/讀狀態(tài)RS=L,RW=H,E=HunsignedcharReadStatusLCM(void)LCM_Data=0 xFF;LCM_RS=0;LCM_RW=1;LCM_E=1;/while(LCM_Data&Busy);/檢測忙信號return(LCM_Data);voidLCMInit(void)/LCM初始化LCM_Data=0;Delayms(15);WriteCommandLCM(0 x38,0);/三次顯示模式設(shè)置,不檢測

14、忙信號Delayms(5);WriteCommandLCM(0 x38,0);Delayms(5);WriteCommandLCM(0 x38,0);WriteCommandLCM(0 x38,1);/顯示模式設(shè)置,開始要求每次檢測忙信號WriteCommandLCM(0 x08,1);/關(guān)閉顯示W(wǎng)riteCommandLCM(0 x01,1);/顯示清屏WriteCommandLCM(0 x06,1);/顯示光標(biāo)移動(dòng)設(shè)置WriteCommandLCM(0 x0C,1);/顯示開及光標(biāo)設(shè)置/按指定位置顯示一個(gè)字符voidDisplayOneChar(unsignedcharX,unsigned

15、charY,unsignedcharDData)Y&=0 x1;X&=0 xF;/限制X不能大于15,Y不能大于1if(Y)X|=0 x40;當(dāng)要顯示第二行時(shí)地址碼+0 x40;X|=0 x80;/算出指令碼WriteCommandLCM(X,1);/這里不檢測忙信號,發(fā)送地址碼WriteDataLCM(DData);/按指定位置顯示一串字符voidDisplayListChar(unsignedcharX,unsignedcharY,unsignedcharcode*DData)unsignedcharListLength;ListLength=0;Y&=0 x1;X&=0 xF;/限制X不

16、能大于15,Y不能大于1while(DDataListLength0 x1f)/若到達(dá)字串尾則退出if(X0;j-)for(i=112;i0;i-);/*函數(shù)名稱:dellay*入口參數(shù):h(unsignedint型)*出口參數(shù):無*功能描述:短暫延時(shí),使用12MHz晶體,約0.01MS*/voiddellay(unsignedinth)while(h-);/0.01MS要注意的是在讀寫程序中,沒有用“檢測忙”,其實(shí)對于1602來說,沒有檢測忙信號對于實(shí)際來說還好,因?yàn)槌3R驗(yàn)闄z測忙,而使1602沒顯示(一直處于忙檢測中)“忙檢測”用一個(gè)小延時(shí)代替。對于LCM1602來說,讀寫時(shí)序最重要。LC

17、M1602寫操作時(shí)序?qū)憯?shù)據(jù)RS=H,RW=L,D0D7=數(shù)據(jù),E=高脈沖voidWriteDataLCM(unsignedcharWDLCM)dellay(100);/短暫延時(shí),代替檢測忙狀態(tài)LCM_E=0;LCM_RS=1;LCM_RW=0;LCM_Data=WDLCM;LCM_E=1;LCM_E=0;寫指令RS=L,RW=L,D0D7=指令碼,E=高脈沖voidWriteCommandLCM(unsignedcharWCLCM)dellay(100);/短暫延時(shí),代替檢測忙狀態(tài)LCM_E=0;LCM_RS=0;LCM_RW=0;LCM_Data=WCLCM;LCM_E=1;LCM_E=0;

18、上面兩個(gè)分別為寫數(shù)據(jù)函數(shù)和寫命令函數(shù),檢測忙已用小延時(shí)代替。其實(shí)這個(gè)時(shí)序好像不太嚴(yán)格,但要保證的是E高脈沖時(shí),寫的數(shù)據(jù)/命令是有效的。好像函數(shù)也可以寫成這樣:voidWriteCommandLCM(unsignedcharWCLCM)dellay(100);/短暫延時(shí),代替檢測忙狀態(tài)LCM_Data=WCLCM;LCM_RS=0;LCM_RW=0;LCM_E=0;dellay(100);LCM_E=1;/按指定位置顯示一串字符函數(shù)DisplayListChar的作用是在指定位置顯示一串字符,其中有一句“while(DDataListLength0 x1f)/若到達(dá)字串尾則退出”為什么要大于0

19、x20呢?unsignedcharcodeblog_adr=EDNchina;unsignedcharcodeemail=;用單引號”()括起來的字符為字符的ASCII碼值,而不是字符串。用雙引號”(shift+)括起來的一串字符,成為字符串常量。C編譯器會自動(dòng)地在字符末尾加上結(jié)束符O(NULL)(ASCII碼為0 x00也就是00H)。chara=“BeiJing”;chara=B,e,I,J,i,n,g,0;兩者是等價(jià)的,數(shù)組的每個(gè)元素為對應(yīng)字符的ASCII碼,如a3數(shù)組a的第四個(gè)元素是空格,則a3里面放著的是空格的ASCII碼0 x20。還要注意的是數(shù)組的元素?cái)?shù)目一定要比字符多一個(gè)。以便

20、C編譯器自動(dòng)在其后面加入結(jié)束符0??梢灾?ASCII碼為0 x00nASCII碼為0 x0A那知道為什么有這句了吧“while(DDataListLength0 x1F)/若到達(dá)字串尾則退出”因?yàn)榇笥? x1f才能顯示字符,小于和等于0 x1f的都是鍵盤控制符。當(dāng)然我們也可以檢測0(0 x00)“while(DDataListLength!=0)/檢測到字符串結(jié)束符則退出”2總線方式驅(qū)動(dòng)程序III.V48OWS;DB7E叭RsIII.V48OWS;DB7E叭Rs帕BLX亦I7LSQQJ-L&丄P=1OK*河陽IfDSRP23WL908LCM1602總線方式C51程序/*Lcd1602B.c*

21、#include#include#include/*=顯示字符串=*/voidLcdDisplayString(unsignedcharx,unsignedchary,unsignedchar*ptr)unsignedchari,l=0;while(ptrl31)l+;/for(i=0;il;i+)LcdDisplayChar(x+,y,ptri);if(x=16)x=0;yA=1;異或,第一行的話變第二行,第二行的話變第一行/*=顯示光標(biāo)定位=*/voidLocateXY(charposx,charposy)unsignedchartemp;temp=posx&0 x0f;/確保只選016個(gè)

22、格子posy&=0 x01;/確保不是在第一行就在第二行if(posy)temp|=0 x40;/在第二行的時(shí)候加40Htemp|=0 x80;/數(shù)據(jù)指針設(shè)置指令碼80H+地址碼(0-27H,40H-67H)LcdWriteCommand(temp,1);/*=按指定位置顯示數(shù)出一個(gè)字符=*/voidLcdDisplayChar(unsignedcharx,unsignedchary,unsignedcharWdata)LocateXY(x,y);/定位顯示地址LcdWriteData(Wdata);/寫字符/*=初始化程序,必須按照產(chǎn)品資料介紹的初始化過程進(jìn)行=*/voidLcdReset(

23、void)Delayms(400);/啟動(dòng)時(shí)必須的延時(shí),等待lcm進(jìn)入工作狀態(tài)LcdWriteCommand(0 x38,0);LcdWriteCommand(0 x38,0);Delayms(15);LcdWriteCommand(0 x38,0);Delayms(15);LcdWriteCommand(0 x38,0);Delayms(15);/顯示模式設(shè)置(不檢測忙信號)/共三次LcdWriteCommand(0 x38,1);LcdWriteCommand(0 x08,1);LcdWriteCommand(0 x38,1);LcdWriteCommand(0 x08,1);LcdWri

24、teCommand(0 x06,1);LcdWriteCommand(0 x0c,1);LcdClear();/顯示模式設(shè)置(以后均檢測忙信號)/顯示關(guān)閉/顯示光標(biāo)移動(dòng)設(shè)置/顯示開及光標(biāo)設(shè)置/*/*clear=*/voidLcdClear(void)LcdWriteCommand(0 x01,1);/顯示清屏/*=寫控制字符子程序:E=1RS=0RW=0=*/voidLcdWriteCommand(unsignedcharCMD,unsignedcharAttribC)AttribC=1檢查忙狀態(tài),AttribC=O不檢查忙狀態(tài)if(AttribC)while(Lcd1602StatusPor

25、t&Busy);/檢測忙信號?/busy=0 x80每次讀寫操作都要進(jìn)行讀寫檢測,確保SAT7=0Lcd1602CmdPort=CMD;/*=當(dāng)前位置寫字符子程序:E=1RS=1RW=0=*/voidLcdWriteData(chardataW)while(Lcd1602StatusPort&Busy);/檢測忙信號/busy=0 x80每次讀寫操作都要進(jìn)行讀寫檢測,確保SAT7=0Lcd1602WdataPort=dataW;精確微秒級延時(shí)(詳細(xì)可以參考我另一篇博文51單片機(jī)C51微秒級(ms)精確延時(shí))/*delay.h*/*delay.h*#include/forcrystal11.05

26、92MvoidDelayms(unsignedintn)unsignedinti,j;for(j=n;j0;j-)for(i=112;i0;i-);/*lcd1602b.h*/*lcd1602b.h*#ifndef_LCD1602B_H_#define_LCD1602B_H#defineLcd1602CmdPortXBYTE0 x8000/E=1RS=0RW=0/寫指令#defineLcd1602WdataPortXBYTE0 x8100/E=1RS=1RW=0/寫數(shù)據(jù)#defineLcd1602StatusPortXBYTE0 x8200/E=1RS=0RW=1/讀狀態(tài)#defineBusy

27、0 x80/busyexternvoidLcdClear(void);externvoidLcdWriteData(chardataW);externvoidLcdWriteCommand(unsignedcharCMD,unsignedcharAttribC);externvoidLcdReset(void);externvoidDisplay(unsignedchardd);externvoidLcdDisplayChar(unsignedcharx,unsignedchary,unsignedcharWdata);externvoidLcdDisplayString(unsignedch

28、arx,unsignedchary,unsignedchar*ptr);#endif其中要注意寫指令的地址0 x8000寫數(shù)據(jù)的地址0 x8100讀狀態(tài)的地址0 x8200這三個(gè)地址值是根據(jù)硬件電路連接確定的。/*absacc.h*/*absacc.h*#ifndef_ABSACC_H_#define_ABSACC_H#defineCBYTE(unsignedcharvolatilecode*)0)#defineDBYTE(unsignedcharvolatiledata*)0)#definePBYTE(unsignedcharvolatilepdata*)0)#defineXBYTE(unsignedcharvolatil

溫馨提示

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

評論

0/150

提交評論