📄 lcm240128.asm
字号:
;TEST TO 240128-1 (C240128-1)
;CONTROLLER: T6963C
;SIDE: 240 X 128 DOTS
;DRAW: WHY
;DATE: 1999.5.26
;****************************************************************
;WR REG P3.0 DEFINE LCM WRITE PIN
;RD REG P3.1 DEFINE LCM READ PIN
;CE REG P3.2 DEFINE LCM CHIP ENABLE PIN
;C/D REG P3.3 DEFINE LCM COMMAND/DATA PIN
;FS REG P3.6 DEFINE LCM WORD PIN
;RST REG P3.5 DEFINE LCM RESET PIN
;DB0-DB7 REG P1.0-P1.7 DEFINE LCM DATA BUS PIN
ORG 0000H
START: CLR P3.5 ;RESET
NOP
SETB P3.5
CLR P3.6 ;SET FS=0
;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
LCALL PR12
MOV R4,#0A3H ;CURSOR PATTERN SET 3 LINES
LCALL PR12
START1:
LCALL CLEAR ;START TO TEST
MOV R4,#98H ;DISPLAY ON
LCALL PR12
LCALL TEST
LCALL BOX
LCALL KEY
JMP START1
DELAY: MOV 40H,#1FH ;DELAY TIME
DELAY1: MOV 41H,#30H
DELAY2: DJNZ 41H,DELAY2
DJNZ 40H,DELAY1
RET
KEY: MOV P2,#0FFH ;SELECT KEY FOR TEST
KEY1: MOV C,P2.0
JC KEY1
CALL DELAY
CALL DELAY
MOV C,P2.0
JC KEY1
CALL DELAY
MOV R4,#20H
KEY2: CALL DELAY
DJNZ R4,KEY2
RET
;READ BUSY_SIGNAL
PR0: CLR P3.2 ;SET CE=L
SETB P3.3 ;SET C/D=H
SETB P3.0 ;SET WR=H
ORL P1,#0FFH
CLR P3.1 ;SET RD=L
MOV A,P1
SETB P3.1 ;SET RD=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 P3.2 ;SET CE=L
CLR P3.3 ;SET C/D=L
JMP PR16
PR15: CLR P3.2 ;SET CE=L
SETB P3.3 ;SET C/D=H
PR16: SETB P3.1 ;SET RD=H
CLR P3.0 ;SET WR=L
MOV P1,A
SETB P3.0 ;SET WR=H
RET
CLEAR: MOV R2,#00H ;CLEAR DISPLAY RAM
MOV R3,#00H
MOV R4,#24H
LCALL PR1
MOV R4,#0B0H
LCALL PR12
MOV R6,#0A2H
CLEAR1: MOV R5,#1EH
CLEAR2: LCALL PR03
MOV A,#00H
LCALL PR14
DJNZ R5,CLEAR2
DJNZ R6,CLEAR1
MOV R4,#0B2H
LCALL PR12
RET
TEST: MOV DPTR,#ADATA ;TEST 1
MOV 65H,DPH
MOV 66H,DPL
MOV R0,#07H
TEST0: MOV R2,#00H
MOV R3,#04H
MOV R4,#24H
LCALL PR1
MOV R4,#0B0H
LCALL PR12
MOV R1,#10H
TEST1: MOV A,65H
MOV 67H,A
MOV A,66H
MOV 68H,A
MOV R2,#08H
TEST2: MOV DPH,67H
MOV DPL,68H
MOV R3,#1EH
TEST3: LCALL PR03
MOV A,#00H
MOVC A,@A+DPTR
LCALL PR14
DJNZ R3,TEST3
MOV DPH,67H
MOV DPL,68H
INC DPTR
MOV 67H,DPH
MOV 68H,DPL
DJNZ R2,TEST2
DJNZ R1,TEST1
MOV R4,#0B2H
LCALL PR12
LCALL KEY
CLR C
MOV A,66H
ADD A,#08H
MOV 66H,A
JNC TEST4
INC 65H
TEST4: DJNZ R0,TEST0
RET
BOX: MOV R2,#00H ;TEST 2
MOV R3,#04H
MOV R4,#24H
LCALL PR1
MOV R4,#0B0H
LCALL PR12
MOV R5,#1EH
BOX1: LCALL PR03
MOV A,#0FFH
LCALL PR14
DJNZ R5,BOX1
MOV R7,#7EH
BOX3: LCALL PR03
MOV A,#80H
LCALL PR14
MOV R6,#1CH
BOX2: LCALL PR03
MOV A,#00H
LCALL PR14
DJNZ R6,BOX2
LCALL PR03
MOV A,#01H
LCALL PR14
DJNZ R7,BOX3
MOV R5,#1EH
BOX4: LCALL PR03
MOV A,#0FFH
LCALL PR14
DJNZ R5,BOX4
MOV R4,#0B2H
LCALL PR12
RET
ADATA:
DB 0FFH,000H,0FFH,000H,0FFH,000H,0FFH,000H
DB 000H,0FFH,000H,0FFH,000H,0FFH,000H,0FFH
DB 0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH
DB 055H,055H,055H,055H,055H,055H,055H,055H
DB 00FH,009H,00FH,009H,00FH,009H,011H,000H
DB 004H,00FH,014H,00EH,005H,01EH,004H,000H
DB 00EH,011H,001H,00DH,015H,015H,00EH,000H
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -