写在前言
此为博主自学江科大51单片机(B站)的笔记,方便后续重温知识
在后面的章节中,为了防止篇幅过长和易于查找,我把一个小节分成两部分来发,上章节主要是关于本节课的硬件介绍、电路图、原理图等理论知识,主要是为下章节的代码部分打基础。
我的单片机是24年12月在tb普中买的,型号是STC89C52,在原视频中引脚或接口不对应的我都会改正,保证在我的机子上能运行才发上来的,还有一些文字部分是我的理解,并非照搬,所以可能有理解不到位的现象。
如有误或交流,敬请指点提问
我们这一节只有一个代码,就是在LCD1602上显示各种东西,如数字,字符,字符串,字母等
一、LCD1602
1.介绍
- LCD1602(Liquid Crystal Dispaly)液晶显示屏是一种字符型液晶显示模块,可以显示ASCLL码的标准字符和其他的一些内置特殊字符,还可以自定义八个新的字符
- 显示容量:16*2个字符,每个字符为5*7点阵
- 左边的两幅就是我们今天的主角LCD1602的正面背面图,背面图中的两个黑黑的就是芯片
- 中间的是LCD12864,是以像素点为命名的,而1602是以字符来命名的
- 右上角是一种定制的LCD,每一段每个单词都可以定制,如空调显示屏,大批量成本低
- 右下角是彩色的LCD,如手机屏幕

2.引脚及应用电路
- VSS:地
- VDD:电源正极(4.5V-5.5V)
- VO:对比度调节电压,在下面会接一个电位器,即我们之前调可调电阻让LCD显示的过程
- RS:数据/指令选择,1为数据,0为指令
- RW:读/写选择,1为读,0为写,一般只需要写入
- E:使能,1为数据有效,下降沿执行命令
- D0-D7:数据输入/输出,最好接到一个P口,并且高位对高位
- A:背光灯电源正极,如果不接AK,LCD会显示但我们看不到
- K:背光灯电源负极

3.内部结构框图
首先是个屏幕,每个方框都是一个点阵
右边呢就是我们要生成字符的时候,不是传入1他就显示1,而是要通过特殊的处理,即该部分,CGRAM是可写入即我们能自定义新的字模,而CGROM是出厂已经设置好的字模库
我们实际要显示的数据是写在DDRAM里,即我们写数据在DDRAM存储器里,然后再在字模库里找相对应的字模,然后再显示在屏幕里;DDRAM比屏幕做的长是因为可以通过移屏功能实现流动字幕
AC就是确认写入数据的地址,当写入一个数据后会自动++

4.存储器结构
这里就是上面DDRAM和字模库的详细定义

5.时序结构
因为我们不需要读,所以下面只贴出了写数据/指令的时序结构
- RS:数据/指令选择,1为数据,0为指令
- RW:读/写选择,1为读,0为写,一般只需要写入
- E:使能,1为数据有效,下降沿执行命令
- D0-D7:数据输入/输出,最好接到一个P口,并且高位对高位
流程:首先设置RS,其次RW写置0,然后D0-D7传送数据,E置0再置1就可以
6.指令集

7.操作流程
初始化:
- 发送指令0x38 //八位数据接口,两行显示,5*7点阵
- 发送指令0x0C //显示开,光标关,闪烁关
- 发送指令0x06 //数据读写操作后,光标自动加一,画面不动
- 发送指令0x01 //清屏
显示字符:
- 发送指令0x80|AC //设置光标位置
- 发送数据 //发送要显示的字符数据
- 发送数据 //发送要显示的字符数据
- ......