#define LCD_W 320 #define LCD_H 480 void LCD_RESET(void) { LCD_RST_CLR; delay_ms(100); LCD_RST_SET; delay_ms(50); } void LCD_direction(u8 direction) { lcddev.setxcmd=0x2A; lcddev.setycmd=0x2B; lcddev.wramcmd=0x2C; lcddev.rramcmd=0x2E; lcddev.dir = direction%4; switch(lcddev.dir){ case 0: lcddev.width=LCD_W; lcddev.height=LCD_H; LCD_WriteReg(0x36,(1<<3)|(1<<6)); break; case 1: lcddev.width=LCD_H; lcddev.height=LCD_W; LCD_WriteReg(0x36,(1<<3)|(1<<5)); break; case 2: lcddev.width=LCD_W; lcddev.height=LCD_H; LCD_WriteReg(0x36,(1<<3)|(1<<7)); break; case 3: lcddev.width=LCD_H; lcddev.height=LCD_W; LCD_WriteReg(0x36,(1<<3)|(1<<7)|(1<<6)|(1<<5)); break; default:break; } } void LCD_Init(void) { LCD_RESET(); //LCD 复位 //*************4.0 ST7796S TN初始化**********// LCD_WR_REG(0xF0); LCD_WR_DATA(0xC3); LCD_WR_REG(0xF0); LCD_WR_DATA(0x96); LCD_WR_REG(0x36); LCD_WR_DATA(0x48); LCD_WR_REG(0x3A); LCD_WR_DATA(0x05); LCD_WR_REG(0xB0); LCD_WR_DATA(0x80); LCD_WR_REG(0xB6); LCD_WR_DATA(0x00); LCD_WR_DATA(0x02); LCD_WR_REG(0xB5); LCD_WR_DATA(0x02); LCD_WR_DATA(0x03); LCD_WR_DATA(0x00); LCD_WR_DATA(0x04); LCD_WR_REG(0xB1); LCD_WR_DATA(0x80); LCD_WR_DATA(0x10); LCD_WR_REG(0xB4); LCD_WR_DATA(0x00); LCD_WR_REG(0xB7); LCD_WR_DATA(0xC6); LCD_WR_REG(0xC5); LCD_WR_DATA(0x1C); LCD_WR_REG(0xE4); LCD_WR_DATA(0x31); LCD_WR_REG(0xE8); LCD_WR_DATA(0x40); LCD_WR_DATA(0x8A); LCD_WR_DATA(0x00); LCD_WR_DATA(0x00); LCD_WR_DATA(0x29); LCD_WR_DATA(0x19); LCD_WR_DATA(0xA5); LCD_WR_DATA(0x33); LCD_WR_REG(0xC2); LCD_WR_REG(0xA7); LCD_WR_REG(0xE0); LCD_WR_DATA(0xF0); LCD_WR_DATA(0x09); LCD_WR_DATA(0x13); LCD_WR_DATA(0x12); LCD_WR_DATA(0x12); LCD_WR_DATA(0x2B); LCD_WR_DATA(0x3C); LCD_WR_DATA(0x44); LCD_WR_DATA(0x4B); LCD_WR_DATA(0x1B); LCD_WR_DATA(0x18); LCD_WR_DATA(0x17); LCD_WR_DATA(0x1D); LCD_WR_DATA(0x21); LCD_WR_REG(0XE1); LCD_WR_DATA(0xF0); LCD_WR_DATA(0x09); LCD_WR_DATA(0x13); LCD_WR_DATA(0x0C); LCD_WR_DATA(0x0D); LCD_WR_DATA(0x27); LCD_WR_DATA(0x3B); LCD_WR_DATA(0x44); LCD_WR_DATA(0x4D); LCD_WR_DATA(0x0B); LCD_WR_DATA(0x17); LCD_WR_DATA(0x17); LCD_WR_DATA(0x1D); LCD_WR_DATA(0x21); LCD_WR_REG(0xF0); LCD_WR_DATA(0x3C); LCD_WR_REG(0xF0); LCD_WR_DATA(0x69); LCD_WR_REG(0X13); LCD_WR_REG(0X11); LCD_WR_REG(0X29); LCD_direction(USE_HORIZONTAL);//设置LCD显示方向 }