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

📄 io.asm

📁 12864显示模块I/O方式的汇编程序
💻 ASM
字号:

;*************************************************************
      RS  EQU P2.6
      RW  EQU P3.6
      E   EQU P2.7
      PSB EQU P3.4
      RST EQU P1.0
      LCD_X  EQU 30H
      LCD_Y  EQU 31H
      COUNT  EQU 32H
      COUNT1 EQU 33H
      COUNT2 EQU 34H
      COUNT3 EQU 35H
      LCD_DATA  EQU 36H
      LCD_DATA1 EQU 37H
      LCD_DATA2 EQU 38H
      STORE     EQU 39H
;********************************************************
         ORG 0000H
         LJMP MAIN
         ORG 0003H
;         LJMP PAUSE
   MAIN:
        MOV SP,#60H
        CLR p1.0
        LCALL DELAY4 ;T=4084US=4MS
        SETB p1.0
        NOP
        SETB PSB
    INT:
         ;MOV A,#34H
         ;LCALL SEND_I
        ; MOV A,#30H
        ; LCALL SEND_I
        ; MOV A,#01H
        ; LCALL SEND_I
         MOV A,#0FH
         LCALL SEND_I
         MOV A,#0CH
         LCALL SEND_I

       

DISPLAY1A:
        MOV DPTR,#TAB1A            ;第1行
        MOV COUNT,#10H
        MOV A,#80H
        LCALL SEND_I
        LCALL QUSHU
DISPLAY1B:
        MOV DPTR,#TAB1B            ;第2行
        MOV COUNT,#10H
        MOV A,#90H
        LCALL SEND_I
        LCALL QUSHU
DISPLAY1C:
        MOV DPTR,#TAB1C            ;第3行
        MOV COUNT,#10H
        MOV A,#88H
        LCALL SEND_I
        LCALL QUSHU
DISPLAY1D:
        MOV DPTR,#TAB1D            ;第4行
        MOV COUNT,#10H
        MOV A,#98H
        LCALL SEND_I
        LCALL QUSHU

        LCALL DELAY3
;****************************************************
    DISP:
         MOV COUNT3,#02H
         MOV LCD_X,#80H
    DISP1:
         MOV LCD_Y,#80H
         CLR F0
         MOV COUNT2,#20H
    DISP2:
         MOV COUNT1,#10H
         LCALL WR_ZB
    DISP3:
         JB F0,DISP32
         MOV LCD_DATA,LCD_DATA1
         AJMP DISP31
   DISP32:
         MOV LCD_DATA,LCD_DATA2
   DISP31:
         MOV A,LCD_DATA
         LCALL SEND_D
         DJNZ COUNT1,DISP31
         INC LCD_Y
         CPL F0
         DJNZ COUNT2,DISP2
         MOV LCD_X,#88H
         DJNZ COUNT3,DISP1
         MOV A,#36H
         LCALL SEND_I
         MOV A,#30H
         LCALL SEND_I
         RET
   WR_ZB:
         MOV A,#34H
         LCALL SEND_I
         MOV A,LCD_Y
         LCALL SEND_I
         MOV A,LCD_X
         LCALL SEND_I
         MOV A,#30H
         LCALL SEND_I
         RET

;*************************
QUSHU:
        CLR A
        MOVC A,@A+DPTR
        LCALL SEND_D
        INC DPTR
        LCALL DELAY4
        DJNZ COUNT,QUSHU
        RET
;*************************
SEND_D:
        LCALL CHK_BUSY
        SETB RS
        CLR RW
        MOV P0,A
        SETB E
        NOP
        NOP
        CLR E
        RET
;**************************
SEND_I:
       LCALL CHK_BUSY
       CLR RS
       CLR RW
       MOV P0,A
       SETB E
       NOP
       NOP
       CLR E
       RET
;**************************
READ_D:NOP
       NOP
       LCALL CHK_BUSY
      SETB RS
      SETB RW
      SETB E
      NOP
      MOV A,P0
      CLR E
      MOV STORE,A
      RET
;*******************************
CHK_BUSY:
       MOV P0,#0FFH
       CLR RS
       SETB RW
       SETB E
       JB P0.7,$
       CLR E
       RET
;*******************************
DELAY3:
       MOV R5,#16H
DEL31: MOV R6,#100
DEL32: MOV R7,#0FFH
DEL33: DJNZ R7,DEL33
       DJNZ R6,DEL32
       DJNZ R5,DEL31
       RET
DELAY4:   ;延时80ms,
       MOV R6,#100
DEL41: MOV R7,#200
DEL42: DJNZ R7,DEL42
       DJNZ R6,DEL41
       RET

TAB1A:  DB 0C2H,0EDH,0BBH,0D4H,0A1H,0F9H,0B0H,0B2H,0D1H,0F4H,0B9H,0A4H,0D1H,0A7H,0D4H,0BAH; 1
TAB1B:  DB 0C2H,0EDH,0BBH,0D4H,0A1H,0F9H,0B0H,0B2H,0D1H,0F4H,0B9H,0A4H,0D1H,0A7H,0D4H,0BAH; 2
TAB1C:  DB 0C2H,0EDH,0BBH,0D4H,0A1H,0F9H,0B0H,0B2H,0D1H,0F4H,0B9H,0A4H,0D1H,0A7H,0D4H,0BAH; 3
TAB1D:  DB 0C2H,0EDH,0BBH,0D4H,0A1H,0F9H,0B0H,0B2H,0D1H,0F4H,0B9H,0A4H,0D1H,0A7H,0D4H,0BAH; 4
end

⌨️ 快捷键说明

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