;***************************************************************************
;连线图:
; *DB0---P1.0* *DB4---P1.4* *A0-------------p3.7 * *E1----------p3.0
; *DB1---P1.1* *DB5---P1.5* *WR-------------GND *E2----------p3.1
; *DB2---P1.2* *DB6---P1.6*
; *DB3---P1.3* *DB7---P1.7* *RST------------p3.2
;***************************************************************************
E1 EQU P3.0
E2 equ p3.1
A0 EQU P3.7
RST EQU P3.2
x equ 30h ;页地址
y equ 31h ;列地址
;RW => GND
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP LINTO
ORG 0100H
MAIN: NOP
clr ea
CLR E1
CLR E2
lcall init ;初始化模块
;MOV 34H,#0ffH ;显示所有点
;LCALL DISPLAY_ALL
;lcall dly100
;MOV 34H,#00H ;所有点不显示
;LCALL DISPLAY_ALL
;MOV R1,#0e3H ;reset
;LCALL WRI
;lcall plybw ;显示黑白相间块
;lcall DLY100
MOV 34H,#00H ;清显示
LCALL DISPLAY_ALL
MOV R1,#0e3H ;reset
LCALL WRI
mov 31h,#0
mov 30h,#0
MOV 30H,#2 ;x
MOV 31H,#0 ;y
MOV DPTR,#HZI7 ;您
LCALL outhz
MOV 30H,#2
MOV 31H,#30
MOV DPTR,#HZI8 ;好
LCALL outhz
MOV 30H,#0
MOV 31H,#25
MOV DPTR,#HZI8 ;好
LCALL outhz
LCALL DLY100
LJMP MAIN
LINTO: NOP
NOP
RETI
init: CLR RST ;RESET
LCALL DLY50
LCALL DLY50
LCALL DLY50
LCALL DLY50
setb rst
MOV R1,#0aFH ;DISPLAY ON
LCALL WRI
MOV R1,#0C0H ;START = 0
LCALL WRI
MOV R1,#0a4H ;driver
LCALL WRI
MOV R1,#0a9h ;duty 32
LCALL WRI
mov R1,#0afh ;display on
lcall WRI
mov R1,#0eeh ;
lcall WRI
MOV R1,#0a0H ;adc
LCALL WRI
MOV R1,#0e3H ;reset
LCALL WRI
MOV 34H,#00H
LCALL DISPLAY_ALL
ret
DISPLAY_ALL: MOV R1,#0e3H ;reset
LCALL WRI
MOV R7,#4 ;DISPLAY DATA= 34H
MOV R2,#0B8H
LOP1: MOV A,R2
MOV R1,A ; X+1
LCALL WRI
MOV R1,#00H ; Y
LCALL WRI
MOV R5,#61
MOV R1,#0e0H ;RMW
LCALL WRI
LOP11: MOV R1,34H
LCALL WRD
DJNZ R5,LOP11
MOV R1,#0eeH ;end
LCALL WRI
INC R2
DJNZ R7,LOP1
ret
outhz: MOV R1,#0e3H ;reset
LCALL WRI
;30h=x (0-6) 31h=y(0-63-16)
MOV R7,#2
MOV A,#0B8H
ADD A,30H ;B8+X
MOV 30H,A ;A> > 30H
HZ2: ; MOV A,R2
MOV R1,30H ; X+1
LCALL WRI
MOV A,#00H ; Y
ADD A,31H
; MOV 31H,A ;40+Y
MOV R1,A
LCALL WRI
MOV R5,#16
MOV R1,#0e0H ;RMW
LCALL WRI
HZ1: MOV A,#00H
MOVC A,@A+DPTR
MOV R1,A
LCALL WRD
LCALL DLY10
INC DPTR
DJNZ R5,HZ1
MOV R1,#0eeH ;end
LCALL WRI
INC 30H
DJNZ R7,HZ2
RET
plybw: MOV R1,#0e3H ;reset
LCALL WRI
mov 30h,#0
mov 31h,#0
mov dptr,#bw
MOV R7,#4
MOV A,#0B8H
ADD A,30H ;B8+X
MOV 30H,A ;A> > 30H
HZ2bw: MOV R1,30H ; X+1
LCALL WRI
MOV A,#00H ; Y
ADD A,31H
;40+Y
MOV R1,A
LCALL WRI
MOV R5,#61
MOV R1,#0e0H ;RMW
LCALL WRI
HZ1bw: MOV A,#00H
MOVC A,@A+DPTR
MOV R1,A
LCALL WRD
LCALL DLY10
INC DPTR
DJNZ R5,HZ1bw
MOV R1,#0eeH ;end
LCALL WRI
INC 30H
DJNZ R7,HZ2bw
RET
;_______________________
WRI: ;写指令子程序
CLR E1
CLR E2
CLR A0
MOV P1,R1
LCALL DLY10
SETB E1
setb E2
LCALL DLY10
CLR E1
CLR E2
LCALL DLY10
LCALL DLY10
LCALL DLY10
RET
WRD: ; 写数据子程序
CLR E1
CLR E2
SETB A0
MOV P1,R1
LCALL DLY10
SETB E1
setb E2
LCALL DLY10
CLR E1
CLR E2
LCALL DLY10
RET
DLY10:MOV R3,#01H
DL1:MOV R4,#05H
DL2:MOV R6,#0fH
DL3:DJNZ R6,DL3
DJNZ R4,DL2
DJNZ R3,DL1
RET
DLY50: MOV R3,#01H
DL111: MOV R4,#0fH
DL222: MOV R6,#0afH
DL333:DJNZ R6,DL333
DJNZ R4,DL222
DJNZ R3,DL111
RET
DLY100:MOV R3,#06H
DL11:MOV R4,#0ffH
DL22:MOV R6,#0ffH
DL33:DJNZ R6,DL33
DJNZ R4,DL22
DJNZ R3,DL11
RET
ORG 0300H
WELCOM: DB 57H,65H,6CH,63H,6FH,6DH,65H,20H,20H,20H,20H,20H,20H,20H
DB 20H,20H,20H,20H,20H,20H
ORG 0320H
TINSHARP: DB 54H,49H,4EH,53H,48H,41H,52H,50H,20H,4CH,43H,4DH,20H,20H
DB 20H,20H,20H,20H,20H,20H
ORG 0340H
HZI7: ;您
;-- 新宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 40H, 20H, 10H,0fcH, 23H, 10H, 8cH, 67H, 04H,0f4H, 04H, 44H, 94H, 8cH, 00H, 00H
DB 40H, 30H, 00H, 77H, 80H, 81H, 88H, 92H,0b4H, 83H, 80H,0e0H, 00H, 11H, 60H, 00H
HZI8: ;好
;-- 文字: 他 --
;-- 新宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 40H,20H,0F0H,2FH,42H,40H,0FCH,40H,20H,0FFH,20H,10H,10H,0F8H,10H,00H
DB 00H,00H,7FH,00H,00H,00H,7FH,40H,40H,5FH,40H,42H,44H,43H,78H,00H
bw:
DB 0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH, 00H, 00H, 00h, 00H, 00H, 00H, 00H, 00H
DB 0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH, 00H, 00H, 00h, 00H, 00H, 00H, 00H, 00H
DB 0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH, 00H, 00H, 00h, 00H, 00H, 00H, 00H, 00H
DB 0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH, 00H, 00H, 00h, 00H, 00H
DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H,0ffh,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH
DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH
DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H,0ffh,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH
DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H,0ffH,0ffH,0ffH,0ffH,0ffH
DB 0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH, 00H, 00H, 00h, 00H, 00H, 00H, 00H, 00H
DB 0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH, 00H, 00H, 00h, 00H, 00H, 00H, 00H, 00H
DB 0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH, 00H, 00H, 00h, 00H, 00H, 00H, 00H, 00H
DB 0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH, 00H, 00H, 00h, 00H, 00H
DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H,0ffh,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH
DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH
DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H,0ffh,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH
DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H,0ffH,0ffH,0ffH,0ffH,0ffH
END