|
顯示器是人類與應用設備溝通的重要界面,近年來,隨著電子技術的飛速發展,液晶顯示技術在實際生活中得到了廣泛應用。液晶顯示模塊以其微功耗、體積小、顯示內容豐富、模塊化以及接口電路簡單等諸多優點在科研、生產和產品設計等領域中發揮著越來越重要的作用。LM3033B系列液晶顯示模塊是深圳 TOPWAY公司生產的中文顯示模塊中的一員。采用了臺灣的ST7920控制芯片,并提供了中文字庫,為中文顯示開發方面帶來了更多的方便。本文以 LM3033B-0BR3為例介紹了12864點陣液晶顯示模塊的引腳、結構、功能,詳述了與AT89S52單片機的硬件接口電路及有關軟件編程方法。 1 LM3033B-0BR3特點及操作 1.1 字符顯示 每屏可顯示4行8列共32個16×16點陣的漢字,每個顯示RAM 可顯示1個中文字符或2個16×8點陣全高ASCII碼字符,即每屏最多可實現32個中文字符或64個ASCII碼字符的顯示。內部提供128×2字節的字符顯示RAM 緩沖區(DDRAM)。字符顯示是通過將字符顯示編碼寫入該字符顯示RAM實現的。根據寫入內容的不同,可分別在液晶屏上顯示CGROM (中文字庫)、HCGROM(ASCII碼字庫)及CGRAM(自定義字形)的內容。三種不同字符/字型的選擇編碼范圍為:顯示自定義字型其代碼分別是 0000H、0002H、0004H和0006H共4個,顯示半寬ASCII碼字符為02H~7FH,A1A0H~F7FFH顯示8192種GB2312 中文字庫字形。字符顯示RAM 在液晶模塊中的地址80H~9FH。字符顯示的RAM的地址與32個字符顯示區域有著一一對應的關系,其對應關系如表1所示。 表1字符顯示的RAM 地址與32個中文字符顯示區域的對應關系
| 80H | 81H | 82H | 83H | 84H | 85H | 86H | 87H | | 90H | 91H | 92H | 93H | 94H | 95H | 96H | 97H | | 88H | 89H | 8AH | 8BH | 8CH | 8DH | 8EH | 8FH | | 98H | 99H | 9AH | 9BH | 9CH | 9DH | 9EH | 9FH |
1.2 圖形顯示 繪圖顯示RAM提供64x32個位元組的記憶空間(由擴充指令設定繪圖RAM位址),在更改繪圖RAM時,由擴充指令設定GDRAM位址先設置垂直位址,再設置水平位址(連續寫入兩個位元組的資料來完成垂直與水平的坐標位址),再寫入兩個8位的資料到繪圖RAM,而位址計數器(AC)會自動加一,整個寫入繪圖RAM 的步驟如下: a.關閉繪圖顯示功能(在寫入繪圖RAM期間,繪圖顯示必須關閉) ; b.先將垂直的位元組(Y)寫入繪圖RAM位址; c.再將水平的位元組(X)寫入繪圖RAM位址; d.將D15~D8寫入到RAM 中; e.將D7~D0寫入到RAM 中。  圖1 繪圖RAM 與屏幕顯示區域的對應關系
1.3 LM3033B-0BR3的操作指令 LM3033B-0BR3提供兩套控制命令:基本指令集和擴充指令集。基本指令集包括了對液晶LM3033B-0BR3的基本操作,如判斷控制器忙標志、清除顯示、設定顯示的地址、寫數據和讀數據等。而擴充指令集則包括設置睡眠模式,設置圖形顯示、設置反白、設置滾動等功錢,可以進一步滿足低功耗的需求,使顯示效果更豐富,為使用者提供更方便的環境。 單片機對LM3033B-0BR3的操作過程為:單片機先確認ST7920內部處于非“忙“狀態。即讀取BF位,當BF為0時,LM3033B-0BR3 才可接收新的指令或數據。在操作時,LM3033B-0BR3在單片機的時鐘信號的控制下,數據通過數據線傳送給LM3033B-0BR3,當 LM3033B-0BR3成功接收到數據后,轉入內部時鐘控制,封鎖I/O口緩沖器,置”忙”標志。ST7920根據接收數據中的RW和RS位判斷所接收到的是數據還是指令,并進行相應的處理。處理完成后,撤銷I/O口緩沖器的封鎖,“忙”標志清零。 2 單片機與LM3033B-0BR3的接口電路 一般液晶顯示模塊與單片機的接口分為直接訪問方式和間接控制方式,間接控制方式還分為一位串行、4位并行以及8位并行。本文采用的AT89S52和液晶 LM3033B-0BR3模塊的接口電路如圖2所示。由于LM3033B-0BR3采用并口通信,外接電路簡單,與單片機連接采用間接連接的方法,即用 I/O口直接與LCD數據線和控制線相連,其特點是簡單、直觀、操作方便。在此電路中,采用軟件模擬液晶的時序,達到正確顯示的目的。 
| 管腳號 | 管腳名稱 | | 1 | VSS | | 2 | VDD | | 3 | NC | | 4 | RS(CS) | | 5 | R/W(SID) | | 6 | E(SCLK) | | 7-14 | DB0—7 | | 15 | PSB | | 16 | NC | | 17 | RST | | 18 | NC | | 19 | BLA | | 20 | BLK |
圖2 AT89S52和液晶LM3033B-0BR3模塊的接口電路及LM3033B-0BR3引腳功能 3 液晶顯示C51程序設計 對LM3033B-0BR3的軟件編程采用Medwin語言開發,主要包括兩部分,一部分是給液晶寫指令,另一部分是給液晶寫數據。有了這2個基本的子程序,就可以構造出各種實用的顯示子程序。由于液晶內部自帶漢字模塊,只需發送漢字對應的代碼就可以實現漢字的顯示,其代碼可以在ST7920模塊的資料中查找。對于圖形和曲線顯示的原理類似,只需要設置好相應的水平地址和垂直地址,并把相應的圖形編碼寫入液晶模塊,就可顯示出所要顯示的內容。 寫命令到LCD: void WRCMD(uchar cmdcode) { chk_busy(); RS=0; RW =0; E=1; lcd_bus=cmdcode; E=0; ) 寫數據到LCD: void WRData(uchar Dispdata) { chk_busy(); RS=1; RW =0; E=1; lcd_bus=Dispdata; E=0; ) 初始化程序: void Init() { RES=1; RES=0; delay(1); RES=1; delay(1); WRCMD(Ox30); //選擇8位并行W RCMD(Ox30); //選擇8位并行 WRCMD(OxOc);//開顯示(無游標、不反白) WRCMD(0x01);//清除顯示 WRCMD(Ox04); //shift=0,AC加1 在單片機與液晶的接口中,關鍵是要滿足液晶的時序要求;在軟件編程中,關鍵是要進行正確的初始化、操作及寫入顯示內容的代碼。以上接口電路和相應的程序已經通過調試,并在實際中得到應用。由ST7920構成的LM3033B-0BR3液晶顯示模塊與同類型的圖形點陣液晶顯示模塊相比,不論硬件電路結構或顯示程序都要簡潔得多。因此,LM3033B-0BR3液晶顯示模塊將得到廣泛的應用。 |