• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 光電顯示 > 設計應用 > 用80C31和SED1335控制三星LCD模塊

    用80C31和SED1335控制三星LCD模塊

    作者: 時間:2006-07-06 來源:網絡 收藏
    韓國320240 是一款低價位高品質的,具有高分辨率(點為0.27mm0.27mm)、高對比度FSTN、高可靠性、低功耗、低價格等優點,特別適用于數控機床、PDA、掌上電腦、游戲機等產品。

    是日本SEIKOEPSON公司出品的液晶顯示器,在同類產品中是功能很強。其特點為:有較強功能的I/O緩沖器;指令功能豐富;四位數據并行發送;圖形和文本方式混合顯示。

    指令集

      有13條指令,多數指令帶有參數,參數值由用戶根據所的液晶顯示的特征和顯示的需要來設置。指令表如表1所示。 SED1335 液晶板是用于MPU系統與液晶模塊之間的控制接口板,接收來自MPU系統的指令與數據,并產生相應的時序及數據控制模塊的顯示。A0為LCD控制器寄存器選擇輸入,類似于通常字符點陣LCD模塊的RS或D/I。MPU把指令代碼寫入指令輸入緩沖器內(即A0=1),指令的參數數據則隨后通過數據輸入緩沖器(A0=0)寫入。帶有參數指令代碼的作用之一就是選通相應的參數寄存器,除SLEEPIN、CSRDIR、CSRR和MREAD外任一條指令的執行都產生在附屬參數的輸入完成之后。MPU可用寫入新參數與余下的舊參數有效地組合成新的參數,需要注意的是所寫參數的順序不能改變,也不能省略。

    表1 SED1335指令集

     sed1335指令集


    硬件接口電路

      一般SED1335控制板有一跳線,用來選擇MPU是MCS51或MC68000單片機。此處硬件設計采用單片機控制SED1335來完成對液晶顯示模塊的控制。

      外擴32K的27256 EEPROM,用以存儲程序及顯示資料。LCD的八位數據D0~D7接到的外部數據總線P0.0-P0.7上,LCD的片選CS接80C31的 P2.7(A15),LCD的A0接80C31的P2.0(A8),所以LCD的口地址為0XXXXXX0XXXXXXXXB或 0XXXXXX1XXXXXXXXB,V0為LCD的對比度調節,接一個20K的電位器中間抽頭,當向VEE方向調時,LCD對比度增大,向VDD方向調時,LCD對比度減小。

    軟件

      SEED1335的程序設計非常簡潔方便,其流程是:

      在硬件系統上電復位后,軟件根據液晶模塊的參數(如液晶的行數、列數、掃描頻率等)和需要的顯示方式設置各個指令的參數來初始化系統,之后就可以由單片機把數據直接送給SED1335的顯示緩存,SED1335就可以控制液晶顯示。如果在后面需要改變顯示的形式(如使原來靜止的圖片翻轉),只要對應表1 中的指令改變相應指令的參數,然后重新輸入數據即可改變顯示的方式。

      設置系統命令參數或送數據給顯緩的方法是:先將指令代碼送到SED1335的命令口地址,然后把該指令的參數送到數據口地址后即可把數據送到數據口地址。語法如下:

      MOV DPTR,#XXXXH;XXXXH為命令口或數據口地址
      MOV A,#XXH;XXH為指令代碼、代碼參數、數據
      MOVX @DPTR,A

      軟件初始化就是根據表1中提供的指令集設置一些有關LCD的參數,以便LCD能正確顯示圖文信息。對80C31而言,所有對LCD操作的指令均為訪外部 I/O指令MOVX。例如,要顯示320240的黑白位圖,先將位圖反色,把bmp.hex和程序一起燒錄到27256中,位圖存放在1000H開始的地址。針對320240LCD點陣三層圖形疊加顯示初始化程序如下。

      INIT:
      MOV DPTR,#0101H;命令40H參數設置,#0101H為命令口地址
      MOV A,#40H
      MOVX @DPTR,A;把命令代碼送給命令口地址
      MOV A,#30H
      MOV DPTR,#0000H;#0000H為數據口地址
      MOVX @DPTR,A;把參數送給數據口地址
      MOV A,#07H;設置光標寬度為8
      MOVX @DPTR,A
      MOV A,#07H;設置光標高度為8
      MOVX @DPTR,A
      MOV A,#27H;設置LCD每行需要的字節數,每行320個點,行數為320/8-1=39
      MOVX @DPTR,A
      MOV A,#36H;設置液晶的掃描頻率約為70HZ
      MOVX @DPTR,A
      MOV A,#239D;設置LCD的列數為239
      MOVX @DPTR,A
      ……
      MOV DPTR,#0101H;命令5AH,設置點單元卷動位置參數
      MOV A,#5AH
      MOVX @DPTR,A
      MOV DPTR,#0000H
      MOV A,#00H;送水平方向移動位數參數0
      MOVX @DPTR,A;無須移動
      MOV DPTR,#0101H;命令4CH,設置光標移動方向參數
      MOV A,#4CH
      MOVX @DPTR,A
      MOV DPTR,#0101H;命令5BH,設置合成顯示方式參數
      MOV A,#5BH
      MOVX @DPTR,A
      MOV DPTR,#0000H
      MOV A,#1CH;送顯示方式為三屏圖形疊加方式
      ……
      MOV DPTR,#0101H;下面為清屏程序
      MOV A,#42H;給SED1335顯緩寫操作命令
      MOVX @DPTR,A
      MOV R7,#81H;下面程序將32K顯緩全部清零
      MOV DPTR,#0000H
      LOOP: MOV R6,#0FFH

    LOOP1: MOV A,#00H
      MOVX @DPTR,A
      DJNZ R6,LOOP1
      DJNZ R7,LOOP
      RET

      以上初始化程序只列出了部分命令代碼和參數設置。

      主程序是把圖片數據送給SED1335讓液晶顯示。

      DAT EQU #0000H;SED1335控制器數據口地址
      COM EQU #0101H;SED1335控制器命令口地址

      SD1L EQU #00H;第一屏開始顯示的顯緩首地址的低八位
      SD1H EQU #00H;第一屏開始顯示的顯緩首地址的高八位
      ……
      PIC EQU #1000H;圖片數據存放起始地址
      ORG 0000H
      AJMP START
      ORG 0080H
      START:
      MOV SP,#60H
      LCALL INIT;初始化LCD
      MOV DPTR,COM
      MOV A,#46H
      MOVX @DPTR,A
      MOV DPTR,DAT
      MOV A,SD1L
      MOVX @DPTR,A
      MOV DPTR,COM
      MOV A,#42H;數據寫入顯示緩沖區指令42H
      MOVX @DPTR,A
      MOV DPTR,PIC
      MOV R7,#240D;送外循環次數240行
      BMP:MOV R6,#40D;每行320點需要40個字節數據
      BMP1:MOV A,#3EH;位圖數據相對于bmp文件頭的地址
      MOVC A,@A+DPTR;查取位圖數據
      INC DPTR
      PUSH DPL
      PUSH DPH
      MOV DPTR,DAT
      MOVX @DPTR,A;將位圖數據送入顯緩區
      POP DPH
      POP DPL
      DJNZ R6,BMP1;直到將一屏位圖數據全部送完
      DJNZ R7,BMP
      ……

      實際試驗中可以看到非常清晰的圖像顯示,如果看不到或者看不到深藍色,調節對比度就可以看到圖案。注意上電之后,SED控制板要能正確復位,否則將導致錯誤,不能正確顯示,這個時候LCD一般顯示明亮的掃描線。還可以通過MPU寫入新參數讓顯示的圖像閃爍、翻轉、移動來滿足不同的要求。對于一般系統的顯示前端,也可以通過相同的方法實時顯示處理過的數據。

      上面的設計過程是相對于顯示一副圖像時采用的,這種方法將耗費許多空間。對于一般存儲空間較小的系統,如果只要顯示漢字字符,可以將需要顯示的字模提取出來存儲,在進行顯示的時候再調用,也同樣容易實現而且更節省存儲空間。



    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 鹤山市| 磐安县| 凤阳县| 汉中市| 报价| 景德镇市| 冕宁县| 苏尼特右旗| 上虞市| 莒南县| 昌黎县| 元氏县| 全南县| 孝昌县| 博白县| 永川市| 涡阳县| 交城县| 临夏市| 临海市| 克什克腾旗| 黄骅市| 沙洋县| 浦城县| 渝中区| 绥德县| 九寨沟县| 桃源县| 藁城市| 新绛县| 珲春市| 山西省| 错那县| 铜鼓县| 安远县| 岳阳市| 沛县| 神农架林区| 那坡县| 灵川县| 紫云|