基于STC12C5A60S2系列1T 8051单片机的带字库液晶显示器LCD12864数据传输并行模式显示图像应用

基于STC12C5A60S2系列1T 8051单片机的液晶显示器LCD12864显示图像应用

  • STC12C5A60S2系列1T 8051单片机管脚图
  • STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置
  • STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍
  • 液晶显示器LCD12864简单介绍
    • 一、LCD12864点阵型液晶显示器介绍
      • 1、DDRAM(Data Display Ram)
      • 2、CGROM(Character Generation ROM)
      • 3、CGRAM(Character Generation RAM)
      • 4、GDRAM(Graphic Display RAM)
      • 5、HCGROM(Half height Character Generation ROM)
      • 6、LCD12864点阵型液晶显示器 DDRAM(Data Display Ram:数据显示随机存储器)、CGROM(Character Generation ROM:字符发生只读存储器)、CGRAM(Character Generation RAM:字符发生随机存储器) 、HCGROM(Half height Character Generation ROM:半宽字符发生只读存储器)各自作用
        • (1)、DDRAM(Data Display Ram:数据显示随机存储器)
        • (2)、CGROM(Character Generation ROM:字符发生只读存储器)
        • (3)、CGRAM(Character Generation RAM:字符发生随机存储器)
        • (4)、HCGROM(Half height Character Generation ROM:半宽字符发生只读存储器)
      • 7、LCD12864点阵型液晶显示器 DDRAM(Data Display Ram:数据显示随机存储器)、CGROM(Character Generation ROM:字符发生只读存储器)、CGRAM(Character Generation RAM:字符发生随机存储器) 、HCGROM(Half height Character Generation ROM:半宽字符发生只读存储器)之间的联系
    • 二、LCD12864点阵型液晶显示器尺寸图
    • 三、LCD12864点阵型液晶显示器示意图
    • 四、LCD12864点阵型液晶显示器连接原理图
      • 1、第一种LCD12864点阵型液晶显示器连接原理图(LCD12864点阵型液晶显示器引脚功能说明对应下面第一种LCD12864点阵型液晶显示器引脚功能列表)
      • 2、第二种LCD12864点阵型液晶显示器连接原理图(LCD12864点阵型液晶显示器引脚功能说明对应下面第二种LCD12864点阵型液晶显示器引脚功能列表(常用))
    • 五、LCD12864点阵型液晶显示器引脚功能列表
      • 1、第一种LCD12864点阵型液晶显示器引脚功能列表
      • 2、第二种LCD12864点阵型液晶显示器引脚功能列表(常用)
    • 六、LCD12864点阵型液晶显示器读写操作
    • 七、LCD12864点阵型液晶显示器内部存储器详细介绍
      • 1、DDRAM(Data Display Ram:数据显示随机存储器)
        • (1)、DDRAM是什么?
        • (2)、DDRAM有什么作用?
        • (3)、DDRAM内存地址
        • (4)、DDRAM(Data Display Ram:数据显示随机存储器)与LCD12864点阵型液晶显示器显示位置对应关系
          • <1>、DDRAM(Data Display Ram:数据显示随机存储器)存储汉字与LCD12864点阵型液晶显示器显示位置对应关系
          • <2>、DDRAM(Data Display Ram:数据显示随机存储器)存储半宽字符(比如:英文字母、数字、符号、ASCII码、日文字符、希腊文字符)与LCD12864点阵型液晶显示器显示位置对应关系
        • (5)、DDRAM(Data Display Ram:数据显示随机存储器)内部数据读写
          • <1>、单片机从LCD12864点阵型液晶显示器内部ST7920芯片的DDRAM(Data Display Ram:数据显示随机存储器)读取数据
          • <2>、单片机写数据到LCD12864点阵型液晶显示器内部ST7920芯片的DDRAM(Data Display Ram:数据显示随机存储器)
        • (6)、单片机驱动LCD12864点阵型液晶显示器内部ST7920芯片给LCD2864点阵型液晶显示器传送数据的模式
          • <1>、单片机驱动LCD12864点阵型液晶显示器内部ST7920芯片以8位数据并行总线模式给LCD12864点阵型液晶显示器传送数据的时序图
          • <2>、单片机驱动LCD12864点阵型液晶显示器内部ST7920芯片以4位数据并行总线模式给LCD12864点阵型液晶显示器传送数据的时序图
          • <3>、单片机驱动LCD12864点阵型液晶显示器内部ST7920芯片以串行总线模式给LCD12864点阵型液晶显示器传送数据的时序图
        • (7)、字符编码在DDRAM中存储的事项说明
          • <1>、每次对DDRAM的操作单位是一个字,也就是2个字节。当往DDRAM写入数据时,首先写地址,然后连续送入2个字节的数据,先送高字节数据,再送低字节数据。读数据时也是如此,先写地址,然后读出高字节数据,再读出低字节数据(注意:读数据时先假读一次)。
          • <2>、显示ASCII码半宽字符时,往每个地址送入2个字节的ASCII编码,对应LCD12864点阵型液晶显示器显示位置就会显示2个半宽字符,左边的为高字节字符,右边的为低字节字符。
          • <3>、显示汉字时,汉字编码的2个字节必须存储在同一地址空间中,不能分开放在2个地址存放,否则显示的就不是你想要的字符。每个字中的2个字节自动结合查找字模并显示字符。所以,如果我们往一个地址中写入的是一个汉字的2字节编码就会正确显示该字符,若编码高字节存放在前一地址低字节,编码低字节存放在后一地址高字节,显然他们就不会结合查找字模,而是与各地址相应字节结合查找字模。
      • 2、CGROM(Character Generation ROM:字符发生只读存储器)
        • (1)、CGROM是什么?
        • (2)、CGROM有什么作用?
        • (3)、CGROM存储的GB字符列表
        • (4)、CGROM内部数据读写
          • <1>、单片机从LCD12864点阵型液晶显示器内部ST7920芯片的CGROM读取数据
          • <2>、单片机写数据到LCD12864点阵型液晶显示器内部ST7920芯片的CGROM
      • 3、CGRAM(Character Generation RAM:字符发生随机存储器)
        • (1)、CGRAM是什么?
        • (2)、CGRAM有什么作用?
        • (3)、CGRAM存储自定义字符地址列表
        • (4)、CGRAM内部数据读写
          • <1>、单片机从LCD2864点阵型液晶显示器内部ST7920芯片的CGRAM读取数据
          • <2>、单片机写数据到LCD12864点阵型液晶显示器内部ST7920芯片的CGRAM
      • 4、GDRAM(Graphic Display RAM:图形显示随机存储器)
        • (1)、GDRAM是什么?
        • (2)、GDRAM有什么作用?
        • (3)、GDRAM坐标位址列表
        • (4)、LCD12864点阵型液晶显示器内部ST7920芯片的GDRAM内存地址与LCD12864点阵型液晶显示器显示位址对应关系
        • (5)、GDRAM内部数据读写
          • <1>、单片机从LCD12864点阵型液晶显示器内部ST7920芯片的GDRAM读取数据
          • <2>、单片机写数据到LCD12864点阵型液晶显示器内部ST7920芯片的GDRAM
      • 5、HCGROM(Half height Character Generation ROM:半宽字符发生只读存储器)
        • (1)、HCGROM是什么?
        • (2)、HCGROM有什么作用?
        • (3)、HCGROM字符列表
        • (4)、HCGROM数据读写
          • <1>、单片机从LCD12864点阵型液晶显示器内部ST7920芯片的HCGROM读取数据
          • <2>、单片机写数据到LCD12864点阵型液晶显示器内部ST7920芯片的HCGROM
    • 八、LCD12864点阵型液晶显示器内部ST7920芯片控制指令(提供2套控制指令集,分别是基本指令和扩充指令。)
    • 利用取模软件对图像进行画模取数据
    • 通过液晶显示器LCD12864显示图像

STC12C5A60S2系列1T 8051单片机管脚图

在这里插入图片描述在这里插入图片描述

STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置

在这里插入图片描述

STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍

在这里插入图片描述在这里插入图片描述

液晶显示器LCD12864简单介绍

一、LCD12864点阵型液晶显示器介绍

LCD12864点阵型液晶显示器是一种具有4 位或8 位并行、2 线或3线串行多种接口方式,内部可含有或不含有国标一级、二级简体中文字库的点阵型液晶显示器。其中LCD12864点阵型液晶显示器中128表示128列,64表示64行,总共有128x64=8192个点。常见LCD12864点阵型液晶显示器内部控制器以ST7920芯片为主,内置了DDRAM(Data Display Ram:数据显示随机存储器)、CGROM(Character Generation ROM:字符发生只读存储器)、CGRAM(Character Generation RAM:字符发生随机存储器)、GDRAM(Graphic Display RAM:图形显示随机存储器)、HCGROM(Half height Character Generation ROM:半宽字符发生只读存储器)。在此分别介绍LCD12864点阵型液晶显示器内部控制器ST7920芯片中的五种存储器,如下所示。

1、DDRAM(Data Display Ram)

数据显示随机存储器,往里面写啥,屏幕就会显示啥。

2、CGROM(Character Generation ROM)

字符发生只读存储器,里面存储了2M的8192个字符(包括中文、英文字母、数字、符号、ASCII码、日文字符、希腊文)的字模。在LCD12864点阵型液晶显示器界面可用16(行)x16(列)点阵来显示一个中文汉字。

3、CGRAM(Character Generation RAM)

字符发生随机存储器,可以产生128K的字符,用于用户自定义字符,一次可以自定义4个字符。在LCD12864点阵型液晶显示器界面可用16(行)x16(列)点阵来显示。

4、GDRAM(Graphic Display RAM)

图形显示随机存储器,里面存储了一块16384个点的文字图形区域,用于写文字绘图,往里面写啥绘啥,屏幕就会显示啥,它与DDRAM(数据显示随机存储器)的区别在于,往DDRAM(数据显示随机存储器)中写的数据是字符的编码,字符的显示先是在CGROM(字符发生只读存储器)中找到字模,然后映射到屏幕上,而往GDRAM(图形显示随机存储器)中写的数据是图形的点阵信息,每个点用1bit来保存其显示与否。

5、HCGROM(Half height Character Generation ROM)

半宽字符发生只读存储器,里面存储了16K的126个字符,就是字母、数字、符号。在LCD12864点阵型液晶显示器界面可用16(行)x8(列)点阵来显示一个英文字母或数字或符号。

6、LCD12864点阵型液晶显示器 DDRAM(Data Display Ram:数据显示随机存储器)、CGROM(Character Generation ROM:字符发生只读存储器)、CGRAM(Character Generation RAM:字符发生随机存储器) 、HCGROM(Half height Character Generation ROM:半宽字符发生只读存储器)各自作用

(1)、DDRAM(Data Display Ram:数据显示随机存储器)

把读到的数据(包括中文、英文字母、数字、符号、ASCII码、日文字符、希腊文以及自定义字符)显示到LCD12864点阵型液晶显示器界面。

(2)、CGROM(Character Generation ROM:字符发生只读存储器)

存储了中文、英文字母、数字、符号、ASCII码、日文字符、希腊文字符的字模编码,是液晶屏出厂时被固化在控制芯片中,用户不能改变其中的存储内容,只能读取调用。

(3)、CGRAM(Character Generation RAM:字符发生随机存储器)

留给用户存储自定义的字模编码。

(4)、HCGROM(Half height Character Generation ROM:半宽字符发生只读存储器)

存储英文字母、数字、符号的字模编码。

7、LCD12864点阵型液晶显示器 DDRAM(Data Display Ram:数据显示随机存储器)、CGROM(Character Generation ROM:字符发生只读存储器)、CGRAM(Character Generation RAM:字符发生随机存储器) 、HCGROM(Half height Character Generation ROM:半宽字符发生只读存储器)之间的联系

打个比方,CGRAM(Character Generation RAM:字符发生随机存储器)和CGROM(Character Generation ROM:字符发生只读存储器)中存储的字模信息相当于厨房中的食品,CGRAM(Character Generation RAM:字符发生随机存储器)是用户自行制作的菜肴,CGROM(Character Generation ROM:字符发生只读存储器)是厨房中现成的熟食,这些食品都要通过托盘转移一下,才能送到餐桌上食用。这类似于LCD12864点阵型液晶显示器界面要显示字符,先从CGROM(Character Generation ROM:字符发生只读存储器)和CGRAM(Character Generation RAM:字符发生随机存储器)读取到字模编码,再写入DDRAM(Data Display Ram:数据显示随机存储器)中,经如上中转以后,LCD12864点阵型液晶显示器界面在相应位置才显示出字符

二、LCD12864点阵型液晶显示器尺寸图

在这里插入图片描述

三、LCD12864点阵型液晶显示器示意图

在这里插入图片描述说明:由上图可知,LCD12864点阵型液晶显示器有128(列)x64(行),共有128x64=8192个点,可分左半屏(或上半屏)、右半屏(或下半屏),左半屏(或上半屏)对应DDRAM(Data Display Ram:数据显示随机存储器)内存地址是80H-87H、90H-97H、A0H-A7H、B0H-B7H,右半屏(或下半屏)对应DDRAM(Data Display Ram:数据显示随机存储器)内存地址是88H-8FH、98H-9FH、A8H-AFH、B8H-BFH,分四大行,每一大行有一大页,共四大页,每一大页有两小页(小页地址:从0xb8到0xa5),共八小页,每一小页有八行,共六十四行。

四、LCD12864点阵型液晶显示器连接原理图

1、第一种LCD12864点阵型液晶显示器连接原理图(LCD12864点阵型液晶显示器引脚功能说明对应下面第一种LCD12864点阵型液晶显示器引脚功能列表)

在这里插入图片描述

2、第二种LCD12864点阵型液晶显示器连接原理图(LCD12864点阵型液晶显示器引脚功能说明对应下面第二种LCD12864点阵型液晶显示器引脚功能列表(常用))

在这里插入图片描述

五、LCD12864点阵型液晶显示器引脚功能列表

1、第一种LCD12864点阵型液晶显示器引脚功能列表

在这里插入图片描述在这里插入图片描述在这里插入图片描述

2、第二种LCD12864点阵型液晶显示器引脚功能列表(常用)

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

六、LCD12864点阵型液晶显示器读写操作

在这里插入图片描述

七、LCD12864点阵型液晶显示器内部存储器详细介绍

1、DDRAM(Data Display Ram:数据显示随机存储器)

(1)、DDRAM是什么?

DDRAM(Data Display Ram):数据显示随机存储器

(2)、DDRAM有什么作用?

把存进来的数据显示到LCD12864点阵型液晶显示器界面上

(3)、DDRAM内存地址

在这里插入图片描述
说明:红色部分的DDRAM内存地址是LCD12864点阵型液晶显示器左半屏(或上半屏)显示数据的DDRAM内存地址,棕色部分的DDRAM内存地址是LCD12864点阵型液晶显示器右半屏(或下半屏)显示数据的DDRAM内存地址。一般用左半屏(或上半屏)前两行DDRAM内存地址(即80H-87H与90H-97H)和右半屏(或下半屏)前两行DDRAM内存地址(即88H-8FH与98H-9FH) 作为LCD12864点阵型液晶显示器显示数据的DDRAM内存地址,如图所示。(切记不可在左半屏(或上半屏)使用右半屏(或下半屏)显示数据的DDRAM内存地址来显示数据,也不可在右半屏(或下半屏)使用左半屏(或上半屏)显示数据的DDRAM内存地址来显示数据。)
### (1)、声明程序变量思维导图

(4)、DDRAM(Data Display Ram:数据显示随机存储器)与LCD12864点阵型液晶显示器显示位置对应关系
<1>、DDRAM(Data Display Ram:数据显示随机存储器)存储汉字与LCD12864点阵型液晶显示器显示位置对应关系

在这里插入图片描述
在这里插入图片描述
说明:上图红色区域表示LCD12864点阵型液晶显示器其中一个16(行)x16(列)点阵。如果DDRAM(Data Display Ram:数据显示随机存储器)内存地址存储的是汉字,那么需要使用LCD12864点阵型液晶显示器16(行)x16(列)点阵来显示,相当于占用LCD12864点阵型液晶显示器一大行中一大页里的16(行)x16(列)(结合上图红色区域与字符“你”来理解),即两小页中的16(行)x16(列)(结合上图红色区域与字符“你”来理解),那么半个汉字就是占用一小页中的8(行)x16(列)(结合上图字符“你”来理解)。由此可知:LCD12864点阵型液晶显示器每一个16(行)x16(列)点阵分别对应着DDRAM(Data Display Ram:数据显示随机存储器)每一个内存地址(如上图红色区域与80H所示)。

<2>、DDRAM(Data Display Ram:数据显示随机存储器)存储半宽字符(比如:英文字母、数字、符号、ASCII码、日文字符、希腊文字符)与LCD12864点阵型液晶显示器显示位置对应关系

在这里插入图片描述
在这里插入图片描述
说明:上图红色区域表示LCD12864点阵型液晶显示器其中一个16(行)x8(列)点阵。如果DDRAM(Data Display Ram:数据显示随机存储器)内存地址存储的是英文字母(或者是数字、符号、ASCII码、日文字符、希腊文字符),那么需要使用LCD12864点阵型液晶显示器16(行)x8(列)点阵来显示,相当于占用LCD12864点阵型液晶显示器一大行中一大页里的16(行)x8(列)(结合上图红色区域与英文字母“A”来理解),即两小页中的16(行)x8(列)(结合上图红色区域与英文字母“A”来理解),那么半个英文字母就是占用一小页中的8(行)x8(列)(结合上图英文字母“A”来理解)。由此可知:LCD12864点阵型液晶显示器每一个16(行)x8(列)点阵分别对应着DDRAM(Data Display Ram:数据显示随机存储器)每一个内存地址(如上图红色区域与80H所示)。

(5)、DDRAM(Data Display Ram:数据显示随机存储器)内部数据读写

DDRAM(Data Display Ram:数据显示随机存储器)内部存储的数据是字符的编码,可以写入的编码有ASCII码、GB2312码、BIG5码等。所有数据读写都是先取DDRAM(Data Display Ram:数据显示随机存储器)内存地址,然后把数据写到DDRAM(Data Display Ram:数据显示随机存储器)内存地址上或从DDRAM(Data Display Ram:数据显示随机存储器)内存地址上把数据读出来。

<1>、单片机从LCD12864点阵型液晶显示器内部ST7920芯片的DDRAM(Data Display Ram:数据显示随机存储器)读取数据

从DDRAM(Data Display Ram:数据显示随机存储器)内存地址上读数据时,在基本指令集(使用指令0x30开启)下先写DDRAM(Data Display Ram:数据显示随机存储器)内存地址,然后假读一次,接着连续读取2个字节的数据到LCD12864点阵型液晶显示器内部ST7920芯片的CGRAM(即字符生成随机存储器)内存地址上,读完之后地址指针自动加一,跳到下一个字的地址,若需要读下一个字的内容,只需再执行读取2个字节的数据到LCD12864点阵型液晶显示器内部ST7920芯片的DDRAM(Data Display Ram:数据显示随机存储器)内存地址上。这里的假读需要注意,不光是读CGRAM需要假读,读其他的DDRAM、GDRAM都需要先假读一次,之后的读才是真读,假读就是读一次数据,但不存储该数据,也就是说送地址之后第一次读的数据时是错误的,之后的数据才是正确的。(dummy为假读)

<2>、单片机写数据到LCD12864点阵型液晶显示器内部ST7920芯片的DDRAM(Data Display Ram:数据显示随机存储器)

对DDRAM(Data Display Ram:数据显示随机存储器)写数据时,确保在基本指令集下(使用指令0x30开启),先写DDRAM(Data Display Ram:数据显示随机存储器)内存地址,之后连续写入2个字节的数据到LCD12864点阵型液晶显示器内部ST7920芯片的DDRAM(Data Display Ram:数据显示随机存储器)上。

(6)、单片机驱动LCD12864点阵型液晶显示器内部ST7920芯片给LCD2864点阵型液晶显示器传送数据的模式

当PSB脚接高电平时,LCD12864点阵型液晶显示器内部ST7920芯片将进入并行模式,若功能设定指令寄存器中的寄存器单元DL=1,单片机结合RS(数据/指令选择端)、R/W(读/写选择端)、EN(使能端)、D0-D7输出输入引脚来驱动LCD12864点阵型液晶显示器内部ST7920芯片以8位数据形式给LCD2864点阵型液晶显示器传送数据,若功能设定指令寄存器中的寄存器单元DL=0,单片机结合RS(数据/指令选择端)、R/W(读/写选择端)、EN(使能端)、D0-D7输出输入引脚来驱动LCD12864点阵型液晶显示器内部ST7920芯片以4位数据形式给LCD2864点阵型液晶显示器传送数据。当PSB脚接接低电平时,LCD12864点阵型液晶显示器内部ST7920芯片将进入串行模式,若功能设定指令寄存器中的寄存器单元DL=1,单片机结合RS(数据/指令选择端)、R/W(读/写选择端)、EN(使能端)、D0-D7输出输入引脚来驱动LCD12864点阵型液晶显示器内部ST7920芯片以8位数据形式给LCD12864点阵型液晶显示器传送数据,若功能设定指令寄存器中的寄存器单元DL=0,单片机结合RS(数据/指令选择端)、R/W(读/写选择端)、EN(使能端)、D0-D7输出输入引脚来驱动LCD12864点阵型液晶显示器内部ST7920芯片以4位数据形式给LCD12864点阵型液晶显示器传送数据。

<1>、单片机驱动LCD12864点阵型液晶显示器内部ST7920芯片以8位数据并行总线模式给LCD12864点阵型液晶显示器传送数据的时序图

在这里插入图片描述

<2>、单片机驱动LCD12864点阵型液晶显示器内部ST7920芯片以4位数据并行总线模式给LCD12864点阵型液晶显示器传送数据的时序图

在这里插入图片描述

<3>、单片机驱动LCD12864点阵型液晶显示器内部ST7920芯片以串行总线模式给LCD12864点阵型液晶显示器传送数据的时序图

在这里插入图片描述

(7)、字符编码在DDRAM中存储的事项说明
<1>、每次对DDRAM的操作单位是一个字,也就是2个字节。当往DDRAM写入数据时,首先写地址,然后连续送入2个字节的数据,先送高字节数据,再送低字节数据。读数据时也是如此,先写地址,然后读出高字节数据,再读出低字节数据(注意:读数据时先假读一次)。
<2>、显示ASCII码半宽字符时,往每个地址送入2个字节的ASCII编码,对应LCD12864点阵型液晶显示器显示位置就会显示2个半宽字符,左边的为高字节字符,右边的为低字节字符。
<3>、显示汉字时,汉字编码的2个字节必须存储在同一地址空间中,不能分开放在2个地址存放,否则显示的就不是你想要的字符。每个字中的2个字节自动结合查找字模并显示字符。所以,如果我们往一个地址中写入的是一个汉字的2字节编码就会正确显示该字符,若编码高字节存放在前一地址低字节,编码低字节存放在后一地址高字节,显然他们就不会结合查找字模,而是与各地址相应字节结合查找字模。

2、CGROM(Character Generation ROM:字符发生只读存储器)

(1)、CGROM是什么?

CGROM(Character Generation ROM):字符发生只读存储器

(2)、CGROM有什么作用?

将存储的字符(包括中文、英文、数字、符号、ASCII码、日文字符、希腊文)供给LCD12864点阵型液晶显示器读取到界面上显示

(3)、CGROM存储的GB字符列表

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述说明:CGROM存储器(字符生成只读存储器)存储的字符列表中字符码A140H〜D75FH为BIG5(大五码,包括标点符号、希腊字母及特殊符号。),字符码A1A0H〜F7FFH为GB(国标,包括中文、英文、数字、符号、ASCII码、日文字符、希腊文)。

(4)、CGROM内部数据读写

CGROM内部存储的数据是中文、英文、数字、符号、ASCII码、日文字符、希腊文字符的编码,所有的数据读写都是先送地址,然后进行读写。

<1>、单片机从LCD12864点阵型液晶显示器内部ST7920芯片的CGROM读取数据
<2>、单片机写数据到LCD12864点阵型液晶显示器内部ST7920芯片的CGROM

3、CGRAM(Character Generation RAM:字符发生随机存储器)

(1)、CGRAM是什么?

CGRAM(Character Generation RAM):字符发生随机存储器

(2)、CGRAM有什么作用?

将存储用户自定义的字符供给LCD12864点阵型液晶显示器读取到界面上显示

(3)、CGRAM存储自定义字符地址列表

在这里插入图片描述
在这里插入图片描述
说明:CGRAM(即字符生成随机存储器)可以自定义4个字符,分别存储在0x40、0x50、0x60、0x70的CGRAM(即字符生成随机存储器)内存地址上,要在LCD12864点阵型液晶显示器界面显示,只需把这4个自定义字符分别对应写进DDRAM(Data Display Ram:数据显示随机存储器)内存地址0000H、0002H、 0004H、0006H即可。而上图只在CGRAM(即字符生成随机存储器)中自定义2个字符的CGRAM(即字符生成随机存储器)空间画出,另外还有2个。由此可以看出CGRAM(即字符生成随机存储器)内部自定义字符都是用16(行)x16(列)点阵来显示,每一行使用2个字节,则一个自定义字符占用空间是32字节。

(4)、CGRAM内部数据读写

读写之前先写地址,写CGRAM的指令为0x40+地址,地址每次做加一变化。

<1>、单片机从LCD2864点阵型液晶显示器内部ST7920芯片的CGRAM读取数据

先写CGRAM(即字符生成随机存储器)中内存首地址0x40,然后假读一次,接着连续读取2个字节的数据到LCD12864点阵型液晶显示器内部ST7920芯片的CGRAM(即字符生成随机存储器)内存地址0x40上,直到在LCD12864点阵型液晶显示器内部ST7920芯片的CGRAM(即字符生成随机存储器)内存地址0x40上读完32个字节的数据为止。

<2>、单片机写数据到LCD12864点阵型液晶显示器内部ST7920芯片的CGRAM

先写CGRAM(即字符生成随机存储器)中内存首地址0x40,接着连续写入2个字节的数据到LCD12864点阵型液晶显示器内部ST7920芯片的CGRAM(即字符生成随机存储器)内存地址0x40,直到在LCD12864点阵型液晶显示器内部ST7920芯片的CGRAM(即字符生成随机存储器)内存地址0x40上写完32个字节的数据为止。例如:取CGRAM(即字符生成随机存储器)中第一个字符内存首地址0x40,先写入2个字节的数据到LCD12864点阵型液晶显示器内部ST7920芯片的CGRAM(即字符生成随机存储器)内存地址0x40上,之后地址指针每次会自动加一,跳到下一行的地址,再写入2个字节的数据到LCD12864点阵型液晶显示器内部ST7920芯片的CGRAM(即字符生成随机存储器)内存地址0x40上,直到在LCD12864点阵型液晶显示器内部ST7920芯片的CGRAM(即字符生成随机存储器)内存地址0x40上写完32个字节的数据为止。

4、GDRAM(Graphic Display RAM:图形显示随机存储器)

(1)、GDRAM是什么?

GDRAM(Graphic Display RAM):图形显示随机存储器

(2)、GDRAM有什么作用?

把存进来的数据显示到LCD12864点阵型液晶显示器界面上

(3)、GDRAM坐标位址列表

在这里插入图片描述说明:LCD12864点阵型液晶显示器内部ST7920芯片的GDRAM(Graphic Display RAM:图形显示随机存储器)内存地址本来可供给LCD12864点阵型液晶显示器显示界面绘制32行x256列的图像,但LCD12864点阵型液晶显示器内在结构被分成了上下两屏显示,上半屏(左半屏)是32行x128列,下半屏(右半屏)是32行x128列。

(4)、LCD12864点阵型液晶显示器内部ST7920芯片的GDRAM内存地址与LCD12864点阵型液晶显示器显示位址对应关系

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/814919.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024最方便申请SSL证书方法介绍

申请SSL证书其实就像你去官方机构办个身份证&#xff0c;证明你的网站是合法且安全的。这里给你白话一点的简单步骤&#xff1a; 步骤一&#xff1a;确定需求 1. 域名&#xff1a;确保你有一个要申请证书的域名&#xff0c;就是你的网站地址&#xff0c;比如 www.example.com。…

MySQL Innodb中 可重复读隔离级别是否能完全规避幻读

一、MySQL 可重复读隔离级别下的幻读 在 MySQL Innodb引擎可重复读隔离级别下&#xff0c;已经尽可能最大程度的规避幻读的问题了&#xff0c;使得大多数情况下&#xff0c;重复读都是可以得到一致的结果。 针对于读数据&#xff0c;可以大致分为两种模式&#xff0c;快照读&…

网络篇12 | 链路层 ARP

网络篇12 | 链路层 ARP 01 简介1&#xff09;工作过程2&#xff09;ARP缓存2.1 动态ARP表项2.2 静态ARP表项2.3 短静态ARP表项2.4 长静态ARP表项 02 ARP报文格式1&#xff09;ARP请求报文格式2&#xff09;ARP响应报文格式3&#xff09;套一层以太网帧&#xff08;ARP帧&#x…

熟悉数电知识

23.数电 1. 建立时间、保持时间 建立时间setup time&#xff1a;时钟上升沿到来之前&#xff0c;输入端数据已经来到并稳定持续的时间。 保持时间hold time&#xff1a;时钟上升沿到来之后&#xff0c;传输端数据保持稳定并持续的时间。 2.二分频电路 每当输入一个时钟信号…

关于时频分析的一些事-答知乎问(一)

从信号的时频谱图中可以提取什么特征&#xff1f; 基于时频谱图的特征一般包括能量特征、时域和频域拓展特征以及时频内禀特征。 基于时频图的能量特征 基于时频图的特征中&#xff0c;能量特征是最简单的一种&#xff0c;通过分析时频谱图中的能量分布特性而获取信号的时频…

Gitlab全量迁移

Gitlab全量迁移 一、背景1.前提条件 一、背景 公司研发使用的Gitlab由于服务器下架需要迁移到新的Gitlab服务器上。Gitlab官方推荐了先备份然后再恢复的方法。个人采用官方的另外一种方法&#xff0c;就写这篇文章给需要的小伙伴参考。 源Gitlab: http://old.mygitlab.com #地…

算法库应用- 表的自然链接

功 能: 设计算法,将两个单链表数组的特定位序, 相同者,链接起来 编程人: 王涛 详细博客:https://blog.csdn.net/qq_57484399/article/details/127161982 时 间: 2024.4.14 版 本: V1.0 V1.0 main.cpp /***************************************** 功 能: 设计算法,将两个…

Linux:环境基础开发工具使用

文章目录 前言1.Linux下的软件安装1.1 什么是软件包1.2 如何安装软件1.3 如何卸载软件 2.vim2.1 vim的基本概念2.2 vim的基本操作2.3 vim正常模式命令集2.4 vim末行模式命令集2.5 vim的操作总结 3.Linux下的编译器&#xff1a;gcc3.1 gcc的使用3.2 gcc是如何工作的3.2.1 预处理…

嵌入式学习54-ARM3(中断和时钟)

S3c2440中断控制器 内部外设&#xff1a; DMA &#xff1a;&#xff08;直接内存存取&#xff09; Direct Memor…

基于Linux定时任务实现的MySQL周期性备份

1、创建备份目录 sudo mkdir -p /var/backups/mysql/database_name2、创建备份脚本 sudo touch /var/backups/mysql/mysqldump.sh# 用VIM编辑脚本文件&#xff0c;写入备份命令 sudo vim /var/backups/mysql/mysqldump.sh# 内如如下 #!/bin/bash mysqldump -uroot --single-…

数据库的负载均衡,高可用实验

一 高可用负载均衡集群数据库实验 1.实验拓扑图 2.实验准备(同一LAN区段)&#xff08;ntp DNS&#xff09; 客户端&#xff1a;IP&#xff1a;192.168.1.5 下载&#xff1a;MariaDB 负载均衡器&#xff1a;IP&#xff1a;192.168.1.1 下载&#xff1a;keepalived ipvsadm I…

操作系统银行家算法计算题

设系统某个T0时刻的状态&#xff0c;如表1所示&#xff1a; 表1 系统资源状态表使用银行家算法回答下面问题&#xff1a; &#xff08;1&#xff09;系统在T0时刻状态是否安全&#xff1f;若安全&#xff0c;请给出一个安全序列。 &#xff08;2&#xff09;假如T0时刻进程P1…

C语言指针进阶:数组与指针的联系

目录 1. 数组名的本质2. 使用指针访问数组3. 一维数组传参的本质4. 二级指针5. 指针数组5.1 指针数组模拟二维数组 正文开始。 1. 数组名的本质 数组名代表着这个数组中第一个元素的地址 例如&#xff1a; int arr[4] { 1,2,3,4 }; int *p1 &arr[0]; int *p2 arr;上述…

【智能优化算法】河马优化算法(Hippopotamus optimization algorithm,HO)

河马优化算法&#xff08;Hippopotamus optimization algorithm&#xff0c;HO&#xff09;是发表在中科院二区期刊“Scientific Reports”的文章“Hippopotamus Optimization Algorithm: a Novel Nature-Inspired Optimization Algorithm”上的算法。 01.引言 河马优化算法&a…

响应式导航栏不会做?看我一分钟学会制作导航栏!

引言 随着互联网技术的飞速发展&#xff0c;用户体验在网页设计中的重要性日益凸显。其中&#xff0c;导航栏作为网页的“指南针”&#xff0c;不仅能帮助用户快速定位所需内容&#xff0c;还能体现网站的整体风格和设计理念。本文将介绍如何使用HTML、CSS和JavaScript制作一个…

SpringBoot 微服务token 传递实现

1、前言 随着微服务的流行&#xff0c;微服务之间的安全以及业务需要&#xff0c;都需要穿递token &#xff0c;而token的传递一般通过header 头来传递。从架构的角度来讲 &#xff0c;一般的企业应用都由nginx、业务网关和各个微服务组成。这个nginx 传递header 我就不讲述。下…

[附带黑子定制款鸽鸽版素材包]更改文件夹图标,更改系统音效,更改鼠标指针及样式。

更改文件夹图标 1.选择图片在线格式转换网站转换为ico格式 2.右键文件夹选择属性 3.点击自定义&#xff0c;点击更改图标超链接 4.点击预览选择生成的ico文件 5.点击打开&#xff0c;点击确定&#xff0c;点击应用 更改系统音效&#xff08;真爱粉强烈推荐&#xff09; 1…

react query 学习笔记

文章目录 react query 学习笔记查询客户端 QueryClient获取查询客户端 useQueryClient异步重新请求数据 queryClient.fetchQuery /使查询失效 queryClient.invalidateQueries 与 重新请求数据queryClient.refetchQueries 查询 QueriesuseQuery查询配置对象查询的键值 Query Key…

老板最怕你出这样的代码。。。

大家好&#xff0c; 这一个月时间&#xff0c;阿里巴巴、滴滴、腾讯都发生过应用线上故障的事情&#xff0c;很多同学说是降本增“笑”的后果然后圈内流传一个新想法&#xff0c;为了避免“开源节流” 的事情&#xff0c;工作中要写一些防御性的代码。 什么意思&#xff1f;就…

现代电商会员管理新玩法——付费会员

现在&#xff0c;无论是线上还是线下&#xff0c;几乎都在做会员管理。会员规则五花八门&#xff0c;不仅有常见的注册会员&#xff0c;还出现了付费会员。付费会员机制&#xff0c;从成为会员的第一步就开始筛选&#xff0c;选出粘性高、要求高、复购高且有一定消费力的用户群…