點陣圖形液晶模塊_第1頁
點陣圖形液晶模塊_第2頁
點陣圖形液晶模塊_第3頁
點陣圖形液晶模塊_第4頁
點陣圖形液晶模塊_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

點陣圖形液晶模塊第一頁,共49頁。點陣型液晶(12864)

在點陣型LCD上顯示一幅圖片或是字符,如上圖所示,只需黑色的部分點亮,空白的點置0即可??梢詫CD看成128*64個LED燈來幫助理解。第二頁,共49頁。正面圖背面圖第三頁,共49頁。一、12864分類

因為字符型LCD無法將漢字顯示出來,所以要在顯示漢字的場合一般都要用點陣型LCD。目前常用的點陣型LCD有122×32、128×64、240×320等。本章重點介紹128×64點陣液晶顯示屏的基本應用。

128×64點陣液晶顯示屏有三種控制器,分別是KS0107(KS0108)、T6963C和ST7920,三種控制器主要區(qū)別是:KS0107(KS0108)不帶任何字庫、T6963C帶ASCII碼,ST7920帶國標二級字庫(8千多個漢字)。本章以不帶字庫的KS0107(KS0108)控制器為例進行介紹。第四頁,共49頁。二、128×64點陣型LCD的引腳功能引腳號引腳名稱電平功能描述1VSS0V電源地2VDD+5V正電源3V0—液晶顯示器驅動電壓4D/I(RS)H/LD/I=“H”,表示DB0~DB7為顯示數(shù)據(jù)D/I=“L”,表示DB0~DB7為顯示指令數(shù)據(jù)第五頁,共49頁。第六頁,共49頁。三、128×64點陣型LCD的內部模塊結構內部邏輯電路圖工作原理:MG12864經(jīng)數(shù)據(jù)總線接收微處理器發(fā)來的指令和數(shù)據(jù),并存入內部的指令和數(shù)據(jù)寄存器中,在這些控制指令的控制下,行、列驅動器對128x64點陣的LCD顯示屏進行控制,從而實現(xiàn)所需信息的顯示。第七頁,共49頁。四、128×64點陣型LCD與AT89S51單片機的接口設計1.總線方式總線方式也稱直接控制方式,即將液晶顯示模塊的接口作為存儲器或I/O設備直接掛在微處理器總線上,微處理器以控制存儲器或I/O設備的方式操作液晶顯示模塊的工作。#define LCMCS1W_COM(*((uint8volatilexdata*)0x0500))#define LCMCS1W_DAT(*((uint8volatilexdata*)0x0400))#defineLCMCS2W_COM(*((uint8volatilexdata*)0x0900))#define LCMCS2W_DAT(*((uint8volatilexdata*)0x0800))第八頁,共49頁。#define LCM_Wr1Command(command) LCMCS1W_COM=command/*功能:寫命令子程序,所選屏為左半屏(CS1)。入口參數(shù):command 要寫入LCM的命令字*/#define LCM_Wr2Command(command) LCMCS2W_COM=command/*功能:寫命令子程序,所選屏為右半屏(CS2)。入口參數(shù):command 要寫入LCM的命令字*/#defineLCM_Wr1Data(wrdata)LCMCS1W_DAT=wrdata/*功能:寫數(shù)據(jù)子程序,所選屏為左半屏(CS1)。入口參數(shù):wrdata 要寫入LCM的數(shù)據(jù)*/#defineLCM_Wr2Data(wrdata)LCMCS2W_DAT=wrdata/*功能:寫數(shù)據(jù)子程序,所選屏為右半屏(CS2)。入口參數(shù):wrdata 要寫入LCM的數(shù)據(jù)*/LCM_Wr1Command(LCM_DISPON); //打開顯示

LCM_Wr1Command(LCM_STARTROW); //設置顯示起始行為0LCM_Wr2Command(LCM_DISPON); LCM_Wr2Command(LCM_STARTROW); 第九頁,共49頁。2.間接方式間接控制就是微處理器通過自身的或系統(tǒng)中的并行接口與液晶顯示模塊連接,微處理器通過對這些接口的操作,以達到液晶顯示模塊的控制。第十頁,共49頁。寫讀操作時序voidwrite_cmd_1(unsignedcharcommand)//向左半屏寫入命令{cs1=1;cs2=0;

Di=0;

RW=0;

Lcd_Bus=command;

delay(10);Enable=1;

delay(10);Enable=0;}第十一頁,共49頁。讀操作時序voidwrite_data_2(unsignedchardis_data)//向右半屏寫入數(shù)據(jù){cs1=0;cs2=1;

Di=1;RW=0;

Lcd_Bus=dis_data;

delay(0);Enable=1;

delay(0);Enable=0;}第十二頁,共49頁。五、MG12864液晶顯示模塊的寄存器(1)I/O緩沖器:液晶顯示模塊的輸入、輸出緩沖器由片選信號控制。如果CS1或CS2無效,那么輸人輸出的數(shù)據(jù)或指令不會被執(zhí)行,因此內部狀態(tài)也不會改變,但是不管CS1或CS2是否處在有效狀態(tài),復位操作都可以執(zhí)行。(2)輸入寄存器:輸入寄存器提供了與外部交換信息的輸入接口,它可以方便地與多種型號的微處理器或計算機接口卡相連接。CS1或CS2有效時,由R/W和RS選擇輸入寄存器,從外部處理器送來的數(shù)據(jù)被寫進輸入寄存器,并且將它寫進數(shù)據(jù)顯示RAM。在E信號的下降沿將輸人數(shù)據(jù)鎖存,并且在內部操作時序下自動寫人顯示RAM。

(3)輸出寄存器:當CS1或CS2有效而且R/W和RS均為高電平時,控制器將顯示RAM的內容送到輸出寄存器,即存儲在顯示RAM中的數(shù)據(jù)被鎖存到輸出寄存器。當CS1或CS2有效,而R/W=H,RS=L時,狀態(tài)數(shù)據(jù)可以被讀出。第十三頁,共49頁。

為了讀取顯示RAM中的內容,兩步讀指令是必須的。第一步,首先將顯示RAM里的數(shù)據(jù)鎖存至輸出寄存器,第二步,外部處理器從輸出寄存器讀出已鎖存的顯示RAM內容。也就是說,要讀取顯示RAM的內容,必須輔助讀取,但是狀態(tài)讀取不需要輔助讀取。下表給出了RS和R/W選擇輸入寄存器或輸出寄奇器以及所執(zhí)行操作的具體功能的組合控制方式。讀數(shù)據(jù)(從數(shù)據(jù)顯示RAM到輸出寄存器)1寫數(shù)據(jù)(從輸入寄存器到數(shù)據(jù)顯示RAM)01讀狀態(tài)字1寫指令00功能R/WRS(4)復位狀態(tài):當RST為低電平時,液晶顯示模塊執(zhí)行以下操作:關閉顯示器,顯示器初始行寄存器置0。此時只有狀態(tài)讀取被允許,狀態(tài)復位標志出現(xiàn)在DB4信號線上,當DB4處于低電平時,液晶顯示模塊不接收任何指令。第十四頁,共49頁。(5)狀態(tài)標志:當控制器KS0108B正在執(zhí)行內部操作或沒有工作時,控制器“忙”狀態(tài)標志會出現(xiàn)在DB7信號線上。(6)顯示狀態(tài)的開、關控制:液晶顯示模塊帶有一個控制LCD是否顯示的觸發(fā)器。當該觸發(fā)器復位時,各列驅動會不受控制的全部輸出,以至于不能顯示所需信息,即LCD處于關狀態(tài);當該觸發(fā)器置位時,各列驅動根據(jù)顯示RAM的內容控制驅動輸出,從而顯示所需信息,即LCD處于開狀態(tài)。顯示狀態(tài)的開、關控制可以由外部控制指令改變,當前顯示狀態(tài)會出現(xiàn)在DB5信號線上,當DB5處于低電平時,即表示LCD處于開狀態(tài)。

(7)顯示數(shù)據(jù)RAM:液晶顯示模塊帶有1024字節(jié)的顯示RAM,它儲存著液晶顯示器的顯示數(shù)據(jù)。RAM單元的每一位對應于顯示屏上的某一個點,如某位為“1",則與該位對應的LCD液晶屏上的那一點為亮??刂破鱇S0108B的顯示RAM是按字節(jié)尋址的,因此為了使LCD顯示屏的定位與KS0108B的尋址相統(tǒng)一,我們將整個顯示屏劃分為左右兩個半屏,這樣每半屏是64X64個像素點,我們再把橫向上的64個像素點編為0列~63列,把縱向上的64個像素點分成8頁,每頁8行,這樣每列的某一頁的8行像索就對應了一個顯示RAM單元,設置每個顯示RAM單元的數(shù)據(jù)就可以控制整個顯示屏的顯示信息。第十五頁,共49頁。12864的DDRAM地址

為方便地管理顯示RAM,液晶顯示模塊設置X地址寄存器和Y地址計數(shù)器,X地址寄存器的內容指向內部顯示RAM的頁地址,它沒有計數(shù)功能,地址的設定由外部指令控制;Y地址計數(shù)器的內容用于確定內部顯示RAM的列地址,地址由指令控制,并且當顯示數(shù)據(jù)被讀寫操作時地址自動加1。

另外它還設置有顯示起始行寄存器。用于確定液晶顯示屏的起始顯示行位置。顯示起始行外部設置指令中的DB0~DB5確定了顯示起始行寄存器的內容。循環(huán)改變顯示起始行寄存器的內容可以用來實現(xiàn)液晶顯示器的滾屏操作。第十六頁,共49頁。六、MG12864液晶顯示模塊的顯示控制指令

1、顯示開/關設置CODE:R/W

D/IDB7DB6DB5DB4DB3DB2DB1DB0

LLLLHHHHHH/L功能:設置屏幕顯示開/關。DB0=H,開顯示;DB0=L,關顯示。不影響顯示RAM(DDRAM)中的內容。2、設置顯示起始行CODE:R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0

LLHH

行地址(0~63)功能:執(zhí)行該命令后,所設置的行將顯示在屏幕的第一行。顯示起始行是由Z地址計數(shù)器控制的,該命令自動將A0-A5位地址送入Z地址計數(shù)器,起始地址可以是0-63范圍內任意一行。Z地址計數(shù)器具有循環(huán)計數(shù)功能,用于顯示行掃描同步,當掃描完一行后自動加一。第十七頁,共49頁。

3、設置頁地址CODE:R/W

D/IDB7DB6DB5B4DB3DB2DB1DB0LLHLHHH頁地址(0~7)功能:執(zhí)行本指令后,下面的讀寫操作將在指定頁內,直到重新設置。頁地址就是DDRAM的行地址,頁地址存儲在X地址計數(shù)器中,A2-A0可表示8頁,讀寫數(shù)據(jù)對頁地址沒有影響,除本指令可改變頁地址外,復位信號(RST)可把頁地址計數(shù)器內容清零。4、設置列地址CODE:R/W

D/IDB7DB6DB5DB4DB3DB2DB1DB0

LLLH

列地址(0~63)功能:DDRAM的列地址存儲在Y地址計數(shù)器中,讀寫數(shù)據(jù)對列地址有影響,在對DDRAM進行讀寫操作后,Y地址自動加一。第十八頁,共49頁。

5、狀態(tài)檢測CODE:R/W

D/IDB7DB6DB5DB4DB3DB2DB1DB0

HLBFLON/OFRSTLLLL功能:讀忙信號標志位(BF)、復位標志位(RST)以及顯示狀態(tài)(ON/OFF)。BF=H:內部正在執(zhí)行操作; BF=L:空閑狀態(tài)。RST=H:正處于復位初始化狀態(tài);RST=L:正常狀態(tài)。ON/OFF=H:表示顯示關閉;ON/OFF=L:表示顯示開。6、寫顯示數(shù)據(jù)CODE:R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0

LHD7D6D5D4D3D2D1D0功能:寫數(shù)據(jù)到DDRAM,DDRAM是存儲圖形顯示數(shù)據(jù)的,寫指令執(zhí)行后Y地址計數(shù)器自動加1。D7-D0位數(shù)據(jù)為1表示顯示,數(shù)據(jù)為0表示不顯示。寫數(shù)據(jù)到DDRAM前,要先執(zhí)行“設置頁地址”及“設置列地址”命令。第十九頁,共49頁。

7、讀顯示數(shù)據(jù)CODE:R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0HHD7D6D5D4D3D2D1D0功能:從DDRAM讀數(shù)據(jù),讀指令執(zhí)行后Y地址計數(shù)器自動加1。從DDRAM讀數(shù)據(jù)前要先執(zhí)行“設置頁地址”及“設置列地址”命令。第二十頁,共49頁。七、圖片在12864上的顯示簡單來說,主要分為兩步:1)將一幅圖片轉化為一系列二進制數(shù)據(jù)2)將數(shù)據(jù)按字節(jié)(8位)寫入液晶對應的DDRAM

由12864的DDRAM地址可知,12864的DDRAM有128*8=1024個地址,只需將圖片轉化的數(shù)據(jù)按字節(jié)寫入這其對應的DDRAM地址即可。

第二十一頁,共49頁。八、字符在12864上的顯示

上圖中,漢字為16*16點陣,ASCII碼為8*16點陣,同圖片一樣,一個漢字(ASCII)由16*2(8*2)個字節(jié)數(shù)據(jù)組成,字符顯示原理與圖片一致,只需將字符代碼寫入相應DDRAM地址。字體大小可以根據(jù)需要改變。第二十二頁,共49頁。小結簡而言之,無論是字符型還是點陣型LCD,其基本原理都是通過將數(shù)據(jù)寫入所對應的DDRAM地址中來顯示所需要的圖形或是字符。12864點陣型液晶對應的DDRAM有1024個地址,當需顯示的字符或圖片已轉為二進制數(shù)據(jù)時,確定將數(shù)據(jù)寫入對應的DDRAM地址就是你所要做的工作!第二十三頁,共49頁。一、單片機與液晶顯示器的硬件連接12864的應用液晶顯示器(12864)主要包含了以下接口:1)使能E(51的RD和WR經(jīng)或非門接LCD的使能E)2)片選CS1(左半屏)、CS2(右半屏)3)命令/數(shù)據(jù)選擇RS(0——命令,1——數(shù)據(jù))4)讀/寫選擇R/W(0——寫,1——讀)5)數(shù)據(jù)總線DB0~DB76)負壓產(chǎn)生和負壓輸入(對比度)調整7)復位RST8)電源與地和背景光電源第二十四頁,共49頁。AT89C51與12864的硬件連接第二十五頁,共49頁。二、軟件編程

注意:程序的編寫與硬件是分不開的。以上圖為例,A11~A8對應CS2、CS1、R/W、RS,未用的地址線為高。則當向12864的左半屏(CS1=1,CS2=0)寫(R/W=0)數(shù)據(jù)(RS=1)時,總線地址為0x11110101。即0xF5FF。

C文件中定義如下:#defineWD1XBYTE[0xF5FF]

定義了總線地址后,對外部地址的操作變得非常簡單。 如向左半屏寫數(shù)據(jù)0xFF:WD1=0xFF注:ABSACC.H提供了下列方便的宏(Macro)定義。

#defineXBYTE((unsignedcharvolatilexdata*)0)

定義XBYTE為指向xdata地址空間unsignedchar數(shù)據(jù)類型的指針,指針值為0,這樣,可以直接用XBYTE[0xnnnn]或*(XBYTE+0xnnnn)訪問外部RAM了。第二十六頁,共49頁。#defineLCMCS1W_COMXBYTE[0xF4FF] //向左半屏寫命令#defineLCMCS1W_DATXBYTE[0xF5FF] //向左半屏寫數(shù)據(jù)#defineLCMCS2W_COMXBYTE[0xF8FF] //向右半屏寫命令#defineLCMCS2W_DATXBYTE[0xF9FF] //向右半屏寫數(shù)據(jù)程序編寫的流程1)定義所有總線地址第二十七頁,共49頁。2)編寫底層程序(寫命令、寫數(shù)據(jù))程序編寫的流程#define LCM_Wr1Command(command) LCMCS1W_COM=command/*功能:寫命令子程序,所選屏為左半屏(CS1)。入口參數(shù):command 要寫入LCM的命令字*/#define LCM_Wr2Command(command) LCMCS2W_COM=command/*功能:寫命令子程序,所選屏為右半屏(CS2)。入口參數(shù):command 要寫入LCM的命令字*/#defineLCM_Wr1Data(wrdata) LCMCS1W_DAT=wrdata/*功能:寫數(shù)據(jù)子程序,所選屏為左半屏(CS1)。入口參數(shù):wrdata 要寫入LCM的數(shù)據(jù)*/#defineLCM_Wr2Data(wrdata) LCMCS2W_DAT=wrdata/*功能:寫數(shù)據(jù)子程序,所選屏為右半屏(CS2)。入口參數(shù):wrdata 要寫入LCM的數(shù)據(jù)*/第二十八頁,共49頁。3)LCD初始化

包含開顯示(0x3F),起始行(0xC0),設置起始頁地址(0xB8)和Y地址(0x40),即分別向LCD的左右半屏寫命令。第二十九頁,共49頁。第三十頁,共49頁。voidLCM_DispIni(void){uint16i;LCM_RST=0; //復位驅動芯片

for(i=0;i<500;i++);LCM_RST=1;LCM_Wr1Command(LCM_DISPON); //打開顯示

LCM_Wr1Command(LCM_STARTROW); //設置顯示起始行為0LCM_Wr2Command(LCM_DISPON); LCM_Wr2Command(LCM_STARTROW); LCM_DispClr(); //清屏

LCM_Wr1Command(LCM_ADDRSTRY+0); //設置頁(行)地址

LCM_Wr1Command(LCM_ADDRSTRX+0); //設置列地址,即列

LCM_Wr2Command(LCM_ADDRSTRY+0);LCM_Wr2Command(LCM_ADDRSTRX+0);}初始化程序第三十一頁,共49頁。voidLCM_DispFill(uint8filldata){uint8x,y;LCM_Wr1Command(LCM_STARTROW); //設置顯示起始行為0LCM_Wr2Command(LCM_STARTROW); for(y=0;y<8;y++){LCM_Wr1Command(LCM_ADDRSTRY+y);//設置頁(行)地址LCM_Wr1Command(LCM_ADDRSTRX); //設置列地址LCM_Wr2Command(LCM_ADDRSTRY+y);LCM_Wr2Command(LCM_ADDRSTRX);for(x=0;x<64;x++){LCM_Wr1Data(filldata);LCM_Wr2Data(filldata);

} }

}4)清屏(向DDRAM所有地址寫0)顯示一幅新圖片前必須清屏,否則之前顯示的數(shù)據(jù)仍存在于液晶上。第三十二頁,共49頁。5)指定位置顯示一個ASCII碼首先將起始頁地址和起始Y地址設置好,寫入ASCII碼的上半部分(8個字節(jié)數(shù)據(jù))重新設置起始頁地址和起始Y地址,寫入ASCII碼的下半部分(另8個字節(jié)數(shù)據(jù))

注意:在對DDRAM進行讀寫操作后,Y地址指針自動加1,指向下一個DDRAM單元。第三十三頁,共49頁。6)指定位置顯示漢字

同顯示ASCII碼基本相似,只是上下部分分別有16個字節(jié)數(shù)據(jù)需要寫入DDRAM。

7)顯示一張圖片

對于圖片,必然從第0頁第0列開始,可以一頁一頁(不分左右屏)顯示,也可以先寫左半屏后寫右半屏。所謂的兩種方法差別正在設置的起始頁地址和Y地址的不同。第三十四頁,共49頁。小結12864點陣型液晶對應的DDRAM有1024個地址,無論是顯示字符還是圖片,靈活設置起始頁地址和Y地址,可以達到想要的結果。C語言中用到總線操作必須添加頭文件“absacc.h”,另如使用仿真器,需在debug中的setting里選擇使用xbus(數(shù)據(jù)總線)??墒褂萌∽帜\浖⒆址驁D片轉為一系列二進制數(shù)據(jù)。第三十五頁,共49頁。總結理解12864是如何顯示字符和圖形的知曉單片機與12864的硬件連接根據(jù)硬件接線,確定所有的總線地址明白如何通過總線操作對12864進行數(shù)據(jù)與命令的交換參考12864的命令字進行軟件編程學會如何使用取字模軟件第三十六頁,共49頁。帶字庫12864帶字庫的12864的基本特性:(1)顯示分辨率:128×64點(就是64行,每行128個點)(2)內置漢字字庫,提供8192個16×16點陣漢字(12864內部有一個CGROM,內容掉電可以存儲,所以漢字字庫會存放在里面。滿屏最多顯示4*8=32個漢字)。(3)內置128個16×8點陣ASCII字符(12864一次最多可以顯示4*16=64個ASCII字符)。(4)通訊方式:串行、并口可選(數(shù)據(jù)寫入和讀出可以是以串行的方式,也可以是以并行的方式。)第三十七頁,共49頁。第三十八頁,共49頁。所以只要我們寫入指令0x01,整個屏幕就被清空了。LCD初始化:一般用指令0x0c,開顯示,關閉光標既可以控制擴展功能,又可以控制繪圖顯示的指令!用0X30,基本指令集第三十九頁,共49頁。指令0X06光標右移第四十頁,共49頁。1.漢字顯示坐標顯示漢字一屏可以顯示4*8=32個16*16的漢字。實物圖對照下,把地址也表到實物圖上去了。第四十一頁,共49頁。操作的具體流程:A進入基本指令模式(指令16,指令為0x30)B寫入xy地址(地址需要查上表,用指令8,也就是寫入DDRAM)C寫入欲寫入的漢字的編碼(一般定義一個數(shù)組,直接把漢字存放在里面即可,存儲的時候它就是以編碼的形式。例如:ucharcodedis1[]=“南京師范大學";)例程代碼:ucharcodedis3[]={“南京師范大學"};voiddisplay_hz(){ UcharI; Write_comd(0x30);//基本指令

Write_comd(0x80);//寫在第一個位置上

For(i=0;i<8;i++) { Write_da(dis3[i]);//把數(shù)據(jù)送到端口

Delay_ms(5);//延時一會

}}第四十二頁,共49頁。2.ASCII顯示坐標:它的坐標和漢字的坐標是一樣的,只不過一個漢字的位置可以放兩個ASCII碼字符。因為前者為16*16后者為16*8,這樣一行可以顯示16個ASCII碼了。在顯示一串字符穿的時候,給一個起始地址,屏幕就會依次顯示出來(自動加一功能)。操作的具體流程:A進入基本指令模式(指令16,指令為0x30)B寫入xy地址(地址需要查上表,用指令8,也就是寫入DDRAM)C寫入欲寫入的漢字的編碼(一般定義一個數(shù)組,直接把ASACII碼存放在里面即可,存儲的時候它就是以編碼的形式。例如:ucharcodedis1[]="SH";)第四十三頁,共49頁。例程代碼:ucharcodedis2[]={"SH"};voiddisplay_ascii(){ UcharI; Write_comd(0x30);//基本指令

Write_comd

溫馨提示

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

評論

0/150

提交評論