Docstoc

CH 6 WG12864 Graphic LCD Module

Document Sample
CH 6  WG12864 Graphic LCD Module Powered By Docstoc
					        Chapter V       WG12864 Graphic LCDM
            CHINA UNIVERSITY OF SCIENCE AND TECHNOLOGY
               DEPARTMENT OF ELECTRONIC ENGINEERING
           EDITED BY ASSOCIATED PROFESSOR PU-SHENG TSAI

5-1 繪圖型液晶顯示器

(華凌光電WG12864)
 數字型液晶顯示器祇能顯示 0 ~ 9 的數字,文字型 LCD 則能顯示存在CGROM
內 160 個 5x7 點矩陣字型。除此之外,若要顯示其它的文字、符號可以靠 CG RAM
的造字功能。但若想在 LCD 螢幕上顯示一個圖樣或者動畫,例如史奴比、UFO,或
者一點、一線、一圓,‥等,無法用 5x7 點矩陣表現之圖形,祇好選擇更高級的繪
圖型 LCD 了。各類型 LCD 之外觀可參考圖5.1 中所示。




   TFT LCD PANEL           數字型 LCDM            黑白繪圖型 LCD 模組




彩色繪圖型 LCD 模組            中文字型 LCD 模組                   文字型 LCD 模組
                       圖5.1 各種類型LCD模組
目前商品應用繪圖型 LCD 已日趨普遍。大家所熟悉的 Note Book 電腦、電子字典、
以及掌上型電動玩具均採用這類型之顯示器。有關文字型 LCD 模組大都已規格
化,各廠商所推出的各類型號上無論接腳或控制時序上均相同。但繪圖型LCD 就沒
有那麼幸運,各廠商所推出的模組由於驅動晶片不同,不僅是接腳定義連同驅動方
式亦不盡相同。本單元針對目前最常用、最便宜的一型作討論。產品編號為華菱光
電所出品的WG12864,重要規格如下:
   LCD 螢幕橫向 128 點,縱向 64 點。採用兩顆 HD61202 點矩陣液晶驅動器作為
    64 個 SEG 驅動輸出,以及一顆 64 個 COM 驅動晶片 HD61203 作波形輸出控制。
   WG12864 模組僅可規劃為繪圖模式,故所有指令集均和繪圖方面有關。具有螢
    幕褶捲之功能,主要用於動畫中的上下移動。
   可將 128X64 大小螢幕視為兩塊 64X64 點矩陣 LCD,分別由 CSl 與 CS2 兩支腳加
    以致能,亦即控制兩顆 HD61202 是否動作。
               ,
    X 座標共計 128 點 addr 00~ addr 63 由 CS1 控制; addr 64 ~ addr 127 由 CS2 控制。
   Y 座標共計 64 點,劃分為 Page 0 ~ Page7 八頁,每一頁佔有八點,剛好是一個
    Byte 資料。
   螢幕顯示是以一個 Byte 為單位,顯示步驟如下:
    Step1: 設定 Y 頁地址 (0~7)
    Step2: 設定 X 行地址 (0~63)
    Step3: 將顯示資料(為一個 Byte)寫入 RAM 緩衝器中。
                 ,     ,        、         ,
    圖 5-2 為 CS1=1 CS2=0 Y=0(Page) X=0(Addr) 且將 11111111 資料寫入顯示 RAM
    之情形。




                            圖5-2: WG12864 顯示方式
本單元將針對此一繪圖型 LCD 規劃出各種有用之程式模組包括造型圖案之顯示及清

除,動畫效果(上下,左右移動),一點、一線之製作以及倚天中文字型之讀取及顯

示,再配合實作練習中所提供的 ‘棒槌一族’ 掌上型電玩之製作。相信可以帶給讀者

許多這方面的 Know-How 及觀念。

5-2 接腳說明
                   表(I) : WG12864 繪圖型液晶顯示器接腳說明
接腳名稱                      方向 功        能

Pin1: Vss                 I     接地端
Pin2: Vcc                 I     電源端,接+5V
Pin3: Vo                  I     LCD 亮度調整端

Pin4: D/ I                I     暫存選擇信號 D/ I =0 選到指令暫存器

                                           D/ I =1 選到資料暫存器

Pin5: R/W                 I     讀/寫選擇信號 R/W =0 寫入 LCD 資料

                                            R/W =1 讀取 LCD 資料
Pin6: E                   I     動作致能端

Pin7 ~ Pin14: DB0 ~ DB7   I/O   資料匯流排
Pin15: CS1                I     CS1=’1’時, LCD 左半螢幕 64X64 點致能
Pin16: CS2                I     CS2=’1’時, LCD 右半螢幕 64X64 點致能
Pin17: RST                I     RESET 重置端, 低態脈波致能
Pin18: VEE                0     負電壓- 10V 輸出端,由 LCD 驅動晶片產生
Pin19,20: NC                    未使用
(1) 繪圖模式 LCD 模組與 ECU 作介面的接腳圖如請參考圖 3-3 所示。




                圖 5-3       LCD 模組與 ECU 作介面
(2) 值得注意的是 Pin 3 為 LCD 亮度調整之輸入接腳 Vo,可用來調整螢幕之亮度及
  清晰度。LCD 之產品大都具有旋鈕,DG-128064 廠商提供的亮度調整電路如圖 5-3
  所示。其中的 10K 可變電阻便是實際產品中所使用到的旋鈕。
(3) 其次,Pin15 以及 Pin16 分別用來控制 LCD 左右螢幕的致能接腳,Pin18 送出-10V
  左右的負電壓。V#N           A#    購買時請注意


(4) 繪圖模式 LCD 所執行之動作,完全由 D/ I 以及 R/W 兩條信號線來決定,茲
   歸納於表 II 中。



                  表(II):     繪圖模式 LCD 操作狀態

                D/ I        R/W   GLCD 操作狀態
                0            0    將命令碼寫入指令暫存器中
                0            1    讀取 LCD 目前之狀態資料
                1            0    將顯示資料寫入輸入暫存器中
                1            1    由輸出暫存器讀取顯示資料
5-3、模組方塊說明
圖 5-4 為 DG-128064 之模組方塊圖,茲介紹如下




                 圖 5-4: DG-128064 模組方塊圖
1、 ICl,IC2: KS0108B,為點矩陣液晶驅動器,作為兩組 64 個 Segments 驅動

   輸出。CSl,CS2 則用來致能這兩顆晶片

2、 IC3: KS0107B,為點矩陣液晶驅動器,為 64 個 COM 驅動輸出。

3、 直流至直流轉換器(DC-DC CONVERTER):產生-l0V 之輸出電壓,供內部使用,並輸

   出至 VEE 端。
KS0108B 點矩陣液晶驅動器之內部方塊圖,圖中各部份之功能分述如下:




         圖 5-5:   KS0108B 晶片系統方塊圖




           圖 5-6: KS0108B 寫入時序圖
1、輸入暫存器(Input Register):

    一般而言 GLCD 上的顯示資料是由 MPU 寫入輸入暫存器中,經由 LCD 內部運作

自動地載入顯示 RAM 中,寫入時序可參考圖 5-6 中所示。資料在信號 E 之下緣被鎖

住(Latch)在輸入暫存器中。

2、輸出暫存器(Output Register)

    由顯示 RAM 中所讀出的資料會先儲存在輸出暫存器中。圖 5-7 為 MPU 讀取資

料與 RAM 位址時序。它透露一個觀念,GLCD 在作任何動作前,先作忙碌旗標之檢

測(Busy Check)。首先下達位址設定指令(Write Address N),使得位址指標指向 N。接

著

下讀取資料命令 (Read Data),CS = D/I = R/W = l 該指令將完成三件動作:

   由輸出暫存器中讀取資料

   位址指標所指的顯示資料將出現在輸出暫存器上。

   Y 位址指標加 1。

    下達完位址設定指令後,第一次的讀取動作,顯示 RAM 資料尚未出現在輸出暫

存器中,故無法讀到有效資料,稱為假讀(Dummy Read)。此時位址 N 的資料才會出

現在輸出暫存器上,且位址指標變成 N + l。接著再下一次讀取資料指令,才可由輸

出暫存器中讀到有效資料,這很像平行處理的觀念。切記,下達位址設定指令後必

需假讀一次。圖 5-7 為 DG-128064 讀取(Read Data)動作時序圖。
由 DG-128064 讀取時序可以看出要讀 DD RAM 的資料比資料寫入 DD RAM 中來得複

雜。讀取步驟僅列如下:

(1). 設定 DD RAM 位址:

    (A)Busy Check:等待忙碌旗標降為 ’0’,確定 HD61202 已處理完上一命令。

    (B)Write Address N:分別寫入 N 位址的 X(頁數)及 Y(位址)至指令暫存器中。



(2). 假讀動作:

    (A)Busy Check:等待忙碌旗標降為’0’。
    (C)Read Data(Dummy):進行一次讀取 DD RAM,此為無效讀取(假讀)。
(3). 讀取 Address N 資料: 經過假讀動作後,該位址的 DD RAM 資料才出現在輸出暫

存器中

  (A)Busy Check: 等待忙碌旗標降為’0’。

  (D)Read Data at ADDRESS N: 由輸出暫存器將資料讀出,為有效讀取。



(4). 讀取命令結束後,Y 位址指標自動加 1,故可不必重新設定 DD RAM 位址,可直

接讀取 N+l 位址資料。




                      圖 5-6:   LCD 讀取資料位址時序

3、忙碌旗標(Busy Flag):

  當忙碌旗標為 ’1’,表示 KS0108B 正在進行內部運作,除了狀態讀取指令外,

其它任何指令都不被接受。故每下達任何指令前,必需檢查忙碌旗標是否清除為

‘0’,此動作稱為 Busy Check。另外,忙碌旗標是由狀態讀取資料的 DB7 所決定。參

考指令碼的說明。圖 5-7 為 Busy Check 所需之時間寬度,約為 E 脈波一個週期寬度。




                     圖 5-7: Busy Check 所需的時脈寬度
4、顯示器 ON/OFF 正反器 (Display ON/OFF Flip Flop)

可選擇 Y1~Y64 Segments為 'ON' 或 'OFF'。選擇方式由顯示器 ON/OFF 指令所控

制。當您選擇 'ON' 時,RAM中的資料將輸出至所對應的 Segments 上。否則的話,

所有的 Segments 將不顯示。此外,該正反器的狀態可由狀態讀取指令的DB5決定。



5、顯示起始列暫存器(Display Start Line Register)

此暫存器可設定RAM中某一列資料對應到GLCD螢幕的最頂端,可達到螢幕捲動的效

果,參考圖5-8中所示。起始列的資料共佔六個位元,可藉由顯示起始列設定指令寫

入該暫存器中。




6、X、Y 位址計數器

共占9個位元,指向顯示資料RAM的某一位址。其中 X 的頁面選擇器(Page Selector)

為較高的3個位元,而 Y 的位址計數器(Address Counter)則為較低的6個位元。X、Y

地址雖然共用同一計數器,但具有各別指令,可分別設定之。
   X 地址計數器: 為普通暫存器,不具計數功能,完全靠指令設定之。
   Y 地址計數器: 位址的設定雖然靠指令完成,但是每當資料寫至顯示 RA M 時,

    Y 位址計數器將自動加 1。其值在 0~63 間作迴圈。



7、顯示資料栓鎖器(Display Data Latch)

當資料由顯示 RAM 輸出至液晶驅動電路中,會暫時栓鎖在此暫存器中。



8.液晶顯示驅動電路(Liquid Crystal DispIay Driver Circuit)

將(7)栓鎖器內的顯示資料轉換成具有四個不同準位 V1,V2,V3 及 V4 之 LCD 驅動波

形,讓每一點液晶因為



9.重置(Reset):

當電源開啟(Power On),RST 為低態準位,其中 RST 信號必需符合以下規格:

   trst(min)=1.0ps; 表示在 Vcc 為高態後,用信號至少需維持 1.0ps 以上的低電

    位。
   tr(max)=200ps‥.表示 RST 拉回高電位的上升時間,不得超過 200ps。
    此外,執行重置命令後繪圖型 LCD 將執行下列動作:

   顯示器關閉(Display OFF)

   設定顯示起始列暫存器為 0
5-4、KS0108B 指令集
   表(III)列出了 KS0108B 之所有指令碼及功能,詳細操作描述如下:
                        表(III) KS0108B 指令集




(1). 顯示器 ON/OFF:
                   R /W D / I   DB 7 DB6 DB5 DB 4 DB3 DB 2 DB1 DB0

                     0 0        0 0 1 1 1 1 1 E
E=1 : 顯示器開啟
E=0 : 顯示器關閉
(2). 顯示起始列
                   R /W D / I   DB 7 DB6 DB5 DB 4 DB3 DB 2 DB1 DB0

                    0 0         1 1 A A A A A A
將"AAAAAA"資料寫入起始列暫存器中,GLCD 將根據暫存器之內容來設定顯示列
在距離螢幕頂端多少列處開始顯示。
(3). 設定頁數(X 位址)
                   R /W D / I   DB 7 DB6 DB5 DB 4 DB3 DB 2 DB1 DB0

                    0 0         1 0 1 1 1 B B B
顯示資料 RAM 中的 X 位址是以頁數為單位,64 個像素共計分為八頁,由"BBB"
三個位元作設定。當位元設定完成,此後任何 MPU 讀寫資料都在這個頁數上進行,
直到下一次頁數設定為止。
(4). 設定位址(Y 位址)
                     R /W D / I      DB 7 DB6 DB5 DB 4 DB3 DB 2 DB1 DB0

                       0 0           0 1 C C C C C C
顯示資料 RAM 中的 Y 位址是以 Y 位址計數器所設定,共計 128 個像素由 CS1 與
CS2 兩支腳位區分為左右兩塊,每一塊區間由"CCCCCC"加以定址。當 Y 位址設定
完畢,每次 MPU 讀寫資料完畢後,Y 計數器內容自動加 1。


(5). 狀態讀取
               R /W D / I     DB 7    DB6     DB5    DB 4   DB3 DB 2 DB1 DB0

                1 0         BUSY       0    ON/OFF RESET    0 0 0 0
三個位元旗標,所代表的意義如下:
    BUSY: 當 BUSY 為 "1",表示 LCM 正在執行內部動作,無法接受任何指令。
     因此,我們在執行任何一個指令前,必須讀取狀態資料,確定 BUSY 旗標是否
     拉為 "0"。
    ON/OFF: 該旗標指示液晶的顯示狀態 — ON ("1") 或 OFF ("0")。
    RESET: 當 RESET 旗標為 "1",表示目前系統被初始化,除了狀態讀取指令
     外,無法接受任何命令。當 RESET 為 "0",表示 LCM 初始化動作結束,系統
     進入正常操作。


(6). 顯示資料的寫入
                     R /W D / I      DB 7 DB6 DB5 DB 4 DB3 DB 2 DB1 DB0

                       0 1           D D D D D D D D
  下達該指令可將八位元資料 "DDDDDDDD" 寫入顯示資料 RAM 中。此時,Y
位址計數器將自動加 1。


(7). 顯示資料的讀取

                     R /W D / I      DB 7 DB6 DB5 DB 4 DB3 DB 2 DB1 DB0

                       1 1           D D D D D D D D
    下達該指令可由顯示資料 RAM 中讀出目前位址指標所指之資料,且位址自動加
1。
5-5、程式模組規劃
(1) wg12864_command 模組:

     將指令碼寫入指令暫存器中
;--------------------------------------------------------------------
;wg12864_command
;(1) function : write command to WG12864
;(2) input        : cmd
;(3) output : none
;(4) use reg. : cmd, buf_1
;---------------------------------------------------------------------
wg12864_command:
                    cbi          WG_CRLD,rw
                    cbi          WG_CRLD,di
                    sbi          WG_CRLD,e
                    out          WG_BUSC,cmd
                    cbi          WG_CRLD,e
                    sbi          WG_CRLD,di
                    sbi          WG_CRLD,rw
                    rcall        rwg12864_busy_flag
                    ret
(2) wg12864_data 模組:

     將顯示資料寫入輸入暫存器中
;---------------------------------------------------------------------
;wg12864_data
;(1) function : write display data to wg12864
;(2) input        : data
;(3) output : none
;(4) use reg. : data, buf_1
;---------------------------------------------------------------------
wg12864_data:
                    cbi          WG_CRLD,rw
                    sbi          WG_CRLD,di
                    sbi          WG_CRLD,e
                    out          WG_BUSC,data
                    cbi          WG_CRLD,e
                    sbi          WG_CRLD,di
                    sbi          WG_CRLD,rw
                    rcall        rwg12864_busy_flag
                    ret
(3) rwg12864_busy_flag 模組:

     測試忙碌旗標之狀態是否為"0"。
;-----------------------------------------------------------------------
;rwg12864_busy_flag
;(1)function : read wg12864 state & busy flag
;(2)input         : none
;(3)output : busy flag = 1 then do loop
;                   busy flag = 0 then jmp ret
;(4)use reg. : buf_1
;-----------------------------------------------------------------------
rwg12864_busy_flag:
                    ldi          buf_1,$00
                    out          DDRC,buf_1
                    sbi          WG_CRLD,rw
                    cbi          WG_CRLD,di
                    sbi          WG_CRLD,e
                    nop
                    nop
chk_busy_flag:
                    sbic         PINC,7
                    rjmp         chk_busy_flag
                    cbi          WG_CRLD,e
                    sbi          WG_CRLD,di
                    sbi          WG_CRLD,rw
                    ldi          buf_1,$ff
                    out          DDRC,buf_1
                    ret



(4) cwg12864_screen 模組:
     重置 GLCD,並將螢幕清除乾淨。
;-----------------------------------------------------------------------
;cwg12864_screen
;(1) function : clear wg12864A LCD module
;(2) input        : none
;(3) output : none
;(4) use reg. : buf_1,buf_2,buf_3,buf_4,cmd,data
;-----------------------------------------------------------------------
cwg12864_screen:
                    cbi          WG_CRLD,rst
                    nop
                    nop
                   sbi          WG_CRLD,rst
                   sbi          WG_CRLD,cs1
                   sbi          WG_CRLD,cs2
                   ldi          cmd,0x3f
                   rcall        wg12864_command

                   ldi          cmd,0xc0
                   rcall        wg12864_command

                   ldi          buf_4,0xb8
clr_x_page:
                   mov          cmd,buf_4
                   rcall        wg12864_command

; set y address
                   ldi          cmd,0x40
                   rcall        wg12864_command
                   ldi          buf_2,64
                   ldi          data,0
clr_y_addr:
                   rcall        wg12864_data
                   dec          buf_2
                   brne         clr_y_addr
                   inc          buf_4
                   cpi          buf_4,0xc0
                   brne         clr_x_page
                   ret



(5) ewg12864_graph_pattern 模組:
    在 GLCD 螢幕上建立造型圖案。

;-------------------------------------------------------------------------------
;ewg12864_graph_pattern
;(1)function : create graphic pattern from table
;(2)input         : count=> number of graphic number (1-64)
;                 : DPTR => graphic LCD table start name
;                 : x_page => X PAGE                 (0 - 7)
;                 : y_addr => Y ADDRESS (0 -63)
;(3)output : none
;(4)use reg. : buf_1,buf_2
;-------------------------------------------------------------------------------
ewg12864_graph_pattern:
                   mov          buf_2,count
                   ldi          cmd,0xb8
                   add          cmd,x_page
                   rcall        wg12864_command

                   ldi          cmd,0x40
                   add          cmd,y_addr
                   rcall        wg12864_command
ewg_loop:
                   lpm          data,Z+
                   rcall        wg12864_data
                   dec          buf_2
                   brne         ewg_loop
                   ret

(6) cwg12864_graph_pattern 模組:
    清除 GLCD 螢幕上建立造型圖案。

;-------------------------------------------------------------------------------
;cwg12864_graph_pattern
;(1)function : clear graphic pattern on LCD module
;(2)input         : count => number of graphic pattern(1-64)
;                 : x_page=> (0-7)
;                 : y_addr=> (0-63)
;(3)output : none
;(4)use reg. : buf_2, cmd, data
;------------------------------------------------------------------------------
cwg12864_graph_pattern:
                    mov          buf_2,count
                    ldi          cmd,0xb8
                    add          cmd,x_page
                    rcall        wg12864_command

                   ldi          cmd,0x40
                   add          cmd,y_addr
                   rcall        wg12864_command
cwg_loop:
                   ldi          data,0
                   rcall        wg12864_data
                   dec          buf_2
                   brne         cwg_loop
                   ret
(7) rwg12864_data 模組
     由輸出暫存器讀取顯示資料
;------------------------------------------------
;rwg12864_data
;(1)function: read wg12864 DD RAM
;(2)input      : none
;(3)output : data
;(4)use reg.:
;------------------------------------------------
rwg12864_data:
                  sbi         WG_CRLD,di
                  sbi         WG_CRLD,rw
                  sbi         WG_CRLD,e
                  ldi         buf_1,$00
                  out         DDRC,buf_1
                  nop
                  nop
                  in          data,PINC
                  cbi         WG_CRLD,e
                  cbi         WG_CRLD,di

                   rcall        rwg12864_busy_flag
                   sbi          WG_CRLD,di
                   sbi          WG_CRLD,e
                   ldi          buf_1,$00
                   out          DDRC,buf_1
                   nop
                   nop
                   in           data,PINC
                   cbi          WG_CRLD,e
                   rcall        rwg12864_busy_flag
                   ldi          buf_1,$ff
                   out          DDRC,buf_1
                   ret

(8) ewg12864_dot 模組:
    在 GLCD 螢幕上繪製一點(X,Y)。

;---------------------------------------------------------------------
;ewg12864_dot
;(1) function : plot a dot on WG12864 screen
;(2) input          : X1 => 0 ~ 127
;                         : Y1 => 0 ~ 63
;(3) output         : none
;(4) use reg. : X1,Y1,buf_1,buf_2,cmd,data
;-----------------------------------------------------------------------
ewg12864_dot:
                    clc
                    mov           buf_1,X1
                    subi        buf_1,64
                    brlo         cs1_act
cs2_act:
                    mov           buf_3,buf_1
                    sbi          WG_CRLD,cs2
                    cbi          WG_CRLD,cs1
                    rjmp set_xy_addr
cs1_act:
                    mov          buf_3,X1
                    sbi          WG_CRLD,cs1
                    cbi          WG_CRLD,cs2

set_xy_addr:
                   ldi         cmd,0b01000000
                   add          cmd,buf_3
                   mov           buf_3,cmd
                   rcall        wg12864_command

;Y1 / 8 = buf_2....
;Calculate 商數
               mov             buf_2,Y1
               andi            buf_2,0b11111000
               clc
               ror               buf_2
               ror              buf_2
               ror              buf_2
               ldi             cmd,$B8
               add               cmd,buf_2
               rcall             wg12864_command

;Calculate 餘數
             mov                buf_2,Y1
             andi              buf_2,0b00000111
             inc               buf_2
             sec
             ldi               buf_4,0
edot_1:
             rol               buf_4
             dec                buf_2
                   brne         edot_1

                   rcall        rwg12864_data

                   or           data,buf_4
                   mov          cmd,buf_3
                   rcall        wg12864_command
                   rcall        wg12864_data
                   ret

(9) ewg12864_line 模組:
    在 GLCD 螢幕上繪製一條線(X1,Y1)~(X2,Y2)。

;--------------------------------------------------------------------------------
;ewg12864_line
;(1) function : Sketch a line on WG12864 screen
;                  (X1,Y1)-(X2,Y2)
;(2) input       : X1 => 0 - 127, Y1 => 0 - 63
;                : X2 => 0 - 127, Y2 => 0 - 63
;(3) output : none
;(4) use reg. : X1,Y1,X2,Y2,cmd,data
;-------------------------------------------------------------------------------
ewg12864_line:
;(1) judge Y1 = Y2 ?
                    cp           Y1,Y2
                    breq         plot_row
;(2) judge X1 = X2 ?
                    cp           X1,X2
                    breq        plot_column
;(3) neither row nor column then goto ret
                    rjmp         eline_1
;(4) plot a row line
plot_row:
                    rcall        ewg12864_dot
                    inc          X1
                    cp           X1,X2
                    brne         plot_row
                    rcall        ewg12864_dot
                    rjmp         eline_1
;(5) plot a column line
plot_column:
                    rcall        ewg12864_dot
                    inc          Y1
           cp       Y1,Y2
           brne     plot_column
           rcall    ewg12864_dot
           rjmp     eline_1
eline_1:
           ret

Application Program
嘗試設計一支蝙蝠在天空中拍打翅膀,並請在 LCDM 在顯示中文字型

(1) 蝙蝠造型




(中文字形碼的取得)

BAT_1:
.db        0xF8,0x7C,0x3C,0x78,0x3C,0x3E,0x3C,0x78
.db        0x7E,0xFF,0xE6,0x7C,0x7C,0xE6,0xFF,0x7E
.db        0x78,0x3C,0x3E,0x3C,0x78,0x3C,0x7C,0xF8
BAT_2:
.db        0x00,0x00,0x3F,0x7E,0x7C,0x7C,0x7C,0x78
.db        0xFC,0xFE,0x4F,0x7E,0x7E,0x4F,0xFE,0xFC
.db        0x78,0x7C,0x7C,0x7C,0x7E,0x3F,0x00,0x00
BAT_3:
.db        0x00,0x00,0x00,0x00,0x00,0x00,0x38,0xFC
.db          0xFE,0x4F,0x7E,0x7C,0x7C,0x7E,0x4F,0xFE
.db          0xFC,0x38,0x00,0x00,0x00,0x00,0x00,0x00




#ifndef _蝙_h_
#define _蝙_h_
#ifdef __C51__
const unsigned char code 蝙[64]={
#else
const unsigned char 蝙[64]={
#endif
0x0,0x0,

0xf8,0x13,
0x10,0x31,
0xfe,0x1f,
0x12,0x9,
0xf8,0x93,
0x0,0x60,
0xfe,0x1f,
0x54,0x0,

0x54,0xfe,
0x54,0x12,
0x52,0x7e,
0x52,0x12,
0x52,0x7e,
0xfa,0x92,
0x10,0xfe,
0x0,0x0,

0x0,0x0,
0x0,0x0,
0x0,0x0,
0x0,0x0,
0x0,0x0,
0x0,0x0,
0x0,0x0,
0x0,0x0,
0x0,0x0,
0x0,0x0,
0x0,0x0,
0x0,0x0,
0x0,0x0,
0x0,0x0,
0x0,0x0};
#endif

            MOV    R5,#5
LOOP:
            MOV    A,R5
            MOV    B,#10
            MUL    AB
            ADD    A,#8
            MOV     R1,A
            MOV     R0,#13
            MOV     R7,A
            MOV     R6,#15
            CALL   ewg12864_line
            DJNZ   R5,LOOP
            JMP     $

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:14
posted:12/2/2012
language:Unknown
pages:22