📄 mcu01.asm
字号:
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 + -