8080时序总共有控制线 CS片选线 DC(命令数据控制线) RD读控制线 WR写控制线 和N条数据线。
控制底层代码如下;
写读代码,读的代码反过来就行
inline void TFT8080WriteDat(unsigned char dat)
{
CS_L;//开始片选
DC_H;//写数据
// RD_H;//禁止读
WR_H;//禁止写
WR_L;//写入结束
DATAOUT(dat);
WR_H;//写入结束
CS_H;//结束片选
}
inline void TFT8080WriteCom(unsigned char dat)
{
CS_L;//开始片选
DC_L;//写命令
RD_H;//禁止读
// WR_H;//禁止写
WR_L;//写入结束
DATAOUT(dat);
WR_H;//写入结束
CS_H;//结束片选
}
我的屏幕控制IC是GC9307 但我直接用的是ST7789的控制代码,因为ST7789完全兼容GC9307
void TFT_init(void)
{
TFT_RES(1);
delay_ms(150);
TFT_RES(0);
delay_ms(150);
TFT_RES(1);
delay_ms(150);
TFT8080WriteCom(0x11);
delay_ms(120); //Delay 120ms
//------------------------------display and color format setting--------------------------------//
TFT8080WriteCom(0x36); //内存数据访问控制
TFT8080WriteDat(0xE0);
// TFT8080WriteDat(0xA0);
TFT8080WriteCom(0x3a); // 设置颜色显示位数
TFT8080WriteDat(0x05);
TFT8080WriteCom(0x21); // 打开反显
//--------------------------------ST7789V Frame rate setting----------------------------------//
TFT8080WriteCom(0xb2); //门廊设置
TFT8080WriteDat(0x0c);
TFT8080WriteDat(0x0c);
TFT8080WriteDat(0x00);
TFT8080WriteDat(0x33);
TFT8080WriteDat(0x33);
TFT8080WriteCom(0xb7); //栅极控制
TFT8080WriteDat(0x35);
//---------------------------------ST7789V Power setting--------------------------------------//
TFT8080WriteCom(0xbb); //VCOM控制
TFT8080WriteDat(0x28);
TFT8080WriteCom(0xc0); //LCM控制
TFT8080WriteDat(0x2c);
TFT8080WriteCom(0xc2); //VDV和VRH使能
TFT8080WriteDat(0x01);
TFT8080WriteCom(0xc3); //VRH设置
TFT8080WriteDat(0x0b);
TFT8080WriteCom(0xc4); //VDV设置
TFT8080WriteDat(0x20);
TFT8080WriteCom(0xc6); //正常模式下的帧率控制
TFT8080WriteDat(0x0f);
TFT8080WriteCom(0xd0); //RAM控制
TFT8080WriteDat(0xa4);
TFT8080WriteDat(0xa1);
//--------------------------------ST7789V gamma setting---------------------------------------//
TFT8080WriteCom(0xe0); //正电压加码控制
TFT8080WriteDat(0xd0);
TFT8080WriteDat(0x01);
TFT8080WriteDat(0x08);
TFT8080WriteDat(0x0f);
TFT8080WriteDat(0x11);
TFT8080WriteDat(0x2a);
TFT8080WriteDat(0x36);
TFT8080WriteDat(0x55);
TFT8080WriteDat(0x44);
TFT8080WriteDat(0x3a);
TFT8080WriteDat(0x0b);
TFT8080WriteDat(0x06);
TFT8080WriteDat(0x11);
TFT8080WriteDat(0x20);
TFT8080WriteCom(0xe1); //负电压加码控制
TFT8080WriteDat(0xd0);
TFT8080WriteDat(0x02);
TFT8080WriteDat(0x07);
TFT8080WriteDat(0x0a);
TFT8080WriteDat(0x0b);
TFT8080WriteDat(0x18);
TFT8080WriteDat(0x34);
TFT8080WriteDat(0x43);
TFT8080WriteDat(0x4a);
TFT8080WriteDat(0x2b);
TFT8080WriteDat(0x1b);
TFT8080WriteDat(0x1c);
TFT8080WriteDat(0x22);
TFT8080WriteDat(0x1f);
TFT8080WriteCom(0x29); //开显示
}