圖形點(diǎn)陣式液晶顯示模塊與單片機(jī)的接口設(shè)計(jì)
引 言
液晶作為一種顯示器件,以其特有的優(yōu)勢(shì)正廣泛應(yīng)用于儀器、儀表、電子設(shè)備等低功耗產(chǎn)品中。以往的測(cè)控儀器的顯示部分大都采用LED式液晶顯示屏進(jìn)行參數(shù)設(shè)定和結(jié)果顯示,其顯示信息量少、形式單一、人機(jī)交互性差、操作人員要求較高。而液晶顯示器(LCD)具有功耗低、體積小、質(zhì)量輕、超薄和可編程驅(qū)動(dòng)等其他顯示方式無法比擬的優(yōu)點(diǎn),不僅可以顯示數(shù)字、字符,還可以顯示各種圖形、曲線、及漢字,并且可實(shí)現(xiàn)屏幕上下左右滾動(dòng)、動(dòng)畫、閃爍、文本特征顯示等功能;人機(jī)界面更加友好,使用操作也更加靈活、方便,使其日益成為智能儀器儀表和測(cè)試設(shè)備的首選顯示器件。本文在介紹以ST7920為驅(qū)動(dòng)器的WGM-12832液晶顯示模塊的引腳、結(jié)構(gòu)、功能的基礎(chǔ)上,詳述了與AT89S51單片機(jī)的硬件接口電路及接口軟件編程方法。
1 WGM-12832結(jié)構(gòu)特點(diǎn)及操作
1.1 點(diǎn)陣式液晶顯示器WGM-12832簡(jiǎn)介
WGM-12832是內(nèi)置ST7920控制器的128×32點(diǎn)陣式液晶顯示器,通過對(duì)ST7920控制器的編程可以實(shí)現(xiàn)液晶顯示器的各種應(yīng)用。WGM-12832具有如下特點(diǎn):(1)可以顯示數(shù)字、字母、特殊字符、圖形、曲線和漢字;(2)顯示內(nèi)容為128(列)×32(行)點(diǎn),全屏幕點(diǎn)陣,可顯示2行漢字,每行8個(gè)字;(3)IC內(nèi)帶8 139個(gè)16×16點(diǎn)陣中文字庫(kù),126個(gè)16×8字母符號(hào),并提供4個(gè)16×16點(diǎn)陣的自定義字功能;(4)與CPU接口采用串行控制方式;(5)功耗低,最大工作功耗15 mW。
WGM-12832模塊主要硬件結(jié)構(gòu)框圖如圖1所示。
WGM-12832共有7個(gè)外接引腳,其采用串口發(fā)送指令和數(shù)據(jù),優(yōu)點(diǎn)在于滿足顯示目的的同時(shí),占用很少的CPU引腳資源。因此,在很多低端CPU的引腳較少時(shí),也能驅(qū)動(dòng)WGM-12832液晶,滿足了不同微系統(tǒng)的需求。
1.2 WGM-12832控制指令
WGM-12832共有2個(gè)指令集:基本指令集和擴(kuò)充指令集?;局噶罴藢?duì)液晶WGM-12832的基本操作,如判斷控制器是否為忙、清除顯示、設(shè)定顯示的地址、寫數(shù)據(jù)和讀數(shù)據(jù)等。而擴(kuò)充指令集則在基本指令集的基礎(chǔ)上最大限度地滿足了現(xiàn)實(shí)的顯示需要。比如:能夠設(shè)置睡眠模式,滿足低功耗的需求;可以設(shè)置圖形顯示,更進(jìn)一步使顯示變得多樣化,提供更人性化的交互方式。
單片機(jī)對(duì)WGM-12832的操作原理為:?jiǎn)纹瑱C(jī)先確認(rèn)ST7920內(nèi)部處于非“忙”狀態(tài)。即讀取BF位,當(dāng)BF為0時(shí),ST7920才可接收新的指令。如果在送指令前不檢查BF位,那么在前一條指令和這條指令中間必須延遲一段較長(zhǎng)的時(shí)間,確保前一條指令執(zhí)行完。在操作時(shí),ST7920在單片機(jī)的時(shí)鐘信號(hào)的控制下,通過數(shù)據(jù)線傳送給ST7920,當(dāng)ST7920成功接收到數(shù)據(jù)后,轉(zhuǎn)入內(nèi)部時(shí)鐘控制,封鎖I/O口緩沖器,置“忙”標(biāo)志。ST7920根據(jù)接收數(shù)據(jù)中的RW和RS位判斷所接收到的是數(shù)據(jù)、指令、還是所要顯示的內(nèi)容,并進(jìn)行相應(yīng)的處理。處理完成后,撤消I/O口緩沖器的封鎖,“忙”標(biāo)志清零。在寫入數(shù)據(jù)到RAM中時(shí),每個(gè)RAM的位址都可以連續(xù)寫入2個(gè)位元的資料(2 B),當(dāng)寫人第二個(gè)字節(jié)時(shí),位址計(jì)數(shù)器(AC)的值就會(huì)自動(dòng)加1,即在連續(xù)寫入內(nèi)容時(shí),只需要設(shè)定開始的位址,并連續(xù)寫入數(shù)據(jù)就能達(dá)到目的。因?yàn)镾T7920是能控制128×64點(diǎn)陣的驅(qū)動(dòng)芯片,WGM-12832只用了ST7920資源的1/2。在使用上需要注意,DDRAM位址中的88 H~8 FH和98 H~9 FH中的內(nèi)容是不能顯示出來的。位址80H~87H和90H~97H的內(nèi)容會(huì)被分別顯示在第1行和第2行。
2 單片機(jī)與WGM-12832液晶的接口電路
AT89S51和液晶WGM-12832模塊的接口電路如圖2所示。由于WGM-12832采用串口通信,外接引腳較少,與單片機(jī)連接采用直接連接的方法,即用I/O口直接與LCD數(shù)據(jù)線和控制線相連,其特點(diǎn)是簡(jiǎn)單、直觀、操作方便。在此電路中,采用軟件模擬液晶的時(shí)序,達(dá)到正確顯示的目的。
3 軟件編程
對(duì)WGM-12832的軟件編程采用Franklin 51語言開發(fā),主要包括兩部分,一部分是給液晶寫指令,另一部分是給液晶寫數(shù)據(jù)。有了這2個(gè)基本的子程序,就可以構(gòu)造出各種實(shí)用的顯示子程序。由于液晶內(nèi)部自帶漢字模塊,只需發(fā)送漢字對(duì)應(yīng)的代碼就可以實(shí)現(xiàn)漢字的顯示,其代碼可以在ST7920模塊的資料中查找。對(duì)于圖形和曲線顯示的原理類似,只需要設(shè)置好相應(yīng)的水平地址和垂直地址,并把相應(yīng)的圖形編碼寫入液晶模塊,就可顯示出所要顯示的內(nèi)容。
發(fā)送指令子程序:
4 結(jié)論
隨著儀器、儀表、電子設(shè)備等智能化程度的提高,單片機(jī)系統(tǒng)的液晶顯示模塊使用的也越來越廣泛。在單片機(jī)與液晶的接口中,關(guān)鍵是要滿足液晶的時(shí)序要求;在軟件編程中,關(guān)鍵是要進(jìn)行正確的初始化、操作及顯示內(nèi)容的代碼。以上接口電路和相應(yīng)的程序已經(jīng)通過調(diào)試,并在實(shí)際中得到應(yīng)用。
評(píng)論