资源简介
基于C51单片机的ILI9486TFT显示屏驱动程序
代码片段和文件信息
#include
#include “sd.h“
sbit Mono_RST= P3^4;
sbit Mono_Cs= P3^0;
sbit Mono_Rs= P3^1;
sbit Mono_WR= P3^2;
sbit Mono_RD= P3^3;
#define u8 unsigned char
#define u16 unsigned int
void TFT_8080_write_comd(u8 com);
void TFT_8080_write_data(u8 dat);
void TFT_8080_write_data16(u8 dat_Hu8 dat_L);
void TFT_Init();
void TFT_FullScreen(u8 data1u8 data2);
void TFT_dis_pic(unsigned char *Ptt);
void delay_ms(unsigned int t);
unsigned char code image[];
//定义512字节缓冲区,注意需要使用 xdata关键字
unsigned char xdata DATA[512];
void main()
{
unsigned long j; //执行循环需要的临时变量
unsigned int i;
unsigned long AddTemp=387584;//SD卡地址第一个数据物理地址初始值,可以用winhex查看,这里是512扇区,512x512=262144,根据实际SD卡内容更改
TFT_Init();
SdInit(); //SD卡初始化
TFT_FullScreen(0xf80x00); //待测模块
while(KEY);
// delay_ms(5000);
TFT_FullScreen(0x070xe0); //待测模块
while(KEY);
// delay_ms(5000);
TFT_FullScreen(0x000x1f); //待测模块
while(KEY);
// delay_ms(5000);
while(1)
{
TFT_8080_write_comd(0x2C);
for(j=0;j<600;j++) //300表示一幅图片含有600x512字节的信息
{
SdReadBlock(DATAAddTemp+(j*512)512);//每次读出512字节放到缓冲区
for(i=0;i<256;i++) //然后写到液晶屏,可以显示256个像素,每个像素16位即2个字节
{
TFT_8080_write_data16(DATA[2*i]DATA[2*i+1]);
}
}
AddTemp = AddTemp+((j+8)*512); //写完一幅图片后把SD地址加300x512到下一个图片地址
while(KEY);
}
}
//=============================================================
//TFT写命令
//功能:写一个命令到控制器。
//入口参数: com指定要执行的命令。
//出口参数: 无
void TFT_8080_write_comd(u8 com)
{
Mono_Rs=0;
Mono_Cs=0;
Mono_RD=1;
Mono_WR=0;
P2=com;
Mono_WR=0;
//delay_us(2);
Mono_WR=1;
Mono_Rs=1;
Mono_Cs=1;
}
//=============================================================
//TFT写命令
//功能:写一个命令到控制器。
//入口参数: com指定要执行的命令。
//出口参数: 无
void TFT_8080_write_data(u8 dat)
{
Mono_Rs=1;
Mono_Cs=0;
Mono_RD=1;
Mono_WR=1;
P2=dat;
Mono_WR=0;
Mono_WR=1;
Mono_Cs=1;
}
//=============================================================
//TFT写命令
//功能:写一个命令到控制器。
//入口参数: com指定要执行的命令。
//出口参数: 无
void TFT_8080_write_data16(u8 dat_Hu8 dat_L)
{
Mono_Cs=0;
Mono_Rs=0;
Mono_Rs=1;
Mono_RD=1;
Mono_WR=1;
P2=dat_H;
Mono_WR=0;
Mono_WR=1;
Mono_Cs=1;
Mono_Cs=0;
Mono_Rs=0;
Mono_Rs=1;
Mono_RD=1;
Mono_WR=1;
P2=dat_L;
// delay_us(2);
Mono_WR=0;
Mono_WR=1;
Mono_Cs=1;
}
//整屏显示相同数据
//功能:
//入口参数: dat1dat2
//出口参数: 无
void TFT_FullScreen(u8 data1u8 data2)
{
u16 i j;
TFT_8080_write_comd(0x2C);
for(i=0;i<480;i++)
{
for(j=0;j<320;j++)
{
TFT_8080_write_data16(data1data2);
}
}
}
//显示图片
//功能:
//入口参数: dat1dat2
//出口参数: 无
void TFT_dis_pic(unsigned char *Ptt)
{
u16 ijk;
u8 dat1dat2;
k=0;
TFT_8080_write_comd(0x2C);
for(i=0;i<80;i++)
{
for(j=0;j<320;j++)
{
dat1=Ptt[k];
dat2=Ptt[k+1];
TFT_8080_write_data(dat1);
TFT_8080_wr
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 20484 2013-01-01 11:31 ILI9486TFT驱动程序C51\ili9486
文件 6457 2013-01-01 11:31 ILI9486TFT驱动程序C51\ili9486.c
文件 4913 2013-01-01 11:31 ILI9486TFT驱动程序C51\ili9486.hex
文件 13271 2013-01-01 11:31 ILI9486TFT驱动程序C51\ili9486.LST
文件 23937 2013-01-01 11:31 ILI9486TFT驱动程序C51\ili9486.M51
文件 15634 2013-01-01 11:31 ILI9486TFT驱动程序C51\ili9486.OBJ
文件 1345 2013-01-01 13:56 ILI9486TFT驱动程序C51\ili9486.opt.bak
文件 160 2013-04-01 16:20 ILI9486TFT驱动程序C51\ili9486.plg
文件 2018 2013-01-01 11:36 ILI9486TFT驱动程序C51\ili9486.Uv2.bak
....... 68431 2013-04-01 16:20 ILI9486TFT驱动程序C51\ili9486.uvgui.xie
....... 68547 2013-03-18 21:37 ILI9486TFT驱动程序C51\ili9486.uvgui_xie.bak
....... 6751 2013-04-01 16:20 ILI9486TFT驱动程序C51\ili9486.uvopt
文件 13492 2013-03-18 21:37 ILI9486TFT驱动程序C51\ili9486.uvproj
文件 1345 2013-01-01 11:36 ILI9486TFT驱动程序C51\ili9486_Opt.Bak
文件 1988 2012-12-28 15:39 ILI9486TFT驱动程序C51\ili9486_Uv2.Bak
....... 6753 2013-03-18 21:37 ILI9486TFT驱动程序C51\ili9486_uvopt.bak
文件 3890 2013-01-01 08:48 ILI9486TFT驱动程序C51\sd.c
文件 705 2013-01-01 08:48 ILI9486TFT驱动程序C51\sd.h
文件 7688 2013-01-01 11:31 ILI9486TFT驱动程序C51\sd.LST
文件 8453 2013-01-01 11:31 ILI9486TFT驱动程序C51\sd.OBJ
目录 0 2013-03-18 21:38 ILI9486TFT驱动程序C51
----------- --------- ---------- ----- ----
276262 21
评论
共有 条评论