×
单片机 > 单片机程序设计 > 详情

LCD1602液晶显示模块的单片机驱动深入详解之软件篇(AVR)

发布时间:2022-04-21 发布时间:
|

LCD1602液晶显示模块的驱动虽然比七段数码管之类的显示要复杂一些,但实际上也并不是很难,最主要的还是初始化,为什么这么说呢?我们在调试一块新液晶屏的时候,都会先初始化看看有没有光标在闪,没有光标前是一番努力(PROTEUS上也是这么做的),光标出来之后就相对很容易了,因为光标出来了,至少说明硬件连接是没有问题的,模块也已经成功接收到了指令,后面就是啃数据手册、改程序、烧录程序观察显示的循环了。

那初始化的流程是怎么样的呢?我们还是看看HD44780的数据手册吧,如下图所示:

可以看到,初始化的主要步骤如下:

(1)上电:这特么也算是一个步骤么?是的!如果你用的是其它液晶模块,比如LCD12864,会发现有一个复位引脚,LCD1602是没有复位引脚的,HD44780本身已经有内部复位逻辑。上电后复位其实会做很多事情的,主要如下:

    a. 清除屏幕数据

    b.设置8位并行通讯方式,1行显示,5X8点阵显示

    c.显示关,关标关,光标闪烁关

    d.地址自动加1,没有屏移

从复位所做的事情来看,初始化该做的都已经做了,要看到光标只需要两条指令:打开显示,再开启光标显示即可。但是为了充分保证初始化的成功率(有可能LCD1602由于外部电气特性条件没达到而没有成功初始化),一般还是会用指令显式重新进行初始化(况且有些时候默认的初始化可能还达不到我们的要求),后面的几条语句其实就是重复上电后做的那些事,我们看看

(2)功能设置(Function Set ):其实就是b点

(3)显示打开/关闭(Display On/Off Control):其实就是c.1(打开显示)

(4)进入模式设置(Entry Mode set):其实就是d

(5)前面就是初始化,后面就是写显示数据了

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////

下面是Atmega AVR驱动LCD1602液晶显示模块代码,第一行显示“LCD1602 DEMO”,第二行显示“--CNBLOGS--”,这里没有读状态指令的使用,实际使用时,在写指令或数据时加一些延时即可

注意:分了三个文件,main.c是入口,lcd1602.h与lcd1602.c是具体的一些读写函数

/*******************************************************************************
* 文件名: main.c
* 功能描述: LCD1602显示屏驱动
*******************************************************************************/

#include


关键字:LCD1602  液晶显示模块  单片机驱动

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
如何升级STM32单片机的代码