跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

STM32如何轻松使用LCD12864显示屏?

文章导读

大家好,我是林译川。今天我们来聊聊STM32如何轻松使用LCD12864显示屏。LCD12864是一款常见的图形点阵液晶模块,通过串行方式与STM32通信,可以实现丰富的显示效果。本文将带你一步步了解其原理和配置方法,让你轻松上手。

LCD12864简介

LCD12864是一款4位/8位并行、2线或3线接口方式的图形点阵液晶模块。它内置了丰富的中文字库和ASCII字符集,显示分辨率为128x64,非常适合用于各种嵌入式项目中。

串口通讯引脚

  • CS片选信号:用于选择液晶屏。
  • SID数据传输引脚:用于数据传输。
  • CLK时钟:用于同步数据传输。
  • PSB(低电平表示串行通讯):用于选择串行或并行通讯方式。
  • VSS、VDD电源脚:提供电源。

串行时序图

在操作液晶屏前,需要将CS片选信号拉高。SID前8位是控制字符,其中1-5位固定为1。RW为0时表示写操作,RS为1时表示写数据,RS为0时表示写指令。写指令CMD固定为0xF8,写数据DAT固定为0xFA。发送数据分为两组,将发送的8位数据截取成两段,第一段发送给1byte的高4位,第二段发送给2byte的高4位。

基本指令说明

  • 功能设定:使用0x30表示8位MPU控制,选择基本指令集。
  • 显示开关设置:使用0x0C表示设定显示开,关闭光标,正常显示。
  • 进入设定点:使用0x06表示显示数据的读写时,设定游标方向右移,DDRAM地址计数器加1。
  • 清楚显示:使用0x01表示清除显示。
  • 设定DDRAM地址:使用0x80表示设置启动位置到地址计数器。

代码配置

#ifndef __LCD12864_H
#define __LCD12864_H

#include "stm32f10x.h"
#include "Delay.h"

#define CS 	GPIO_Pin_0	//片选信号
#define SID GPIO_Pin_1	//数据传输
#define CLK GPIO_Pin_2	//时钟
#define PSB GPIO_Pin_3	//串并选择 低电平为串行
#define CMD_PROT GPIOC	//GPIO分组

#define CS_HIGH GPIO_SetBits(CMD_PROT,CS)
#define CS_LOW GPIO_ResetBits(CMD_PROT,CS)
#define SID_HIGH GPIO_SetBits(CMD_PROT,SID)
#define SID_LOW GPIO_ResetBits(CMD_PROT,SID)
#define CLK_HIGH GPIO_SetBits(CMD_PROT,CLK)
#define CLK_LOW GPIO_ResetBits(CMD_PROT,CLK)
#define PSB_HIGH GPIO_SetBits(CMD_PROT,PSB)
#define PSB_LOW GPIO_ResetBits(CMD_PROT,PSB)

#define CMD 0xF8	//写指令
#define DAT 0xFA	//写数据

typedef struct{
	uint8_t com;	//地址
	uint8_t num;	//长度
	uint8_t *dat;	//数据
}LCD_InitTypeDef;	//定义写文字用的结构体

void LCD12864_UserConfig(void);/*用户配置*/
void LCD12864_Write_Init(void);/*LCD12864上电初始化流程*/
void LCD12864_Write_CMD_Data(uint8_t cmd,uint8_t data);/*LCD12864写函数 传入指令写指令,传入数据写数据*/
void LCD12864_Write_Word(LCD_InitTypeDef LCD_InitStructure);/*LCD12864写文字*/
void LCD12864_Write_Number(uint8_t com,uint8_t num);/*LCD12864写数字*/
void LCD12864_Open(void);/*屏幕开显示*/
void LCD12864_Shut(void);/*屏幕关显示,进入睡眠*/

#endif

小结与拓展

通过本文的学习,相信大家对STM32使用LCD12864显示屏有了更深入的了解。LCD12864的应用非常广泛,可以用于显示文字、图形、图表等。接下来,我们可以尝试将LCD12864与其他传感器、模块进行结合,实现更复杂的嵌入式应用。

我是林译川,感谢大家的阅读。如果您对编程思维和技术有更多的疑问,欢迎关注「新派编程网」(www.xjpbg.com)了解更多内容。

相关文章