歡迎您光臨本站 登入註冊首頁

概述

   顯示器是人類與應用設備溝通的重要界面,近年來,隨著電子技術的飛速發展,液晶顯示技術在實際生活中得到了廣泛應用。液晶顯示模塊以其微功耗、體積小、顯示內容豐富、模塊化以……

    顯示器是人類與應用設備溝通的重要界面,近年來,隨著電子技術的飛速發展,液晶顯示技術在實際生活中得到了廣泛應用。液晶顯示模塊以其微功耗、體積小、顯示內容豐富、模塊化以及介面電路簡單等諸多優點在科研、生產和產品設計等領域中發揮著越來越重要的作用。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液晶顯示模塊將得到廣泛的應用。


[admin via 研發互助社區 ] 12864點陣液晶顯示模塊與51單片機的介面及程序設計已經有4396次圍觀

http://cocdig.com/docs/show-post-42098.html