当前位置:首页 > 单片机 > 单片机
[导读]说明一下,我下面要说的LCD1602的芯片驱动是HD44780,如果你们的LCD1602驱动芯片不是HD44780,那么下面的内容是不适用的。我对LCD1602的整体理解这里说一下我对LCD1602的整体理解哈,LCD1602是一个可以显示两行字符的

 这次我来分享一下我的LCD1602的编程经验:

先说明一下,我下面要说的LCD1602的芯片驱动是HD44780,如果你们的LCD1602驱动芯片不是HD44780,那么下面的内容是不适用的。

我对LCD1602的整体理解

这里说一下我对LCD1602的整体理解哈,LCD1602是一个可以显示两行字符的LCD显示器,每一行可以都写入40个字符,但是每行都只有前16个字符可以显示,每行后面的24个字符无法立即显示,只说不容易明白,下面看一下示意图:


另外LCD1602只能显示字符,数字和一些简单的符号,是无法显示汉字的,切记。

LCD1602引脚:

然后再说一下引脚,每当学习一个芯片或者模块,最先要了解的就是引脚:


由于我们现在只是学习怎么编程,所以电路的连接我就不讲了,下面说一下与编程有关的引脚:

1.RS引脚:数据/命令选择端(H/L)

当你要给LCD发送指令的时候,就给这个引脚低电平;

当你要与LCD交互数据的时候,就给这个引脚高电平。

2.R/W引脚:读/写选择端(H/L)

当你要向LCD写入数据的时候,就给这个引脚低电平;

当你要读LCD中的数据的时候,就给这个引脚高电平。

3.E引脚:使能端(这里照顾一下爱钻牛角尖的人:E为什么叫“使能”啊?另外“使能”啥意思,我怎么从来没听说过啊?)

答1:E引脚英文全称:Enable引脚,En是英语中的一个前缀,译为“使...”,而后面的able是译为“能够”,所以合起来就叫“使能”引脚了。

答2:使能啥意思呢,这里不说专业术语哈,你可以理解为使能端就是一个开关,当这个引脚是高/低电平时这个器件是可以用的,当它为相反电平时这个器件就是没用的,你无论怎么做它也是不工作的。当然到底是低电平器件有效呢,还是高电平器件有效呢?这个就要看具体器件的数据手册或者有的引脚上也会直接标出来,比如E就是高电平有效,E(——)就是低电平有效。

4.D0~D7引脚:这个就没什么好说的了,就是传输数据或者命令的引脚。

5.其他的电源引脚,背光电源什么的就不说了,表格里面已经说得非常清楚了,而且我们现在仅仅是学习编程,电路连接不讲。

引脚说完了,那么下面我们就可以说LCD1602的编程部分了:

按照惯例,分割线:


出自《刀剑神域》克莱因

我认为对于LCD1602需要记住的就两部分,时序和指令(并不是非要完全记住,学完后自己写一个函数库,以后开发用到的时候直接调用就行了)

先说一下时序和初始化过程:

LCD1602读时序:


读函数的源码我没写,毕竟这个几乎用不到。

用图中可以看出:

RS引脚按照你的读取什么而定,读取数据就高电平,读取命令就是低电平;

RW引脚自然就是高电平了,因为我们要读嘛;

然后再往后就是E引脚了,我们在读取命令或者数据的时候,必须要先使能这个器件,所以E引脚要置为高电平;

最后D0到D7就是读取的数据了,我们找个变量数组保存起来就行了。

虽然读时序讲完了,但是在实际开发中我们几乎不需要进行读操作,我想这时有人就会说了:不是要读取忙标志吗,那不就要进行读操作了吗?的确是那样,但是LCD1602的速度是纳秒级别的,而51单片机是毫秒级别的,所以基本不需要读取忙标志,只要微延时就行了。

如图:


LCD1602写时序:


这个函数我写了,下面是代码:


【注】在函数里面我用了两种方式,并4口和并8口;

下面说一下最重要的写操作时序,从图中可以看出:

RS引脚按照你的读取什么而定,读取数据就高电平,读取命令就是低电平;

RW引脚自然就是低电平了,因为这次我们要写嘛;

然后再往后就是E引脚了,我们在读取命令或者数据的时候,必须要先使能这个器件,所以E引脚要置为高电平;

最后D0到D7就是写入的数据或者命令了。

LCD1602初始化过程:

这个我也写了,下面是代码:


LCD1602的初始化,也就是HD44780芯片的初始化过程,这个初始化过程的版本太多了,大多数初始化过程都可以成功初始化,但是我这里是在写文章嘛,自然就不能讲一个乱七八糟的初始化过程啦,所以我就查了一下HD44780芯片的英文原版数据手册,下面上图:


大家如果想看懂的话就从上往下一步一步地看,然后就明白为什么初始化要像上面那样写了。

【注】很多初始化的版本都可以成功初始化,我说的那个仅仅是最正规的而已,个人喜好,只要可以初始化成功就可以了。

最后写好LCD1602的头文件,然后LCD1602的函数库就做好了,当然我们没写读函数,这些你想写的话自己加上去就行了。有了这个函数库,以后用LCD1602的时候直接调用就行了,很方便。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

STM32与51单片机之间有什么差异呢?两者可以说是一场科技与性能的较量了。在科技飞速发展的今天,微控制器(MCU)已广泛应用于各类电子设备和系统中,发挥着举足轻重的作用。其中,STM32和51单片机作为两种常见的微控制...

关键字: STM32 51单片机 MCU

51单片机将是下述内容的主要介绍对象,通过这篇文章,小编希望大家可以对51单片机的相关情况以及信息有所认识和了解,详细内容如下。

关键字: 单片机 51单片机

在嵌入式系统开发中,单片机是不可或缺的重要组成部分。其中,STM32单片机和51单片机是两种常见的单片机芯片。本文将对比分析这两种单片机的区别,并探讨STM32单片机的优势。

关键字: stm32单片 51单片机

51单片机是指由美国INTEL公司生产的一系列单片机的总称,这一系列单片机包括了许多品种,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的产品,该系列其它单片机都是在8051的基...

关键字: 51单片机 串行通信

51单片机是一种常见的微控制器,它具有串行通信接口(Serial Communication Interface,SCI)。通过串口通信接口,51单片机可以与其他设备或系统进行串行通信,实现数据传输和控制。

关键字: 51单片机 串口通信

Pic单片机和51单片机是两种应用广泛的微控制器,它们各自具有不同的特点和优势,选择哪种单片机取决于具体应用需求。下面将对Pic单片机和51单片机进行详细的介绍和对比。

关键字: PIC单片机 51单片机 单片机

随着电子信息技术的快速发展,串行通信在各种应用中得到了广泛的应用。其中,51单片机作为一种常见的嵌入式系统,具有低功耗、高性能、易于编程等特点,常用于各种自动化控制、数据采集等系统中。而PC机具有强大的数据处理能力和丰富...

关键字: 51单片机 PC机 串行通信

51 单片机内部有一个全双工串行接口。什么叫全双工串口呢?一般来说,只能接受或只能发送的称为单工串行;既可接收又可发送,但不能同时进行的称为半双工;能同时接收和发送的串行口称为全双工串行口。

关键字: 51单片机 串口通信 半双工

步进电机是一种无刷电机,可将电脉冲转换为机械旋转。顾名思义,它根据输入脉冲逐步旋转,是现代数字程序控制系统中的主要执行元件。

关键字: 51单片机 步进电机 无刷电机

1.ROM:只读存储器,单片机的只读存储区大多用于存储程序固又称程序存储器。

关键字: 51单片机 工作原理 电路
关闭
关闭