之前有写过0.96OLED显示屏的使用,现在记录一下TFT240x240尺寸的彩屏学习过程
一,图像的转换工具及设置
应用叫做 Image2Lcd,设置如下:首先是要明确取模的模型是多大,一般是8的倍数,比如8x8,8X16,16X16,16X24等等,然后使用电脑自带的画图软件,对图形进行变换,做成单色.bmp位图
这是一个11x19的单色位图,
![在这里插入图片描述](https://img-blog.csdnimg.cn/bce456061ac2491eb9dfe26e0d439c3b.png
按箭头位置设置后,最后点保存,会生成一个C文件
这里有个坑,上面说到要8的倍数,显然12x24里面,12并不是8的倍数,所以取出来的模是会有空缺的,提前看下实际程序的数据集合:
首先,软件导出的数据,按照3x16的阵列排布后,会有长短,第一是要把前6组全部改成0X00,然后第3行不足16个的,也用0X00补充,从而形成完整的3X16的阵列。(要解决这个问题,可以在画图的画布大小设置为16x24,然后把显示内容按规律排版好就可以了,后面讲导入电池这张大图形时,我有验证过可行。)
/************************************************************************************************************/
二、点亮这个TFT屏的思路:
1. 通讯方式:SPI
2.时序图
3.思路和OLED差不多,最终的目的是要实现,在哪个位置,显示什么内容,涉及的内容,就是写命令,写数据,定坐标,运行显示驱动。
1》设置坐标
2> 显示驱动
这个数组的含义如下
驱动如下:这是11x19的字符驱动
这个箭头参数,跟取模的样式有关,就前面讲的尽量用8的倍数进行取模。
这是自定义的电池符号驱动,其实也就是取模的方式,开始做的10X16,,160个数据,然后发现取模出来只有150个数值,然后尝试补充10个数据上去,发现是乱码,后面改成9X16,显示就正常了
三.源码
//*ILI9325 16BIT 8080 IC:ili9320 design by kuang 16?/8????????? P0 P2? d*///
//display 65K color//
//240(RGB)X 320 TFT//
#include <reg51.h>
#include <intrins.h>
#include <math.h>
#include <absacc.h>
sbit cs=P3^3;
sbit rs=P3^4;
sbit scl=P3^5;
sbit reset=P3^7;
sbit sdi=P3^6;
void address_set();
unsigned char code pic1[];
void delay10(unsigned int t)
{
unsigned int i,j,k;
for(i=0;i<t;i++)
{
for(j=0;j<10;j++)
{
for(k=0;k<120;k++)
{ ;}
}
}
}
void lcd_com(unsigned int d)
{
//unsigned int d1;unsigned int d2;
unsigned char i;
//d1=d&0xff; //low 8 bit
//d2=(d&0xff00)>>8; // hignt 8 bit
cs=0;
rs=0;
for(i=0;i<8;i++) //8 bit data
{
scl=1;
scl=0;
sdi=d&0x80;
scl=1;
d=d<<1;
}
//cs=1;
}
/ 8 BIT
void lcd_data1(unsigned int d)
{
//unsigned int d1;unsigned int d2;
unsigned char i;
//d1=d&0xff; //low 8 bit
//d2=(d&0xff00)>>8; // hignt 8 bit
rs=1;
cs=0;
for(i=0;i<8;i++) // 16 bit data
{
scl=1;
scl=0;
sdi=d&0x80;
scl=1;
d=d<<1;
}
// cs=1;
}
void lcd_data16(unsigned char d2,unsigned char d1)
{
//unsigned int d1;unsigned int d2;
unsigned char i;
//d1=d&0xff; //low 8 bit
//d2=(d&0xff00)>>8; // hignt 8 bit
rs=1;
cs=0;
for(i=0;i<8;i++) // 16 bit data
{
scl=1;
scl=0;
sdi=d2&0x80;
scl=1;
d2=d2<<1;
}
for(i=0;i<8;i++) // 16 bit data
{
scl=1;
scl=0;
sdi=d1&0x80;
scl=1;
d1=d1<<1;
}
// cs=1;
}
void lcd_data(unsigned int d1,unsigned int d2)
{
unsigned char i;
rs=1;
cs=0;
for(i=0;i<8;i++) // 16 bit data
{
scl=1;
scl=0;
sdi=d1&0x80;
scl=1;
d1=d1<<1;
}
for(i=0;i<8;i++) // 16 bit data
{
scl=1;
scl=0;
sdi=d2&0x80;
scl=1;
d2=d2<<1;
}
cs=1;
}
void display(unsigned char d,unsigned char d1)
{
int i,j;
//address_set();
for(j=0;j<240;j++) //320
{
for(i=0;i<240;i++)
{
lcd_data16(d,d1);
}
}
// delay10(10);
}
void instruction(void)
{
/
lcd_com(0x11);
lcd_com(0x36);
lcd_data1(0x00);//00
lcd_com(0x3a);
lcd_data1(0x55);//05
lcd_com(0xb2);
lcd_data1(0x0c);
lcd_data1(0x0c);
lcd_data1(0x00);
lcd_data1(0x33);
lcd_data1(0x33);
lcd_com(0xb7);
lcd_data1(0x15);//
lcd_com(0xbb);
lcd_data1(0x1e); //1e
lcd_com(0xc2);
lcd_data1(0x01);
lcd_com(0xc3);
lcd_data1(0x25); //
lcd_com(0xc4);
lcd_data1(0x20);
lcd_com(0xc6);
lcd_data1(0x0f);
lcd_com(0xd0);
lcd_data1(0xa4);
lcd_data1(0xa1);
lcd_com(0xe0);
lcd_data1(0xd0);
lcd_data1(0x03);
lcd_data1(0x0e);
lcd_data1(0x11);
lcd_data1(0x17);
lcd_data1(0x1f);
lcd_data1(0x4c);
lcd_data1(0x53);
lcd_data1(0x5b);
lcd_data1(0x1a);
lcd_data1(0x16);
lcd_data1(0x13);
lcd_data1(0x25);
lcd_data1(0x28);
lcd_com(0xe1);
lcd_data1(0xd0);
lcd_data1(0x02);
lcd_data1(0x0e);
lcd_data1(0x11);
lcd_data1(0x16);
lcd_data1(0x1e);
lcd_data1(0x4a);
lcd_data1(0x36);
lcd_data1(0x56);
lcd_data1(0x1a);
lcd_data1(0x15);
lcd_data1(0x14);
lcd_data1(0x26);
lcd_data1(0x28);
lcd_com(0x2a);
lcd_data1(0x00);
lcd_data1(0x00);
lcd_data1(0x00);
lcd_data1(0xef);
lcd_com(0x002b);
lcd_data1(0x00);
lcd_data1(0x00);
lcd_data1(0x00); //01
lcd_data1(0xEf);//3F
lcd_com(0x29); //Display on
lcd_com(0x21);
lcd_com(0x2c); // write data
}
/*************************************************
???:LCD_Set_Region
??:??lcd????,????????????
????:xy?????
???:?
*************************************************/
void LCD_Set_Region(unsigned char x, unsigned char y, unsigned char width, unsigned char height)
{
#ifdef USE_LANDSCAPE//??????
unsigned char x_offset = 3, y_offset = 2;
#else//????
unsigned char x_offset = 2, y_offset = 3;
#endif
lcd_com(0x2a);
lcd_data1(0x00);
lcd_data1(x_offset + x);
lcd_data1(0x00);
lcd_data1(x_offset + x + width - 1);
lcd_com(0x2b);
lcd_data1(0x00);
lcd_data1(y_offset + y);
lcd_data1(0x00);
lcd_data1(y_offset + y + height - 1);
lcd_com(0x2c);
}
/*code unsigned char digit8x16[][16] = {
/*
0(0) 1(1) 2(2) 3(3) 4(4) 5(5) 6(6) 7(7)
8(8) 9(9) -(10) :(11) .(12) v(13)
*/
/*{0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x24,0x18,0x00,0x00},/*"0",0*/
/*{0x00,0x00,0x00,0x08,0x38,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x3E,0x00,0x00},/*"1",1*/
/*{0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x02,0x04,0x08,0x10,0x20,0x42,0x7E,0x00,0x00},/*"2",2*/
/*{0x00,0x00,0x00,0x3C,0x42,0x42,0x02,0x04,0x18,0x04,0x02,0x42,0x42,0x3C,0x00,0x00},/*"3",3*/
/* {0x00,0x00,0x00,0x04,0x0C,0x0C,0x14,0x24,0x24,0x44,0x7F,0x04,0x04,0x1F,0x00,0x00},/*"4",4*/
/* {0x00,0x00,0x00,0x7E,0x40,0x40,0x40,0x78,0x44,0x02,0x02,0x42,0x44,0x38,0x00,0x00},/*"5",5*/
/* {0x00,0x00,0x00,0x18,0x24,0x40,0x40,0x5C,0x62,0x42,0x42,0x42,0x22,0x1C,0x00,0x00},/*"6",6*/
/* {0x00,0x00,0x00,0x7E,0x42,0x04,0x04,0x08,0x08,0x10,0x10,0x10,0x10,0x10,0x00,0x00},/*"7",7*/
/* {0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x24,0x18,0x24,0x42,0x42,0x42,0x3C,0x00,0x00},/*"8",8*/
/* {0x00,0x00,0x00,0x38,0x44,0x42,0x42,0x42,0x46,0x3A,0x02,0x02,0x24,0x18,0x00,0x00},/*"9",9*/
/* {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"-",10*/
/* {0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00},/*":",11*/
/* {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x00,0x00},/*".",12*/
/* {0x00,0x00,0x00,0x00,0x00,0x00,0xEE,0x44,0x44,0x28,0x28,0x10,0x10,0x00,0x00,0x00},/*"v",13*/
/*};*/
code unsigned char digit12x24[][3*16] = {
/*
0(0) 1(1) 2(2) 3(3) 4(4) 5(5) 6(6) 7(7)
8(8) 9(9) -(10) :(11) .(12) ?(13) 0(14)
*/
/*{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x19,0x80,0x30,0xC0,
0x30,0xC0,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,
0x60,0x60,0x30,0xC0,0x30,0xC0,0x19,0x80,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"0",0*/
/*{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x3E,0x00,0x06,0x00,
0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,
0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x3F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00},/*"1",1*/
/*{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x21,0x80,0x40,0xC0,
0x60,0xC0,0x60,0xC0,0x00,0xC0,0x00,0x80,0x01,0x80,0x03,0x00,0x06,0x00,0x04,0x00,
0x08,0x00,0x10,0x40,0x20,0x40,0x60,0x40,0x7F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00},/*"2",2*/
/*{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x63,0x00,0x61,0x80,
0x61,0x80,0x01,0x80,0x01,0x80,0x03,0x00,0x0E,0x00,0x01,0x80,0x00,0x80,0x00,0xC0,
0x00,0xC0,0x60,0xC0,0x60,0xC0,0x61,0x80,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"3",3*/
/*{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x01,0x80,0x03,0x80,
0x05,0x80,0x05,0x80,0x09,0x80,0x11,0x80,0x11,0x80,0x21,0x80,0x41,0x80,0x7F,0xF0,
0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x07,0xE0,0x00,0x00,0x00,0x00,0x00,0x00},/*"4",4*/
/*{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xC0,0x20,0x00,0x20,0x00,
0x20,0x00,0x20,0x00,0x20,0x00,0x2F,0x00,0x31,0x80,0x20,0xC0,0x00,0xC0,0x00,0xC0,
0x60,0xC0,0x60,0xC0,0x41,0x80,0x21,0x80,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"5",5*/
/*{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x18,0xC0,0x30,0xC0,
0x30,0x00,0x20,0x00,0x60,0x00,0x67,0x80,0x68,0xC0,0x70,0x60,0x60,0x60,0x60,0x60,
0x60,0x60,0x20,0x60,0x30,0x40,0x18,0xC0,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"6",6*/
/*{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xE0,0x30,0x60,0x20,0x40,
0x20,0x80,0x00,0x80,0x00,0x80,0x01,0x00,0x01,0x00,0x02,0x00,0x02,0x00,0x02,0x00,
0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"7",7*/
/*{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x80,0x30,0xC0,0x60,0x60,
0x60,0x60,0x60,0x60,0x30,0x40,0x38,0xC0,0x0F,0x00,0x13,0x80,0x30,0xC0,0x60,0x60,
0x60,0x60,0x60,0x60,0x60,0x60,0x30,0xC0,0x0F,0x80,0x00,0x00,0x00,0x00,0x00,0x00},/*"8",8*/
/*{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x30,0x80,0x30,0xC0,
0x60,0x40,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0xE0,0x31,0x60,0x1E,0x60,0x00,0x60,
0x00,0xC0,0x00,0xC0,0x30,0x80,0x31,0x80,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"9",9*/
/*{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"-",10*/
/*{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*":",11*/
/*{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x38,0x00,0x38,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*".",12*/
/*{0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x53,0x80,0x54,0x40,0x58,0x40,0x28,0x40,
0x08,0x40,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,
0x08,0x00,0x08,0x00,0x08,0x40,0x04,0x80,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"?",13*/
{0x00,0x00,0x00,0x00,0x00,0x00,0X1F,0X00,0X3F,0X80,0X71,0XC0,0XE0,0XE0,0XE0,0XE0,
0XE0,0XE0,0XE0,0XE0,0XE0,0XE0,0XE0,0XE0,0XE0,0XE0,0XE0,0XE0,0XE0,0XE0,0XE0,0XE0,
0XE0,0XE0,0XE0,0XE0,0XE0,0XE0,0X71,0XC0,0X3F,0X80,0X1F,0X00,0x00,0x00,0x00,0x00},/* d 0*/
{ 0x00,0x00,0x00,0x00,0x00,0x00,0X0F,0X00,0X1F,0X00,0X3F,0X00,0X3F,0X00,0X0F,0X00,
0X0F,0X00,0X0F,0X00,0X0F,0X00,0X0F,0X00,0X0F,0X00,0X0F,0X00,0X0F,0X00,0X0F,0X00,
0X0F,0X00,0X0F,0X00,0X0F,0X00,0X7F,0XE0,0X7F,0XE0,0X7F,0XE0,0x00,0x00,0x00,0x00},/*d 1*/
{ 0x00,0x00,0x00,0x00,0x00,0x00,0X1E,0X00,0X3F,0X80,0X73,0X80,0XE1,0XC0,0XE0,0XC0,
0XE0,0XE0,0X00,0XE0,0X01,0XC0,0X01,0XC0,0X03,0X80,0X07,0X00,0X0E,0X00,0X1C,0X00,
0X38,0X00,0X78,0X00,0X70,0X60,0XF0,0X60,0XFF,0XE0,0XFF,0XE0,0x00,0x00,0x00,0x00},/*d 2*/
{ 0x00,0x00,0x00,0x00,0x00,0x00,0X1F,0X00,0X3F,0X80,0X71,0XC0,0XE0,0XE0,0XE0,0XE0,
0XE0,0XE0,0X00,0XE0,0X00,0XE0,0X01,0XE0,0X3F,0XC0,0X3F,0XC0,0X01,0XE0,0X00,0XE0,
0XE0,0XE0,0XE0,0XE0,0XE0,0XE0,0X71,0XC0,0X3F,0X80,0X1F,0X00,0x00,0x00,0x00,0x00},/*d 3*/
{ 0x00,0x00,0x00,0x00,0x00,0x00,0X03,0X00,0X07,0X00,0X07,0X00,0X0F,0X00,0X1F,0X00,
0X1F,0X00,0X33,0X00,0X33,0X00,0X73,0X00,0X63,0X00,0XE3,0X00,0XE3,0X00,0XFF,0XE0,
0XFF,0XE0,0X03,0X00,0X03,0X00,0X03,0X00,0X0F,0XC0,0X0F,0XC0,0x00,0x00,0x00,0x00},/*d 4*/
{ 0x00,0x00,0x00,0x00,0x00,0x00,0XFF,0XC0,0XFF,0XC0,0XFF,0XC0,0XE0,0X00,0XE0,0X00,
0XE0,0X00,0XE0,0X00,0XFF,0X00,0X7F,0X80,0X3F,0XC0,0X01,0XE0,0X00,0XE0,0X00,0XE0,
0XC0,0XE0,0XC0,0XE0,0XE0,0XE0,0XF1,0XE0,0X7F,0XC0,0X3F,0X80,0x00,0x00,0x00,0x00},/*d 5*/
{ 0x00,0x00,0x00,0x00,0x00,0x00,0X1F,0X80,0X3F,0XC0,0X31,0XC0,0X60,0XC0,0X60,0XC0,
0X60,0X00,0X60,0X00,0X60,0X00,0X6F,0X80,0X7F,0XC0,0X70,0XE0,0X60,0X60,0X60,0X60,
0X60,0X60,0X60,0X60,0X70,0XE0,0X39,0XC0,0X3F,0X80,0X0F,0X00,0x00,0x00,0x00,0x00},/*d 6*/
{ 0x00,0x00,0x00,0x00,0x00,0x00,0XFF,0XE0,0XFF,0XE0,0XFF,0XE0,0X01,0XE0,0X01,0XE0,
0X01,0XC0,0X01,0XC0,0X03,0X80,0X07,0X80,0X07,0X00,0X07,0X00,0X07,0X00,0X07,0X00,
0X07,0X00,0X07,0X00,0X07,0X00,0X07,0X00,0X07,0X00,0X07,0X00,0x00,0x00,0x00,0x00},/*d 7*/
{ 0x00,0x00,0x00,0x00,0x00,0x00,0X1F,0X00,0X3F,0X80,0X71,0XC0,0XE0,0XE0,0XE0,0XE0,
0XE0,0XE0,0XE0,0XE0,0X71,0XC0,0X3F,0X80,0X3F,0X80,0X7F,0XC0,0XF1,0XE0,0XE0,0XE0,
0XE0,0XE0,0XE0,0XE0,0XE0,0XE0,0X71,0XC0,0X3F,0X80,0X1F,0X00,0X00,0x00,0x00,0x00},/*d 8*/
{ 0x00,0x00,0x00,0x00,0x00,0x00,0X1E,0X00,0X3F,0X80,0X73,0X80,0XE1,0XC0,0XC0,0XE0,
0XC0,0XE0,0XC0,0XE0,0XC0,0XE0,0XE0,0XE0,0X71,0XE0,0X7F,0XE0,0X3F,0XC0,0X00,0XC0,
0X00,0XC0,0X70,0XC0,0X71,0XC0,0X71,0X80,0X7F,0X80,0X3F,0X00,0X00,0x00,0x00,0x00},/*d 9*/
{ 0x00,0x00,0x00,0x00,0x00,0x00,0X30,0X00,0X78,0X40,0XCC,0XE0,0XCC,0XC0,0XCD,0XC0,
0XCF,0X80,0XCF,0X80,0X7F,0X00,0X3E,0X00,0X0E,0X00,0X0F,0X00,0X1F,0X80,0X1C,0XC0,
0X3C,0XC0,0X7C,0XC0,0X6C,0XC0,0X6C,0XC0,0XC7,0X80,0XC3,0X00,0X00,0x00,0x00,0x00},/*d %*/
{ 0x00,0x00,0x00,0x00,0x00,0x00,0X00,0X00,0X00,0X00,0X00,0X00,0X0C,0X00,0X1E,0X00,
0X1E,0X00,0X1E,0X00,0X0C,0X00,0X00,0X00,0X00,0X00,0X0C,0X00,0X1E,0X00,0X1E,0X00,
0X1E,0X00,0X0C,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0x00,0x00,0x00},/*d :*/
{ 0x00,0x00,0x00,0x00,0x00,0x00,0X04,0X00,0X04,0X00,0X0E,0X00,0X0E,0X00,0X1F,0X00,
0X1B,0X00,0X1B,0X00,0X31,0X80,0X31,0X80,0X31,0X80,0X71,0XC0,0X7F,0XC0,0X7F,0XC0,
0X60,0XC0,0XE0,0XE0,0XE0,0XE0,0XE0,0XE0,0XE0,0XE0,0XE0,0XE0,0X00,0x00,0x00,0x00},/* A-12*/
{ 0x00,0x00,0x00,0x00,0x00,0x00,0XFF,0X00,0XFF,0X80,0X71,0XC0,0X70,0XE0,0X70,0X60,
0X70,0X60,0X70,0XE0,0X71,0XC0,0X7F,0X80,0X7F,0X80,0X71,0XC0,0X70,0XE0,0X70,0X60,
0X70,0X60,0X70,0X60,0X70,0XE0,0X70,0XE0,0XFF,0XC0,0XFF,0X80,0X00,0x00,0x00,0x00}, /* B-13*/
{ 0x00,0x00,0x00,0x00,0x00,0X00,0XFF,0XE0,0XFF,0XE0,0XE1,0XE0,0XE0,0X60,0XE0,0X20,
0XE0,0X00,0XE0,0X00,0XE1,0X00,0XE3,0X00,0XFF,0X00,0XE3,0X00,0XE1,0X00,0XE0,0X00,
0XE0,0X00,0XE0,0X20,0XE0,0X60,0XE1,0XE0,0XFF,0XE0,0XFF,0XE0,0x00,0x00,0x00,0x00},/* E-14*/
{ 0X00,0x00,0x00,0x00,0x00,0X00,0XFF,0XE0,0XFF,0XE0,0X0E,0X00,0X0E,0X00,0X0E,0X00,
0X0E,0X00,0X0E,0X00,0X0E,0X00,0X0E,0X00,0X0E,0X00,0X0E,0X00,0X0E,0X00,0X0E,0X00,
0X0E,0X00,0X0E,0X00,0X0E,0X00,0X0E,0X00,0XFF,0XE0,0XFF,0XE0,0x00,0x00,0x00,0x00},/* I-15*/
{ 0X00,0x00,0x00,0x00,0x00,0X00,0XF8,0X00,0XF8,0X00,0X70,0X00,0X70,0X00,0X70,0X00,
0X70,0X00,0X70,0X00,0X70,0X00,0X70,0X00,0X70,0X00,0X70,0X00,0X70,0X00,0X70,0X00,
0X70,0X60,0X70,0X60,0X70,0XE0,0X71,0XE0,0X7F,0XC0,0X7F,0X80,0x00,0x00,0x00,0x00},/* L-16*/
{ 0X00,0x00,0x00,0x00,0x00,0X00,0XE0,0X70,0XF0,0XF0,0X70,0XF0,0X70,0XE0,0X70,0XE0,
0X79,0XE0,0X79,0XE0,0X79,0XE0,0X79,0XE0,0X7D,0XE0,0X7F,0XE0,0X7F,0XE0,0X7F,0XE0,
0X76,0XE0,0X76,0XE0,0X70,0XE0,0XF0,0XE0,0XF0,0XF0,0XF0,0XF0,0x00,0x00,0x00,0x00}, /* M-17*/
{ 0X00,0x00,0x00,0x00,0x00,0X00,0XFF,0X00,0XFF,0X80,0XE1,0X80,0XE1,0XC0,0XE1,0XC0,
0XE1,0XC0,0XE3,0XC0,0XE3,0X80,0XFF,0X00,0XFE,0X00,0XFE,0X00,0XFE,0X00,0XE7,0X00,
0XE3,0X00,0XE3,0X80,0XE3,0X80,0XE1,0XC0,0XE1,0XE0,0XE1,0XE0,0x00,0x00,0x00,0x00}, /* R-18*/
{ 0X00,0x00,0x00,0x00,0x00,0X00,0XFF,0XE0,0XFF,0XE0,0XCE,0X60,0X8E,0X20,0X8E,0X20,
0X0E,0X00,0X0E,0X00,0X0E,0X00,0X0E,0X00,0X0E,0X00,0X0E,0X00,0X0E,0X00,0X0E,0X00,
0X0E,0X00,0X0E,0X00,0X0E,0X00,0X0E,0X00,0X1F,0X00,0X1F,0X00,0x00,0x00,0x00,0x00},/* T-19*/
{ 0X00,0x00,0x00,0x00,0x00,0X00,0XF1,0XE0,0XE0,0XE0,0X60,0XC0,0X60,0XC0,0X60,0XC0,
0X60,0XC0,0X60,0XC0,0X64,0XC0,0X64,0XC0,0X6E,0XC0,0X6E,0XC0,0X6E,0XC0,0X7F,0XC0,
0X7F,0XC0,0X7F,0XC0,0X7F,0XC0,0X3B,0X80,0X31,0X80,0X31,0X80,0x00,0x00,0x00,0x00},/* W-20*/
{ 0X00,0x00,0x00,0x00,0x00,0X00,0XF0,0XF0,0X70,0XE0,0X70,0XE0,0X30,0XC0,0X39,0XC0,
0X39,0XC0,0X19,0X80,0X1F,0X80,0X0F,0X80,0X0F,0X00,0X0F,0X00,0X06,0X00,0X06,0X00,
0X06,0X00,0X06,0X00,0X06,0X00,0X06,0X00,0X0F,0X00,0X0F,0X00,0x00,0x00,0x00,0x00},/*Y-21*/
};
code unsigned char digit48x24[][9*16] = {
{
0X1F,0XFF,0XFF,0XFF,0XFF,0X80,0X3F,0XFF,0XFF,0XFF,0XFF,0XC0,0X60,0X00,0X00,0X00,
0X00,0X60,0X7F,0XFF,0XFF,0XFF,0XFE,0X60,0X7F,0XFF,0XFF,0XFF,0XFE,0X70,0X7F,0XFF,
0XFF,0XFF,0XFE,0X70,0X7F,0XFF,0XFF,0XFF,0XFE,0X70,0X7F,0XFF,0XFF,0XFF,0XFE,0X78,
0X7F,0XFF,0XFF,0XFF,0XFE,0X7C,0X7F,0XFF,0XFF,0XFF,0XFE,0X7E,0X7F,0XFF,0XFF,0XFF,
0XFE,0X7E,0X7F,0XFF,0XFF,0XFF,0XFE,0X7E,0X7F,0XFF,0XFF,0XFF,0XFE,0X7E,0X7F,0XFF,
0XFF,0XFF,0XFE,0X7E,0X7F,0XFF,0XFF,0XFF,0XFE,0X7E,0X7F,0XFF,0XFF,0XFF,0XFE,0X7C,
0X7F,0XFF,0XFF,0XFF,0XFE,0X78,0X7F,0XFF,0XFF,0XFF,0XFE,0X70,0X7F,0XFF,0XFF,0XFF,
0XFE,0X70,0X7F,0XFF,0XFF,0XFF,0XFE,0X70,0X7F,0XFF,0XFF,0XFF,0XFE,0X60,0X60,0X00,
0X00,0X00,0X00,0X60,0X3F,0XFF,0XFF,0XFF,0XFF,0XC0,0X1F,0XFF,0XFF,0XFF,0XFF,0X80,
},/*mD*/
/*{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x01,0x80,0x07,0x80,0x01,0x80,
0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,
0x01,0x80,0x01,0x80,0x01,0x80,0x01,0xC0,0x0F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00},/*"1",1*/
};
//??????????8x16????
/*void Display_Digit_8x16(unsigned char x, unsigned char y, unsigned int fc, unsigned int bc, unsigned int idx)
{
unsigned char i,j;
LCD_Set_Region(x, y, 8, 16);
for(i=0; i<16; i++)
{
for(j=0; j<8; j++)
{
if(digit8x16[idx][i]&(0x80>>j))
{
lcd_data16(fc);
}
else
{
if (fc != bc)
{
lcd_data16(bc);
}
}
}
}
}*/
//??????????12x24????
void Display_Digit_12x24(unsigned char x, unsigned char y, unsigned int fc, unsigned int bc, unsigned int idx)
{
unsigned char i,j,k;
LCD_Set_Region(x, y, 12, 24);
for(i=0; i<3*16; i++)
{
if(1 == i%2) k = 4;
else k = 8;
for(j=0; j<k; j++)
{
if(digit12x24[idx][i]&(0x80>>j))
{
lcd_data16(fc);
}
else
{
if (fc != bc)
{
lcd_data16(bc);
}
}
}
}
}
//??????????46x24????
void Display_Digit_48x24(unsigned char x, unsigned char y, unsigned int fc, unsigned int bc, unsigned int idx)
{
unsigned char i,j;
LCD_Set_Region(x, y, 48, 24);
for(i=0; i<9*16; i++)
{
for(j=0; j<8; j++)
{
if(digit48x24[idx][i]&(0x80>>j))
{
lcd_data16(fc);
}
else
{
if (fc != bc)
{
lcd_data16(bc);
}
}
}
}
}
void main(void)
{
// rd=1;
reset=1;
// KEY=1;
delay10(10);
reset=0;
delay10(10);
reset=1;
delay10(10);
// cs=0;
instruction();
display(0x00,0x00) ; //black color
while(1)
{
/*Display_Digit_8x16(48+0, 100, 0xFFFF, 0x0000 , 2); //3
Display_Digit_8x16(48+8, 100, 0xFFFF, 0x0000 , 12); //.
Display_Digit_8x16(48+16, 100, 0xFFFF, 0x0000 , 1); //2
Display_Digit_8x16(48+24, 100, 0xFFFF, 0x0000 , 13); //v
*/
/*Display_Digit_12x24(16+0, 44, 0xFFFF, 0x0000, 1); //1
Display_Digit_12x24(16+12, 44, 0xFFFF, 0x0000, 2); //2
Display_Digit_12x24(16+24, 44, 0xFFFF, 0x0000, 11); //:
Display_Digit_12x24(16+36, 44, 0xFFFF, 0x0000, 3); //3
Display_Digit_12x24(16+48, 44, 0xFFFF, 0x0000, 4); //4
Display_Digit_12x24(16+60, 44, 0xFFFF, 0x0000, 11); //:
Display_Digit_12x24(16+72, 44, 0xFFFF, 0x0000, 5); //5
Display_Digit_12x24(16+84, 44, 0xFFFF, 0x0000, 6); //6
*/
Display_Digit_12x24(16+0, 180, 0xFFFF, 0x0000, 0); //0
Display_Digit_12x24(16+12, 180, 0xFFFF, 0x0000, 1); //1
Display_Digit_12x24(16+24, 180, 0xFFFF, 0x0000, 2); //2
Display_Digit_12x24(16+36, 180, 0xFFFF, 0x0000, 3); //3
Display_Digit_12x24(16+48, 180, 0xFFFF, 0x0000, 4); //4
Display_Digit_12x24(16+60, 180, 0xFFFF, 0x0000, 5); //5
Display_Digit_12x24(16+72, 180, 0xFFFF, 0x0000, 6); //6
Display_Digit_12x24(16+84, 180, 0xFFFF, 0x0000, 7); //7
Display_Digit_12x24(16+96, 180, 0xFFFF, 0x0000, 8); //8
Display_Digit_12x24(16+108, 180, 0xFFFF, 0x0000, 9); //9
Display_Digit_12x24(16+120, 180, 0xFFFF, 0x0000, 10);//%
Display_Digit_12x24(16+132, 180, 0xFFFF, 0x0000, 11);//:
Display_Digit_12x24(16+48, 135, 0xFFFF, 0x0000, 19); //T-19
Display_Digit_12x24(16+60, 135, 0xFFFF, 0x0000, 15); //I-15
Display_Digit_12x24(16+72, 135, 0xFFFF, 0x0000, 17); //M-17
Display_Digit_12x24(16+85, 135, 0xFFFF, 0x0000, 14); //E-14
Display_Digit_12x24(16+97, 135, 0xFFFF, 0x0000, 18); //R-18
Display_Digit_12x24(16+109, 135, 0xFFFF, 0x0000, 11);//:-11
Display_Digit_48x24(16+60, 78, 0xFFFF, 0x0000, 0);
}
}
/*unsigned char code pic1[]=
{
0xDC,0xC2,0xE5,0x03,0xED,0x44,0xED,0x85,0xED,0x86,0xED,0x66,0xE5,0x25,0xDD,0x05,0xD4,0xA3,0xCC,0x83,0xD4,0xA4,0xDC,0xE5,0xE4,0xE5,0xDC,0xA4,0xD4,0x64,0xD4,0x63,
0xCC,0x22,0xD4,0x83,0xE5,0x47,0xED,0x88,0xED,0xC9,0xEE,0x0A,0xE5,0xA9,0xE5,0xA9,0xD5,0x06,0xDD,0x67,0xE5,0x46,0xED,0x87,0xED,0x67,0xE5,0x46,0xED,0x87,0xE5,0x46,
};
*/
最终效果图如下:
四:总结:其实这个和OLED有很多相似之处,但是这个TFT屏的颜色更丰富,后面有时间再做一个关于颜色设置的调试。