在數字電路中,所有的數據都是以0和1保存的,對LCD控制器進(jìn)行不同的數據操作,可以得到不同的結果。對于顯示英文操作,由于英文字母種類(lèi)很少,只需要8位(一字節)即可。而對于中文,常用卻有6000以上,于是我們的DOS前輩想了一個(gè)辦法,就是將ASCII表的高128個(gè)很少用到的數值以?xún)蓚(gè)為一組來(lái)表示漢字,即漢字的內碼。而剩下的低128位則留給英文字符使用,即英文的內碼。 那么,得到了漢字的內碼后,還僅是一組數字,那又如何在屏幕上去顯示呢?這就涉及到文字的字模,字模雖然也是一組數字,但它的意義卻與數字的意義有了根本的變化,它是用數字的各位信息來(lái)記載英文或漢字的形狀,如英文的'A'在字模的記載方式如圖1所示: 圖1 “A”字模圖 而中文的“你”在字模中的記載卻如圖2所示: 圖2 “你”字模圖 12864點(diǎn)陣型LCD簡(jiǎn)介 12864是一種圖形點(diǎn)陣液晶顯示器,它主要由行驅動(dòng)器/列驅動(dòng)器及128×64全點(diǎn)陣液晶顯示器組成?赏瓿蓤D形顯示,也可以顯示8×4個(gè)(16×16點(diǎn)陣)漢字。 管腳號管腳名稱(chēng)LEVER管腳功能描述 1VSS0電源地 2VDD+5.0V電源電壓 3V0-液晶顯示器驅動(dòng)電壓 4D/I(RS)H/LD/I=“H”,表示DB7∽DB0為顯示數據 D/I=“L”,表示DB7∽DB0為顯示指令數據 5R/WH/LR/W=“H”,E=“H”數據被讀到DB7∽DB0 R/W=“L”,E=“H→L”數據被寫(xiě)到IR或DR 6EH/LR/W=“L”,E信號下降沿鎖存DB7∽DB0 R/W=“H”,E=“H”DDRAM數據讀到DB7∽DB0 7DB0H/L數據線(xiàn) 8DB1H/L數據線(xiàn) 9DB2H/L數據線(xiàn) 10DB3H/L數據線(xiàn) 11DB4H/L數據線(xiàn) 12DB5H/L數據線(xiàn) 13DB6H/L數據線(xiàn) 14DB7H/L數據線(xiàn) 15CS1H/LH:選擇芯片(右半屏)信號 16CS2H/LH:選擇芯片(左半屏)信號 17RETH/L復位信號,低電平復位 18VOUT-10VLCD驅動(dòng)負電壓 19LED+-LED背光板電源 20LED--LED背光板電源 表1:12864LCD的引腳說(shuō)明 在使用12864LCD前先必須了解以下功能器件才能進(jìn)行編程。12864內部功能器件及相關(guān)功能如下: 1. 指令寄存器(IR) IR是用于寄存指令碼,與數據寄存器數據相對應。當D/I=0時(shí),在E信號下降沿的作用下,指令碼寫(xiě)入IR。 2.數據寄存器(DR) DR是用于寄存數據的,與指令寄存器寄存指令相對應。當D/I=1時(shí),在下降沿作用下,圖形顯示數據寫(xiě)入DR,或在E信號高電平作用下由DR讀到DB7∽DB0數據總線(xiàn)。DR和DDRAM之間的數據傳輸是模塊內部自動(dòng)執行的。 3.忙標志:BF BF標志提供內部工作情況。BF=1表示模塊在內部操作,此時(shí)模塊不接受外部指令和數據。BF=0時(shí),模塊為準備狀態(tài),隨時(shí)可接受外部指令和數據。 利用STATUS READ指令,可以將BF讀到DB7總線(xiàn),從檢驗模塊之工作狀態(tài)。 4.顯示控制觸發(fā)器DFF 此觸發(fā)器是用于模塊屏幕顯示開(kāi)和關(guān)的控制。DFF=1為開(kāi)顯示(DISPLAY OFF),DDRAM的內容就顯示在屏幕上,DFF=0為關(guān)顯示(DISPLAY OFF)。 DDF的狀態(tài)是指令DISPLAY ON/OFF和RST信號控制的。 5.XY地址計數器 XY地址計數器是一個(gè)9位計數器。高3位是X地址計數器,低6位為Y地址計數器,XY地址計數器實(shí)際上是作為DDRAM的地址指針,X地址計數器為DDRAM的頁(yè)指針,Y地址計數器為DDRAM的Y地址指針。 X地址計數器是沒(méi)有記數功能的,只能用指令設置。 Y地址計數器具有循環(huán)記數功能,各顯示數據寫(xiě)入后,Y地址自動(dòng)加1,Y地址指針從0到63。 6.顯示數據RAM(DDRAM) DDRAM是存儲圖形顯示數據的。數據為1表示顯示選擇,數據為0表示顯示非選擇。DDRAM與地址和顯示位置的關(guān)系見(jiàn)DDRAM地址表。 7.Z地址計數器 Z地址計數器是一個(gè)6位計數器,此計數器具備循環(huán)記數功能,它是用于顯示行掃描同步。當一行掃描完成,此地址計數器自動(dòng)加1,指向下一行掃描數據,RST復位后Z地址計數器為0。 Z地址計數器可以用指令DISPLAY START LINE預置。因此,顯示屏幕的起始行就由此指令控制,即DDRAM的數據從哪一行開(kāi)始顯示在屏幕的第一行。此模塊的DDRAM共64行,屏幕可以循環(huán)滾動(dòng)顯示64行。 12864LCD的指令系統及時(shí)序 該類(lèi)液晶顯示模塊(即KS0108B及其兼容控制驅動(dòng)器)的指令系統比較簡(jiǎn)單,總共只有七種。其指令表如表2所示: 指令名稱(chēng)控制信號控制代碼 R/WRSDB7DB6DB5DB4DB3DB2DB1DB0 顯示開(kāi)關(guān)0000111111/0 顯示起始行設置0011XXXXXX 頁(yè)設置0010111XXX 列地址設置0001XXXXXX 讀狀態(tài)10BUSY0ON/OFFRST0000 寫(xiě)數據01寫(xiě)數據 讀數據11讀數據 表2:12864LCD指令表 各功能指令分別介紹如下。 顯示開(kāi)/關(guān)指令 R/WRSDB7 DB6 DB5 DB4 DB3DB2DB1 DB0 0000111111/0 當DB0=1時(shí),LCD顯示RAM中的內容;DB0=0時(shí),關(guān)閉顯示。 2、顯示起始行(ROW)設置指令 R/WRSDB7 DB6 DB5 DB4 DB3DB2DB1 DB0 0011顯示起始行(0~63) 該指令設置了對應液晶屏最上一行的顯示RAM的行號,有規律地改變顯示起始行,可以使LCD實(shí)現顯示滾屏的效果。 3、頁(yè)(PAGE)設置指令 R/WRSDB7 DB6 DB5 DB4 DB3DB2DB1 DB0 0010111頁(yè)號(0~7) 顯示RAM共64行,分8頁(yè),每頁(yè)8行。 4、列地址(Y Address)設置指令 R/WRSDB7 DB6 DB5 DB4 DB3DB2DB1 DB0 0001顯示列地址(0~63) 設置了頁(yè)地址和列地址,就唯一確定了顯示RAM中的一個(gè)單元,這樣MPU就可以 用讀、寫(xiě)指令讀出該單元中的內容或向該單元寫(xiě)進(jìn)一個(gè)字節數據。 5、讀狀態(tài)指令 R/WRSDB7 DB6 DB5 DB4 DB3DB2DB1 DB0 10BUSY0ON/OFFREST0000 該指令用來(lái)查詢(xún)液晶顯示模塊內部控制器的狀態(tài),各參量含義如下: BUSY:1-內部在工作0-正常狀態(tài) ON/OFF:1-顯示關(guān)閉0-顯示打開(kāi) RESET:1-復位狀態(tài)0-正常狀態(tài) 在BUSY和RESET狀態(tài)時(shí),除讀狀態(tài)指令外,其它指令均不對液晶顯示模塊產(chǎn)生作用。 在對液晶顯示模塊操作之前要查詢(xún)BUSY狀態(tài),以確定是否可以對液晶顯示模塊進(jìn)行操作。 6、寫(xiě)數據指令 R/WRSDB7 DB6 DB5 DB4 DB3DB2DB1 DB0 01寫(xiě)數據 讀數據指令 R/WRSDB7 DB6 DB5 DB4 DB3DB2DB1 DB0 11讀顯示數據 讀、寫(xiě)數據指令每執行完一次讀、寫(xiě)操作,列地址就自動(dòng)增一。必須注意的是,進(jìn)行讀操作之前,必須有一次空讀操作,緊接著(zhù)再讀才會(huì )讀出所要讀的單元中的數據。 |