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

2023-11-04

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

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

#include <reg51.h>
#include <string.h>
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<n;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<strlen(info_1);i++)
    {
        LCD1602_WriteDATA(info_1[i]); //    写入字符
    }

    LCD1602_WriteCMD(0xC0); //  选择第二行首地址
    for(i=0;i<strlen(info_2);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”。
这里写图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LCD1602芯片的使用——简单易懂 的相关文章

  • 电巢独家直播|第七届世界无人机大会圆满落幕!

    当前 全球化秩序正进入新的调整阶段 数字化技术与生产生活深度融合 将加速推动数字化经济的全面渗透 中国经济也正由高速增长向高质量发展转变 这为无人机行业创造了更多的战略机遇 根据深圳市无人机行业协会统计 2022年 全国1 2万多家无人机企
  • FPGA内部结构及时序分析

    FPGA时序分析 FPGA内部基本结构 查找表概述 数据传输路径 时序分析模型 知识补充 注 本文内容来源于B站UP主小梅哥爱漂流的视屏内容 本人整理出来前三节课的视频笔记 对视频内容感兴趣的同学可以去看看小梅哥的视频 视频链接为https
  • verilog/systemverilog的随机数生成问题

    Verilog SystemVerilog 里面的随机函数 Verilog系统自带一些随机数发生函数 最常用的有random 语法如下 random seed 指定概率分布 如果希望生成的随机数具有一定的概率分布 还有一些系统函数可以选用
  • 技术前言 - 芯片制造工序详解

    制造工序 芯片简介 工序简介 硅片制造 生产流程 行业壁垒 IC设计 设计流程 行业壁垒 芯片制造 封装测试 制造流程 封装测试 行业壁垒 九大核心设备 参考文档 芯片简介 种类 1 按照性质 数字 模拟芯片 2 按照用途 计算机 家电 手
  • 51单片机播放音乐(二):DA转换播放任意波形

    51单片机播放音乐 二 DA转换播放任意波形 原理 DA转换器 仿真电路图 音频文件转成C语言数组代码 单片机代码 仿真输出波形 本文完整源码 用数字信号带动蜂鸣器同一时间只能发出一种频率的声音 也没有和弦 会比较难听 而我们听到的音乐可以
  • 华为2019数字芯片岗笔试解析二(多选部分)

    首发来自微信公众号 数字芯片设计 1 异步设计的特点是 A 没有时钟skew问题 B 可移植性高 C 低电源消耗 D 设计可靠性高 解析 同步电路设计利用时钟脉冲使其子系统同步运作 而异步电路设计不使用时钟脉冲做同步 其子系统是使用特殊的
  • CPU是如何工作的

    晶体管到门电路 二极管的工作 相信大家都知道二极管的工作特性 那如何使用二极管去构建一个门电路呢 二极管的与门 上拉电阻 只有AB同时为高电平 输出为高电平 二极管的或门 下拉电阻 只要AB任一一个为高电平 输出为高电平 MOS管的工作 在
  • 你知道每片晶圆能卖多少钱吗?-道合顺大数据infinigo

    你知道 卖一颗芯片究竟能赚多少钱吗 根据市场调研机构IC Insights发布的最新数据显示 在7nm工艺需求强劲 以及5nm工艺量产的推动下 2020年台积电每片晶圆营收达到1634美元 约合人民币10568元 单颗芯片营收居全球半导体产
  • 学位真的那么重要吗?上交大博士亲述科研心路,获4万高赞,网友:这是知乎最好的回答...

    点击 凹凸域 马上关注 更多内容 请置顶或星标 学位真的那么重要吗 上交大博士亲述科研心路 获4万高赞 网友 这是知乎最好的回答 十三 转载整理自 时间规划局 量子位 报道 都说读博就像一场赌博 一入红门深似海 从此半点不由人 还时不时曝出
  • stm32cubeide驱动LCD1602显示屏

    STM32驱动LCD1602 硬件连接关系 STM32CUBEIDE设置 代码 项目设置 最后运行 硬件连接关系 LCD1602 STM32 VCC VCC GND GND VO VCC 滑动变阻 RS PB1 RW PB2 BOOT1 E
  • 【总结】NPU/CPU/GPU 傻傻分不清?

    本文主要解答以下问题 NPU是新玩意儿吗 芯片里面的CPU GPU NPU究竟是什么 它们是怎么工作的 引言 中国首款嵌入式NPU诞生 6月20日 中星微 数字多媒体芯片技术 国家重点实验室在京宣布 中国首款嵌入式NPU 神经网络处理器 芯
  • SPI Flash芯片W25Q32英文版数据手册解读(一)---------引脚功能,工作模式

    W25Q32芯片是一个可以通过SPI 串行外围设备接口 操作的flash存储器 这篇文章备忘和总结一下英文版数据手册的一些解读 有关时序及具体用STC单片机编写程序的内容等下一篇文章 一 芯片引脚功能 我买的是8引脚 SOIC封装的芯片 如
  • 《每日一题》NO.41:FPGA内部资源有哪些?

    芯司机 每日一题 会每天更新一道IC面试笔试题 其中有些题目已经被很多企业参考采用了哦 聪明的你快来挑战一下吧 今天是第41题 FPGA设计工程师也是一个比较热门的职位 FPGA中都包括哪些资源呢 今天的题就是这样啦 开始解题吧 公布答案
  • 【如何快速学会verilog开发】

    什么是verilog编程 首先verilog是一门编程语言 verilog的主要应用场景是数字前端开发 也即是通常所说的RTL开发 verilog作为一种编程语言 是数字前段开发的必备工具 同时区别于面对对象语言 如C 等 函数式语言 py
  • 一枚芯片的成本是多少?(2)芯片硬件成本

    芯片硬件成本 计算封装和测试的成本这个没有具体的公式 只是测试的价格大致和针脚数的二次方成正比 封装的成本大致和针脚乘功耗的三次方成正比 如果CPU X采用40nm低功耗工艺的自主芯片 其测试成本约为2美元 封装成本约为6美元 因40nm低
  • c语言中+ =和=+有什么区别

    点击上方蓝字关注我 了解更多咨询 c语言中 和 有什么区别 区别在于 是简写 a 1就是a a 1 并不是简写 a a直接对a的赋值 符号代表的是正负 完全可以省略不写 即a b其实就是a b 在用C 编程时 我经常混淆 和 前者实际上是我
  • 谈谈修改寄存器默认值的几种方法和实现

    一 DFF的类型介绍 寄存器默认值 也叫复位值 是当reset或者set有效时寄存器输出的值 对于一个DFF来说 如下图 当reset为0时 Q输出0 当set为0时 Q输出为1 外部使用时保证reset与set不同时为0 图一 也就是说
  • AMD yes!拿下Meta后发布新芯片,FP64性能是A100 4.9倍,面向高性能计算和机器学习...

    明敏 发自 凹非寺量子位 报道 公众号 QbitAI AMD造势已久 面向高性能计算的MI200 终于来了 在拿下元宇宙大客户Meta后 AMD乘势而上官宣一系列新芯片 其中就包括这张不断有消息曝出的计算加速卡 它采用6nm工艺 拥有580
  • MCDF实验——Lab0

    MCDF实验 一 MCDF功能描述 二 设计结构 三 接口描述 1 系统信号接口 2 通道从端接口 3 整形器接口 4 控制寄存器接口 四 接口时序 1 通道从端接口时序 2 整形器接口时序 3 控制寄存器接口时序 五 寄存器描述 1 地址
  • 应用在多媒体触摸屏设备中的触摸感应芯片

    多媒体触摸屏设备是触摸液晶显示器结合现代PC机组成的具有触摸显示和计算机操作功能为一体的产品 它包括两个部分 一个是触摸液晶显示器 它具有触控的特性和显示输出的功能 另一个是PC机 也就是所说的计算机 通过两个部分整合到一起 实现了具有触摸

随机推荐