LCD1602液晶蓝屏中高档.docx
- 文档编号:12590844
- 上传时间:2023-04-20
- 格式:DOCX
- 页数:13
- 大小:153.78KB
LCD1602液晶蓝屏中高档.docx
《LCD1602液晶蓝屏中高档.docx》由会员分享,可在线阅读,更多相关《LCD1602液晶蓝屏中高档.docx(13页珍藏版)》请在冰豆网上搜索。
LCD1602液晶蓝屏中高档
大学城小赛格:
首页>电子元件>显示类>LCD液晶>LCD1602液晶(蓝屏,中高档)
产品名称:
LCD1602液晶(蓝屏,中高档)
所属类别:
显示类>>>>LCD液晶
商品规格:
蓝屏,中高档
商品单位:
每个
评分星级:
有8位网友评论
这是一个单价,量大价格另议
LCD1602液晶(蓝屏,中高档)
LCD1602液晶显示模块基本技术:
1)、主要功能A、40通道点阵LCD驱动;B、可选择当作行驱动或列驱动;C、输入/输出信号:
输出,能产生20×2个LCD驱动波形;输入,接受控制器送出的串行数据和控制信号,偏压(V1∽V6);D、通过单片机控制将所测的频率信号读数显示出来2)、技术参数 极限参数表:
名称
符号
标 准 值
单位
MIN
TYPE
MAX
电路电源
VDD-VSS
-0.3
7.0
V
LCD驱动电压
VDD-VEE
VDD-13.5
VDD+0.3
V
输入电压
VIN
-0.3
VDD+0.3
V
静电电压
-
-
100
V
工作温度
-20
+70
℃
储存温度
-30
+80
℃
电参数表:
名称
符号
测试条件
标准值
单位
MIN
TYPE
MAX
输入高电平
VIH
-
2.2
VDD
V
输入低电平
VIL
-
-0.3
0.6
V
输出高电平
VOH
IOH=0.2mA
2.4
-
V
输出低电平
VOL
IOL=1.2mA
-
0.4
V
工作电流
IDD
VDD=5.0V
2.0
mA
液晶驱动电压
VDD-VEE
Ta=0℃
4.9
V
Ta=25℃
4.7
Ta=50℃
4.5
时序特性表:
项目
符号
测试条件
标准值
单位
MIN
TYPE
MAX
允许时间周期
TCYCE
5.1a5.1b
1000
ns
允许脉冲宽度,高电平
PWEH
450
--
--
ns
允许上升和下降时间
tErtEf
--
--
25
ns
地址建立时间
tAS
140
--
--
ns
数据延迟时间
tDDR
--
--
320
ns
数据建立时间
tDSW
195
--
--
ns
数据保持时间
tH
10
--
--
ns
DATAHOLDTIME
tDHR
20
--
--
ns
地址保持时间
tAH
10
--
--
ns
引脚引脚和指令功能
模块引脚功能表:
]
符号
名称
功能
1
Vss
接地
0V
2
VDD
电路电源
5V±10%
3
VEE
液晶驱动电压
保证VDD-VEE=4.5∽5V电压差
4
RS
寄存器选择信号
H:
数据寄存器L:
指令寄存器
5
R/W
读/写信号
H:
读 L:
写
6
E
片选信号
下降沿触发,锁存数据
7-14
DB0-DB7
数据线
数据传输
寄存器选择功能表:
RS
R/W
操 作
0
0
指令寄存器(IR)写入
0
1
忙标志和地址计数器读出
1
0
数据寄存器(DR)写入
1
1
数据寄存器读出
(注:
忙标志为"1"时,表明正在进行内部操作,此时不能输入指令或数据,要等内部操作结束,即忙标志为"0"时。
)
4.3)指令功能
格式:
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
共11种指令:
清除,返回,输入方式设置,显示开关,控制,移位,功能设置,CGRAM地址设
置,DDRAM地址设置,读忙标志,写数据到CG/DDRAM,读数据由CG/DDRAM。
显示位与DDRAM地址的对应关系:
显示位序号
1 2 3 4 5 ……………… 40
DDRAM
地址(HEX)
第一行
00 01 02 03 04 ..………….. 27
第二行
40 41 42 43 44 …………….. 67
6)、初始化方法
用户所编的显示程序,开始必须进行初始化,否则模块无法正常显示,下面介绍两种初始化方法;
6.1利用内部复位电路进行初始化
下面指令是在初始化过程中执行的。
1.清屏(DISPLAYCLEAR);
2.功能设置(FUNCTIONSET);
DL=1:
8Bit接口数据;
N=0:
1行显示;F=0:
5×7dot字形;
1.显示开/关控制(DISPLAYON/OFFCONTROL)
D=0:
显示关;C=0:
光标关;B=0:
消隐关
1.输入方式设置(ENTRYMODESET)
I/D=1:
(增量):
S=0:
无移位:
6.2)软件复位
如果电路电源不能满足复位电路的要求的话,那么初始化就要用软件来实现,过程如下:
八位接口初始化流程图
1602采用标准的16脚接口,其中:
第1脚:
VSS为地电源
第2脚:
VDD接5V正电源
第3脚:
V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度
第4脚:
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:
R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。
第6脚:
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:
D0~D7为8位双向数据线。
第15脚:
背光电源正极
第16脚:
背光电源负极
1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如表1所示,这些字符有:
阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。
以下是在液晶模块的第二行第一个字符的位置显示字母“A”的程序:
ORG0000H
RSEQUP3.7;确定具体硬件的连接方式
RWEQUP3.6;确定具体硬件的连接方式
EEQUP3.5;确定具体硬件的连接方式
MOVP1,#00000001B;清屏并光标复位
ACALLENABLE;调用写入命令子程序
MOVP1,#00111000B;设置显示模式:
8位2行5x7点阵
ACALLENABLE;调用写入命令子程序
MOVP1,#00001111B;显示器开、光标开、光标允许闪烁
ACALLENABLE;调用写入命令子程序
MOVP1,#00000110B;文字不动,光标自动右移
ACALLENABLE;调用写入命令子程序
MOVP1,#0C0H;写入显示起始地址(第二行第一个位置)
ACALLENABLE;调用写入命令子程序
MOVP1,#01000001B;字母A的代码
SETBRS;RS=1
CLRRW;RW=0;准备写入数据
CLRE;E=0;执行显示命令
ACALLDELAY;判断液晶模块是否忙?
SETBE;E=1;显示完成,程序停车
AJMP$
ENABLE:
CLRRS;写入控制命令的子程序
CLRRW
CLRE
ACALLDELAY
SETBE
RET
DELAY:
MOVP1,#0FFH;判断液晶显示器是否忙的子程序
CLRRS
SETBRW
CLRE
NOP
SETBE
JBP1.7,DELAY;如果P1.7为高电平表示忙就循环等待
RET
END
程序在开始时对液晶模块功能进行了初始化设置,约定了显示格式。
注意显示字符时光标是自动右移的,无需人工干预,每次输入指令都先调用判断液晶模块是否忙的子程序DELAY,然后输入显示位置的地址0C0H,最后输入要显示的字符A的代码41H。
SMC1602A(16*2)模拟口线接线方式
连接线图:
---------------------------------------------------
|LCM-----51 |LCM-----51 |LCM------51 |
------------------------------------------------|
|DB0-----P1.0|DB4-----P1.4|RW-------P2.0 |
|DB1-----P1.1|DB5-----P1.5|RS-------P2.1 |
|DB2-----P1.2|DB6-----P1.6|E--------P2.2 |
|DB3-----P1.3|DB7-----P1.7|VLCD接1K电阻到GND|
---------------------------------------------------
[注:
AT89S52使用12M晶振]
=============================================================*/
#defineLCM_RW P2_0//定义引脚
#defineLCM_RS P2_1
#defineLCM_E P2_2
#defineLCM_Data P1
#defineBusy 0x80//用于检测LCM状态字中的Busy标识
#include
voidWriteDataLCM(unsignedcharWDLCM);
voidWriteCommandLCM(unsignedcharWCLCM,BuysC);
unsignedcharReadDataLCM(void);
unsignedcharReadStatusLCM(void);
voidLCMInit(void);
voidDisplayOneChar(unsignedcharX,unsignedcharY,unsignedcharDData);
voidDisplayListChar(unsignedcharX,unsignedcharY,unsignedcharcode*DData);
voidDelay5Ms(void);
voidDelay400Ms(void);
unsignedcharcodeuctech[]={"uctech"};
unsignedcharcodenet[]={""};
voidmain(void)
{
Delay400Ms();//启动等待,等LCM讲入工作状态
LCMInit();//LCM初始化
Delay5Ms();//延时片刻(可不要)
DisplayListChar(0,5,uctech);
DisplayListChar(0,0,net);
ReadDataLCM();//测试用句无意义
while
(1);
}
//写数据
voidWriteDataLCM(unsignedcharWDLCM)
{
ReadStatusLCM();//检测忙
LCM_Data=WDLCM;
LCM_RS=1;
LCM_RW=0;
LCM_E=0;//若晶振速度太高可以在这后加小的延时
LCM_E=0;//延时
LCM_E=1;
}
//写指令
voidWriteCommandLCM(unsignedcharWCLCM,BuysC)//BuysC为0时忽略忙检测
{
if(BuysC)ReadStatusLCM();//根据需要检测忙
LCM_Data=WCLCM;
LCM_RS=0;
LCM_RW=0;
LCM_E=0;
LCM_E=0;
LCM_E=1;
}
//读数据
unsignedcharReadDataLCM(void)
{
LCM_RS=1;
LCM_RW=1;
LCM_E=0;
LCM_E=0;
LCM_E=1;
return(LCM_Data);
}
//读状态
unsignedcharReadStatusLCM(void)
{
LCM_Data=0xFF;
LCM_RS=0;
LCM_RW=1;
LCM_E=0;
LCM_E=0;
LCM_E=1;
while(LCM_Data&Busy);//检测忙信号
return(LCM_Data);
}
voidLCMInit(void)//LCM初始化
{
LCM_Data=0;
WriteCommandLCM(0x38,0);//三次显示模式设置,不检测忙信号
Delay5Ms();
WriteCommandLCM(0x38,0);
Delay5Ms();
WriteCommandLCM(0x38,0);
Delay5Ms();
WriteCommandLCM(0x38,1);//显示模式设置,开始要求每次检测忙信号
WriteCommandLCM(0x08,1);//关闭显示
WriteCommandLCM(0x01,1);//显示清屏
WriteCommandLCM(0x06,1);//显示光标移动设置
WriteCommandLCM(0x0C,1);//显示开及光标设置
}
//按指定位置显示一个字符
voidDisplayOneChar(unsignedcharX,unsignedcharY,unsignedcharDData)
{
Y&=0x1;
X&=0xF;//限制X不能大于15,Y不能大于1
if(Y)X|=0x40;//当要显示第二行时地址码+0x40;
X|=0x80;//算出指令码
WriteCommandLCM(X,0);//这里不检测忙信号,发送地址码
WriteDataLCM(DData);
}
//按指定位置显示一串字符
voidDisplayListChar(unsignedcharX,unsignedcharY,unsignedcharcode*DData)
{
unsignedcharListLength;
ListLength=0;
Y&=0x1;
X&=0xF;//限制X不能大于15,Y不能大于1
while(DData[ListLength]>0x20)//若到达字串尾则退出
{
if(X<=0xF)//X坐标应小于0xF
{
DisplayOneChar(X,Y,DData[ListLength]);//显示单个字符
ListLength++;
X++;
}
}
}
//5ms延时
voidDelay5Ms(void)
{
unsignedintTempCyc=5552;
while(TempCyc--);
}
//400ms延时
voidDelay400Ms(void)
{
unsignedcharTempCycA=5;
unsignedintTempCycB;
while(TempCycA--)
{
TempCycB=7269;
while(TempCycB--);
};
以上程序仅供参考!
!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LCD1602 液晶 蓝屏 中高档