?? tft.c
字號:
#include <reg51.h>
#include "TFT.h"
#include "TYPE.h"
#include "TFT_COM.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
參數說明:無
返回說明:無返回值
===========================================================*/
void RESET()
{
REST = 1;
delay(1);
REST = 0;
delay(2);
REST = 1;
delay(1);
}
/*=========================================================
函數描述:設置一個特殊的區域
隸屬模塊: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()
{
RESET();
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上設置一個窗口
隸屬模塊: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
參數說明:無
返回說明:無返回值
===========================================================*/
void GUI_Image( IMAGE *pImage )
{
INT16U x, y;
INT32U datacount = 0;
TFTSetArea( pImage->xs, pImage->ys, pImage->xs + pImage->length - 1, pImage->ys + pImage->height - 1 );
for( x = 0; x < pImage->length; x ++ )
{
for( y = 0; y < pImage->height; y ++ )
{
THT_DAT(*( pImage->pData + datacount++ ) );
THT_DAT(*( pImage->pData + datacount++ ) );
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -