📄 24064(t6963).asm
字号:
;TEST TO 24064
;CONTROLLER: T6963C
;SIDE: 240 X 64 DOTS
;****************************************************************
W_R EQU P3.6 ;DEFINE LCM W_RITE PIN
R_D EQU P3.7 ;DEFINE LCM READ PIN
CE EQU P2.7 ;DEFINE LCM CHIP ENABLE PIN
CD EQU P2.0 ;DEFINE LCM COMMAND/DATA PIN
FS EQU P3.5 ;DEFINE LCM WOR_D PIN
RST EQU P2.3 ;DEFINE LCM RESET PIN
;DB0-DB7 REG P0.0-P0.7 DEFINE LCM DATA BUS PIN
ORG 0000H
JMP START
ORG 0013H
JMP HALT
ORG 0040H
HALT: JMP $
START: CLR RST ;RESET
NOP
SETB RST
CLR FS
;TEXT HOME ADDRESS SET
MOV R2,#00H
MOV R3,#00H
MOV R4,#40H
LCALL PR1
;TEXT AREA SET
MOV R2,#1EH ;TEXT AREA 30 COLUMNS
MOV R3,#00H
MOV R4,#41H
LCALL PR1
;GRAPHIC HOME ADDRESS SET
MOV R2,#00H
MOV R3,#04H
MOV R4,#42H
LCALL PR1
;GRAPHIC AREA SET
MOV R2,#1EH ;GRAPHIC AREA 30 COLUMNS
MOV R3,#00H
MOV R4,#43H
LCALL PR1
MOV R4,#80H ;"OR" MODE 80H
LCALL PR12
MOV R4,#0A3H ;CURSOR PATTERN SET 3 LINES
LCALL PR12
START1: MOV R2,#00H
MOV R3,#04H
MOV R4,#42H
LCALL PR1
LCALL CLEAR ;START TO TEST
MOV R4,#98H ;DISPLAY ON
LCALL PR12
SETB EA ;HALT ENABLE
SETB IT1
SETB EX1
LCALL TEST
LCALL DELAYL
LCALL CLEAR
LCALL WRCHAR
LCALL DELAYL
LCALL CLEAR
LCALL DRAW
LCALL DELAYL
JMP START
DELAY: MOV 40H,#1FH ;DELAY TIME
DELAY1: MOV 41H,#30H
DELAY2: DJNZ 41H,DELAY2
DJNZ 40H,DELAY1
RET
DELAYL: MOV 42H,#0AH
DELAYL3: MOV 40H,#0FFH ;DELAY TIME
DELAYL1: MOV 41H,#0FFH
DELAYL2: DJNZ 41H,DELAYL2
DJNZ 40H,DELAYL1
DJNZ 42H,DELAYL3
RET
;READ BUSY_SIGNAL
PR0: CLR CE ;SET CE=L
SETB CD ;SET C/D=H
SETB W_R ;SET W_R=H
ORL P0,#0FFH
CLR R_D ;SET R_D=L
MOV A,P0
SETB R_D ;SET R_D=H
RET
;READ BUSY_SIGNAL ,OK OR NOT ?
PR01: CALL PR0
JNB ACC.0,PR01 ;STA0 OK?
JNB ACC.1,PR01 ;STA1 OK?
RET
PR02: CALL PR0
JNB ACC.2,PR03 ;STA2 OK?
RET
PR03: CALL PR0
JNB ACC.3,PR03 ;STA3 OK?
RET
PR06: CALL PR0
JB ACC.6,ERR
RET
ERR: LJMP START
RET
;SEND OUT INSTRUCTION AND DATA TO LCM
PR1: CALL PR01 ;DOUBLE BYTE PARAMETER INST. PORT
MOV A,R2
CALL PR14
PR11: CALL PR01 ;SINGLE BYTE PARAMETER INST. PORT
MOV A,R3
CALL PR14
PR12: CALL PR01 ;NO PARAMETER INST. PORT
MOV A,R4
JMP PR15
PR14: CLR CE ;SET CE=L
CLR CD ;SET C/D=L
JMP PR16
PR15: CLR CE ;SET CE=L
SETB CD ;SET C/D=H
PR16: SETB R_D ;SET R_D=H
CLR W_R ;SET W_R=L
MOV P0,A
SETB W_R ;SET W_R=H
RET
CLEAR: MOV R2,#00H ;CLEAR DISPLAY RAM ADDRESS
MOV R3,#00H
MOV R4,#24H
LCALL PR1
MOV R4,#0B0H ;AUTO WRITE
LCALL PR12
MOV R6,#66H
CLEAR1: MOV R5,#1EH
CLEAR2: LCALL PR03
MOV A,#00H
LCALL PR14
DJNZ R5,CLEAR2
DJNZ R6,CLEAR1
MOV R4,#0B2H ;AUTO WRITE END
LCALL PR12
RET
TEST: MOV R4,#84H
LCALL PR12
MOV R4,#9FH
LCALL PR12
MOV R2,#00H
MOV R3,#00H
MOV R4,#24H
LCALL PR1
MOV R4,#0B0H
LCALL PR12
MOV R2,#08H
TEST1: MOV R3,#50H
MOV R7,#10H
TEST2: MOV A,R7
LCALL PR14
INC R7
DJNZ R3,TEST2
DJNZ R2,TEST1
MOV R4,#0B2H
LCALL PR12
RET
WRCHAR: MOV R4,#80H
LCALL PR12
MOV R4,#9CH
LCALL PR12
MOV R2,#00H
MOV R3,#00H
MOV R4,#24H
LCALL PR1
MOV R4,#0B0H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -