📄 12864(st7920).asm
字号:
DATA1 EQU 30H
DATA2 EQU 31H
DATA0 EQU 32H
X EQU 33H
Y EQU 34H
TER0 EQU 35H
TER1 EQU 36H
COUNTER EQU 37H
ADDRH EQU 38H
CTRL EQU 39H
CTWL EQU 3AH
DARL EQU 3BH
DAWL EQU 3CH
ROW EQU 3EH
COLUMN EQU 3FH
N EQU 40H
CUNH EQU 41H
CUNL EQU 42H
E1 BIT P3.2
RW BIT P3.1
RS BIT P3.0
ORG 0000H
AJMP CBEGIN
;
ORG 0013H
LJMP ZD1
;
ORG 0040H
CBEGIN: NOP
NOP
MOV SP,#50H
SETB EA; open interrupter
SETB EX1; open ZD1
CLR IT1; active low level
NOP
CINITIAL: NOP
LCALL DELAY1S
MOV A,#30H; INTERNAL RESET
LCALL CWRCTRL
LCALL DELAY
MOV A,#30H; FUNCTION SET
LCALL CWRCTRL
LCALL DELAY
MOV A,#0CH; set ON/OFF
LCALL CWRCTRL
LCALL DELAY
MOV A,#01H; CLEAR
LCALL CWRCTRL
LCALL DELAY500
MOV A,#06H; ENTRY MODE
LCALL CWRCTRL
LCALL DELAY
NOP;-----------------------
;STARTDIS: NOP
; MOV A,#82H
; LCALL CWRCTRL
; MOV DPTR,#TAB; display successively word
; LCALL CWRITE
; LCALL DELAY500
; MOV A,#89H
; LCALL CWRCTRL
; MOV DPTR,#TAB1; display successively word
; LCALL CWRITE
; LCALL DELAY500
; MOV A,#91H
; LCALL CWRCTRL
; MOV DPTR,#TAB2; display successively word
; LCALL CWRITE
; LCALL DELAY500
; MOV A,#9AH
; LCALL CWRCTRL
; MOV DPTR,#TAB3; display successively word
; LCALL CWRITE
; LCALL DELAY500
; NOP
CDISALL:
MOV A,#01H; clear display ram
LCALL CWRCTRL
LCALL DELAY
MOV A,#36H; FUNCTION SET
LCALL CWRCTRL
LCALL DELAY
MOV DATA1,#0FFH
MOV DATA2,#0FFH
MOV TER1,#03H
LCALL CWRITE0; display full screen
LCALL DELAY1S
NOP
CDISROW: MOV A,#01H; clear display ram
LCALL CWRCTRL
LCALL DELAY
MOV A,#36H; FUNCTION SET
LCALL CWRCTRL
LCALL DELAY
MOV DATA1,#0FFH
MOV DATA2,#00H
MOV TER1,#02H
LCALL CWRITE0; one row on, one row off
LCALL DELAY1S
MOV A,#01H; clear display ram
LCALL CWRCTRL
LCALL DELAY
MOV A,#36H; FUNCTION SET
LCALL CWRCTRL
LCALL DELAY
MOV DATA1,#00H
MOV DATA2,#0FFH
MOV TER1,#02H
LCALL CWRITE0; one row on, one row off
LCALL DELAY1S
NOP
CDISCOL: MOV A,#01H; clear display ram
LCALL CWRCTRL
LCALL DELAY
MOV A,#36H; FUNCTION SET
LCALL CWRCTRL
LCALL DELAY
MOV DATA1,#0AAH
MOV DATA2,#0AAH
MOV TER1,#02H
LCALL CWRITE0; one column on, one column off
LCALL DELAY1S
NOP
MOV A,#01H; clear display ram
LCALL CWRCTRL
LCALL DELAY
MOV A,#36H; FUNCTION SET
LCALL CWRCTRL
LCALL DELAY
MOV DATA1,#55H
MOV DATA2,#55H
MOV TER1,#02H
LCALL CWRITE0; one column on, one column off
LCALL DELAY1S
NOP
CDISDOT: MOV A,#01H; clear display ram
LCALL CWRCTRL
LCALL DELAY
MOV A,#36H; FUNCTION SET
LCALL CWRCTRL
LCALL DELAY
MOV DATA1,#0AAH
MOV DATA2,#55H
MOV TER1,#02H
LCALL CWRITE0; one dot on, one dot off
LCALL DELAY1S
NOP
MOV A,#01H; clear display ram
LCALL CWRCTRL
LCALL DELAY
MOV A,#36H; FUNCTION SET
LCALL CWRCTRL
LCALL DELAY
MOV DATA1,#55H
MOV DATA2,#0AAH
MOV TER1,#02H
LCALL CWRITE0; one dot on, one dot off
LCALL DELAY1S
NOP
loop: LCALL CCLRRAM
MOV A,#01H; clear display ram
LCALL CWRCTRL
LCALL DELAY
MOV A,#36H; FUNCTION SET
LCALL CWRCTRL
LCALL DELAY
MOV DPTR,#board
MOV A,DPH
MOV CUNH,A
MOV A,DPL
MOV CUNL,A
LCALL DISPLAY
LCALL DELAY
loop2: LCALL CCLRRAM
MOV A,#01H; clear display ram
LCALL CWRCTRL
LCALL DELAY
MOV A,#36H; FUNCTION SET
LCALL CWRCTRL
LCALL DELAY
MOV DPTR,#board2
MOV A,DPH
MOV CUNH,A
MOV A,DPL
MOV CUNL,A
LCALL DISPLAY
LCALL DELAY
LJMP CBEGIN
DISPLAY: MOV X,#00H; start page address 0
DISPLAY0:
MOV A,X
ORL A,#80H; set page address
LCALL CWRCTRL
NOP
MOV A,#80H; set uper column address 0
LCALL CWRCTRL
MOV R0,#8
LOOP0: MOV A,#00
MOVC A,@A+DPTR
MOV DATA0,A
LCALL CWRDATA
INC DPTR
MOV A,#00
MOVC A,@A+DPTR
MOV DATA0,A
LCALL CWRDATA
INC DPTR
DJNZ R0, LOOP0
INC X
MOV A,X
CJNE A,#32,DISPLAY0
MOV X,#00H; start page address 0
DISPLAY1:
MOV A,X
ORL A,#80H; set page address
LCALL CWRCTRL
NOP
MOV Y,#8
MOV A,Y
ORL A,#80H; set uper column address 0
LCALL CWRCTRL
MOV R0,#8
LOOP1: MOV A,#00
MOVC A,@A+DPTR
MOV DATA0,A
LCALL CWRDATA
INC DPTR
MOV A,#00
MOVC A,@A+DPTR
MOV DATA0,A
LCALL CWRDATA
INC DPTR
DJNZ R0, LOOP1
INC X
MOV A,X
CJNE A,#32 ,DISPLAY1
RET
CWRCTRL: NOP
PUSH ACC
CLR RS
NOP
NOP
CLR RW
NOP
NOP
MOV P1,A
NOP
SETB E1
NOP
NOP
CLR E1
NOP
NOP
NOP
NOP
NOP
POP ACC
NOP
RET
CWRDATA: PUSH ACC
SETB RS
NOP
NOP
CLR RW
NOP
NOP
MOV A,DATA0
MOV P1,A
LCALL DELAY0
SETB E1
LCALL DELAY0
CLR E1
LCALL DELAY0
POP ACC
NOP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -