找回密码
 立即注册
查看: 111|回复: 1

求助,AI8051UTFT屏幕显示不正常

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:164
  • 最近打卡:2026-07-03 09:08:33
已绑定手机

13

主题

75

回帖

595

积分

高级会员

积分
595
发表于 2026-5-11 20:05:09 | 显示全部楼层 |阅读模式
我最近用擎天柱学习板写了一个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屏幕资料: MD144-QQVGA14P-01-V01_规格书.pdf (683.73 KB, 下载次数: 6)
按sda-P21;scl-p22;cs-p23;res-p20接线,没发现有问题,求大神指点



回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:586
  • 最近打卡:2026-07-04 12:34:03
已绑定手机

112

主题

4958

回帖

1万

积分

荣誉版主

无情的代码机器

积分
10758
发表于 2026-5-11 21:26:57 | 显示全部楼层
1.找屏幕卖家要例程

2.上示波器或逻辑分析仪解码看看发送内容对不对得上。
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-7-5 14:04 , Processed in 0.071199 second(s), 46 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表