【无标题】lcd1602模块介绍及编写使用程序

这篇具有很好参考价值的文章主要介绍了【无标题】lcd1602模块介绍及编写使用程序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

Lcd1602 液晶,从它的名字我们就可以看出它的显示容量,显示2行,每行16个字符的液晶,
对于单片机的学习最主要还是要学会查看产品数据手册,即使相同的功能模块也会由于不同的生产厂家不同而有所差异,下面结合数据手册对Lcd1602内容进行一个分享


一、Lcd1602模块功能引脚介绍

Lcd1602 液晶一共 16 个引脚,每个引脚的功能,都可以在它的数据手册上获得,在进行程序编写之前得弄明白

  1. 引脚1,2,15,16这里就不做介绍了,只需要按照他的数据手册引脚说明对应接入电路就OK
  2. 引脚3液晶显示偏压信号,可以看见液晶显示时是通过增强对比,观察小黑点得到显示的内容。引脚3外部接下拉电阻来确定显示的黑点和不显示的之间的对比度
    (下拉电阻并不一定是个固定阻值,可以是个滑动变阻器,改变3引脚的电压,显示不同的对比度)
  3. 引脚4数据命令选择端,高电平(High)为数据选择端,低电平(Low)为命令选择端
  4. 引脚5读写选择端,高电平(High)读取液晶内部的数据或状态,低电平(Low)写入数据或者命令
  5. 引脚6使能信号,结合时序图会更好的理解使能信号如何使用
  6. 引脚7~14普通I/O口,通过这 8 个引脚读写数据和命令
    【无标题】lcd1602模块介绍及编写使用程序

二、程序编写,时序图分析

1.Lcd1602初始化

【无标题】lcd1602模块介绍及编写使用程序

【无标题】lcd1602模块介绍及编写使用程序
【无标题】lcd1602模块介绍及编写使用程序

代码如下(示例):

void LcdInit1602()
{
	LcdWriteCmd(0x38);        // 16*2显示,5*7点阵,8位数据口
	LcdWriteCmd(0x08);		  //关闭显示
	LcdWriteCmd(0x0C);        // 开显示,不显示光标
	LcdWriteCmd(0x06);        // 地址加1,当写入数据后光标右移
	LcdWriteCmd(0x01);        // 清屏
}

2.基本时序程序编写

读操作时序
【无标题】lcd1602模块介绍及编写使用程序
写操作时序
【无标题】lcd1602模块介绍及编写使用程序

(1)读状态:RS=L,WR=H,E=H,P0=状态
【无标题】lcd1602模块介绍及编写使用程序
bit7busy()主函数部分,do…while()判断是否忙位

    Lcd1602_DB = 0xFF;
    Lcd1602_RS = 0;
    Lcd1602_WR = 1;
    Lcd1602_E = 1;
    sta = Lcd1602_DB; //读取状态字
  对控制器每次进行读写操作前,都必须进行读写检测,确保bit7为0,表示不忙可以进行读写,将其封装成函数void bit7busy();

(2)读数据:RS=H,WR=H,E=H ,P0=数据
(3)写指令:RS=L,WR=L,P0=指令码,E=高脉冲(前三项准备好,使能引脚拉高拉低读取指令码到1602)
(4)写数据:RS=H,WR=L,P0=数据,E=高脉冲

void LcdWriteCmd(unsigned char cmd)
{ 
    bit7busy();            //将忙位检测封装成函数
	Lcd1602_RS = 0;        //选择写指令
	Lcd1602_WR = 0; 	   //选择写
	Lcd1602_E = 0;         //E使能拉低
	P0=cmd;                //把指令送入P0
	DelayMs(2);            //延时一小会儿,让1602准备接收数据
	Lcd1602_E = 1;         //使能线电平变化上升沿,命令送入1602的8位数据口
	DelayMs(2);            //延时,让数据发送
	Lcd1602_E = 0;	       //使能线拉低
}

void LcdWriteDat(unsigned char dat)
{
    bit7busy();
	Lcd1602_RS = 1;       //选择写数据
	Lcd1602_WR = 0; 	  //选择写
	Lcd1602_E = 0;        //E使能拉低
	P0=dat;
	DelayMs(2); 
	Lcd1602_E = 1;	 
	DelayMs(2); 
	Lcd1602_E = 0;	 
}

【无标题】lcd1602模块介绍及编写使用程序

数据手册里面还有时间上的要求,在51里面不需要额外操作来满足,但在运行速度快点的单片机,可以试着加延时

2.显示hello在液晶屏

在这之前先了解一下,1602 液晶内部带了 80 个字节的显示 RAM,用来存储我们发送的数据
【无标题】lcd1602模块介绍及编写使用程序
第一行RAM地址从 0x00到 0x27,第二行地址从 0x40 到 0x67,
其中
第一行 0x00 到 0x0F与液晶上第一行 16 个字符显示位置相对应的,
第二行 0x40 到 0x4F 是与第二行 16 个字符显示位置相对应的
由于是字符显示,与ACSII字符表对应
【无标题】lcd1602模块介绍及编写使用程序
【无标题】lcd1602模块介绍及编写使用程序

void LcdShowStr(unsigned char y,unsigned char x,unsigned char *str,unsigned char len)
{
		if(y==1)  // 第一行      
		LcdWriteCmd(0x80+x); 		// 第一行显示起始地址 0x80第一行第一个字符地址
	    else  	  // 第二行     
		LcdWriteCmd(0x80+0x40+x);  // 第二行显示起始地址 0x80+0x40是第二行第一个字符地址

	while(len--)
	{
	  LcdWriteDat(*str++);
	}
}

显示个hello在液晶上

LcdShowStr(1,0,"hello",5)

【无标题】lcd1602模块介绍及编写使用程序

最后

作为一名学生,这也算是我学习的小记录,如果有不妥的地方欢迎指出文章来源地址https://www.toymoban.com/news/detail-450742.html

到了这里,关于【无标题】lcd1602模块介绍及编写使用程序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32显示外设集--液晶显示模块(LCD1602)

    一、介绍 产品图 二、 资源获取 欢迎关注微信公众号--星之援工作室 发送(LCD1602) 三、线路连接图 四、代码编写 LCD1602.h LCD1602.c main.h 五、参考 LCD1602是一种字母数字液晶显示模块,可以显示16个字符和2行文本,因此被命名为LCD1602。它通常用于各种电子项目,特别是

    2024年02月11日
    浏览(32)
  • 51单片机电子秤(HX711模块 + LCD1602)

    (简单易懂) 1.---------------序 2.HX711测重模块 3.LCD1602显示模块 4.电子秤整体实现原理 5.模块升级去皮与还原 6.源代码 零.先来一个效果展示 这里可以看到3个20g砝码加上去显示60g的重量 5个20g砝码加上去显示100g的重量,精度是比较准的 一.首先考虑如何把这样一个项目设计出来

    2023年04月08日
    浏览(32)
  • 基于51单片机驱动MPU6050模块(LCD1602显示)

    @TOC MPU-6050集成了3轴MEMS陀螺仪,3轴MEMS加速度计,以及一个可扩展的数字运动处理器DMP,可用IIC接口连接一个第三方的数字传感器。MPU-6050对陀螺仪和加速度计分别用了三个16位的ADC,将其测量的模拟量转化为可输出的数字量。为了精确跟踪快速和慢速的运动,传感器的测量范

    2024年02月11日
    浏览(28)
  • 【雕爷学编程】Arduino动手做(133)---LCD1602扩展板模块

    7款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与

    2024年02月11日
    浏览(27)
  • 单片机入门教程:第七章 1602LCD液晶显示模块

    在单片机的人机交互系统中,常常需要显示系统运行中的某些信息和数据,例如,字符、汉字或者图形等。液晶显示器(LCD)正好可以完成此项任务,它是一种功耗很低的显示器,在电子表、计算器、数码相机、计算机的显示器和液晶电视上都可以看到它的身影。液晶显示器

    2024年02月09日
    浏览(39)
  • 【雕爷学编程】Arduino动手做(85)---LCD1602液晶屏模块7

    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)

    2024年02月16日
    浏览(29)
  • Arduino用DHT11模块与LCD1602实现温湿度测量及显示

    本文主要利用Arduino开发板实现温湿度测量及显示 废话不多说。先上实物图: 主要使用到的模块包括 Arduino开发板、1602液晶显示屏、DHT11温湿度模块、两个10k电阻、5V电源 电路图 代码 关于DHT.h以及LiquidCrystal.h模块的导入 在Arduino IDE界面选择 管理库 搜索想要的库安装即可

    2024年02月06日
    浏览(26)
  • 基于51单片机驱动HC-SR04超声波模块(LCD1602显示)

    点击图片购买 HC- SR04+是一款宽电压工作的超声波测距模块。模块外形尺寸及软件与老版本 HC- SR04完全兼容;可以与老版本HC SR04无缝切换。低至3V的低工作电压, 使其与3.3V供电的MCU可以直接连接。 特点 探测角度: 15° 采用工业级MCU,工作温度:-20C~80C 探测距离:5V:2cm-- 450cm;3.3V: 2c

    2024年02月02日
    浏览(45)
  • STC89C52单片机LCD1602显示屏介绍与代码演示

    LCD1602显示屏介绍 引脚介绍 内部结构框图  存储器  DDRAM储存器地址  CGRAM与 CGROM的地址 时序介绍 LCD1602快捷指令  LCD1602指令操作流程: 字符、字符串的显示  各种进制的数字显示 在LCD1602上显示十进制数字 在LCD1602上显示十六进制数字 在LCD1602上显示二进制数字 LCD1602(Liq

    2024年02月08日
    浏览(41)
  • LCD1602的使用及显示

    第 1 脚: VSS 为电源地 第 2 脚: VDD 接 5V 正电源 第 3 脚: VL 为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个 10K 的电位器调整对比度。 第 4 脚: RS 为寄存器选择 , 高电平时选择数据寄存器、低电平时

    2024年02月07日
    浏览(73)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包