K_A04_003 基于单片机驱动COG12864显示图片文字和字符串

目录

一、资源说明

二、基本参数

        1.参数

        2.引脚说明

                COG12864

三、通信协议说明

        SPI时序

                写数据和命令时序:

                代码:

四、部分代码说明

        1.接线说明

                1.1、STC89C52RC+COG12864模块

                1.2、STM32F103C8T6+COG12864模块

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

六、字符图片提取格式

        文字格式:

        图片格式:

        打开BMP图:

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

 八、项目所有材料清单

九、注意事项

十、接线表格


一、资源说明

单片机型号

测试条件

模块名称

代码功能

STC89C52RC

1.晶振11.0592M

COG12864模块(不带字库)

COG12864模块显示图片 文字 字符串

STM32F103C8T6

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

COG12864模块(不带字库)

二、基本参数

        1.参数

c1437e340bd84fe5bca9daa78a6646ea.jpeg

3cf56d942e864503a3b5fcb823903a03.jpeg

        2.引脚说明

                COG12864

COG12864模块

引脚说明

ROM_IN

字库 IC 接口(SI)(此处无字库芯片)

ROM_OUT

字库 IC 接口(SO)(此处无字库芯片)

ROM_SCK

字 库 IC 接 口 (SCLK) (此处无字库芯片)

ROM_CS

字库 IC 接口(CS#)(此处无字库芯片)

LEDA

背光电源

VSS

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

VDD

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

SCLK

串行时钟

SDA

串行数据

RS

寄存器选择信号

RESET

复位

CS

片选

三、通信协议说明

        SPI时序

                写数据和命令时序:

3096a417f0324b35819e61683235fec2.jpeg

                代码:

//SPI写一个字节
void SPI_SendByte(uint8_t byte)
{
  
  uint8_t counter;
   
  for(counter=0;counter<8;counter++)
  { 
    SPI_SCK=0;
	     
    if((byte&0x80)==0)
    {
      SPI_SDA=0;
    }
    else SPI_SDA=1;
    byte=byte<<1;
	
    SPI_SCK=1;	
	
	SPI_SCK=0;
		
  } 
}
//写命令到LCD12864
void LCD_send_cmd(uint8_t o_command)
{
    SPI_DC=0;
    SPI_CS=0;
    SPI_SendByte(o_command);
    SPI_CS=1;
     
    //SPI_DC_1;
}
//写一个字节数据到LCD12864
void LCD_send_data(uint8_t o_data)
{ 
    SPI_DC=1;
    SPI_CS=0;
    SPI_SendByte(o_data);
    SPI_CS=1;

}

四、部分代码说明

        1.接线说明

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

                1.1、STC89C52RC+COG12864模块

sbit SPI_SCK =P1^0;         //    SCL/SCK
sbit SPI_SDA =P1^1;         //    SDA/MOSI
sbit SPI_DC  =P1^2;         //    DC/RS
sbit SPI_RST =P1^3;         //    RES/RST
sbit SPI_CS  =P1^4;         //    CS

                1.2、STM32F103C8T6+COG12864模块

//SCL//DO//SCK
#define       LCD12864G_SCK_APBxClock_CMD      RCC_APB2PeriphClockCmd
#define       LCD12864G_SCK_CLK                RCC_APB2Periph_GPIOA    
#define       LCD12864G_SCK_PORT               GPIOA 
#define       LCD12864G_SCK_PIN                GPIO_Pin_0                      
  
//SDA//DI
#define       LCD12864G_SDA_APBxClock_CMD      RCC_APB2PeriphClockCmd
#define       LCD12864G_SDA_CLK                RCC_APB2Periph_GPIOA    
#define       LCD12864G_SDA_PORT               GPIOA 
#define       LCD12864G_SDA_PIN                GPIO_Pin_1
//DC/RS引脚 
#define       LCD12864G_RS_APBxClock_CMD        RCC_APB2PeriphClockCmd
#define       LCD12864G_RS_CLK                  RCC_APB2Periph_GPIOA   
#define       LCD12864G_RS_PORT                 GPIOA
#define       LCD12864G_RS_PIN                  GPIO_Pin_2


//RST引脚
#define       LCD12864G_RST_APBxClock_CMD       RCC_APB2PeriphClockCmd
#define       LCD12864G_RST_CLK                 RCC_APB2Periph_GPIOA   
#define       LCD12864G_RST_PORT                GPIOA   
#define       LCD12864G_RST_PIN                 GPIO_Pin_3

   
//CS(NSS)引脚 
#define       LCD12864G_CS_APBxClock_CMD        RCC_APB2PeriphClockCmd
#define       LCD12864G_CS_CLK                  RCC_APB2Periph_GPIOA   
#define       LCD12864G_CS_PORT                 GPIOA
#define       LCD12864G_CS_PIN                  GPIO_Pin_4

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

  1. STC89C52RC程序下载 直戳跳转
  2. STM32F103C8T6程序下载
    1. 串口下载                直戳跳转 
    2. ST-LINK下载             直戳跳转
    3. J-LINK下载              直戳跳转
    4. DAP-LINK下载            直戳跳转

     3.字符软件提取

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

六、字符图片提取格式

        文字格式:

共阴——列行式——逆向——C51——行前后缀括号去掉(具体格式设置以此为准)

5d9ed5c2ee864cea87f35eb21fa833a2.png

        图片格式:

共阴——列行式——逆向——C51——行前后缀括号去掉(具体格式设置以此为准)

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

2e3403d948764263baa8fed6701b45f7.png

0f01ec2c239044eeb676f2fa56e0eb35.png

        打开BMP图:

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

37cf83d8c3b24a369086eef205ae268c.png

20181ece06c0474bb4d546161076f175.png

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

        视频连接                直戳跳转

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

 八、项目所有材料清单

  STC89C52RC驱动方案

图片

STM32F103C8T6驱动方案

图片

备注

K_A04_003

STC89C52RC系统板X1

48480e40fed64aa08778d6f4532cd122.jpeg

STM32F103C8T6系统板X1

e294ee9efa75409c9873250de35f5848.jpeg

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

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

COG12864模块X1

5330a196a4a745a88bbb5ecdf60f0806.jpegCOG12864模块X11c5bf00cfc2145d3946f3f1460790722.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. LEDA可接3.3V 太亮也可接IO口 高电平亮

十、接线表格

单片机型号

模块

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

STM32F103

C8T6

COG12864模块

LEDA

VSS

VDD

SCLK

SDA

RS

RESET

CS

3.3V

GND

3.3\5V

PA0

PA1

PA2

PA3

PA4

STC89C52RC

COG12864模块

LEDA

VSS

VDD

SCLK

SDA

RS

RESET

CS

3.3V

GND

3.3\5V

P1.0

P1.1

P1.2

P1.3

P1.4

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位的数据。在写寄存器函数中,发送写寄存器命令和寄存器地址,然后发送寄存器值。 需要注意的是,以上代码中的具体数值可能需要根据实际硬件和应用场景进行调整。同时,还需要根据具体的硬件连接方式进行相应的初始化和配置。建议参考相关的硬件和软件开发文档,以及示例代码。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值