周卓然,徐道連,斯蕓蕓,鄧?yán)^坤,刑 磊
(重慶大學(xué) 光電技術(shù)及系統(tǒng)教育部重點(diǎn)實(shí)驗(yàn)室,重慶 400030)
隨著電子產(chǎn)品設(shè)計(jì)技術(shù)的不斷發(fā)展,電子產(chǎn)品的設(shè)計(jì)越來越重視人機(jī)交互界面設(shè)計(jì)的人性化,而其中的液晶顯示屏由于其顯示質(zhì)量高、沒有電磁輻射、可視面積大、體積較小、功率消耗小等優(yōu)點(diǎn)得到了廣泛的應(yīng)用。同時(shí),隨著單片機(jī)技術(shù)的飛速發(fā)展,涌現(xiàn)了多種性能優(yōu)良且成本很低的單片機(jī)品種[1],PIC系列單片機(jī)就是其中之一。在工程應(yīng)用當(dāng)中,低功耗的PIC16F877可在滿足設(shè)計(jì)要求的前提下減低成本。因此,本文提出了一種基于PIC16F877和RA8835實(shí)現(xiàn)的低成本液晶顯示方案。
本文采用的液晶顯示器型號為JRD320240B,其以功能強(qiáng)大的RA8835作為控制器。適配Intel8080系列和M6800系列MPU的兩種操作時(shí)序電路,通過硬件設(shè)置,可選擇二者之一,本文選擇Intel8080時(shí)序。JRD320240B具有4 bit顯示數(shù)據(jù)線,傳輸數(shù)據(jù)迅速;具有強(qiáng)大的作圖功能;支持文本顯示、圖形顯示以及圖形和文本混合顯示;具備簡捷的MPU接口和功能齊全的控制指令集。
RA8835是臺灣瑞佑科技公司推出的新版液晶控制芯片,內(nèi)含功能強(qiáng)大的I/O緩沖器,價(jià)格低廉,可完全兼容SED1335控制器。RA8835的指令功能豐富,采用4 bit數(shù)據(jù)并行發(fā)送,可支持文字和圖形的混合顯示,并可將文字和圖形的三層重疊顯示、水平及垂直卷動等動態(tài)效果呈現(xiàn)在液晶屏上[2]。
本設(shè)計(jì)中,RA8835與PIC16F887單片機(jī)連接的主要接口控制引腳(Intel8080時(shí)序下)[3]如下:
DB0~DB7:三態(tài)數(shù)據(jù)總線,負(fù)責(zé)數(shù)據(jù)的傳送與接收;
CS:片選信號,低電平有效,MCU訪問 RA8835時(shí),低電平有效;
RD:當(dāng)為8080時(shí)序時(shí),該引腳為讀操作信號;
WR:當(dāng)為8080時(shí)序時(shí),該引腳為寫操作信號;
A0:I/O緩沖器選擇信號,當(dāng) A0為 0時(shí),寫數(shù)據(jù)參數(shù)和讀忙標(biāo)志,當(dāng)A0為1時(shí),寫指令代碼和讀數(shù)據(jù);
RES:復(fù)位信號,低電平有效,每次重新啟動 RA8835時(shí),需要使用指令SYSTEMSET;
SEL1、SEL2:為低電車時(shí),選擇 Intel8080時(shí)序(模塊上 R24接 0 Ω 電阻,R25為空)。
MCU采用 PIC16F877,PIC16F877是一款 8 bit單片機(jī),采用納瓦技術(shù)的28位引腳的8 bit CMOS閃存單片機(jī),其具有指令少、執(zhí)行速度快等優(yōu)點(diǎn),主要是因?yàn)镻IC系列單片機(jī)與采用CISC(復(fù)雜指令集計(jì)算機(jī))的單片機(jī)在結(jié)構(gòu)上不同,PIC系列單片機(jī)采用了哈佛結(jié)構(gòu)。同時(shí),PIC單片機(jī)的功耗也比同類型的單片機(jī)要低。
圖1 PIC16F877與RA8835的接口電路圖
由于采用8080時(shí)序,因此將SEL1和SEL2都置為0。PIC16F877與RA8835的接口電路如圖1所示。
接口引腳設(shè)置如下:/WR(4)腳接到單片機(jī) RCO(32)腳上,/RD(5)腳 接到 RA6(31)腳上,CE 接到 RA7(30)腳上,A0(7)腳接到 RE2(27)上,復(fù)位引腳 RST(8)接到 RE1(26)上,數(shù)據(jù)線 DB0~DB7 分 別接到 RE0(25)、RA5(24)、RA4(DB2)、RA2(21)、RA1(20)、RA0(19)、RB5(15)、RB4(14)引腳上。
設(shè)置8080時(shí)序下,讀寫時(shí)序操作時(shí)序圖如圖2所示,接口信號的組合功能如表1所示。
圖2 8080讀寫時(shí)序圖
表1 8080接口信號組合功能
通過設(shè)置不同的讀寫時(shí)序,寫入不同的指令和數(shù)據(jù)。
圖3 RA8835驅(qū)動程序流程圖
液晶顯示器JRD320240B為動態(tài)驅(qū)動結(jié)構(gòu)。對模塊的初始化是模塊進(jìn)行顯示之前的必要工作,包括初始化完成參數(shù)的設(shè)置,驅(qū)動程序包括系統(tǒng)設(shè)置,寫入指令和數(shù)據(jù),之后就可以方便實(shí)現(xiàn)漢字、字符和圖形的顯示,RA8835驅(qū)動程序流程如圖3所示。
系統(tǒng)初始化設(shè)置程序如下:
其中需要注意的是,由于JRD320240B自帶的160種5×7點(diǎn)陣字體的字符字體較小,不符合設(shè)計(jì)需求[5],因此,需要向里面寫入 8×16點(diǎn)陣的 0~99的字體以及 16×16點(diǎn)陣的三種不同的顯示狀態(tài)的字符。由于不是調(diào)用內(nèi)部字符,因此需要將OYLAY,即顯示合成方式中的OY位設(shè)為1,即圖形合成方式。所以LYLAY需要寫入0x5b。
初始化之后,向總線上寫入一個(gè)指令:
通過忙標(biāo)志(BF)檢測RA8835是否空閑,如果BF位為0,就往總線上發(fā)送一個(gè)8 bit的數(shù)據(jù)并將其顯示。
設(shè)計(jì)了一個(gè)可以顯示0~99數(shù)字的界面,這100個(gè)數(shù)字顯示100個(gè)設(shè)備端口接口號,通過單片機(jī)可以讀入不同接口的號碼,同時(shí)設(shè)計(jì)了三種不同的狀態(tài)符號來顯示不同接口對應(yīng)的設(shè)備狀態(tài),三種符號及其定義分別為:“X”表示設(shè)備已經(jīng)連上但工作異常,需要檢查;“”表示設(shè)備已經(jīng)連上并且正常;“≠”表示該設(shè)備未連接到檢測設(shè)備上。
而 0~99的 8×16點(diǎn)陣以及三種 16×16點(diǎn)陣的狀態(tài)符號則通過液晶點(diǎn)陣造字軟件直接生成點(diǎn)陣代碼。
為此,本文設(shè)計(jì)了兩個(gè)函數(shù),一個(gè)用來顯示設(shè)備單元號 void LcdTextGraphic(void),另一個(gè)用來顯示不同設(shè)備單元的狀態(tài)unsigned char LcdSymbolGraphic(unsigned char num,unsigned char symbol),num 的范圍為 0~99,通過調(diào)用不同的設(shè)備號,可以看到顯示的設(shè)備狀態(tài)。其函數(shù)如下:
由于JRD320240B是320×240點(diǎn)陣,而本設(shè)計(jì)最大顯示的是 99#:,加上一位狀態(tài)位,所以一行可以顯示8個(gè)字,一共顯示13行即可顯示完。
在調(diào)試的時(shí)候,要注意背光電壓大小,JRD320240B數(shù)據(jù)手冊上給出的背光電壓大小為5 V~30 V,但在調(diào)試過程中,調(diào)到24 V時(shí)屏幕才能顯示出字體,在24 V以下完全看不到字體。
液晶顯示程序流程圖如4所示。
RA8835液晶控制器的控制能力強(qiáng),顯示速度也很快,本文探討了基于PIC16F877單片機(jī)和RA8835液晶控制器的液晶顯示界面的設(shè)計(jì)方法,給出了對RA8835進(jìn)行有效控制的具體接口電路及驅(qū)動程序。本系統(tǒng)已經(jīng)經(jīng)過實(shí)際的工程測試,證明其性能穩(wěn)定、設(shè)計(jì)的界面簡潔,很符合設(shè)計(jì)要求,同時(shí)為相關(guān)型號的液晶顯示系統(tǒng)的設(shè)計(jì)提供一種可借鑒的方法。
[1]鄧亞平,賈顥.基于C8051F021和 RA8835的液晶顯示系統(tǒng)設(shè)計(jì)[J].新特器件應(yīng)用,2009,11(9):12-16.
[2]李廣麗,王躍存.液晶控制RA8835與單片機(jī)的借口設(shè)計(jì)[J].儀器儀表用戶,2008,15(8):14-15.
圖4 液晶顯示程序流程圖
[3]RAiOTchnologyInc. RA8835 dotmatrix LCD controller specification.www.ratio.com.tw, 2007, 2008.
[4]Microchop公司.www.microchip.com.2011-04-01.
[5]重慶群鶴電子公司.JRD320240液晶顯示模塊使用手冊.