1 / 24

繪圖型顯示器功能簡介 (128*64)

繪圖型顯示器功能簡介 (128*64). 大綱. 繪圖型與文字型顯示器之比較 繪圖型顯示器 - LM6063 簡介 內部結構 腳位說明 記憶體配置 指令暫存器設定 編碼方式 128*64 繪圖型 LCD ¼ 圖形解析 範例:山 - 文字圖形編碼 繪圖型顯示器 - 發展流程 程式解析. 繪圖型與文字型顯示器之比較. 繪圖型與文字型顯示器兩者功能相似,兩者的差異性為:

jaguar
Download Presentation

繪圖型顯示器功能簡介 (128*64)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 繪圖型顯示器功能簡介(128*64)

  2. 大綱 • 繪圖型與文字型顯示器之比較 • 繪圖型顯示器-LM6063簡介 • 內部結構 • 腳位說明 • 記憶體配置 • 指令暫存器設定 • 編碼方式 • 128*64繪圖型LCD ¼圖形解析 • 範例:山-文字圖形編碼 • 繪圖型顯示器-發展流程 • 程式解析

  3. 繪圖型與文字型顯示器之比較 • 繪圖型與文字型顯示器兩者功能相似,兩者的差異性為: • 文字型LCD是將固定的字型碼(5×7的點陣字),透過字元碼一次寫入顯示螢幕。相對地,繪圖型LCG可以直接控制每一個點陣的顯示訊息,因此有更大的設計彈性,顯示一些更複雜的圖形與中文字型。 • 以LM6063為例,顯示器為橫向128點,縱向64點的點矩陣字幕,即128×64繪圖型LCD。

  4. 繪圖型顯示器-LM6063簡介 • LM6063為ㄧ繪圖型顯示器,橫向128點、縱向64點的點矩陣字幕,透過腳位A0選擇資料暫存器或命令暫存器、腳位RD用來讀取暫存器、腳位WR用來寫入暫存器、腳位CS1用來選擇致能顯示幕,D0~D7則為資料輸入Port口。

  5. 內部結構 繪圖型的內部結構除了與文字型LCD功能相似的指令暫存器(IR)、資料暫存器(DR)外,額外還有下列幾項暫存器: • 顯示資料記憶體(DD RAM): LCG儲存圖點資料的記憶體,DD RAM的一個位元(bit),對應顯示器面板(display panel)上的一個亮度,位元1為亮點,位元0為暗點。將圖形編碼資料填入此記憶體,即可在LCG顯示圖形資料。 • 顯示器起始列暫存器(Display Start Line Register):指定DD RAM某一列資料,對應到LCG面板上的第一列,藉此可達到螢幕捲動的功能。 • 位址計數器 (Address Counter):利用一10個位元的暫存器,指到DD RAM的位址。前3個位元指向縱向的0~7的Page計數,後7個位元指向0~127的行數計數。Page的計數,必須藉由指令設定。行數的計數在讀寫顯示資料時,會自動遞增1,指向下一列。從0到127迴圈計數,計數到127時,在遞增會回到0。

  6. 腳位功能說明

  7. 記憶體配置 64 bit 128 bit

  8. 指令暫存器設定-1

  9. 指令暫存器設定-2 A0=0 選擇命令暫存器、A0=1 選擇資料暫存器 RD=0 選擇讀取、 RD=1 選擇不讀取 WR=0 選擇寫入、 WR=1 選擇不寫入

  10. 編碼方式 配合Sunpls DM字型轉碼器可將圖形文字轉為數位編碼,其編碼方式可分為Up to down,Left to Right(由上至下,由左至右)以及Down to up,Left to Right (由下至上,由左至右)兩種編碼方式,在以下的範例中將介紹Upto Down ,Left to Right以及Downto Up ,Left to Right的編碼方式。

  11. LSB1 LSB0 HSB1 HSB0 1 3 5 7 up to down right to left 編碼方式 up to down right to left 編碼方式: 由上至下由左至右,因此第1個byte先被編碼出來,接下來為2、3、4…接著編碼,若把16*16點矩陣由中間切開我們便能發現上排圖形由字碼1、3、5、7…所構成,下排則由2、4、6、8…所構成。 1byte 2 4 6 1byte

  12. LSB0 LSB1 HSB0 HSB1 down to up right to left 編碼方式 down to up right to left 編碼方式: 由下至上由左至右,因此第1個byte先被編碼出來,接下來為2、3、4…接著編碼,若把16*16點矩陣由中間切開我們便能發現上排圖形由字碼2、4、6、8…所構成,下排則由1、3、5、7…所構成。 1byte 2 4 6 1byte 1 3 5 7

  13. 編碼差異 Up to down,Left to Right(由上至下,由左至右)以及Down to up,Left to Right (由下至上,由左至右)兩種編碼方式的差異在於起始編碼位置不同,由此可知Up to down,Left to Right的編碼方式其位置1、3、5、7…可構成上半截圖型,2、4、6、8…則構成下半截圖形;Down to up,Left to Right則反之其位置2、4、6、8…可構成上半截圖型,1、3、5、7…則構成下半截圖形。 PS:我們所使用編碼方式為Up to down,Left to Right。

  14. 64 bit 1byte 1byte 1 5 2 6 3 7 8 4 16 bit 16 bit page0 Y軸 一16*16文字圖形所佔面積 page1 page2 page3 128*64繪圖型LCD ¼圖形解析 X軸由第0bit 由上圖得知我們若欲寫入一16*16文字則起始位置由Y軸page0開始,X軸由第0bit開始,寫完1若欲寫2則X軸由第16bit接續寫入。

  15. LSB0 LSB1 HSB0 HSB1 山-文字圖形編碼 0x00,0x00 文字圖形編碼格式介紹 後 right to left 先 down to up 綠色為 0 白色為 1 以第二行0x7f為例 0111 1111 0x7f,0xf0 編碼方式以down to up right to left所編出的字碼為: 0x00,0x00,0x7f,0xf0,0x40,0x00,0x40,0x00, 0x40,0x00,0x40,0x00,0x40,0x00,0x7f,0xfe, 0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00, 0x40,0x00,0x7f,0xf0,0x00,0x00,0x00,0x00

  16. LSB1 LSB0 HSB1 HSB0 山-文字圖形編碼 0x00,0x00 文字圖形編碼格式介紹 後 right to left 先 down to up 綠色為 0 白色為 1 以第二行0x7f為例 0111 1111 0x0f,0xfe 編碼方式以down to up right to left所編出的字碼為: 0x00,0x00,0x0f,0xfe,0x00,0x02,0x00,0x02, 0x00,0x02,0x00,0x02,0x00,0x02,0x7f,0xfe, 0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02, 0x00,0x02,0x0f,0xfe,0x00,0x00,0x00,0x00

  17. main 發展過程 GLCD_Putch initial clear_LCD show_pattern WRITE_DATA WRITE_COMMAND 發展流程-程式金字塔 發展繪圖型LCD必須先由底層的WRITE_DATA、WRITE_COMMAND副程式作為成功的出發點,再一點一滴的往上成長,到達最後再根據動作變化而設計出不同的演算流程。

  18. void WRITE_DATA(unsigned char Data) DATA_BUS = Data; //send command to BUS AO=1; //select command RD=1; //close read WR=0; //open write CS1 = 0; //enable cs1 delay_25us(2); CS1 = 1; //disable cs1 delay_25us(1); WR=1; //close write RD=0; //open read 程式說明_寫入資料副程式: 選擇寫入資料暫存器,寫入參數為Data A0設定為1選擇資料暫存器,RD設定為1為不讀取,WR設為0則表示寫入

  19. void WRITE_COMMAND(unsigned char cmd) • DATA_BUS = cmd; //send command to BUS • AO=0; //select command • RD=1; //close read • WR=0; //open write • CS1 = 0; //enable cs1 • delay_25us(2); • CS1 = 1; //disable cs1 • delay_25us(1); • WR=1; //close write • RD=0; //open read 程式說明_寫入指令(命令)副程式: 選擇寫入指令暫存器,寫入參數為cmd A0設定為0選擇指令暫存器,RD設定為1為不讀取,WR設為0則表示寫入

  20. 初始化動作設定(必須)

  21. void initial() WRITE_COMMAND(0xa1); //ADC = 1; WRITE_COMMAND(0xc0); //SHL = 0; WRITE_COMMAND(0xa2); //LCD Bias 1/9 WRITE_COMMAND(0x40); //LINE = 0; WRITE_COMMAND(0xa4); //ENTIRE DISPALY OFF; WRITE_COMMAND(0xa6); //REVERSE DISPALY OFF; WRITE_COMMAND(0x2f); //POWER CONTROL WRITE_COMMAND(0xaf); //DISPALY ON; 程式說明_初始化副程式: 根據資料手冊上初始化動作設定做一相對應設定,如上述程式。

  22. void show_pattern(unsigned char page,unsigned char H,unsigned char L, unsigned char *pattern) WRITE_COMMAND(0xb0+page); WRITE_COMMAND(0x10+H); WRITE_COMMAND(0x00+L); WRITE_DATA(*pattern); 程式說明_顯示一點(1bit)副程式: 設定某一頁某ㄧ行的位置上(單位/點(bit))亮或不亮 輸入參數:page、H、L page代表頁, H代表X軸的高四位元,L代表X軸的低四位元,patterm代表資料來源

  23. void GLCD_Putch(unsigned char *p) int i; CS1 = 0; //enable cs1 for( i = 0 ; i < 16 ; i++ ){ show_pattern(page, col_H, col_L, p+(2*i+1)); show_pattern(page+1,col_H, col_L, p+(2*i)); col_L=col_L+1; //add column address if( i == 15 )col_H=col_H+1; } col_L=0; 程式說明_顯示一16*16之圖型文字副程式: 輸出一16*16的圖型文字,其編碼方式為up to down ,right to left 固(2*i+1)為 上半截圖型(1、3、5、7) ,(2*i)為下半截圖型 (2、4、6、8) , 輸入參數: p p代表資料陣列來源

More Related