#include #define DataH P2 #define DataL P0 sbit TFT_CS = P1^0; sbit RES = P1^4; sbit RS = P1^1; sbit WRB = P1^2; sbit RDB = P1^3; void UART_init(void) { SCON=0x40; TMOD=0x20; TH1=0xF3; //波特率计算256-11059200/(12*32*9600) TL1=0xF3; TR1=1; } void UART_send_data(unsigned char str) { SBUF=str; while(!TI); TI=0; } void delay(int value) { int i,j; for(i=0;i<=value;i++) {for(j=0;j<=500;j++);} } void LCD_WRITE_CMD(unsigned int cmd) { RS = 0; RDB = 1; WRB = 1; TFT_CS = 0; DataH = cmd; // DataL = cmd; WRB = 0; WRB = 1; TFT_CS = 1; } void LCD_WRITE_DATA(unsigned int dat) { RS = 1; RDB = 1; WRB = 1; TFT_CS = 0; DataH = dat; // DataL = dat; WRB = 0; WRB = 1; TFT_CS = 1; } void LCD_WRITE_DATA_16(unsigned int dat) { RS = 1; RDB = 1; WRB = 1; TFT_CS = 0; DataH = dat>>8; WRB = 0; WRB = 1; DataH = dat; WRB = 0; WRB = 1; TFT_CS = 1; } void reset(void) { RES = 1; delay(50); RES = 0; delay(200); RES = 1; delay(500); } void lcd_init(void) { reset(); LCD_WRITE_CMD(0xf0); LCD_WRITE_DATA(0x5a); LCD_WRITE_DATA(0x5a); LCD_WRITE_CMD(0xf1); LCD_WRITE_DATA(0x5a); LCD_WRITE_DATA(0x5a); LCD_WRITE_CMD(0xf5); LCD_WRITE_DATA(0x00); LCD_WRITE_DATA(0x4d); LCD_WRITE_DATA(0x33); LCD_WRITE_CMD(0xf7); LCD_WRITE_DATA(0x10); LCD_WRITE_DATA(0x00); LCD_WRITE_DATA(0x10); LCD_WRITE_DATA(0x80); LCD_WRITE_CMD(0xf2); LCD_WRITE_DATA(0x32); LCD_WRITE_DATA(0x8a); LCD_WRITE_DATA(0x03); LCD_WRITE_DATA(0x03); LCD_WRITE_DATA(0x02); LCD_WRITE_DATA(0x10); LCD_WRITE_DATA(0x01); LCD_WRITE_DATA(0x00); LCD_WRITE_DATA(0x95); LCD_WRITE_DATA(0x00); LCD_WRITE_DATA(0x02); LCD_WRITE_DATA(0x01); LCD_WRITE_DATA(0x00); LCD_WRITE_DATA(0x00); LCD_WRITE_DATA(0xff); LCD_WRITE_DATA(0x03); LCD_WRITE_DATA(0x02); LCD_WRITE_CMD(0x11); LCD_WRITE_CMD(0x36); LCD_WRITE_DATA(0x08); LCD_WRITE_CMD(0x3a); LCD_WRITE_DATA(0x55); LCD_WRITE_CMD(0x29); //LCD_WRITE_CMD(0xf4); // LCD_WRITE_DATA(0x59); // LCD_WRITE_DATA(0x59); // LCD_WRITE_DATA(0x52); // LCD_WRITE_DATA(0x52); // LCD_WRITE_DATA(0x11); // // LCD_WRITE_CMD(0xf5); // LCD_WRITE_DATA(0x12); // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0x0b); // LCD_WRITE_DATA(0xf0); // LCD_WRITE_DATA(0x00); // delay(10); // // LCD_WRITE_CMD(0xf3); // LCD_WRITE_DATA(0xff); // LCD_WRITE_DATA(0x2a); // LCD_WRITE_DATA(0x2a); // LCD_WRITE_DATA(0x0a); // LCD_WRITE_DATA(0x22); // LCD_WRITE_DATA(0x72); // LCD_WRITE_DATA(0x72); // LCD_WRITE_DATA(0x20); // // LCD_WRITE_CMD(0x3a); // LCD_WRITE_DATA(0x55); // // LCD_WRITE_CMD(0xf2); // LCD_WRITE_DATA(0x17); // LCD_WRITE_DATA(0x17); // LCD_WRITE_DATA(0x0f); // LCD_WRITE_DATA(0x08); // LCD_WRITE_DATA(0x08); // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0x04);// 0x04 niuweifeng 20101102 0x00 分两段显示 // LCD_WRITE_DATA(0x13); // LCD_WRITE_DATA(0x00); // // LCD_WRITE_CMD(0xf6); // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0x08);// 0x00 niuweifeng 20101102 // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0x00); // // LCD_WRITE_CMD(0xf7); // LCD_WRITE_DATA(0x80); // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0x05); // LCD_WRITE_DATA(0x0d); // LCD_WRITE_DATA(0x1f); // LCD_WRITE_DATA(0x26); // LCD_WRITE_DATA(0x2d); // LCD_WRITE_DATA(0x14); // LCD_WRITE_DATA(0x15); // LCD_WRITE_DATA(0x26); // LCD_WRITE_DATA(0x20); // LCD_WRITE_DATA(0x01); // LCD_WRITE_DATA(0x22); // LCD_WRITE_DATA(0x22); // // LCD_WRITE_CMD(0xf8); // LCD_WRITE_DATA(0x80); // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0x05); // LCD_WRITE_DATA(0x0d); // LCD_WRITE_DATA(0x1f); // LCD_WRITE_DATA(0x26); // LCD_WRITE_DATA(0x2d); // LCD_WRITE_DATA(0x14); // LCD_WRITE_DATA(0x15); // LCD_WRITE_DATA(0x26); // LCD_WRITE_DATA(0x20); // LCD_WRITE_DATA(0x01); // LCD_WRITE_DATA(0x22); // LCD_WRITE_DATA(0x22); // // LCD_WRITE_CMD(0xf9); // LCD_WRITE_DATA(0x80); // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0x05); // LCD_WRITE_DATA(0x0d); // LCD_WRITE_DATA(0x1f); // LCD_WRITE_DATA(0x26); // LCD_WRITE_DATA(0x2d); // LCD_WRITE_DATA(0x14); // LCD_WRITE_DATA(0x15); // LCD_WRITE_DATA(0x26); // LCD_WRITE_DATA(0x20); // LCD_WRITE_DATA(0x01); // LCD_WRITE_DATA(0x22); // LCD_WRITE_DATA(0x22); // // // LCD_WRITE_CMD(0xfA); // LCD_WRITE_DATA(0x80); // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0x05); // LCD_WRITE_DATA(0x0d); // LCD_WRITE_DATA(0x1f); // LCD_WRITE_DATA(0x26); // LCD_WRITE_DATA(0x2d); // LCD_WRITE_DATA(0x14); // LCD_WRITE_DATA(0x15); // LCD_WRITE_DATA(0x26); // LCD_WRITE_DATA(0x20); // LCD_WRITE_DATA(0x01); // LCD_WRITE_DATA(0x22); // LCD_WRITE_DATA(0x22); // // LCD_WRITE_CMD(0xfB); // LCD_WRITE_DATA(0x80); // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0x05); // LCD_WRITE_DATA(0x0d); // LCD_WRITE_DATA(0x1f); // LCD_WRITE_DATA(0x26); // LCD_WRITE_DATA(0x2d); // LCD_WRITE_DATA(0x14); // LCD_WRITE_DATA(0x15); // LCD_WRITE_DATA(0x26); // LCD_WRITE_DATA(0x20); // LCD_WRITE_DATA(0x01); // LCD_WRITE_DATA(0x22); // LCD_WRITE_DATA(0x22); // // LCD_WRITE_CMD(0xfC); // LCD_WRITE_DATA(0x80); // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0x05); // LCD_WRITE_DATA(0x0d); // LCD_WRITE_DATA(0x1f); // LCD_WRITE_DATA(0x26); // LCD_WRITE_DATA(0x2d); // LCD_WRITE_DATA(0x14); // LCD_WRITE_DATA(0x15); // LCD_WRITE_DATA(0x26); // LCD_WRITE_DATA(0x20); // LCD_WRITE_DATA(0x01); // LCD_WRITE_DATA(0x22); // LCD_WRITE_DATA(0x22); // // LCD_WRITE_CMD(0xFD); // LCD_WRITE_DATA(0x11);//0x11 // LCD_WRITE_DATA(0x01); // // LCD_WRITE_CMD(0x36); // LCD_WRITE_DATA(0x08); //0xe8排线向左,横屏 // // LCD_WRITE_CMD(0x35); // LCD_WRITE_DATA(0x00); // // // LCD_WRITE_CMD(0x2a); //排线向左,横屏 列数为 400. // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0xef); // // LCD_WRITE_CMD(0x2B);//排线向左,横屏 行数为 240. // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0x01); // LCD_WRITE_DATA(0x8f); // // LCD_WRITE_CMD(0xF1); // LCD_WRITE_DATA(0x5A); // // LCD_WRITE_CMD(0xFF); // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0x40);//0x40 // // LCD_WRITE_CMD(0x11); // delay(120); // // LCD_WRITE_CMD(0xF1); // LCD_WRITE_DATA(0x00); // // LCD_WRITE_CMD(0x29); // delay(40); // //LCD_WRITE_CMD(0x2c); // LCD_WRITE_CMD(0xe0); // LCD_WRITE_DATA(0x01); // LCD_WRITE_CMD(0xf3); // LCD_WRITE_DATA(0x00); // LCD_WRITE_CMD(0xf1); // LCD_WRITE_DATA(0x5a); // LCD_WRITE_CMD(0xFF); // LCD_WRITE_DATA(0x00);//5e // LCD_WRITE_DATA(0x00); //1f // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0x40);//5e // delay(100); // LCD_WRITE_CMD(0xFF); // LCD_WRITE_DATA(0x00);//5e // LCD_WRITE_DATA(0x00); //1f // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0x5e);//5e // // // LCD_WRITE_CMD(0x11); //Exit Sleep // delay(10); // // // LCD_WRITE_CMD(0xF3); // LCD_WRITE_DATA(0xFF); // LCD_WRITE_DATA(0x2A); // LCD_WRITE_DATA(0x2A); // LCD_WRITE_DATA(0x09); // LCD_WRITE_DATA(0x33); // LCD_WRITE_DATA(0x7F); // LCD_WRITE_DATA(0x7F); // LCD_WRITE_DATA(0x20); // LCD_WRITE_CMD(0xF4); // LCD_WRITE_DATA(0x55); // LCD_WRITE_DATA(0x55); // LCD_WRITE_DATA(0x73); // LCD_WRITE_DATA(0x73); // LCD_WRITE_DATA(0x33); // LCD_WRITE_CMD(0xF5); // LCD_WRITE_DATA(0x02); // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0x03); // LCD_WRITE_DATA(0xF0); // LCD_WRITE_DATA(0x70); // //LCD_WRITE_CMD(0x11); //// delay(120); //// LCD_WRITE_CMD(0x36); //// LCD_WRITE_DATA(0x48); //// LCD_WRITE_CMD(0x3A); //// LCD_WRITE_DATA(0x07); // LCD_WRITE_CMD(0xF2); // LCD_WRITE_DATA(0x10); // LCD_WRITE_DATA(0x10); // LCD_WRITE_DATA(0x03); // LCD_WRITE_DATA(0x02); // LCD_WRITE_DATA(0x03); // LCD_WRITE_DATA(0x02); // LCD_WRITE_DATA(0x03); // LCD_WRITE_DATA(0x10); // LCD_WRITE_DATA(0x04); // LCD_WRITE_DATA(0x15); // LCD_WRITE_DATA(0x15); // LCD_WRITE_CMD(0xF6); // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0x80); // LCD_WRITE_CMD(0xFD); // LCD_WRITE_DATA(0x22); // LCD_WRITE_DATA(0x01); // LCD_WRITE_CMD(0xF7); // LCD_WRITE_DATA(0x80); // LCD_WRITE_DATA(0x31); // LCD_WRITE_DATA(0x03); // LCD_WRITE_DATA(0x0A); // LCD_WRITE_DATA(0x1E); // LCD_WRITE_DATA(0x26); // LCD_WRITE_DATA(0x2F); // LCD_WRITE_DATA(0x36); // LCD_WRITE_DATA(0x0C); // LCD_WRITE_DATA(0x12); // LCD_WRITE_DATA(0x2A); // LCD_WRITE_DATA(0x21); // LCD_WRITE_DATA(0x07); // LCD_WRITE_DATA(0x22); // LCD_WRITE_DATA(0x22); // LCD_WRITE_CMD(0xF8); // LCD_WRITE_DATA(0x80); // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0x03); // LCD_WRITE_DATA(0x14); // LCD_WRITE_DATA(0x2F); // LCD_WRITE_DATA(0x30); // LCD_WRITE_DATA(0x31); // LCD_WRITE_DATA(0x38); // LCD_WRITE_DATA(0x06); // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0x0A); // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0x22); // LCD_WRITE_DATA(0x22); // // LCD_WRITE_CMD(0xf9); // LCD_WRITE_DATA(0x8A); // LCD_WRITE_DATA(0x31); // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0x14); // LCD_WRITE_DATA(0x25); // LCD_WRITE_DATA(0x2f); // LCD_WRITE_DATA(0x37); // LCD_WRITE_DATA(0x3F); // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0x1F); // LCD_WRITE_DATA(0x1D); // LCD_WRITE_DATA(0x04); // LCD_WRITE_DATA(0x22); // LCD_WRITE_DATA(0x22); // // // LCD_WRITE_CMD(0xfA); // LCD_WRITE_DATA(0x80); // LCD_WRITE_DATA(0x0B); // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0x0A); // LCD_WRITE_DATA(0x35); // LCD_WRITE_DATA(0x36); // LCD_WRITE_DATA(0x39); // LCD_WRITE_DATA(0x3F); // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0x0A); // LCD_WRITE_DATA(0x03); // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0x22); // LCD_WRITE_DATA(0x22); // // LCD_WRITE_CMD(0xfB); // LCD_WRITE_DATA(0x8A); // LCD_WRITE_DATA(0x31); // LCD_WRITE_DATA(0x03); // LCD_WRITE_DATA(0x0E); // LCD_WRITE_DATA(0x1E); // LCD_WRITE_DATA(0x2f); // LCD_WRITE_DATA(0x34); // LCD_WRITE_DATA(0x3F); // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0x24); // LCD_WRITE_DATA(0x1E); // LCD_WRITE_DATA(0x07); // LCD_WRITE_DATA(0x22); // LCD_WRITE_DATA(0x22); // // LCD_WRITE_CMD(0xfC); // LCD_WRITE_DATA(0x80); // LCD_WRITE_DATA(0x18); // LCD_WRITE_DATA(0x03); // LCD_WRITE_DATA(0x14); // LCD_WRITE_DATA(0x38); // LCD_WRITE_DATA(0x3C); // LCD_WRITE_DATA(0x3C); // LCD_WRITE_DATA(0x3F); // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0x00); // LCD_WRITE_DATA(0x22); // LCD_WRITE_DATA(0x22); // LCD_WRITE_CMD(0x21); // // // LCD_WRITE_CMD(0x35); // LCD_WRITE_DATA(0x00); // LCD_WRITE_CMD(0x36); // LCD_WRITE_DATA(0x40); // LCD_WRITE_CMD(0x3a); // LCD_WRITE_DATA(0x55); //// LCD_WRITE_CMD(0x2A); //Set_column_address //// LCD_WRITE_DATA(0x00); //// LCD_WRITE_DATA(0x00); //// LCD_WRITE_DATA(0x00); //// LCD_WRITE_DATA(0xEF); //// //Set_page_address //// LCD_WRITE_CMD(0x2B); //Set_page_address //// LCD_WRITE_DATA(0x00); //// LCD_WRITE_DATA(0x00);//00 //// LCD_WRITE_DATA(0x01); //// LCD_WRITE_DATA(0x8F);//8f // LCD_WRITE_CMD(0x29); //display on // delay(100); // LCD_WRITE_CMD(0x2c); //display on } void LCD_SET_WIN(void) { LCD_WRITE_CMD(0x2a); LCD_WRITE_DATA(0x00); LCD_WRITE_DATA(0x00); LCD_WRITE_DATA(0x00); LCD_WRITE_DATA(0xef); LCD_WRITE_CMD(0x2b); LCD_WRITE_DATA(0x00); LCD_WRITE_DATA(0x00); LCD_WRITE_DATA(0x01); LCD_WRITE_DATA(0x8f); LCD_WRITE_CMD(0x002C); } void LCD_BRUSH(int color) { int i,j; for(i=0;i<400;i++) { for(j=0;j<240;j++) { // LCD_WRITE_DATA(color>>8); // LCD_WRITE_DATA(color); LCD_WRITE_DATA_16(color);// delay(1); } } } void LCD_BRUSH_1(int color) { int i,j; for(i=0;i<400;i++) { for(j=0;j<240;j++) { // LCD_WRITE_DATA(color>>8); // LCD_WRITE_DATA(color); LCD_WRITE_DATA_16(color); } } } unsigned char LCD_ID_5702(unsigned int dat) { unsigned int temp,DH,DL; LCD_WRITE_CMD(dat); temp=0; P0=0xff; P2=0xff; RS=1; //选择数据 TFT_CS=0; //片选 RDB=0; //读开启 delay(5); //延时 DH=P2; DL=P0; RDB=1; //读关闭 UART_send_data(DL); // UART_send_data(DL); RS=1; //选择数据 TFT_CS=0; //片选 RDB=0; //读开启 delay(5); //延时 DH=P2; DL=P0; RDB=1; //读关闭 UART_send_data(DL); // UART_send_data(DL); RS=1; //选择数据 TFT_CS=0; //片选 RDB=0; //读开启 delay(5); //延时 DH=P2; DL=P0; RDB=1; //读关闭 UART_send_data(DL); // UART_send_data(DL); temp=temp|DL; //读出0x0093 temp=temp<<8; RS=1; //选择数据 TFT_CS=0; //片选 RDB=0; //读开启 delay(5); //延时 DH=P2; DL=P0; RDB=1; //读关闭 UART_send_data(DL); //读出0x0041 // UART_send_data(DL); TFT_CS=1; //片选关闭 temp=temp|DL; return temp; } void main(void) { unsigned char id; UART_init(); reset(); id = LCD_ID_5702(0x04); // UART_send_data(id); // UART_send_data(0x55); lcd_init(); LCD_SET_WIN(); while(1) { LCD_BRUSH_1(0x0); delay(2500); // LCD_BRUSH(0x0); // delay(2500); // LCD_BRUSH(0xf800); LCD_BRUSH(0xf800); delay(1000); LCD_BRUSH(0x07e0); delay(1000); LCD_BRUSH(0x001f); delay(1000); //// LCD_BRUSH(0xf81f); //// delay(1000); // LCD_BRUSH(0x07e0); // delay(1000); // LCD_BRUSH(0x001f); // delay(1000); // LCD_BRUSH(0xffe0); // delay(1000); } }