目录
1、引言
1.1、LCD12864基本概念和作用。
1.2、硬件引脚
2、GD32微控制器简介
3、LCD12864显示屏简介
3.1、模块引脚说明
3.2、模块连接方式
4、驱动原理
4.1、指令集
4.2、显示坐标关系
5、软件开发
6、硬件连接
7、效果演示
8、附录
1、引言
1.1、LCD12864基本概念和作用。
LCD12864显示屏是一种基于液晶显示技术的显示设备,它由128×64个像素点组成。这种显示屏通常用于各种电子设备和嵌入式系统中,提供用户界面或显示信息的功能。
以下是LCD12864显示屏的基本概念和作用:
-
液晶显示技术: LCD12864显示屏采用液晶显示技术,其中液晶材料处于两块玻璃基板之间。通过在液晶层中施加电场来控制液晶分子的排列,从而实现像素的亮暗变化。
-
分辨率: LCD12864显示屏的分辨率为128×64像素,这意味着它可以显示128列和64行的像素点。分辨率决定了显示屏能够显示的图像或文本的清晰度和细节程度。
-
图形和文本显示: LCD12864显示屏可以用于显示图形和文本信息。通过控制每个像素点的亮暗状态,可以显示图形、图标和动画等内容。同时,它也可以用于显示文本信息,例如菜单、消息、数据等。
-
用户界面: LCD12864显示屏常用于嵌入式系统和电子设备的用户界面。通过在显示屏上显示菜单、按钮、控件等元素,用户可以与设备进行交互,并进行各种操作和设置。
-
信息显示: LCD12864显示屏还可以用于显示各种信息,例如传感器数据、系统状态、时间日期、温度湿度等。这些信息对用户或操作者来说是有用的,可以帮助他们了解设备的工作状态和环境条件。
1.2、硬件引脚
注明:部分引脚已省去。
2、GD32微控制器简介
GD32微控制器是一款由国内厂商GigaDevice推出的32位微控制器系列,它们基于ARM Cortex-M3、Cortex-M4或Cortex-M23内核,具有一系列特点和优势:
-
高性能: GD32微控制器采用高性能的ARM Cortex-M内核,提供较高的处理性能和运算能力,适用于各种计算密集型应用。
-
丰富的外设: GD32系列微控制器集成了丰富的外设,包括通用输入输出端口(GPIO)、串行通信接口(SPI、I2C、USART)、定时器(Timer)、模拟-数字转换器(ADC)等,以满足不同应用的需求。
-
低功耗设计: GD32微控制器采用先进的低功耗设计技术,能够在低功耗模式下运行,并提供多种节能功能,如睡眠模式、待机模式等,以延长电池寿命或降低功耗。
-
丰富的存储器: GD32微控制器内置了闪存(Flash)和随机存取存储器(SRAM),可用于存储程序代码和数据,支持灵活的存储器映射和扩展。
-
丰富的开发工具和生态系统: GD32系列微控制器提供了丰富的开发工具和生态系统,包括开发板、调试器、软件开发工具链等,以帮助开发者快速开发和调试应用程序。
-
良好的兼容性: GD32微控制器与市面上的其他ARM Cortex-M系列微控制器兼容性良好,可轻松移植现有的软件代码和应用程序。
-
成本效益高: 与其他同类产品相比,GD32微控制器具有较高的性价比,适用于各种成本敏感型应用。
注明:本文中采取GD32F303CBT6作为参照。
3、LCD12864显示屏简介
3.1、模块引脚说明
模块引脚是20引脚,有些引脚是固定状态,所以原理图中只画了16个引脚。
3.2、模块连接方式
LCD12864与主控有两种连接方式,也就是两种通信方式,可以选择串行和并行,本文主要介绍更为高效的并行方式。
4、驱动原理
官方给出了一套指令集用来驱动该模块。将寄存器模式初始化好,然后使用指令集来配置显示屏就可以实现。
4.1、指令集
在编写命令的时候,忙等待是一个非常重要的一个点,你可以通过判断数据位最高位(DB7)的状态来检测是否lcd12864模块是否忙碌。
使用到的指令集如下对应:
void lcd12864_init()//显示屏的初始化
{
lcd12864_write_command(0x01);
delay_1ms(1);
lcd12864_write_command(0x02);
delay_1ms(1);
lcd12864_write_command(0x0c);
delay_1ms(1);
lcd12864_write_command(0x80);
delay_1ms(1);
lcd12864_write_command(0x34);
delay_1ms(1);
lcd12864_write_command(0x30);
delay_1ms(1);
}
4.2、显示坐标关系
void lcd12864_display_pos(unsigned char X, unsigned char Y)//设置显示的坐标
{
unsigned char addr;
if (Y == 0)
addr = 0x80;
if (Y == 1)
addr = 0x90;
if (Y == 2)
addr = 0x88;
if (Y == 3)
addr = 0x98;
addr += X;
lcd12864_write_command(addr);
}
5、软件开发
int mian()
{
sys_init();//时钟、看门狗、gpio引脚等模式配置
set_dog();
lcd_init();//屏幕的初始化
lcd12864_init();//显示屏初始化(指令集驱动)
lcd12864_show_string(0, 0, " Press button ");//显示字符串
while(1)
{
set_dog();
}
}
代码放入了网盘中、文档资料在附录:
链接:https://pan.baidu.com/s/1SDuE2xRCJhNR8GFeQgdeZw?pwd=0520
提取码:0520
6、硬件连接
大家在参照代码的时候,一定要结合图中主控连接的引脚一起阅读,我这个数据引脚是不连续的,写起来更加的麻烦,要是你实际的数据引脚是连续的,更加的方便,我这边数据据引脚不是连续的,导致写指令麻烦,方法都想了很多种。比如一般的写0x34,直接就是八位的状态,但是我需要拆分出每一位状态来配置,一切以你实际情况为主。
7、效果演示
8、附录
链接:https://pan.baidu.com/s/1F2jhSBkrujyCRaqgd6aZTw?pwd=0630
提取码:0630