江科大51单片机笔记【13】LCD1602

发布于:2025-03-11 ⋅ 阅读:(18) ⋅ 点赞:(0)

写在前言

  此为博主自学江科大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  //设置光标位置
  • 发送数据  //发送要显示的字符数据
  • 发送数据  //发送要显示的字符数据
  • ......