單片機LCD顯示_第1頁
單片機LCD顯示_第2頁
單片機LCD顯示_第3頁
單片機LCD顯示_第4頁
單片機LCD顯示_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、單片機LCD顯示 現(xiàn)在市面上常用的顯示器有CRT、LCD、LED、等離子顯示器幾種。根據(jù)應(yīng)用領(lǐng)域分類一般分為: TN-LCD,主要用于鐘表、計算器、儀表、家電、數(shù)字小型點矩陣、通信及辦公設(shè)備。 STN-LCD,以黑白色為主,應(yīng)用集中在PDA、游戲機、翻譯機、 機、 、攝影機、POS收款機、醫(yī)療器材、工業(yè)儀器顯示屏等領(lǐng)域。 TFT-LCD,以彩色為主,應(yīng)用集中在電視、TV 、計算機、導航儀等為主流,將來會漸漸取代傳統(tǒng)之CRT顯示器。根據(jù)液晶顯示像素大小可分為:64*32、128*64、320*640等。根據(jù)其顯示顏色有單色(黑白)、4灰階、16灰階、256色、4096色、16位真彩色、32位真彩

2、色等。根據(jù)控制方式可分為: 段式液晶 字符圖形式液晶。 掌握12864串行和并行模式讀寫時序 掌握串行和并行模式的數(shù)據(jù)傳輸方法 理解12864顯示漢字原理 理解12864顯示圖片原理 本章重點:本章重點:12.1 12864概述概述 我們學習是采用的LCD為STN類,像素為128*64黑白字符圖形式12864液晶屏。買LCD的時候會配帶相應(yīng)的驅(qū)動控制器,雖然對應(yīng)的驅(qū)動控制其型號很多,不過使用方法大同小異。12864有帶字庫的和不帶字庫兩種,不帶字庫的需要自己用專用軟件取模,現(xiàn)在市面上常用的驅(qū)動控制器都帶字庫。JHD529M1是一個128*64的LCD驅(qū)動控制器,可顯示漢字及圖形。內(nèi)置8192個

3、中文漢字CGROM(16*16)、128個字符(ASCII碼)HCGROM(8*16)及128*64點陣顯示RAM(GDRAM)。基本特征基本特征 低電源電壓,2MHZ時鐘頻率,通訊方式為串并行可選,工作溫度為0-55度。顯示內(nèi)容顯示內(nèi)容 可以構(gòu)成全中文人機互交圖形界面??梢燥@示8*4行16*16點陣漢字,也可以完成圖形顯示。并且可以實現(xiàn)光標顯示,畫面移動,自定義字符、睡眠模式。通信接口通信接口 并行:8位數(shù)據(jù)線DB0-DB7、3位控制線RS,R/W,E 串行:I2C接口CS,SCLK,SDA管腳定義:管腳定義:引腳號引腳名稱方向功能說明1VSS-模塊的電源地2VDD-模塊的電源正端3V0-L

4、CD驅(qū)動電壓輸入端4RS(CS)H/L并行的指令/數(shù)據(jù)選擇信號;串行的片選信號5R/W(SID)H/L并行的讀寫選擇信號;串行的數(shù)據(jù)口6E(CLK)H/L并行的使能信號;串行的同步時鐘7DB0H/L數(shù)據(jù)08DB1H/L數(shù)據(jù)19DB2H/L數(shù)據(jù)210DB3H/L數(shù)據(jù)311DB4H/L數(shù)據(jù)412DB5H/L數(shù)據(jù)513DB6H/L數(shù)據(jù)614DB7H/L數(shù)據(jù)715PSBH/L并/串行接口選擇:H-并行;L-串行16NC空腳17/RETH/L復位 低電平有效18NC空腳19LED_A-背光源正極(LED+5V)20LED_K-背光源負極(LED-OV)12.2 傳輸方式傳輸方式 向驅(qū)動控制器發(fā)送命令分為

5、串行和并行傳輸,無論何種傳輸,他們的控制字格式都是一樣的:格式11111ABC,A為讀寫控制,H_讀,L_寫;B為類型控制,H_數(shù)據(jù),L_指令;C為0。以及指令集是相同的。指令指令指令碼說明說明執(zhí)行時間執(zhí)行時間RSRWDB7DB6DB5DB4DB3DB2DB1DB0清除顯示清除顯示0000000001將將DDRAM填滿填滿“20H”,并且設(shè)定,并且設(shè)定DDRAM的地址計數(shù)器(的地址計數(shù)器(AC)到)到“00H”4.6ms地址歸位地址歸位000000001X設(shè)定設(shè)定DDRAM的地址計數(shù)器(的地址計數(shù)器(AC)到)到“00H”,并且將游標移到開頭原點位置;這個指令,并且將游標移到開頭原點位置;這個

6、指令并不改變并不改變DDRAM的內(nèi)容的內(nèi)容4.6ms進入點設(shè)定進入點設(shè)定00000001I/DS指定在資料的讀取與寫入時,設(shè)定游標移動方向及指定顯示的移位指定在資料的讀取與寫入時,設(shè)定游標移動方向及指定顯示的移位72us顯示狀態(tài)開顯示狀態(tài)開/關(guān)關(guān)0000001DCBD=1:整體顯示:整體顯示ON C=1:游標:游標ON B=1:游標位置:游標位置ON72us游標或顯示游標或顯示移位控制移位控制000001S/CR/LXX設(shè)定游標的移動與顯示的移位控制位元;這個指令并不改變設(shè)定游標的移動與顯示的移位控制位元;這個指令并不改變DDRAM的內(nèi)容的內(nèi)容72us功能設(shè)定功能設(shè)定00001DLXREXXD

7、L=1(必須設(shè)為必須設(shè)為1) RE=1:擴充指令集動作擴充指令集動作 RE=0:基本指令集動作基本指令集動作72us設(shè)定設(shè)定CGRAM地地 址址0001AC5AC4AC3AC2AC1AC0設(shè)定設(shè)定CGRAM地址到地址計數(shù)器(地址到地址計數(shù)器(AC)72us設(shè)定設(shè)定DDRAM地地址址001AC6AC5AC4AC3AC2AC1AC0設(shè)定設(shè)定DDRAM地址到地址計數(shù)器(地址到地址計數(shù)器(AC)72us讀取忙碌標讀取忙碌標志(志(BF)和)和地址地址01BFAC6AC5AC4AC3AC2AC1AC0讀取忙碌標志(讀取忙碌標志(BF)可以確認內(nèi)部動作是否完成,同時可以讀出地址計數(shù)器()可以確認內(nèi)部動作是

8、否完成,同時可以讀出地址計數(shù)器(AC)的值)的值0us寫資料到寫資料到RAM10D7D6D5D4D3D2D1D0寫入資料到內(nèi)部的寫入資料到內(nèi)部的RAM(DDRAM/CGRAM/IRAM/GDRAM)72us讀出讀出RAM的的值值11D7D6D5D4D3D2D1D0從內(nèi)部從內(nèi)部RAM讀取資料(讀取資料(DDRAM/CGRAM/IRAM/GDRAM)72us基本指令集:指令指令碼說明執(zhí)行時間RSRWDB7DB6DB5DB4DB3DB2DB1DB0待命模式0000000001將DDRAM填滿“20H”,并且設(shè)定DDRAM的地址計數(shù)器(AC)到“00H”72us卷動地址或IRAM地址選擇0000000

9、01SRSR=1:允許輸入垂直卷動地址SR=0:允許輸入IRAM地址72us反白選擇00000001R1R0選擇4行中的任一行作反白顯示,并可決定反白與否72us睡眠模式0000001SLXXSL=1:脫離睡眠模式SL=0:進入睡眠模式72us擴充功能設(shè)定000011XREG0RE=1: 擴充指令集動作RE=0: 基本指令集動作G=1 :繪圖顯示ONG=0 :繪圖顯示OFF72us設(shè)定IRAM地址或卷動地址0001AC5AC4AC3AC2AC1SR=1:AC5AC0為垂直卷動地址SR=0:AC3AC0為ICON IRAM地址72us設(shè)定繪圖RAM地址001AC6AC5AC4AC3AC2AC1A

10、C0設(shè)定CGRAM地址到地址計數(shù)器(AC)72us 擴充指令集擴充指令集: 12.3 并行方式傳輸并行方式傳輸 LCD12864和單片機并口連接圖 12.3.1 并行時序(將并行時序(將PSB接接H為并行模式)為并行模式) 1.寫時序 寫時序流程如圖所示: RS為命令/數(shù)據(jù)選擇信號,R/W為讀寫選擇信號,E微操作驅(qū)動信號,DB0-DB7為數(shù)據(jù)總線。上圖為寫操作,所以R/W則表明當前進行的是寫操作。DB0-DB7為單片機向JHD529M1寫數(shù)據(jù)。 寫時序部分程序代碼:寫時序部分程序代碼:寫指令:并口寫指令時注意時序,RS拉低。注意寫指令時不同指令的延時時間不同。 寫數(shù)據(jù): LCDWC: ;并口寫

11、指令子程序LCALLCHK_BUSY ;以確保上一指令/數(shù)據(jù)模塊已經(jīng)接收處理完NOPCLRRSCLRRWSETBEMOVP2,A ;將要操作的指令通過數(shù)據(jù)口發(fā)送NOPCLRENOPRETLCDWD:;并口寫數(shù)據(jù)子程序LCALLCHK_BUSY;判忙子程序NOPSETBRSCLRRWSETBEMOV P2,A ;將要寫入的數(shù)據(jù)通過數(shù)據(jù)口發(fā)送CLRENOPRET讀忙狀態(tài)子程序:讀忙狀態(tài)子程序: 并行模式判忙:當R/W為H,RS為L時,驅(qū)動控制器會輸出它的狀態(tài)和當前地址計數(shù)器AC的值。最高位為狀態(tài)位,低六位為地址。CHK_BUSY:CLRRSSETBRWSETBECHK_B:NOPJBP2.7,CH

12、K_B ;讀出的AC值存放在P2口,判斷最高位,為1則忙,為0則空閑。CLRE RET2.讀時序讀時序 讀時序流程如圖所示: 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。 讀子程序:讀子程序:READ:MOVP2,#11111100B;寫入讀命令指令NOPCLRRSSETBRWSETBEMOVA,P2;P2讀出計數(shù)器A

13、C值NOPCLRERETR12.4串行模式串行模式 LCD12864和單片機串行模式連接圖(將PSB接L為串行模式,串行模式只需三根線) 串行模式寫時序和讀時序是一樣的流程,串行口時序圖如下圖: 串行模式下輸入11111100后,驅(qū)動控制器會輸出兩個字節(jié)的數(shù)據(jù),分別為DDDD0000和0000DDDD,最高位為判忙狀態(tài)位。 寫指令或數(shù)據(jù)子程序:寫指令或數(shù)據(jù)子程序:F_WRITE: ;按照時序?qū)懭氲诙€拆分的字節(jié)MOVR6,A;A為要寫入的命令或者操作ANLA,#0F0H;取要發(fā)送指令或數(shù)據(jù)的高四位LCALLF_WRITEBETY;發(fā)送高四位MOVA,R6ANLA,#0FH;去要發(fā)送指令或數(shù)據(jù)的

14、第四位SWAPALCALLF_WRITEBETY;發(fā)送低四位RETF_WRITEBETY: ; 按位發(fā)送8次,發(fā)送所要操作的指令或者數(shù)據(jù)MOVR7,#08L_WRITENEXTBIT:RLCAMOVB_SDA,CNOPNOPNOPNOPSETBB_CLKNOPNOPNOPNOPCLRB_CLKDJNZ R7,L_WRITENEXTBITRET注意注意:當模塊在接受指令前,微處理必須先確認模塊內(nèi)部處于非忙碌狀態(tài),即讀取AC最高位狀態(tài)標志時,狀態(tài)位需為0,方可接受新的指令;如果在送出一個指令前并不檢查狀態(tài)標志,那么在前一個指令和這個指令中間必須延遲一段較長的時間,即是等待前一個指令確實執(zhí)行完成,指

15、令執(zhí)行的時間請參考指令表中的指令說明。當有多個數(shù)據(jù)或指令要傳送時,必須要等到一個指令完成執(zhí)行完畢后再傳送下一個指令或數(shù)據(jù),否則,會造成指令或數(shù)據(jù)的丟失。這是因為液晶模塊內(nèi)部沒有發(fā)送/接收緩沖區(qū)。 12.5 顯示字符或者漢字顯示字符或者漢字 顯示資料RAM提供642個位元組的空間,最多可以控制4行16字(64個字)的中文字型顯示,當寫入顯示資料RAM時,可以分別顯示CGROM、HCGROM與CGRAM的字型;JHD529M1可以顯示三種字型,分別是半寬的HCGROM字型、CGRAM字型及中文CGROM字型,三種字型的選擇,由在DDRAM中寫入的編碼選擇,在0000H0006H的編碼中將自動的結(jié)合

16、下一個位元組,組成兩個位元組的編碼達成中文字型的編碼(A140D75F),各種字型詳細編碼如下: 1.顯示半寬字型:將8位元資料寫入DDRAM中,范圍為02H7FH的編碼。 2.顯示CGRAM字型:將16位元資料寫入DDRAM中,總共有0000H,0002H,0004H,0006H四種編碼。 3.顯示中文字形:將16位元資料寫入DDRAM,范圍為A1A1HF7FEH的編碼作為字符顯示,在控制器內(nèi)有個供寫入字符代碼的緩存器DDRAM,你只要將要顯示的中文字符代碼或西文字符代碼寫入DDRAM,硬件將依照編碼自動從CGROM中選擇將要顯示的字型顯示再屏幕上。至于是顯示西文字符還是中文字符,它會自動辨

17、別的,這和我們PC上是一樣的,字符代碼也完全一樣。 ASCII碼如表所示:字符顯示時,DDRAM地址與液晶屏的位置關(guān)系見下表: 這個表上可以看出,它的地址編排很奇特,第一行到87H完了以后就跳到了第三行接著88H了,每二行也是一樣的,很明顯,有下面兩行接在上面兩行后面的跡像。例例: 要在第一行開始寫個心,則應(yīng)先設(shè)置DDRAM地址為80H,然后向其寫入數(shù)據(jù)03H 要在第二行”單片機”三個字只需將要寫入的字放入表中,通過查表寫入即可。寫入數(shù)據(jù)之前先寫入地址,注意地址為指令操作。表中的數(shù)據(jù)寫入后DDRAM會自動匹配漢字。 Line1 (X坐標)80H81H82H83H84H85H86H87HLine

18、2 (X坐標)90H91H92H93H94H95H96H97HLine3 (X坐標)88H89H8AH8BH8CH8DH8EH8FHLine4 (X坐標)98H99H9AH9BH9CH9DH9EH9FH12.6 繪圖顯示繪圖顯示繪圖顯示RAM地址分布如圖所示: 上圖我們可以看出JHD529M1的LCD12864在地址的排列上是分為上、下半屏來顯示的,上半屏橫向的列地址(X)是07(00H-07H),下半屏的列地址是815(08H-0fH)。而每個一地址都可寫入兩個字節(jié)的內(nèi)容,它們是按高位在前低位在后排列的。垂直方向上的地址(Y)上半屏是031(00H-1fH),下半屏的Y地址仍是031(00H

19、-1fH),可以看出,它的地址排列方式還是將下半屏接在上半屏后面的,因此這塊LCD12864,雖然在點陣的物理排列上是12864,但在地址排列上,它卻是塊25632。繪圖繪圖RAM(GDRAM) 繪圖顯示RAM提供6432個位元組的記憶空間,最多可以控制25664點的二維也納繪圖緩沖空間,在更改繪圖RAM時,先連續(xù)寫入水平與垂直的坐標值,再寫入兩個8位元的資料到繪圖RAM,而地址計數(shù)器(AC)會自動加一;在寫入繪圖RAM的期間,繪圖顯示必須關(guān)閉,整個寫入繪圖RAM的步驟如下: 1 關(guān)閉繪圖顯示功能。 2 先將水平的位元組坐標(X)寫入繪圖RAM地址; 3 再將垂直的坐標(Y)寫入繪圖RAM地址

20、; 4 將D15D8寫入到RAM中; 5 將D7D0寫入到RAM中; 6 打開繪圖顯示功能。 圖像數(shù)據(jù)處理方法圖像數(shù)據(jù)處理方法 使用Image2Lcd工具可以將圖像處理為對應(yīng)的顯示數(shù)據(jù)。1.輸出數(shù)據(jù)類型應(yīng)設(shè)置為C語言數(shù)組,這樣可以直接得到十六進制的字節(jié)型數(shù)據(jù)。2.掃描模式可設(shè)為水平掃描模式,這樣便于軟件設(shè)計。3.輸出灰度應(yīng)該設(shè)為單色模式,因為128*64只能顯示單色的圖像4.最大寬度和高度應(yīng)該為128*64,如果圖像本身為100*50。,則無法處理成128*64的,所以在使用Image2Lcd工具之前,應(yīng)該用專業(yè)的軟件將圖像處理成128*64大小的。5.高位在前,因為128*64驅(qū)動控制器將會顯示最高位在前面。(先寫入D8-D15)6.設(shè)置完了之后點擊保存,即可獲得圖像數(shù)據(jù)。 12.7 下面程序為寫字符和繪圖的主程序代碼:下面程序為寫字符和繪圖的主程序代碼:R_KZZEQU50H;控制字緩沖區(qū)C_QPEQU00000001B;清除屏幕C_XSEQU00001100B;字符顯示設(shè)置開C_ZLEQU00110000B;指令類別設(shè)置(基本指令集)C_ZLKCEQU00110100B;指令類別設(shè)置(擴充指令集)C_HTXSEQU00110110B;繪圖顯示開關(guān) L_LOOP:LCALLF_CSHLCD;初始化顯示屏(清屏)MOVR_KZZ,#C_ZLLCALLF_WRI

溫馨提示

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

評論

0/150

提交評論