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

📄 mcu01.asm

📁 DS1302驱动+液晶12864驱动,有此方面开发需要可与我联系
💻 ASM
📖 第 1 页 / 共 3 页
字号:
       LCALL       W_BYTE

       RET
B_30_H:MOV         DPH,?B_30_H?byte
       MOV         DPL,?B_30_H?byte+1
       LCALL       OPEN_DISP1
       MOV         LINE_,#LINE3
       MOV         LOW_,#LOW0
       LCALL       W_BYTE

       RET
B_30_L:MOV         DPH,?B_30_L?byte
       MOV         DPL,?B_30_L?byte+1
       LCALL       OPEN_DISP1
       MOV         LINE_,#LINE3
       MOV         LOW_,#LOW0+8
       LCALL       W_BYTE

       RET
B_31_H:MOV         DPH,?B_31_H?byte
       MOV         DPL,?B_31_H?byte+1
       LCALL       OPEN_DISP1
       MOV         LINE_,#LINE3
       MOV         LOW_,#LOW1
       LCALL       W_BYTE

       RET
B_31_L:MOV         DPH,?B_31_L?byte
       MOV         DPL,?B_31_L?byte+1
       LCALL       OPEN_DISP1
       MOV         LINE_,#LINE3
       MOV         LOW_,#LOW1+8
       LCALL       W_BYTE

       RET
B_32_H:MOV         DPH,?B_32_H?byte
       MOV         DPL,?B_32_H?byte+1
       LCALL       OPEN_DISP1
       MOV         LINE_,#LINE3
       MOV         LOW_,#LOW2
       LCALL       W_BYTE

       RET
B_32_L:MOV         DPH,?B_32_L?byte
       MOV         DPL,?B_32_L?byte+1
       LCALL       OPEN_DISP1
       MOV         LINE_,#LINE3
       MOV         LOW_,#LOW2+8
       LCALL       W_BYTE

       RET
B_33_H:MOV         DPH,?B_33_H?byte
       MOV         DPL,?B_33_H?byte+1
       LCALL       OPEN_DISP1
       MOV         LINE_,#LINE3
       MOV         LOW_,#LOW3
       LCALL       W_BYTE

       RET
B_33_L:MOV         DPH,?B_33_L?byte
       MOV         DPL,?B_33_L?byte+1
       LCALL       OPEN_DISP1
       MOV         LINE_,#LINE3
       MOV         LOW_,#LOW3+8
       LCALL       W_BYTE

       RET
B_35_H:MOV         DPH,?B_35_H?byte
       MOV         DPL,?B_35_H?byte+1
       LCALL       OPEN_DISP2
       MOV         LINE_,#LINE3
       MOV         LOW_,#LOW1
       LCALL       W_BYTE

       RET
B_35_L:MOV         DPH,?B_35_L?byte
       MOV         DPL,?B_35_L?byte+1
       LCALL       OPEN_DISP2
       MOV         LINE_,#LINE3
       MOV         LOW_,#LOW1+8
       LCALL       W_BYTE

       RET
B_36_H:MOV         DPH,?B_36_H?byte
       MOV         DPL,?B_36_H?byte+1
       LCALL       OPEN_DISP2
       MOV         LINE_,#LINE3
       MOV         LOW_,#LOW2
       LCALL       W_BYTE

       RET
B_36_L:MOV         DPH,?B_36_L?byte
       MOV         DPL,?B_36_L?byte+1
       LCALL       OPEN_DISP2
       MOV         LINE_,#LINE3
       MOV         LOW_,#LOW2+8
       LCALL       W_BYTE

       RET
B_37_H:MOV         DPH,?B_37_H?byte
       MOV         DPL,?B_37_H?byte+1
       LCALL       OPEN_DISP2
       MOV         LINE_,#LINE3
       MOV         LOW_,#LOW3
       LCALL       W_BYTE

       RET
B_37_L:MOV         DPH,?B_37_L?byte
       MOV         DPL,?B_37_L?byte+1
       LCALL       OPEN_DISP2
       MOV         LINE_,#LINE3
       MOV         LOW_,#LOW3+8
       LCALL       W_BYTE

       RET
SUZI:
       MOV        DPTR,#SUZITAB
       MOV        A,?SUZI?byte
       ANL        A,#0FH
        MOV     B,A
        RL      A
        ADD     A,B
        JMP     @A+DPTR
SUZITAB: LJMP       SUZI0
       LJMP       SUZI1
       LJMP       SUZI2
       LJMP       SUZI3
       LJMP       SUZI4
       LJMP       SUZI5
       LJMP       SUZI6
       LJMP       SUZI7
       LJMP       SUZI8
       LJMP       SUZI9
       LJMP       SUZIZ
       LJMP       SUZI_EXIT
       LJMP       SUZI_EXIT
       LJMP       SUZI_EXIT
       LJMP       SUZI_EXIT
       LJMP       SUZI_EXIT
SUZI0: MOV        DPTR,#SZ_TAB0
       LJMP       SUZI_EXIT
SUZI1:
       MOV        DPTR,#SZ_TAB1
       LJMP       SUZI_EXIS
SUZI2:
       MOV        DPTR,#SZ_TAB2
       LJMP       SUZI_EXIS
SUZI3:
       MOV        DPTR,#SZ_TAB3
       LJMP       SUZI_EXIS
SUZI4:
       MOV        DPTR,#SZ_TAB4
       LJMP       SUZI_EXIS
SUZI5:
       MOV        DPTR,#SZ_TAB5
       LJMP       SUZI_EXIS
SUZI6:
       MOV        DPTR,#SZ_TAB6
       LJMP       SUZI_EXIS
SUZI7:
       MOV        DPTR,#SZ_TAB7
       LJMP       SUZI_EXIS
SUZI8:
       MOV        DPTR,#SZ_TAB8
       LJMP       SUZI_EXIS
SUZI9:
       MOV        DPTR,#SZ_TAB9
       LJMP       SUZI_EXIS
SUZIZ:
      MOV         DPTR,#TABZ
      LJMP        SUZI_EXIS
SUZI_EXIS:

SUZI_EXIT:
      mov       r7,DPL
      MOV       R6,DPH
       RET
OPEN_DISP1:
       CLR         CS2
       SETB        CS1
       RET
OPEN_DISP2:
       CLR         CS1
       SETB        CS2
       RET
OPEN_DISP12:
       SETB        CS1
       SETB        CS2
       LCALL       DELAY
       RET
W_ALL0:
       LCALL       CLR_0
       LCALL       CLR_1
       LCALL       CLR_2
       LCALL       CLR_3
       RET
CLR_0:
       LCALL       OPEN_DISP12
       MOV         ?W_00?byte,#high(TABZ)
       MOV         ?W_00?byte+1,#low(TABZ)
       LCALL       W_00
       MOV         ?W_01?byte,#high(TABZ)
       MOV         ?W_01?byte+1,#low(TABZ)
       LCALL       W_01
       MOV         ?W_02?byte,#high(TABZ)
       MOV         ?W_02?byte+1,#low(TABZ)
       LCALL       W_02
       MOV         ?W_03?byte,#high(TABZ)
       MOV         ?W_03?byte+1,#low(TABZ)
       LCALL       W_03
       MOV         ?W_04?byte,#high(TABZ)
       MOV         ?W_04?byte+1,#low(TABZ)
       LCALL       W_04
       MOV         ?W_05?byte,#high(TABZ)
       MOV         ?W_05?byte+1,#low(TABZ)
       LCALL       W_05
       MOV         ?W_06?byte,#high(TABZ)
       MOV         ?W_06?byte+1,#low(TABZ)
       LCALL       W_06
       MOV         ?W_07?byte,#high(TABZ)
       MOV         ?W_07?byte+1,#low(TABZ)
       LCALL       W_07
       ret
CLR_1: LCALL       OPEN_DISP12
       MOV         ?W_10?byte,#high(TABZ)
       MOV         ?W_10?byte+1,#low(TABZ)
       LCALL       W_10
       MOV         ?W_11?byte,#high(TABZ)
       MOV         ?W_11?byte+1,#low(TABZ)
       LCALL       W_11
       MOV         ?W_12?byte,#high(TABZ)
       MOV         ?W_12?byte+1,#low(TABZ)
       LCALL       W_12
       MOV         ?W_13?byte,#high(TABZ)
       MOV         ?W_13?byte+1,#low(TABZ)
       LCALL       W_13
       MOV         ?W_14?byte,#high(TABZ)
       MOV         ?W_14?byte+1,#low(TABZ)
       LCALL       W_14
       MOV         ?W_15?byte,#high(TABZ)
       MOV         ?W_15?byte+1,#low(TABZ)
       LCALL       W_15
       MOV         ?W_16?byte,#high(TABZ)
       MOV         ?W_16?byte+1,#low(TABZ)
       LCALL       W_16
       MOV         ?W_17?byte,#high(TABZ)
       MOV         ?W_17?byte+1,#low(TABZ)
       LCALL       W_17
       ret
CLR_2:LCALL       OPEN_DISP12
       MOV         ?W_20?byte,#high(TABZ)
       MOV         ?W_20?byte+1,#low(TABZ)
       LCALL       W_20
       MOV         ?W_21?byte,#high(TABZ)
       MOV         ?W_21?byte+1,#low(TABZ)
       LCALL       W_21
       MOV         ?W_22?byte,#high(TABZ)
       MOV         ?W_22?byte+1,#low(TABZ)
       LCALL       W_22
       MOV         ?W_23?byte,#high(TABZ)
       MOV         ?W_23?byte+1,#low(TABZ)
       LCALL       W_23
       MOV         ?W_24?byte,#high(TABZ)
       MOV         ?W_24?byte+1,#low(TABZ)
       LCALL       W_24
       MOV         ?W_25?byte,#high(TABZ)
       MOV         ?W_25?byte+1,#low(TABZ)
       LCALL       W_25
       MOV         ?W_26?byte,#high(TABZ)
       MOV         ?W_26?byte+1,#low(TABZ)
       LCALL       W_26
       MOV         ?W_27?byte,#high(TABZ)
       MOV         ?W_27?byte+1,#low(TABZ)
       LCALL       W_27
       RET
CLR_3:
       LCALL       OPEN_DISP12
       MOV         ?W_30?byte,#high(TABZ)
       MOV         ?W_30?byte+1,#low(TABZ)
       LCALL       W_30
       MOV         ?W_31?byte,#high(TABZ)
       MOV         ?W_31?byte+1,#low(TABZ)
       LCALL       W_31
       MOV         ?W_32?byte,#high(TABZ)
       MOV         ?W_32?byte+1,#low(TABZ)
       LCALL       W_32
       MOV         ?W_33?byte,#high(TABZ)
       MOV         ?W_33?byte+1,#low(TABZ)
       LCALL       W_33
       MOV         ?W_34?byte,#high(TABZ)
       MOV         ?W_34?byte+1,#low(TABZ)
       LCALL       W_34
       MOV         ?W_35?byte,#high(TABZ)
       MOV         ?W_35?byte+1,#low(TABZ)
       LCALL       W_35
       MOV         ?W_36?byte,#high(TABZ)
       MOV         ?W_36?byte+1,#low(TABZ)
       LCALL       W_36
       MOV         ?W_37?byte,#high(TABZ)
       MOV         ?W_37?byte+1,#low(TABZ)
       LCALL       W_37
       RET
DELAY: MOV         R6,#0
       DJNZ        R6,$
       RET
UpdateLcd:;LCD显示刷新

        ;SETB        RST
        CLR         CS1
        CLR         CS2
        SETB        CS1
        MOV         A,#3FH
        LCALL       W_INST
        CLR         CS1
        SETB        CS2
        MOV         A,#3FH
        LCALL       W_INST
        RET
InitLcd:;LCD初始化

        CLR         CS1
        CLR         CS2
        SETB        CS1
        MOV         A,#3FH
        LCALL       W_INST
        CLR         CS1
        SETB        CS2
        MOV         A,#3FH
        LCALL       W_INST
        CLR         CS2
        CLR         CS1
        CLR         CS2
        SETB        CS1
        LCALL       LCD_BUSY
        MOV         A,#0C0H;(0~63)
        LCALL       W_INST; 起始行0
        CLR         CS1
        CLR         CS2
        SETB        CS2
        LCALL       LCD_BUSY
        MOV         A,#0C0H;(0~63)
        LCALL       W_INST; 起始行0
        CLR         CS2
      ; lcall       W_ALL0
        RET
W_INST:;       写指令子程序(INST)


    CLR        R_I
    CLR        R_I;0=寄存器
    NOP
    NOP
    NOP
    CLR        R_W
    CLR        R_W;0=写
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP

    MOV       P0,A;控制子
    SETB       E;
    SETB       E;
    nop
    nop
    CLR        E
    CLR        E


    RET
LCD_BUSY:


       NOP
       NOP
       NOP
       CLR      R_I
       NOP
       NOP
       NOP
       SETB     R_W
       NOP
       MOV      P0,#0FFH
R_INST_L:

      SETB      E
       MOV      A,P0

       CLR      E
       NOP
       NOP
       NOP
       ANL      A,#0F0H
       JNZ      R_INST_L
       RET
W_DATA:;         写数据子程序(DATA)


    SETB        R_I
    SETB        R_I;0=RAM
    NOP
    NOP
    NOP
    CLR        R_W
    CLR        R_W;0=写
    NOP
    NOP
    NOP

    NOP
    NOP
    NOP

    MOV        P0,A;控制子
     SETB       E
   SETB       E
   NOP
   NOP

    CLR        E
   CLR        E
    NOP
    NOP
    NOP

    RET
W_BYTE:
   ;LINE_(行);LOW_(列);DPTR

⌨️ 快捷键说明

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