📄 24064_.asm
字号:
;TEST TO 12864,24064,240128
;CONTROLLER: T6963C
;SIDE: 128 X 64,240 X 64 ,240 X 128 DOTS
;MCU :8051
;OSC :10MHz
;****************************************************************
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
K EQU P3.3
KEY EQU P3.4
ORG 0000H
JMP START
ORG 0013H
JMP HALT
ORG 0030H
JMP START
HALT: PUSH ACC
PUSH 40H
PUSH 41H
PUSH 42H
CLR IT1
SETB K
LCALL DELAYL
JNB K,$
LCALL DELAY
HALT1: SETB K
JNB K,HALT2
JMP HALT1
HALT2: LCALL DELAY
JNB K,HALTOUT
JMP HALT1
HALTOUT:JNB K,$
LCALL DELAY
POP 42H
POP 41H
POP 40H
POP ACC
SETB IT1
RETI
INIT: SETB KEY
JB KEY,LCM128
MOV 43H,#01EH
JMP LCM
LCM128: MOV 43H,#010H
LCM: CLR RST ;RESET
NOP
NOP
NOP
NOP
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,43H ;TEXT AREA 30 COLUMNS
MOV R3,#00H
MOV R4,#41H
LCALL PR1
;GRAPHIC HOME ADDRESS SET
MOV R2,#20H
MOV R3,#00H
MOV R4,#42H
LCALL PR1
;GRAPHIC AREA SET
MOV R2,43H ;GRAPHIC AREA 30 COLUMNS
MOV R3,#00H
MOV R4,#43H
LCALL PR1
MOV R4,#80H ;"OR" MODE
LCALL PR12
MOV R4,#0A3H ;CURSOR PATTERN SET 3 LINES
LCALL PR12
LCALL CLEAR ;START TO TEST
MOV R4,#98H ;DISPLAY ON
LCALL PR12
RET
START: LCALL INIT
SETB EA
SETB IT1
SETB EX1
MOV 44H,#0FFH ; ALL DIS
MOV 45H,#0FFH
LCALL TEST
LCALL DELAYL
LCALL INIT
MOV 44H,#0AAH ;grid
MOV 45H,#055H
LCALL TEST
LCALL DELAYL
LCALL INIT
MOV 44H,#055H ;GRID
MOV 45H,#0AAH
LCALL TEST
LCALL DELAYL
LCALL INIT
SETB KEY
JNB KEY,PP24064
MOV DPTR,#P12864
LCALL DRAW ;DRAW A PICTURE:12864
LCALL DELAYL
LJMP START
PP24064:LCALL CLEAR
MOV DPTR,#P24064
LCALL DRAW ;DRAW A PICTURE:24064*2
LCALL DELAYL
LJMP START
DELAY: MOV 40H,#1FH ;DELAY TIME
DELAY1: MOV 41H,#30H
DELAY2: DJNZ 41H,DELAY2
DJNZ 40H,DELAY1
RET
DELAYL: mov 42H,#06h
dd: MOV 40H,#0FFH ;DELAY TIME
DELAYL1: MOV 41H,#0FFH
DELAYL2: DJNZ 41H,DELAYL2
DJNZ 40H,DELAYL1
djnz 42H,dd
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
DRAW: NOP ;TEST 2
DRAW0: MOV R2,#20H ;DISPLAY RAM ADDRESS =0X0400H
MOV R3,#00H
MOV R4,#24H
LCALL PR1
MOV R4,#0B0H ;AUTO WRITE
LCALL PR12
MOV R2,#40H
DRAW2:
MOV R3,#1EH
DRAW3: LCALL PR03
MOV A,#00H
MOVC A,@A+DPTR
LCALL PR14
INC DPTR
DJNZ R3,DRAW3
DJNZ R2,DRAW2
MOV R2,#3FH
MOV DPTR,#P24064
DRAW4:
MOV R3,#1FH
DRAW5: LCALL PR03
MOV A,#00H
MOVC A,@A+DPTR
LCALL PR14
INC DPTR
DJNZ R3,DRAW5
DJNZ R2,DRAW4
MOV R4,#0B2H ;AUTO WRITE END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -