<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 利用單片機的端口地址實(shí)現對液晶顯示器的控制

利用單片機的端口地址實(shí)現對液晶顯示器的控制

作者: 時(shí)間:2012-02-15 來(lái)源:網(wǎng)絡(luò ) 收藏

在許多使用的場(chǎng)合,為改善人機界面,經(jīng)常要使用器顯示機構的工作狀態(tài)及各種參數信息以供操作人員作出決策,由于器是一個(gè)低速器件,加上它對接口的要求比較特殊,使得對它的變得較為煩瑣,從而占用了許多機器時(shí)間。在我們研制的數字錄音機中使用了一塊16×2的字符型器,由于不斷地更新液晶顯示器上的顯示信息,同時(shí)又要處理語(yǔ)音數據,所以節約機器時(shí)間顯得尤為重要,為此我們采用以端口來(lái)區分命令的方法,成倍地節約了單片機對液晶操作的時(shí)間。

本文引用地址:http://dyxdggzs.com/article/172096.htm

1. 硬件接口原理

在筆者所設計的系統中使用的16×2字符型液晶顯示器為南京國顯電子公司生產(chǎn),它與8031單片機的典型連接電路如圖1所示,模塊引腳功能如表1所列,此液晶顯示器的連接電路與一般接口電路的不同之處在于:對液晶的操作是在加到讀寫(xiě)選擇引腳R/W及指令數據選擇引腳RS上的兩信號穩定tAS (tAS>140ns)時(shí)間后,在片選信號E上再施加一個(gè)正向脈沖信號,在這一脈沖下降沿的數據為有效數據,而一般接口電路是片選信號在整個(gè)操作過(guò)程中均有效。液晶顯示器的讀寫(xiě)時(shí)序如圖2所示。

56.jpg

在圖1所示的典型電路中,按圖2的時(shí)序要求對液晶顯示器進(jìn)行寫(xiě)操作時(shí),首先要在P2.5、P2.6送出一個(gè)狀態(tài)指示信號,表明將要進(jìn)行的操作,然后在 P1口上送出所寫(xiě)的數據(命令),然后使P2.7變高、再變低,這樣共需4條指令和4個(gè)指令周期。為節約時(shí)間,我們用了區分狀態(tài)的方法,具體電路見(jiàn)圖 3。

采用圖3電路時(shí),其寄存器的選擇功能如表2所列。

為確定圖3所示電路是否能滿(mǎn)足液晶顯示器的時(shí)序要求,我們需進(jìn)一步分析由 8051的讀寫(xiě)時(shí)序而產(chǎn)生的RS、R/W、E信號的時(shí)間關(guān)系。圖4為其時(shí)序圖,從圖中可以看出:寫(xiě)操作的時(shí)序及由此而產(chǎn)生RS、R/W、E及數據的時(shí)間關(guān)系(8051工作頻率為12MHz,故一個(gè)時(shí)鐘周期約為83ns)為:

57.jpg

建立時(shí)間tAS=4T(約332ns);允許脈沖寬度PWEH=6T(約498ns);

地址保持時(shí)間tAH=2T(約166ns);

數據建立時(shí)間tDSW=7T(約580ns);

而液晶顯示器要求tAS≥140ns,PWEH≥450ns,tAH≥10ns,tDSW≥195ns,因此均可滿(mǎn)足要求。

對讀周期的分析也可以得到同樣的結論,采用該改進(jìn)電路后,對液晶的任何操作都可用一條MOVX指令完成,在此電路中ADDRESS=0000H表示寫(xiě)指令寄存器;ADDRESS=08XXH表示讀忙標志和地址計數器;ADDRESS=04XXH表示寫(xiě)數據寄存器;ADDRESS=0CXXH表示讀數據寄存器。因此指令的執行時(shí)間是2個(gè)機器周期,比圖1電路節約了一半的時(shí)間,當對液晶顯示器的操作比較頻繁時(shí),節約的時(shí)間是相當可觀(guān)的。

2.軟件示例程序對比

2.1 典型應用程序
  采用典型應用電路(圖1)的“寫(xiě)命令”程序如下:
  mov p1,#command??;將命令內容準備好
  setb p2.5
  clr p2.6 ??;開(kāi)始發(fā)送
  setb p2.7
  clr p2.7
  setb p2.6  ;發(fā)送完畢
  …

共需4個(gè)機器周期

2.2 改進(jìn)應用程序

采用改進(jìn)應用電路(圖3)的“寫(xiě)命令”程序如下:
  commamd- wr equ #0000h
  …
  mov dptr,command-wr??;#0000 表示將執行“命令寫(xiě)”操作
  mov a,#command ??;將命令內容準備好
  movx @dptr,a    ;發(fā)送命令

只需一條movx指令,2個(gè)機器周期



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>