K_A04_002 基于单片机驱动LCD12864模块显示图片 文字

目录

一、资源说明

二、基本参数

        1、参数

        2、引脚说明

三、通信协议说明

        写时序:

        写命令代码:

四、部分代码说明

        1、接线说明

                1.1、STC89C52RC+LCD12864模块

                1.2、STM32F103C8T6+LCD12864模块

五、基础知识学习与相关资料下载

六、字符图片提取格式

七、视频效果展示与程序资料获取

八、项目所有材料清单

九、注意事项

十、接线表格


一、资源说明

单片机型号

测试条件

模块名称

代码功能

STC89C52RC

1.晶振11.0592M

LCD12864模块

LCD12864模块显示图片 文字 

STM32F103C8T6

  1. 晶振8M
  2. 系统时钟72M

LCD12864模块

二、基本参数

        1、参数

1e3c5f7a6afd47b5b4793f7afabe85ad.png

        2、引脚说明

LCD12864模块

引脚说明

GND

GND引脚接电源地,如果外接电源,一般必须共地

VDD

VCC电源引脚,根据版本接5V或3.3V

V0

LCD 驱动电压输入端(此处客不接直接用背面电位器)

RS

指令/数据选择信号

RW

读写选择信号

E

使能信号

DB0

数据 0

DB1

数据 1

DB2

数据 2

DB3

数据 3

DB4

数据 4

DB5

数据 5

DB6

数据 6

DB7

数据 7

PSB

并/串行接口选择:H-并行;L-串行

NC

空脚

RST

复位 低电平有效

VOUT

倍压输出脚 (VDD=+3.3V 有效)

A

LED+  5V或3.3V

K

LED-  GND

三、通信协议说明

        写时序:

b26ebd81e3ea4f3d9aafd9f4be88237b.jpeg

        写命令代码:

 //传送数据或者命令,当DI=0是,传送命令,当DI=1,传送数据.

void  TransferData(char data1,bit DI)

 {

    WRD=0;

    RS=DI;

    delay(1);

    LCD_Date=data1;

    E=1;

    delay(1);

    E=0;

}

四、部分代码说明

        1、接线说明

                需要自定义引脚可在此处更改,STM32要自定义引脚的话也要注意引脚时钟使能的更改

                1.1、STC89C52RC+LCD12864模块

#define LCD_Date P0

sbit RS  = P2^6;

sbit WRD = P2^5;

sbit E   = P2^7;

sbit PSB = P3^2;

sbit RES = P3^3;

                1.2、STM32F103C8T6+LCD12864模块

void LCD1602_GPIO_Config(void)
{		
		/*定义一个GPIO_InitTypeDef类型的结构体*/
		GPIO_InitTypeDef GPIO_InitStructure;

		/*开启LED相关的GPIO外设时钟*/
		RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB,ENABLE);
	
	//LCD_E引脚初始化
		GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;	
		GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   
		GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 
		GPIO_Init(GPIOA, &GPIO_InitStructure);	
		
	//LCD_RW引脚初始化
		GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
		GPIO_Init(GPIOA, &GPIO_InitStructure);
		
	//LCD_RS引脚初始化
		GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
		GPIO_Init(GPIOA, &GPIO_InitStructure);
		
		//LCD_PSB引脚初始化
		GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
		GPIO_Init(GPIOB, &GPIO_InitStructure);
		
		//LCD_RST引脚初始化
		GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
		GPIO_Init(GPIOB, &GPIO_InitStructure);

	//D0-D7引脚初始化
		GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;
		GPIO_Init(GPIOA, &GPIO_InitStructure); 
		

}

五、基础知识学习与相关资料下载

  1. STC89C52RC程序下载 直戳跳转
  2. STM32F103C8T6程序下载
    1. 串口下载                直戳跳转 
    2. ST-LINK下载             直戳跳转
    3. J-LINK下载              直戳跳转
    4. DAP-LINK下载            直戳跳转
  3. 字符软件提取

         PCtoLCD2013软件图形与文字提取          直戳跳转

六、字符图片提取格式

图片格式:共阴——逐行式——顺向——C51——行前后缀括号去掉

手绘图:图像模式——点开新建图像——输入长宽像素并确认——绘制图片——设置输出格式——点生成——复制数据到程序

74b55ef901a44bef8894833cdf120535.jpeg

e1225a22ddd84701a4b7d8c14066d97d.jpeg

打开BMP图:图像模式——点开文件中打开——找到需要打开的BMP图片——设置输出格式——点生成——复制数据到程序

53b157cbfe544e8a8f2385eed1cbf011.jpeg

567706a0f0274403a4ec77e10e93dd79.jpeg

七、视频效果展示与程序资料获取

        视频连接                直戳跳转

        资料获取            ( 滑到最后添加群号看公告免费获取)      

八、项目所有材料清单

 STC89C52RC驱动方案

图片

STM32F103C8T6驱动方案

图片

备注

K_A04_002

STC89C52RC系统板X1

48480e40fed64aa08778d6f4532cd122.jpeg

STM32F103C8T6系统板X1

e294ee9efa75409c9873250de35f5848.jpeg

1、STM32系统板两根Micro USB线一根用于J-LINK下载器,另一根用于给系统板供电

2、杜邦线建议不用太长的

LCD12864模块X1

4aa0f3992bad42658d8c2281dfcb8b3a.jpeg

LCD12864模块X1

86494787e3d34aa881a92dede114edcc.jpeg

Micro USB线X1

a6ae6aa5cd324582a5728753803e6f3c.jpeg

Micro USB线X2

67ea9eadd6534e6caf07b82f837c22a5.jpeg

母母杜邦线X20根

5de4f17f8ff94f5789032fda917102ed.jpeg

母母杜邦线X20根

597eb3ead599419492e60c2754b8d763.jpeg

J-LINK下载器

953b3e8f92cb4968a3d93aeb10a98da2.jpeg

九、注意事项

  1. VCC GND请勿接反,接反易烧
  2. 显示异常时,排除接线接触不良
  3. 显示中文时候注意字符串格式 中文占用两个字节 所以字符位置开始要在偶数位置
  4. LCD12864背光调节默认可不外接电位器 可调背面电位器

十、接线表格

单片机型号

模块

对应引脚(上:模块引脚 下:单片机引脚)

STM32F103

C8T6

LCD12864模块

GND

VDD

VO

RS

RW

E

D0

D1

D2

D3

GND

5V

不接

PA8

PA12

PA11

PA0

PA1

PA2

PA3

D4

D5

D6

D7

PSB

NC

RST

VOUT

A

K

PA4

PA5

PA6

PA7

PB6

不接

PB7

不接

3.3V

GND

STC89C52RC

LCD12864模块

GND

VDD

VO

RS

RW

E

D0

D1

D2

D3

GND

5V

不接

P2.6

P2.5

P2.7

P0.0

P0.1

P0.2

P0.3

D4

D5

D6

D7

PSB

NC

RST

VOUT

A

K

P0.4

P0.5

P0.6

P3.2

P3.2

不接

P3.3

不接

5V

GND

ADS131A04驱动代码需要根据具体的硬件连接方式、应用场景等进行编写。以下是一个基本的参考代码,供您参考: ```c #include "stm32f4xx.h" #include "ads131a04.h" #include "spi.h" //SPI接口驱动 #define ADS131A04_CS_LOW() GPIO_ResetBits(GPIOA, GPIO_Pin_4) //拉低片选 #define ADS131A04_CS_HIGH() GPIO_SetBits(GPIOA, GPIO_Pin_4) //拉高片选 /* ADS131A04初始化函数 */ void ADS131A04_Init(void) { ADS131A04_CS_HIGH(); //先将片选拉高 //设置ADS131A04的初始化寄存器 ADS131A04_WriteReg(ADS131A04_REG_CONFIG1, 0x00); //采样率为2kSPS ADS131A04_WriteReg(ADS131A04_REG_CONFIG2, 0x02); //增益为1,内部参考电压为2.5V ADS131A04_WriteReg(ADS131A04_REG_CONFIG3, 0x04); //启用内部温度传感器 //启动ADS131A04的自校准 ADS131A04_CS_LOW(); SPI_WriteByte(ADS131A04_CMD_SELFCAL); ADS131A04_CS_HIGH(); } /* ADS131A04读取数据函数 */ void ADS131A04_ReadData(uint32_t *pData) { ADS131A04_CS_LOW(); //发送读取数据寄存器的命令 SPI_WriteByte(ADS131A04_CMD_RDATA); //读取数据 for (int i = 0; i < 4; i++) { uint8_t byte1 = SPI_ReadByte(); uint8_t byte2 = SPI_ReadByte(); uint8_t byte3 = SPI_ReadByte(); uint8_t byte4 = SPI_ReadByte(); *pData++ = (byte1 << 24) | (byte2 << 16) | (byte3 << 8) | byte4; } ADS131A04_CS_HIGH(); } /* ADS131A04写寄存器函数 */ void ADS131A04_WriteReg(uint8_t reg, uint8_t value) { ADS131A04_CS_LOW(); //发送写寄存器命令和寄存器地址 SPI_WriteByte(ADS131A04_CMD_WREG | reg); //发送寄存器值 SPI_WriteByte(value); ADS131A04_CS_HIGH(); } ``` 以上代码中,使用SPI接口与ADS131A04进行通信。在初始化函数中,设置了采样率、增益、内部参考电压和温度传感器等参数,并启动了自校准。在读取数据函数中,发送读取数据寄存器的命令,然后连续读取4个字节的数据,并将其拼接成32位的数据。在写寄存器函数中,发送写寄存器命令和寄存器地址,然后发送寄存器值。 需要注意的是,以上代码中的具体数值可能需要根据实际硬件和应用场景进行调整。同时,还需要根据具体的硬件连接方式进行相应的初始化和配置。建议参考相关的硬件和软件开发文档,以及示例代码。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值