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

写在前言

此为博主自学江科大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 //设置光标位置
  • 发送数据 //发送要显示的字符数据
  • 发送数据 //发送要显示的字符数据
  • ......
相关推荐
周周记笔记2 小时前
学习笔记:第一个Python程序
笔记·学习
丑小鸭是白天鹅2 小时前
Kotlin协程详细笔记之切线程和挂起函数
开发语言·笔记·kotlin
潘达斯奈基~2 小时前
《大数据之路1》笔记2:数据模型
大数据·笔记
..过云雨2 小时前
05.【Linux系统编程】进程(冯诺依曼体系结构、进程概念、进程状态(注意僵尸和孤儿)、进程优先级、进程切换和调度)
linux·笔记·学习
咸甜适中2 小时前
rust语言 (1.88) egui (0.32.2) 学习笔记(逐行注释)(二十八)使用图片控件显示图片
笔记·学习·rust·egui
一又四分之一.2 小时前
高数基础知识(下)②
笔记
ZHANG8023ZHEN3 小时前
fMoE论文阅读笔记
论文阅读·笔记
物随心转3 小时前
RTC驱动原理
嵌入式硬件
BAGAE3 小时前
MODBUS 通信协议详细介绍
linux·嵌入式硬件·物联网·硬件架构·iot·嵌入式实时数据库·rtdbs
Ro Jace4 小时前
文献阅读笔记:R&S电子战测试与测量技术文档
笔记