LCD1602液晶显示器
- 格式:doc
- 大小:124.50 KB
- 文档页数:14
实验11:1602液晶显示屏显示(字符型液晶显示器)
字符型液晶显示器用于数字、字母、符号并可显示少量自定义符号。这类液晶显示器通常
有16根接口线,下表是这16根线的定义。
字符型液晶接口说明
编号符号引脚说明编号符号引脚说明
1 Vss 电源地 9 D
2 数据线2
2 Vdd 电源正 10 D
3 数据线3
3 VL 液晶显示偏压信号 11 D
4 数据线4
4 RS 数据/命令选择端 12 D
5 数据线5
5 R/W 读/ 写选择端 13 D
6 数据线6
6 E 使能信号 14 D
7 数据线7
7 D0 数据线0 15 BLA 背光源正极
8 D1 数据线1 16 BLK 背光源负极(本学习板配的
内部已经接地)
下图是字符型液晶显示器与单片机的接线图。这用了P0口的8根线作为液晶显示器的数据
线,用P20、P21、P22做为3根控制线。
字符型液晶显示器与单片机的接线图
字符型液晶显示器的使用,字符型液晶显示器一般采用HD44780芯片做为控制器的。
1.字符型液晶显示器的驱动程序
这个驱动程序适用于1602型字符液晶显示器,
1) 初始化液晶显示器命令(RSTLCD)
设置控制器的工作模式,在程序开始时调用。
参数:无。
2) 清屏命令(CLRLCD)
清除屏幕显示的所有内容
参数:无
3) 光标控制命令(SETCUR)
用来控制光标是否显示及是否闪烁
参数:1个,用于设定显示器的开关、光标的开关及是否闪烁。
4) 写字符命令(WRITECHAR)
在指定位置(行和列)显示指定的字符。
参数:共有3个,即行值、列值及待显示字符,分别存放在XPOS、YPOS和A中。其中行值与列值均从0开始计数,A中可直接写入字符的符号,编译程序自动转化为该字符的ASCII
值。
5) 字符串命令(WRITESTRING)
在指定位置显示指定的一串字符。
参数:共有3个,即行值、列值和R0指向待显示字符串的内存首地址,字符串须以0结尾。如果字符串的长度超过了从该列开始可显示的最多字符数,则其后字符被截断,并不在下
行显示出来。
以下是驱动源程序
;**************************************************
;连线图:
; DB0---DPROT.0 DB4---DPROT.4 RS-------------P2.0
; DB1---DPROT.1 DB5---DPROT.5 RW-------------P2.1
; DB2---DPROT.2 DB6---DPROT.6 E--------------P2.2
; DB3---DPROT.3 DB7---DPROT.7 VLCD接1K电阻到GND*
;系统晶振为11.0592
;**************************************************
RS BIT P2.0
RW BIT P2.1
E BIT P2.2
DPORT EQU P0
XPOS EQU R1 ;列方向地址指针
YPOS EQU R2 ;行方向地址指针
CUR EQU R3 ;设定光标参数
NoDisp EQU 0 ;无显示
NoCur EQU 1 ;有显示无光标
CurNoFlash EQU 2 ;有光标但不闪烁
CurFlash EQU 3 ;有光标且闪烁
WriteString:
MOV A,@R0
JZ WS_RET
CALL WriteChar
MOV A,XPOS
CJNE A,#15,WS_1 ;如果XPOS中的值未到15(可显示的最多位)
JMP WS_RET
WS_1:
INC R0
INC XPOS
JMP WriteString
WS_RET:
RET
;光标设置命令
SetCur:
MOV A,CUR
JZ S_1 ;参数为0,转关显示
DEC A
JZ S_2 ;参数为1,转开显示,但无光标
DEC A
JZ S_3 ;参数为2,转开显示且有光标,无闪烁
DEC A
JZ S_4 ;参数为3,转开显示,光标闪烁
JMP S_RET ;否则返回
S_1:
MOV A,#00001000B ;关显示
CALL LCDWC
JMP S_RET
S_2:
MOV A,#00001100B ;开显示但无光标
CALL LCDWC
JMP S_RET
S_3:
MOV A,#00001110B ;开显示有光标但不闪烁
CALL LCDWC
JMP S_RET
S_4:
MOV A,#00001111B ;开显示有光标且闪烁
CALL LCDWC
S_RET:
RET
;清屏命令
ClrLcd:
MOV A,#01H
CALL LCDWC
RET
;在指定的行与列显示指珲的字符,xpos,行,ypos,列 A,待显示字符
WriteChar:
CALL LCDPOS
CALL LCDWD
RET
;系统资源一个堆栈
WaitIdle: ;正常读写操作之前必须检测LCD控制器状态
PUSH ACC
MOV DPORT,#0FFH
CLR RS
SETB RW
SETB E
NOP
W_1:
MOV A,DPORT
ANL A,#80H
JZ W_2
JMP W_1
W_2:
CLR E
POP ACC
RET
;系统资源 a