GD32驱动LCD12864

目录

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显示屏的基本概念和作用:

  1. 液晶显示技术: LCD12864显示屏采用液晶显示技术,其中液晶材料处于两块玻璃基板之间。通过在液晶层中施加电场来控制液晶分子的排列,从而实现像素的亮暗变化。

  2. 分辨率: LCD12864显示屏的分辨率为128×64像素,这意味着它可以显示128列和64行的像素点。分辨率决定了显示屏能够显示的图像或文本的清晰度和细节程度。

  3. 图形和文本显示: LCD12864显示屏可以用于显示图形和文本信息。通过控制每个像素点的亮暗状态,可以显示图形、图标和动画等内容。同时,它也可以用于显示文本信息,例如菜单、消息、数据等。

  4. 用户界面: LCD12864显示屏常用于嵌入式系统和电子设备的用户界面。通过在显示屏上显示菜单、按钮、控件等元素,用户可以与设备进行交互,并进行各种操作和设置。

  5. 信息显示: LCD12864显示屏还可以用于显示各种信息,例如传感器数据、系统状态、时间日期、温度湿度等。这些信息对用户或操作者来说是有用的,可以帮助他们了解设备的工作状态和环境条件。

1.2、硬件引脚

图1-1 硬件连接

        注明:部分引脚已省去。 

2、GD32微控制器简介

        GD32微控制器是一款由国内厂商GigaDevice推出的32位微控制器系列,它们基于ARM Cortex-M3、Cortex-M4或Cortex-M23内核,具有一系列特点和优势:

  1. 高性能: GD32微控制器采用高性能的ARM Cortex-M内核,提供较高的处理性能和运算能力,适用于各种计算密集型应用。

  2. 丰富的外设: GD32系列微控制器集成了丰富的外设,包括通用输入输出端口(GPIO)、串行通信接口(SPI、I2C、USART)、定时器(Timer)、模拟-数字转换器(ADC)等,以满足不同应用的需求。

  3. 低功耗设计: GD32微控制器采用先进的低功耗设计技术,能够在低功耗模式下运行,并提供多种节能功能,如睡眠模式、待机模式等,以延长电池寿命或降低功耗。

  4. 丰富的存储器: GD32微控制器内置了闪存(Flash)和随机存取存储器(SRAM),可用于存储程序代码和数据,支持灵活的存储器映射和扩展。

  5. 丰富的开发工具和生态系统: GD32系列微控制器提供了丰富的开发工具和生态系统,包括开发板、调试器、软件开发工具链等,以帮助开发者快速开发和调试应用程序。

  6. 良好的兼容性: GD32微控制器与市面上的其他ARM Cortex-M系列微控制器兼容性良好,可轻松移植现有的软件代码和应用程序。

  7. 成本效益高: 与其他同类产品相比,GD32微控制器具有较高的性价比,适用于各种成本敏感型应用。

         注明:本文中采取GD32F303CBT6作为参照。

3、LCD12864显示屏简介 

3.1、模块引脚说明

        模块引脚是20引脚,有些引脚是固定状态,所以原理图中只画了16个引脚。

图2-1 模块引脚说明

 3.2、模块连接方式

         LCD12864与主控有两种连接方式,也就是两种通信方式,可以选择串行和并行,本文主要介绍更为高效的并行方式。

图3-1 主控写lcd12864时序图

图3-2 主控读lcd12864时序图

4、驱动原理 

         官方给出了一套指令集用来驱动该模块。将寄存器模式初始化好,然后使用指令集来配置显示屏就可以实现。

4.1、指令集

        在编写命令的时候,忙等待是一个非常重要的一个点,你可以通过判断数据位最高位(DB7)的状态来检测是否lcd12864模块是否忙碌。

图4-1 用户指令集

         使用到的指令集如下对应:

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、显示坐标关系

图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、硬件连接

图6-1 硬件连接原理图

        大家在参照代码的时候,一定要结合图中主控连接的引脚一起阅读,我这个数据引脚是不连续的,写起来更加的麻烦,要是你实际的数据引脚是连续的,更加的方便,我这边数据据引脚不是连续的,导致写指令麻烦,方法都想了很多种。比如一般的写0x34,直接就是八位的状态,但是我需要拆分出每一位状态来配置,一切以你实际情况为主。

7、效果演示 

图7-1 效果图测试

8、附录

链接:https://pan.baidu.com/s/1F2jhSBkrujyCRaqgd6aZTw?pwd=0630 
提取码:0630

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C语言 | Leetcode C语言题解之第88题合并两个有序数组

题目: 题解: void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n) {int p1 m - 1, p2 n - 1;int tail m n - 1;int cur;while (p1 > 0 || p2 > 0) {if (p1 -1) {cur nums2[p2--];} else if (p2 -1) {cur nu…

sudo apt-get update失败,怎么解决

本篇文章主要是从我的解决方案出发,因为个体差异性,对大家的帮助可能有限,不过大家也可以作为参考之一。 输入sudo apt-get update,结果一直显示: W: 无法下载 http://mirrors.aliyun.com/ubuntu/dists/jammy-securi…

今日早报 每日精选15条新闻简报 每天一分钟 知晓天下事 5月14日,星期二

每天一分钟,知晓天下事! 2024年5月14日 星期二 农历四月初七 1、 两部门:2024年全国计划招聘“特岗计划”教师3.7万名。 2、 人社部:2024年“三支一扶”计划拟招募3.44万名高校毕业生。 3、 财政部:5月17日、5月24日…

Nios实验入门——用Verilog编程方式完成LED流水灯显示并使用串口输出“Hello Nios-II”字符到笔记本电脑

文章目录 前言一、Verilog编程方式完成LED流水灯显示1.1 新建工程并添加FPGA芯片1.2 新建.v文件并添加至顶层实体1.3 引脚分配1.4 编译(包含分析与综合)1.5 选择烧录器1.6 添加烧录文件1.7 下载1.8 实验现象 二、Verilog编程方式实现串口2.1 uart_tx.v文件2.2 test.v文件2.3 to…

Linux x86_64 dump_stack()函数基于FP栈回溯

文章目录 前言一、dump_stack函数使用二、dump_stack函数源码解析2.1 show_stack2.2 show_stack_log_lvl2.3 show_trace_log_lvl2.4 dump_trace2.5 print_context_stack 参考资料 前言 Linux x86_64 centos7 Linux:3.10.0 一、dump_stack函数使用 dump_stack函数…

LeetCode 力扣题目:买卖股票的最佳时机 III

❤️❤️❤️ 欢迎来到我的博客。希望您能在这里找到既有价值又有趣的内容,和我一起探索、学习和成长。欢迎评论区畅所欲言、享受知识的乐趣! 推荐:数据分析螺丝钉的首页 格物致知 终身学习 期待您的关注 导航: LeetCode解锁100…

Autosar架构

蓝框那种叫component,绿框的叫function cluster。 接口 有三种接口,RTE跟SWC之间链接的叫Autosar Interface,RTE跟BSW的Components链接是Standardized Interface,RTE跟BSW的services链接的是Standardized Autosar Interface。 St…

C语言 8 函数递归

目录 1. 递归是什么? 2.递归的限制条件 3. 递归举例1 4. 递归举例2 5.迭代 6. 递归举例3 拓展学习: 1. 递归是什么? 递归是学习C语⾔函数绕不开的⼀个话题,那什么是递归呢? 递归其实是⼀种解决问题的⽅法&#xff0c…

【Spring】Springmvc学习Ⅲ

# Springmvc学习Ⅲ 文章目录 一、图书管理系统1. 功能1.1 登录前端接口前端代码后端接口后端代码 1.2 图书列表展示步骤:图书类代码mock数据代码控制层调用代码服务层代码(存储除数据库中需要存储的数据) 2. 分层控制2.1 三层架构2.2 代码重…

Softing dataFEED OPC Suite通过OPC UA标准加速数字化转型

数字化转型的关键在于成功将信息技术(IT)与运营技术(OT)相融合,例如将商业应用程序和服务器与可编程逻辑控制器(PLC)和设备传感器相融合,为此,各种设备和系统必须能够相互…

【Day1:JAVA导学】

目录 1、path环境变量2、Java背景介绍2.1 Java SE:2.2 Java ME:2.3 Java EE: 3、Java的跨平台性3.1 Java跨平台的原理: 4、Java开发程序的三个步骤5、JDK的组成和配置5.1 JDK的组成: 6、IDEA项目结构介绍7、Java关键字…

01 | 为什么需要消息队列?

哪些问题适合使用消息队列来解决? 1. 异步处理 2. 流量控制 使用消息队列隔离网关和后端服务,以达到流量控制和保护后端服务的目的。 3. 服务解耦 无论增加、减少下游系统或是下游系统需求如何变化,订单服务都无需做任何更改&#xff0c…

秋招算法——AcWing101——拦截导弹

文章目录 题目描述思路分析实现源码分析总结 题目描述 思路分析 目前是有一个笨办法,就是创建链表记录每一个最长下降子序列所对应的节点的链接,然后逐个记录所有结点的访问情况,直接所有节点都被访问过。这个方法不是很好,因为需…

工作玩手机监测识别摄像机

工作场所的员工玩手机已经成为了一种常见的现象,特别是在办公室、生产车间等地方。而这种现象不仅仅影响了员工的工作效率,还可能会对工作安全造成一定的隐患。为了监测和识别员工玩手机的情况,工作玩手机监测识别摄像机应运而生。工作玩手机…

不知摄像机网段IP地址?别担心,这里有解决之道

在数字化、智能化的今天,摄像机作为安全监控和日常记录的重要工具,其应用越来越广泛。然而,在实际使用中,我们可能会遇到一些问题,比如忘记了摄像机的网段IP地址,这往往会让我们感到头疼。那么,…

Hashmap详细解析,原理及使用方法分析

hashmap基本原理 根据的hashCode值存储数据。由数组链表组成的,Entnr数组是HashMap的主体,数组中每个元素是一个单向链表。链表则是1/1解哈希冲突而存在的。在lava8中,使用红黑树优化。当链表长度大于8并且元素个数大于64,转为红…

官宣!招商工作全面启动“2024南京智博会”众多企业踊跃报名

2024南京智博会,作为一场盛大的科技盛宴,经过多年的发展与沉淀,已经成功跻身国内顶尖的高新技术产品及解决方案的展示平台之列,成为了引领行业趋势的风向标。本届智博会不仅汇聚了众多知名科技企业,更展现了国内外最前…

Java扫盲

1.常见的代码结构: 转自知乎天马行空的程序猿

##19 序列与时间序列预测:运用RNN和LSTM在PyTorch中的实践

文章目录 前言时间序列预测的基本概念关键概念 RNN及其局限性LSTM网络的崛起用PyTorch进行时间序列预测准备数据集数据预处理创建数据加载器构建LSTM模型训练模型测试和评估模型结语 前言 随着数据的爆炸式增长,时间序列预测在多个领域内变得越来越重要。它能帮助我…

jenkins+docker实现前后端项目的自动化构建和容器部署

1、安装环境 centos 2、docker安装 yum install docker# 启动docker systemctl start docker 3、docker 安装jenkins 3.1 拉取jenkins镜像 docker pull jenkins/jenkins:latest-jdk8 3.2 启动jenkins容器 docker run -d --name jenkins -u root --privilegedtrue --res…