📄 1621
字号:
*********************************************************************************
;* TEST TO HT1621
;* P1.7=DATA,P3.0=/WR,P3.1=/CS
;* CREATE BY:ZhaLingun
;* DATE:2004.03.15
;*******************************************************************************
ORG 0000H
LJMP BEGIN
ORG 0100H
BEGIN:
MOV SP, #60H
MOV P1, #00H
SETB P3.1 ;/CS=1
SETB P3.0 ;/WR=1
LCALL WAIT
CLR P3.1 ;/CS=0
MOV R1, #80H ;R1存ID码
MOV R2, #01H ;R2,R3存命令代码
MOV R3, #00H
LCALL WR1
LCALL WR2
LCALL WR3
MOV R2, #03H ;开启LCD偏压产生器
MOV R3, #00H
LCALL WR2
LCALL WR3
MOV R2, #0DH ;清除时基定时器内容
MOV R3, #00H
LCALL WR2
LCALL WR3
MOV R2, #18H ;RC256K
MOV R3, #00H
LCALL WR2
LCALL WR3
MOV R2, #29H ;1/4DUTY,1/3BIAS
;MOV R2, #28H ;1/4DUTY,1/2BIAS
;MOV R2, #24H ;1/3DUTY,1/2BIAS
;MOV R2, #20H ;1/2DUTY,1/2BIAS
MOV R3, #00H
LCALL WR2
LCALL WR3
SETB P3.1
LCALL WAIT
;=====================================================================
FILL:
SETB P3.1 ;全部显示
LCALL WAIT
CLR P3.1
MOV R1, #0A0H ;WRITE DATA: ID 101
LCALL WR1
MOV R5, #06H
MOV R2, #00H ;WRITE ADD : 00H
LCALL WR22
MOV R3, #0FFH ;WRITE DATA: #FFH
MOV R0, #20H ;写满HT1621内部32个RAM存储单元
;若改为#40H则可写满HT1622内部
;64个RAM存储单元
WR_DA:
LCALL WR4
LCALL WAIT
DJNZ R0, WR_DA
LCALL DELAY
;======================================================================
SETB P3.1 ;清零
LCALL WAIT
CLR P3.1
MOV R1, #0A0H
LCALL WR1
MOV R5, #06H
MOV R2, #00H
LCALL WR22
MOV R3, #00H
MOV R0, #20H ;写满HT1621
WR_DD:
LCALL WR4
LCALL WAIT
DJNZ R0, WR_DD
LCALL LWAIT
;======================================================================
;显示#0A0H-#50H
SETB P3.1
LCALL WAIT
CLR P3.1
MOV R1, #0A0H
LCALL WR1
MOV R5, #06H
MOV R2, #00H
LCALL WR22
MOV R0,#10H
WR_DDA:
MOV R3, #0A0H
LCALL WR4
NOP
MOV R3, #50H
LCALL WR4
NOP
LCALL WAIT
DJNZ R0, WR_DDA
LCALL LWAIT
;=====================================================================
SETB P3.1 ;显示#50H-#0A0H
LCALL WAIT
CLR P3.1
MOV R1, #0A0H
LCALL WR1
MOV R5, #06H
MOV R2, #00H
LCALL WR22
MOV R0,#10H
WR_DDB:
MOV R3, #50H
LCALL WR4
MOV R3, #0A0H
LCALL WR4
LCALL WAIT
DJNZ R0, WR_DDB
LCALL LWAIT
LJMP BEGIN ;循环
;=====================================================================
SETB P3.1
LCALL WAIT
CLR P3.1
MOV R1, #0A0H
LCALL WR1
MOV R5, #06H
MOV R2, #00H
LCALL WR22
MOV R3, #50H
MOV R0,#28H
WR_DD1:
LCALL WR4
LCALL WAIT
DJNZ R0, WR_DD1
;=======================================================================
ORG 0200H
WR1: MOV R5, #03H
MOV A, R1
D1: LCALL WR_1
RL A
DJNZ R5, D1
RET
;=======================================================================
ORG 0250H
WR2: MOV R5, #08H
WR22:MOV A, R2
D2: ACALL WR_1
RL A
DJNZ R5, D2
RET
ORG 0300H
WR3: MOV A, R3
LCALL WR_1
RET
;=====================================================================
ORG 0350H
WR4: MOV R4, #04H
MOV A, R3
D4: LCALL WR_1
RL A
DJNZ R4, D4
RET
;----------------------------------------------------------------------------------------------------------------------
ORG 0400H
WR_1:
MOV P1, A
LCALL WAIT
CLR P3.0
LCALL WAIT
SETB P3.0
LCALL WAIT
RET
;=================================================================
WAIT: MOV R6, #0FFH
DEL1: DJNZ R6, DEL1
MOV R6, #0FFH
DEL2: DJNZ R6, DEL2
RET
;--------------------------------------------------------------------------------------------------------------------
DELAY:
MOV R0,#40
DL4_PA:
MOV R1,#100
DL4_PB:
MOV R2,#100
DJNZ R2,$
DJNZ R1,DL4_PB
DJNZ R0,DL4_PA
RET
;-------------------------------------------------------------------------------------------------------------
LWAIT:
MOV R0,#40 ;延时子程序(400MS)
DL4_PC:
MOV R1,#100
DL4_PD:
MOV R2,#100
DJNZ R2,$
DJNZ R1,DL4_PD
DJNZ R0,DL4_PC
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -