📄 a240np0.asm
字号:
;128X240 液晶演示程序
ORG 0000H
LJMP STAR
ORG 0100H
STAR:
MOV R4,#90H
LCALL OUTIN ; display off
MOV R2,#00H
MOV R3,#00H ; TEXT HOME
MOV R4,#40H
LCALL OUTI2
MOV R2,#30
MOV R3,#00 ; TEXT AREA &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
MOV R4,#41H
LCALL OUTI2
MOV R2,#00H
MOV R3,#10H
MOV R4,#42H
LCALL OUTI2 ; GRAPHIC HOME
MOV R2,#30
MOV R3,#00H ;GRAPHIC AREA
MOV R4,#43H ;
LCALL OUTI2
MOV R4,#94H ; TEXT ON
LCALL OUTIN ; GRAPHIC OFF
MOV R2,#00H
MOV R3,#00H ; TEXT WRITE "0"
MOV R4,#24H
LCALL OUTI2
MOV R4,#0B0H
LCALL OUTIN
MOV R2,#01FH
CLRS0:
MOV R3,#0FFH
CLRS1:
CLR A
LCALL OUTD
DJNZ R3,CLRS1 ;空白
DJNZ R2,CLRS0
MOV R4,#0B2H
LCALL OUTIN
; MODE SET
MOV R4,#9cH
LCALL OUTIN
MOV R4,#80H ; 84H是文本特征为错误,要将图形区改为特征码 &&&&&&&&&&&&&&&&&&&&&&&
LCALL OUTIN
MOV R2,#00H
MOV R3,#00H
MOV R4,#24H
LCALL OUTI2
MOV 12H,#16 ;10行5~8列*8行
QW1: MOV R2,#30 ;每行30个字
MOV R3,#2CH ; Char code
MOV 10H,#10H ;10H是字符代码寄存器
MOV R4,#0C0H
QW: MOV R3,10H
MOV R4,#0C0H
LCALL OUTI1
inc 10H
DJNZ R2,QW
DJNZ 12H,QW1
; LCALL TIME
LCALL TIME
;~~~~~~~~~~~~~~~~~~~~~~That's txt comstruction.
MOV R4,#98H ; text off graph on &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
LCAll OUTIN
MOV R0,#2
MOV R1,#00H
MOV R2,#00H
MOV 22H,#30
SE: MOV R3,#10H ; DISPLAY The graphic
MOV R4,#24H
LCALL OUTI2
MOV DPTR,#LDATA ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
LCALL LDIS1
LCALL TIME
LCALL TIME
MOV 22H,#80 ; 上卷80行
MOV DPTR,#1000H
MOVE: MOV R2,DPL
MOVES: MOV R3,DPH
MOV R4,#42H
LCALL OUTI2
MOV 21H,#0A0H
MOVES1:
LMS2: MOV R6,#0AFH
LMS1: DJNZ R6,LMS1
DJNZ 21H,MOVES1
MOV 25H,#1EH
MOVES2:INC DPTR
DJNZ 25H,MOVES2
DJNZ 22H,MOVE
LCALL TIME
LCALL TIME
LCALL TIME
LJMP STAR
;-----------------------------------------------------------------------------------------------
;***********************************************************************************************
LDIS1: NOP
MOV R1,#160 ;送160行,为卷屏预送80行。
LDIS2: MOV R2,22H ;30 COLOUMN
LDIS3: CLR A
MOVC A,@A+DPTR
MOV R3,A
MOV R4,#0C0H
LCALL OUTI1
INC DPTR
DJNZ R2,LDIS3
DJNZ R1,LDIS2
RET
;THIS SUBR. IS FOR DISPLAYING ONE LINE
;THE ENTRANCE PARA.
OUTI2: LCALL PR01 ;THE ENTRANCE OF TWO BYTE PARA. COMMAND
MOV A,R2
LCALL OUTD
;OUTI1 IS FOR ONE PARA.
OUTI1: LCALL PR01
MOV A,R3
LCALL OUTD
;OUTIN IS FOR NO PARA.
OUTIN: LCALL PR01
MOV A,R4
SJMP OUTD1
;OUTD IS FOR DATA OUTPUT
OUTD: CLR P2.2 ;FOR WRTIE DATA C/D=0
OUTD1: ;FOR WRITE COMMAND C/D=0
CLR P2.0 ;WR=0
MOV P0,A
SETB P2.0 ;W/R = 1
SETB P2.2 ;C/D =1
RET
PR01: LCALL PR0 ;Check the state of the LCD Module
LCALL MS40
LCALL MS40
RET
PR02: LCALL PR0
JNB ACC.2,PR02 ;FOR STA2
RET
PR03: LCALL PR0
JNB ACC.3,PR03 ;FOR STA3
RET
PR0: ORL P2,#07H ;C/D = 1
CLR P2.1 ;RD =0
SETB P2.1 ;RD = 1
RET
MS40: MOV R7,#00FH
MS2: MOV R6,#01FH
MS1: DJNZ R6,MS1
DJNZ R7,MS2
RET
TIME: MOV 23H,#03H
TIME1: MOV 21H,#0FFH
TIME2: LCALL MS40
DJNZ 21H,TIME2
DJNZ 23H,TIME1
RET
;________The data under here will make the LCD Module said:______________
;
; Hi! xxxx
; Welcome to the xxxx
; xxxx
LDATA:
;-- 调入了一幅图像:D:\1_cpu\kx_1.bmp --
;-- 宽度x高度=240x109 --
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,00EH,
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,003H,080H,000H,000H,000H,
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,038H,000H,00FH,000H,000H,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -