引言 液晶顯示器件由于具有顯示信息豐富、功耗低、體積小、質量小、無輻射等優點,得到了廣泛的應用;但液晶顯示模塊復雜的硬件接口和軟件編程卻令產品設計人員生畏,因而限制了該模塊在某些領域的應用。本文介紹一種具有串/并多種接口方式,且內部含有GB2312一級、二級簡體中文字庫的圖形點陣液晶模塊,使用該模塊可構成具有全中文人機交互圖形界面的液晶顯示系統。 1 性能特點 OCM4X8C 是具有串/并接口,具內部含有中文字庫的圖形點陣液晶顯示模塊。該模塊的控制/驅動器采用臺灣矽創電子公司的ST7920,因而具有較強的控制顯示功能。 OCM4X8C的液晶顯示屏為128×64點陣,可顯示4行、每行8個漢字。為了便于簡單、方便地顯示漢字,該模塊具2Mb的中文字型CGROM,該字型 ROM中含有8192個16×16點陣中文字庫;同時,為了便于英文和其它常用字符的顯示,具有16Kb的16×8點陣的ASCII字符庫;為便于構造用戶圖形,提供了一個64×256點陣的GDRAM繪圖區域,且為了便于構造用戶所需字型,提供了4組16×16點陣的造字空間。利用上述功能,OCM4X8C可實現漢字、ASCII碼、點陣圖形、自造字體的同屏顯示。為便了和多種微處理器、單片機接口,模塊提供了4位并行、8位并行、2線串行、3線串行多種接口方式。 該模塊具有2.7~5.5V的寬工作電壓范圍,且具有睡眠、正常及低功耗工作模式,可滿足系統各種工作電壓及便攜式儀器低功耗的要求。液晶模塊顯示負電壓,也由模塊提供,從而簡化了系統電源設計。模塊同時還提供LED背光顯示功能。除此之外,模塊還提供了畫面清除、游標顯示/隱藏、游標歸位、顯示打開/關閉、顯示字符閃爍、游標移位、顯示移位、垂直畫面旋轉、反白顯示、液晶睡眠/喚醒、關閉顯示等操作指令。 2 模塊引腳定義和用戶指令集 OCM4X8C的引腳說明,如表1所列。 表1 OCM4X8C引腳說明 用戶使用液晶模塊時是通過用戶命令來執行相應的顯示或控制功能的。OCM4X8C的用戶命令分為基本命令集和擴充命令集,分別如表2、表3所列。 ![]() 表2 OCM4X8 基本命令集 ![]() ![]() 3 字符顯示 OCM4X8C 按照每個中文字符16×16點陣將顯示屏分類4行8列,共32個區。每個區可顯示1個中文字符或2個16×8點陣全高ASCII碼字符,即每屏最多可實現 32個中文字符或64個ASCII碼字符的顯示。OCM4X8C內部提供128×2字節的字符顯示RAM緩沖區(DDRAM)。字符顯示是通過將字符顯示編碼寫入該字符顯示RAM實現的。根據寫入內容的不同,可分別在液晶屏上顯示CGROM(中文字庫)、HCGROM(ASCII碼字庫)及CGRAM(自定義字形)的內容。三種不同字符/字型的選擇編碼范圍為:0000~0006H顯示自定義字型,02H~7FH顯示半寬ASCII碼字符,A1A0H~F7FFH顯示8192種GB2312中文字庫字形。字符顯示RAM在液晶模塊中的地址80H~9FH。字符顯示的RAM的地址與32個字符顯示區域有著一一對應的關系,其對應關系如圖1所示。 ![]() 4 應用說明 用OCM4X8C顯示模塊時應注意以下幾點: ①欲在某一個位置顯示中文字符時,應先設定顯示字符位置,即先設定顯示地址,再寫入中文字符編碼。 ②顯示ASCII字符過程與顯示中文字符過程相同。不過在顯示連續字符時,只須設定一次顯示地址,由模塊自動對地址加1指向下一個字符位 置,否則,顯示的字符中將會有一個空ASCII字符位置。 ③當字符編碼為2字節時,應先寫入高位字節,再寫入低位字節。 ④ 模塊在接收指令前,向處理器必須先確認模塊內部處于非忙狀態,即讀取BF標志時BF需為“0”,方可接受新的指令。如果在送出一個指令前 不檢查BF標志,則在前一個指令和這個指令中間必須延遲一段較長的時間,即等待前一個指令確定執行完成。指令執行的時間請參考指令表 中的指令執行時間說明。 ⑤“RE”為基本指令集與擴充指令集的選擇控制位。當變更“RE”后,以后的指令集將維持在最后的狀態,除非再次變更“RE”位,否則使用相同 指令集時,無需每次均重設“RE”位。 5 接口方式與時序 OCM4X8C具有串/并多種接口方式,方便了模塊與各種單片機、微處理器的連接。 (1)4/8位并行接口方式 當模塊的PSB腳接高電平時,模塊即進入并行接口模式。在并行模式下可由功能設定指令的“DL”位來選擇8位或4接口方式,主控制系統將配合“RS”、“RW”、“E”DB0~DB7來完成指令/數據的傳送,其操作時序與其它并行接口液晶顯示模塊相同。 (2)2/3線串行接口方式 當模塊的PSB腳接低電平時,模塊即進入串行接口模式。串行模式使用串行數據線SID與串行時鐘線SCLK來傳送數據,即構成2線串行模式。 OCM4X8C 還允許同時接入多個液晶顯示模塊以完成多路信息顯示功能。此時,要利用片選端“CS”構成3線串行接口方式,當“CS”接高電位時,模塊可正常接收并顯示數據,否則模塊顯示將被禁止。通常情況下,當系統僅使用一個液晶顯示模塊時,“CS”可連接固定的高電平。 模塊2線串行工作操作時序如圖2所示。 ![]() 由圖2可以看出,單片機與液晶模塊之間傳送1字節的數據共需24個時鐘脈沖。首先,單片機要給出數據傳輸起始位,這里是以5個連續的“1”作數據起始位,如模塊接收到連續的5個“1”,則內部傳輸被重置并且串行傳輸將被同步。緊接著,“RW”位用于選擇數據的傳輸方向(讀或寫),“RS”位用于選擇內部數據寄存器或指令寄存器,最后的第8位固定為“0”。在接收到起始位及“RW”和“RW”的第1個字節后,下一個字節的數據或指令將被分為2個字節來串行傳送或接收。數據或指令的高4位,被放在第2個字節串行數據的高4位,其低4位則置為“0”;數據或指令的低4位被放在第3個字節的高4位,其低4位也置為 “0”,如此完成一個字節指令或數據的傳送。需要注意的是,當有多個數據或指令要傳送時,必須要等到一個指令完成執行完畢后再傳送下一個指令或數據,否則,會造成指令或數據的丟失。這是因為液晶模塊內部沒有發送/接收緩沖區。 6 OCM4X8C應用實例 使用OCM4X8C的2線串行接口方式可大大簡化液晶顯示模塊與單片機之間的接口設計;同時,也使液晶顯示模塊顯示漢字變得極為容易,從而改變過去單片機系統人機界面不夠友好的弊端。AT89C2051單片機與OCM4X8C的接口電路如圖3所示。 ![]() 下面給出相應顯示程序。 ;位定義 SID BIT P1.0 ;串行數據線 SCLK BIT P1.1 ;串行時鐘線 ;內存數據定義 START EQU 30H ;起始字節 COM EQU 31H ;命令/數據 HDATA EQU 32H ;命令/數據字節高位 LDATA EQU 33H ;命令/數據字節低位 ASC EQU 34H ;ASCII數據單元 初始化子程序: INILCM:LCALL DL40MS ;延時等待內部復位 MOV COM,#30H ;使用8位控制界面 LCALL WRITE MOV COM,#30H ;使用基本指令集 LCALL WRITE MOV COM,#0CH LCALL WRITE ;整體顯示ON MOV DL1MS MOV COM,#01H ;清屏 LCALL WRITE LCALL DL40MS MOV COM,#06H ;顯示右移 LCALL WRITE LCALL DL1MS RET 模塊寫入子程序: WRITE:MOV A,COM ;送待發數據命令A MOV A,#0F0H ;屏蔽低4位 MOV HDATA,A ;將高4位送HDATA單元 MOV A,COM ;取低4位 SWAP A ;高低4位互換 MOV A,#0F0H MOV LDATA,A ;將低4位送LDATA單元 MOV A,START ;取起始字節 LCALL SENDBYTE ;發送 LCALL DL1MS ;延時1ms MOV A,HDATA LCALL SENDBYTE LCALL DL1MS MOV A,LDATA LCALL SENDBYTE LCALL DL1MS RET 顯示漢字子程序: HZDISP: MOV START,#0F08H 寫入命令 MOV COM,#80H 設定顯示位置 LCALL WRITE MOV DPTR,#TABLE 指向文字型代碼表 MOV A,#00H 取漢字代碼低位 LOOP2:MOVC A,A+@DPTR CJNE A,#0,DISP ;遇“0”結束顯示 RET 寫完一行則結束 DISP:MOV START,#0FAH ;寫數據 MOV COM,A LCALL WRITE ;寫入顯示模塊 INC DPTR ;取漢字代碼高位 AJMP LOOP2 ;未顯示完則繼續 TABLE:DB“中文圖形點陣”,0;漢字代碼表 DB“液晶顯示模塊”,0; 串行字節數據發送子程序: SENDBYTE:MOV R7,#08H ;發送8位 LOOP1:RLC A MOV SID,C ;數據送數據線 CLR SCLK ;產生同步時鐘 SETB SCLK DJNZ R7,LOOP1 ;未發送完8位繼續 RET 結語 由該模塊構成的液晶顯示方案與同類型的圖形點陣液晶顯示模塊相比,不論硬件電路結構或顯示程序都要簡潔得多,且該模塊的價格也略低于相同點陣的圖形液晶模塊。 參考文獻 1. 李維諟.郭強 液晶顯示與應用技術 2000 2. 陸愛明 單片機和圖形液晶顯示器接口應用技術 [期刊論文] -電子產品世界2001(18) 作 者:黑龍江八一農墾大學 李敏 孟臣 來 源:單片機與嵌入式系統應用 2003(8) |