⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tft.c

📁 HOT51开发板TFT彩屏的程序
💻 C
字号:
#include <reg51.h>
#include "TFT.h"
#include "TYPE.h"

/*=========================================================
函数描述:选寄存器
隶属模块:TFT
参数说明:com输入命令
返回说明:无返回值
===========================================================*/
void THT_COM(INT8U com)
{
	RX = 1;
	CS = 0;
	WD = 1;

	A0 = 0;
	P0 = com;
	CS = 0;
	WD = 0;
	
	CS = 1;
	WD = 1;	 	
} 
/*=========================================================
函数描述:写入设置
隶属模块:TFT
参数说明:dat输入值
返回说明:无返回值
===========================================================*/
void THT_DAT(INT8U dat)
{
	RX = 1;
	CS = 0;
	WD = 1;

	A0 = 1;
	P0 = dat;
	CS = 0;
	WD = 0;	
}
/*=========================================================
函数描述:设置一个特殊的区域
隶属模块:TFT
参数说明:x1,y1,x2,y2传入的图形的轮廓坐标值
返回说明:无返回值
===========================================================*/ 
void TFTSetArea( INT16U x1, INT16U y1, INT16U x2, INT16U y2 )
{
	x1+=2;
	x2+=2;
	y1+=3;
 	y2+=3;	

    THT_COM(0x2A);
	THT_DAT(x1>>8);
	THT_DAT(x1);
	THT_DAT(x2>>8);
	THT_DAT(x2); 

	THT_COM(0x2B);
	THT_DAT(y1>>8);
	THT_DAT(y1); 
	THT_DAT(y2>>8);
	THT_DAT(y2); 
	THT_COM(0x2C);
}
/*=========================================================
函数描述:为图形、窗口上色
隶属模块:TFT
参数说明:dollop为DOLLOP结构体类型的参数
返回说明:无返回值
===========================================================*/  
void TFTDrawDollop( DOLLOP* dollop )
{
	INT8U x,y;

	TFTSetArea(dollop->Xs, dollop->Ys, dollop->Xe, dollop->Ye);   	//子TFT上设置一个区域
	for( x = 0; x < dollop->Xe - dollop->Xs + 1; x ++ )					//显示行
	{
	 	for( y = 0; y < dollop->Ye - dollop->Ys + 1; y++ )	 			//显示列
		{
		 	THT_DAT(dollop->Color>>8);
			THT_DAT(dollop->Color );
		}
	}
}
/*=========================================================
函数描述:对整个窗口的颜色初始化
隶属模块:TFT
参数说明:Color为16字节的BGR数据
返回说明:无返回值
===========================================================*/
void GUI_Inital(INT16U Color )
{
	DOLLOP dollop;

	dollop.Xs = 0;
	dollop.Xe = 127;
	dollop.Ys = 0;
	dollop.Ye = 129;
	dollop.Color = Color;

	TFTDrawDollop( &dollop );
}
/*=========================================================
函数描述:延时ttms时间
隶属模块:TFT
参数说明:tt需要延时的时间
返回说明:无返回值
===========================================================*/
void delay(INT16U tt)
{
	INT16U i, j;

	for(i = 0; i < tt; i++)
		for(j == 0; j < 114; j++);
}
/*=========================================================
函数描述:初始化TFT,复位后需要120ms的延时
隶属模块:TFT
参数说明:无
返回说明:无返回值
===========================================================*/
void TFT_INIT()
{ 
	THT_COM(0x01);	  //软件复位
	delay(130);
	THT_COM(0x11);	  //唤醒休眠
//	THT_COM(0x12);	  //局部显示模式
	THT_COM(0x13);	  //标准显示模式
	THT_COM(0x20);	  //显示倒置关闭
//	THT_COM(0x21);	  //显示倒置打开
	THT_COM(0x26);	  
	THT_DAT(0x04);
	THT_COM(0xb1);	  
	THT_DAT(0x08);
	THT_DAT(0x14);
	THT_COM(0xc0);   
	THT_DAT(0x0a); 
	THT_DAT(0x05); 
	THT_COM(0xc1); 
	THT_DAT(0x02);
//	THT_COM(0x29);	  //显示打开
	THT_COM(0x2a);	  //显示方向设置
	THT_DAT(0x00);
	THT_DAT(0x00);
	THT_DAT(0x00);
	THT_DAT(0x7f);
	THT_COM(0x2b);	  
	THT_DAT(0x00);
	THT_DAT(0x00);
	THT_DAT(0x00);
	THT_DAT(0x7f);
	THT_COM(0x36); // 寄存器数据应用控制
	THT_DAT(0xc8);
	THT_COM(0x3a);
	THT_DAT(0x05);

// 	THT_COM(0x28);
	THT_COM(0x29);	  //显示打开
//	THT_COM(0x2c); 	  //写入寄存器
}

/*=========================================================
函数描述:复位
隶属模块:TFT
参数说明:无
返回说明:无返回值
===========================================================*/
void RESET()
{
	REST = 1;
	delay(1);
	REST = 0;
	delay(2);
	REST = 1;
	delay(1);		
}

/*=========================================================
函数描述:在TFT上设置一个窗口
隶属模块:TFT
参数说明:无
返回说明:无返回值
===========================================================*/
void WINDOW(WIN *window)
{
	THT_COM(0x2a);	  //显示方向设置
	THT_DAT(0x00);
	THT_DAT(window->Xs);
	THT_DAT(0x00);
	THT_DAT(window->Xe);
	THT_COM(0x2b);	  
	THT_DAT(0x00);
	THT_DAT(window->Ys);
	THT_DAT(0x00);
	THT_DAT(window->Ye);	   
}

/*=========================================================
函数描述:写入值
隶属模块:TFT
参数说明:无
返回说明:无返回值
===========================================================*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -