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

📄 90092.asm

📁 MB90092汉字字符叠加芯片驱动程序
💻 ASM
📖 第 1 页 / 共 3 页
字号:
  CS   EQU   P1.4
  SLK  EQU   P1.5
  SIN  EQU   P1.6

        ORG    0000H
        LJMP   main
  ;.................................................
SEND_BYTE:    ;发送字节到90092  R7待发送的数
        CLR    CS
        CLR    A
        MOV    R6, A
L0007H:
        CLR    C
        MOV    A, R6
        XRL    A, #80H
        SUBB   A, #88H
        JNC    L0025H
        CLR    SLK
        MOV    A, R7
        ANL    A, #01H
        JNZ    L001AH
        CLR    SIN
        SJMP   L001CH
L001AH:
        SETB   SIN
L001CH:
        MOV    A, R7
        CLR    C
        RRC    A
        MOV    R7, A
        SETB   SLK
        INC    R6
        SJMP   L0007H
L0025H:
        SETB   CS
        RET
  ;.......................................................................
DELAY:  ;延时程序
        CLR    A
        MOV    R7, A
L002AH:
        MOV    A, R7
        CLR    C
        SUBB   A, #0FFH
        JNC    L0033H
        INC    R7
        SJMP   L002AH
L0033H:
        RET
 ;...................................................................................
DISPLAY_COLOR:
        MOV    R6, 07H
        MOV    R5, 06H
        MOV    A, R5
        RRC    A
        RRC    A
        ANL    A, #3FH
        ANL    A, #03H
        ADD    A, #84H
        MOV    R5, A
        MOV    R4, 06H
        MOV    A, R4
        SWAP   A
        RLC    A
        ANL    A, #0E0H
        ANL    A, #60H
        INC    A
        MOV    R4, A
        MOV    R7, 05H
        LCALL  SEND_BYTE
        MOV    R7, 04H
        LCALL  SEND_BYTE
        MOV    R7, #88H
        LCALL  SEND_BYTE
        CLR    A
        MOV    R7, A
        LCALL  SEND_BYTE
        MOV    R7, #90H
        LCALL  SEND_BYTE
        CLR    A
        MOV    R7, A
        LCALL  SEND_BYTE
        RET
 ;...........................................................................................
 ;/*;vram R7:行,vram R5:列,R3:字体地址,19H:尺寸,1AH:背景颜色,1BH:前景颜色,1CH:特殊显示标记*/
DISPLAY_NUMBER:
        MOV    R4, 07H
        MOV    R1, 05H
        MOV    R6, 04H
        MOV    A, R6
        RRC    A
        RRC    A
        ANL    A, #3FH
        ANL    A, #03H
        ADD    A, #80H
        MOV    R6, A
        MOV    R5, 04H
        MOV    A, R5
        SWAP   A
        RLC    A
        ANL    A, #0E0H
        ANL    A, #60H
        ADD    A, R1
        MOV    R5, A
        MOV    R7, 06H
        LCALL  SEND_BYTE  ; /*command 0*/
        MOV    R7, 05H
        LCALL  SEND_BYTE
        MOV    A, 19H
        ADD    A, #0B0H
        MOV    R7, A
        LCALL  SEND_BYTE  ;/*command 6*/
        MOV    A, R4
        ADD    A, #20H
        MOV    R7, A
        LCALL  SEND_BYTE
        MOV    A, 08H
        CJNE   A, #04H, L00ABH
        MOV    1BH, #07H
        CLR    A
        MOV    1AH, A
L00ABH:
        MOV    A, 1BH
        SWAP   A
        ANL    A, #0F0H
        ANL    A, #70H
        ADD    A, 1AH
        MOV    R5, A
        MOV    A, 1CH
        ADD    A, #88H
        MOV    R7, A
        LCALL  SEND_BYTE   ;/*command1-1*/
        MOV    R7, 05H
        LCALL  SEND_BYTE
        MOV    R6, 02H
        MOV    R7, 03H
        MOV    R4, #00H
        MOV    R5, #80H
        LCALL  L0C3BH
        MOV    A, R7
        ADD    A, #90H
        MOV    R7, A
        LCALL  SEND_BYTE    ;/*command1-6*/
        MOV    R6, 02H
        MOV    R7, 03H
        MOV    R4, #00H
        MOV    R5, #80H
        LCALL  L0C3BH
        MOV    R7, 05H
        LCALL  SEND_BYTE
        RET
 ;......................................................................................
init_ic:
        MOV    12H, R7
        CLR    CS
        LCALL  delay
        SETB   CS
        LCALL  delay
        CLR    CS
        LCALL  delay
        SETB   CS
        LCALL  delay
        CLR    CS
        LCALL  delay
        SETB   CS
        LCALL  delay
        CLR    CS
        LCALL  delay
        SETB   CS
        MOV    R7, #98H   ;/*--------command 3----------*/
        LCALL  SEND_BYTE
        CLR    A
        MOV    R7, A
        LCALL  SEND_BYTE
        MOV    R7, #0AAH  ;/*--------command 5----------*/
        LCALL  SEND_BYTE
        MOV    R7, #10H
        LCALL  SEND_BYTE  ;/*;KID=0;APC与颜色有关;GYZ=0;W3--W0为行间距;10101 KID APC GYZ0 BH2 BH1 BH0 W3 W2 W1 W0*/
        MOV    R7, #0BCH
        LCALL  SEND_BYTE  ;/*--------command 7 ----------*///BD
        MOV    R7, #2AH
        LCALL  SEND_BYTE  ;/*垂直位置设定
        MOV    R7, #0C0H
        LCALL  SEND_BYTE  ;/*--------command 8------------*/
        MOV    R7, #18H
        LCALL  SEND_BYTE ;/*水平位置设定*//
        MOV    R7, #0C8H
        LCALL  SEND_BYTE  ;/*--------command 9---------*/
        MOV    R7, #20H
        LCALL  SEND_BYTE  ;/*------背景设置1-------*/
        MOV    R7, #0D1H
        LCALL  SEND_BYTE ;/*--------command 10----------*/
        MOV    A, 12H
        ADD    A, #38H
        MOV    R7, A
        LCALL  SEND_BYTE
        MOV    A, 08H
        ADD    A, #0A2H
        MOV    R7, A
        LCALL  SEND_BYTE ;/*-------command 4----------*/
        MOV    R7, #2BH
        LCALL  SEND_BYTE
        CLR    A
        MOV    13H, A
L015BH:
        MOV    A, 13H
        CLR    C
        SUBB   A, #0CH
        JNC    L016BH
        MOV    R7, 13H
        LCALL  DISPLAY_COLOR
        INC    13H
        SJMP   L015BH
L016BH:
        CLR    A
        MOV    14H, A
L016EH:
        MOV    A, 14H
        CLR    C
        SUBB   A, #0DH
        JNC    L019CH
        CLR    A
        MOV    13H, A
L0178H:
        MOV    A, 13H
        CLR    C
        SUBB   A, #18H
        JNC    L0198H
        MOV    R7, 14H
        MOV    R5, 13H
        MOV    R3, #3EH
        MOV    R2, #00H
        CLR    A
        MOV    19H, A
        MOV    1AH, 12H
        MOV    1BH, A
        MOV    1CH, A
        LCALL  DISPLAY_NUMBER
        INC    13H
        SJMP   L0178H
L0198H:
        INC    14H
        SJMP   L016EH
L019CH:
        CLR    A
        MOV    R7, A
        MOV    R5, #14H
        MOV    R3, #10H
        MOV    R2, A
        MOV    19H, A
        MOV    1AH, #01H
        MOV    1BH, A
        MOV    1CH, A
        LCALL  DISPLAY_NUMBER
        CLR    A
        MOV    R7, A
        MOV    R5, #15H
        INC    R3
        MOV    19H, A
        MOV    1AH, #01H
        MOV    1BH, A
        MOV    1CH, A
        LCALL  DISPLAY_NUMBER
        CLR    A
        MOV    R7, A
        MOV    R5, #16H
        INC    R3
        MOV    19H, A
        MOV    1AH, #01H
        MOV    1BH, A
        MOV    1CH, A
        LCALL  DISPLAY_NUMBER
        CLR    A
        MOV    R7, A
        MOV    R5, #17H
        INC    R3
        MOV    19H, A
        MOV    1AH, #01H
        MOV    1BH, A
        MOV    1CH, A
        LCALL  DISPLAY_NUMBER
        MOV    R7, #01H
        MOV    R5, #14H
        MOV    R3, #20H
        CLR    A
        MOV    19H, A
        MOV    1AH, #01H
        MOV    1BH, A
        MOV    1CH, A
        LCALL  DISPLAY_NUMBER
        MOV    R7, #01H
        MOV    R5, #15H
        INC    R3
        CLR    A
        MOV    19H, A
        MOV    1AH, #01H
        MOV    1BH, A
        MOV    1CH, A
        LCALL  DISPLAY_NUMBER
        MOV    R7, #01H
        MOV    R5, #16H
        INC    R3
        CLR    A
        MOV    19H, A
        MOV    1AH, #01H
        MOV    1BH, A
        MOV    1CH, A
        LCALL  DISPLAY_NUMBER
        MOV    R7, #01H
        MOV    R5, #17H
        INC    R3
        CLR    A
        MOV    19H, A
        MOV    1AH, #01H
        MOV    1BH, A
        MOV    1CH, A
        LCALL  DISPLAY_NUMBER
        RET
 ;...............................................................................
SCAN_KEY:
        JB     0B0H.3, L0242H
        MOV    08H, #04H
        MOV    R7, #0D1H
        LCALL  SEND_BYTE
        MOV    R7, #07H
        LCALL  SEND_BYTE
L023CH:
        JNB    0B0H.3, L023CH
        MOV    0CH, #01H
L0242H:
        JB     0B0H.5, L0258H
        CLR    A
        MOV    08H, A
        MOV    R7, #0D1H
        LCALL  SEND_BYTE
        MOV    R7, #3FH
        LCALL  SEND_BYTE
L0252H:
        JNB    0B0H.5, L0252H
        MOV    0CH, #01H
L0258H:
        JB     0B0H.2, L0272H
        INC    09H
        MOV    A, 09H
        SETB   C
        SUBB   A, #05H
        JC     L0267H
        CLR    A
        MOV    09H, A
L0267H:
        MOV    R7, #07H
        LCALL  init_ic
L026CH:
        JNB    0B0H.2, L026CH
        MOV    0CH, #01H
L0272H:
        RET
   ;...................................................................................
L0273H:
        MOV    11H, #03H
        MOV    A, 08H
        ADD    A, #0A2H
        MOV    R7, A
        LCALL  SEND_BYTE
        MOV    R7, #29H
        LCALL  SEND_BYTE
        MOV    R7, #05H
        MOV    R5, 11H
        MOV    R3, #4DH
        MOV    R2, #00H
        MOV    19H, #02H
        MOV    1AH, #01H
        MOV    1BH, #01H
        CLR    A
        MOV    1CH, A
        LCALL  DISPLAY_NUMBER
        MOV    R7, #05H
        MOV    A, 11H
        INC    A
        MOV    R5, A
        MOV    R3, #42H
        MOV    19H, #02H
        MOV    1AH, #01H
        MOV    1BH, #01H
        CLR    A
        MOV    1CH, A
        LCALL  DISPLAY_NUMBER
        MOV    R7, #05H
        MOV    A, 11H
        ADD    A, #02H
        MOV    R5, A
        MOV    R3, #39H
        MOV    19H, #02H
        MOV    1AH, #01H
        MOV    1BH, #01H
        CLR    A
        MOV    1CH, A
        LCALL  DISPLAY_NUMBER
        MOV    R7, #05H
        MOV    A, 11H
        ADD    A, #03H
        MOV    R5, A
        MOV    R3, #30H
        MOV    19H, #02H
        MOV    1AH, #01H
        MOV    1BH, #01H
        CLR    A
        MOV    1CH, A
        LCALL  DISPLAY_NUMBER
        MOV    R7, #05H
        MOV    A, 11H
        ADD    A, #04H
        MOV    R5, A
        MOV    19H, #02H
        MOV    1AH, #01H
        MOV    1BH, #01H
        CLR    A
        MOV    1CH, A
        LCALL  DISPLAY_NUMBER
        MOV    R7, #05H
        MOV    A, 11H
        ADD    A, #05H
        MOV    R5, A
        MOV    R3, #39H
        MOV    19H, #02H
        MOV    1AH, #01H
        MOV    1BH, #01H
        CLR    A
        MOV    1CH, A
        LCALL  DISPLAY_NUMBER
        MOV    R7, #05H
        MOV    A, 11H
        ADD    A, #06H
        MOV    R5, A
        MOV    R3, #32H
        MOV    19H, #02H
        MOV    1AH, #01H
        MOV    1BH, #01H
        CLR    A
        MOV    1CH, A
        LCALL  DISPLAY_NUMBER
        MOV    R7, #06H
        MOV    A, 11H
        ADD    A, #02H
        MOV    R5, A
        MOV    R3, #0B0H
        MOV    19H, #02H
        MOV    1AH, #02H
        MOV    1BH, #02H
        CLR    A
        MOV    1CH, A
        LCALL  DISPLAY_NUMBER
        MOV    R7, #06H
        MOV    A, 11H
        ADD    A, #03H
        MOV    R5, A
        INC    R3
        MOV    19H, #02H
        MOV    1AH, #02H
        MOV    1BH, #02H
        CLR    A
        MOV    1CH, A
        LCALL  DISPLAY_NUMBER
        MOV    R7, #06H
        MOV    A, 11H
        ADD    A, #04H
        MOV    R5, A
        INC    R3
        MOV    19H, #02H
        MOV    1AH, #02H
        MOV    1BH, #02H
        CLR    A
        MOV    1CH, A
        LCALL  DISPLAY_NUMBER
        MOV    R7, #06H
        MOV    A, 11H
        ADD    A, #05H
        MOV    R5, A
        INC    R3
        MOV    19H, #02H
        MOV    1AH, #02H
        MOV    1BH, #02H
        CLR    A
        MOV    1CH, A
        LCALL  DISPLAY_NUMBER
        CLR    A
        MOV    11H, A
L0387H:
        MOV    A, 11H
        CLR    C
        SUBB   A, #64H
        JNC    L0398H
        LCALL  delay
        LCALL  SCAN_KEY
        INC    11H
        SJMP   L0387H
L0398H:
        RET
 ;......................................................................................
L0399H:
        MOV    R7, #0AAH
        LCALL  SEND_BYTE
        MOV    R7, #25H
        LCALL  SEND_BYTE
        CLR    A
        MOV    11H, A
L03A6H:
        MOV    A, 11H
        CLR    C
        SUBB   A, #18H
        JNC    L03CEH
        CLR    A
        MOV    R7, A
        MOV    R5, 11H
        MOV    A, 11H
        MOV    0F0H, #0AH
        DIV    AB
        MOV    A, 0F0H
        MOV    R3, A
        MOV    R2, #00H
        CLR    A
        MOV    19H, A
        MOV    1AH, A
        MOV    1BH, #07H
        MOV    1CH, #01H
        LCALL  DISPLAY_NUMBER
        INC    11H
        SJMP   L03A6H
L03CEH:
        CLR    A
        MOV    11H, A
L03D1H:
        MOV    A, 11H
        CLR    C
        SUBB   A, #18H
        JNC    L03FDH
        MOV    R7, #01H
        MOV    R5, 11H
        MOV    A, 11H
        MOV    0F0H, #0AH
        DIV    AB
        MOV    A, 0F0H
        ADD    A, #30H
        MOV    R3, A
        CLR    A
        RLC    A
        MOV    R2, A
        CLR    A
        MOV    19H, A
        MOV    1AH, #01H
        MOV    1BH, #06H
        MOV    1CH, #01H
        LCALL  DISPLAY_NUMBER
        INC    11H
        SJMP   L03D1H
L03FDH:
        CLR    A
        MOV    11H, A
L0400H:
        MOV    A, 11H
        CLR    C
        SUBB   A, #18H
        JNC    L0425H
        MOV    R7, #02H
        MOV    R5, 11H
        MOV    A, 11H
        ADD    A, #41H
        MOV    R3, A
        CLR    A
        RLC    A
        MOV    R2, A
        CLR    A
        MOV    19H, A
        MOV    1AH, #02H
        MOV    1BH, A
        MOV    1CH, #01H
        LCALL  DISPLAY_NUMBER
        INC    11H
        SJMP   L0400H
L0425H:
        CLR    A
        MOV    11H, A
L0428H:
        MOV    A, 11H
        CLR    C
        SUBB   A, #18H
        JNC    L044EH
        MOV    R7, #03H
        MOV    R5, 11H
        MOV    A, 11H
        ADD    A, #61H
        MOV    R3, A

⌨️ 快捷键说明

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