求助,AI8051UTFT屏幕显示不正常
我最近用擎天柱学习板写了一个tft显示的代码,但tft显示不正常,只有白屏,求有没有大神能看出问题。这是代码:
#include<AI8051U.h>
bit a;
unsigned char i;
unsigned char c;
unsigned long d;
void Lcd_Refresh();
void Lcd_Test();
void Lcd_Cmd(unsigned char Lcdc);
void Lcd_Data(unsigned char Lcdd);
void Delay(unsigned long DelayTime);
void SpiSendBit(bit SeBit);
void SpiSendByte(unsigned char SeByte);
sbit RES=P2^0;
sbit SDA=P2^1;
sbit SCL=P2^2;
sbit cs=P2^3;
void main(void)
{
Lcd_Refresh();
Lcd_Test();
while(1);
}
void Delay(unsigned long DelayTime)
{
while(--DelayTime);
}
void SpiSendBit(bit SeBit)
{
SDA=SeBit;
SCL=1;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
SCL=0;
}
void SpiSendByte(unsigned char SeByte)
{
for(i=0x80;i;i>>=1)
{
c=SeByte;
SpiSendBit(c&i);
}
}
void Lcd_Cmd(unsigned char Lcdc)
{
cs=0;
SpiSendBit(0);
for(i=0x80;i;i>>=1)
{
c=Lcdc;
SpiSendBit(c&i);
}
cs=1;
}
void Lcd_Data(unsigned char Lcdd)
{
cs=0;
SpiSendBit(1);
for(i=0x80;i;i>>=1)
{
c=Lcdd;
SpiSendBit(c&i);
}
cs=1;
}
void Lcd_Refresh()
{
RES = 0;
Delay(100000);
RES = 1;
Delay(200000);
Lcd_Cmd(0x11);
Delay(100000);
Lcd_Cmd(0x26);
Lcd_Data(0x04);
Lcd_Cmd(0xB1);
Lcd_Data(0x0A);
Lcd_Data(0x14);
Lcd_Cmd(0xC0);
Lcd_Data(0x19);
Lcd_Data(0x19);
Lcd_Cmd(0xC1);
Lcd_Data(0x45);
Lcd_Cmd(0xC5);
Lcd_Data(0x0F);
Lcd_Data(0x3F);
Lcd_Cmd(0x36);
Lcd_Data(0x08);
Lcd_Cmd(0x3A);
Lcd_Data(0x55);
Lcd_Cmd(0x2A);
Lcd_Data(0x00);
Lcd_Data(0x00);
Lcd_Data(0x00);
Lcd_Data(0x7F);
Lcd_Cmd(0x2B);
Lcd_Data(0x00);
Lcd_Data(0x00);
Lcd_Data(0x00);
Lcd_Data(0x7F);
Lcd_Cmd(0x29);
Lcd_Cmd(0x51);
Lcd_Data(0xFF);
}
void Lcd_Test()
{
Lcd_Cmd(0x2A);
Lcd_Data(0x00);
Lcd_Data(0x00);
Lcd_Data(0x00);
Lcd_Data(127);
Lcd_Cmd(0x2B);
Lcd_Data(0x00);
Lcd_Data(0x00);
Lcd_Data(0x00);
Lcd_Data(127);
Lcd_Cmd(0x2C);
cs=0;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
SpiSendBit(1);
for(d=0;d<128*128*2;d++)
{
if(d<128*128)
{
SpiSendByte(0xff);
}
else
{
SpiSendByte(0x00);
}
}
cs=1;
}
我用的tft屏幕资料:
按sda-P21;scl-p22;cs-p23;res-p20接线,没发现有问题,求大神指点{:4_247:}
1.找屏幕卖家要例程
2.上示波器或逻辑分析仪解码看看发送内容对不对得上。
页:
[1]