LCD1602液晶显示器

  • 格式:doc
  • 大小:124.50 KB
  • 文档页数:14

下载文档原格式

  / 14
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验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