版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第四講LCD液晶顯示模塊
LCD結(jié)構(gòu)與原理
1、LCD(LiquidCrystalDisplay)的工作原理液晶面板包含了兩片精致的玻璃,中間夾著一層液晶。液晶是一種具有規(guī)則性分子排列的有機化合物。當加電時導通,排列有秩序,使光線容易通過;不加電時排列混亂,阻止光線通過。由于液晶材料本身并不發(fā)光,所以在液晶顯示屏背面有一塊背光板和反光膜,背光板是由熒光物質(zhì)組成的,可以發(fā)射光線,其作用主要是提供均勻的背景光源。背光板發(fā)出的光線在穿過第一層玻璃板之后進入包含成千上萬水晶液滴的液晶層。液晶層中的水晶液滴都被包含在細小的單元格結(jié)構(gòu)中,一個或多個單元格構(gòu)成屏幕上的一個像素。在玻璃板與液晶材料之間是透明的電極,電極分為行和列,在行與列的交叉點上,通過改變電壓而改變液晶的旋光(排列)狀態(tài),所以液晶材料的作用類似于一個個小的光閥。LCD顯示器的分類當前市場上液晶顯示器種類繁多,按排列形狀可分為字段型、點陣字符型和點陣圖形型。(1)字段型。它是以長條狀組成字符顯示。該類顯示器主要用于數(shù)字顯示,也可用于顯示西文字母或某些字符,已廣泛用于電子表、計算器、數(shù)字儀表中(類似于數(shù)碼管)。(2)點陣字符型。它專門用于顯示字母、數(shù)字、符號等。它由若干57或510的點陣組成,每一個點陣顯示一個字符。此類顯示模塊廣泛應用在各類單片機應用系統(tǒng)中。(3)點陣圖形型。它是在平板上排列多行或多列,形成矩陣式的晶格點,點的大小可根據(jù)顯示的清晰度來設計。這類液晶顯示器可廣泛應用于圖形顯示,如用于筆記本電腦、彩色電視和游戲機等。點陣字符型液晶顯示模塊介紹在單片機應用系統(tǒng)中,常使用點陣字符型LCD顯示器。要使用點陣字符型LCD顯示器,必須有相應的LCD控制器、驅(qū)動器來對LCD顯示器進行掃描、驅(qū)動,還要有一定空間的RAM和ROM來存儲單片機寫入的命令和顯示字符的點陣。由于LCD的面板較為脆弱,制造商已將LCD控制器、驅(qū)動器、RAM、ROM和LCD顯示器用PCB連接到一起,稱為液晶顯示模塊(LCdModule,LCM)。使用者只需購買現(xiàn)成的液晶顯示模塊即可。單片機控制LCM時,只要向LCM送入相應的命令和數(shù)據(jù)就可實現(xiàn)所需要的顯示內(nèi)容,這種模塊與單片機接口簡單,使用靈活方便。(1)液晶顯示板在液晶顯示板上排列著若干57或510點陣的字符顯示位,從規(guī)格上分為每行8、16、20、24、32、40位,有1行、2行及4行等,用戶可根據(jù)需要,選擇購買。(2)模塊電路框圖
圖10-18為字符型LCD模塊框圖,它由日立公司生產(chǎn)的控制器HD44780、驅(qū)動器HD44100及幾個電阻和電容組成。HD44100是擴展顯示字符位用的(例如,16字符1行模塊就可不用HD44100,16字符2行模塊就要用一片HD44100)。圖10-18
字符型LCD模塊的電路框圖(3)1602字符型LCM的特性(兩行顯示,每行16個字符)①內(nèi)部具有字符發(fā)生器ROM(CGROM),即字符庫??娠@示192個57點陣字符,見圖10-19。由該字符庫可看出LCM顯示的數(shù)字和字母部分的代碼值,恰好與ASCII碼表中的數(shù)字和字母相同。所以在顯示數(shù)字和字母時,只需向LCM送入對應的ASCII碼即可。② 模塊內(nèi)有64字節(jié)的自定義字符RAM(CGRAM),用戶可自行定義8個57點陣字符。圖10-19ROM字符庫的內(nèi)容(12*16=192個字符+4*16=64預留自定義字符)③模塊內(nèi)有80字節(jié)的數(shù)據(jù)顯示存儲器(DDRAM)即:緩存、顯存注意:這里的地址屬于片外地址,所以其實際地址要加上0x80(片內(nèi)128B,地址范圍:0X00~0X7F)2.LCM的引腳1602LCM通常有16個引腳,也有少數(shù)的LCM為14個引腳,其中包括8條數(shù)據(jù)線、3條控制線和3條電源線,如表10-10所示。通過單片機寫入模塊的命令和數(shù)據(jù),就可對顯示方式和顯示內(nèi)容做出選擇。3.命令格式及功能說明(1)內(nèi)部寄存器LCD控制器HD44780內(nèi)有多個寄存器,寄存器的選擇如表10-11所示。RS位和R/W*引腳上的電平?jīng)Q定對寄存器的選擇和讀/寫,而DB7~DB0決定命令功能。忙標記和地址計數(shù)器(也稱狀態(tài)字寄存器)最高位(STA7)為忙標記:1忙(不能讀寫)0閑(可讀寫)低7位(STA6~STA0)為顯存地址:顯存為80B,其地址占7位,分別
為:第一行0X00~0X27、第二行0X40~0X67)(2)命令功能說明下面介紹可寫入命令寄存器的11個命令。①清屏。命令格式如下:功能:清除屏幕顯示,并把地址計數(shù)器AC置“0”。②返回。命令格式如下:功能:置DDRAM(顯示數(shù)據(jù)RAM)及顯示RAM的地址為“0”,顯示返回到原始位置。數(shù)據(jù)沒有被清空,屏幕仍會顯示!下一次顯示從第一行第一位開始。③輸入方式設置。命令格式如下:
功能:i)設置光標移動方向(I/D=1,為增量方式:每讀/寫一個字符后地址加1,光標加1;I/D=0,為減量方式:每讀/寫一個字符后地址減1,光標減1;)ii)指定屏幕是否移動(S=1,表示移位,每寫一個字符后整個屏幕顯示移動(I/D=1,屏幕左移;I/D=0,屏幕右移)而光標不動;S=0,屏幕顯示不移動。④顯示開關(guān)控制。命令格式如下:功能:D位(DB2)控制整體顯示的開關(guān),D=1,開顯示;D=0,關(guān)顯示。C位(DB1)控制光標的開關(guān),C=1,光標開;C=0,光標關(guān)。B位(DB0)控制光標處字符的閃爍,B=1,光標閃爍;B=0,光標不閃爍。⑤光標移位。命令格式如下:功能:移動光標或整體顯示,DDRAM中內(nèi)容不變。其中:S/C=1時,顯示移位(屏幕移位、顯示范圍移位);S/C=0時,光標移位。R/L=1時,向右移位,R/L=0時,向左移位。⑥功能設置。命令格式如下:
功能:DL位設置接口數(shù)據(jù)位數(shù),DL=1為8位數(shù)據(jù)接口;DL=0為4位數(shù)據(jù)接口。N位設置顯示行數(shù),N=0單行顯示;N=1雙行顯示。F位設置字型大小,F(xiàn)=1時為510點陣,F(xiàn)=0時為57點陣。⑦CGRAM(自定義字符RAM)地址設置。格式如下:功能:設置CGRAM的地址,地址范圍為0~63。⑧DDRAM(數(shù)據(jù)顯示存儲器)地址設置。命令格式如下:功能:設置DDRAM的地址,地址范圍為0~127。
⑨讀忙標志BF及地址計數(shù)器。命令格式如下:功能:BF位為忙標志。BF=1,表示忙,此時LCM不能接收命令和數(shù)據(jù);BF=0,則表示LCM不忙,可接收命令和數(shù)據(jù)。AC位為地址計數(shù)器的值,范圍為0~127。
⑩向CGRAM/DDRAM寫數(shù)據(jù)。命令格式如下:功能:將數(shù)據(jù)寫入CGRAM或DDRAM中,應與CGRAM或DDRAM地址設置命令結(jié)合使用。
?從CGRAM/DDRAM中讀數(shù)據(jù)。命令格式如下:功能:從CGRAM或DDRAM中讀出數(shù)據(jù),應與CGRAM或DDRAM地址設置命令結(jié)合使用。(3)有關(guān)說明①顯示位與DDRAM地址的對應關(guān)系,如表10-12所示。(3)有關(guān)說明②讀寫時序(相對單片機而言LCM速度很慢,所以一定要LCM的操作時序,否則會導致錯誤)大家要學會看時序圖,以后會用到更多的部件,使用時都要注意它們的時序,看時序圖的方法都是一樣的。(3)有關(guān)說明②讀寫時序(3)有關(guān)說明②讀寫時序i)廠家在做時序圖時一般會把信號按照信號有效的時間順序從上到下排列,所以操作順序也就變成了先操作最上邊的信號,接著依次操作后面的。ii)讀操作的時序應該是:①、RS=0(讀忙標志BF和地址計數(shù)器AC)或RS=1(讀數(shù)據(jù)寄存器);②、(延時tSP1,等待地址建立,再發(fā)讀命令)RW=1(讀操作);③、E=1,LCM將數(shù)據(jù)輸出到數(shù)據(jù)線上,并保持,一直到E=0為止;④、(延時tD,等待數(shù)據(jù)建立[穩(wěn)定])從數(shù)據(jù)線上讀取數(shù)據(jù)⑤、E=0,撤銷數(shù)據(jù)。(3)有關(guān)說明②讀寫時序(3)有關(guān)說明②讀寫時序iii)寫操作的時序應該是:①、RS=0(寫指令寄存器)或RS=1(寫數(shù)據(jù)寄存器);②、(延時tSP1,等待地址建立,再發(fā)寫命令)RW=0(寫操作);③、由于LCM是在E的下降沿將數(shù)據(jù)送入內(nèi)部控制器鎖存,為了產(chǎn)生下降沿,在將數(shù)據(jù)送到總線之前,E=1;④、MCU將數(shù)據(jù)送到數(shù)據(jù)線上;⑤、(延時tHD2,數(shù)據(jù)在總線上保持一段時間)E=0,產(chǎn)生下降沿,將數(shù)據(jù)鎖存,即寫操作時E下降沿有效。(3)有關(guān)說明②讀寫時序AT89S51單片機與LCD的接口及軟件編程1.AT89S51單片機與1602LCD模塊的接口AT89S51與1602LCD模塊(LCM)的接口電路如圖10-20所示,通過對數(shù)據(jù)總線的讀寫實現(xiàn)對LCM的控制。圖10-20AT89S51單片機與LCD模塊的接口電路2.讀LCM狀態(tài)(測試忙/閑)//函數(shù)名稱:DectectBusyBit()//函數(shù)功能:檢測狀態(tài)標志位(判斷是忙/閑)//入口參數(shù):無//出口參數(shù):忙時返回1,閑時返回0/*******************************************************/unsignedcharDectectBusyBit(void)//狀態(tài)判斷函數(shù)(忙/閑?忙時返回1,閑時返回0){bitresult;P0=0xff;/*讀狀態(tài)值時,先賦高電平,因為數(shù)據(jù)線上之前的值可能為0,會誤認為LCM空閑*/RS=0;delay(5);RW=1;LCDEN=1;delay(5);//延時,等待數(shù)據(jù)穩(wěn)定result=BF;LCDEN=0;returnresult; } 3.寫命令//函數(shù)名稱:WrComLCD()//函數(shù)功能:為LCD寫指令//入口參數(shù):指令(ComVal)//出口參數(shù):無/*******************************************************/voidWrComLCD(unsignedcharComVal){ while(DectectBusyBit()==1);//先檢測LCM是否空閑 RS=0; delay(1);RW=0; LCDEN=1; P0=ComVal; delay(1); LCDEN=0; }4.寫數(shù)據(jù)//函數(shù)名稱:WrDatLCD()//函數(shù)功能:為LCD寫數(shù)據(jù)//入口參數(shù):數(shù)據(jù)(DatVal)//出口參數(shù):無/*******************************************************/voidWrDatLCD(unsignedcharDatVal){ while(DectectBusyBit()==1); RS=1; delay(1);RW=0; LCDEN=1; P0=DatVal; delay(1); LCDEN=0; }5.初始化0FH:開顯示,光標閃爍5.初始化//函數(shù)名稱:LCD_Init()//函數(shù)功能:初始化LCD//入口參數(shù):無//出口參數(shù):無/*******************************************************/voidLCD_Init(void){ WrComLCD(0x38);//功能設定:16*2行顯示、5*7點陣、8位數(shù)據(jù)接口
WrComLCD(0x38); WrComLCD(0x38);//多次重復設定指令,是因為LCD啟動后并不知道您使用的是4位數(shù)據(jù)通信方式還是8位方式,所以它總是先執(zhí)行高4位的指令,也就是說第一次寫入該指令時,低四位的數(shù)據(jù)可能被忽略,為了可靠,最好多寫幾遍該指令。
WrComLCD(0x01);//顯示清屏
WrComLCD(0x06);//光標自增、畫面不動
delay(1); //稍作延時,等待上面的設置生效,防止下面顯示亂碼
WrComLCD(0x0C);//開顯示、關(guān)光標}【例1】1602液晶顯示實例實現(xiàn)在1602液晶的第一行顯示“Welcome!”,在第二行顯示“MCU-STUDY-BOARD”。電路源程序【例2】1602液晶顯示實例返回指令與清屏指令的比較電路源程序【例3】1602液晶顯示實例按鍵控制1602液晶上光標移動、整屏移動可以讓光標移動到任何位置改寫電路源程序【例4】1602液晶顯示實例實現(xiàn)在1602液晶上滾動顯示電路源程序12864概述(64行128列點陣)
我們學習是采用的LCD為STN類,像素為128*64黑白字符圖形式12864液晶屏。買LCD的時候會配帶相應的驅(qū)動控制器,雖然對應的驅(qū)動控制其型號很多,不過使用方法大同小異。12864有帶字庫的和不帶字庫兩種,不帶字庫的需要自己用專用軟件取模,現(xiàn)在市面上常用的驅(qū)動控制器都帶字庫。JHD529M1是一個128*64的LCD驅(qū)動控制器,可顯示漢字及圖形。內(nèi)置8192個中文漢字CGROM(16*16)、128個字符(ASCII碼)HCGROM(8*16)及128*64點陣顯示RAM(GDRAM)。128×64點陣液晶顯示屏有三種控制器,分別是KS0108、T6963C和ST7920。三種控制器主要區(qū)別是:KS0108不帶任何字庫、T6963C帶ASCII碼、ST7920帶國標二級字庫(8千多個漢字)。采用不同的控制芯片,其管腳定義不一樣,控制方式也不一樣,請大家一定要注意!ST7920功能描述ST7920是一個集成LCD控制器和驅(qū)動器的芯片,能夠顯示字母、數(shù)字、中文和自定義字符。支持8位、4位并行及串行總線接口。包括RAM、ROM、LCD顯示驅(qū)動和控制電路的所有功能都集成在一塊芯片上。最小的系統(tǒng)配置就能實現(xiàn)中文字符的顯示。
ST7920包含的字符ROM支持8192個16×16點陣的中文字模和126個16×8點陣的字母數(shù)字字模,也包含支持圖形顯示的GDRAM(最高支持64×256),這使得ST7920能夠支持字符和圖形的混合顯示。ST7920也內(nèi)嵌了4個16×16的軟件可編程的CGRAM。
ST7920有著很寬的工作電壓范圍(2.7V~5.5V)。ST7920的低功耗設計,適合于電池供電的便攜設備。
ST7920LCD驅(qū)動器是一個32行×64列的驅(qū)動電路。通過擴展段驅(qū)動器ST7921,ST7920能支持高達32行×256列(64*128)的顯示能力。ST7920功能描述PSB是ST7920類液晶的標志性引腳(并行及串行總線接口)教材上的例子就是采用ST7920控制器。分上下2個半屏操作:上32*128下32*128KS0108功能描述KS0108是一種帶有列輸出的液晶顯示控制器,與行驅(qū)動KS0107配合使用組成液晶顯示驅(qū)動控制系統(tǒng)。KS0108是列驅(qū)動器,有64路列驅(qū)動輸出。最多支持64*192(3個列驅(qū)動器,對應3個片選CS1、CS2、CS3,每個64列)在64*128中只有2個列驅(qū)動器,對應2個片選信號CS1、CS2。CS1和CS2是KS0108類液晶的標志性引腳,分左右2個半屏操作左64*64-右64*64本章以不帶字庫的KS0107(KS0108)控制器為例進行介紹。ST7920功能描述ST7920是一個集成LCD控制器和驅(qū)動器的芯片,能夠顯示字母、數(shù)字、中文和自定義字符。支持8位、4位并行及串行總線接口。包括RAM、ROM、LCD顯示驅(qū)動和控制電路的所有功能都集成在一塊芯片上。最小的系統(tǒng)配置就能實現(xiàn)中文字符的顯示。
ST7920包含的字符ROM支持8192個16×16點陣的中文字模和126個16×8點陣的字母數(shù)字字模,也包含支持圖形顯示的GDRAM(最高支持64×256),這使得ST7920能夠支持字符和圖形的混合顯示。ST7920也內(nèi)嵌了4個16×16的軟件可編程的CGRAM。
ST7920有著很寬的工作電壓范圍(2.7V~5.5V)。ST7920的低功耗設計,適合于電池供電的便攜設備。
ST7920LCD驅(qū)動器是一個32行×64列的驅(qū)動電路。通過擴展段驅(qū)動器ST7921,ST7920能支持高達32行×256列(64*128)的顯示能力?;咎卣鞯碗娫措妷?.5-5.5V,2MHZ時鐘頻率,通訊方式為串并行可選,工作溫度為0-55度。顯示內(nèi)容可以構(gòu)成全中文人機互交圖形界面??梢燥@示8*4行16*16點陣漢字,也可以完成圖形顯示。并且可以實現(xiàn)光標顯示,畫面移動,自定義字符、睡眠模式。通信接口并行:8位數(shù)據(jù)線DB0-DB7、3位控制線RS,R/W,E
串行:I2C接口CS,SCLK,SDA下面先以帶字庫的ST7920控制器為例進行介紹。字符顯示(帶中文字庫,可顯示字符、漢字)用戶可直接將漢字字符送到指定地址顯示(DDRAM)(下面的地址需要加0X80H)第1個字第2個字第3個字第4個字第5個字第6個字第7個字第8個字第一行00H01H02H03H04H05H06H07H第二行10H11H12H13H14H15H16H17H第三行08H09H0AH0BH0CH0DH0EH0FH第四行18H19H1AH1BH1CH1DH1EH1FH第一行和第三方其實屬于一行第二行和第四方其實屬于一行圖形顯示按照點陣繪圖顯示圖片,畫點、線、面,可按點陣圖來顯示漢字用戶需編程將點陣圖送到GDRAM指定地址顯示圖形顯示(下面的地址需要加0X80H)64行128列點陣水平地址X(0~7)0(16列)1234567垂直地址Y(0~31)上半屏0…31水平地址X(8~15)8(16列)9101112131415下半屏0…31注意:(1)一個水平地址對應16列點陣。水平地址有16個,上半屏的水平地址為0-7,下半屏的水平地址為8-15,所以可通過水平地址來區(qū)分上、下半屏。每寫入16位數(shù)據(jù)(先寫高8位,再寫低8位)后,水平地址X會自加1。(2)一個垂直地址對應一行點陣,上、下半屏共用水平地址。垂直地址Y不會自加1,每寫完一行后,需人為的加1。LCD12864在點陣的物理排列上是128×64但在地址排列上卻是256×32管腳定義:管腳號管腳名稱LEVER管腳功能描述1VSS(GND)0電源地2VDD(VCC)+5.0V電源電壓3V0-液晶顯示器驅(qū)動電壓4RS(CS)H/LRS為數(shù)據(jù)/指令選擇(1數(shù)據(jù)0指令)CS為串行片選線5R/W(SID)H/LR/W為讀/寫選擇(1讀0寫)SID為串行數(shù)據(jù)線6E(SCLK)H/LE為使能信號(與讀寫配合使用)SCLK為串行同步時鐘信號7~14DB0~7H/L數(shù)據(jù)線15PSBH/LPSB為并/串選擇(1并0串)16NC空腳17RSTH/L復位信號,低電平復位18NC空腳19LED+-LED背光板電源+20LED--LED背光板電源-指令指令碼說明執(zhí)行時間RSRWDB7DB6DB5DB4DB3DB2DB1DB0清除顯示0000000001將DDRAM填滿“20H”,并且設定DDRAM的地址計數(shù)器(AC)到“00H”(同1602)4.6ms地址歸位000000001X設定DDRAM的地址計數(shù)器(AC)到“00H”,并且將游標移到開頭原點位置;這個指令并不改變DDRAM的內(nèi)容(同1602)4.6ms輸入方式設定00000001I/DS指定在資料的讀取與寫入時,設定游標移動方向及指定顯示的移位(同1602)72us顯示狀態(tài)開/關(guān)0000001DCBD=1:整體顯示開C=1:游標開B=1:游標位置反白允許72us游標或顯示移位控制000001S/CR/LXX設定游標的移動與顯示的移位控制位元;這個指令并不改變DDRAM的內(nèi)容(同1602)72us基本指令集指令指令碼說明執(zhí)行時間RSRWDB7DB6DB5DB4DB3DB2DB1DB0功能設定00001DLXREXXDL=1(8位),DL=0(4位)RE=1:擴充指令集RE=0:基本指令集72us設定CGRAM地址0001AC5AC4AC3AC2AC1AC0設定CGRAM地址到地址計數(shù)器AC:00-3F(預留64個自定義字型碼)72us設定DDRAM地址0010AC5AC4AC3AC2AC1AC0設定DDRAM地址到地址計數(shù)器AC第一/三行(80-8F),第二/四行(90-9F)72us讀取忙碌標志(BF)和地址01BFAC6AC5AC4AC3AC2AC1AC0讀取忙碌標志(BF)可以確認內(nèi)部動作是否完成,同時可以讀出地址計數(shù)器(AC)的值0us寫資料到RAM10D7D6D5D4D3D2D1D0寫入資料到內(nèi)部的RAM72us讀出RAM的值11D7D6D5D4D3D2D1D0從內(nèi)部RAM讀取資料72us基本指令集:指令指令碼說明執(zhí)行時間RSRWDB7DB6DB5DB4DB3DB2DB1DB0待命模式0000000001將DDRAM填滿“20H”,并且設定DDRAM的地址計數(shù)器AC到“00H”72us卷動地址或IRAM地址選擇000000001SRSR=1:允許輸入垂直卷動地址SR=0:允許輸入IRAM地址、CGRAM地址72us反白選擇00000001R1R0選擇4行中的任一行作反白顯示,并可決定反白與否72us睡眠模式0000001SLXXSL=1:脫離睡眠模式SL=0:進入睡眠模式72us
擴充指令集:初始化時一般采用基本指令,這樣可以顯示字符和漢字(帶字庫的話),需要繪圖時才打開擴充指令,繪圖完后又要恢復到基本指令以顯示字符、漢字。指令指令碼說明執(zhí)行時間RSRWDB7DB6DB5DB4DB3DB2DB1DB0擴充功能設定00001DLXREG0DL=1(8位),DL=0(4位)RE=1:擴充指令集動作RE=0:基本指令集動作G=1:繪圖顯示ONG=0:繪圖顯示OFF72us設定IRAM地址或卷動地址0001AC5AC4AC3AC2AC1AC0SR=1:AC5-AC0為垂直卷動地址SR=0:AC3-AC0為IRAM地址72us設定繪圖RAM地址001000AC3AC2AC1AC0設定繪圖GDRAM地址(2個字節(jié),先送一個字節(jié)的垂直地址(0X80+0~31),再送一個字節(jié)的水平地址(0X80+0~15)):垂直地址:AC4-AC0水平地址:AC3-AC072us00AC4AC3AC2AC1AC0
擴充指令集:并行方式傳輸:
LCD12864和單片機并口連接圖并行時序(將PSB接H為并行模式)
1.寫時序?qū)憰r序流程如圖所示:RS為命令/數(shù)據(jù)選擇信號,R/W為讀寫選擇信號,E微操作驅(qū)動信號,DB0-DB7為數(shù)據(jù)總線。上圖為寫操作,所以R/W則表明當前進行的是寫操作。DB0-DB7為單片機向JHD529M1寫數(shù)據(jù)。2.讀時序讀時序流程如圖所示:RS為命令/數(shù)據(jù)選擇信號,R/W為讀寫選擇信號,E為操作驅(qū)動信號,DB0-DB7為數(shù)據(jù)總線。當寫入命令11111100B時,R/W為H,RS為L,不需要延時,控制器會馬上讀出當前的AC值。然后進行判忙等操作。當發(fā)送11111110B時,R/W為H,RS為H,驅(qū)動控制器會把當前地址計數(shù)器的數(shù)據(jù)發(fā)送出來。讀數(shù)據(jù)要延時72us。串行模式LCD12864和單片機串行模式連接圖(將PSB接L為串行模式,串行模式只需三根線)串行模式寫時序和讀時序是一樣的流程,串行口時序圖如下圖:
串行模式下輸入11111100后,驅(qū)動控制器會輸出兩個字節(jié)的數(shù)據(jù),分別為DDDD0000和0000DDDD,最高位為判忙狀態(tài)位。讀LCM狀態(tài)(測試忙/閑)unsignedcharDectectBusyBit(void)//狀態(tài)判斷函數(shù)(忙/閑?忙時返回1,閑時返回0)寫命令voidWrComLCD(unsignedcharComVal)寫數(shù)據(jù)voidWrDatLCD(unsignedcharDatVal)坐標定位(設置DDRAM地址AC)//函數(shù)名稱:PosLCD()//函數(shù)功能:輸入定位//入口參數(shù):無//出口參數(shù):無/*******************************************************/voidPosLCD(uChar8X,uChar8Y)//設置顯示漢字的行列坐標(X:1-4行、Y:0-7列){ uChar8ucPos; if(X==1) {X=0x80;} //第一行
elseif(X==2) {X=0x90;} //第二行
elseif(X==3) {X=0x88;} //第三行
elseif(X==4) {X=0x98;} //第四行
ucPos=X+Y; //計算地址
WrComLCD(ucPos); //顯示地址}初始化//函數(shù)名稱:LCD_Init()//函數(shù)功能:初始化LCD//入口參數(shù):無//出口參數(shù):無/*******************************************************/voidLCD_Init(void){ WrComLCD(0x30);//功能設定:8位數(shù)據(jù)接口、選擇基本指令
delay(10);
WrComLCD(0x01);//顯示清屏
delay(10);
WrComLCD(0x0C);//顯示設置:開顯示、游標關(guān)、不反白delay(10);}【例1】12864液晶顯示實例(基于ST7920)實現(xiàn)在12864液晶(帶字庫)上顯示漢字,要求如下:第一行顯示"天生我才必有用,"第二行顯示"千金散盡還復來。"第三行顯示"--李白"第四行顯示"單片機愛好者共勉"源程序繪圖RAM(GDRAM)
繪圖顯示RAM提供64×32個位元組的記憶空間,在更改繪圖RAM時,先連續(xù)寫入水平與垂直的坐標值,再寫入兩個8位元的資料到繪圖RAM,而地址計數(shù)器(AC)會自動加一;在寫入繪圖RAM的期間,繪圖顯示必須關(guān)閉,整個寫入繪圖RAM的步驟如下:
1關(guān)閉繪圖顯示功能。
2先將水平的位元組坐標(X)寫入繪圖RAM地址;
3再將垂直的坐標(Y)寫入繪圖RAM地址;
4將D15——D8寫入到RAM中;
5將D7——D0寫入到RAM中;
6打開繪圖顯示功能。按點陣顯示漢字、圖片若LCM模塊自帶漢字字庫,該字庫中的字型碼均為宋體的,無法按照其他字體顯示。
若LCM模塊不帶漢字字庫時要想顯示漢字的話,需將漢字當成點陣圖形來顯示,可以得到漢字多種字體的點陣圖,能按照不同字體顯示漢字。首先要去取漢字對應的點陣圖形,將其寫入GDRAM,按照繪圖顯示。這里需要用到取模軟件,該軟件既可以取漢字的點陣數(shù)據(jù),也可以取圖片的點陣數(shù)據(jù)。ST7920是按行寫的,應該選擇橫向取模KS0108是按列寫的,應該選擇縱向取模程序的編寫與取模順序有很大的關(guān)系,一定要注意,要搞清楚取模順序漢字取模01。單擊“模式”菜單設置為“字符模式”02。單擊“選項”菜單設置為“取模方式”為逐列方式,“C51格式”03。在“生成字?!弊筮叺奈谋究蛑休斎霛h字。04。單擊“生成字?!?5。單擊“保存字?!睂Ⅻc陣數(shù)據(jù)保存到TXT文件圖片取模01。單擊“模式”菜單設置為“圖形模式”02。單擊“選項”菜單設置為“取模方式”為逐列方式,“C51格式”03。單擊“文件”中的“打開”,選擇圖片(圖片類型:單色BMP(因為128*64只能顯示單色的圖像),像素128*64(像素大了則一屏顯示不完,要編程移屏,)04。單擊“生成字?!?5。單擊“保存字模”將點陣數(shù)據(jù)保存到TXT文件LCD繪制圖片voidLcdDrawPicture(unsignedchar*pPicture){ unsignedchari,j; WrComLCD(0x34);//寫數(shù)據(jù)時,選擇擴充指令,關(guān)閉圖形顯示
/*====先操作上半屏====*/ for(i=0;i<32;i++)//i用來控制垂直地址Y(0~31)
{
WrComLCD(0x80+i); //先寫垂直坐標值
WrComLCD(0x80+0); //再寫水平坐標值,上半屏水平地址X是(0-7)//每寫入一幀數(shù)據(jù)(16位)后自動增加1for(j=0;j<16;j++) //一幀數(shù)據(jù)分兩次寫,共8幀
WrDatLCD(*pPicture++);//先高8位,后低8位
} /*====后操作下半屏====*/ for(i=0;i<32;i++) {WrComLCD(0x80+i); WrComLCD(0x80+8);//下半屏水平地址X是(8-15) for(j=0;j<16;j++) WrDatLCD(*pPicture++); } WrComLCD(0x36);//寫完數(shù)據(jù),開圖形顯示}源程序【例2】12864液晶顯示實例(基于ST7920)實現(xiàn)在12864液晶(不帶字庫)上顯示漢字,要求如下:第一行顯示"天生我才必有用,"第二行顯示"千金散盡還復來。"第三行顯示"--李白"第四行顯示"單片機愛好者共勉"源程序【例3】12864液晶顯示實例(基于ST7920)實現(xiàn)在12864液晶上顯示圖片漢字???總結(jié):寫字符:先初始化清屏,緊接著設置指令類別為基本指令集,再寫字符到DDRAM中,然后打開顯示。繪圖:將指令類別設置為基本指令集,然后清屏,再設置指令類別為擴充指令集將圖像數(shù)據(jù)寫入繪圖顯示RAM(GDRAM)中,打開顯示。注意清屏命令必須在基本指令集設置下完成。在PROTEUS中有2款128*64液晶模塊:AMPIRE128*64、LGM12641BS1R,它們均不帶中文字庫,也不是采用ST7920控制芯片,而是采用KS0108控制芯片。這里有必要向大家介紹一下128*64的KS0108液晶模塊管腳、指令、及驅(qū)動方法。管腳定義:管腳號管腳名稱LEVER管腳功能描述1VSS(GND)0電源地2VDD(VCC)+5.0V電源電壓3V0-液晶顯示器驅(qū)動電壓4D/I(RS)H/LD/I=“H”,表示DB7∽DB0為顯示數(shù)據(jù)D/I=“L”,表示DB7∽DB0為顯示指令5R/WH/LR/W=“H”,讀R/W=“L”,寫6EH/LR/W=“L”,E信號下降沿鎖存DB7∽DB0R/W=“H”,E=“H”時DDRAM數(shù)據(jù)讀到DB7∽DB07~14DB0~7H/L數(shù)據(jù)線15CS1H/LH:選擇芯片(右半屏)信號16CS2H/LH:選擇芯片(左半屏)信號17RSTH/L復位信號,低電平復位18VOUT-1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度地鐵消防安全檢測與維護保養(yǎng)協(xié)議3篇
- 二零二五年度創(chuàng)業(yè)企業(yè)股權(quán)激勵協(xié)議(限制性股權(quán))3篇
- 二零二五年度建筑廢棄物處理及環(huán)保治理合同3篇
- 二零二五年度個人知識產(chǎn)權(quán)抵押反擔保協(xié)議
- 二零二五年度社會保障項目建議書編制手冊3篇
- 二零二五年度大數(shù)據(jù)應用股權(quán)委托代持合同樣本3篇
- 個人工廠轉(zhuǎn)讓合同(含生產(chǎn)線改造升級)二零二五版4篇
- 二零二五版失業(yè)保險應收賬款質(zhì)押貸款合同5篇
- 二零二五年度摩托車租賃與賽事宣傳推廣合同4篇
- 蔬菜基地微噴灌施工方案
- 2025年上半年江蘇連云港灌云縣招聘“鄉(xiāng)村振興專干”16人易考易錯模擬試題(共500題)試卷后附參考答案
- DB3301T 0382-2022 公共資源交易開評標數(shù)字見證服務規(guī)范
- 江蘇省無錫市2023-2024學年八年級上學期期末數(shù)學試題(原卷版)
- 2024年全國統(tǒng)一高考數(shù)學試卷(新高考Ⅱ)含答案
- 地震工程學概論課件
- 小學語文三年級下冊生字偏旁、拼音、組詞
- 紡織廠各工種考核細則
- (3篇)工會換屆主持詞
- 機房溫濕度標準要求(設計要求方案)
- 高考英語3500詞匯大綱詞形轉(zhuǎn)換匯總
- 英語素養(yǎng)大賽跨文化知識競賽資料
評論
0/150
提交評論