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

📄 串口汇编.asm

📁 用12864液晶块与单片机应用
💻 ASM
字号:
;*************************************
;CONTROLLER:ST7920(串行接口)               
;128×64 点阵
;EDITOR:	张炎
;CRYSTAL:12MHz                                             
;CS=P3.0 SID=P3.1 SCLK=P3.2            
;**************************************
        CS      EQU    P3.4            ;H=DATA,L=COM 
        SID     EQU    P3.5            ;H=READ,L=WRITE 
        SCLK    EQU    P3.3            ; 


        COM        EQU    30H              ;控制字暂存单元
        DAT        EQU    31H              ;显示数据暂存单元
        CODER      EQU    32H              ;字符代码暂存单元
    ADDR   EQU  33H       ;地址暂存单元


        ORG      0000H 
        AJMP    MAIN 
        ORG      0030H 


MAIN:
    MOV   SP,#60H
    LCALL DEL_40MS
        LCALL INI 
    MOV   ADDR,#80H
        MOV      DPTR,#WEL_1 
        LCALL W_LINE 
    MOV   ADDR,#90H
        MOV      DPTR,#WEL_2 
        LCALL W_LINE 
    MOV   ADDR,#88H
        MOV      DPTR,#WEL_3 
        LCALL W_LINE 
    MOV   ADDR,#98H
        MOV      DPTR,#WEL_4 
        LCALL W_LINE 
    LCALL DEL_1500MS


    MOV   ADDR,#80H
        MOV      DPTR,#WEL_5 
        LCALL W_LINE 
    MOV   ADDR,#90H
        MOV      DPTR,#WEL_6 
        LCALL W_LINE 
    MOV   ADDR,#88H
        MOV      DPTR,#WEL_7 
        LCALL W_LINE 
    MOV   ADDR,#98H
        MOV      DPTR,#WEL_8 
        LCALL W_LINE 
    LCALL DEL_1500MS


    MOV   ADDR,#80H      ;
        MOV      DPTR,#HZ_1          ; 
        LCALL W_LINE 
    MOV   ADDR,#90H      ;
        MOV      DPTR,#HZ_2          ; 
        LCALL W_LINE 
    MOV   ADDR,#88H      ;
        MOV      DPTR,#HZ_3          ; 
        LCALL W_LINE 
    MOV   ADDR,#98H      ;
        MOV      DPTR,#HZ_4          ; 
        LCALL W_LINE 
    LCALL DEL_1500MS     ;延时后显示下一页

    MOV   ADDR,#80H      ;
        MOV      DPTR,#HZ_5          ; 
        LCALL W_LINE 
    MOV   ADDR,#90H      ;
        MOV      DPTR,#HZ_6          ; 
        LCALL W_LINE 
    MOV   ADDR,#88H      ;
        MOV      DPTR,#HZ_7          ; 
        LCALL W_LINE 




    MOV   ADDR,#98H      ;
        MOV      DPTR,#HZ_8          ; 
        LCALL W_LINE 
    LCALL DEL_1500MS

        LJMP    MAIN 


INI:
    MOV   COM,#30H       ;功能设定,基本指令
        LCALL WCOM 
    MOV   COM,#30H       ;基本指令,8-bit 模式,基本指令
        LCALL WCOM 
        MOV      COM,#0CH              ;显示开,游标关,反白关
        LCALL WCOM 
    MOV   COM,#01H       ;清除显示
        LCALL WCOM 
    MOV   COM,#06H       ;进入设定点,游标 7 右移,画面不移动
        LCALL WCOM 
        RET 

W_LINE: 
    MOV   COM,ADDR
        LCALL WCOM 
    MOV   R4,#16         ;连续写入 8 个中文或者 16 个西文字符
W_L1: 
        MOV   A,#00H
        MOVC    A,@A+DPTR 
        MOV      CODER,A 
        LCALL WCODE
        INC      DPTR 
        DJNZ    R4,W_L1 
        RET 


WCOM: 
        LCALL STWC 
        MOV      A,COM 
        LCALL W4_D                  ;送入高四位指令
        LCALL W4_0         ;连续送入四个 0
        LCALL W4_D                  ;送入高四位指令
        LCALL W4_0         ;连续送入四个 0
        CLR      CS 
        LCALL DEL_2MS 
        RET 







WCODE:
 
        LCALL STWD 
        MOV      A,CODER 
        LCALL W4_D 
    LCALL W4_0
        LCALL W4_D 
    LCALL W4_0
        CLR      CS 
        LCALL DEL_2MS 
        RET 


STWC:
        SETB    CS 
        SETB    SID 
        MOV      R3,#5                  ;连续送入 5 个"1",起始
STWC1:
        SETB    SCLK 
        CLR      SCLK 
        DJNZ    R3,STWC1 
        CLR      SID 
        MOV      R3,#3 
STWC2:
        SETB    SCLK                    ;RW=0,RS=0,第八位"0"
        CLR      SCLK 
        DJNZ    R3,STWC2 
        RET 


STWD:
        SETB    CS 
        SETB    SID 
        MOV      R3,#5                  ;连续送入 5 个"1",起始
STWD1:
        SETB    SCLK 
        CLR      SCLK 
        DJNZ    R3,STWD1 
        CLR      SID                      ;RW=0 
        SETB    SCLK 
        CLR      SCLK 
        SETB    SID                      ;RS=1 
        SETB    SCLK 
        CLR      SCLK 
        CLR      SID                      ;第八位"0"
        SETB    SCLK 
        CLR      SCLK 
        RET 


W4_D:
 
        MOV      R3,#4 
W4_D1:
        RLC      A 
        MOV      SID,C 
        SETB     SCLK 
        CLR      SCLK 
        DJNZ    R3,W4_D1 
        RET 


W4_0:
        MOV      R3,#4 
W4_01:
        CLR      SID 
        SETB    SCLK 
        CLR      SCLK 
        DJNZ  R3,W4_01
        RET 


DEL_2MS:
        MOV      R0,#2 
D1:
        MOV   R1,#200
D2:
        NOP 
        NOP 
        NOP 
        DJNZ    R1,D2 
        DJNZ    R0,D1 
        RET 


DEL_40MS:
        MOV    R2,#20
D3:
        LCALL    DEL_2MS 
        DJNZ      R2,D3 
        RET 

DEL_200MS:
    MOV    R2,#100
D4:
        LCALL    DEL_2MS 
        DJNZ      R2,D4 
        RET 


DEL_500MS:
    MOV    R2,#250
D5:
        LCALL    DEL_2MS 
        DJNZ      R2,D5 
        RET 

DEL_1500MS:
    LCALL  DEL_500MS
    LCALL  DEL_500MS
    LCALL  DEL_500MS
    RET 


WEL_1:
        DB "WWW.RHLCM.COM.CN"
WEL_2:
        DB "欢迎使用人和液晶"
WEL_3:
        DB "020-87573676"
WEL_4:
        DB "支持图形和文本显"
WEL_5:
        DB "示,可显示 8X4行"
WEL_6:
        DB "共 32 个中文,内带"
WEL_7:
        DB "标准中文字库,内"
WEL_8:
        DB "含 8192 个中文字型"


HZ_1: 
        DB "  桃      夭  " 
HZ_2: 
        DB "诗经·\u22269X风·\u21608X南"
HZ_3:
        DB "桃之夭夭灼灼其华"
HZ_4:
        DB "之子于归宜其室家"
HZ_5:
        DB "桃之夭夭有蕡其实"
HZ_6:
        DB "之子于归宜其家室"
HZ_7:
        DB "桃之夭夭其叶蓁蓁"
HZ_8:
        DB "之子于归宜其家人"
        
        END

⌨️ 快捷键说明

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