📄 2322.asm
字号:
;******************************
RS EQU P3.2
RW EQU P3.1
E EQU P3.0
PORT0 EQU P1
;******************************
ORG 0000H
AJMP begin
ORG 0030H
BEGIN:
MOV SP,#60H
LCALL DELAY
MOV A,#38H
LCALL WCOM
MOV A,#38H
LCALL WCOM
MOV A,#06H
LCALL WCOM
MOV A,#0CH
LCALL WCOM
MOV A,#40H
LCALL WCOM
MOV A,#01H
LCALL WCOM
START:
LCALL WELLCOM
LCALL WHIJ
LCALL SHTRT
LCALL SHTLT
LCALL WCGROM
LCALL TSTEND
LJMP START
;*******************************
WELLCOM:
MOV A,#00001100B
LCALL WCOM
MOV DPTR,#DATA1
mov a,#80h
MOV R3,#02
W0: MOV R2,#16
LCALL WCOM
W1: CLR A
MOVC A,@A+DPTR
LCALL WDATA
INC DPTR
DJNZ R2,W1
MOV A,#0C0H
DJNZ R3,W0
MOV R5,#0E0H
LCALL DELAY1
JNB P3.3,$
MOV R5,#0FH
LCALL DELAY1
RET
;*******************************
WHIJ:
MOV DPTR,#DATA2
MOV R1,#03
WRT0: MOV R2,#02
MOV A,#80H
WRT1: LCALL WCOM
MOV R3,#16
WRT2: CLR A
MOVC A,@A+DPTR
LCALL WDATA
DJNZ R3,WRT2
MOV A,#0C0H
DJNZ R2,WRT1
MOV R5,#0A0H
LCALL DELAY1
JNB P3.3,$
LCALL DELAY
LCALL DELAY
INC DPTR
DJNZ R1,WRT0
RET
;****************************************
SHTRT:
MOV A,#01H
LCALL WCOM
MOV R1,#03
SHIFT0: MOV R2,#02
MOV A,#80H
SHIFT1: LCALL WCOM
MOV DPTR,#DATA3
MOV R3,#13
SHIFT2: CLR A
MOVC A,@A+DPTR
LCALL WDATA
INC DPTR
DJNZ R3,SHIFT2
MOV A,#0C0H
DJNZ R2,SHIFT1
MOV A,#00001111b
LCALL WCOM
MOV R5,#40H
LCALL DELAY1
MOV A,#00011100B
LCALL WCOM
DJNZ R1,SHIFT0
MOV R5,#0B0H
LCALL DELAY1
RET
;**********************************
SHTLT:
MOV A,#01H
LCALL WCOM
MOV R1,#04
SHTLT0: MOV R2,#02
MOV A,#80H
SHTLT1: LCALL WCOM
MOV DPTR,#DATA4
MOV R3,#12
SHTLT2: CLR A
MOVC A,@A+DPTR
LCALL WDATA
INC DPTR
DJNZ R3,SHTLT2
MOV A,#0C0H
DJNZ R2,SHTLT1
MOV A,#00001111b
LCALL WCOM
MOV R5,#40H
LCALL DELAY1
MOV A,#00011000B
LCALL WCOM
DJNZ R1,SHTLT0
MOV R5,#0B0H
LCALL DELAY1
RET
;**********************************
WCGROM:
MOV A,#01H
LCALL WCOM
LCALL DELAY
MOV A,#01000000B
LCALL WCOM
LCALL DELAY
MOV R0,#33
MOV R1,#07
WDDROM0:MOV R2,#02H
MOV A,#80H
WDDROM1:LCALL WCOM
MOV R3,#16
MOV A,R0
WDDROM2:LCALL WDATA
INC A
DJNZ R3,WDDROM2
MOV A,R0
ADD A,#16
MOV R0,A
MOV A,#0C0H
DJNZ R2,WDDROM1
MOV R5,#7FH
LCALL DELAY1
JNB P3.3,$
MOV R5,#10H
LCALL DELAY1
DJNZ R1,WDDROM0
RET
;*****************************
TSTEND:
MOV A,#00001100B
LCALL WCOM
MOV A,#01H
LCALL WCOM
MOV A,#84H
LCALL WCOM
LCALL DELAY
MOV R3,#9
MOV DPTR,#DATA5
WEND: CLR A
MOVC A,@A+DPTR
LCALL WDATA
INC DPTR
DJNZ R3,WEND
MOV R5,#0F0H
LCALL DELAY1
RET
;***************************
WCOM:
PUSH DPH
PUSH DPL
PUSH ACC
LCALL BUSY_CHECK
POP ACC
NOP
NOP
CLR RS
NOP
NOP
CLR RW
NOP
NOP
SETB E
NOP
NOP
MOV PORT0,A
NOP
NOP
CLR E
NOP
NOP
SETB RW
NOP
SETB RS
POP DPL
POP DPH
RET
WDATA:
PUSH DPH
PUSH DPL
PUSH ACC
LCALL BUSY_CHECK
POP ACC
SETB RS
NOP
CLR RW
NOP
NOP
SETB E
NOP
NOP
MOV PORT0,A
NOP
NOP
CLR E
NOP
NOP
SETB RW
NOP
CLR RS
POP DPL
POP DPH
RET
;****************************************
BUSY_CHECK:
NOP
CLR RS
NOP
NOP
SETB RW
NOP
NOP
SETB E
NOP
NOP
MOV A,PORT0
NOP
NOP
CLR E
NOP
NOP
CLR RW
NOP
ANL A,#80H
CJNE A,#00H,BUSY_CHECK
RET
;****************************
DELAY:
MOV R6,#46
DE1: MOV R7,#250
DE2: DJNZ R7,DE2
DJNZ R6,DE1
RET
DELAY1:
MOV R6,#20
DEL1: MOV R7,#200
DEL2: DJNZ R7,DEL2
DJNZ R6,DEL1
DJNZ R5,DELAY1
RET
;********************************
DATA1:
DB ' This is VK2006 '
DB ' 5V Module '
DATA2:
DB '#HI'
DATA3:
DB 'SHIFT RIGHT->'
DATA4:
DB '<-SHIFT LEFT'
DATA5:
DB 'TEST OK !'
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -