版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、任務(wù)八 LCD12864液晶顯示知識背景知識背景 1. 12864液晶顯示簡介 12864液晶顯示是分辨率為128(列)64(行)點陣型液晶顯示器。顯示模塊如圖7-1所示。LCD12864模塊包含帶字庫的不不帶字庫的,這里介紹的為不帶字庫的12864液晶顯示。點陣式液晶模塊LCD,不僅可以顯示字符、數(shù)字,還可以顯示各種圖形、曲線及漢字,并且可以實現(xiàn)屏幕上下左右滾動,動畫功能,分區(qū)開窗口,反轉(zhuǎn),閃爍等功能,其原理是控制LCD12864點陣中的點的亮暗,亮和暗的點陣按一定規(guī)律可以組成漢字,組成一幅圖形和曲線等。(對編程者來說,對編程者來說,LCD屏幕上的點陣是按字節(jié)方式屏幕上的點陣是按字節(jié)方式8個
2、點一組來控制的個點一組來控制的) 圖8-1 LCD12864實物圖在數(shù)字電路中,所有的數(shù)據(jù)都是以0和1保存的,對LCD控制器進行不同的數(shù)據(jù)操作,可以得到不同的結(jié)果。對于顯示英文操作,由于英文字母種類很少,只需要8位(一字節(jié))即可。而對于中文,常用卻有6000以上,于是我們的DOS前輩想了一個辦法,就是將ASCII表的高128個很少用到的數(shù)值以兩個為一組來表示漢字,即漢字的內(nèi)碼。而剩下的低128位則留給英文字符使用,即英文的內(nèi)碼。 那么,得到了漢字的內(nèi)碼后,還僅是一組數(shù)字,那又如何在屏幕上去顯示呢?這就涉及到文字的字模,字模雖然也是一組數(shù)字,但它的意義卻與數(shù)字的意義有了根本的變化,它是用數(shù)字的各
3、位信息來記載英文或漢字的形狀,如英文的A在字模(縱向取模,高位在下。數(shù)據(jù)格式:從左到右,從上到下)的記載方式如圖7-2所示: 圖8-2 “A”字模 圖8-3 “你”字模圖 而中文的“你”在字模(橫向取模,左高位。數(shù)據(jù)安排:從左到右,從上到下)中的記載卻如圖8-3所示.2、模塊接口說明、模塊接口說明 LCD12864采用標(biāo)準(zhǔn)的16腳接口,各引腳功能如下表7-1所示: 表8-1 LCD12864引腳功能圖 RST管管腳腳號號管腳名管腳名稱稱電電平平管腳功能描述管腳功能描述1VSS0V邏輯電源地2VCC+5V邏輯電源正3V0-LCD驅(qū)動負載,對比度(亮度)調(diào)整4RSH/LRS=“H”,表示將DB0D
4、B7送入顯示數(shù)據(jù)RAM;RS=“L”,表示將DB0DB7送入指令指令寄存器5R/WH/LR/W=“H”,E=“H”,數(shù)據(jù)被讀到DB0DB7R/W=“L”,E=“HL”, DB0DB7的數(shù)據(jù)被寫到IR或DR6E(SCLK)H/L使能信號端:H讀有效;下降沿鎖定數(shù)據(jù)7DB0H/L三態(tài)數(shù)據(jù)線8DB1H/L三態(tài)數(shù)據(jù)線9DB2H/L三態(tài)數(shù)據(jù)線10DB3H/L三態(tài)數(shù)據(jù)線11DB4H/L三態(tài)數(shù)據(jù)線12DB5H/L三態(tài)數(shù)據(jù)線13DB6H/L三態(tài)數(shù)據(jù)線14DB7H/L三態(tài)數(shù)據(jù)線15cs1H/LH:選擇芯片(左半屏)有效,L:片選無效(見注釋1)16cs2H/LH:選擇芯片(右半屏)有效,L:片選無效(見注釋1)
5、17H/L復(fù)位端,低電平有效(見注釋2)18VOUT-LCD驅(qū)動電壓輸出端19LED+VDD背光源正端(+5V)(見注釋3)20LED-VSS背光源負端(見注釋3)*注釋2:模塊內(nèi)部接有上電復(fù)位電路,因此在不需要經(jīng)常復(fù)位的場合可將該端懸空。*注釋3:如背光和模塊共用一個電源,可以將模塊上的JA、JK用焊錫短接。*注釋1:ISIS仿真中LCD12864的片選 為低電平有效,與實物相反。(說明H:為高電平;L:低電平)3、指令說明、指令說明 在使用12864LCD前先必須了解以下功能器件才能進行編程。12864內(nèi)部功能器件及相關(guān)功能如下: (1) 指令寄存器指令寄存器(IR) IR是用于寄存指令碼
6、,與數(shù)據(jù)寄存器數(shù)據(jù)相對應(yīng)。當(dāng)RS=0時,在E信號下降沿的作用下,指令碼寫入IR。(2) 數(shù)據(jù)寄存器數(shù)據(jù)寄存器(DR) DR是用于寄存數(shù)據(jù)的,與指令寄存器寄存指令相對應(yīng)。當(dāng)RS=1時,在下降沿作用下,圖形顯示數(shù)據(jù)寫入DR,或在E信號高電平作用下由DR讀到DB7DB0數(shù)據(jù)總線。DR和DDRAM之間的數(shù)據(jù)傳輸是模塊內(nèi)部自動執(zhí)行的。(3) 忙標(biāo)志:忙標(biāo)志:BF BF標(biāo)志提供內(nèi)部工作情況。BF=1表示模塊在內(nèi)部操作,此時模塊不接受外部指令和數(shù)據(jù)。BF=0時,模塊為準(zhǔn)備狀態(tài),隨時可接受外部指令和數(shù)據(jù)。 利用STATUS READ指令,可以將BF讀到DB7總線,從檢驗?zāi)K知工作狀態(tài)。(4) 顯示控制觸發(fā)器顯
7、示控制觸發(fā)器DFF 此觸發(fā)器是用于模塊屏幕顯示開和關(guān)的控制。DFF=1為開顯示(DISPLAY OFF),DDRAM的內(nèi)容就顯示在屏幕上,DFF=0為關(guān)顯示(DISPLAY OFF)。 DDF的狀態(tài)是指令DISPLAY ON/OFF和RST信號控制的。(5) XY地址計數(shù)器地址計數(shù)器 XY地址計數(shù)器是一個9位計數(shù)器。高3位是X地址計數(shù)器,低6位為Y地址計數(shù)器,XY地址計數(shù)器實際上是作為DDRAM的地址指針,X地址計數(shù)器為DDRAM的頁指針,Y地址計數(shù)器為DDRAM的Y地址指針。 X地址計數(shù)器是沒有記數(shù)功能的,只能用指令設(shè)置。 Y地址計數(shù)器具有循環(huán)記數(shù)功能,各顯示數(shù)據(jù)寫入后,Y地址自動加1,Y地
8、址指針從0到63。(6) 顯示數(shù)據(jù)顯示數(shù)據(jù)RAM(DDRAM) DDRAM是存儲圖形顯示數(shù)據(jù)的。數(shù)據(jù)為1表示顯示選擇,數(shù)據(jù)為0表示顯示非選擇。DDRAM與地址和顯示位置的關(guān)系見DDRAM地址表7-3。 (7) Z地址計數(shù)器地址計數(shù)器 Z地址計數(shù)器是一個6位計數(shù)器,此計數(shù)器具備循環(huán)記數(shù)功能,它是用于顯示行掃描同步。當(dāng)一行掃描完成,此地址計數(shù)器自動加1,指向下一行掃描數(shù)據(jù),RST復(fù)位后Z地址計數(shù)器為0。Z地址計數(shù)器可以用指令DISPLAY START LINE預(yù)置。因此,顯示屏幕的起始行就由此指令控制,即DDRAM的數(shù)據(jù)從哪一行開始顯示在屏幕的第一行。此模塊的DDRAM共64行,屏幕可以循環(huán)滾動顯
9、示64行。 4. LCD12864的指令系統(tǒng)及時序的指令系統(tǒng)及時序 該類液晶顯示模塊(即KS0108B及其兼容控制驅(qū)動器)的指令系統(tǒng)比較簡單,總共只有七種。其指令表如表7-2所示: 指令名稱控制信號控制代碼R/WRSDB7DB6DB5DB4DB3DB2DB1DB0顯示開關(guān)0000111111/0顯示起始行設(shè)置0011XXXXXX頁設(shè)置0010111XXX列地址設(shè)置0001XXXXXX讀狀態(tài)10BUSY0ON/OFFRST0000寫數(shù)據(jù)01寫數(shù)據(jù)讀數(shù)據(jù)11讀數(shù)據(jù) 表8-2 LCD12864指令表 (1).各功能指令分別介紹如下: 顯示開/關(guān)指令code:R/WRSDB7DB6DB5DB4DB3D
10、B2DB1DB00000111111/0 功能:當(dāng)DB01時,LCD顯示RAM中的內(nèi)容,即指令0X3F,開顯示;DB00時, 關(guān)閉顯示不影響顯示RAM(DD RAM)中的內(nèi)容,即指令0 x3E”。 顯示起始行(ROW)設(shè)置指令R/W RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00011顯示起始行(063) 功能:該指令設(shè)置了對應(yīng)液晶屏最上一行的顯示RAM的行號,有規(guī)律地改變顯示起始行,可以使LCD實現(xiàn)顯示滾屏的效果,用指令“0 xc0+add”表示。 add=0,則第一行字符顯示在最上面,add=1,則第一行字符顯示在第二行。 頁(PAGE)設(shè)置指令R/W RSDB7 D
11、B6 DB5 DB4 DB3 DB2 DB1 DB00 01 0 1 1 1頁號(07)功能:顯示RAM共64行,分8頁,每頁8行。從DB3到 DB7的值可 以看出,用指令“0 xb8+add”表示,該指令設(shè)置后面續(xù)寫得頁地址, LCD12864一個字節(jié)數(shù)據(jù)對應(yīng)縱向8個點,因此頁號(add)為07。 列地址(Y Address)設(shè)置指令R/WRSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00001顯示列地址(063) 功能:設(shè)置了頁地址和列地址,就唯一確定了顯示RAM中的一個單元,用指令“0 xb8+add”表示,add取值范圍是063。 這樣MPU就可以用讀、寫指令讀出該單
12、元中的內(nèi)容或向該單元寫進一個字節(jié)數(shù)據(jù)。下面圖7-4畫出了LCD12864點陣結(jié)構(gòu)圖,其中左半屏和右半屏都有64列,64行分為8頁,顯示緩沖頁地址、列地址與點陣位置對應(yīng),單片機只需把字摸數(shù)據(jù)送到DDRAM中,就可顯示所需出字符。 圖8-4 LCD12864點陣圖 為了使得概念更清晰, 對上面的圖7-4進行詳細講解,即下面的表格 表7-3 RAM地址映像表,其中x =0到x= 7表示第1頁到第8頁,用CS1=1,表示選中左半屏,CS2=1表示選中右半屏,y 表示列,左半屏和右半屏都有64列,共計128列,表7-3 的 RAM地址映像表只表示了半屏的結(jié)構(gòu)。只要看懂地址映像表,那么顯示的位置應(yīng)該就很久
13、很簡單。 表8-3 RAM地址映像表地址映像表 讀狀態(tài)指令R/W RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB01 0BUSY 0 ON/OFF REST 0 0 0 0功能:該指令用來查詢液晶顯示模塊內(nèi)部控制器的狀態(tài),各參量含義如下: BUSY:1-內(nèi)部在工作0-正常狀態(tài) ON/OFF:1-顯示關(guān)閉0-顯示打開 RESET:1-復(fù)位狀態(tài)0-正常狀態(tài) 在BUSY和RESET狀態(tài)時,除讀狀態(tài)指令外,其它指令均不對液晶顯示模塊產(chǎn)生作用。在對液晶顯示模塊操作之前要查詢BUSY狀態(tài),以確定是否可以對液晶顯示模塊進行操作。 寫數(shù)據(jù)指令R/W RSDB7 DB6 DB5 DB4 DB3
14、 DB2 DB1 DB00 1D7 D6 D5 D4 D3 D2 D1 D0功能:寫數(shù)據(jù)到DDRAM,DDRAM是存儲圖形顯示數(shù)據(jù)的,寫指令執(zhí)行后Y地址計數(shù)器自動加1。D7-D0位數(shù)據(jù)為1表示顯示,數(shù)據(jù)為0表示不顯示。寫數(shù)據(jù)到DDRAM前,要先執(zhí)行“設(shè)置頁地址”及“設(shè)置列地址”命令。 讀數(shù)據(jù)指令R/W RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB01 1讀顯示數(shù)據(jù)功能: 讀、寫數(shù)據(jù)指令每執(zhí)行完一次讀、寫操作,列地址就自動增一。必須注意的是,進行讀操作之前,必須有一次空讀操作,緊接著再讀才會讀出所要讀的單元中的數(shù)據(jù)。 (2). 12864LCD的時序 寫操作時序 12864L
15、CD寫時序如圖7-5所示,首先給出DATA、RS、WR數(shù)據(jù),然后CPU的RW信號給出一個下降沿,也就是E的下降沿。由圖中可以看出,寫時序在RW的上升沿,給出E的下降沿,將數(shù)據(jù)寫入。圖8-5 LCD列驅(qū)動接口寫時序 讀操作時序 如圖7-6所示是LCD列驅(qū)動接口讀時序,RW為高電平時,當(dāng)給出E的高電平時讀出數(shù)據(jù)。 圖8-6 LCD列驅(qū)動接口讀時序二二 、任務(wù)分析、任務(wù)分析在點陣圖形液晶模塊上顯示以下內(nèi)容:在第一行居中顯示數(shù)字“歡迎使用”,第二行居中顯示“系統(tǒng)初始化”,第三行顯示“重慶歡迎你的到來”。第四行顯示“”。具體如圖7-7。圖8-7 模擬顯示效果圖三、任務(wù)實施三、任務(wù)實施1.12864點陣點
16、陣LCD軟硬件設(shè)計軟硬件設(shè)計通過以上學(xué)習(xí),分析該任務(wù),可設(shè)計出LCD12864的軟硬件如圖7-8。在調(diào)試前先將顯示切換開關(guān)切換到LCD顯示狀態(tài)。 I/O 設(shè)備訪問形式控制該液晶顯示模塊,只要采用單片機的輸入輸出口模擬12864的讀寫時序,發(fā)送相應(yīng)的控制指令和數(shù)據(jù)等,具體I/O 設(shè)備訪問形式接線電路圖如圖7-8。 圖8-8 單片機與12864硬件接線圖 2. 流程圖和編程思想流程圖和編程思想通過分析和接線, 12864液晶模塊的驅(qū)動軟件流程圖如圖7-9.圖8-9 軟件流程圖 通過以上流程圖,具體的思想,首先初始化,主要完成TG12864的復(fù)位,清屏等。然后復(fù)位操作(RST=0),其主要狀態(tài)有設(shè)置
17、顯示狀態(tài)為關(guān)顯示狀態(tài),顯示起始寄存器清零,顯示RAM第一行 對應(yīng)顯示屏上的第一行,在復(fù)位期間狀態(tài)字中RESET位置“1”。最后是清屏操作,主要完成對12864內(nèi)部的數(shù)據(jù)存儲器清零。 3.程序代碼如下:程序代碼如下:#include /包含reg52.h頭文件,說明了AT89S52芯片中所擁有的特殊功能、 寄存器和可尋址標(biāo)志位#define uint unsigned int /定義無符號整型 #define uchar unsigned char /定義無符號字符型 #define Dataport/* 數(shù)據(jù)端口 */ P0 /定義P0端口為LCD數(shù)據(jù)總線,用于傳輸指令命令和顯示數(shù)據(jù) /128
18、64引腳定義以下程序見課本4.實驗效果實驗效果 經(jīng)過程序的調(diào)試,編譯,并下載到單片機,可以在設(shè)備上顯示如圖7-10, 然后用仿真軟件可以仿真得出仿真效果圖7-11。 圖8-10 12864實物實驗結(jié)果 圖8-11 12864仿真實驗結(jié)果 備注備注:當(dāng)IC1在接受指令前,微處理器必須先確認其內(nèi)部處于非忙碌狀態(tài),即讀取BF標(biāo)志時,BF需為零,方可接受新的指令;如果在送出一個指令前并不檢查BF標(biāo)志,那么在前一個指令和這個指令中間必須延長一段較長的時間,即是等待前一個指令確實執(zhí)行完成。四、任務(wù)自評四、任務(wù)自評 通過前面的講解,相信你已經(jīng)完成了該任務(wù),那么 該任 務(wù)你是否完美的完成了?那就通過下面的表格
19、來反映吧!項目內(nèi)容完成要求 分值完成情況自評分值 LCD12864液晶顯示流程設(shè)計正確 20程序編寫正確 30實物連線正確 20調(diào)試結(jié)果正確 30五、知識拓展五、知識拓展 上面講解了在LCD12864液晶上顯示文字和字母,下面把知識擴展一下,講解如何用LCD12864顯示直線、繪畫、反白、下劃線等用法。 1.繪圖畫點與擦除點繪圖畫點與擦除點 下面是畫點與擦除點的用法,都是進過測試通過的,前面省略了接線的連接圖,連接圖和上面的一樣,為了使得講解清楚,并給出了逐行功能,最后付出了實驗效果。 /* 將一字節(jié)數(shù)據(jù)dat寫到r行,c列 */void wrposnDat(uchar r,uchar c,u
20、char dat) /wrpositionDat if(c64)cs1=1,cs2=0; /選擇左屏 else cs1=0,cs2=1,c-=64; /選擇右屏 wrcdat(0,0 xb8+r); wrcdat(0,0 x40+c); wrcdat(1,dat);/* 讀當(dāng)前顯示數(shù)據(jù) */uchar ReadDat(uchar r,uchar c) uchar temp;if(c64)cs1=1,cs2=0;/選擇左屏else cs1=0,cs2=1,c-=64;/選擇右屏wrcdat(0,0 xb8+r);wrcdat(0,0 x40+c);busy12864();Dataport=0 x
21、ff;rs=1;rw=1;en=1;en=0;delay(1); /讀空操作en=1;temp=Dataport;en=0;/正式讀數(shù)據(jù)return temp; uchar code dotDat8=0 x01,0 x02,0 x04,0 x08,0 x10,0 x20,0 x40,0 x80; /畫點函數(shù),r行號(063),c列號(0127),add=1,畫點,add=0刪除點, :8個數(shù)據(jù)對應(yīng)某頁中從上到下8個畫點位置。showDot(uchar r,uchar c,bit add) if(add)wrposnDat(r/8,c,ReadDat(r/8,c)|dotDatr%8); /畫點
22、。其中,r/8獲得“頁”號,r%8獲得“頁內(nèi)行號”。ReadDat(r/8,c)讀原位置數(shù)據(jù)“|dotDatr%8”從數(shù)組中讀對應(yīng)數(shù)據(jù),把“點”添加上去(位或),最后再寫回液晶模塊LCM。 else wrposnDat(r/8,c,ReadDat(r/8,c)&(dotDatr%8); /擦除一個點?!?amp;(dotDatr%8)”數(shù)據(jù)取反后“位乘”到原數(shù)據(jù)上。void main() uchar r,c;Init12864(); /初始化for(r=10,c=20;r10;r-,c+=2)showDot(r,c,1); /從(20,40)描點到(40,80),畫另一斜線;showD
23、ot(25,50,0); /刪除兩斜線交叉點。while(1);經(jīng)過實驗,效果如圖圖 8-12 所示,8-12 (a)為畫斜線結(jié)果。 8-12 (a)畫斜線 8-12 (b)畫矩形(2)畫矩形畫矩形 可以利用循環(huán)畫點得到線,分別畫4條線就構(gòu)成矩形圖,得到結(jié)果如圖7-12 (b)。 /* 畫矩形,參數(shù):r1,c1,左上角行列號,r2,c2右下角行列號 */ rect(uchar r1,uchar c1,uchar r2,uchar c2) /畫矩形的函數(shù)。函數(shù)中沒有對參數(shù)進行“合理性”檢測。調(diào)用時,參數(shù)必須是:r1=r2, c1=c2,同時r1和r2取值063,c1和c2取值0127。 uchar i; for(i=r1;i=r2;i+)showDot(i,c1,1);showDot(i,c2,1); / 畫兩條。 for(i=c1;i=c2;i+)showDot(r1,i,1);showDot(r2,i,1); void main() Init12864(); /初始化 rect(0,0,63,127);/畫第一個矩形 rect(1,1,62,126);/畫第二個矩形 rect(5,20,35,95);/畫第三個矩形 rect(20,35,58,115);/畫
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年浙教版九年級地理下冊階段測試試卷
- 2025年粵教新版九年級歷史上冊月考試卷含答案
- 2025年中圖版選擇性必修3歷史上冊月考試卷含答案
- 2025年滬教版八年級歷史下冊階段測試試卷含答案
- 2025年人教新起點高一語文上冊月考試卷
- 遵義醫(yī)藥高等??茖W(xué)?!冬F(xiàn)代漢語語法研究》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五年度出租車行業(yè)駕駛員安全責(zé)任合同范本4篇
- 二零二五年度出租車公司車輛調(diào)度合同3篇
- 房屋贈與合同范本(2篇)
- 2025年度農(nóng)機保險代理銷售合同范本4篇
- 蛋糕店服務(wù)員勞動合同
- 土地買賣合同參考模板
- 2025高考數(shù)學(xué)二輪復(fù)習(xí)-專題一-微專題10-同構(gòu)函數(shù)問題-專項訓(xùn)練【含答案】
- 新能源行業(yè)市場分析報告
- 2025年天津市政建設(shè)集團招聘筆試參考題庫含答案解析
- 巖土工程勘察.課件
- 60歲以上務(wù)工免責(zé)協(xié)議書
- 滋補類用藥的培訓(xùn)
- 北師大版高三數(shù)學(xué)選修4-6初等數(shù)論初步全冊課件【完整版】
- 高職《勞動教育》指導(dǎo)綱要
- XX公司年會活動報價單
評論
0/150
提交評論