|
本文以時(shí)序分析為出發(fā)點(diǎn),簡(jiǎn)要介紹了一種液晶顯示器與51系列單片機(jī)的普通型和改進(jìn)型兩種接口方法,并給出了實(shí)際的電路及運(yùn)行程序。 在許多使用單片機(jī)控制的場(chǎng)合,為改善人機(jī)界面,經(jīng)常要使用液晶顯示器顯示控制機(jī)構(gòu)的工作狀態(tài)及各種參數(shù)信息以供操作人員作出決策,由于液晶顯示器是一個(gè)低速器件,加上它對(duì)接口的要求比較特殊,使得單片機(jī)對(duì)它的控制變得較為煩瑣,從而占用了許多機(jī)器時(shí)間。在我們研制的數(shù)字錄音機(jī)中使用了一塊16×2的字符型液晶顯示器,由于單片機(jī)不斷地更新液晶顯示器上的顯示信息,同時(shí)又要處理語(yǔ)音數(shù)據(jù),所以節(jié)約機(jī)器時(shí)間顯得尤為重要,為此我們采用以端口地址來(lái)區(qū)分命令的方法,成倍地節(jié)約了單片機(jī)對(duì)液晶操作的時(shí)間。 1. 硬件接口原理 在所設(shè)計(jì)的系統(tǒng)中使用的16×2字符型液晶顯示器為南京國(guó)顯電子公司生產(chǎn),它與8031單片機(jī)的典型連接電路如圖1所示,模塊引腳功能如表1所列,此液晶顯示器的連接電路與一般接口電路的不同之處在于:對(duì)液晶的操作是在加到讀寫選擇引腳R/W及指令數(shù)據(jù)選擇引腳RS上的兩信號(hào)穩(wěn)定tAS(tAS>140ns)時(shí)間后,在片選信號(hào)E上再施加一個(gè)正向脈沖信號(hào),在這一脈沖下降沿的數(shù)據(jù)為有效數(shù)據(jù),而一般接口電路是片選信號(hào)在整個(gè)操作過程中均有效。液晶顯示器的讀寫時(shí)序如圖2所示。 在圖1所示的典型電路中,按圖2的時(shí)序要求對(duì)液晶顯示器進(jìn)行寫操作時(shí),首先要在P2.5、P2.6送出一個(gè)狀態(tài)指示信號(hào),表明將要進(jìn)行的操作,然后在P1口上送出所寫的數(shù)據(jù)(命令),然后使P2.7變高、再變低,這樣共需4條指令和4個(gè)指令周期。為節(jié)約時(shí)間,我們用了地址區(qū)分狀態(tài)的方法,具體電路見圖3。 采用圖3電路時(shí),其寄存器的選擇功能如表2所列。 為確定圖3所示電路是否能滿足液晶顯示器的時(shí)序要求,我們需進(jìn)一步分析由8051的讀寫時(shí)序而產(chǎn)生的RS、R/W、E信號(hào)的時(shí)間關(guān)系。圖4為其時(shí)序圖,從圖中可以看出:寫操作的時(shí)序及由此而產(chǎn)生RS、R/W、E及數(shù)據(jù)的時(shí)間關(guān)系(8051工作頻率為12MHz,故一個(gè)時(shí)鐘周期約為83ns)為: 地址建立時(shí)間tAS=4T(約332ns);允許脈沖寬度PWEH=6T(約498ns); 地址保持時(shí)間tAH=2T(約166ns); 數(shù)據(jù)建立時(shí)間tDSW=7T(約580ns); 而液晶顯示器要求tAS≥140ns,PWEH≥450ns,tAH≥10ns,tDSW≥195ns,因此均可滿足要求。 對(duì)讀周期的分析也可以得到同樣的結(jié)論,采用該改進(jìn)電路后,對(duì)液晶的任何操作都可用一條MOVX指令完成,在此電路中ADDRESS=0000H表示寫指令寄存器; ADDRESS=08XXH表示讀忙標(biāo)志和地址計(jì)數(shù)器;ADDRESS=04XXH表示寫數(shù)據(jù)寄存器;ADDRESS=0CXXH表示讀數(shù)據(jù)寄存器。因此指令的執(zhí)行時(shí)間是2個(gè)機(jī)器周期,比圖1電路節(jié)約了一半的時(shí)間,當(dāng)對(duì)液晶顯示器的操作比較頻繁時(shí),節(jié)約的時(shí)間是相當(dāng)可觀的。 2.軟件示例程序?qū)Ρ? 2.1 典型應(yīng)用程序 采用典型應(yīng)用電路(圖1)的“寫命令”程序如下: mov p1,#command;將命令內(nèi)容準(zhǔn)備好 setb p2.5 clr p2.6 ;開始發(fā)送 setb p2.7 clr p2.7 setb p2.6 ;發(fā)送完畢 … 共需4個(gè)機(jī)器周期 2.2 改進(jìn)應(yīng)用程序 采用改進(jìn)應(yīng)用電路(圖3)的“寫命令”程序如下: commamd- wr equ #0000h … mov dptr,command-wr;#0000 表示將執(zhí)行“命令寫”操作 mov a,#command ;將命令內(nèi)容準(zhǔn)備好 movx @dptr,a ;發(fā)送命令 只需一條movx指令,2個(gè)機(jī)器周期 |