;**********************************
;       SED7920
;**********************************
RS              REG     P3.0
E               REG     P3.1
R_W             REG     P3.7
STP             REG     P2.0
S_S             REG     P2.1
BCD             EQU     01H
CHAR_ADD        EQU     7FH
DPTRH           EQU     01H
DPTRL           EQU     00H
DT1             EQU     02H
DT2             EQU     03H
DT3             EQU     04H

;**********************************
                ORG     0H
                JMP     START

START:

INITIAL:
                CLR     E
                MOV     A,#00111000B            
                CALL    WCOM       

                MOV     A,#00001100B            ;Display ON/OFF = 00001DCB
                CALL    WCOM                    ;Display ON,Cursor&Blink OFF

                MOV     A,#00000110B            ;Entry Mode Set = 000001IS
                CALL    WCOM                    ;Increment & Shift OFF

                MOV     A,#00000010B            ;Return Home
                CALL    WCOM 

                MOV     A,#00000001B            ;Clear Display
                CALL    WCOM                    ;Write 20H to DDRAM

;******************************************************
SHOW:
                MOV     R6,#00H
                CALL    F_C

                MOV     DPTR,#G1
                CALL    GSHOW
                CALL    STP_SC

                MOV     R6,#00H
                CALL    F_C               
                
                CALL    GSHOW1
                CALL    STP_SC
                
                MOV     R6,#00H
                CALL    F_C

		CALL    GSHOW2
                CALL    STP_SC
                
                MOV     R6,#00H
                CALL    F_C
                
                CALL    GSHOW3
                CALL    STP_SC
                
                MOV     R6,#00H
                CALL    F_C
                
                CALL    GSHOW4
                CALL    STP_SC
                
                MOV     R6,#00H
                CALL    F_C
                
                
                CALL    CSHOW
                CALL    STP_SC
                
                MOV     A,#01H
                CALL    WCOM
                
                JMP     SHOW   
;******************************************************
CSHOW:
                CLR     E
                MOV     A,#00111000B
                CALL    WCOM
                
                MOV     A,#10000000B	;LINE1 00H
                CALL    WCOM
                MOV     DPTR,#S1
                MOV     R1,#64			;1 WORD = 2
CLOOP1:
                MOV     A,#00H
                MOVC    A,@A+DPTR
                CALL    WDATA
                INC     DPTR                
                DJNZ    R1,CLOOP1
                
                LCALL   DELAY
                CALL    STP_SC
                RET

;******************************************************
GSHOW:
                MOV     A,#00111110B
                CALL    WCOM  
                        
                MOV     R5,#02H
                MOV     R4,#00H
                MOV     R2,#0
GLOOP1:
                MOV     A,#80H
                ADD     A,R2
                CALL    WCOM
                MOV     A,#80H
                CALL    WCOM
GLOOP2:         MOV     R3,#16
GLOOP3:
                MOV     A,#00H
                MOVC    A,@A+DPTR
                CPL	A
                CALL    WDATA
                INC     DPTR
                DJNZ    R3,GLOOP3
                CALL    DPTRADJ
                DJNZ    R5,GLOOP2
                MOV     R5,#02H
                INC     R2
                CJNE    R2,#32,GLOOP1
                
                LCALL   DELAY
                CALL    STP_SC
                RET
;******************************************************
GSHOW1:
                MOV     A,#00111110B
                CALL    WCOM  
                        
                MOV     R5,#02H
                MOV     R4,#00H
                MOV     R2,#0
$GLOOP1:
                MOV     A,#80H
                ADD     A,R2
                CALL    WCOM
                MOV     A,#80H
                CALL    WCOM
               
$GLOOP2:        MOV     R3,#8
$GLOOP3:
                MOV     A,#55H                
                CALL    WDATA                
                DJNZ    R3,$GLOOP3               
                DJNZ    R5,$GLOOP2
                MOV	R5,#02H
                INC	R2
                CJNE    R2,#32,$GLOOP1
                LCALL   DELAY
                CALL    STP_SC
                RET                
                
;******************************************************
GSHOW2:
           	MOV     A,#00111110B
                CALL    WCOM  
                        
                MOV     R5,#02H
                MOV     R4,#00H
                MOV     R2,#0
$GLOOP1:
                MOV     A,#80H
                ADD     A,R2
                CALL    WCOM
                MOV     A,#80H
                CALL    WCOM
               
$GLOOP2:        MOV     R3,#16
$GLOOP3:
                MOV     A,#AAH                
                CALL    WDATA                
                DJNZ    R3,$GLOOP3 
                MOV	R3,#16
                INC	R2
                MOV     A,#80H
                ADD     A,R2
                CALL    WCOM
                MOV     A,#80H
                CALL    WCOM
                
$GLOOP4:        MOV     A,#55H                
                CALL    WDATA                
                DJNZ    R3,$GLOOP4              
               
                INC	R2
                CJNE    R2,#32,$GLOOP1
                LCALL   DELAY
                CALL    STP_SC
                RET  
                
                LCALL   DELAY
                CALL    STP_SC
                RET    
                
;******************************************************
GSHOW3:
           	MOV     A,#00111110B
                CALL    WCOM  
                        
                MOV     R5,#02H
                MOV     R4,#00H
                MOV     R2,#0
$GLOOP1:
                MOV     A,#80H
                ADD     A,R2
                CALL    WCOM
                MOV     A,#80H
                CALL    WCOM
               
$GLOOP2:        MOV     R3,#16
$GLOOP3:
                MOV     A,#FFH                
                CALL    WDATA                
                DJNZ    R3,$GLOOP3 
                MOV	R3,#16
                INC	R2
                MOV     A,#80H
                ADD     A,R2
                CALL    WCOM
                MOV     A,#80H
                CALL    WCOM
                
$GLOOP4:        MOV     A,#00H                
                CALL    WDATA                
                DJNZ    R3,$GLOOP4              
               
                INC	R2
                CJNE    R2,#32,$GLOOP1
                LCALL   DELAY
                CALL    STP_SC
                RET  
                
                LCALL   DELAY
                CALL    STP_SC
                RET                
                
;******************************************************
GSHOW4:
           	MOV     A,#00111110B
                CALL    WCOM  
                        
                MOV     R5,#02H
                MOV     R4,#00H
                MOV     R2,#0
$GLOOP1:
                MOV     A,#80H
                ADD     A,R2
                CALL    WCOM
                MOV     A,#80H
                CALL    WCOM
               
$GLOOP2:        MOV     R3,#16
$GLOOP3:
                MOV     A,#CCH                
                CALL    WDATA                
                DJNZ    R3,$GLOOP3 
                MOV	R3,#16
                INC	R2
                MOV     A,#80H
                ADD     A,R2
                CALL    WCOM
                MOV     A,#80H
                CALL    WCOM
$GLOOP4:
                MOV     A,#CCH                
                CALL    WDATA                
                DJNZ    R3,$GLOOP4                         
                
                MOV	R3,#32
                INC	R2
                MOV     A,#80H
                ADD     A,R2
                CALL    WCOM
                MOV     A,#80H
                CALL    WCOM
                
$GLOOP5:        MOV     A,#33H                
                CALL    WDATA                
                DJNZ    R3,$GLOOP5  
                MOV	R3,#32
                INC	R2
                MOV     A,#80H
                ADD     A,R2
                CALL    WCOM
                MOV     A,#80H
                CALL    WCOM
$GLOOP6:        MOV     A,#33H                
                CALL    WDATA                
                DJNZ    R3,$GLOOP6           
               
                INC	R2
                CJNE    R2,#32,$GLOOP1
         
                
                LCALL   DELAY
                CALL    STP_SC
                RET                                           
                
;*******************************************************                
DPTRADJ:
                CLR     C
                CJNE    R4,#00H,SUBER
ADDER:          
                MOV     DPTRH,DPH
                MOV     DPTRL,DPL
                
                MOV     A,DPL
                ADD     A,#240
                JC      CARRY
ALOOP:          MOV     DPL,A
                
                INC     DPH
                INC     R4
                RET
SUBER:
                MOV     DPH,DPTRH
                MOV     DPL,DPTRL
                DEC     R4
                RET
CARRY:                
                INC     DPH
                JMP     ALOOP
;********************************************************                
F_C:
                MOV     A,#00111110B            
                CALL    WCOM
                
                MOV     R2,#0
FLOOP1:
                MOV     A,#80H
                ADD     A,R2
                CALL    WCOM
                MOV     A,#80H
                CALL    WCOM
                MOV     R3,#16
FLOOP2:
                MOV     A,R6
                CALL    WDATA
                DJNZ    R3,FLOOP2
                INC     R2
                CJNE    R2,#32,FLOOP1
                RET
;*******************************************************                
CHK_BUSY:
                MOV     P1,#0FFH                ;SET PORT1=INPUT
                CLR     RS                      ;SET IR  MODE RS=0
                SETB    R_W                     ;SET READ MODE R/W=1
                SETB    E                       ;ENABLE LCM
                MOV     C,P1.7                  ;CHECK BUSY FLAGE(BIT7)
                CLR     E
                JC      CHK_BUSY
                RET
;******************************************************                
WCOM:
                CALL    CHK_BUSY
                CLR     RS
                CLR     R_W
                SETB    E
                MOV     P1,A
                CLR     E
                RET
;*******************************************************
WDATA:
                CALL    CHK_BUSY
                SETB    RS
                CLR     R_W
                SETB    E
                MOV     P1,A
                CLR     E
                RET
;**********************************************************
DELAY:
                MOV     DT1,R1
                MOV     DT2,R2
                MOV     DT3,R3
                MOV     R1,#0BH
D1:             MOV     R2,#0FFH
D2:             MOV     R3,#0FFH
D3:             DJNZ    R3,D3
                DJNZ    R2,D2
                DJNZ    R1,D1
                MOV     R3,DT3
                MOV     R2,DT2
                MOV     R1,DT1
                RET
;******************************************************************************
;   procedure of step by step   and  scan
;******************************************************************************
STP_SC
                MOV        C,S_S
                JC         STEP
                RET

STEP:
                MOV        C,STP
                MOV        R5,#0FH
LOPE:
                MOV        R6,#0FFH
LOPH:
                DJNZ       R6,LOPH
                DJNZ       R5,LOPE
                JNB        S_S,LOUT
                JNC        STEP
LOUT:
                RET
;**********************************************************¤¤¤åª©

S1:        DB      020H,020H,020H,020H,057H,047H,031H,032H,032H,033H,032H,04DH,020H,020H,020H,020H
           DB      041H,042H,043H,044H,045H,046H,047H,048H,049H,04AH,04BH,04CH,04DH,04EH,04FH,050H
           DB      041H,042H,043H,044H,045H,046H,047H,048H,049H,04AH,04BH,04CH,04DH,04EH,04FH,050H
           
           DB      041H,042H,043H,044H,045H,046H,047H,048H,049H,04AH,04BH,04CH,04DH,04EH,04FH,050H
        
G1:
      DB    0F7H,0BDH,0EFH,07BH,0DEH,0F7H,0BDH,0EFH
      DB    07BH,0DEH,0F7H,0BDH,0EFH,07BH,0DEH,0F7H
      DB    0F7H,0BDH,0EFH,07BH,0DEH,0F7H,0BDH,0EFH
      DB    07BH,0DEH,0F7H,0BDH,0EFH,07BH,0DEH,0F7H
      DB    0FFH,0BFH,0EFH,0FBH,0FEH,0FFH,0BFH,0EFH
      DB    0FBH,0FEH,0FFH,0BFH,0EFH,0FBH,0FEH,0FFH
      DB    0FFH,0BFH,0EFH,0FBH,0FEH,0FFH,0BFH,0EFH
      DB    0FBH,0FEH,0FFH,0BFH,0EFH,0FBH,0FEH,0FFH
      DB    03FH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
      DB    0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
      DB    0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
      DB    0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
      DB    0FDH,055H,055H,055H,055H,05FH,0FFH,055H
      DB    055H,055H,055H,057H,0FFH,0F5H,055H,055H
      DB    0FEH,0AAH,0AAH,0AAH,0AAH,0BCH,047H,0AAH
      DB    0AAH,0AAH,0AAH,0AFH,044H,07AH,0AAH,0AAH
      DB    0FDH,055H,055H,055H,055H,05DH,0D7H,055H
      DB    055H,055H,055H,057H,055H,075H,055H,055H
      DB    00EH,0AAH,0AAH,0AAH,0AAH,0BCH,057H,0AAH
      DB    0AAH,0AAH,0AAH,0AFH,055H,07AH,0AAH,0AAH
      DB    0FDH,055H,055H,055H,055H,05FH,057H,055H
      DB    055H,055H,055H,057H,055H,075H,055H,055H
      DB    0FEH,0AAH,0AAH,0AAH,0AAH,0BCH,047H,0AAH
      DB    0AAH,0AAH,0AAH,0AFH,044H,07AH,0AAH,0AAH
      DB    0FDH,055H,055H,055H,055H,05FH,0FFH,055H
      DB    055H,055H,055H,057H,0FFH,0F5H,055H,055H
      DB    0FEH,0AAH,0AAH,0AAH,0AAH,0BFH,0FFH,0AAH
      DB    0AAH,0AAH,0AAH,0AFH,0FFH,0FAH,0AAH,0AAH
      DB    03DH,055H,055H,055H,055H,055H,055H,055H
      DB    055H,055H,055H,055H,055H,055H,055H,055H
      DB    0FEH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    0FDH,055H,055H,055H,055H,055H,055H,055H
      DB    055H,055H,055H,055H,055H,055H,055H,055H
      DB    0FEH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    0FDH,055H,055H,055H,055H,055H,055H,055H
      DB    055H,055H,055H,055H,055H,055H,055H,055H
      DB    00EH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    0FDH,055H,055H,055H,055H,055H,055H,055H
      DB    055H,055H,055H,055H,055H,055H,055H,055H
      DB    0FEH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    0FDH,055H,055H,055H,055H,055H,055H,055H
      DB    055H,055H,055H,055H,055H,055H,055H,055H
      DB    0FEH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    03DH,055H,055H,055H,055H,055H,055H,055H
      DB    055H,055H,055H,055H,055H,055H,055H,055H
      DB    0FEH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    0FDH,055H,055H,055H,055H,055H,055H,055H
      DB    055H,055H,055H,055H,055H,055H,055H,055H
      DB    0FEH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    0FDH,055H,055H,055H,055H,055H,055H,055H
      DB    055H,055H,055H,055H,055H,055H,055H,055H
      DB    00EH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    0FDH,055H,055H,055H,055H,055H,055H,055H
      DB    055H,055H,055H,055H,055H,055H,055H,055H
      DB    0FEH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    0FDH,055H,055H,055H,055H,055H,055H,055H
      DB    055H,055H,055H,055H,055H,055H,055H,055H
      DB    0FEH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    03DH,055H,055H,055H,055H,055H,055H,055H
      DB    055H,055H,055H,055H,055H,055H,055H,055H
      DB    0FEH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    0FDH,055H,055H,055H,055H,055H,055H,055H
      DB    055H,055H,055H,055H,055H,055H,055H,055H
      DB    0FEH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    0FDH,055H,055H,055H,055H,055H,055H,055H
      DB    055H,055H,055H,055H,055H,055H,055H,055H
      DB    00EH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    0FDH,055H,055H,055H,055H,055H,055H,055H
      DB    055H,055H,055H,055H,055H,055H,055H,055H
      DB    0FEH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    0FDH,055H,055H,055H,055H,055H,055H,055H
      DB    055H,055H,055H,055H,055H,055H,055H,055H
      DB    0FEH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    03DH,055H,055H,055H,055H,055H,055H,055H
      DB    055H,055H,055H,055H,055H,055H,055H,055H
      DB    0FFH,0FFH,0FAH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    0FFH,0FFH,0F5H,055H,055H,055H,055H,055H
      DB    055H,055H,055H,055H,055H,055H,055H,055H
      DB    0FFH,0E2H,03AH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    0FFH,0EEH,0B5H,055H,055H,055H,055H,055H
      DB    055H,055H,055H,055H,055H,055H,055H,055H
      DB    00FH,0E2H,0BAH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    0FFH,0FAH,0B5H,055H,055H,055H,055H,055H
      DB    055H,055H,055H,055H,055H,055H,055H,055H
      DB    0FFH,0E2H,03AH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    0FFH,0FFH,0F5H,055H,055H,055H,055H,055H
      DB    055H,055H,055H,055H,055H,055H,055H,055H
      DB    0FFH,0FFH,0FAH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    03DH,055H,055H,055H,055H,055H,055H,055H
      DB    055H,055H,055H,055H,055H,055H,055H,055H
      DB    0FEH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    0FDH,055H,055H,055H,055H,055H,055H,055H
      DB    055H,055H,055H,055H,055H,055H,055H,055H
      DB    0FEH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    0FDH,055H,055H,055H,055H,055H,055H,055H
      DB    055H,055H,055H,055H,055H,055H,055H,055H
      DB    00EH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    0FDH,055H,055H,055H,055H,055H,055H,055H
      DB    055H,055H,055H,055H,055H,055H,055H,055H
      DB    0FEH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    0FDH,055H,055H,055H,055H,055H,055H,055H
      DB    055H,055H,055H,055H,055H,055H,055H,055H
      DB    0FEH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH
      DB    0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAh

                END
