📄 lf9111.asm
字号:
; 伪彩320*240 LCD控制板(QX3224RGB1.1)的一个最简单的演示例程
; 通过这个例程你可以知道怎样设置地址和写显示数据
; 由这个例程可以看到要显示完整的彩色必须每次连续写入三个字节,这是与单色液晶的最大区别。
; 控制LCD显示字符或图形 ,程序的任务是把显示数据写入控制板的显示RAW。显示RAW共分为二区,
; 第一页的地址是0000H~7080H, 第二页的地址是8000~F080H。
CSEG AT 0000H
;LCD控制板接口
;P1 为数据线
AD EQU P3.0 ;AD 高电平时写入的数据是地址,低电平时写入的数据是显示数据。
WRR EQU P3.2 ;WR 当P1口的数据有效时,WR产生一个下降沿,写入一个数据完成。
D12 EQU P3.1 ;D12 显示RAW分为二页,D12高电平时显示第一区,D12为低电平时显示第二。
WRDATA EQU 28H ;数据变量
ADDRL EQU 30H ;地址低位变量
ADDRH EQU 31H ;地址高位变量
MAIN:
NOP
NOP
MAIN1:
NOP
LCALL CLREA1 ; 调用清屏子程序,
LCALL CLREA2
NOP
LCALL DISRED
NOP
LCALL DISGR
NOP
NOP
PLAY:
NOP
LCALL DELAY
NOP
CLR D12 ; D12=0, 显示第二区的内容
NOP
LCALL DELAY
NOP
SETB D12 ; D12=1, 显示第一区的内容
NOP
LJMP PLAY
DELAY:
MOV R5,#0
MOV R6,#0
MOV R7,#10
DEL:
DJNZ R5,DEL
DJNZ R6,DEL
DJNZ R7,DEL
RET
;;============================================
;LFUBK9111A/LFUBK909XA是320*240的液晶屏,请参阅LFUBK909XA的PDF文件资料,
;即一行有320个像素,每个像素由三个点阵构成分别是RGB
;
;显示屏上的点阵分布 R G B R G B R G, B R G B R G B R, G B R G B R G B,..........R G B R G B
;显示红色时的二进制 1 0 0 1 0 0 1 0, 0 1 0 0 1 0 0 1, 0 0 1 0 0 1 0 0,..........1 0 0 1 0 0
; 对应的十六进制 92H , 49H , 24H ,..........
DISRED:
MOV ADDRL,#00H
MOV ADDRH,#00H ;在第一区显示红色
LCALL SETADDR
MOV R3,#0
MOV R4,#10
DISRED1:
MOV P1,#092H ; 置显示数据
CLR WRR ; WR=0
SETB WRR ; WR=1
MOV P1,#049H
CLR WRR
SETB WRR
MOV P1,#024H
CLR WRR
SETB WRR
DJNZ R3,DISRED1
DJNZ R4,DISRED1
RET
;;============================================
;LFUBK9111A/LFUBK909XA是320*240的液晶屏,请参阅LFUBK909XA的PDF文件资料,
;即一行有320个像素,每个像素由三个点阵构成分别是RGB
;
;显示屏上的点阵分布 R G B R G B R G, B R G B R G B R, G B R G B R G B,..........R G B R G B
;显示绿色时的二进制 0 1 0 0 1 0 0 1, 0 0 1 0 0 1 0 0, 1 0 0 1 0 0 1 0,..........0 1 0 0 1 0
; 对应的十六进制 49H , 24H , 92H ,..........
DISGR:
MOV ADDRL,#00H
MOV ADDRH,#80H ;在第二区显示绿色
LCALL SETADDR
MOV R3,#0
MOV R4,#10
DISGR1:
MOV P1,#049H ;置显示数据
CLR WRR ; WR=0
SETB WRR ; WR=1
MOV P1,#024H
CLR WRR
SETB WRR
MOV P1,#092H
CLR WRR
SETB WRR
DJNZ R3,DISGR1
DJNZ R4,DISGR1
RET
;;================================================================================
;清第一区RAW
CLREA1:
MOV ADDRL,#00H
MOV ADDRH,#00H ;设置地址为0000H
LCALL SETADDR
MOV R2,#0
MOV R3,#120
CLRK:
MOV P1,#0FFH
CLR WRR ;写0FFH到显示RAW,
SETB WRR
DJNZ R2,CLRK
DJNZ R3,CLRK
RET
;清第二区RAW
CLREA2:
MOV ADDRL,#00H
MOV ADDRH,#80H ;设置地址为8000H
LCALL SETADDR
MOV R2,#0
MOV R3,#120
CLRK2:
MOV P1,#0FFH
CLR WRR ;写0FFH到显示RAW,
SETB WRR
DJNZ R2,CLRK2
DJNZ R3,CLRK2
RET
;;======================================================================
;设置地址子程序
SETADDR:
CLR AD ;设置 AD=0
MOV P1,ADDRL ;置地址低位
CLR WRR ;WR=0
SETB WRR ;WR=1
MOV P1,ADDRH ;置地址高位
CLR WRR ;WR=0
SETB WRR ;WR=1
SETB AD ;写地址完成,设置 AD=1
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -