大家好,最近的项目用到ILI9488这个芯片的屏幕,用51单片机的IO口模拟SPI信号,发送初始化代码
设置成DPI-18bitRGB模式。并用LT768芯片来显示图片。下面是程序和ILI9488资料分享:
显示图片为18bitR6G6B6信号,由于便于测试,每种颜色的6根脚都接一起了,效果如下图:
单片机驱动ILI9488源程序如下:
#define CS P13
#define CLK P14
#define DCX P15
#define SI P16
#define LCD_nRESET P00
void SPId_Init(void)
{
P1M0 |= (1<<3);
P1M1 &= ~(1<<3);
P1M0 |= (1<<4);
P1M1 &= ~(1<<4);
P1M0 |= (1<<5);
P1M1 &= ~(1<<5);
P1M0 |= (1<<6);
P1M1 &= ~(1<<6);
CS = 1;
CLK = 1;
SI = 1;
DCX = 1;
}
void LCD_ILI9488_CMD(unsigned char val)
{
unsigned char count = 0;
DCX = 0;
CS = 0;
for(count = 0 ; count < 8 ; count++)
{
CLK = 0;
delay_us(1);
if((val&0x80)==0x80)
{
SI = 1;
delay_us(1);
}
else
{
SI = 0;
delay_us(1);
}
CLK = 1;
delay_us(1);
val=val<<1;
}
CS = 1;
delay_us(1);delay_us(1);delay_us(1);
}
void LCD_ILI9488_INDEX(unsigned char val)
{
unsigned char count = 0;
DCX = 1;
CS = 0;
for(count = 0 ; count < 8 ; count++)
{
CLK = 0;
delay_us(1);
if((val&0x80)==0x80)
{
SI = 1;
delay_us(1);
}
else
{
SI = 0;
delay_us(1);
}
CLK = 1;
delay_us(1);
val=val<<1;
}
CS = 1;
delay_us(1);delay_us(1);delay_us(1);
}
void LCD_Init(void)
{
LCD_nRESET = 1;
delay_ms(1);
LCD_nRESET = 0;
delay_ms(10);
LCD_nRESET = 1;
delay_ms(120);
LCD_ILI9488_CMD(0xE0);
LCD_ILI9488_INDEX(0x00);
LCD_ILI9488_INDEX(0x07);
LCD_ILI9488_INDEX(0x0f);
LCD_ILI9488_INDEX(0x07);
LCD_ILI9488_INDEX(0x15);
LCD_ILI9488_INDEX(0x09);
LCD_ILI9488_INDEX(0x3c);
LCD_ILI9488_INDEX(0x99);
LCD_ILI9488_INDEX(0x4b);
LCD_ILI9488_INDEX(0x09);
LCD_ILI9488_INDEX(0x10);
LCD_ILI9488_INDEX(0x0d);
LCD_ILI9488_INDEX(0x1c);
LCD_ILI9488_INDEX(0x1e);
LCD_ILI9488_INDEX(0x0f);
LCD_ILI9488_CMD(0xE1);
LCD_ILI9488_INDEX(0x00);
LCD_ILI9488_INDEX(0x20);
LCD_ILI9488_INDEX(0x23);
LCD_ILI9488_INDEX(0x02);
LCD_ILI9488_INDEX(0x0f);
LCD_ILI9488_INDEX(0x06);
LCD_ILI9488_INDEX(0x34);
LCD_ILI9488_INDEX(0x45);
LCD_ILI9488_INDEX(0x43);
LCD_ILI9488_INDEX(0x04);
LCD_ILI9488_INDEX(0x0a);
LCD_ILI9488_INDEX(0x08);
LCD_ILI9488_INDEX(0x30);
LCD_ILI9488_INDEX(0x37);
LCD_ILI9488_INDEX(0x0f);
LCD_ILI9488_CMD(0xC0);
LCD_ILI9488_INDEX(0x10);
LCD_ILI9488_INDEX(0x10);
LCD_ILI9488_CMD(0xC1);
LCD_ILI9488_INDEX(0x41);
LCD_ILI9488_CMD(0xC5);
LCD_ILI9488_INDEX(0x00);
LCD_ILI9488_INDEX(0x20);
LCD_ILI9488_INDEX(0xd0);
LCD_ILI9488_CMD(0x36);
LCD_ILI9488_INDEX(0x48);
LCD_ILI9488_CMD(0x3A); //Interface Mode Control
LCD_ILI9488_INDEX(0x60);
LCD_ILI9488_CMD(0XB0); //Interface Mode Control
LCD_ILI9488_INDEX(0x08);
LCD_ILI9488_CMD(0xB1); //Frame rate 60HZ
LCD_ILI9488_INDEX(0xA0);
LCD_ILI9488_INDEX(0x11);
LCD_ILI9488_CMD(0xB4);
LCD_ILI9488_INDEX(0x02);
LCD_ILI9488_CMD(0xB6); //RGB/MCU Interface Control
……………………
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』