51单片机TFT彩屏例程 刷屏
时间:2025-04-05
时间:2025-04-05
//以下程序都是在VC++6.0 上调试运行过的程序,没有错误,没有警告。
//单片机是STC89C52RC,但是在所有的51 52单片机上都是通用的。51只是一个学习的基础平台,你懂得。
//程序在关键的位置添加了注释。
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////以下是 主文件 main.c 的内容
#include "REG51.H"
#include "lcd_drive.h"
/**************************************************************************** *函数名:main
*输 入:无
*输 出:无
*功 能:主函数
****************************************************************************/
void main (void)
{
TFT_Init(); //初始化TFT
while(1)
{
TFT_ClearScreen(BLACK); //刷黑色
TFT_ClearScreen(BLUE);
TFT_ClearScreen(RED);
TFT_ClearScreen(MAGENTA);
TFT_ClearScreen(GREEN);
TFT_ClearScreen(CYAN);
TFT_ClearScreen(YELLOW);
TFT_ClearScreen(WHITE);
}
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////以下是被调文件 lcd_drive.c 的内容
#include "lcd_drive.h"
/**************************************************************************** *函数名:TFT_WriteCmd
*输 入:cmd
*输 出:
*功 能:写命令。
****************************************************************************/
void TFT_WriteCmd(uint cmd)
{
TFT_WR = 1; //初始化WR
TFT_CS = 0; //打开片选
TFT_RD = 1; //选择写
TFT_RS = 0; //选择命令
TFT_DATAPORT = (cmd >> 8) & 0x00FF; //放置命令数据
TFT_WR = 0; //写入时序
TFT_WR = 1;
TFT_DATAPORT = cmd & 0x00FF; //放置命令数据
TFT_WR = 0; //写入时序
TFT_WR = 1;
TFT_CS = 1; //关闭片选
}
/**************************************************************************** *函数名:TFT_WriteCmdData
*输 入:cmd, dat
*输 出:
*功 能:写命令, 写数据。
****************************************************************************/
void TFT_WriteData(uint dat)
{
TFT_WR = 1; //初始化WR
TFT_CS = 0; //打开片选
TFT_RD = 1; //选择写
TFT_RS = 1; //选择发送数据
TFT_DATAPORT = (dat >> 8) & 0x00FF; //放置命令数据
TFT_WR = 0; //写入时序
TFT_WR = 1;
TFT_DATAPORT = dat & 0x00FF; //放置命令数据
TFT_WR = 0; //写入时序
TFT_WR = 1;
TFT_CS = 1; //关闭片选
}
/**************************************************************************** *函数名:TFT_Init
*输 入:
*输 出:
*功 能:初始化TFT。
****************************************************************************/
void TFT_Init(void)
{
uint i;
TFT_RST = 1;
for(i=500; i>0; i--);
TFT_RST = 0;
for(i=500; i>0; i--);
TFT_RST = 1;
for(i=5000; i>0; i--);
TFT_CS = 0;
TFT_WriteCmd(0x0000);TFT_WriteData(0x0000);
TFT_WriteCmd(0x0000);TFT_WriteData(0x0000);
TFT_WriteCmd(0x0000);TFT_WriteData(0x0000);
TFT_WriteCmd(0x0000);TFT_WriteData(0x0000);
TFT_WriteCmd(0x0007);TFT_WriteData(0x0000);
TFT_WriteCmd(0x0012);TFT_WriteData(0x0000);
TFT_WriteCmd(0x0013);TFT_WriteData(0x0000);
TFT_WriteCmd(0x0014);TFT_WriteData(0x0331);
for(i=5000; i>0; i--);
TFT_WriteCmd(0x0012);TFT_WriteData(0x0009);
TFT_WriteCmd(0x0011);TFT_WriteData(0x0000);
TFT_WriteCmd(0x0010);TFT_WriteData(0x0104); TFT_WriteCmd(0x0013);TFT_WriteData(0x0c3f); TFT_WriteCmd(0x0010);TFT_WriteData(0x0144); TFT_WriteCmd(0x0011);TFT_WriteData(0x0000); TFT_WriteCmd(0x0012);TFT_WriteData(0x0019); for(i=5000; i>0; i--); TFT_WriteCmd(0x0013);TFT_WriteData(0x2c3f); TFT_WriteCmd(0x0010);TFT_WriteData(0x0140); for(i=5000; i>0; i--); //Gamma setting: TFT_WriteCmd(0x0060);TFT_WriteData(0x2000); TFT_WriteCmd(0x0060);TFT_WriteData(0x0000); TFT_WriteCmd(0x0061);TFT_WriteData(0x0002); TFT_WriteCmd(0x0001);TFT_WriteData(0x011b); TFT_WriteCmd(0x0002);TFT_WriteData(0x0700); TFT_WriteCmd(0x0003);TFT_WriteData(0x1130); TFT_WriteCmd(0x0009);TFT_WriteData(0x0000); TFT_WriteCmd(0x000b);TFT_WriteData(0x5d2e); TFT_WriteCmd(0x0021);TFT_WriteData(0x0000); TFT_WriteCmd(0x0030);TFT_WriteData(0x0101); TFT_WriteCmd(0x0031);TFT_WriteData(0x0604); TFT_WriteCmd(0x0032);TFT_WriteData(0x0007); TFT_WriteCmd(0x0033);TFT_WriteData(0x0403); TFT_WriteCmd(0x0034);TFT_WriteData(0x0007); TFT_WriteCmd(0x0035);TFT_WriteData(0x0402); TFT_WriteCmd(0x0036);TFT_WriteData(0x0606); TFT_WriteCmd(0x0037);TFT_WriteData(0x0304); TFT_WriteCmd(0x0038);TFT_WriteData(0x070e); TFT_WriteCmd(0x0039);TFT_WriteData(0x070e); TFT_WriteCmd(0x003a);TFT_WriteData(0x0101); TFT_WriteCmd(0x003b);TFT_WriteData(0x0101); TFT_WriteCmd(0x003c);TFT_WriteData(0x0101); TFT_WriteCmd(0x003d);TFT_WriteData(0x0101); TFT_WriteCmd(0x003e);TFT_WriteData(0x0001); TFT_WriteCmd(0x003f);TFT_WriteData(0x0001); TFT_WriteCmd(0x0042);TFT_WriteData(0xdb00); TFT_WriteCmd(0x0044);TFT_WriteData(0xaf00); TFT_Wri …… 此处隐藏:8874字,全部文档内容请下载后查看。喜欢就下载吧 ……