LCD12232液晶顯示實驗_第1頁
LCD12232液晶顯示實驗_第2頁
LCD12232液晶顯示實驗_第3頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、AVR學(xué)習(xí)筆記十七、LCD12232液晶顯示實驗基于LT_Mini_M1617.1LCD12232液晶顯示實驗17.1.1、實例功能在前面我們已經(jīng)學(xué)習(xí)了1602和12864液晶的基本知識,并且通過簡單的實例實現(xiàn)了在1602和12864液晶上顯示字符和漢字。今天我們再來學(xué)習(xí)另外一種比較常用的液晶12232.本實例中我們選用深圳錦昌電子的DM12232B型液晶。本實例分為三個功能模塊,分別描述如下:單片機系統(tǒng):利用ATmega16單片機與DM12232B型液晶構(gòu)成液晶顯示電路。外圍電路:DM12232B型液晶與單片機的連接電路。軟件程序:編寫軟件,控制液晶顯示字符。通過本實例的學(xué)習(xí),掌握以下內(nèi)容:

2、掌握DM12232B型液晶的基本原理和程序設(shè)計方法。17.2、器件和原理關(guān)于液晶的顯示原理我們在前面的實例中已經(jīng)做過介紹,在這里就不再多做說明。在本實例中我們重點介紹DM12232B型液晶的結(jié)構(gòu)、指令及顯示控制。12232系列的LCD大部分都是使用SED1520驅(qū)動芯片,12232F用的是ST7920。它們的運行速度都是nS級的,所以一般我們發(fā)送數(shù)據(jù)的時候不用過多考慮等待問題。許多LCD模塊的引腳數(shù)都不一致,常見有1620個不等。不過它們的功能是大同小異。我們所用的DM12232B型液晶是18引腳:VDD,VSS,VLCD,RET,E1,E2,R/W,A0,DB0,DB1,DB2,DB3,DB

3、4,DB5,DB6,DB7,LED+,LED-。17.2.1、DM12232B型液晶的管腳排列DM12232B型液晶的管腳排列及說明如圖1所示:引腳功能簡單說明:1、VLCD為LCD電源,要求電壓可調(diào)節(jié),一般用20K的可調(diào)電阻取中間抽頭電壓供電;2、RES,復(fù)位信號。這個大家都知道,一般應(yīng)用中直接接到高平就行了;3、E1,E2為控制器詵擇線,高電平時為選中:4、R/W=0時為寫詵通,R/W=1時為讀選通,一般我們只是向液晶發(fā)送數(shù)據(jù),不讀液晶內(nèi)部的數(shù)據(jù),所以該腳可以直接接地(低電平);5、A0=1時表示所發(fā)的數(shù)據(jù)是顯示數(shù)據(jù),A0=0時表示所發(fā)數(shù)據(jù)是指令(Instruction);6、DB0DB7

4、為數(shù)據(jù)線;7、LED-,LED+為背光燈電源,一個接正,一個接地就行。17.2.1、DM12232B型液晶的讀寫時序DM12232B型液晶的讀寫時序如圖2所示,應(yīng)用中主要有兩種讀寫時序:寫指令和寫數(shù)據(jù),分別描述如下:寫指令:E選通一A0=0一讀寫使能(直接接地就不用設(shè)置了)一數(shù)據(jù)的發(fā)送一狀態(tài)釋放寫數(shù)據(jù)E選通一A0=1一讀寫使能(直接接地就不用設(shè)置了)一數(shù)據(jù)的發(fā)送一狀態(tài)釋放管腳號管腳名稱電平世卯功能描述1VDD5V電源EtL壓2VSSOV電源地3VLCDOROs.wLCD夕嵌驅(qū)動負電壓當(dāng)VD4+3Y時,VLCD接0s-5V負電壓4RES1H/L復(fù)位信號低電乎有效)5ElH/L讀與使能信號6E2H

5、I讀寫使能侑號)fRArH/L讀號逃擇信號8AOH/LD/T="H*,表示D町DBD為顯示數(shù)據(jù)職=A表示M7DE0為顯示指令數(shù)據(jù)9DBOf"L數(shù)握線10OBIIVL數(shù)據(jù)線11DB2WL琢-線12UB3fl/L數(shù)據(jù)戲13DB4山L稀線14L1B5tl/L數(shù)據(jù)線15DBGH/L數(shù)據(jù)線16DB7H/L數(shù)據(jù)經(jīng)17VLED+一LEDG51)或EL背光源18VLED-一LED(OV)或EL背光源圖1DM12232B型液晶的管腳排列及說明EUhlMlWCWRITZ)(READ)圖2DM12232B型液晶的讀寫時序17.2.3、DM12232B型液晶的指令介紹DM12232B型液晶的指令如

6、表1所示指令指令功能D/IJ>7|lk>DSIMD3D2DI1*0)101D11110顯示器的開成關(guān),不影響顯示RA折中的數(shù)捐和內(nèi)部狀態(tài)1:開D:X忤設(shè)置0U110旦示捉始注卜定髭示器心1:勺蚪一左開始顯小致掐(起箭行二。)TT圮址設(shè)堂001011I0設(shè)置示丈瀏中正的地址(X址枇)000予j博址也設(shè)置顯示榆的廳地卻:(V池th讀訴忑手0BUSYADCON/OFFRST0000諉狀悉位乩小”忙狀態(tài)。:瓦納狀態(tài)J®c”右向輸出0:左網(wǎng)輸出RST1:堂位狀恣0:正常狀春OVFF1:蛇示器關(guān)示器開罵M幣糞1從數(shù)掂忘技F數(shù)斡iSA內(nèi)部顯示RAM據(jù)11T再數(shù)據(jù)從顯示RAM璜敕據(jù)另.表

7、1DM12232B型液晶的指令A(yù)DC迭擇001G10tl)0OM:n一匚葉反時計方也讀入顯示RW的數(shù)據(jù)O:ffiSQ:-方IM1:反時ft方向001°1001Q01清毒驅(qū)St動態(tài)驅(qū)動占空比00101011'00門選擇占克比1:1/32占空比0:1/16占空比政安方式設(shè)JSL001L0.)000當(dāng)每快耳數(shù)據(jù)后列地址自動m而讀敷而后列坦址任持恩度不拓或?qū)懥φ?n11101110.戲了其已二疽式.u后無姓漆或?qū)憯?shù)據(jù)啟,列地址都如L0Q)10)I'10任顯示k始行置算。行.劑地恥置為。,腳下址置為3(二可相令;,0I00|0110U1L00110110設(shè)置電源保存模式為選擇顯

8、示跨關(guān)尸靜念菰既開表1(續(xù))DM12232B型液晶的指令17.2.4、DM12232B型液晶的原理圖DM12232B型液晶的原理圖如圖3所示17.2.5、DM12232B型液晶的地址表DM12232B型液晶的地址表如圖4所示16LE2xlDUL5_/122x16DOfSh圖3DM12232B型液晶的原理圖$blATlnlv_slaveTt+lvfslave_h1JzII1頁數(shù)據(jù)行號驅(qū)動DO,QD722X16PIXELSD(1iik從3;D7I22X16PLXELS15OTJ0*16D7I22X16PLXELSD(1_L)ik1)7122X16PLXELS31行地址ADC=OOOH3COOH3C

9、ScgNo0*,*6(1。,60驅(qū)動從主圖4DM12232B型液晶的地址表10.1.3、電路和連接圖5所示為DM12232B型液晶與單片機之間進行并口通訊的典型接法本實例是在LT_Mini_M16學(xué)習(xí)板的基礎(chǔ)上做的擴展實驗,具體連線如下。引腳連接mculed引腳說明VccVDD電源電壓GNDVSS電源地偏壓信號,接可調(diào)電阻VEE(VLCD)LCD外接驅(qū)動負電壓PA1RES復(fù)位信號(低電平有效),低電平復(fù)位PA6E1讀寫使能信號1PA7E2讀寫使能信號2PA5R/W讀寫選擇信號PA4)A0H-顯示數(shù)據(jù)。L-顯示指令數(shù)據(jù)(指令數(shù)據(jù)選)PB0DB0數(shù)據(jù)線PB1DB1PB2DB2PB3DB3PB4DB

10、4PB5DB5PB6DB6PB7DB7VccVLED+LED(+5V)或EL背光源GNDVLED-LED(0V)或EL背光源BO-?DBIb7D/Ipcio-pa?P27P&5P&7P3SMPUPMVDDElRESVLCDLCM圖512232B液晶與單片機的一種接口圖17.4、程序設(shè)計1、程序功能程序的功能是使用單片機控制12232B液晶顯示字符,程序比較簡單,直接看程序就能明白原理了。2函數(shù)說明本程序多個功能函數(shù),分別是:DM12232B液晶處理相關(guān)函數(shù):externvoidLCDPort_Init(void);液晶端口初始化externvoidLCDInit(void);/

11、LCD初始化externvoidWriteCommand(unsignedcharchip_select,unsignedcharcmd);/寫命令externvoidWriteData(unsignedcharchip_select,unsignedchardata);/寫數(shù)據(jù)externvoidclear_lcd(void);/清屏externvoidtex_Write(unsignedchar*pt);寫字符externvoidWriteCharacter(unsignedchar*pt);寫漢字externvoidDrawing_Map(unsignedchar*pt);/繪圖延時相關(guān)

12、函數(shù):voidDelayus(unsignedintlus);/us延時函數(shù)voidDelayms(unsignedintlms);/ms延時函數(shù)由于WINAVR自帶函數(shù)庫中的延時函數(shù)使用起來很不方便,并且晶振頻率不同,延時時間也有區(qū)別,所以本實例中自己寫了兩個延時函數(shù)。3、使用WINAVR開發(fā)環(huán)境,使用的是外部12M的晶振,所以需要將makefile文件中的時鐘頻率修改為12M。另外在程序燒錄到單片機的時候,熔絲位也要選擇為外部12M晶振(注意是晶振,不是外部振蕩器,一定不要選擇錯了,否則會導(dǎo)致單片機不能再燒寫程序)。4、程序代碼由于本程序代碼比較長,所以在此只列出與控制液晶DM12232B

13、相關(guān)的部分代碼,完整程序放在附件中/端口初始化voidLCDPort_Init()/LCD數(shù)據(jù)端口設(shè)置PORTB=0xff;/DDRB=0xFF;配置端口PB全部為輸出口,LCD數(shù)據(jù)端口/LCD控制端口設(shè)置SET_RES;SET_A0;SET_RW;SET_E1;SET_E2;DDRA=0xff;/Delayms(15);/LCD初始化voidLCD_Init()WriteCommand(0x01,0xe2);/rest復(fù)位WriteCommand(0x02,0xe2);/WriteCommand(0x01,0xae);/closedisplay關(guān)顯示/WriteCommand(0x02,0x

14、ae);/WriteCommand(0x01,0xa4);/staticdriver關(guān)靜態(tài)驅(qū)動/WriteCommand(0x02,0xa4);WriteCommand(0x01,0xa9);/duty1/32占空比1/32WriteCommand(0x02,0xa9);/WriteCommand(0x01,0xa0);/clockwiseoutputADC選擇,順時針還是逆時針讀取RAM數(shù)據(jù)/WriteCommand(0x02,0xa0);/WriteCommand(0x01,0xee);/end關(guān)閉讀修改寫,無論讀或?qū)懖僮骱?,列地址都?/WriteCommand(0x02,0xee);/

15、WriteCommand(0x01,0x00);行地址設(shè)置,設(shè)置顯示RAM的行地址(Y地址)/WriteCommand(0x02,0x00);/WriteCommand(0x01,0xc0);顯示起始行設(shè)置。指定顯示器從顯示RAM中的那一行開始顯示/數(shù)據(jù),(起始彳T=0)/WriteCommand(0x02,0xc0);WriteCommand(0x01,0xaf);/openddisplay開顯示W(wǎng)riteCommand(0x02,0xaf);/LCD寫指令,voidWriteCommand(unsignedcharchip_select,unsignedcharcmd)if(chip_se

16、lect&1)/判斷對左頁還是右頁的操作SET_E1;/位口果是左頁,E1使能elseif(chip_select&2)/SET_E2;右頁,E2使能CLR_A0;/A0=0寫命令CLR_RW;/RW=0寫操作PORTB=cmd;寫命令數(shù)據(jù)到數(shù)據(jù)端口if(chip_select&1)CLR_E1;/關(guān)閉左右頁使能elseif(chip_select&2)/CLR_E2;/SET_A0;/SET_RW;/寫數(shù)據(jù)voidWriteData(unsignedcharchip_select,unsignedchardata)(if(chip_select&1)判

17、斷左右頁(SET_E1;/elseif(chip_select&2)/(SET_E2;/SET_A0;/A0=1,寫數(shù)據(jù)CLR_RW;/RW=0,寫操作PORTB=data;寫數(shù)據(jù)到數(shù)據(jù)端口if(chip_select&1)/(CLR_E1;結(jié)束使能/清屏0-3頁,指令分別是b8,b9,ba,bb(X地址)elseif(chip_select&2)(CLR_E2;CLR_A0;/SET_RW;/清屏voidclear_lcd(void)(unsignedchara,b,c;for(a=0xb8;a<0xbc;a+)(b=0;WriteCommand(0x01,a)

18、;WriteCommand(0x02,a);WriteCommand(0x02,b);WriteCommand(0x01,b);for(c=0;c<61;c+)WriteData(0x01,0x00);WriteData(0x02,0x00);/左,第0頁開始/右,第0頁開始/右,第0行開始(Y地址)/左,第0行開始總共122列,左右各61列左,每列均填充0右,每列均填充0寫字符voidtex_Write(unsignedchar*pt)unsignedchara,b;if(SEL_E1)左選中?WriteCommand(0x01,0xb8);頁設(shè)置,第0頁(X地址)WriteComma

19、nd(0x01,Add1);/第0行開始(Y)地址for(a=8;a<16;a+)/WriteData(0x01,*(pt+a);上半部分8-16,總高度16,WriteCommand(0x01,0xb9);/第一頁WriteCommand(0x01,Add1);/for(b=0;b<8;b+)/WriteData(0x01,*(pt+b);下半部分elseif(SEL_E1=0)若為0,寫右半邊WriteCommand(0x02,0xb8);/WriteCommand(0x02,Add1);/for(a=8;a<16;a+)/WriteData(0x02,*(pt+a);/

20、WriteCommand(0x02,0xb9);/WriteCommand(0x02,Add1);/for(b=0;b<8;b+)/WriteData(0x02,*(pt+b);/if(Add1+8)<61)Add1+=8;/如果不超過61列列地址+8else/Add1=0;/超過61列,則列地址置0,寫右半邊WriteCommand(0x02,0xb8);/WriteCommand(0x02,Add1);/for(a=12;a<16;a+)一個字符占8列,所以在61列之后還要寫4列WriteData(0x02,*(pt+a);/WriteCommand(0x02,0xb9)

21、;/WriteCommand(0x02,Add1);/for(b=4;b<8;b+)/WriteData(0x02,*(pt+b);/Add1+=4;/SEL_E1=0;/寫漢字voidWriteCharacter(unsignedchar*pt)unsignedchara,b;if(SEL_E2)/WriteCommand(0x01,0xba);/WriteCommand(0x01,Add2);/for(a=16;a<32;a+)/WriteData(0x01,*(pt+a);/WriteCommand(0x01,0xbb);/WriteCommand(0x01,Add2);/for(b=0;b<16;b+)/WriteData(0x01,*(pt+b);/elseif(SEL_E2=0)/(WriteCommand(0x02,0xba);/WriteCommand(0x02,Add2);/for(a=16;a<32;a+)/(WriteD

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論