1.简介

作为各类单片机实物设计的常用显示屏,LCD1602是一种专门用于显示字母、数字、符号等点阵式LCD,其1602是指LCD显示的内容为16X2,即可以显示两行,每行16个字符(1个汉字占用2个字符)。

2.硬件参数

(1) LCD1602主要技术参数
a.显示容量:16×2个字符
b.芯片工作电压:4.5—5.5V
c.工作电流:2.0mA(5.0V)
d.模块最佳工作电压:5.0V
e.字符尺寸:2.95×4.35(W×H)mm
(2) 引脚定义

LCD1602引脚主要有逻辑电源引脚VDD,VSS;背光带电源引脚BLA,BLK;数据引脚D0-D7、RS、R/W、EN;偏压信号引脚VL;其中:

  1. VL引脚:为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度;
  2. RS引脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器
  3. R/W引脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。
  4. EN引脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。

(3)电路图

其中可调电阻P用于调整显示器的对比度。电阻R作为限流电阻,防止过流烧坏显示屏背光灯。

3.控制程序

LCD1602显示屏控制程序简化下来,也相对简单,只需要实现写数据写指令初始化三个控制函数即可实现对LCD1602的控制。(写操作一般不用,这里就省略不说)
(1)写操作时序

要实现下面的写数据和写指令函数,都是以写操作时序来进行编程,实现有效的控制;其中,可以通过写时序和RS引脚的定义,写数据和写指令的区别在于RS引脚的电平;RS为高电平时,写数据;RS为低电平时,写指令。
(2)写数据函数

//写数据
void write_data(uchar date)
{LCDRS=1;P0=date;LCDdelay(5);LCDEN=1;LCDdelay(5);LCDEN=0;
}

(3)写指令函数

//写命令
void write_com(uchar com)
{LCDRS=0;P0=com;LCDdelay(5);LCDEN=1;LCDdelay(5);LCDEN=0;
}

(4)初始化函数
LCD1602初始化需要做以下设置:
a.设置写操作:R/W设为低电平;
b.屏幕设置模式:写指令38H;
c.打开显示,关闭光标:写指令0CH;
d.设置显示光标移动位置:写指令06H;
e.设置字符显示位置:写指令(字符显示的起始位置);

void Init1602()
{uchar i=0;
LCDRW = 0;write_com(0x38);//屏幕初始化write_com(0x0c);//打开显示 无光标 无光标闪烁write_com(0x06);//当读或写一个字符是指针后一一位write_com(0x01);//清屏write_com(0x80);//设置位置
}

注:由于对LCD1602进行控制时不需要实现读操作,所以R/W在初始化后恒为低电平(或者此引脚直接对地短路)。

4.显示字符

要在LCD1602上显示特定的字符,实际上就是对LCD1602的DDRAM上写入对应的数据,显示屏便显示你想要的字符。
(1)DDRAM地址映射图
从RAM可以看出来,是读的意思,地址与显示位置如下,每行40个地址,1602只用到前16个,共两行,对应关系如图:

根据写指令格式,由于地址为7位,在写入地址是,第8位恒为1,如图:

当我们想在指定位置写入内容时,要先指定地址,如在第一行第一位写入,地址位是00H,再加上DB7的1,即80H(0010000000),第二行第一位是40H,再加上DB7的1,即C0H(0011000000),依次类推。
比如要在第1行第3位写入“HELLO WOLRD”,即先写入地址,再写入数据:

write_com(0x40+0);  //第1行第3位
write_com(‘H’);
write_com(‘O’);
.....
write_com(‘D’);

如果是写在第2行第2位:

write_com(0x40+0x80+2);  //第2行第2位
//写数据与上面一样

(2)显示函数
为了程序的简洁与方便,我们将显示程序整合成一个显示函数:

void Display_1602(uchar x,uchar y,uchar *str)
{unsigned char addr;if (y == 0){addr = 0x00 + x; //第一行的x位置显示}else{addr = 0x40 + x; //第二行x的位置显示}write_com(addr + 0x80);while (*str != '\0'){write_data(*str++);}}

要实现上面显示就比较简单:
第1行第3位显示“HELLO WOLRD”:

Display_1602(3,1,”HELLO WOLRD”);

第2行第2位显示“HELLO WOLRD”:

Display_1602(2,2,”HELLO WOLRD”);

更多LCD1602设计资料及例程 请关注公众号,首页回复“1602”获取资料

详解LCD1602液晶显示屏的使用相关推荐

  1. 51单片机DS18B20温度传感器使用及数码管温度计、LCD1602温度显示代码详解

    温馨提示:读者若要彻底理解并会灵活使用DS18B20温度传感器,请详细阅读中文手册,并且对照代码注释充分分析代码.请不要觉得中文手册内容繁多!如能静心分析,定能深有体会,获益匪浅! 一.DS18B20 ...

  2. 【常用传感器】LCD1602液晶工作原理详解及例程代码

    本文带你详细的了解下LCD1602液晶的工作原理以及代码编写 LCD1602液晶显示屏 LCD1602主要参数 LCD发光原理 LCD屏幕的组成: LCD和OLED区别: LCD1602引脚接线: L ...

  3. LCD1602液晶 - 开发技术详解

    博主福利:100G+电子设计学习资源包! http://mp.weixin.qq.com/mp/homepage?__biz=MzU3OTczMzk5Mg==&hid=7&sn=ad5 ...

  4. LCD1602知识详解(很详尽的)

    1602液晶知识详解: 1.1602液晶基础 *VSS:电源地信号引脚: *VDD:电源信号引脚: *VEE:液晶对比度调节引脚,接0~5V以调节液晶的显示对比度: *RS:寄存器选择引脚: RS = ...

  5. STM32通过(软/硬IIC)控制LCD1602液晶显示屏(IIC转8位并口的PCF8574转接板的使用)原创

    STM32通过(软/硬IIC)控制LCD1602液晶显示屏(IIC转8位并口的PCF8574转接板的使用)原创 A0,A1,A2全部悬空,那么PCF8574的IIC地址为0x4e.(具体原因,看PCF ...

  6. LED,LCD,OLED,miniLED,MicroLED显示详解

    本文首先简单介绍简单的器件以及显示原理,基本的名词解释 LED,LCD,OLED,miniLED,MicroLED显示详解 1,LED 2,LCD 2,OLED 3,miniLED 4,MicroLE ...

  7. 【正点原子FPGA连载】 第三章 硬件资源详解 摘自【正点原子】DFZU2EG/4EV MPSoC 之FPGA开发指南V1.0

    1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=692450874670 3)全套实验源码+手册+视频下载地址: h ...

  8. 51单片机步进电机角度控制详解(免费提供代码+仿真)

    51单片机步进电机控制详解 目录 51单片机步进电机控制详解 一.步进电机基本介绍 1. 步进电机结构 2. 步进电机驱动 二.硬件&仿真设计 0.设计要求 1. 硬件设计 显示模块 输入模块 ...

  9. STM32L475 SPI驱动LCD ST7789V2详解

    概述 最近在学习正点原子潘多拉开发板,在此结合原子哥的代码, 对SPI驱动LCD做一个详细介绍. TFTLCD 和 SPI TFTLCD介绍 TFT-LCD 即薄膜晶体管液晶显示器.其英文全称为:Th ...

  10. 51单片机实训项目之“万年历”代码原理详解

    一.原理图 二.芯片器件 STC89C52 DS18B20(温度传感器) DS1302(时钟芯片) LCD1602液晶显示 独立按键 杜邦线 三.仿真图 四.程序代码详解 (一).子程序 EEPROM ...

最新文章

  1. 打造完美的JS树形菜单
  2. 科创板允许红筹企业上市 条件成熟后BAT可速回归
  3. Y2K Accounting Bug(poj2586)
  4. Vczh Library++ 语法分析器开发指南
  5. Spring Boot Initilizr - 使用IDE或IDE插件
  6. 两个线程同时从服务器接收消息_Linux高性能服务器处理框架
  7. 顺序容器(1):vector
  8. 浏览器异步加载和同源策略
  9. 一个简单的Python自动投票
  10. 用vim解压各种格式
  11. 每日案例(第五期):智慧金融11-12 | 知识图谱实践案例集(速读版)
  12. 传感器与检测课程设计--矿石计数器
  13. 微信小程序与HTML5的标签差异梳理
  14. Python库中,如何使用jieba模块来实现古典名著《西游记》的分词
  15. android 手电筒开关,Android 系统开关,wifi、手电筒等的开关
  16. 三星I9220刷机包 新蜂ROM V4.1 高级设置 全透明天气插件
  17. 2014Esri中国用户大会亮点系列之——典型案例与应用阐释新一代WebGIS
  18. Linux 搭建 XXL-JOB (调度中心、注册中心)
  19. 中国十大调查研究咨询公司排名数据信息情况
  20. 在ROS中配置路由器的动态域名?

热门文章

  1. linux学习笔记-切换目录
  2. SQL中的日期差函数
  3. MySQL安装配置(可视化安装界面),可视化工具安装,连接IDEA,JDBC安装配置,在IDEA中书写第一个MySQL程序,超简单教程(超详细)。
  4. PE启动盘安装操作系统
  5. win10需要开启系统打印机服务器,Win10系统开启和关闭打印机服务技巧
  6. 同时处理知网、万方、维普数据库——CiteSpace、Ucinet、Vosviewer等
  7. java学生宿舍管理系统,来了就点个赞再走呗,即将毕业的兄弟有福了
  8. 软件测试思维导图大全
  9. 应用推荐:Fluent Reader
  10. python获取淘宝服务器时间_分享淘宝时间服务器同步时间接口api和苏宁时间服务器接口api...