找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 7669|回復(fù): 6
收起左側(cè)

51單片機軟件SPI初始化ILI9488-DPI模式程序與資料下載

  [復(fù)制鏈接]
ID:344304 發(fā)表于 2019-1-19 18:18 | 顯示全部樓層 |閱讀模式
大家好,最近的項目用到ILI9488這個芯片的屏幕,用51單片機的IO口模擬SPI信號,發(fā)送初始化代碼
設(shè)置成DPI-18bitRGB模式。并用LT768芯片來顯示圖片。下面是程序和ILI9488資料分享:
顯示圖片為18bitR6G6B6信號,由于便于測試,每種顏色的6根腳都接一起了,效果如下圖:
QQ圖片20190119181006.jpg
QQ圖片20190119181613.jpg
微信截圖_20190119181721.png

單片機驅(qū)動ILI9488源程序如下:
  1. #define CS        P13
  2. #define CLK        P14
  3. #define DCX        P15
  4. #define SI        P16
  5. #define LCD_nRESET P00

  6. void SPId_Init(void)
  7. {
  8.     P1M0 |= (1<<3);
  9.     P1M1 &= ~(1<<3);
  10.    
  11.     P1M0 |= (1<<4);
  12.     P1M1 &= ~(1<<4);
  13.    
  14.     P1M0 |= (1<<5);
  15.     P1M1 &= ~(1<<5);
  16.    
  17.     P1M0 |= (1<<6);
  18.     P1M1 &= ~(1<<6);
  19.    
  20.     CS = 1;
  21.     CLK = 1;
  22.     SI = 1;
  23.     DCX = 1;
  24. }

  25. void LCD_ILI9488_CMD(unsigned char val)
  26. {
  27.     unsigned char count = 0;
  28.     DCX = 0;
  29.     CS = 0;
  30.     for(count = 0 ; count < 8 ; count++)
  31.     {
  32.         CLK = 0;
  33.         delay_us(1);
  34.         if((val&0x80)==0x80)
  35.         {
  36.             SI = 1;
  37.             delay_us(1);
  38.         }
  39.         else
  40.         {
  41.             SI = 0;
  42.             delay_us(1);
  43.         }
  44.         CLK = 1;
  45.         delay_us(1);
  46.         val=val<<1;
  47.     }
  48.     CS = 1;
  49.     delay_us(1);delay_us(1);delay_us(1);
  50. }

  51. void LCD_ILI9488_INDEX(unsigned char val)
  52. {
  53.     unsigned char count = 0;
  54.     DCX = 1;
  55.     CS = 0;
  56.     for(count = 0 ; count < 8 ; count++)
  57.     {
  58.         CLK = 0;
  59.         delay_us(1);
  60.         if((val&0x80)==0x80)
  61.         {
  62.             SI = 1;
  63.             delay_us(1);
  64.         }
  65.         else
  66.         {
  67.             SI = 0;
  68.             delay_us(1);
  69.         }
  70.         CLK = 1;
  71.         delay_us(1);
  72.         val=val<<1;
  73.     }
  74.     CS = 1;
  75.     delay_us(1);delay_us(1);delay_us(1);
  76. }

  77. void LCD_Init(void)
  78. {
  79.     LCD_nRESET = 1;
  80.     delay_ms(1);
  81.     LCD_nRESET = 0;
  82.     delay_ms(10);
  83.     LCD_nRESET = 1;
  84.     delay_ms(120);

  85.     LCD_ILI9488_CMD(0xE0);
  86.     LCD_ILI9488_INDEX(0x00);
  87.     LCD_ILI9488_INDEX(0x07);
  88.     LCD_ILI9488_INDEX(0x0f);
  89.     LCD_ILI9488_INDEX(0x07);
  90.     LCD_ILI9488_INDEX(0x15);
  91.     LCD_ILI9488_INDEX(0x09);
  92.     LCD_ILI9488_INDEX(0x3c);
  93.     LCD_ILI9488_INDEX(0x99);
  94.     LCD_ILI9488_INDEX(0x4b);
  95.     LCD_ILI9488_INDEX(0x09);
  96.     LCD_ILI9488_INDEX(0x10);
  97.     LCD_ILI9488_INDEX(0x0d);
  98.     LCD_ILI9488_INDEX(0x1c);
  99.     LCD_ILI9488_INDEX(0x1e);
  100.     LCD_ILI9488_INDEX(0x0f);  
  101.      
  102.     LCD_ILI9488_CMD(0xE1);
  103.     LCD_ILI9488_INDEX(0x00);
  104.     LCD_ILI9488_INDEX(0x20);
  105.     LCD_ILI9488_INDEX(0x23);
  106.     LCD_ILI9488_INDEX(0x02);
  107.     LCD_ILI9488_INDEX(0x0f);
  108.     LCD_ILI9488_INDEX(0x06);
  109.     LCD_ILI9488_INDEX(0x34);
  110.     LCD_ILI9488_INDEX(0x45);
  111.     LCD_ILI9488_INDEX(0x43);
  112.     LCD_ILI9488_INDEX(0x04);
  113.     LCD_ILI9488_INDEX(0x0a);
  114.     LCD_ILI9488_INDEX(0x08);
  115.     LCD_ILI9488_INDEX(0x30);
  116.     LCD_ILI9488_INDEX(0x37);
  117.     LCD_ILI9488_INDEX(0x0f);

  118.     LCD_ILI9488_CMD(0xC0);
  119.     LCD_ILI9488_INDEX(0x10);
  120.     LCD_ILI9488_INDEX(0x10);
  121.      
  122.     LCD_ILI9488_CMD(0xC1);
  123.     LCD_ILI9488_INDEX(0x41);

  124.     LCD_ILI9488_CMD(0xC5);
  125.     LCD_ILI9488_INDEX(0x00);
  126.     LCD_ILI9488_INDEX(0x20);
  127.     LCD_ILI9488_INDEX(0xd0);

  128.     LCD_ILI9488_CMD(0x36);
  129.     LCD_ILI9488_INDEX(0x48);

  130.     LCD_ILI9488_CMD(0x3A); //Interface Mode Control
  131.     LCD_ILI9488_INDEX(0x60);


  132.     LCD_ILI9488_CMD(0XB0);  //Interface Mode Control  
  133.     LCD_ILI9488_INDEX(0x08);
  134.     LCD_ILI9488_CMD(0xB1);   //Frame rate 60HZ  
  135.     LCD_ILI9488_INDEX(0xA0);
  136.     LCD_ILI9488_INDEX(0x11);
  137.     LCD_ILI9488_CMD(0xB4);
  138.     LCD_ILI9488_INDEX(0x02);   
  139.     LCD_ILI9488_CMD(0xB6); //RGB/MCU Interface Control
  140.     LCD_ILI9488_INDEX(0x30);
  141.     LCD_ILI9488_INDEX(0x02);

  142.     LCD_ILI9488_CMD(0XBE);
  143.     LCD_ILI9488_INDEX(0x00);
  144.     LCD_ILI9488_INDEX(0x04);

  145.     LCD_ILI9488_CMD(0xE9);
  146.     LCD_ILI9488_INDEX(0x00);
  147.      
  148.     LCD_ILI9488_CMD(0XF7);   
  149.     LCD_ILI9488_INDEX(0xA9);
  150.     LCD_ILI9488_INDEX(0x51);
  151.     LCD_ILI9488_INDEX(0x2C);
  152.     LCD_ILI9488_INDEX(0x82);

  153.     LCD_ILI9488_CMD(0x11);
  154.     delay_ms(120);
  155.     LCD_ILI9488_CMD(0x29);
  156. }


復(fù)制代碼

芯片英文pdf下載:
【液晶驅(qū)動】ILI9488.pdf (10.32 MB, 下載次數(shù): 111)


評分

參與人數(shù) 1黑幣 +100 收起 理由
admin + 100 贊一個!

查看全部評分

回復(fù)

使用道具 舉報

ID:476559 發(fā)表于 2019-3-12 15:07 | 顯示全部樓層
謝謝樓主提供
回復(fù)

使用道具 舉報

ID:283462 發(fā)表于 2019-5-26 15:18 | 顯示全部樓層

謝謝樓主提供
回復(fù)

使用道具 舉報

ID:141007 發(fā)表于 2020-8-11 02:10 | 顯示全部樓層
謝謝樓主,樓主,有轉(zhuǎn)中文的軟件碼
回復(fù)

使用道具 舉報

ID:119355 發(fā)表于 2021-4-3 22:40 | 顯示全部樓層
這芯片資料很少啊,多謝分享
回復(fù)

使用道具 舉報

ID:596446 發(fā)表于 2022-3-22 15:01 | 顯示全部樓層
都不完整的
回復(fù)

使用道具 舉報

ID:61140 發(fā)表于 2023-11-25 22:08 | 顯示全部樓層
看不懂
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表