QC12864B驅(qū)動說明_第1頁
QC12864B驅(qū)動說明_第2頁
QC12864B驅(qū)動說明_第3頁
QC12864B驅(qū)動說明_第4頁
QC12864B驅(qū)動說明_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、QC12864B驅(qū)動說明一、 概述    帶中文字庫的128X64是一種具有4位/8位并行、2線或3線串行多種接口方式,內(nèi)部含有國標一級、二級簡體中文字庫的點陣圖形液晶顯示模塊;其顯示分辨率為128×64, 內(nèi)置8192個16*16點漢字,和128個16*8點ASCII字符集.利用該模塊靈活的接口方式和簡單、方便的操作指令,可構(gòu)成全中文人機交互圖形界面??梢燥@示8×4行16×16點陣的漢字. 也可完成圖形顯示.低電壓低功耗是其又一顯著特點。由該模塊構(gòu)成的液晶顯示方案與同類型的圖形點陣液晶顯示模塊相比,不論硬件電路結(jié)構(gòu)或顯示程序都要簡潔得多,且該

2、模塊的價格也略低于相同點陣的圖形液晶模塊。二、 基本特性(1)低電源電壓(VDD:+3.0-+5.5V)(2)顯示分辨率:128×64點 (3)內(nèi)置漢字字庫,提供8192個16×16點陣漢字(簡繁體可選) (4)內(nèi)置 128個16×8點陣字符 (5)2MHZ時鐘頻率 (6)顯示方式:STN、半透、正顯 (7)驅(qū)動方式:1/32DUTY,1/5BIAS (8)視角方向:6點(9)背光方式:側(cè)部高亮白色LED,功耗僅為普通LED的1/51/10 (10)通訊方式:串行、并口可選 (11)內(nèi)置DC-DC轉(zhuǎn)換電路,無需外加負壓 (12)無需片選信號,簡化軟件設(shè)計(13)工

3、作溫度: 0 - +55 ,存儲溫度: -20 - +60三、模塊接口說明*注釋1:如在實際應(yīng)用中僅使用串口通訊模式,可將PSB接固定低電平,也可以將模塊上的J8和“GND”用焊錫短接。*注釋2:模塊內(nèi)部接有上電復(fù)位電路,因此在不需要經(jīng)常復(fù)位的場合可將該端懸空。*注釋3:如背光和模塊共用一個電源,可以將模塊上的JA、JK用焊錫短接??刂破鹘涌谛盘栒f明:1、RS,R/W的配合選擇決定控制界面的4種模式:RSR/W功能說明LLMPU寫指令到指令暫存器(IR)LH讀出忙標志(BF)及地址記數(shù)器(AC)的狀態(tài)HLMPU寫入數(shù)據(jù)到數(shù)據(jù)暫存器(DR)HHMPU從數(shù)據(jù)暫存器(DR)中讀出數(shù)據(jù)2、E信號E狀態(tài)

4、執(zhí)行動作結(jié)果高>低I/O緩沖>DR配合/W進行寫數(shù)據(jù)或指令高DR>I/O緩沖配合R進行讀數(shù)據(jù)或指令低/低>高無動作 忙標志:BF    BF標志提供內(nèi)部工作情況.BF=1表示模塊在進行內(nèi)部操作,此時模塊不接受外部指令和數(shù)據(jù).BF=0時,模塊為準備狀態(tài),隨時可接受外部指令和數(shù)據(jù).利用STATUS RD 指令,可以將BF讀到DB7總線,從而檢驗?zāi)K之工作狀態(tài). 字型產(chǎn)生ROM(CGROM)    字型產(chǎn)生ROM(CGROM)提供8192個此觸發(fā)器是用于模塊屏幕顯示開和關(guān)的控制。DFF=1為開顯示(DISPLAY O

5、N),DDRAM 的內(nèi)容就顯示在屏幕上,DFF=0為關(guān)顯示(DISPLAY OFF)。DFF 的狀態(tài)是指令DISPLAY ON/OFF和RST信號控制的。 顯示數(shù)據(jù)RAM(DDRAM)模塊內(nèi)部顯示數(shù)據(jù)RAM提供64×2個位元組的空間,最多可控制4行16字(64個字)的中文字型顯示,當寫入顯示數(shù)據(jù)RAM時,可分別顯示CGROM與CGRAM的字型;此模塊可顯示三種字型,分別是半角英數(shù)字型(16*8)、CGRAM字型及CGROM的中文字型,三種字型的選擇,由在DDRAM中寫入的編碼選擇,在0000H0006H的編碼中(其代碼分別是0000、0002、0004、0006共4個)將選擇CGRA

6、M的自定義字型,02H7FH的編碼中將選擇半角英數(shù)字的字型,至于A1以上的編碼將自動的結(jié)合下一個位元組,組成兩個位元組的編碼形成中文字型的編碼BIG5(A140D75F),GB(A1A0-F7FFH)。   字型產(chǎn)生RAM(CGRAM)    字型產(chǎn)生RAM提供圖象定義(造字)功能, 可以提供四組16×16點的自定義圖象空間,使用者可以將內(nèi)部字型沒有提供的圖象字型自行定義到CGRAM中,便可和CGROM中的定義一樣地通過DDRAM顯示在屏幕中。 地址計數(shù)器AC地址計數(shù)器是用來貯存DDRAM/CGRAM之一的地址,它可由設(shè)定指令暫存器來

7、改變,之后只要讀取或是寫入DDRAM/CGRAM的值時,地址計數(shù)器的值就會自動加一,當RS為“0”時而R/W為“1”時,地址計數(shù)器的值會被讀取到DB6DB0中。光標/閃爍控制電路   此模塊提供硬體光標及閃爍控制電路,由地址計數(shù)器的值來指定DDRAM中的光標或閃爍位置。四、指令說明模塊控制芯片提供兩套控制命令,基本指令和擴充指令如下:指令表1:RE=0:基本指令基本指令(30)指令指 令 碼功 能RSR/WD7D6D5D4D3D2D1D0 清除顯示0000000001將DDRAM填滿"20H",并且設(shè)定DDRAM的地址計數(shù)器(AC)到

8、"00H"地址歸位000000001X設(shè)定DDRAM的地址計數(shù)器(AC)到"00H",并且將游標移到開頭原點位置;這個指令不改變DDRAM 的內(nèi)容顯示狀態(tài)開/關(guān)0000001DCBD=1: 整體顯示 ON C=1: 游標ON    B=1:游標位置反白允許進入點設(shè)定00000001I/DS指定在數(shù)據(jù)的讀取與寫入時,設(shè)定游標的移動方向及指定顯示的移位游標或顯示移位控制000001S/CR/LXX設(shè)定游標的移動與顯示的移位控制位;這個指令不改變DDRAM 的內(nèi)容功能設(shè)定00001DLXREXXDL=0/1:4/8位數(shù)據(jù)

9、RE=1: 擴充指令操作RE=0: 基本指令操作設(shè)定CGRAM地址0001AC5AC4AC3AC2AC1AC0設(shè)定CGRAM 地址設(shè)定DDRAM地址0010AC5AC4AC3AC2AC1AC0設(shè)定DDRAM 地址(顯示位址)第一行:80H87H第二行:90H97H讀取忙標志和地址01BFAC6AC5AC4AC3AC2AC1AC0讀取忙標志(BF)可以確認內(nèi)部動作是否完成,同時可以讀出地址計數(shù)器(AC)的值寫數(shù)據(jù)到RAM10數(shù)據(jù)將數(shù)據(jù)D7D0寫入到內(nèi)部的RAM (DDRAM/CGRAM/IRAM/GRAM)讀出RAM的值11數(shù)據(jù)從內(nèi)部RAM讀取數(shù)據(jù)D7D0(DDRAM/CGRAM/IRAM/GR

10、AM)指令表2:RE=1:擴充指令(34)指令                  指 令 碼功 能RSR/WD7D6D5D4D3D2D1D0 待命模式0000000001進入待命模式,執(zhí)行其他指令都棵終止待命模式卷動地址開關(guān)開啟000000001SRSR=1:允許輸入垂直卷動地址SR=0:允許輸入IRAM和CGRAM地址反白選擇00000001R1R0選擇2行中的任一行作反白顯示,并可決定反白與否。初始值R1R000

11、,第一次設(shè)定為反白顯示,再次設(shè)定變回正常睡眠模式0000001SLXXSL=0:進入睡眠模式SL=1:脫離睡眠模式擴充功能設(shè)定00001CLXREG0CL=0/1:4/8位數(shù)據(jù)RE=1: 擴充指令操作RE=0: 基本指令操作G=1/0:繪圖開關(guān)設(shè)定繪圖RAM地址0010AC60AC50AC4AC3AC3AC2AC2AC1AC1AC0AC0設(shè)定繪圖RAM先設(shè)定垂直(列)地址AC6AC5AC0再設(shè)定水平(行)地址AC3AC2AC1AC0將以上16位地址連續(xù)寫入即可備注:當IC1在接受指令前,微處理器必須先確認其內(nèi)部處于非忙碌狀態(tài),即讀取BF標志時,BF需為零,方可接受新的指令;如果在送出一個指令前

12、并不檢查BF標志,那么在前一個指令和這個指令中間必須延長一段較長的時間,即是等待前一個指令確實執(zhí)行完成。五、應(yīng)用舉例:1、使用前的準備:先給模塊加上工作電壓,再按照下圖的連接方法調(diào)節(jié)LCD的對比度,使其顯示出黑色的底影。此過程亦可以初步檢測LCD有無缺段現(xiàn)象。2、字符顯示:帶中文字庫的128X64-0402B每屏可顯示4行8列共32個16×16點陣的漢字,每個顯示RAM可顯示1個中文字符或2個16×8點陣全高ASCII碼字符,即每屏最多可實現(xiàn)32個中文字符或64個ASCII碼字符的顯示。帶中文字庫的128X64-0402B內(nèi)部提供128×2字節(jié)的字符顯示RAM緩沖

13、區(qū)(DDRAM)。字符顯示是通過將字符顯示編碼寫入該字符顯示RAM實現(xiàn)的。根據(jù)寫入內(nèi)容的不同,可分別在液晶屏上顯示CGROM(中文字庫)、HCGROM(ASCII碼字庫)及CGRAM(自定義字形)的內(nèi)容。三種不同字符/字型的選擇編碼范圍為:00000006H(其代碼分別是0000、0002、0004、0006共4個)顯示自定義字型,02H7FH顯示半寬ASCII碼字符,A1A0HF7FFH顯示8192種GB2312中文字庫字形。字符顯示RAM在液晶模塊中的地址80H9FH。字符顯示的RAM的地址與32個字符顯示區(qū)域有著一一對應(yīng)的關(guān)系,其對應(yīng)關(guān)系如下表所示。80H81H82H83H84H85H8

14、6H87H90H91H92H93H94H95H96H97H88H89H8AH8BH8CH8DH8EH8FH98H99H9AH9BH9CH9DH9EH9FH3 、圖形顯示先設(shè)垂直地址再設(shè)水平地址(連續(xù)寫入兩個字節(jié)的資料來完成垂直與水平的坐標地址)垂直地址范圍 AC5.AC0水平地址范圍 AC3AC0繪圖RAM 的地址計數(shù)器(AC)只會對水平地址(X 軸)自動加一,當水平地址=0FH 時會重新設(shè)為00H 但并不會對垂直地址做進位自動加一,故當連續(xù)寫入多筆資料時,程序需自行判斷垂直地址是否需重新設(shè)定。GDRAM的坐標地址與資料排列順序如下圖:4、應(yīng)用說明用帶中文字庫的128X64顯示模塊時應(yīng)注意以下

15、幾點:欲在某一個位置顯示中文字符時,應(yīng)先設(shè)定顯示字符位置,即先設(shè)定顯示地址,再寫入中文字符編碼。顯示ASCII字符過程與顯示中文字符過程相同。不過在顯示連續(xù)字符時,只須設(shè)定一次顯示地址,由模塊自動對地址加1指向下一個字符位置,否則,顯示的字符中將會有一個空ASCII字符位置。當字符編碼為2字節(jié)時,應(yīng)先寫入高位字節(jié),再寫入低位字節(jié)。模塊在接收指令前,向處理器必須先確認模塊內(nèi)部處于非忙狀態(tài),即讀取BF標志時BF需為“0”,方可接受新的指令。如果在送出一個指令前不檢查BF標志,則在前一個指令和這個指令中間必須延遲一段較長的時間,即等待前一個指令確定執(zhí)行完成。指令執(zhí)行的時間請參考指令表中的指令執(zhí)行時間

16、說明?!癛E”為基本指令集與擴充指令集的選擇控制位。當變更“RE”后,以后的指令集將維持在最后的狀態(tài),除非再次變更“RE”位,否則使用相同指令集時,無需每次均重設(shè)“RE”位六、軟件初始化1.開發(fā)板(型號LY-51S)位定義:sbit E=P26;sbit RW=P25;sbit RS=P24;sbit RST=P23;sbit Busy=P07;#define LCDdata P02.延時函數(shù):void delay(uint xx) while(xx-);3. 讀忙狀態(tài) void rdbf(void) while(1) RS=0;RW=1;E=0;LCDdata=0xFF;E=1;if(LCD

17、data&Busy)=0)break; 4. 寫數(shù)據(jù)void wr_data(uchar wrdata) rdbf();RS=1;RW=0;E=1;LCDdata=wrdata;E=0;5. 寫指令(寫指令)void wr_cmd(uchar cmd) rdbf();/當BF=0時,模塊內(nèi)部方可接收新的指令RS=0;RW=0;E=1;LCDdata=cmd;E=0;6.確定行、列號,并顯示數(shù)據(jù)void display(uchar x,uchar y,uchar *seg)/x為行號,y為列號uchar i;uint t=0;switch(x) /確定行號case 1: i=0x80;

18、break;/第一行case 2: i=0x90; break; /第二行case 3: i=0x88; break; /第三行case 4: i=0x98; break; /第四行default : break;i=i+y-1; /確定列號wr_cmd(i);while(segt!='0')wr_data(segt);/寫入需要顯示字符的顯示碼t+;7. Lcd寫數(shù)據(jù)初始化void lcd_init(void)delay(5000);RST=1;RST=0;RST=1;wr_cmd(0x30);delay(500);wr_cmd(0x30); /2次功能模式設(shè)置,不用判忙(基

19、本指令)delay(500);wr_cmd(0x0c); /整體顯示,光標及其設(shè)置不顯示delay(500);wr_cmd(0x01); /清屏delay(500);delay(500);wr_cmd(0x06); /光標右移delay(500);以下內(nèi)容只用于繪圖(繪圖模式下,會調(diào)用上述部分函數(shù),請讀者自行添加)8.讀數(shù)據(jù)uchar read_data(void)uchar RData;LCDdata=0xff;rdbf();RS=1;RW=1;E=0;E=1;RData=LCDdata;E=0;return RData;9. GDRAM初始化void clr_GDRAM(void)ucha

20、r x,y;for(y=0;y<64;y+) for(x=0;x<16;x+) wr_cmd(0x34); wr_cmd(y+0x80); /行地址 wr_cmd(x+0x80); /列地址 wr_cmd(0x30); wr_data(0x00); wr_data(0x00); 10. Lcd繪圖初始化void lcd_init(void)delay(2000);wr_cmd(0x30);delay(50);wr_cmd(0x30); /2次功能模式設(shè)置,不用判忙(基本指令)delay(50);wr_cmd(0x0c); /整體顯示,光標及其設(shè)置不顯示delay(50);wr_cm

21、d(0x01); /清屏delay(500);wr_cmd(0x06); /光標右移clr_GDRAM();11.繪制128X64的圖片void disp_picture(uchar *img) uchar i,j; for(j=0;j<32;j+) for(i=0;i<8;i+) wr_cmd(0x34); wr_cmd(0x80+j); wr_cmd(0x80+i); wr_cmd(0x30); wr_data(imgj*16+i*2); wr_data(imgj*16+i*2+1); for(j=32;j<64;j+) for(i=0;i<8;i+) wr_cmd

22、(0x34); wr_cmd(0x80+j-32); wr_cmd(0x80+(i+8); wr_cmd(0x30); wr_data(imgj*16+i*2); wr_data(imgj*16+i*2+1); wr_cmd(0x36);12.繪制128X64圖的上半部分(128X32)void dispU_picture(uchar *img)uchar i,j;for(j=0;j<32;j+)for(i=0;i<8;i+)wr_cmd(0x34);wr_cmd(0x80+j);wr_cmd(0x80+i);wr_cmd(0x30);wr_data(imgj*16+i*2);wr

23、_data(imgj*16+i*2+1);wr_cmd(0x36);13. 繪制128X64圖的下半部分(128X32)void dispD_picture(uchar *img)uchar i,j;for(j=0;j<32;j+)for(i=0;i<8;i+)wr_cmd(0x34);wr_cmd(0x80+j);wr_cmd(0x80+(i+8);wr_cmd(0x30);wr_data(imgj*16+i*2);wr_data(imgj*16+i*2+1);wr_cmd(0x36);14. 畫點(該程序用于以下繪圖程序的調(diào)用,必須寫)void drawPoint(uchar

24、x,uchar y,uchar color) uchar row,collum,cbite;uchar tempH,tempL;wr_cmd(0x34);wr_cmd(0x36);collum=x>>4;cbite=x&0x0f;if(y<32)row=y;elserow=y-32;collum+=8;wr_cmd(0x80+row);wr_cmd(0x80+collum);read_data();tempH=read_data();tempL=read_data();wr_cmd(0x80+row);wr_cmd(0x80+collum);if(color)if(c

25、bite<8)tempH|=(1<<(7-cbite);elsetempL|=(1<<(15-cbite);elseif(cbite<8)tempH&=(1<<(7-cbite);elsetempL&=(1<<(15-cbite);wr_data(tempH);wr_data(tempL);wr_cmd(0x30);15.繪橫線void drawRowLine(uchar x0,uchar y0,uchar x1,uchar color)uchar temp;if(x0>x1) / 對x0、x1大小進行排列,以便

26、畫圖/x0<128,x1<128,y0<64temp=x1;x1=x0;x0=temp; dodrawPoint(x0,y0,color);/ 逐點顯示,描出垂直線x0+;while(x1>=x0);16.繪豎線void drawCollumLine(uchar x0,uchar y0,uchar y1,uchar color)uchar temp; /x0<128,y0<64,y1<64if(y0>y1)temp=y0;y0=y1;y1=temp;while (y0<=y1)drawPoint(x0,y0,color);y0+;17. 畫任意線(本函數(shù)要調(diào)用繪橫線和繪豎線函數(shù),讀者請自行添寫)void drawLine(uchar x0,uchar y0,uchar x1,uchar y1,uchar color)int dx;/ 直線x軸差值變量int dy; / 直線y軸差值變量char dx_sym;/ x軸增長方向,為-1時減值方向,為1時增值方向char dy_sym;/ y軸增長方向,為-1時減值方向,為1時增值方向int dx_2;/ dx*2值變量,用于加快運算速度int dy_2;/ d

溫馨提示

  • 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論