IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> LCD1602读写控制与初始化函数 -> 正文阅读

[嵌入式]LCD1602读写控制与初始化函数

上篇推文对LCD1602显示屏接口作了介绍LCD1602显示屏接口介绍。今天学习一下LCD1602的读写指令数据操作与初始化操作。

1.读状态操作:状态字的最高位的BF为忙标志位,1表示LCD正在忙,0表示不忙。通过判断最高位BF的0、1状态,就可以知道LCD当前是否处于忙状态,如果LCD一直处于忙状态,则继续查询等待,否则进行下面的操作。查询忙状态程序段如下:

void LcdWaitReady()

{

??? unsigned char sta;

??? LCD1602_DB =0xFF;

??? LCD1602_RS =0;

??? LCD1602_RW =1;

??? do {

??????? LCD1602_E= 1;

??????? sta = LCD1602_DB; //读取状态字

??????? LCD1602_E = 0;

??? } while (sta & 0x80); //bit7等于1表示液晶正忙,重复检测直到其等于0为止

}

2.写指令操作:RS=0;RW=0;D0~D7=指令码;E=高脉冲,首先写数据的时候,E引脚是低电平状态,然后数据准备好之后,E从低电平变为高电平,然后再从高电平变为低电平,出现一个下降沿,1602液晶内部一旦检测到这个下降沿后,并且检测到RS=0;RW=0;就马上读取D0~D7的指令码,完成单片机写1602指令过程。具体代码如下:

void LcdWriteCmd(unsigned char cmd)

{

??? LcdWaitReady();

??? LCD1602_RS =0;

??? LCD1602_RW =0;

??? LCD1602_DB = cmd;

??? LCD1602_E? = 1;

??? LCD1602_E? = 0;

}

2.写数据操作:RS=1;RW=0;D0~D7=数据;E=高脉冲,操作方式类似写指令,具体代码如下:

void LcdWriteDat(unsigned char dat)

{

??? LcdWaitReady();

??? LCD1602_RS =1;

??? LCD1602_RW =0;

??? LCD1602_DB = dat;

??? LCD1602_E? = 1;

??? LCD1602_E? = 0;

}

3.设置显示位置:设置显示RAM起始地址,亦即光标位置,(x,y)-对应屏幕上的字符坐标,在读写数据之前要先设置好地址,然后进行数据的读写操作。

void LcdSetCursor(unsigned char x, unsigned char y)

{

??? unsigned char addr;

??? if (y ==0)? //由输入的屏幕坐标计算显示RAM的地址

??????? addr = 0x00 + x;? //第一行字符地址从0x00起始

??? else

??????? addr = 0x40 + x;? //第二行字符地址从0x40起始

??? LcdWriteCmd(addr | 0x80);? //设置RAM地址

}

4.LCD1602初始化函数:1602液晶显示屏在使用的时候要先初始化,1602初始化内容主要包括显示模式设置、显示开关光标以及光标设置指令、清屏指令等。具体实现如下:

/* 初始化1602液晶 */

void InitLcd1602()

{

??? LcdWriteCmd(0x38);? //16*2显示,5*7点阵,8位数据接口

??? LcdWriteCmd(0x0C);? //显示器开,光标关闭

??? LcdWriteCmd(0x06);? //文字不动,地址自动+1

??? LcdWriteCmd(0x01);? //清屏

}

5.字符串显示函数:在液晶上显示字符串,(x,y)-对应屏幕上的起始坐标,str-字符串指针 。

void LcdShowStr(unsigned char x, unsigned char y, unsigned char *str)

{

??? LcdSetCursor(x, y);?? //设置起始地址

??? while (*str != '\0')? //连续写入字符串数据,直到检测到结束符

??? {

??????? LcdWriteDat(*str++);? //先取str指向的数据,然后str自加1

??? }

}

以上就1602操作的相关函数,下期将用1602实现基本的字符串显示功能。

图片

?

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-12-02 16:55:48  更:2021-12-02 16:56:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 12:51:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码