51单片机TFT彩屏例程 刷屏

时间: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字,全部文档内容请下载后查看。喜欢就下载吧 ……

51单片机TFT彩屏例程 刷屏.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219