新聞中心

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

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

        作者: 時間:2012-02-15 來源:網絡 收藏

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

        本文引用地址:http://www.104case.com/article/172096.htm

        1. 硬件接口原理

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

        56.jpg

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

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

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

        57.jpg

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

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

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

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

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

        2.軟件示例程序對比

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

        共需4個機器周期

        2.2 改進應用程序

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

        只需一條movx指令,2個機器周期



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 诸暨市| 台北县| 介休市| 仁化县| 揭西县| 建湖县| 新巴尔虎右旗| 霍城县| 锡林浩特市| 湖南省| 宁都县| 烟台市| 信丰县| 蛟河市| 南京市| 无为县| 汉寿县| 连云港市| 同江市| 达孜县| 雷山县| 仙游县| 聂拉木县| 那曲县| 黄浦区| 莎车县| 靖安县| 乡城县| 凉城县| 仪陇县| 亳州市| 光山县| 紫阳县| 黑河市| 安乡县| 南漳县| 汉源县| 阳东县| 乐至县| 茌平县| 登封市|