LCD1602介绍

LCD1602(Liquid Crystal Display)液晶显示屏是一种字符型液晶显示模块,可以显示ASCII码的标准字符和其它的一些内置特殊字符,还可以有8个自定义字符
显示容量:16×2个字符,每个字符为5*7点阵

LCD1602背面的两个黑色的块是芯片,是自带扫描功能的,只需将字符传给LCD1602,芯片便会自己扫描显示

引脚及说明

引脚 功能
VSS
VDD 电源正极(4.5~5.5V)
VO 对比度调节电压
RS 数据/指令选择,1为数据,0为指令
RW 读/写选择,1为读,0为写
E 使能,1为数据有效,下降沿执行命令
D0~D7 数据输入/输出
A 背光灯电源正极
K 背光灯电源负极

开发板原理图上的LCD1602模块

可以看到,8位的数据都接到了单片机的P0口,控制位EN、RS、WR分别接到了P2.7、P2.6、P2.5口,后续编写代码时,初始化这几个引脚即可

逻辑框图

编写代码往DDRAM中写入指令或者数据,写入指令则设置LCD显示的相关参数,写入数据,比如想显示一个字符A,则LCD1602会根据字符A的ASCII码值去本身自带的字模库中找对应的字符,并将其显示在屏幕上

注意:数据显示区有40 * 2 = 80个区,但屏幕才只有16 * 2 = 32个显示区,超过屏幕的数据显示区部分可以通过移位或者写入滚动指令来进行显示

存储器结构

后续编写代码就是往这个数据显示区写入指令或者数据

要显示某个字符,例如A,将A上面的4位地址放到左边地址的高4位中,就组成了一个8位的地址,写入对应的十六进制就可以显示该字符

这字模库的字符位置是与ASCII码表一致的,所以可以参照ASCII码表的十六进制来显示不同的字符

时序结构

写操作时序图

根据时序图,可以写出LCD写入一个字节的函数

/*** @brief LCD1602写数据* @param 要写入的数据* @retval无*/
void LCD_WriteData(unsigned char Data)
{LCD_RS = 1;       //就这里与写指令的不同,写数据时RS是置1LCD_WR = 0;LCD_DATAPORT = Data;LCD_EN = 1;      //EN使能,表示数据有效,将数据发送到LCD的显示芯片中Delay1ms(100);LCD_EN = 0;Delay1ms(100);
}

读操作时序图

读取LCD的数据比较少用,并且这次实验也没有用到

LCD1602指令集

往LCD中写入这些指令则可以设置相关功能

检测忙信号

数据手册中在LCD初始化说明处指出每次读/写数据操作都要检测忙信息,所以上图指令9就是根据读BF的值判断是否处于忙状态,这就要去读LCD的值,用到了读数据时序,根据读时序编写一个检测忙的函数

(实验现象说明不用检测忙信号也可以正常显示字符,但按照手册来检测会比较严谨)

/*** @brief LCD1602检测忙信号,使用到读时序* @param 无* @retval无*/
void Check_Busy()
{unsigned char temp = 0x80;LCD_DATAPORT = 0x80;/*变量初始化时让其处于忙状态,进入while循环,如果一直忙,则BF位一直为1,while成死循环,如果BF=0,则不忙,退出while循环,执行后续程序*/while(temp & 0x80)    //0x1000 0000   检测BF位{LCD_RS = 0;      //根据指令9,RS = 0LCD_WR = 1;      //根据指令9,RW = 1LCD_EN = 0;Delay1ms(10);LCD_EN = 1;Delay1ms(10);temp = LCD_DATAPORT;       //根据读数据时序图,在EN为高电平时读取数据LCD_EN = 0;Delay1ms(10);}
}

LCD1602操作流程

初始化:

初始化要写的参数在手册上已经给出了,只要按照手册来即可

​ 发送指令0x38 //八位数据接口,两行显示,5*7点阵
​ 发送指令0x0C //显示开,光标关,闪烁关
​ 发送指令0x06 //数据读写操作后,光标自动加一,画面不动
​ 发送指令0x01 //清屏

显示字符:

​ 发送指令0x80|AC //设置光标位置,是指令集中DDRAM的地址设置,最高位置1才是进行DDRAM地址设置,剩下的位写要写入数 据的地址
​ 发送数据 //发送要显示的字符数据
​ 发送数据 //发送要显示的字符数据

编写代码显示字符、字符串、十进制、十六进制、二进制可看这篇文章:https://blog.csdn.net/weixin_46251230/article/details/125116531

LCD1602液晶显示屏使用方法相关推荐

  1. 和12岁小同志搞创客开发:如何驱动LCD1602液晶显示屏?

     目录 1.简介和驱动原理 2.实践 机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧. 项目专栏:https://blog.csdn.net/m0_38106923/cate ...

  2. 外设驱动库开发笔记33:LCD1602液晶显示屏驱动

      LCD1602是一种工业字符型液晶,能够同时显示16x02即32个字符.LCD1602液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,即可以显示出图形.在这一章我们就来讨论LCD ...

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

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

  4. 51单片机用c语言在液晶1602上显示汉字,lcd1602与单片机连接图,基于51单片机的lcd1602液晶显示屏连接电路图...

    描述 LCD1602是一种工业字符型液晶,能够同时显示16x02即32个字符.LCD1602液晶显示原理 LCD1602液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示, ...

  5. STC89C52单片机 LCD1602液晶显示屏

    LCD1602显示 VVcat #include <reg52.h>typedef unsigned char uchar; typedef unsigned int uint;sbit ...

  6. 51单片机——LCD1602液晶显示屏

    如下图:红框就是LCD1602液晶显示屏,他是可插拔的,插上去后数码管就会乱码无效了,因为他两共用了MCU的8个P0口 LCD1602原理图 从上面两幅图可以看出来 LCD1602的LCD_D0~LC ...

  7. LCD1602液晶显示屏模块资料

    模块实例https://blog.csdn.net/qq_38393591/article/details/108643827 LCD1602是一种工业字符型液晶,能够同时显示16x02即32个字符. ...

  8. LCD1602液晶显示屏的工作原理图是什么呢?

    本文重点是由深圳市兴宇合电子技术人员为大家介绍LCD1602液晶显示屏的工作原理以及原理图,希望对大家有所帮助. (1)LCD1602液晶显示屏工作原理如下: LCD1602液晶显示屏通过电压来改变填 ...

  9. LCD1602液晶显示屏用51单片机怎么驱动?(详细笔记附设计源码)

    LCD1602液晶显示 (一)LCD1602简介 1602液晶也叫1602字符型液晶,它是一种专门用来显示字母.数字.符号的点阵型液晶模块.它是由若干个5x7或者5x10的点阵字符位组成,每个点阵字符 ...

最新文章

  1. 2012-4-2 通过MdiParent设置窗体最前
  2. Golang + vscode 开发环境配置
  3. 如何判断浏览器的请求头是不是结束
  4. python有趣的工具_python好玩的小工具(正在create中)
  5. Linux下程序的保护机制(checksec)
  6. 备份关键信息linux
  7. scala学习-scala中的元组Tuple概念
  8. python用一行代码编写一个回声程序_Python源码分析2 - 一个简单的Python程序的执行...
  9. 21 年前濒临倒闭的苹果是如何做到今天万亿市值的?
  10. java读取合并单元格_Java POI常用方法,读取单元格的值,设置单元格格式,合并单元格,获取已合并的单元格,导出至本地等...
  11. Bailian4004 数字组合【递归+DP】
  12. css就近原则_CSS 三大特性
  13. k8s架构以及相关概念普及
  14. JavaSE基础-01-对象
  15. Atitit 互联网行业如何提升收入 经济学概论读后感 attilax总结 1. 收入“四 位一体”的理论(工资、利润、利息、地租) 1 2. 提升收入,就要提升这4个象限的收入 1 3. 如
  16. node创建项目步骤
  17. android工程如何创建数据库,安卓项目-利用Sqlite数据库,开发新闻发布系统
  18. 乔春洋:品牌文化的三大内涵
  19. 短信验证码测试——短信轰炸之横向轰炸和纵向轰炸
  20. 计算机网络知识点整理---应用层(六)

热门文章

  1. np.power与np.linalg.inv
  2. 赚钱很难吗?死磕一个项目,10年,必定成神
  3. 支付宝小程序分享转发
  4. 【Data Analysis 01】Airbnb_new_user_booking_DataExploration(爱彼迎新用户订房数据探索)
  5. LeetCode/LintCode 题解丨一周爆刷分治法:合并两棵二叉树
  6. 猿创征文|云原生|kubernetes学习之多账户管理--权限精细化分配放啊(两种方式-sa和用户)
  7. x82y 阿里滑块 解决方法!
  8. Sketch(三)——插件
  9. Oracle--ORA-01775: 同义词的循环链
  10. 2021年——1024程序员节