LCD1602设计(1)

一看就会的LCD1602的使用及自定义字符显示 相信通过该教程你已经学会了如何使用LCD1602的基础功能了。希望对你有所帮助,欢迎交流指正!工程文件链接:链接:https://pan.baidu.com/s/1e89qeOBmqtNZnGRnS1z1MQ提取码:d1gm。 阅读详情

 

本文为博主 日月同辉,与我共生,csdn原创首发。希望看完后能对你有所帮助,不足之处请指正!一起交流学习,共同进步!

> 发布人:@日月同辉,与我共生_单片机-优快云博客

> 欢迎你为独创博主日月同辉,与我共生点赞❤❤❤+关注👍+收藏🌹+评论☺。

系列专栏: 优快云-LCD1602系列🎁

> 我的格言是:“尽最大努力,做最好的自己!💪

要转载,请提前告知!!!

版权声明:本文为优快云博主「日月同辉,与我共生」的原创文章,优快云独一份。

目录

一、LCD1602简介

二、LCD1602接法

三、DDRAM

四、CGROM&CGRAM

五、代码提供

5.1显示字符

5.2位置功能函数

5.3自定义字符函数

一、LCD1602简介

LCD1602是一种工业字符型液晶,能够同时显示16x02即32个字符。它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。这种液晶显示器的显示原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。此外,1602液晶也叫1602字符型液晶,它由若干个5X7或者5X10等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。

二、LCD1602接法

LCD1602的基本参数及引脚功能包括:

⛄显示容量:16×2个字符;

⛄芯片工作电压:4.5—5.5V;

⛄工作电流:2.0mA(5.0V);

⛄模块最佳工作电压:5.0V;

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

LCD1602采用标准的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

背光源负极(接地)

LCD1602原理图:

LCD1602仿真图:

三、DDRAM

LCD1602可以显示16*2=32个字符,即LCD1602有32个位置用于显示字符,若一个字符要在某个位置显示,就要给每个位置规定一个显示地址(DDRAM地址)。

四、CGROM&CGRAM

LCD1602如何显示一个字符呢?CGROM是中文字库的意思,它代表液晶屏内部存储的160个不同的点阵字符图形,这些字符包括阿拉伯数字等,每个字符有对应的CGROM地址(8位二进制,与ASCII地址一样)。在液晶模块中,字符产生器(CGROM)会自动读出字符的字形点阵数据,并将字符显示在液晶屏上。另外,CGRAM最多可以自定义8个字符,如摄氏度符号℃。

五、代码提供

5.1显示字符

#include "lcd1602.h"

void main()
{
	unsigned char str[]="hello world";
	unsigned char str2[]="123abc";
	unsigned char str3[]={1,2,3,4,5,6};
	unsigned char str4[]={10,11,12,13,14,15};
	LCDInit();
	while(1)
	{
		LCDShowStr(0,0,str);
		LCDShowStr(0,1,"hello world");
	}
}

5.2位置功能函数

void LCDSetPosition(unsigned char x,unsigned char y) //位置函数  y:行  0-1
{                                                    //          x:列  0-7
	if(y==0)
	{
		LCDWriteCmd(0x80|x);
	}
	else
	{
		LCDWriteCmd(0x80|(x+0x40));
	}
}

void LCDShowStr(unsigned char x,unsigned char y,unsigned char *str)
{
	LCDSetPosition(x,y);
	while(*str!='\0')
	{
	  LCDWritedata(*str++);
	}
}	

5.3自定义字符函数

void LCD_Write_CGRAM(unsigned char *str)
{
	unsigned char i;
	LCDWriteCmd(0x48);//1.自定义字符
	for(i=0;i<8;i++)
	{
		LCDWritedata(str[i]);
	}
	LCDWriteCmd(0x80|0x00);//2.显示字符->在哪显示+显示哪个字符
	LCDWriteCmd(0x01);
}

void LCDSetChar(unsigned char x,unsigned char y,unsigned char pos,unsigned char *str)
{
	unsigned char i;
	for(i=0;i<8;i++) //1.自定义字符
	{
		LCDWriteCmd(0x40+8*pos+i);
		LCDWritedata(*(str+i));
	}
	LCDSetPosition(x,y);//2.显示位置
	LCDWriteCmd(0x00+pos);//3.调用自定义字符
}

下一文将继续介绍 LCD1602,亲爱的读者敬请期待,下一文更精彩!!!

一日不读书,胸臆无佳想。我叫不白吃,喜欢我的,可以支持我,博主名叫@日月同辉,与我共生

@日月同辉,与我共生_单片机基础,单片机串口通信-优快云博客@日月同辉,与我共生擅长单片机基础,单片机串口通信,等方面的知识,@日月同辉,与我共生关注stm32,c语言,51单片机,proteus,单片机领域.https://blog.youkuaiyun.com/LIN___IT?spm=1000.2115.3001.5343

【51单片机STC89C52】LCD1602液晶屏的使用 阅读详情

相关推荐

C51单片机利用LCD1602设计时钟

-设计思路 -知识积累 -编写代码 -总结 1. 设计思路 第一行显示年月日,第二行显示时间 上电之后计时开始,K2控制分秒设置,按第一次计时停止秒针闪烁,按第二次分针闪烁,按第三次计时继续,K3,K4分别控制加减(只有在按键K2按下后生效),在计时过程中可以实现整分报时,K1转换成60秒倒计时 2. 知识积累 LCD1602 (1)LCD1602接口信号说明 VSS:电源地信号引脚; VDD...

qq_43461705的博客 3978

单片机经典外围电路(一)--LCD1602显示

单片机经典外围电路(一)----LCD1602显示(1) 学无止境,生活就像一首歌,时代是歌的节奏,个人就是时代的音符,前路漫漫,因为坚持看到希望。 一、序言 随着现代数字电路的发展,显示技术也在逐渐发展。为了更好的向人们显示信息,显示器件经历了LED数码管,LCD液晶显示,LCD彩色屏幕,以及OLED等等。我们生活中的电视,手机,电脑,示波器,仪表,都需要向人们显示信息,因此这些是显示器件的作用。如何显示信息,如何使用这些器件,帮助入门级工程师快速掌握这种器件的使用方法,是本文目的,...

sunny00544的博客 6667

基于FPGA的LCD1602驱动

一、功能描述 本设计实现LCD_1602的接口,具体功能定义如下: 1、异步复位信号; 2、按下复位键后在LCD_1602液晶屏显示内部设置好的字符,每间隔0.1秒显示一个字符。 二、输入输出信号描述 三、设计思想 1、首先把50MHz的时钟信号转化为10Hz的信号,实现每0.1秒显示一个字符,设计一个分频器。 2、LCD_RW设置为0,因为只有写信号,没有读信号

思维蓝图 9283

【毕业设计】42基于FPGA的LCD1602控制器设计仿真与实现(原理图+仿真+源代码+论文)

本次系统为基于FPGA的显示控制器设计,实现液晶显示器的左翻滚、右翻滚、暂停、清屏的功能。程序编写对各个功能编写程序。系统具有多功能,通过模块化的方式来进行设计,根据各个功能进行编程,在设计上和仿真上均通过模块化的方式进行,保证设计可以减少调试时间,更可以使功能顺利实现。本次系统由于考虑多方面的因素实现了显示控制器设计,具有一定的推广意义和学习意义。该控制器可以显示字符、图片两个部分。字符显示功能上通过调用RAM实现,可以通过调用液晶显示器内部的字库来实现字符的调用。

cqtianxingkeji的博客 4092

基于FPGA的lcd1602液晶显示

项目名称 基于FPGA的lcd1602液晶显示 具体要求 第一行显示今天的日期2020-07-01日,第二行显示笔者最终做完的具体时间吧 设计说明 笔者采用的是50mm*30mm的mini型lcd1602,体积小,可以同时显示16*2,即32个字符(16列*2行)。 lcd1602主要有两个操作,即读操作和写操作,一般不会用到读操作,要注意lcd的驱动频率,不然由于fpga写入速度快,会让lcd无法响应,lcd的驱动模式采用8bit模式,设计简单,操作方便。lcd初始化如下 ...

xxgyh 3822

单片机:LCD1602显示屏(内含LCD1602介绍+硬件设计+软件设计+原始代码)

单片机:LCD1602显示屏(内含LCD1602介绍+硬件设计+软件设计+原始代码)

wo12369874的博客 1万+

基于cd4046的锁相环pll设计,pcb 只是资料! 功能: 1.LCD1602显示屏显示当...

这里有个坑:CD4522是BCD码分频器,级联时需要把前级最高位的Q3接到下级时钟使能端(具体看下面代码注释)。这个项目最爽的时刻是看着LCD上的频率值随着按键操作实时变化,而示波器上的波形始终稳如老狗——数字锁相环的魅力就在于此吧!老规矩,先把手头的洞洞板和元件盒翻了个底朝天——LCD1602、CD4522分频器、STM32F103最小系统板,齐活!注意CD4522的预置数是异步加载的,需要在数据稳定后给一个上升沿到PE引脚(代码里用latchPin实现)。1.完整电源原理图,PCB图,BOM表源文件。

2500_94292699的博客 727

1、基于AT89C52、LCD1602的电子计时器proteus仿真设计

【代码】1、基于AT89C52的电子计时器proteus仿真设计。

zhusl6688的博客 810

c语言设计字符lcd16*1,答辯材料-基于LCD1602的数字钟程序设计(C语言).doc

答辯材料-基于LCD1602的数字钟程序设计(C语言)答辩材料LCD1602概要LCD1602液晶显示模块是一种字符型显示模块,16引脚,5*7点阵,高电平点亮,可显示2行×16个字符。LCD1602具有如下特性:+5v电压,对比度可调内含复位电路提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能有80字节显示数据存储器DDRAM内建有160个5*7点阵的字型的字符发生器CGROM...

weixin_42599558的博客 252

基于51单片机的DS18B20温度检测与LCD1602实时显示系统设计

LCD1602模块采用标准的HD44780或兼容控制器芯片,具备并行数据接口能力。其物理封装通常包含16个引脚(部分带背光版本为14+2额外引脚),每个引脚承担特定的功能角色,正确识别和连接这些引脚是系统正常工作的前提。统一的宏定义有助于移植和调试:#define LCD_DATA_PORT P0 // 数据端口 D4-D7 接 P0.4-P0.7#endif上述头文件实现了硬件抽象层(HAL),便于更换端口时只需修改宏定义。

weixin_35756130的博客 775

无刷直流电机矢量控制(四):基于滑模观测器的无传感器控制

无刷直流电机矢量控制,采用转速、电流双环控制,电流环dq解耦,d轴采用id=0控制,q轴采用转速外环。采用滑模观测器(SMO),根据电压电流信息进行电机位置角度动态估算,模型可直接运行,转速和角度跟踪精度较高。 本文整理了该方法的基本原理,介绍了在MATLAB/Simulink中的建模和仿真过程,最后附上完整的模型文件。 一、基本原理 滑模观测器(下文简称SMO)是基于滑模变结构控制方法的一种状态观测器。其针对无刷直流电机转子位置估算的实现过程如下。 假设采用矢量控...

Forster-C的博客 6865

224、基于51单片机的电压表仿真设计(1路,ADC0832,LCD1602)

毕设帮助、开题指导、技术解答(有偿)见文末。

qq_46030545的博客 279

ROS 2 Jazzy与Gazebo Harmonic仿真实战:从零搭建机器人仿真环境与高级应用

本文详细介绍了如何使用ROS 2 Jazzy和Gazebo Harmonic从零搭建机器人仿真环境,涵盖环境配置、传感器集成、多机器人协同和GPU加速优化等高级应用。通过实战案例和性能调优技巧,帮助开发者高效构建可靠的机器人仿真系统,提升开发效率。

h9j8k7l6m5n的博客 1217

404、基于51单片机的电压表仿真设计(1路,ADC0832,LCD1602)

数字电压表是采用数字化测量技术,把模拟量信号转化成不连续、离散的数字信号形式并加以显示的仪表。需要重点解决通过单片机嵌入式程序控制AD模块对模拟信号实现采集和现实功能。需要完整的资料可以点击下面的名片,找我要资源压缩包的百度网盘下载地址及提取码。毕设帮助、开题指导、技术解答(有偿)见文末。1、使用ADC0832芯片采集模拟量电压。2、使用lcd1602显示采集的电压值。3、对电压表的误差进行简单分析。基于单片机的数字电压表设计。

2301_76924958的博客 266

INMP441麦克风与ESP32的I2S音频采集实战指南

本文提供了INMP441数字麦克风与ESP32开发板通过I2S接口进行高质量音频采集的完整实战指南。详细讲解了硬件连接、软件配置、数据读取及基础处理,并分享了常见的避坑技巧与性能优化建议,帮助开发者快速构建物联网音频应用。

weixin_28396629的博客 598

OnlyOffice Docker部署踩坑实录:解决Nginx反向代理导致的editor.bin下载失败

本文详细解析了在Docker中部署OnlyOffice时,因Nginx反向代理配置不当导致editor.bin下载失败的常见问题。通过分析问题根源,提供了从Nginx代理配置、Docker网络设置到OnlyOffice容器内部调整的完整解决方案,并分享了实战调试技巧与性能优化建议,帮助用户彻底解决这一部署难题。

wine的专栏 523

485、基于51单片机的电压表仿真设计(1路,TLC1543,LCD1602)

毕设帮助、开题指导、技术解答(有偿)见文末。

qq_46030545的博客 207

Android Studio中把llama.cpp编译Android .so

本文介绍了一个在Android Studio中集成llama.cpp的最小Demo实现方案,通过JNI将llama.cpp编译为Android.so库,实现本地加载GGUF模型进行文本生成。文章详细说明了项目结构配置(SDK≥30,NDK≥28)、CMake编译设置、Kotlin-JNI-C++的完整调用链实现,以及模型文件部署方式。该Demo采用每次请求新建上下文的简化设计,包含加载模型、生成文本、资源释放等核心功能,并提供了错误排查建议。项目舍弃了上下文保持等复杂功能以确保稳定性,适合作为端侧大语言模型

Zhang Phil 516

LCD1602显示器驱动为Verilog Quartus EP1C3开发板

clk_LCD为LCD_Drvier模块所需要的500Hz的时钟信号主要模块包括:Clock_Gen、LCD_Driver、LCD_Top。设计聚焦关键功能的实现与时序约束,强调可综合性与可移植性,适合在Verilog环境下进行快速迭代与验证

xiakunpei123的博客 314

山东大学机器学习(实验一内容)——线性回归

1. 描述 第一个练习将为你提供线性回归练习。这些练习已经用Matlab进行了广泛的测试,但它们也应该在Octave中工作,它被称为“免费版的Matlab”。如果你使用的是Octave,那就是 一定要安装Image包(可在Windows中作为选项使用)安装程序,可从Octave-Forge获得Linux。 2.线性回归 回想一下,线性回归模型是 hθ(x)=θTx=∑j=0nθjxj h_{\th...

HachiLin的博客 4108

在Centos上从零开始部署并运行TinyWebServer服务器,过程记录(非常详细)

TinyWebServer是个什么项目?它是Linux下C++轻量级Web服务器,助力初学者快速实践网络编程,搭建属于自己的服务器。使用线程池+非阻塞socket+epoll(ET和LT均实现) +事件处理(Reactor和模拟Proactor均实现) 的并发模型使用状态机解析HTTP请求报文,支持解析GET和POST请求访问服务器数据库实现web端用户注册、登录功能,可以请求服务器图片和视频文件实现同步/异步日志系统,记录服务器运行状态。......

AnChenliang_1002的博客 3021

LCD1602显示一行

笔记仅供参考

2401_83112194的博客 1465

YOLOv8改进策略【注意力机制篇】| CVPRW-2024 分层互补注意力混合层 H-RAMi 针对低质量图像的特征提取模块

许多证据表明层次化网络对图像恢复(IR)任务通常不太有效,因为IR的目标是逐个预测像素值(密集预测),而缩小特征图会丢失重要的像素级信息。然而,层次化结构有降低时间复杂度以及学习语义级和像素级特征表示的优点。为了弥补缺点并利用优点,设计了H - RAMi层。

Limiiiing的博客 378

基于51单片机的电压源【2挡,LCD1602】(仿真)

具有实时显示实际电压功能,测量误差小于15%。分0-1 V和1-36 V两档输出,可设定;最大输出功率不小于10 W;数字直流电压源的设计。

qq_63964231的博客 538

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

用LCD1602制作可调电子钟

用LCD1602制作可调电子钟 制作一种采用LCD1602显示的电子钟,在LCD上显示当前的时间。显示格式为“时时:分分:秒秒”。设有4个功能键k1~k4,功能如下。 (1)k1:进入时间修改。 (2)k2:修改小时,按一下k2,当前小时数增1。 (3)k3:修改分钟,按一下k3,当前分钟数增1。 (4)k4:确认修改完成,电子钟按修改后的时间运行显示。 硬件电路 软件设计 #include<reg51.h> #include<lcd1602.h> #define uchar un

weixin_43372433的博客 1万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

基于51单片机的波形发生器【压控振荡器,矩形波,LCD1602】(仿真)

1、输入电压控制输出矩形波频率,输出频率范围为1-1kHz,输出幅值为正负7V。设计一个输入直流信号,输出矩形波的转换器。3、显示当前电压,占空比,频率。2、输入电压为0-10V。

qq_63964231的博客 388

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

上一篇: 串口通信(11)-CRC校验介绍&算法
下一篇: LCD1602设计(2)-指令宏定义完整版
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值