LCD1602显示字符
文章目录
1. 硬件参数
1.1 技术参数
1.2 引脚功能
1.3 写入时序
1.4 地址范围、显示内容
DDRAM即是我们在LCD 1602液晶屏幕上看到的内容
硬件控制命令
每个预留ASCII码占8个地址,每个地址对应1个字节,可以保存一个自定义图像
1.5 ASCII码表、CGROM出厂光刻图像
2. 软件编程
2.1 框架式编程结构搭建
- 新建中层服务函数LCD1602_Ser.c,LCD1602_Ser.h
- 保存
- 添加
- 打标签
- all.h包含LCD1602_Ser.h
- LCD1602_Ser.c包含all.h
2.2 初始化
GPIO输出模式
由原理图
LCD1602涉及0#595芯片和GPIO4.5,GPIO4.6
其中0#595芯片相关前面项目已经定义好
定义管脚GPIO4.5,GPIO4.6,并配置成准双向口模式
LCD1602初始化函数
配置成准双向口模式
写入时序
由时序图
RS脚
分成2个函数:写地址和写数据
R/W脚无操作
E脚
翻译时序图
先拉低电平,延时,再拉高电平
需要延时,写一个专用延时函数
同时需要注意的是,被调用的函数要写在前面
LCD 工作速度较慢,延时值需要自己视情况调整
发送数据
595发数据的框架(两个数组+发送函数)已经建好
0#595工作时,关闭1#595
错开时间往数码管发数据和往LCD 1602发数据
发送完数据
数据发送到595芯片后,发送使能下降沿信号,将595芯片内的电平拷贝到LCD 1602内使其显示
写地址和写数据两个函数均如上编写
初始化硬件操作指令
将LCD1602初始化函数外部声明并在主函数调用
初始化函数除了配置IO口模式外,还要执行一系列硬件操作指令
- 功能设置
- 清除显示
- 光标复位
- 光标和显示模式
- 光标显示控制
- 光标移动
至此,初始化完成
2.4 单字符显示测试
显示区域
显示内容
想要显示‘A’,查ASCII表
显示字符有两种方法,ASCII码值和字符ASCII,支持连续显示
字符串显示需要连续发送,在串口部分再涉及。
2.3 内容显示
创建数组用于储存和显示,并声明
LCD 1602的一行肉眼可见16个字节
创建显示函数发送数组内的内容,并声明
创建1602数据分配函数,并声明,主函数调用
1602显示反应速度较慢,相比直接将显示函数放进主循环while(1),少循环999次
此时仅调用显示函数,并未向数组内赋值
视数码管工作情况修改延时值,若轻微闪烁,说明延时值过大,需降低
显示测试
只需要向数组赋值
若用变量显示‘7
’
‘7’的ASCII=0x37,即0x30+7
1602用两个字符位置显示‘10’
变化显示
显示自定义图案
一个是发送‘0’的ASCII值
一个是ASCII值是0
可以充分利用CGRAM的空余空间,比如显示某些汉字
光标显示设置
在LCD显示函数内
创建变量
switch选择
在.h声明,主函数调用光标显示变量