久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9341|回復: 17
打印 上一主題 下一主題
收起左側

ILI9163的51單片機驅動程序 含有基本驅動和基本圖形函數

  [復制鏈接]
跳轉到指定樓層
樓主
驅動文件說明:
1.V2版本本驅動將包含ILI9163基本驅動函數、基本圖形函數,并將相應函數進行歸類。如果需要將本驅動移植到其他平臺,只需修改base文件中相應函數即可。
1.8寸tft彩屏SGP18T驅動,ILI9163控制器;含有基本驅動和基本圖形函數


51單片機所有驅動文件下載:

部分代碼預覽:
  1. /**********************************************************
  2. 文件名稱:
  3. 功能說明:
  4. 編寫:阿呆游樂園
  5.   ADaiPlay.21ic.org
  6.   QQ:1325180192
  7. 時間:2011/8/
  8. 其他說明:版權所有,盜版請注明出處
  9. **********************************************************/

  10. #include<reg51.h>
  11. #include "MyType.h"
  12. #include "SGP18T_ILI9163B_base.h"
  13. #include "SGP18T_ILI9163B_figure.h"




  14. /*****************數組聲名**********************************/
  15. uint16 code palette[]={
  16.                                 0x0000,
  17.                                 0xf800,//red
  18.                                 0x07e0,//green
  19.                                 0x001f,//blue
  20.                                 0xf81f,//purple
  21.                                 0xffe0,//yellow
  22.                                 0x07ff,//cyan
  23.                                 0xffff, //white
  24.                                 0xfc08,//orange
  25.                                 };





  26. /**********************************************************
  27. 函數名稱:ILI9163B_display_full()
  28. 入口參數:color為常用的需要顯示的顏色(已經提前定義),color為
  29.                   NULL時,則可將不常用顏色放入dat中加以顯示
  30. 出口參數:無
  31. 時間:2011/8/8
  32. 功能說明:全屏顯示單色畫面
  33. 其他說明:無
  34. **********************************************************/
  35. void ILI9163B_display_full(uint8 color,uint16 dat)
  36. {
  37.           unsigned int i,j;
  38.        
  39.         ILI9163B_address_rst();

  40.         for(i=0;i<160;i++)
  41.         {
  42.              for(j=0;j<128;j++)
  43.         {
  44.                         if(color == NULL)
  45.                                ILI9163B_write_para16(dat);
  46.                         else
  47.                         {
  48.                                 ILI9163B_write_para16(palette[color]);
  49.                         }
  50.         }
  51.         }
  52. }



  53. /**********************************************************
  54. 函數名稱:ILI9163B_draw_part()
  55. 入口參數:起始、終止橫坐標(0-127),縱坐標(0-159),顯示顏色uint16
  56. 出口參數:無
  57. 時間:2011/8/8
  58. 功能說明:填充矩形區域
  59. 其他說明:0<=xs<xe<=127
  60.                   0<=ys<ye<=159
  61. **********************************************************/
  62. void ILI9163B_draw_part(uint8 xs,uint8 ys,uint8 xe,uint8 ye,uint16 color_dat)
  63. {
  64.         uint8 i,j;

  65.         ILI9163B_SetPos(xs,ys,xe,ye);       
  66.         for(j=0;j<(ye-ys+1);j++)
  67.     {
  68.             for(i=0;i<(xe-xs+1);i++)
  69.                 {
  70.                         ILI9163B_write_para16(color_dat);
  71.                 }
  72.         }   
  73. }

  74. /**********************************************************
  75. 函數名稱:ILI9163B_draw_rectangle()
  76. 入口參數:起始、終止橫坐標(0-127),縱坐標(0-159),顯示顏色uint16
  77. 出口參數:無
  78. 時間:2011/8/8
  79. 功能說明:畫矩形邊框
  80. 其他說明:0<=xs<xe<=127
  81.                   0<=ys<ye<=159
  82. **********************************************************/
  83. void ILI9163B_draw_rectangle(uint8 xs,uint8 ys,uint8 xe,uint8 ye,uint16 color_dat)
  84. {
  85.         ILI9163B_draw_line(xs,ys,xs,ye,color_dat);          //畫矩形左邊
  86.         ILI9163B_draw_line(xe,ys,xe,ye,color_dat);          //畫矩形右邊
  87.         ILI9163B_draw_line(xs,ys,xe,ys,color_dat);          //畫矩形上邊
  88.         ILI9163B_draw_line(xs,ye,xe,ye,color_dat);          //畫矩形下邊
  89. }


  90. /**********************************************************
  91. 函數名稱:ILI9163B_draw_circle()
  92. 入口參數:圓心橫坐標(0-127),縱坐標(0-159),半徑(0-128),顯示顏色uint16
  93. 出口參數:無
  94. 時間:2011/8/8
  95. 功能說明:畫圓形邊框(僅支持屏幕內畫圓)
  96. 其他說明:0<=x<=127
  97.                   0<=y<=159
  98. **********************************************************/
  99. void ILI9163B_draw_circle(uint8 x,uint8 y,uint8 r,uint16 color_dat)
  100. {
  101.         unsigned char dx, dy = r;

  102.         if((x>=r) &&((128-x)>=r) && (y>=r) && ((160-y)>=r))                //確定所畫圓在屏幕范圍內,沒有超出最外邊,(暫不支持與屏幕邊相交)
  103.         {
  104.                 for(dx = 0; dx <= r; dx++)
  105.                 {
  106.                         while((r * r + 1 - dx * dx) < (dy * dy)) dy--;
  107.                         ILI9163B_draw_dot(x + dx, y - dy, color_dat);
  108.                         ILI9163B_draw_dot(x - dx, y - dy, color_dat);
  109.                         ILI9163B_draw_dot(x - dx, y + dy, color_dat);
  110.                         ILI9163B_draw_dot(x + dx, y + dy, color_dat);

  111.                         ILI9163B_draw_dot(x + dy, y - dx, color_dat);
  112.                         ILI9163B_draw_dot(x - dy, y - dx, color_dat);
  113.                         ILI9163B_draw_dot(x - dy, y + dx, color_dat);
  114.                         ILI9163B_draw_dot(x + dy, y + dx, color_dat);
  115.         }
  116.         }



  117. }


  118. /**********************************************************
  119. 函數名稱:ILI9163B_draw_line()
  120. 入口參數:起始、終止橫坐標(0-127),縱坐標(0-159),顯示顏色uint16
  121. 出口參數:無
  122. 時間:2011/8/8
  123. 功能說明:畫直線
  124. 其他說明:0<=xs<xe<=127
  125.                   0<=ys<ye<=159
  126. **********************************************************/
  127. void ILI9163B_draw_line(uint8 xs,uint8 ys,uint8 xe,uint8 ye,uint16 color_dat)
  128. {
  129.         uint8 i,ds;
  130.         int dx,dy,inc_x, inc_y;
  131.         int xerr = 0, yerr = 0;                                //初始化變量

  132.         if(xs==xe)                                                          //如果是畫垂直線則只需對豎直坐標計數
  133.         {
  134.             ILI9163B_SetPos(xs,ys,xe,ye);
  135.                 for(i=0;i<(ye-ys+1);i++)
  136.                 {
  137.                         ILI9163B_write_para16(color_dat);
  138.                 }
  139.         }
  140.         else if(ys==ye)                                                //如果是水平線則只需要對水平坐標計數
  141.     {
  142.                 ILI9163B_SetPos(xs,ys,xe,ye);
  143.                   for(i=0;i<(xe-xs+1);i++)
  144.                 {
  145.                         ILI9163B_write_para16(color_dat);
  146.                 }
  147.         }
  148.         else                                                                                        //如果是斜線,則重新計算,使用畫點函數畫出直線
  149.         {
  150.             dx = xe - xs;                                                                //計算坐標增量
  151.             dy = ye - ys;

  152.                 if(dx > 0) inc_x = 1;                                                //設置單步方向
  153.                 else
  154.                 {
  155.                         inc_x = -1; dx = -dx;
  156.                 }
  157.                 if(dy > 0) inc_y = 1;                                                //設置單步方向
  158.                 else
  159.             {
  160.                         inc_y = -1; dy = -dy;
  161.                 }

  162.                 if(dx > dy) ds = dx;                                                //選取基本增量坐標軸
  163.                 else                ds = dy;

  164.                 for(i = 0; i <= ds+1; i++)                                        //畫線輸出
  165.                 {
  166.                         ILI9163B_draw_dot(xs, ys,color_dat);        //畫點
  167.                         xerr += dx;
  168.                         yerr += dy;
  169.                         if(xerr > ds)
  170.                         {
  171.                                 xerr -= ds;
  172.                                 xs   += inc_x;
  173.                         }
  174.                         if(yerr > ds)
  175.                         {
  176.                                 yerr -= ds;
  177.                                 ys   += inc_y;
  178.                         }
  179.                 }
  180.         }  
  181. }

  182. /**********************************************************
  183. 函數名稱:ILI9163B_draw_dot()
  184. 入口參數:起始橫坐標(0-127),縱坐標(0-159),顯示顏色uint16
  185. 出口參數:無
  186. 時間:2011/8/8
  187. 功能說明:畫點
  188. 其他說明:0<=x<=127
  189.                   0<=y<=159
  190. **********************************************************/
  191. void ILI9163B_draw_dot(uint8 x,uint8 y,uint16 color_dat)
  192. {
  193.         ILI9163B_SetPos(x,y,x,y);
  194.         ILI9163B_write_para16(color_dat);
  195. }
復制代碼




GP18T_1.8ITL9163B.rar

48.74 KB, 下載次數: 167, 下載積分: 黑幣 -5

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏6 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:137922 發表于 2016-8-30 13:56 | 只看該作者
看看。。。。。。。
回復

使用道具 舉報

板凳
ID:83761 發表于 2016-10-7 10:09 | 只看該作者
看看
回復

使用道具 舉報

地板
ID:214768 發表于 2017-6-26 16:01 | 只看該作者
看看,剛好我現在在做這個。
回復

使用道具 舉報

5#
ID:238611 發表于 2017-10-11 16:02 | 只看該作者
正好需要,參考參考!
回復

使用道具 舉報

6#
ID:244749 發表于 2017-10-31 22:24 | 只看該作者
參考參考, 看看
回復

使用道具 舉報

7#
ID:79642 發表于 2018-4-29 08:13 來自觸屏版 | 只看該作者
點下我這個屏
回復

使用道具 舉報

8#
ID:328554 發表于 2018-9-11 20:21 | 只看該作者
下載學學
回復

使用道具 舉報

9#
ID:440159 發表于 2018-12-5 16:08 | 只看該作者
看看,謝謝
回復

使用道具 舉報

10#
ID:62864 發表于 2019-1-10 21:23 | 只看該作者
感謝分享  正在找
回復

使用道具 舉報

11#
ID:57984 發表于 2019-5-12 14:08 | 只看該作者
這屏的驅動正需要,謝謝
回復

使用道具 舉報

12#
ID:67705 發表于 2019-5-24 23:26 來自觸屏版 | 只看該作者
買了幾個屏,試下。謝謝。
回復

使用道具 舉報

13#
ID:624629 發表于 2019-10-21 13:34 | 只看該作者
來學習了
回復

使用道具 舉報

14#
ID:542032 發表于 2019-10-21 22:47 | 只看該作者
手里有幾片這屏幕,正需要這程序,贊一個!!
回復

使用道具 舉報

15#
ID:198286 發表于 2019-10-22 16:08 | 只看該作者
有9341的屏,和這個太小了
回復

使用道具 舉報

16#
ID:268627 發表于 2019-11-16 20:31 | 只看該作者
感謝分享,有一些贈品屏幕
回復

使用道具 舉報

17#
ID:650313 發表于 2019-12-20 19:29 | 只看該作者
謝謝樓主!
回復

使用道具 舉報

18#
無效樓層,該帖已經被刪除
19#
無效樓層,該帖已經被刪除
20#
ID:341453 發表于 2022-5-7 16:14 | 只看該作者
手里正好有這個屏幕,SGP18T.不過分辨率不怎么好。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品久久久久久久久久久 | 久久久久国产一区二区三区四区 | 欧美一二区| 成人av激情 | 中文字幕视频在线观看免费 | 黄色网址在线免费播放 | 欧美福利视频一区 | 亚洲高清在线 | av在线免费观看网站 | 亚洲97 | 成人福利视频网站 | 久久久久久免费观看 | 欧美色综合天天久久综合精品 | 欧美性受xxx | 久久久精品 | 国产ts人妖一区二区三区 | 欧美久久国产精品 | 国产精品a一区二区三区网址 | 欧美日本在线 | 国产一区二区三区久久久久久久久 | 国产一区二区久久 | 九九热视频这里只有精品 | 国产成人一区二区 | 亚洲韩国精品 | www亚洲免费国内精品 | 欧美xxxx做受欧美 | 久久51| 成人国产精品久久久 | 白浆在线| a在线视频 | 亚洲一区二区三区在线播放 | 黄色精品 | 欧美激情一区二区三区 | 三级黄色大片网站 | 精品国产一区二区三区性色 | 亚洲一二三区在线观看 | 国产精品1 | 久久久99精品免费观看 | 美女精品一区 | 欧美xxxx性| 在线男人天堂 |