• <li id="c9zyp"><meter id="c9zyp"><th id="c9zyp"></th></meter></li>
      <rt id="c9zyp"><optgroup id="c9zyp"><strike id="c9zyp"></strike></optgroup></rt>
      <thead id="c9zyp"><optgroup id="c9zyp"></optgroup></thead>

        <rt id="c9zyp"><delect id="c9zyp"><strike id="c9zyp"></strike></delect></rt>
        <span id="c9zyp"><optgroup id="c9zyp"></optgroup></span>

        文章詳情
        所在位置: 首頁> 技術文章> 其它>

        帶漢字庫液晶顯示模塊在單片機系統的應用

        日期:2025-05-01 03:55
        瀏覽次數:6357
        摘要:

        帶漢字庫液晶顯示模塊在單片機系統的應用:
        液晶顯示器(LCD)作為當代高新技術的結晶產品,不但具有超薄平臺、顯示信息豐富的特點,而且還具有體積小、耗電省、壽命長、無輻射、抗震、防爆等其它類型顯示器無可比擬的優點,因而是單片機應用系統中理想的顯示器件,近年來已被廣泛應用于單片機控制的工控儀表、機電設備、**儀器儀表、信息家電、工控產品、數據采集等系統中。帶字庫液晶顯示器因它的編程快捷、方便、接口方式比較靈活等特點在單片機領域將會應用更廣泛,本文將以介紹了一種內含GB2312**、二級簡體漢字字庫的圖形點陣液晶顯示模塊,文中選用長沙太陽人電子有限公司的SMG16032ZK帶漢字庫液晶顯示器(LCD),該模塊具有8位并行、4位并行和2/3線串行三種硬件接口方式,利用其串行接口方式,可節省大量單片機硬件資源。本文重點介紹其在接口方式上靈活性的解析。


        關鍵詞  液晶顯示器(LCD)  中文字庫  串行接口  并行接口

                                       

         

         

         

         

         

         

         

         

         


        Abstract

        The liquid crystal display (LCD ) as the crystallizationproducts of the contemporary new and high technology, not only haveultrathin platforms , show the characteristic with abundantinformation, and still have small , power consumptive provinces ,longe-lived , there are no such incomparable advantages of othertype displays as radiation , antidetonation , explosion-proof,etc., it is the ideal display device in the application system ofthe one-chip computer, widely used in worker that one-chip computercontrol accuse of instrument , electromechanical equipment ,top-grade instrument and apparatus , infromation householdappliances , worker accuse of products , data person who gathersystem already in recent years. Bring word storehouse liquidcrystal display swift programming because of it have , help ,interface way getting flexible characteristic use extensive in thefield of one-chip computer, in order to recommend one implicitGB2312 one , second simplified Chinese character figure latticeliquid crystal , word of storehouses show the module this text,select for use Changsha the sun SMG16032ZK , people of ElectronicsCo., Ltd. bring Chinese character base liquid crystal display inthe article (LCD), this module has 8 running side by side , 4running side by side and three kinds of serial hardware interfaceways of Line 2/3, utilize its serial interface way, can save alarge number of one-chip computer hardware resources . This textintroduces its analysis of the flexibility in interface wayespecially.

        Keyword  Liquid-crystal display (LCD)  Chinesefonts  serial connection  parallel connection

         

         

         

         

         

         


        目錄

        一,    引言 ………………………………………………………………………………  4

        二,    帶漢字庫液晶顯示器與不帶字庫液晶顯示器優越性…………………  4

        三,    SMG16032ZK液晶顯示器(LCD)的結構與工作原理…………………… 5

        四,    SMG16032ZK液晶顯示器(LCD)與單片機的接口……………………  7

        五,    SMG16032ZK液晶顯示器(LCD)在串口方式上的應用………………  7

        六,    SMG16032ZK液晶顯示器(LCD)在并行接口上的應用……………… 16

        七,    結束語……………………………………………………………………………  24

        參考文獻

         

         

         

         

         

         

         

         

        一、引言

        液晶顯示器(LCD)作為當代高新技術的結晶產品,不但具有超薄平臺、顯示信息豐富的特點,而且還具有體積小、耗電省、壽命長、無輻射、抗震、防爆等其它類型顯示器無可比擬的優點,因而是單片機應用系統中理想的顯示器件,近年來已被廣泛應用于單片機控制的工控儀表、機電設備、**儀器儀表、信息家電、工控產品、數據采集等系統中。帶字庫液晶顯示器因它的編程快捷、方便、接口方式比較靈活等特點在單片機領域將會應用更廣泛,本文介紹一種新型的可與單片機串行接口也可并行接口且內部含有中文字庫的中文圖形點陣液晶顯示模塊。本文以長沙太陽人電子有限公司的SMG16032ZK帶漢字庫液晶顯示器為例,比較帶字庫與不帶字庫點陣液晶顯示器件的優越性,闡述SMG16032ZK漢字液晶顯示器的結構與工作原理、SMG16032ZK漢字液晶顯示器與單片機的接口技術,闡述、分析串行接口和并行接口兩種接口方式在SMG16032ZK漢字液晶顯示器的應用。通過闡述和分析為應用帶字庫液晶顯示器(LCD)系統提供比較完善的參考。

        二、帶漢字庫液晶顯示器與不帶字庫液晶顯示器優越性

        目前國內在單片機系統中使用的普通的液晶顯示器(LCD)大多數都是不自帶漢字字庫,以太陽人電子公司的SMG12864及其兼容產品使用比較多。此類普通的液晶顯示器(LCD)占有ROM的容量大,因以圖形方式顯示漢字,每個漢字將占用32個字節的ROM,每個西文字符記錄占用32字節,其中前16個字節為點陣數據,后16個字節無效,這對內部的FLASH閃存數量不是很大的單片機來說,使用起來就很受限制,而且在實際的應用過程中,如果要調用大量的顯示內容,這時還要根據顯示內容,運用漢字庫生成程序生成字庫文件,在應用時再加以調用,所以在實際應用當中編程比較煩瑣。再加上這樣所生成字庫文件占用的內存空間比較大,對于內部的FLASH閃存數量較小的單片機,影響尤為重要。而帶字庫的液晶顯示器(LCD),在實際應用當中可以直接調用它內部漢字地址即可,所以在編程時比普通的液晶顯示器(LCD)更方便。此類普通的液晶顯示器(LCD)與單片機的硬件接口電路復雜,而且只有一種接口方式。該類型液晶顯示器(LCD)除使用8根數據線外,尚需使用片選、寄存器選擇、讀/寫選擇、使能控制等控制線來加以控制,使得對單片機的硬件資源占用較為嚴重,對于端口比較少的單片機,應用就非常受限制,同時該類液晶顯示器(LCD)對近年來廣為流行的小體積非總線型單片機硬件的不支持。軟件編程繁復,通常的漢字顯示方式是先根據所需要的漢字提取漢字點陣(如16×16點陣),將點陣文件存入ROM,形成新的漢字編碼,而在使用時剛需要先根據新的漢字編碼組成語句,再由MCU根據新編碼提取相應的點陣進行漢字顯示。在這種顯示方式中,如果使用的流字數量較大或語句較多時,利用漢字的新編碼組成語句將是一件十分繁瑣而枯燥的工作。從而限制了液晶顯示技術在許多領域的應用。
        SMG16032ZK帶字庫的液晶顯示器(LCD)其接口方式有8位并行、4位并行和2/3線串行模式三種方式來供選擇,接口選擇可以由硬件直接控制也可以由程序來控制,使用非常方便。此款液晶模塊因自帶漢字庫對單片機的內存沒有太多的要求而且在軟件編程時只需調用漢字地址碼即可。非常適用于現在市面上應用廣泛的非總線型單片機的應用。因而帶字庫的液晶顯示器(LCD)比普通的液晶顯示器(LCD)在接口和軟件編程上有更大的優越性,在應用時對單片機的選擇空間更大。

        三、SMG16032ZK液晶顯示器(LCD)的結構與工作原理

        SMG16032ZK的點陣數160X32(見圖1:),可以顯示兩行,每行顯示10個漢字。該模塊的內部的字形ROM內含GB2312**、二級16X16點陣簡體中文字庫(8129個漢字)及128個16X8點陣半寬的ASCⅡ碼英文字庫。另外繪圖顯示畫面提供一個64X256點的繪圖區域。可用于繪制任意復雜的圖形,同時內部還含有CGRAM可提供4組軟件可編程規劃的16X16點陣的造字功能,用于內部字庫所沒有的字形自建,該模塊與單片機的硬件接口具有三種模式分別是8位并行、4位并行和2/3線串行模式。同時該模塊還具有電源電壓范圍寬(2.7V~5.5V)、低功耗的特點。低電壓、低功耗特性使得該模塊非常適用于便攜式系統的應用。SMG16032ZK模塊可實現漢字,ASCⅡ碼、點陣圖形、曲線的同屏顯示,并具有上、下、左、右移動當前顯示屏幕及**屏幕的命令,具有光標顯示、閃爍控制命令及液晶睡眠、喚醒、關閉顯示命令。該模塊內部還提供顯示驅動負電壓,而無須外接負電壓故簡化系統電源設計,同時模塊內部還具有LED背光源。由上述特性可知該模塊適用于各種單片機為核心構成的儀器儀表及家用電器作為器件顯示。
        表1 引腳說明
        引腳    名稱    方向   說明    引腳    名稱   方向    說明
        1    VSS    -   GND(0V)    11   DB4    I/O    數據4
        2    VDD    -   Supply Voltage For Logic (+5v)   12    DB5    I/O   數據5
        3    NCO    -   (懸空)    13    DB6   I/O    數據6
        4    RS(CS)    H/L   H: Data    L: Instruction Code   14    DB7    I/O   數據7
        5    R/W(STD)   H/L    H: Read    L:Write    15    PSB   H/L    H: Parallel Mode L: Serial Mode
        6    E(SCLK)   H,H/L    EnableSignal               
                       16    NC    -   NC
        7    DB0    I/O   數據0    17    /REST   H/L    Reset Signal 低電平有效
        8    DB1    I/O   數據1    18    NC   -    NC
        9    DB2    I/O   數據2    19    A   -    LED+
        10    DB3    I/O   數據3    20    K   -    LED-

        圖1  模塊外型圖
        SMG16032ZK液晶顯示器(LCD)的工作原理:
         此款帶字庫的液晶顯示器(LCD)采用臺灣矽創電子的一款ST7920為主控芯片。此芯片為點陣LCD控制/驅動IC,可以顯示字母、數字字符、中文字型及自定圖象顯示,它可以提供三種控制界面,分別是8位元微處理器界面,4位元微處理器界面及串行界面,所以的功能包含顯示RAM,字型產生器,以及液晶驅動電路和控制器,都包含在一個單晶片里面,只要一個*小的微處理系統,就可以操作本LCD控制/驅動IC。ST7920的字型ROM包括8129個16X16點的中文字形以及126個16X8點半寬的字符字型,另外繪圖顯示畫面提供一個64X256點的繪圖區域(GDRAM)。可以和文字畫面混合顯示,而且ST7920內含CGRAM提供四組軟體可程式規劃的16X16造字功能。ST7920LCD驅動器由32個Common及64個Segment所組成,Segment驅動器的擴充可以視需要有ST7921Segment驅動器來提供擴充顯示范圍的任務。SMG16032ZK液晶顯示器(LCD)由一顆ST7920和一顆ST7921兩顆芯片來控制,其控制見原理圖(圖2)。

         

         

         

         

         


                               圖2  控制原理圖
        四、SMG16032ZK液晶顯示器(LCD)與單片機的接口

        SMG16032ZK液晶顯示器(LCD)有三種接口方式,分別為8位元微處理器界面,4位元微處理器界面(8/4并行接口)及串行界面
        8/4并行接口,可以按照以下方式設定。

         

         

        當  DL=“1”時,為8BIT MPU控制界面即8BIT并行接口
        當  DL=“0”時,為4BIT MPU控制界面即4BIT并行接口
        當  RE=“1”為擴充指令集(有特殊用途時需要設定)
        當  RE=“0”為基本指令集
        注意:同一指令之動作,不可同時改變DL及RE,要改變時需先改變DL以后再改變RE,這樣才能確保標識正確設定。
        串行接口與并行接口有PSB的高低電平來控制,既可以由硬件來控制也可以通過軟件來控制。當PSB為高電平時,系統接收為并行接口方式;當PSB為低電平時,系統接收為串行接口方式。

        五、SMG16032ZK液晶顯示器(LCD)在串口方式上的應用

        SMG16032ZK的2/3線串行接口方式非常適合于與硬件資源緊張的非總線型單片機接口,下面以AT89C2051單片機為例給出該模塊與單片機的2/3線串行接口方式及時序。AT89C2051單片機與SMG16032ZK的硬件接口電路如(圖3:)所示,可知SMG16032ZK與AT89C2051單片機接口時僅需占用任意兩根I/O口線,除此之外還需要將模塊的PSB端接低電平或由軟件控制置低,模塊即進入到串行接口方式。在串行模式下模塊的SID引腳做數據線。SLCK引腳做時鐘線,單片機通過SID數據并配合同步時鐘線SCLK達到數據傳輸的目的。模塊的RS(CS)引腳在這里接固定的高電平即片選始終有效狀態,當系統中連接多個顯示模塊時,可以通過RS端選擇不同的顯示模塊,構成3線串行接口方式。單片機與液晶顯示模塊的串行接口時序(如圖4)。

         

        圖3  串行硬件接口

         

         

         

         

         

         

        圖4  串行接口時序

        由圖4可以看到單片機與液晶模塊之間傳送一個字節的數據共需24個時鐘脈沖。首先單片機要給出數據傳輸起始位,這里以5個連續的“1”則內部傳輸被重置并且串行傳輸將被同步,緊接RW位用于選擇數據的傳輸方向(讀或寫),RS位用于選擇內部數據寄存器或指令寄存器,*后第8位固定為“0”,在接收到起始位及RW/RS的第1個字節后,一個字節的數據或指令將被分為兩個字節來串行傳送或接收,數據或指令的高4位,被放在第2個字節串行數據的高4位,其低4位則為“0”,數據或指令的低4位被放在第3個字節的高4位,其低4位也為0,如此完成一個字節指令或數據的傳送。需要注意的是當有多個數據或指令要傳送時,必須要等到一個指令完全執行完畢或數據的丟失,這是因為液晶模塊內部沒有發送/接收緩沖區。
        具體參考程序如下:
        ;*cs----P3.1* *std---P3.3* *sclk-----------P3.0*
        ;*PSB----------P3.4 *(可由硬件直接控制)
        ;*RESET----------P3.5  (可由硬件直接控制)
        ;注:AT89C2051的晶振頻率為12MHz
        PSB    BIT  P3.4
        RES    BIT  P3.5
        CS      BIT  P3.1
        STD    BIT  P3.3     ;串行數據線
        SCLK    BIT  P3.0     ;串行時鐘線
        START  EQU  30H      ;起始字節
        COM    EQU  31H     ;命令/數據
        HDATA  EQU  32H     ;命令/數據字節高位
        LDATA  EQU  33H     ;命令/數據字節低位
        ASC    EQU  34H     ;ASCII數據單元
        XPOS    EQU  35H
        YPOS    EQU  36H
                ORG   0000H
        MAIN:
                MOV   SP,#60H
                CLR   RES
                SETB  RES
                SETB CS             ;  可以直接接電源VDD
                CLR   PSB           ;  可以直接接地VSS
                CALL LCDRESET        ; 模塊系統初始化
                CALL  HZKDIS
                MOV   START,#0F8H    ; 寫入命令(11111000)
                MOV   COM,#80H        ;設定顯示位置
                CALL  LCDWRITE
                MOV   START,#0FAH    ;寫數據    (11111010)
                MOV   COM,#10H        ;顯示字符
                CALL  LCDWRITE
                MOV   COM,#11H        ;顯示字符
                CALL  LCDWRITE
                MOV   START,#0F8H    ; 寫入命令(11111000)
                MOV   COM,#34H        ;擴充功能設定
                CALL  LCDWRITE
                MOV   COM,#05H        ;反白選擇
                CALL  LCDWRITE
                CALL DL40MS         ;延時
                CALL  DL40MS
                CALL  DL40MS
                MOV   A,#055H        ;繪圖方式下寫55數據
                CALL  LCDFILL
                CALL CLEAR          ;清屏
                JMP   MAIN
        CLEAR:                       ;清屏子程序
                MOV   A,#00H
                CALL   LCDFILL
               RET       
        LCDRESET:
                LCALL DL1MS         ;延時等待內部復位
                MOV   START,#0F8H    ; 寫入命令(11111000)
            MOV   COM,#30H        ;使用基本指令集
            LCALL  LCDWRITE
            MOV    COM,#0CH
            LCALL LCDWRITE        ;整體顯示ON
            MOV   COM,#01H        ;清屏
            LCALL  LCDWRITE
            LCALL  DL1MS
            MOV   COM,#06H        ;顯示右移
            LCALL  LCDWRITE
            LCALL  DL1MS
            RET
        LCDWRITE:                     ;模塊寫入子程序
                MOV   A,COM         ;送待發數據命令A
                ANL   A,#0F0H        ;屏蔽低4位
                MOV   HDATA,A        ;將高4位送HDATA單元
                MOV   A,COM         ;取低4位
                SWAP A             ;高低4位互換
                ANL   A,#0F0H
                MOV   LDATA,A        ;將低4位送LDATA單元
                MOV   A,START        ;取起始字節
                LCALL SENDBIT        ;發送
                LCALL DL1MS         ;延時1ms
                MOV   A,HDATA
                LCALL  SENDBIT
                LCALL  DL1MS
                MOV   A,LDATA
                LCALL  SENDBIT
                LCALL  DL1MS
                RET
        HZKDIS:                       ;顯示漢字子程序
                MOV   R5,#2
                MOV   START,#0F8H    ; 寫入命令(11111000)
        MOV   COM,#80H        ;設定顯示位置
          LCALL  LCDWRITE
                MOV   DPTR,#TAB      ;指向文字型代碼表
                MOV   A,#00H         ;取漢字代碼低位
        DIS_1:  MOV   R6,#8         ;每行十個漢字
        DIS_2:  MOV    START,#0FAH   ;寫數據    (11111010)
                CLR   A
                MOVC  A,@A+DPTR
                MOV   COM,A
                CALL LCDWRITE        ;寫入顯示模塊
                INC   DPTR           ;取漢字代碼高位
                CLR   A
                MOVC  A,@A+DPTR
                MOV   COM,A
                CALL LCDWRITE        ;寫入顯示模塊
                INC   DPTR
                CALL  DL40MS
                DJNZ R6,DIS_2        ;未顯示完則繼續
                MOV   START,#0F8H    ; 寫入命令(11111000)
                MOV   COM,#90H        ;**行地址
                CALL  LCDWRITE
                DJNZ  R5,DIS_1
                MOV   R5,#2
                MOV   START,#0F8H    ; 寫入命令(11111000)
                MOV   COM,#88H        ;第三地址
                CALL  LCDWRITE
        DIS_4:  MOV    R6,#08H   
        DIS_3: 
                MOV   START,#0FAH    ;寫數據    (11111010)
                CLR   A
                MOVC  A,@A+DPTR
                MOV   COM,A
                CALL LCDWRITE        ;寫入顯示模塊
                INC   DPTR           ;取漢字代碼高位
                CLR   A
                MOVC  A,@A+DPTR
                MOV   COM,A
                CALL LCDWRITE        ;寫入顯示模塊
                INC   DPTR
                CALL  DL40MS
                DJNZ R6,DIS_3        ;未顯示完則繼續
                MOV   START,#0F8H    ; 寫入命令(11111000)
                MOV   COM,#98H        ;第四行地址
                CALL  LCDWRITE
                DJNZ R5,DIS_4        ;遇“0”結束顯示
               RET                   ;寫完兩行則結束
        LCDFILL:                     ;繪圖
              MOV    R4,A
              MOV    XPOS,#0
              MOV    YPOS,#0
              MOV   START,#0F8H
              MOV   COM,#30H        ;重新選擇基本指令
              CALL  LCDWRITE
              MOV   COM,#01H        ;清屏
              CALL  LCDWRITE
              MOV   COM,#36H        ;擴充功能設定
              CALL  LCDWRITE
        LCD_A1:
              MOV    YPOS,#0
        LCD_A2:
              MOV   START,#0F8H
              MOV   A,XPOS         ;設定繪圖首地址
              ADD   A,#80H          ;X坐標
              MOV    COM,A
              CALL  LCDWRITE
              MOV   A,YPOS         ;Y坐標
              ADD    A,#80H
              MOV    B,A
              MOV    COM,A
              CALL  LCDWRITE
              MOV   START,#0FAH
              MOV    COM,R4
              CALL  LCDWRITE
              CALL  LCDWRITE
              LCALL  DL1MS
              INC    YPOS
              MOV    A,B
              CJNE A,#87H,LCD_A2    ;*后一列地址為87H
              INC    XPOS
              MOV    A,XPOS
              CJNE A,#20H,LCD_A1    ;*后行地址為80H+20H=0A0H
              MOV    XPOS,#0
        LCD_A3:MOV    YPOS,#0
        LCD_A4:
              MOV   START,#0F8H
              MOV   A,XPOS         ;設定繪圖首地址
              ADD   A,#80H          ;X坐標
              MOV    COM,A
              CALL  LCDWRITE
              MOV   A,YPOS         ;Y坐標
              ADD    A,#80H
              MOV    B,A
              MOV    COM,A
              CALL  LCDWRITE
              MOV   START,#0FAH
              MOV    COM,R4
              CALL  LCDWRITE
              CALL LCDWRITE     
              INC    YPOS
              MOV    A,B
              CJNE A,#8FH,LCD_A4    ;*后一列地址為8FH
              INC    XPOS
              MOV    A,XPOS
              CJNE A,#20H,LCD_A3    ;*后行地址為80H+20H=0A0H
              RET
        SENDBIT:                     ;串行字節數據發送子程序
        MOV   R7,#08H        ;發送8位
        SEND_1: RLC    A
                MOV   STD,C         ;數據送數據線
        CLR   SCLK         ;產生同步時鐘
        SETB    SCLK
        DJNZ    R7,SEND_1     ;未發送完8位繼續
        RET
        DL1MS:               ;延時子程序
                PUSH   00H           ;0.1MS
                PUSH   01H
                PUSH   02H
                MOV   R2,#01H
        WA_PA:  MOV    R0,#0FH
        WA_PB:  MOV    R1,#0FH
                DJNZ   R1,$
                DJNZ   R0,WA_PB
                DJNZ   R2,WA_PA
                POP   02H
                POP   01H
                POP   00H
                RET
                NOP
                RET
        DL40MS:                       ;延時子程序
                PUSH   00H           ;40MS
                PUSH   01H
                PUSH   02H
                MOV   R2,#01H
        DL_PA:  MOV    R0,#0FFH
        DL_PB:  MOV    R1,#0FFH
                DJNZ   R1,$
                DJNZ   R0,DL_PB
                DJNZ   R2,DL_PA
                POP   02H
                POP   01H
                POP   00H
                RET
                NOP
                NOP
                NOP
             
        RET
        TAB:
                DB   "  中南大學歡迎您  "
                DB   "為需要學習為未來學習"
            DB    00H
        END

        六、SMG16032ZK液晶顯示器(LCD)在并行接口上的應用

         SMG16032ZK液晶顯示器(LCD)在并行接口方式上有兩種方式,8位元微處理器界面,4位元微處理器界面(8/4并行接口),當PSB腳接高電平時(也可有程序控制),模塊進入并行模式,在并行模式下可有指令DLFAAG來選擇8-位或是4-位接口,主控系統將配合(RS,RW,E,DB0……DB7)來達成傳輸動作,從一個完整的流程來看,當設定地址指令后(CGRAM,DDRAM)若要讀取數據時需要先DUMMYREAD一次,才會讀取到正確數據**次讀取時則不需DUMMY READ 除非又下設定地址指令才需要再次DUMMYREAD.在4-位傳輸模式中,沒有一個八位的指令或數據將被分為兩個字節來操作:較高4位(DB7-DB4)的資料將會被放在**個字節的(DB7-DB4)部分,而較低4位(DB3-DB0)的資料則會被放在**個字節(DB7-DB4)部分,至于相關的另4-位傳輸模式中的DB3-DB0接口未使用,相關時序具體見下圖(如圖:5)。

         

         

         

         

         

        圖5(a) 8-bit并行時序


        圖5(b) 4-bit并行時序

         

         

         

         

         

        圖5(c) MPU寫資料到ST7920

         

         

         

         


                             5(d)  MPU從ST7920讀出資料

        并行接口參考連接見(圖6):

                                 
          圖6 并行硬件接口

        具體參考程序如下:
        ;*RS--P3.1* *RW---P3.3* *E-----------P3.0*
        ;*PSB----------P3.4 *(可由硬件直接控制)
        ;*RESET----------P3.5  (可由硬件直接控制)
        ;注:AT89C2051的晶振頻率為12MHz
        RS    equ P3.1                     ;定義數據與指令線
        RW    equ P3.3                     ;定義讀寫線
        E      equ P3.0                     ;定義使能控制線
        PSB    equ P3.4                     ;定義串并口選擇線
        RESET  equ P3.5                     ;定義復位線
        XPOS  EQU 20H                         ;定義列地址
        YPOS  EQU 21H                       ;定義行地址
        FIRST_COL    EQU   30H        ;定義字符/漢字顯示起始行
        FIRST_ROW    EQU   31H        ;定義字符/漢字顯示起始列
        HZK_WID       EQU    32H       ;定義字符/漢字顯示長度
        HZK_LIN       EQU    33H       ;定義字符/漢字顯示行數
        FIRST_ADD    EQU   34H        ;定義字符/漢字顯示起始位置
        START_ADD    EQU   35H         ;起始位置緩存單元
        FIRST_LIN    EQU   36H        ;起始行位置緩存單元
        G_COLUMN    EQU   37H        ;定義圖形顯示起始行
        G_ROW       EQU    38H       ;定義圖形顯示起始列
        G_WID       EQU    39H       ;定義圖形顯示寬度
                ORG   0000H
        LJMP  START
        ORG  0100H
        START:  MOV  SP,#60H
        MOV  G_WID,#00H
        MOV  G_ROW,#00H
        SERB  RESET
        SETB  PSB
        CLR  RW
        QIU1:LCALL INITIL           ;調用系統初始化程序
                MOV A,#0CH           ;開顯示,關游標
                LCALL INPUT
                LCALL DELAY01
                MOV A,#01H           ;DDRAM清零,DDRAM地址計數器到00H
                LCALL INPUT
                LCALL DELAY01
              MOVFIRST_ADD,#00H         ;設定字符/漢字顯示起始位置為**個顯示單元
                MOVFIRST_LIN,#01H       ;設定字符/漢字顯示起始位置為**行
                MOV DPTR,#TAB             ;需要顯示漢字機內碼數據表
                MOVword_WID,#08H       ;每行顯示漢字個數
                MOVword_LIN,#03H        ;顯示行數
        MOV START_ADD,#00H       ;清頭個顯示地址緩存單元
        LCALL   WORD_DISP        ;調用漢字顯示子程序
        LCALL DELAY
                LCALL DELAY
                LCALL DELAY
        ;-----------------
        ;漢字顯示子程序
        ;---------------
        WORD_DISP:
        MOV R1,WORD_WID
        WORD10: LCALL   DEADD               ;調用調整地址單元子程序
        MOV A,START_ADD           ;設定DDRAM地址,顯示位置地址
                  LCALLINPUT
        WORD11:CLRA               ;因為要連續輸入機內碼高位(區碼)、低位(位碼)
                MOVC A,@A+DPTR           ;所以要輸入兩次數據,如果是字符就是輸入兩個字符字符代碼可以看說明書
                LCALLDISPL           ;DATA    INPUT
                INCDPTR           ;顯示地址會自動加一,如果連續寫就不用再輸入地址,空白可用某空白漢字或字符代替
                CLR A
                MOVC A, @A+DPTR
                LCALLDISPL           ;DATA    INPUT
                LCALL DELAY01
                INC DPTR
                DJNZ   R1,WORD11
                MOV   R1,WORD_WID        ;調整顯示長度
                INC   FIRST_LIN        ;跳到下一行
                DJNZ   WORD_LIN,WORD10
                RET
        INITIL: LCALLDELAY           ;延時
        ;首先選擇基本指令集
                MOV A,#30H           ;30---基本指令操作
                LCALL  INPUT
                LCALL  DELAY01
                MOV A,#01H       ;指令#01H為:**屏幕文字,把地址指針指向00H單元
                LCALL INPUT           ;
                LCALL  DELAY01
                MOV A,#06H           ;指定在資料寫入或讀取時,設定游標的移動方向及指定顯示的移位
                LCALL  INPUT
                LCALL  DELAY01
                MOV  A,#0EH
                LCALL  INPUT
                LCALL  DELAY01
                  RET
        ;-----------------
        ;SEARCH ADDRESS
        ;目的是為了轉換地址單元為DDRAM地址單元,以方便
        ;定義顯示位置
        ;漢字顯示DDRAM位置為:**行:80H----87H
        ;           **行:90H----97H
        ;-----------------
        DEADD:  PUSH   DPH           ;地址轉換子程序
        PUSH    DPL
        PUSH    A
        MOV   DPTR,#LINE_ADD       ;LINE-ADD為地址表指針
        MOV    A,FIRST_LIN
        MOVC    A,@A+DPTR
        ADD    A,FIRST_ADD
        MOV    START_ADD,A
        POP    A
        POP    DPL
        POP    DPH
        RET
        LINE_ADD:
        DB      00H,80H,90H,88H,98H.00H
        READ:                 ;讀數據子程序
        MOV P3,#0FBH               ;P3--CONTRAL    I/O
               NOP               ;P3=11111011B  RS=1    R/W=1  READDATA
                SETBE               ;E=E(I/O)
                LCALL  DELAY01
                MOV A,P1           ;P1=DATA(I/O)
                NOP
                CLR E
                RET
        ;--------------------------------------
        CHK_BUSY:  CLR   RS           ;讀忙狀態子程序
                SETB   RW
                   SETB    E
        HEHE1:  JB      P1.7,HEHE1
                CLR   E
                RET
        ;--------------------------------------
        ;寫數據子程序
        ;----------------------------
        DISPL:  LCALL   CHK_BUSY           ;P3--CONTRAL    I/O
               NOP               ;P3=11111001B  RS=1    WRITE DATA
                SETB   RS
                CLR   RW
                SETBE               ;E=E(I/O)
                MOV  P1,A           ;P1=DATA(I/O)
                LCALL  DELAY01
                NOP
                CLR E
                NOP
                MOV   P1,#0FFH
                RET
        ;--------------------------------------
        ;寫指令子程序
        ;----------------------------
        INPUT:  LCALL   CHK_BUSY       ;以確保上一指令/數據模塊已經接收處理完
                           ;P3--CONTRAL    I/O
               NOP               ;P3=11111000B    RS=0   WRITE    INSTRUTION
                CLR   RS
                CLR   RW
                SETBE               ;E=E(I/O)
                MOV P1,A           ;P1=DATA(I/O)
                LCALL  DELAY01
                NOP
                CLR E
                NOP
                MOV   P1,#0FBH
                RET
        ;----------------------
        ;DELAY TIME
        ;---------------------
        DELAY:  MOV  R5,#03H
        C0:    MOV  R6, #0FFH
        C1:    MOV  R7, #0FFH
        C2:    DJNZ R7, C2
                DJNZ R6, C1
                NOP
                NOP
                DJNZ R5, C0
                RET
        DELAY01: MOV  R6, #6
        D5:    MOV  R7, #08h
        D6:    DJNZ R7, D6
                DJNZ R6, D5
                RET
        ;------------------
        DELAY02: MOV  R6, #6
        D52:    MOV  R7, #18h
        D62:    DJNZ R7, D62
                DJNZ R6, D52
                RET
        TAB:
                DB   "  中南大學歡迎您  "
                DB   "為需要學習為未來學習"
            DB    00H
        END

        七、結束語

          
        通過對SMG16032ZK帶字庫的液晶顯示器(LCD)在串行接口和并行接口上的解析,此系列的液晶顯示器(LCD)跟不帶字庫液晶顯示器(LCD)在接口上有無法比擬的優越性。其中串行接口方式可大量節省單片機的I/O口線且由于內含中文字庫使得該模塊顯示漢字變得非常容易。同時也使非總線型單片機可使用圖形點陣液晶顯示模塊作顯示器件,從而拓寬了液晶顯示器(LCD)的應用范圍。相信此系列帶中文字庫的液晶顯示器(LCD)將會成為國內單片機系統的*佳顯示方案,并將獲得越來越廣泛的應用。

        參考文獻

        1,李維諟 郭強:《液晶顯示應用技術》,電子工業出版社 ,2000年3月
        2,陸愛明:《單片機和圖形液晶顯示器接口應用技術》,電子產品世界,2001年9月
        3,李華  李紅青:《MCS-51系列單片機實用接口》,北京航空航天大學出版社,1993年8月
        4,臺灣矽創電子 《ST7920C33系列的芯片資料》,2005年3月
        5,《SMG16032ZK使用說明書》,長沙太陽人電子有限公司 ,2005年1月
        6,作者:劉國華
         

        湘公網安備 43019002000596號

        主站蜘蛛池模板: 五月天激激婷婷大综合丁香| 欧美伊人久久大香线蕉综合| 色欲人妻综合AAAAA网| 天天影视色香欲综合久久| 综合自拍亚洲综合图不卡区| 国产成人综合亚洲欧美天堂| 色综合久久中文字幕无码| 亚洲国产美国国产综合一区二区| senima亚洲综合美女图| 亚洲国产欧洲综合997久久| 久久亚洲高清综合| 亚洲香蕉网久久综合影视| 亚洲 欧美 日韩 综合aⅴ视频| 综合无码一区二区三区| 成人综合激情| 成人综合久久精品色婷婷| 色久悠悠婷婷综合在线亚洲| 亚洲综合色区在线观看| 日韩综合在线观看| 亚洲AV综合色区无码一区爱AV| 欧美久久综合性欧美| 狠狠狠色丁香婷婷综合久久五月| 久久婷婷成人综合色综合| 综合欧美亚洲日本| 久久综合九色综合欧美狠狠| 91精品国产综合久久香蕉| 一本一本久久aa综合精品| 欧美伊香蕉久久综合类网站| 国产欧美日韩综合AⅤ天堂| 色综合久久中文字幕无码| 99久久综合狠狠综合久久止| 婷婷亚洲综合五月天小说| 综合欧美视频一区二区三区| 国产成人亚洲综合无码精品| 人人妻人人狠人人爽天天综合网| 97se亚洲国产综合自在线| 老色鬼久久亚洲AV综合| 欧美成电影综合网站色www| 国产色综合一区二区三区| 色综合久久无码五十路人妻| 亚洲AV综合色区无码另类小说|