微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 利用STC89C52单片机控制LCD1602(不带中文字库)显示的中文

利用STC89C52单片机控制LCD1602(不带中文字库)显示的中文

时间:11-13 来源:互联网 点击:
一、设计原理

使用STC89C52单片机控制1602LCD(不带中文字库的);利用1602LCD(不带中文字库的)中的存储器(64个字节00H-3FH)自建立8个5×8点阵的字符从而显示中文字符。

二、LCD1602的指令集:

1、清屏

RSR/W

DB7DB6DB5DB4DB3DB2DB1DB0

00

00000001

运行时间(250Khz):1.64ms;

功能:清DDRAM和AC值。

2、归位

RSR/W

DB7DB6DB5DB4DB3DB2DB1DB0

00

0000001*

运行时间(250Khz):1.64ms;

功能:AC=0,光标、画面回HOME位。

3、输入方式设置

RSR/W

DB7DB6DB5DB4DB3DB2DB1DB0

00

000001I/DS

运行时间(250Khz):40us;

功能:设置光标、画面移动方式。

其中:I/D=1:数据读、写操作后,AC自动增一;

I/D=0:数据读、写操作后,AC自动减一;

S=1:数据读、写操作,画面平移;

S=0:数据读、写操作,画面不动;

4、显示开关控制

RSR/W

DB7DB6DB5DB4DB3DB2DB1DB0

00

00001DCB

运行时间(250Khz):40us;

功能:设置显示、光标及闪烁开、关。

其中:D表示显示开关:D=1为开,D=0为关;

C表示光标开关:C=1为开,C=0为关;

B表示闪烁开关:B=1为开,B=0为关。

5、光标、画面位移

RSR/W

DB7DB6DB5DB4DB3DB2DB1DB0

00

0001S/CR/L**

运行时间(250Khz):40us;

功能:光标、画面移动,不影响DDRAM。

其中:S/C=1:画面平移一个字符位;

S/C=0:光标平移一个字符位;

R/L=1:右移;R/L=0:左移。

6、功能设置

RSR/W

DB7DB6DB5DB4DB3DB2DB1DB0

00

001DLNF**

运行时间(250Khz):40us;

功能:工作方式设置(初始化指令)。

其中:DL=1,8位数据接口;DL=0,四位数据接口;

N=1,两行显示;N=0,一行显示;

F=1,5´10点阵字符;F=0,5´7点阵字符。

7、CGRAM地址设置

RSR/W

DB7DB6DB5DB4DB3DB2DB1DB0

00

01A5A4A3A2A1A0

运行时间(250Khz):40us;

功能:设置CGRAM地址。A5~A0=0~3FH。

8、DDRAM地址设置

RSR/W

DB7DB6DB5DB4DB3DB2DB1DB0

00

1A6A5A4A3A2A1A0

运行时间(250Khz):40us;

功能:设置DDRAM地址。

N=0,一行显示A6~A0=0~4FH;

N=1,两行显示,首行A6~A0=00H~2FH,

次行A6~A0=40H~67H。

9、读BF及AC值

RSR/W

DB7DB6DB5DB4DB3DB2DB1DB0

01

BFAC6AC5AC4AC3AC2AC1AC0

功能:读忙BF值和地址计数器AC值。

其中:BF=1:忙;BF=0:准备好。

此时,AC值意义为最近一次地址设置(CGRAM或DDRAM)定义。

10、写数据

RSR/W

DB7DB6DB5DB4DB3DB2DB1DB0

10

数据

运行时间(250Khz):40us;

功能:根据最近设置的地址性质,数据写入DDRAM或CGRAM内。

11、读数据

RSR/W

DB7DB6DB5DB4DB3DB2DB1DB0

11

数据

运行时间(250Khz):40us;

功能:根据最近设置的地址性质,从DDRRAM或CGRAM数据读出。

三、程序:

//液晶显示中文-版本0.0

//作者:pcdian

//定义液晶的一些功能位

//RS 为数据、指令寄存器选择位

//RW 为读写选择位

//E 为使能位

RS BIT p2.5

RW BIT P2.6

E BIT P2.7

ORG 0000H

SJMP START

ORG 000BH

LJMP Timer_IT

ORG 0030H

START:MOV SP,#60H

MOV TMOD,#01H

MOV TH0,#0A6H

MOV TL0,#00H

SETB EA

SETB ET0

CLR TR0

MAIN:MOV P0,#01H //清屏

ACALL ENABLE

MOV P0,#38H //显示模式设置为16字*2行

ACALL ENABLE

MOV P0,#0CH //不显示光标

ACALL ENABLE

MOV P0,#06H //显示方向正向且屏不移动

ACALL ENABLE

DISPLAY:ACALL DISPLAY_C0

//我

MOV P0,#80H

ACALL ENABLE

MOV P0,#00H

ACALL WRITE

MOV P0,#81H

ACALL ENABLE

MOV P0,#01H

ACALL WRITE

MOV P0,#82H

ACALL ENABLE

MOV P0,#02H

ACALL WRITE

MOV P0,#0C0H

ACALL ENABLE

MOV P0,#03H

ACALL WRITE

MOV P0,#0C1H

ACALL ENABLE

MOV P0,#04H

ACALL WRITE

MOV P0,#0C2H

ACALL ENABLE

MOV P0,#05H

ACALL WRITE

LCALL DELAY1S

MOV P0,#01H

ACALL ENABLE

ACALL DISPLAY_C1

//们

MOV P0,#83H

ACALL ENABLE

MOV P0,#00H

ACALL WRITE

MOV P0,#84H

ACALL ENABLE

MOV P0,#01H

ACALL WRITE

MOV P0,#85H

ACALL ENABLE

MOV P0,#02H

ACALL WRITE

MOV P0,#0C3H

ACALL ENABLE

MOV P0,#03H

ACALL WRITE

MOV P0,#0C4H

ACALL ENABLE

MOV P0,#04H

ACALL WRITE

MOV P0,#0C5H

ACALL ENABLE

MOV P0,#05H

ACALL WRITE

LCALL DELAY1S

MOV P0,#01H

ACALL ENABLE

ACALL DISPLAY_C2

//的

MOV P0,#86H

ACALL ENABLE

MOV P0,#00H

ACALL WRITE

MOV P0,#87H

ACALL ENABLE

MOV P0,#01H

ACALL WRITE

MOV P0,#88H

ACALL ENABLE

MOV P0,#02H

ACALL WRITE

MOV P0,#0C6H

ACALL ENABLE

MOV P0,#03H

ACALL WRITE

MOV P0,#0C7H

ACALL ENABLE

MOV P0,#04H

ACALL WRITE

MOV P0,#0C8H

ACALL ENABLE

MOV P0,#05H

ACALL WRITE

LC

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top