LCD1602液晶显示实验实验报告及程序文档格式.docx
- 文档编号:20170179
- 上传时间:2023-01-17
- 格式:DOCX
- 页数:15
- 大小:43.69KB
LCD1602液晶显示实验实验报告及程序文档格式.docx
《LCD1602液晶显示实验实验报告及程序文档格式.docx》由会员分享,可在线阅读,更多相关《LCD1602液晶显示实验实验报告及程序文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
最后面的一层是由荧光物质组成的可以发射光线的背光层,背光层发出的光
线在穿过第一层偏振过滤层之后进入包含成千上万水晶液滴的液晶层,液晶
层中的水晶液滴都被包含在细小的单元格结构中,一个或多个单元格构成屏
幕上的一个像素。
当LCD中的电极产生电场时,液晶分子就会产生扭曲,从而将穿越其中的光线进行有规则的折射,然后经过第二层过滤层的过滤在屏幕上显示出来。
1.LCD1602采用标准的14引脚(无背光)或16引脚(带背光)接口,各
编号
符号
引脚说明
1
VSS
电源地
9
D2
数据
2
VDD
电源正极
10
D3
3
VL
液晶显示偏压
11
D4
4
RS
数据/命令选择
12
D5
5
R/W
读/写选择
13
D6
6
E
使能信号
14
D7
7
D0
15
BLA
背光源正极
8
D1
16
BLK
背光源负极
2.1602液晶模块内部的控制器共有11条控制指令,如表所示:
3.芯片时序表:
4.1602LCD勺一般初始化(复位)过程
(1)延时15mso
(2)写指令38H(不检测忙信号)。
(3)延时5ms
(4)写指令38H(不检测忙信号)。
(5)延时5ms
(6)写指令38H(不检测忙信号)。
(7)以后每次写指令、读/写数据操作均需要检测忙信号
(8)写指令38H:
显示模式设置。
(9)写指令08H:
显示关闭。
(10)写指令01H:
显示清屏。
(11)写指令06H:
显示光标移动设置。
(12)写指令0CH显示开及光标设置。
五、实验步骤
1.用Proteus设计1602液晶显示接口电路;
2.在KeilC51中编写液晶显示控制程序,编译通过后,与Proteus联合调
试;
3.按动功能键,观察字符及效果是否正确显示。
六、电路设计调试及程序
1)实验电路
2)程序设计与调试
静态显示
ucharnum;
lcdrs=0;
P0=com;
delay(5);
lcden=1;
lcden=0;
}
voidwrite_data(uchardate)
{
lcdrs=1;
P0=date;
voidinit()
lcdrw=0;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
write_com(0x80+0x00);
voidmain()
init();
delay(100);
while
(1)
for(num=0;
num<
12;
num++)
write_data(table[num]);
delay(200);
write_com(0x02);
write_com(0x80+0x40);
16;
num++){write_data(table1[num]);
delay(200);
while
(1);
for(x=z;
x>
0;
x--)
动态显示
#include<
>
#defineucharunsignedchar
#defineuintunsignedintucharcodetable[]="
Xin"
;
ucharcodetable1[]="
412381"
sbitIcden=P2^2;
sbitIcdrw=P2A1;
sbitIcdrs=P2A0;
voiddeIay(uintz)
for(y=110;
y>
y--);
voidwrite_com(ucharcom){
Icdrs=0;
deIay(5);
Icden=1;
Icden=0;
Icdrs=1;
uintx,y;
write_data(table1[num]);
按键实现不同效果
write_com(0x38);
write_com(0x0f);
write_com(0x06);
num++){
lcdrw=0;
#defineuintunsignedint
ucharcodetable[]="
Myinformation!
"
Xin"
ucharcodetable2[]="
ucharcodetable3[]="
EXP8"
ucharcodetable4[]="
DISPLAY"
ucharnum,i,j;
ucharflag1,flag2,flag3,flag4;
sbitk仁P3A0;
sbitk2=P3A1;
sbitk3=P3A2;
sbitk4=P3A3;
sbitlcden=P2A2;
sbitlcdrw=P2A1;
sbitlcdrs=P2A0;
voiddelay(uintz)
uintx,y;
for(x=z;
0;
x--)for(y=110;
y--);
voidwrite_com(ucharcom)
lcdrs=0;
P0=com;
delay(5);
lcden=1;
lcden=0;
lcdrs=1;
P0=date;
TMOD=0x01;
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
EA=1;
ET0=1;
TR0=1;
EX0=1;
IT0=1;
IP=0x05;
EX1=1;
IT1=1;
{flag3=0;
write_com(0x80+0x01);
delay(50);
15;
voiddisplay()
if(k1==0)
if(flag1==1)break;
if(flag3==0)//
if(flag1==1)break;
//控制返回
11;
num++)//显
示"
while(flag3==1)
num++)//显示
write_data(table2[num]);
13;
示"
write_data(table3[num]);
num++)//显示"
write_data(table4[num]);
num++)//显示"
num++)//显示"
flag3=0;
flag1=0;
//清标志位
//清屏
if(k2==0)
//if(flag1==1)break;
num++)//显示
write_com(0x80+0x10);
write_com(0x80+0x50);
if(flag3==0)
write_com(0x1c);
//整屏左移或右移
//清除标志位write_com(0x01);
//清屏}
voidtime0()interrupt1
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
display();
voidINT_0()interrupt0
EX0=0;
delay(20);
flag3=!
flag3;
七、实验问题解决及总结
voidINT_1()interrupt2{
EX1=0;
flag1=1;
实验中出现了运行垂直或水平效果时若按下暂停/继续按键再按返回按键后,再按垂直或水平按键不继续运行的情况。
主要原因是标志位设置及功能不明确造成,应在执行完效果程序后将暂停与返回的标志位都清零。
最好对每个按键设置一个标志位,容易控制。
将效果函数与标志位的处理放在主函数中,不涉及中断嵌套等问题。
通过本次实验,掌握了对LCD1602编程的方法,学会了运用标志位对程序进行更好的控制,并进一步培养了编程似的逻辑思维。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LCD1602 液晶显示 实验 报告 程序