STC单片机驱动1.8‘TFT SPI屏幕示例模板(含资料包)

STC单片机驱动1.8‘TFT SPI屏幕示例模板(含资料包)


  • 驱动演示
    在这里插入图片描述
  • STC单片机采用的是: STC12C5A60S2,采用的自制开发板:《【开源】STC12C5A60S2开发板
  • 1.8‘TFT屏幕采用的是;合宙1.8‘TFT屏幕

驱动参考资料包

  • 来源于:http://www.lcdwiki.com/zh/1.8inch_Arduino_SPI_Module_ST7735S_SKU:MAR1801
    在这里插入图片描述

我们要善于利用资料来学习,虽然这里使用的是合宙1.8" tft屏幕,但是和它们的驱动芯片都是一样的。在合宙的屏幕官方给的资料只针对它们的开发板,这不能停止我们对该屏幕的扩展使用,我们要好好利用手上的资源发挥最大的利用价值。

  • 资料包中2种驱动方式:模拟SPI和硬件SPI驱动方式
http://www.lcdwiki.com/res/Program/Arduino_SPI/1.8inch/Arduino_SPI_ST7735S_MAR1801_V1.0/1.8inch_Arduino_SPI_Module_ST7735S_MAR1801_V1.0.zip

在这里插入图片描述

汉字取模软件和方式

  • pctolcd2002
    在这里插入图片描述

接线说明

本示例所演示的是采用硬件SPI接口,使用的单片机型号 STC12C5A60S2,下面的RS对应的合宙的是DC引脚

//本模块默认数据总线类型为SPI
//液晶屏模块            单片机
//  SDA          接       P15        //SPI写信号
//=======================================液晶屏控制线接线==========================================//
//液晶屏模块            单片机
//  CS           接       P13       //片选控制信号
//  RST          接       P33       //复位信号
//  RS/DC          接       P12       //数据/命令选择控制信号
//  CLK          接       P17       //SPI时钟信号

主程序

本示例所演示的是采用硬件SPI驱动显示的DEMO程序:Demo_STC12C5A60S2_Hardware_SPI

#include "sys.h"
#include "lcd.h"
#include "gui.h"
#include "test.h"
#include "touch.h"

//STC单片机IO推挽输出设置定义
//其他普通C51单片机无此配置请屏蔽下面这条语句
//sfr P3M1  = 0xB1;	//P3M1.n,P3M0.n 	=00--->Standard,	01--->push-pull
//sfr P3M0  = 0xB2;	//					=10--->pure input,	11--->open drain

//主函数
void main(void)
{ 

	//设置STC_12LE5A60S2单片机的P3.2为推挽输出,用于控制背光亮灭
	//其他普通C51单片机无此配置请屏蔽下面这条语句
	//P3M1 &= ~(1<<2),P3M0 |=  (1<<2); 

	//液晶屏初始化
	LCD_Init();

	//循环进行各项测试	
	while(1)
	{	
		main_test(); 		//测试主界面
		Test_Color();  		//简单刷屏填充测试
		Test_FillRec();		//GUI矩形绘图测试
		Test_Circle(); 		//GUI画圆测试
		Test_Triangle();   //GUI三角形填充测试
		English_Font_test();//英文字体示例测试
		Chinese_Font_test();//中文字体示例测试
		Pic_test();			//图片显示示例测试
		Rotate_Test();
	//不使用触摸或者模块本身不带触摸,请屏蔽下面触摸屏测试
	//	Touch_Test();		//触摸屏手写测试
	//需要触摸校准时,请将触摸手写测试屏蔽,将下面触摸校准测试项打开
//		Touch_Adjust();  //触摸校准
	}   
}

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
由于STC8H8K64U单片机的具体引脚分配和TFT屏幕型号不确定,因此无法提供完整的程序代码。但是,以下是一些可能有用的代码段,以帮助您开始编写程序。 1. 初始化TFT屏幕 ```c //初始化引脚 #define TFT_DC P1_0 #define TFT_CS P1_1 #define TFT_RST P1_2 //初始化TFT屏幕 void TFT_Init(void) { TFT_DC = 0; TFT_CS = 1; TFT_RST = 0; delay_ms(50); TFT_RST = 1; delay_ms(50); //向TFT屏幕发送初始化指令 //... TFT_CS = 0; } ``` 2. 向TFT屏幕写入数据 ```c //向TFT屏幕写入一个字节的数据 void TFT_WriteByte(unsigned char data) { //设置为数据模式 TFT_DC = 1; //写入数据 //... } //向TFT屏幕写入一个16位的数据 void TFT_WriteWord(unsigned int data) { //设置为数据模式 TFT_DC = 1; //写入高字节 //... //写入低字节 //... } //向TFT屏幕写入一串数据 void TFT_WriteData(unsigned char* data, unsigned int length) { //设置为数据模式 TFT_DC = 1; //循环写入数据 for (unsigned int i = 0; i < length; i++) { //写入一个字节 //... } } ``` 3. 渲染图形 ```c //渲染一个像素点 void TFT_DrawPixel(unsigned int x, unsigned int y, unsigned int color) { //设置绘图区域 //... //设置像素点坐标 //... //写入像素点颜色 TFT_WriteWord(color); } //渲染一条直线 void TFT_DrawLine(unsigned int x0, unsigned int y0, unsigned int x1, unsigned int y1, unsigned int color) { //计算斜率 //... //循环绘制像素点 for (unsigned int x = x0; x <= x1; x++) { unsigned int y = y0 + (x - x0) * k; TFT_DrawPixel(x, y, color); } } //渲染一个矩形 void TFT_DrawRect(unsigned int x, unsigned int y, unsigned int width, unsigned int height, unsigned int color) { //循环绘制四条边 TFT_DrawLine(x, y, x + width - 1, y, color); TFT_DrawLine(x + width - 1, y, x + width - 1, y + height - 1, color); TFT_DrawLine(x + width - 1, y + height - 1, x, y + height - 1, color); TFT_DrawLine(x, y + height - 1, x, y, color); } //渲染一个填充的矩形 void TFT_FillRect(unsigned int x, unsigned int y, unsigned int width, unsigned int height, unsigned int color) { //设置绘图区域 //... //循环绘制每个像素点 for (unsigned int i = 0; i < width * height; i++) { TFT_WriteWord(color); } } ``` 请注意,以上代码仅为示例代码,实际代码可能需要根据具体情况进行修改。此外,TFT屏幕的初始化指令和颜色格式也需要根据具体型号进行设置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值