数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 405|回复: 10

[C51] 求助这款普中tft2.4寸彩屏怎么驱动不起来

[复制链接]
发表于 2025-9-27 22:03:36 | 显示全部楼层 |阅读模式
本帖最后由 hackwangchao 于 2025-9-27 22:06 编辑

闲的无聊翻出多少年前的普中51开发板,所有的都能驱动起来就是这款彩屏没有程序不能驱动,从网上找了普中的程序还是不行,各位大神看看是哪里的问题。



以下是找到的代码


#include <reg52.h>
#include"LCD_driver.h"

uint colors[]=
{0xf800,0x07e0,0x001f,0xffe0,0x0000,0x07ff,0xf81f,0xffff  };        //颜色数据


void LCD_Init(void)
{

        LCD_REST=1;
            delayms(50);       
                LCD_REST=0;
                delayms(50);
                LCD_REST=1;
                delayms(5);
       
        LCD_CS =0;  //打开片选使能
        /**********************        以下初始化代码 每个命令下带有不同数量的参数**************************/
       
    LCD_Write_COM(0XF0);  //参考S6D04H0驱动IC手册.pdf 文档的 220页         //LCD_Write_COM函数 发送命令  LCD_Write_Para函数 传递该命令下的参数
    LCD_Write_Para(0X5A);         
    LCD_Write_Para(0X5A);         
   
        //APON CONTROL                        
    LCD_Write_COM(0XF3);  //参考S6D04H0驱动IC手册.pdf 文档的 227页
    LCD_Write_Para(0X00);
    LCD_Write_Para(0X00);      
    LCD_Write_Para(0X00);   
        LCD_Write_Para(0X00);           
   
        //SLEEP OUT
    LCD_Write_COM(0X11);  //参考S6D04H0驱动IC手册.pdf 文档的 165页      
    delayms(10);
        
        //POWER CONTROL           VC = "0111"
    LCD_Write_COM(0XF4);   //参考S6D04H0驱动IC手册.pdf 文档的 228页
    LCD_Write_Para(0X07);
    LCD_Write_Para(0X00);
    LCD_Write_Para(0X00);
    LCD_Write_Para(0X00);  
    LCD_Write_Para(0X21);            
    LCD_Write_Para(0X47);      
    LCD_Write_Para(0X01);      
    LCD_Write_Para(0X02);     
    LCD_Write_Para(0X3F);
    LCD_Write_Para(0X66);   
    LCD_Write_Para(0X05);
   
        //POWER CONTROL           VC = "0111"
        LCD_Write_COM(0XF4); //参考S6D04H0驱动IC手册.pdf 文档的 228页   带有20个参数
        LCD_Write_Para(0X07);
    LCD_Write_Para(0X00);
    LCD_Write_Para(0X00);
    LCD_Write_Para(0X00);  
    LCD_Write_Para(0X21);            
    LCD_Write_Para(0X47);      
    LCD_Write_Para(0X04);  
        LCD_Write_Para(0X02);      
    LCD_Write_Para(0X2A);  
    LCD_Write_Para(0X7d);      
    LCD_Write_Para(0X05);  
       
    LCD_Write_COM(0XF2);  //参考S6D04H0驱动IC手册.pdf 文档的 221页
        LCD_Write_Para(0X28);            
    LCD_Write_Para(0X60);      
    LCD_Write_Para(0X03);  
        LCD_Write_Para(0X04);      
    LCD_Write_Para(0X04);  
    LCD_Write_Para(0X00);      
    LCD_Write_Para(0X00);
    LCD_Write_Para(0X15);            
    LCD_Write_Para(0X48);      
    LCD_Write_Para(0X00);  
        LCD_Write_Para(0X07);      
    LCD_Write_Para(0X01);  

        LCD_Write_COM(0XF5);  //参考S6D04H0驱动IC手册.pdf 文档的 235页
          LCD_Write_Para(0X00);            
    LCD_Write_Para(0X1d);      
    LCD_Write_Para(0X4f);  
        LCD_Write_Para(0X00);      
    LCD_Write_Para(0X00);
        LCD_Write_Para(0X06);  


    //POWER CONTROL       
    LCD_Write_COM(0XF3);          //参考S6D04H0驱动IC手册.pdf 文档的 227页
    LCD_Write_Para(0X00);      
    LCD_Write_Para(0X03);
    LCD_Write_Para(0X00);         
    LCD_Write_Para(0X00);         
    LCD_Write_Para(0X00);      
    delayms(5);  

        //POWER CONTROL       
    LCD_Write_COM(0XF3);         //参考S6D04H0驱动IC手册.pdf 文档的 227页
    LCD_Write_Para(0X00);                 
    LCD_Write_Para(0X0F);
    LCD_Write_Para(0X09);
        LCD_Write_Para(0X00);
        LCD_Write_Para(0X00);
    delayms(5);  
   
    LCD_Write_COM(0XF3);         //参考S6D04H0驱动IC手册.pdf 文档的 227页
    LCD_Write_Para(0X00);                  
    LCD_Write_Para(0X0F);
        LCD_Write_Para(0X01);
    delayms(10);

    //POWER CONTROL       
    LCD_Write_COM(0XF3);   //参考S6D04H0驱动IC手册.pdf 文档的 227页
    LCD_Write_Para(0X00);                  
    LCD_Write_Para(0X1F);
    delayms(20);

    LCD_Write_COM(0XF3);  //参考S6D04H0驱动IC手册.pdf 文档的 227页
    LCD_Write_Para(0X00);                  
    LCD_Write_Para(0X3F);   

    delayms(10);
    LCD_Write_COM(0XF3);         //参考S6D04H0驱动IC手册.pdf 文档的 227页
    LCD_Write_Para(0X00);                  
    LCD_Write_Para(0X3F);
        LCD_Write_Para(0X03);

   
    LCD_Write_COM(0XF3);    //参考S6D04H0驱动IC手册.pdf 文档的 227页
    LCD_Write_Para(0X00);              
    LCD_Write_Para(0X7F);
    delayms(30);         

    LCD_Write_COM(0XF3);  //参考S6D04H0驱动IC手册.pdf 文档的 227页
    LCD_Write_Para(0X00);                  
    LCD_Write_Para(0XFF);

    /*LCD_Write_COM(0XFD);     
    LCD_Write_Para(0X00);
    LCD_Write_Para(0X00);
    LCD_Write_Para(0X10);   
    LCD_Write_Para(0X14);
    LCD_Write_Para(0X12);
    LCD_Write_Para(0X00);  */
    delayms(20);

    LCD_Write_COM(0XF3);   //参考S6D04H0驱动IC手册.pdf 文档的 227页
    LCD_Write_Para(0X00);                 
    LCD_Write_Para(0XFF);   
    LCD_Write_Para(0X1F);
    LCD_Write_Para(0X00);   
    LCD_Write_Para(0X02);
          delayms(20);
        LCD_Write_COM(0XF3);  //参考S6D04H0驱动IC手册.pdf 文档的 227页
    LCD_Write_Para(0X01);
       
    LCD_Write_COM(0XF0);
    LCD_Write_Para(0Xa5);
        LCD_Write_Para(0Xa5);
       
    LCD_Write_COM(0X36);   //参考S6D04H0驱动IC手册.pdf 文档的 189页
    LCD_Write_Para(0X48);
  
    LCD_Write_COM(0X3a);   //参考S6D04H0驱动IC手册.pdf 文档的 195页
    LCD_Write_Para(0X55);   //16bit (66 18bit)
     
        //gamma
        //red     
/*        LCD_Write_COM(0Xf9);
    LCD_Write_Para(0X04);

        LCD_Write_COM(0XFA);
        LCD_Write_Para(0x0a);
        LCD_Write_Para(0x08);
        LCD_Write_Para(0X18);
        LCD_Write_Para(0X1d);
        LCD_Write_Para(0X1e);
        LCD_Write_Para(0X20);
        LCD_Write_Para(0X15);
        LCD_Write_Para(0X3E);
        LCD_Write_Para(0X2e);
        LCD_Write_Para(0X1c);
        LCD_Write_Para(0X0a);
        LCD_Write_Para(0X00);
        LCD_Write_Para(0X00);
        LCD_Write_Para(0X00);
        LCD_Write_Para(0X00);
        LCD_Write_Para(0X00);

        LCD_Write_COM(0XFB);
        LCD_Write_Para(0x00);
        LCD_Write_Para(0x00);
        LCD_Write_Para(0X1F);
        LCD_Write_Para(0X1d);
        LCD_Write_Para(0X1e);
        LCD_Write_Para(0X20);
        LCD_Write_Para(0X15);
        LCD_Write_Para(0X3E);
        LCD_Write_Para(0X2f);
        LCD_Write_Para(0X1c);
        LCD_Write_Para(0X0a);
        LCD_Write_Para(0X00);
        LCD_Write_Para(0X00);
        LCD_Write_Para(0X00);
        LCD_Write_Para(0X00);
        LCD_Write_Para(0X00);

    //green
/*   LCD_Write_COM(0XF9);
    LCD_Write_Para(0X02);

        LCD_Write_COM(0XFA);
        LCD_Write_Para(0x0a);
        LCD_Write_Para(0x08);
        LCD_Write_Para(0X1f);
        LCD_Write_Para(0X1d);
        LCD_Write_Para(0X1e);
        LCD_Write_Para(0X20);
        LCD_Write_Para(0X15);
        LCD_Write_Para(0X3E);
        LCD_Write_Para(0X2e);
        LCD_Write_Para(0X1c);
        LCD_Write_Para(0X0a);
        LCD_Write_Para(0X00);
        LCD_Write_Para(0X00);
        LCD_Write_Para(0X00);
        LCD_Write_Para(0X00);
        LCD_Write_Para(0X00);

        LCD_Write_COM(0XFB);
        LCD_Write_Para(0x00);
        LCD_Write_Para(0x00);
        LCD_Write_Para(0X1F);
        LCD_Write_Para(0X1d);
        LCD_Write_Para(0X1e);
        LCD_Write_Para(0X20);
        LCD_Write_Para(0X15);
        LCD_Write_Para(0X3E);
        LCD_Write_Para(0X2f);
        LCD_Write_Para(0X1c);
        LCD_Write_Para(0X0a);
        LCD_Write_Para(0X00);
        LCD_Write_Para(0X00);
        LCD_Write_Para(0X00);
        LCD_Write_Para(0X00);
        LCD_Write_Para(0X00);

    LCD_Write_COM(0XF9);
    LCD_Write_Para(0X01);

        //blue
    LCD_Write_COM(0XFA);
        LCD_Write_Para(0x0a);
        LCD_Write_Para(0x08);
        LCD_Write_Para(0X1f);
        LCD_Write_Para(0X1d);
        LCD_Write_Para(0X1e);
        LCD_Write_Para(0X20);
        LCD_Write_Para(0X15);
        LCD_Write_Para(0X3E);
        LCD_Write_Para(0X2e);
        LCD_Write_Para(0X1c);
        LCD_Write_Para(0X0a);
        LCD_Write_Para(0X00);
        LCD_Write_Para(0X00);
        LCD_Write_Para(0X00);
        LCD_Write_Para(0X00);
        LCD_Write_Para(0X00);

/*        LCD_Write_COM(0XFB);
        LCD_Write_Para(0x00);
        LCD_Write_Para(0x00);
        LCD_Write_Para(0X1F);
        LCD_Write_Para(0X1d);
        LCD_Write_Para(0X1e);
        LCD_Write_Para(0X20);
        LCD_Write_Para(0X15);
        LCD_Write_Para(0X3E);
        LCD_Write_Para(0X2f);
        LCD_Write_Para(0X1c);
        LCD_Write_Para(0X0a);
        LCD_Write_Para(0X00);
        LCD_Write_Para(0X00);
        LCD_Write_Para(0X00);
        LCD_Write_Para(0X00);
        LCD_Write_Para(0X00);          */

         delayms(120);

    LCD_Write_COM(0x29);         //显示打开                 //参考S6D04H0驱动IC手册.pdf 文档的 173页
        LCD_Write_COM(0x2c);        //写数据到RAM中         //参考S6D04H0驱动IC手册.pdf 文档的 270页               
       
        LCD_CS =1; //关闭使能
}  



void LCD_Write_COM(char VL)         //发送命令
{       
    LCD_RS=0;
        LCD_DataPortL=VL;          //低位P0口       
        LCD_WR=0;
        LCD_WR=1;
}

void LCD_Write_Para(char VL)        //发送数据
{
    LCD_RS=1;
        LCD_DataPortL=VL;          //低位P0口       
        LCD_WR=0;
        LCD_WR=1;
}



void delayms(int count)  // /* X1ms */
{
        int i,j;
        for(i=0;i<count;i++)
                for(j=0;j<100;j++);
}

void LCD_Writ_Bus(char VH,char VL)   //并行数据写入函数
{
    LCD_DataPortH=VH;          //高位P1口
        LCD_DataPortL=VL;          //低位P0口       
        LCD_WR=0;
        LCD_WR=1;
}

void LCD_Write_DATA(char VH,char VL)        //发送数据
{
    LCD_RS=1;
        LCD_Writ_Bus(VH,VL);
}


void Pant(char VH,char VL)
{
        int i,j;
        LCD_CS =0;  //打开片选使能
        Address_set(0,0,239,319);
    for(i=0;i<320;i++)
         {
          for (j=0;j<240;j++)
                   {
                 LCD_Write_DATA(VH,VL);
            }

          }
     LCD_CS =1;  //关闭片选使能
}       


void Address_set(unsigned int x1,unsigned int y1,unsigned int x2,unsigned int y2)
{
        LCD_Write_COM(0X2A);    //设置X坐标地址         //参考S6D04H0驱动IC手册.pdf 文档的 174页
        LCD_Write_Para(x1>>8);   //开始X
        LCD_Write_Para(x1);      //开始X
        LCD_Write_Para(x2>>8);   //结束X
        LCD_Write_Para(x2);      //结束X
       
        LCD_Write_COM(0X2B);        //设置Y坐标地址         //参考S6D04H0驱动IC手册.pdf 文档的 176页
        LCD_Write_Para(y1>>8);          //开始Y
        LCD_Write_Para(y1);          //开始Y
    LCD_Write_Para(y2>>8);   //结束Y
        LCD_Write_Para(y2);   //结束Y

    //LCD_Write_COM(0x13);
        LCD_Write_COM(0x29);         //显示打开                 //参考S6D04H0驱动IC手册.pdf 文档的 173页
        LCD_Write_COM(0x2c);        //写数据到RAM中         //参考S6D04H0驱动IC手册.pdf 文档的 270页                                                                 
}



/**********************************************************

  水平彩条显示子函数

**********************************************************/
void LCD_color_H()
{
   uint num;
   uchar n;
   Address_set(0, 0, 239,319);
   for(n=0;n<8;n++)
   {
     for(num=40*240;num>0;num--)
     {
       LCD_Write_DATA(colors[n]>>8,colors[n]);
     }
   }
}

/**********************************************************

  垂直彩条显示子函数

**********************************************************/
void LCD_color_V()
{
   uint num;
   uchar n,x1,x2;
   x1 = 0;
   x2 = 30;
   
   for(n=0;n<8;n++)
   {
            Address_set(x1, 0, x2-1,319);
            x1 = x2;
            x2 = x2+30;

     for(num=30*320;num>0;num--)
     {
       LCD_Write_DATA(colors[n]>>8,colors[n]);
     }
   }
}

#include<reg52.h>
#include"LCD_driver.h"


main()
{
   LCD_Init();          //TFT初始化
   Pant(colors[2]>>8 , colors[2]); //蓝色
   LCD_CS =0;  //打开片选使能
   LCD_color_H();   //8色彩条水平显示
   delayms(500);
   LCD_color_V();   //8色彩条垂直显示
   delayms(500);
   LCD_CS =1;  //关闭片选使能

}


















      
}




















本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x

打赏

参与人数 1家元 +30 收起 理由
家睦 + 30

查看全部打赏

发表于 2025-9-28 00:17:50 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2025-9-28 00:40:10 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2025-9-28 04:02:14 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2025-9-28 07:13:19 来自手机浏览器 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2025-9-28 08:20:02 来自手机浏览器 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-9-29 11:31:59 | 显示全部楼层
游客请登录后查看回复内容

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
回复 支持 反对

使用道具 举报

发表于 2025-9-30 19:19:31 来自手机浏览器 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2025-10-5 19:06:57 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2025-10-8 19:26:21 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

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

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-12-12 09:03 , Processed in 0.156000 second(s), 11 queries , Gzip On, Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

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