找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9107|回复: 5
打印 上一主题 下一主题
收起左侧

单片机彩屏例程 含程序,原理图,取模软件等资料(2.2 2.4 2.8和3.5四种屏幕尺寸)

[复制链接]
跳转到指定楼层
楼主
彩屏例程,含2.2寸,2.4寸,2.8寸和3.5寸彩屏程序及彩屏测试转接原理图.


TFT彩屏实验
V2.2V3.0的板子使用彩屏的方式是一致的,这里我们以V3.0的板子为例。注意了,下载程序若无反应的,请反复核对彩屏的型号与下载程序是否一致。
因为板子配有不同的彩屏,所以在做彩屏实验需要确认自己彩屏的型号。具体型号请看彩屏的背面。确认好型号下载相对应的例程程序。
实验现象:
下载不同的程序,对应彩屏显示相应内容
实验步骤:
  • 连接实验相关模块电路
必须先将JP595JP1302,J11,JP165,红外接收头的跳线帽断,若不断开可能出现花屏,无显示的现象  如图:
把彩屏插上开发板,注意:两排排针都要插进去
如图:

  • 下载彩屏程序
下载之前先判断您手上的彩屏型号,屏后面有标明型号
如图:
确定型号后,下载对应型号的程序如图
下载成功后程序自动运行,彩屏显示对应程序的内容。
常见问题处理方法:
  • 程序下载成功后无法显示
将彩屏拔下来重新插下,重启开发板
将单片机拆下来重新安装下,重启开发板
将后面的排线重新卡一下,后面的排线扣是可以拆的
如图:
靠排线的一面是可以掰起来的!
将排线平整的插进去后,将排扣按下,装好后再装上开发板试试,能否显示!
  • 触摸屏无法使用
请检查JP595JP1302,J11跳线帽是否断开
重新插拔下彩屏,重启开发板
注意:由于51单片机处理速度较慢,所以在进行触摸划线的时候只有显示点,这个是正常的,您可以慢点画!



彩屏显示的部分单片机源码预览:
  1. #include"gui.h"

  2. //---汉字的字库头文件---//
  3. #include"charcode.h"

  4. //---如果要显示图片就添加这个头文件---//
  5. #ifdef PICTURE_SHOW

  6. #include"picture.h"

  7. #endif

  8. /****************************************************************************
  9. *函数名:GUI_Dot
  10. *输  入:x:点的X坐标;
  11. *      * y:点的Y坐标
  12. *      * color:点的颜色
  13. *输  出:
  14. *功  能:给单个像素涂上颜色。
  15. ****************************************************************************/         

  16. void GUI_Dot(uint x, uint y, uint color)
  17. {  
  18.         uchar i;

  19.         TFT_SetWindow(x-1, y, x+2, y+2);  //单个像素

  20.         for(i=0; i<16; i++)
  21.         {
  22.                 TFT_WriteColorData(color)        ;
  23.                 //TFT_WriteData(color);
  24.         }
  25. }

  26. ///****************************************************************************
  27. //*函数名:GUI_Box
  28. //*输  入:sx:起始X坐标, sy:其实Y坐标,
  29. //*      * ex:终止X坐标, ey:终止Y坐标,
  30. //*      * color:方框的颜色
  31. //*输  出:
  32. //*功  能:给一个区域涂上颜色。
  33. //****************************************************************************/         
  34. //void GUI_Box(uint sx, uint sy, uchar ex, uint ey, uint color)
  35. //{
  36. //        uint temp;   
  37. //        TFT_SetWindow(sx, sy, ex, ey);
  38. //  sx = ex - sx + 1;
  39. //        sy = ey - sy + 1;
  40. //        while (sx--)
  41. //        {
  42. //                 temp = sy;
  43. //                while (temp--)
  44. //                 {        
  45. //                        TFT_WriteData(color);
  46. //                }
  47. //        }
  48. //}

  49. /****************************************************************************
  50. *函数名:GUI_Line
  51. *输  入:xStart:线的起始X坐标,
  52. *      * yStart:线的其实Y坐标,
  53. *      * xEnd:线的终止X坐标,
  54. *      * yEnd:线的终止Y坐标,
  55. *      * color:线条的颜色
  56. *输  出:
  57. *功  能:画一条直线
  58. ****************************************************************************/         

  59. void GUI_Line(uint xStart, uint yStart, uchar xEnd, uint yEnd, uint color)
  60. {
  61.         uint t;  
  62.         int xerr = 0, yerr = 0, delta_x, delta_y, distance;  
  63.         int incx, incy;  
  64.         uint row, col;  
  65.         delta_x = xEnd - xStart;//计算坐标增量  
  66.         delta_y = yEnd - yStart;  
  67.         col = xStart;  
  68.         row = yStart;  
  69.         if (delta_x > 0)
  70.         {
  71.                 incx=1;//设置单步方向
  72.         }           
  73.         else   
  74.         {  
  75.             if (delta_x == 0)
  76.                 {
  77.                         incx = 0;//垂直线
  78.                 }                  
  79.             else
  80.                         {
  81.                                 incx = -1;
  82.                                 delta_x = -delta_x;
  83.                         }  
  84.         }  
  85.         if (delta_y > 0)
  86.         {
  87.                 incy = 1;
  88.         }         
  89.         else  
  90.         {  
  91.             if (delta_y == 0)
  92.                 {
  93.                         incy = 0;//水平线  
  94.                 }
  95.             else
  96.                 {
  97.                         incy = -1;
  98.                         delta_y = -delta_y;
  99.                 }  
  100.         }  
  101.         if (delta_x > delta_y)
  102.         {
  103.                 distance = delta_x;//选取基本增量坐标轴  
  104.         }
  105.         else
  106.         {
  107.                 distance = delta_y;
  108.         }         
  109.         for (t=0; t<=distance+1; t++)  
  110.         {                                     //画线输出  
  111.             GUI_Dot(col, row, color);
  112.             xerr += delta_x;  
  113.             yerr += delta_y;  
  114.                   if(xerr > distance)  
  115.             {  
  116.                 xerr -= distance;  
  117.                 col += incx;  
  118.             }  
  119.             if(yerr > distance)  
  120.             {  
  121.                 yerr -= distance;  
  122.                 row += incy;  
  123.             }  
  124.         }  
  125. }

  126. /****************************************************************************
  127. *函数名:GUI_WriteCnChar
  128. *输  入:x:显示起始X坐标
  129. *      * y:显示起始Y坐标
  130. *      * *cn:要显示的字符串
  131. *      * wordColor:字体的颜色
  132. *      * backColor:背景颜色
  133. *输  出:
  134. *功  能:写二号楷体汉字
  135. ****************************************************************************/         

  136. #ifdef CHAR32_SHOW

  137. void GUI_Write32CnChar(uint x, uint y, uchar *cn, uint wordColor, uint backColor)         

  138. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码


下载:
27 彩屏例程.rar (13.09 MB, 下载次数: 135)

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:164988 发表于 2017-4-1 18:57 | 只看该作者
手头有两块屏不会驱动,正好下载学习学习,谢谢楼主分享!
回复

使用道具 举报

板凳
ID:236610 发表于 2017-9-29 17:01 | 只看该作者
谢谢分享!!!!!!
回复

使用道具 举报

地板
ID:68585 发表于 2018-4-23 10:39 | 只看该作者
谢谢分享。
回复

使用道具 举报

5#
ID:402951 发表于 2018-9-28 00:01 | 只看该作者
刚买的这款单片机2.2寸彩屏只发光不显示,真无语。现在注册个号进来下载没黑币,怎么办。
回复

使用道具 举报

6#
ID:435201 发表于 2018-11-28 19:13 | 只看该作者
十分感谢,正好需要。
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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