单片机+LCD1602液晶显示字符串Word格式.docx
《单片机+LCD1602液晶显示字符串Word格式.docx》由会员分享,可在线阅读,更多相关《单片机+LCD1602液晶显示字符串Word格式.docx(12页珍藏版)》请在冰豆网上搜索。
3
VL
液晶显示偏压信号
11
D-1
4
RS
数据倫令选择端(H/L)
12
D5
5
R/W
读f写选择端<H/L)
13
D6
6
E
使能信号
14
07
7
DO
Data1/0
15
BLA
背光源正极
8
DI
16
BLK
背光源负极
基本操作电路
「1读状态:
输入:
RS二L,般-H,E=H
输出:
DW左状态字
X2写指令;
RS=L,R*=L,D0「D7=指令码,E二高脉冲
无
1弋读数据;
输入;
RS二H.RW=H.E=H
D077二数据
L4写数据:
RS二H.RW=L.D0〜D7=数据.E二高脉冲
输出;
状态字说明
STA7
STA6
STA5
STA4
STA3
STA2
STA1
STAO
D7
D4
D3
D2
D1
D0
STAA6当前数据地址指针的数值
S"
7读写操作使能T___0:
初始化相关指令的意思
显示模式设苦
指令码
功能
设青16X2显示.5X7点阵,8位数据接口
显示开关及光标设西
D
G
D—1开显乔匚D—0关显示
G二1显示光标:
不显示光标
B二1光标闪烁iB=0光标不显不
N
S
N-1窖读或写一个字符后地址指针加—t且光标加一
N-0当读或写一个字符后地址指针减一,且光标减一
S=1当写一个字符,整屏显示左移(N=1)
读时序图
DB0-DB7
lc
写时序图
要想通过1602液晶来显示你想要显示字符串,其实是很简单的,程序虽然有点长,但是都是按照步骤来的。
1602的五大步骤
第一个步骤:
检查LCD忙状态
lcd_busy为1时,忙,等待。
lcd-busy为0时,闲,可写指令与数据。
第二个步骤:
写指令数据到LCD
RS=L,RW=L,E=高脉冲,D0-D7二指令码。
第三个步骤:
写显示数据到LCD
RS=H,RW=L,E=高脉冲,D0-D7=数据。
第四个步骤:
设定显示位置
第五个步骤:
LCD初始化设定
只要这五步你弄懂了,什么样的字符串都可以按照你的方式显示。
至于这其中的步骤的具体的方式,我们就要参照1602的资料和时序图!
不过你大可不必,这份文档就足够了!
#include<
reg51.h>
intrins.h>
#defineucharunsignedchar
#defineuintunsignedint
sbitdula=P2A6;
sbitwela=P2A7;
WLCOMETO"
};
{"
JIANGGANHUA"
NANCHANG"
HANGKONGDX"
sbitLCD_RS=P3A5;
sbitLCD_RW=P3A6;
sbitLCD_EN=P3A4;
ucharcodedis1[]={"
ucharcodedis2[]=ucharcodedis3[]={"
ucharcodedis4[]={"
voiddelay(intms)
{
inti;
while(ms--)
for(i=0;
i<
110;
i++)
_nop_();
}
}bitlcd_busy()
bitresult;
LCD_RS=0;
LCD_RW=1;
LCD_EN=1;
result=(bit)(P0&
0x80);
LCD_EN=0;
returnresult;
voidlcd_wcmd(ucharcmd)
while(lcd_busy());
LCD_RW=0;
P0=cmd;
voidlcd_wdat(uchardat){
LCD_RS=1;
P0=dat;
voidlcd_pos(ucharpos)
lcd_wcmd(pos|0x80);
voidlcd_init()
dula=0;
wela=0;
lcd_wcmd(0x38);
delay(5);
lcd_wcmd(0x0c);
//数据指针=80+地址变量
//16*2显示,5*7点阵,8位数据
//显示开,关光标
lcd_wcmd(0x06);
delay(5);
lcd_wcmd(0x01);
main()
uchari;
delay(10);
lcd_init();
//移动光标
//清除LCD的显示内容
//初始化LCD
while
(1)
lcd_wcmd(0x06);
lcd_pos(0);
i=0;
while(dis1[i]!
='
\0'
)
lcd_wdat(dis1[i]);
i++;
delay(50);
lcd_pos(0x40);
while(dis2[i]!
lcd_wdat(dis2[i]);
delay(50);
//向右移动光标//设置显示位置为第一行的第1个字符
//显示字符
//控制两字之间显示速度
//设置显示位置为第二行第1个字符
//显示字符"
lcd_wcmd(0x01);
delay(200);
lcd_wcmd(0x04);
lcd_pos(15);
while(dis3[i]!
//闪动二次
//控制转换时间
//向左移动光标//设置显示位置为第一行的第16个字符
lcd_wdat(dis3[i]);
lcd_pos(0x4F);
while(dis4[i]!
lcd_wdat(dis4[i]);
delay(100);
//设置显示位置为第二行的第
//清除LCD的显示内容//控制转换时间
实验现象,1602液晶显示我在数组里设置的字符串!
739141300疑问解答!
16个字符