⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 2387.asm

📁 2387 LCD模块测试程序
💻 ASM
字号:
;******************************
        RS      EQU   P3.2
        RW      EQU   P3.1
        E       EQU   P3.0
        PORT0   EQU   P1
;******************************
        ORG  0000H
        AJMP begin
BEGIN:  
        ACALL DELAY
        ACALL DELAY
        MOV   SP,#60H
        MOV   TCON,#00H
        MOV   P1,#0FFH
        MOV   P3,#0FFH
        
	MOV   30H,#80H        ;4x16
	MOV   31H,#0C0H
	MOV   32H,#90H
	MOV   33H,#0D0H
	
        MOV   34H,#80H        ;4x20 & 2x40
	MOV   35H,#0C0H
	MOV   36H,#94H
	MOV   37H,#0D4H
 
        MOV   38H,#84H       ;4X16 SHIFT LEFT 
        MOV   39H,#0C4H      ;START ADDRESS
        MOV   3AH,#94H
        MOV   3BH,#0D4H

	MOV   3CH,#88H       ;4X20 SHIFT LEFT
	MOV   3DH,#0C8H      ;START ADDRESS
	MOV   3EH,#9CH
	MOV   3FH,#0DCH
	
	MOV   40H,#8CH       ;2X24 SHIFT LEFT
	MOV   41H,#0CCH      ;START ADDRESS

	MOV   42H,#9CH       ;2X40 SHIFT LEFT
	MOV   43H,#0DCH      ;START ADDRESS
	
        MOV   DPTR,#JUMPADD
	MOV   A,P3
        ANL   A,#11110000B
        SWAP  A
        MOV   R0,A
        ADD   A,R0
        ADD   A,R0
        JMP   @A+DPTR
JUMPADD:LJMP  MODULETYPE0
        LJMP  MODULETYPE1
        LJMP  MODULETYPE2
        LJMP  MODULETYPE3
        LJMP  MODULETYPE4
        LJMP  MODULETYPE5
        LJMP  MODULETYPE6
        LJMP  MODULETYPE7
;*******************************
   ;***********************
   ;     1x16  MODULE
   ;***********************
MODULETYPE0:
        ACALL INITIAL
        MOV   DPTR,#TP0DATA
	MOV   A,#82H
	ACALL WELLCOM
;------------------------
        MOV   08H,#01H
	MOV   09H,#16
	MOV   0AH,#30H
        ACALL FULLDIS
;------------------------
        MOV   08H,#01H
	MOV   09H,#16
	MOV   0AH,#30H
	ACALL WTIHJ
;------------------------        
        MOV   08H,#01H
        MOV   09H,#03H
	MOV   0AH,#30H
	ACALL SHIFTR
        MOV   09H,#04H
        MOV   0AH,#38H
	ACALL SHIFTL
;------------------------
       	MOV   08H,#06H
	MOV   09H,#01H
	MOV   0AH,#30H
	MOV   0BH,#16
	ACALL WCGROM
;------------------------
        MOV   0AH,#84H
	ACALL TSTEND
	AJMP  MODULETYPE0
;*******************************
    ;**********************
    ;    2x16 MODULE
    ;**********************
;*******************************
MODULETYPE1:
        ACALL INITIAL
        MOV   DPTR,#TP1DATA
	MOV   A,#82H
        ACALL WELLCOM
;------------------------
        MOV   08H,#03H
	MOV   09H,#16
        MOV   0AH,#30H
        ACALL FULLDIS
;-------------------------        
        MOV   08H,#02H
	MOV   09H,#16
        MOV   0AH,#30H
	ACALL WTIHJ
;-------------------------        
        MOV   08H,#02H
        MOV   09H,#03H
        MOV   0AH,#30H
	ACALL SHIFTR
        MOV   09H,#04H
        MOV   0AH,#38H
	ACALL SHIFTL
;-------------------------
        MOV   08H,#07H
	MOV   09H,#02H
        MOV   0AH,#30H
	MOV   0BH,#16
	ACALL WCGROM
;-------------------------
        MOV   0AH,#84H
	ACALL TSTEND
	AJMP  MODULETYPE1
;*******************************
   ;**********************
   ;    4x16 MODULE
   ;**********************
;*******************************
MODULETYPE2:
        ACALL INITIAL
        MOV   DPTR,#TP2DATA
	MOV   A,#82H
	ACALL WELLCOM
;-------------------------
	MOV   08H,#04H
	MOV   09H,#16
	MOV   0AH,#30H
        ACALL FULLDIS
;-------------------------
        MOV   08H,#04H
	MOV   09H,#16
	MOV   0AH,#30H
	ACALL WTIHJ 
;-------------------------
        MOV   08H,#04H
        MOV   09H,#03H
	MOV   0AH,#30H
	ACALL SHIFTR
        MOV   09H,#04H
        MOV   0AH,#38H
	ACALL SHIFTL
;-------------------------
        MOV   08H,#04H
	MOV   09H,#04H
	MOV   0AH,#30H
	MOV   0BH,#16
	ACALL WCGROM
;-------------------------
        MOV   0AH,#84H
	ACALL TSTEND
	AJMP  MODULETYPE2
;*********************************
      ;********************
      ;   1x20 MODULE
      ;********************
;*********************************
MODULETYPE3:
        ACALL INITIAL
        MOV   DPTR,#TP3DATA
        MOV   A,#84H
	ACALL WELLCOM
;--------------------------
	MOV   08H,#01H
	MOV   09H,#20
	MOV   0AH,#30H
        ACALL FULLDIS
;--------------------------
        MOV   08H,#01H
	MOV   09H,#20
	MOV   0AH,#30H
	ACALL WTIHJ 
;--------------------------
        MOV   08H,#01H
        MOV   09H,#05H
	MOV   0AH,#34H
	ACALL SHIFTR
        MOV   0AH,#3CH
	ACALL SHIFTL
;--------------------------
        MOV   08H,#0BH
	MOV   09H,#01H
	MOV   0AH,#34H
	MOV   0BH,#20
	ACALL WCGROM
;--------------------------
        MOV   0AH,#86H
	ACALL TSTEND
	AJMP  MODULETYPE3
;*********************************
      ;********************
      ;   2x20 MODULE
      ;********************
;*********************************
MODULETYPE4:
        ACALL INITIAL
        MOV   DPTR,#TP4DATA
        MOV   A,#84H
	ACALL WELLCOM
;--------------------------
	MOV   08H,#02H
	MOV   09H,#20
	MOV   0AH,#30H
        ACALL FULLDIS
;--------------------------
        MOV   08H,#02H
	MOV   09H,#20
	MOV   0AH,#30H
	ACALL WTIHJ 
;--------------------------
        MOV   08H,#02H
        MOV   09H,#05H
	MOV   0AH,#34H
	ACALL SHIFTR
	MOV   0AH,#3CH
	ACALL SHIFTL
;--------------------------
        MOV   08H,#05H
	MOV   09H,#02H
	MOV   0AH,#34H
	MOV   0BH,#20
	ACALL WCGROM
;--------------------------
        MOV   0AH,#86H
	ACALL TSTEND
	AJMP  MODULETYPE4
;*********************************
      ;********************
      ;    4x20 MODULE
      ;********************
;*********************************
MODULETYPE5:
        ACALL INITIAL
        MOV   DPTR,#TP5DATA
	MOV   A,#84H
	ACALL WELLCOM
;----------------------------
	MOV   08H,#04H
        MOV   09H,#20
        MOV   0AH,#34H
        ACALL FULLDIS 
;----------------------------
        MOV   08H,#04H
        MOV   09H,#20
        MOV   0AH,#34H
	ACALL WTIHJ 
;----------------------------
        MOV   08H,#04H
        MOV   09H,#05H
	MOV   0AH,#34H
	ACALL SHIFTR
	MOV   0AH,#3CH
	ACALL SHIFTL
;----------------------------
        MOV   08H,#03H
	MOV   09H,#04H
	MOV   0AH,#34H
	MOV   0BH,#20
	ACALL WCGROM
;----------------------------
        MOV   0AH,#86H
	ACALL TSTEND
	AJMP  MODULETYPE5
;*********************************
      ;********************
      ;   2x24 MODULE
      ;********************
;*********************************
MODULETYPE6:
        ACALL INITIAL
        MOV   DPTR,#TP6DATA
	MOV   A,#86H
	ACALL WELLCOM
;---------------------------
	MOV   08H,#02H
	MOV   09H,#24
	MOV   0AH,#30H
        ACALL FULLDIS
;---------------------------
	MOV   08H,#02H
	MOV   09H,#24
	MOV   0AH,#30H
	ACALL WTIHJ 
;---------------------------
        MOV   08H,#02H
        MOV   09H,#07H
	MOV   0AH,#30H
	ACALL SHIFTR
	MOV   0AH,#40H
	ACALL SHIFTL
;---------------------------
        MOV   08H,#04H
	MOV   09H,#02H
	MOV   0AH,#30H
	MOV   0BH,#24
	ACALL WCGROM
;---------------------------
        MOV   0AH,#88H
	ACALL TSTEND
	AJMP  MODULETYPE6
;*********************************
      ;********************
      ;   2x40 MODULE
      ;********************
;*********************************
MODULETYPE7:
        ACALL INITIAL
        MOV   DPTR,#TP7DATA
	MOV   A,#8EH
	ACALL WELLCOM
;---------------------------
	MOV   08H,#02H
	MOV   09H,#40
	MOV   0AH,#30H
        ACALL FULLDIS
;---------------------------
        MOV   08H,#02H
	MOV   09H,#40
	MOV   0AH,#30H
	ACALL WTIHJ 
;---------------------------
        MOV   08H,#02H
        MOV   09H,#08H
	MOV   0AH,#30H
	ACALL SHIFTR
	MOV   0AH,#42H
	ACALL SHIFTL
;---------------------------
	MOV   08H,#02H
	MOV   09H,#02H
	MOV   0AH,#30H
	MOV   0BH,#40
	ACALL WCGROM
;---------------------------
	MOV   0AH,#90H
	ACALL TSTEND
	AJMP  MODULETYPE7
;*********************************
INITIAL:
        MOV   A,#3FH
        ACALL WCOM
        ACALL DELAY
        MOV   A,#3FH
        ACALL WCOM
        ACALL DELAY
        MOV   A,#38H
        ACALL WCOM
        mov   a,#80h
        acall wcom
        MOV   A,#0CH
        ACALL WCOM
        MOV   A,#01H
        ACALL WCOM
        RET
;*********************************
WELLCOM:
        MOV   R0,A
        ACALL WCOM
        ACALL DELAY
        ACALL DELAY
        MOV   A,R0
        ACALL WCOM
        ACALL DELAY
        ACALL DELAY
        MOV   R3,#11
WCOMWT: CLR   A
	MOVC  A,@A+DPTR
	ACALL WDATA
	INC   DPTR
	DJNZ  R3,WCOMWT
        MOV   R5,#80H
	ACALL DELAY1
        JNB   P3.3,$
        MOV   R5,#20H
        LCALL DELAY1
        RET
;**********************************
FULLDIS:
        MOV   A,#01H
        ACALL WCOM
        MOV   A,08H
	MOV   R2,A
        MOV   R0,0AH
WFULL1: MOV   A,@R0
	ACALL WCOM
        MOV   R3,09H
WFULL2: MOV   A,#0FFH
        ACALL WDATA
        DJNZ  R3,WFULL2
        INC   R0
        DJNZ  R2,WFULL1
        MOV   R5,#80H
        ACALL DELAY1
        JNB   P3.3,$
        ACALL DELAY
	RET
;*********************************        
WTIHJ:
        MOV   A,#01H
        ACALL WCOM
        MOV   DPTR,#DATAIHJ
        MOV   R1,#03
WIHJ0:  MOV   A,08H
	MOV   R2,A
        MOV   R0,0AH
WIHJ1:	MOV   A,@R0
	ACALL WCOM
        MOV   R3,09H
WIHJ2:  CLR   A
        MOVC  A,@A+DPTR
        ACALL WDATA
        DJNZ  R3,WIHJ2
        INC   R0
        DJNZ  R2,WIHJ1
        MOV   R5,#80H
        ACALL DELAY1
        JNB   P3.3,$
        ACALL DELAY
        INC   DPTR
        DJNZ  R1,WIHJ0
	RET
;*********************************        
SHIFTR:
        MOV   A,#01H
	ACALL WCOM
        MOV   A,08H
	MOV   R1,A
	MOV   R0,0AH
SFRLN:	MOV   A,@R0
	ACALL WCOM
	MOV   DPTR,#SHFRDATA
	MOV   R2,#13
SRWDATA:CLR   A
	MOVC  A,@A+DPTR
	ACALL WDATA
	INC   DPTR
	DJNZ  R2,SRWDATA
	INC   R0
	DJNZ  R1,SFRLN	

	MOV   A,#00001111b
        ACALL WCOM

        MOV   R3,09H
SFRTMS1:
        MOV   R5,#30H
        ACALL DELAY1
        MOV   A,#00011100B
        ACALL WCOM
        JNB   P3.3,$
        DJNZ  R3,SFRTMS1

        MOV   R5,#0B0H
        ACALL DELAY1
	RET
;**********************************
SHIFTL:
        MOV   A,#01H
	ACALL WCOM
        MOV   A,#00001100B
        ACALL WCOM
        MOV   A,08H
	MOV   R1,A
	MOV   R0,0AH
SFLLN:	MOV   A,@R0
	ACALL WCOM
        ACALL DELAY
        MOV   A,@R0
        ACALL WCOM
        ACALL DELAY
        MOV   DPTR,#SHFLDATA
        MOV   R2,#12
SLWDATA:CLR   A
	MOVC  A,@A+DPTR
	ACALL WDATA
	INC   DPTR
        DJNZ  R2,SLWDATA
	INC   R0
	DJNZ  R1,SFLLN	

        DEC   R0
        MOV   A,@R0
        DEC   A
        ACALL WCOM
        ACALL DELAY
        MOV   A,#00001111b
        ACALL WCOM

        MOV   R3,09H
SFLTMS:
        MOV   R5,#30H
        ACALL DELAY1
        MOV   A,#00011000B
        ACALL WCOM
        JNB   P3.3,$
        DJNZ  R3,SFLTMS

        MOV   R5,#0B0H
        ACALL DELAY1
        MOV   A,#00001100B
        ACALL WCOM
        ACALL DELAY
        MOV   A,#00001100B
        ACALL WCOM
        ACALL DELAY
        RET
;******************************
WCGROM:
        MOV   A,#01H
        ACALL WCOM
        ACALL DELAY
        MOV   A,#01000000B
        ACALL WCOM
        ACALL DELAY
        MOV   R1,#32
        MOV   R2,08H
WDDROM0:MOV   R3,09H
        MOV   R0,0AH
WDDROM1:MOV   A,@R0
	ACALL WCOM
        MOV   R4,0BH
        MOV   A,R1
WDDROM2:ACALL WDATA
        INC   A
        DJNZ  R4,WDDROM2
        MOV   A,R1
        ADD   A,0BH
        MOV   R1,A
        INC   R0
        DJNZ  R3,WDDROM1
        MOV   R5,#70H
        ACALL DELAY1
        JNB   P3.3,$
        MOV   R5,#10H
        ACALL DELAY1
        DJNZ  R2,WDDROM0
        RET
;*****************************
TSTEND:
        MOV   A,#01H
	ACALL WCOM
	MOV   A,#00001100B
        ACALL WCOM
        MOV   A,#01H
        ACALL WCOM
        ACALL DELAY
        MOV   A,0AH
        ACALL WCOM
        MOV   R3,#8
        MOV   DPTR,#ENDATA
WEND:   CLR   A
        MOVC  A,@A+DPTR
        ACALL WDATA
        INC   DPTR
        DJNZ  R3,WEND
        MOV   R5,#0E0H
        ACALL DELAY1
        JNB   P3.3,$
        MOV   R5,#0FH
        ACALL DELAY1
        RET
;********************************
WCOM:
        PUSH  DPH
        PUSH  DPL
        PUSH  ACC
        ACALL BUSY_CHECK
        POP   ACC
        CLR   RS
        NOP
        NOP
        NOP
        CLR   RW
        NOP
        NOP
        NOP
        SETB  E
        NOP
        NOP
        NOP
        NOP
        MOV   PORT0,A
        NOP
        NOP
        NOP
        NOP
        CLR   E
        NOP
        NOP
        NOP
        SETB  RW
        NOP
        NOP
        NOP
        SETB  RS
        POP   DPL
        POP   DPH
        RET
WDATA: 
        PUSH  DPH
        PUSH  DPL
        PUSH  ACC
        ACALL BUSY_CHECK
        POP   ACC
        SETB  RS
        NOP
        NOP
        NOP
        CLR   RW
        NOP
        NOP
        NOP
        SETB  E
        NOP
        NOP
        NOP
        NOP
        MOV   PORT0,A
        NOP
        NOP
        NOP
        NOP
        CLR   E
        NOP
        NOP
        NOP
        SETB  RW
        NOP
        NOP
        NOP
        CLR   RS
        POP   DPL
        POP   DPH
        RET
;****************************************
BUSY_CHECK:
        CLR   RS
        NOP
        NOP
        NOP
        SETB  RW
        NOP
        NOP
        NOP
        SETB  E
        NOP
        NOP
        NOP
        NOP
        MOV   A,PORT0
        NOP
        NOP
        NOP
        NOP
        CLR   E
        NOP
        NOP
        NOP
        CLR   RW
        ANL   A,#80H
        CJNE  A,#00H,BUSY_CHECK
        RET
;****************************
DELAY:  
        MOV   R6,#32
DE1:    MOV   R7,#250
DE2:    DJNZ  R7,DE2
        DJNZ  R6,DE1
        RET
DELAY1:
        MOV  R6,#20
DEL1:   MOV  R7,#250
DEL2:   DJNZ R7,DEL2
        DJNZ R6,DEL1
        DJNZ R5,DELAY1
        RET
;********************************
TP0DATA: DB '1x16 MODULE'
TP1DATA: DB '2x16 MODULE'
TP2DATA: DB '4x16 MODULE'
TP3DATA: DB '1x20 MODULE'
TP4DATA: DB '2x20 MODULE'
TP5DATA: DB '4x20 MODULE'
TP6DATA: DB '2X24 MODULE'
TP7DATA: DB '2X40 MODULE'
DATAIHJ: DB '#HI'
SHFRDATA:DB 'SHIFT RIGHT->'
SHFLDATA:DB '<-SHIFT LEFT'
ENDATA:  DB 'TEST END !'   
     END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -