LCD1602芯片的使用——简单易懂

发布者:SereneHarmony最新更新时间:2019-05-14 来源: eefocus关键字:LCD1602  芯片  使用 手机看文章 扫描二维码
随时随地手机看文章

题目: 

想在LCD1602上显示两行如下字样 

++++++++++++++++++++ 

+ huaianxinxi + 

+ wantin + 

++++++++++++++++++++ 

想完成上面的显示必须掌握LCD1602芯片的基本知识,将在程序下面附上LCD1602芯片的基本知识,供大家参考,我实现的比较简单,没有什么花哨的显示,大家首先要学会操作该硬件,其他的功能完全可以根据其功能说明进行逐项实现。 

代码如下:


/* 想在LCD1602上显示两行如下字样

    ++++++++++++++++++++

    + huaianxinxi      +

    +   wantin         +

    ++++++++++++++++++++

 */


#include

#include

sbit RS=P2^0;

sbit RW=P2^1;

sbit EN=P2^2;


unsigned char info_1[]=" huaianxinxi";  // LCD1602第一行所要显示的信息

unsigned char info_2[]="   wantin";     // LCD1602第二行所要显示的信息

/* 延时 */

void delay(int n)

{

    int i,j;

    for(i=0;i    {

        for(j=0;j<200;j++);

    } 

}


/* LCD1602写操作指令  根据时序图实现代码 */

void LCD1602_WriteCMD(unsigned char cmd)

{

    P0=cmd;   //    指令数据传到P0口待发送给LCD1602

    RS=0;     //    指令

    RW=0;     //    写

    EN=1;     //    LCD1602使能口

    EN=0;     //    产生下降沿

    delay(10);  //  延时,等待数据传输完成

}

/* LCD1602写数据   根据时序图实现代码 */

void LCD1602_WriteDATA(unsigned char Data)

{

    P0=Data;

    RS=1;

    RW=0;

    EN=1;

    EN=0;   

    delay(10);

}


/* LCD1602显示屏初始化 */

void LCD1602_Initi()

{

    LCD1602_WriteCMD(0x38); //  置功能,4位总线,双行显示,显示5X7的点阵字符

    LCD1602_WriteCMD(0x0F); //  显示开关控制,开显示, 有光标,闪烁

    LCD1602_WriteCMD(0x06); //  光标和显示位置设置,  光标移动方向右移,屏幕上所有文字不动

    LCD1602_WriteCMD(0x01); //  清显示,指令码01H,光标复位到地址00H位置

}



void main()

{

    int i;

    LCD1602_Initi();

    LCD1602_WriteCMD(0x80); //  选择第一行首地址

    for(i=0;i    {

        LCD1602_WriteDATA(info_1[i]); //    写入字符

    }


    LCD1602_WriteCMD(0xC0); //  选择第二行首地址

    for(i=0;i    {

        LCD1602_WriteDATA(info_2[i]);  //   写入字符

    }

    while(1);

}


结果如下: 

这里写图片描述

基本知识如下:


LCD1602资料 

一:液晶显示器各种图形的显示原理 

线段的显示:点阵图形式液晶由M×N个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共16×8=128个点组成,屏上64×16个显示单元与显示RAM区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。例如屏的第一行的亮暗由RAM区的000H——00FH的16字节的内容决定,当(000H)=FFH时,则屏幕的左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时,则屏幕的右下角显示一条短亮线;当(000H)=FFH,(001H)=00H,(002H)=00H,……(00EH)=00H,(00FH)=00H时,则在屏幕的顶部显示一条由8段亮线和8条暗线组成的虚线。这就是LCD显示的基本原理。 

字符的显示:用LCD显示一个字符时比较复杂,因为一个字符由6×8或8×8点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM区的8字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮。这样一来就组成某个字符。但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。 

汉字的显示:汉字的显示一般采用图形的方式,事先从微机中提取要显示的汉字的点阵码(一般用字模提取软件),每个汉字占32B,分左右两半,各占16B,左边为1、3、5……右边为2、4、6……根据在LCD上开始显示的行列号及每行的列数可找出显示RAM对应的地址,设立光标,送上要显示的汉字的第一字节,光标位置加1,送第二个字节,换行按列对齐,送第三个字节……直到32B显示完就可以LCD上得到一个完整汉字 

二:1602字符型LCD简介 

1.字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。下面以长沙太阳人电子有限公司的1602字符型液晶显示器为例,介绍其用法。一般1602字符型液晶显示器实物如图 

 

这里写图片描述 
这里写图片描述

2.1602LCD的基本参数及引脚功能 

1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如下图 

 这里写图片描述 

3.LCD1602主要技术参数: 

显示容量:16×2个字符 

芯片工作电压:4.5—5.5V 

工作电流:2.0mA(5.0V) 

模块最佳工作电压:5.0V 

字符尺寸:2.95×4.35(W×H)mm 

4.引脚功能说明 

1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表 

 这里写图片描述 

第1脚:VSS为地电源。 

第2脚:VDD接5V正电源。 

第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。 

第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。 

第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。 

第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。 

第7~14脚:D0~D7为8位双向数据线。 

第15脚:背光源正极。 

第16脚:背光源负极。 

5.其与单片机的连接如下图所示 

 这里写图片描述 

6.1602液晶模块内部的控制器共有11条控制指令,如下表所示 

 这里写图片描述 

1602液晶模块的读写操作,屏幕和光标的操作都是通过指令编程来实现的。(说明1为高电平,0为低电平) 

指令1:清显示,指令码01H,光标复位到地址00H位置 

指令2:光标复位,光标返回到地址00H 

指令3:光标和显示位置设置I/D,光标移动方向,高电平右移,低电平左移,S:屏幕上所有文字是否左移或右移,高电平表示有效,低电平表示无效。 

指令4:显示开关控制。D:控制整体的显示开与关,高电平表示开显示,低电平表示关显示。C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。 

指令5:光标或显示移位 S/C :高电平时显示移动的文字,低电平时移动光标 

指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时为双行显示,F:低电平时显示5X7的点阵字符,高电平时显示5X10的显示字符。 

指令7:字符发生器RAM地址设置。 

指令8:DDRAM地址设置。 

指令9:读忙信号和光标地址 BF:忙标志位,高电平表示忙,此时模块不能接收命令或数据,如果为低电平表示不忙。 

与HD44780相兼容的芯片时序表如下: 

 这里写图片描述 

读写操作时序如图所示 

这里写图片描述 
这里写图片描述

7.1602LCD的RAM地址映射及标准字库表 

液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在,哪里显示字符,图是1602的内部显示地址。 

 这里写图片描述 

图五:LCD1602内部显示地址 

例如第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是01000000B(40H)+10000000B(80H)=11000000B(C0H)。 

在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。每次输入指令前都要判断液晶模块是否处于忙的状态。 

1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如图10-58所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。 

这里写图片描述

关键字:LCD1602  芯片  使用 引用地址:LCD1602芯片的使用——简单易懂

上一篇:红外通信模块、NEC红外收发模块(1)——红外模块调试
下一篇:51单片机完成时钟形式显示

推荐阅读最新更新时间:2024-11-12 11:31

增加使用时间?东莞新能源最新电池模组黑科技解密
作为国内顶尖的高新科技企业,东莞新能源在锂离子电池领域投入了大量资金与人力进行研发,其技术水平和销量在全国范围内占据领先地位,在消费电子、电动汽车、储能系统等领域具有广阔的市场前景。 随着电动交通工具的普及,电池的使用寿命也直接关系到交通系统的安全与稳定。而现有电池的寿命往往不够长,容量会随着充电次数的增加而急剧下降,如广泛使用的软包锂电池在充放电过程中,由于负极材料的嵌锂行为导致电芯膨胀或者电芯极片变形,电芯的厚度变厚,电池容量迅速衰减,导致整个电池的循环寿命缩短。为解决这一问题,通常在电芯之间预留间隙,但是这种结构又会导致电池模组整体结构松弛,也会缩短电芯使用寿命。 为此,东莞新能源于2019年9月29日申请了一项名为“电池模
[手机便携]
增加<font color='red'>使用</font>时间?东莞新能源最新电池模组黑科技解密
华为的芯片技术正在与苹果缩小差距
一项独立分析显示,中国顶级电信设备制造商华为正在缩小与苹果在开发全球最先进智能手机芯片方面的差距,华为的芯片与美国科技巨头的标志性产品iPhone所使用的芯片不相上下。 随着第五代无线网络时代的开始,华为Mate 20 Pro和苹果iPhone XS这两款高端4G智能手机的式微表明,华为的主芯片结合了处理器和调制解调器,与苹果设计的芯片等同。 有证据表明,在5G芯片技术方面,华为有能力与全球移动芯片领军企业高通匹敌。高通的芯片对苹果的5G iPhone计划至关重要。华为上周吹嘘可以向苹果供应5G芯片。苹果最近解决了与高通之间的旷日持久的专利纠纷。 据东京拆机专家TechanaLye分析,华为和苹果设计的芯片都显示
[嵌入式]
华为的<font color='red'>芯片</font>技术正在与苹果缩小差距
让你读懂DSP芯片的内“芯”世界
    让你说出知道的芯片的名称,你可能会一时想不起,也不能一一罗列DSP芯片都有哪些。或许是对DSP芯片深刻的了解才了然于心,由于种种原因的忘却;或许是因为大家在说DSP芯片好,既然大家都说好,那才是真的好,至于怎样好,可能是似懂非懂。那好吧,不管是懂还是不懂,现在让我们从新的视角来读懂这个芯片的世界,让你发现不曾明白的细节。      DSP芯片,也称数字信号处理器,采用特殊的软硬件结构,是一种专注于进行数字信号处理运算的微处理器,其主要应用是实时快速地实现各种数字信号处理,是数字信号处理理论实用化过程的重要技术工具。在语音处理、图像处理等技术领域得到了广泛的应用。那根据对DSP芯片的理解来对比与其他芯片的最要的区别是什么
[安防电子]
使用J-Link ARM烧录FLASH
//===================================================================== //TITLE: // 使用J-Link ARM烧录FLASH //AUTHOR: // norains //DATE: // February 21-September-2010 //Environment: // J-Link ARM //===================================================================== 如果大家使用的是MDK开发环境的话,并且选择调试的工具是J-Link,那么当我们点击deb
[单片机]
<font color='red'>使用</font>J-Link ARM烧录FLASH
ST多重卫星定位芯片支持中国北斗卫星定位系统
中国,2014年4月11日 ——横跨多重电子应用领域、全球领先的半导体供应商意法半导体(STMicroelectronics,简称ST;纽约证券交易所代码:STM)推出Teseo III独立式定位单芯片。新产品系列能够接收多个卫星导航系统发射的信号,其中包括中国北斗、美国GPS、欧洲Galileo、俄罗斯GLONASS和日本的QZSS。 新Teseo III产品系列传承了意法半导体Teseo II单晶片卫星追踪IC业界领先的产品性能,将定位准确度提升至一个新的水平。新一代产品充分利用意法半导体在汽车航位推测法(Dead Reckoning)和全球导航卫星系统定位(GNSS,Global Navigation Sat
[汽车电子]
stm32使用中,printf函数不执行的问题
一、程序中已经添加了printf的库函数 #include“stdio.h” 二、stm32串口通讯测试没问题,此处可以通过调用 USART_SendData(USART1, 0xAA)函数来进行验证; 三、现象。printf函数无法工作 四、解决办法,使用自带的迷你库,就可以正常运行。
[单片机]
stm32<font color='red'>使用</font>中,printf函数不执行的问题
STM32使用J-Link下载出错解决方法
好久没玩stm32了,最近有个项目刚好要用到stm32,可是在编译正确后,始终下载不了,一会出现这个错误,一会出现这个错误。现把我遇到的几个错误及解决方法记录如下。 1.ERROR:Flash Download failed - Cortex-M3 2.Overlapping of Algorithms at Address ** 3.Flash Timeout,Reset the Target and try again. 这几个错误都被我一次性遇到了(!汗)。解决无非就是注意几点(我用的是MDK V5.16a)。截图留存。 首先是检查Device选对没有,必须和你的Target Board一致。
[单片机]
STM32<font color='red'>使用</font>J-Link下载出错解决方法
卡尔曼滤波在单片机上的使用
#ifndef _KALMAN_H_ #define _KALMAN_H_ extern KalmanGain;// 卡尔曼增益 extern EstimateCovariance;//估计协方差 extern MeasureCovariance;//测量协方差 extern EstimateValue;//估计值 extern void KalmanFilterInit(void); extern KalmanFilter( Measure); #endif #include config.h #include math.h KalmanGain;// 卡尔曼增益 Estimat
[单片机]
卡尔曼滤波在单片机上的<font color='red'>使用</font>
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved