标题: 单片机彩屏例程 含程序,原理图,取模软件等资料(2.2 2.4 2.8和3.5四种屏幕尺寸) [打印本页]
作者: qwer123456qwer 时间: 2017-3-30 11:00
标题: 单片机彩屏例程 含程序,原理图,取模软件等资料(2.2 2.4 2.8和3.5四种屏幕尺寸)
彩屏例程,含2.2寸,2.4寸,2.8寸和3.5寸彩屏程序及彩屏测试转接原理图.
TFT彩屏实验
V2.2和V3.0的板子使用彩屏的方式是一致的,这里我们以V3.0的板子为例。注意了,下载程序若无反应的,请反复核对彩屏的型号与下载程序是否一致。
因为板子配有不同的彩屏,所以在做彩屏实验需要确认自己彩屏的型号。具体型号请看彩屏的背面。确认好型号下载相对应的例程程序。
实验现象:
下载不同的程序,对应彩屏显示相应内容
实验步骤:
必须先将JP595,JP1302,J11,JP165,红外接收头的跳线帽断开,若不断开可能出现花屏,无显示的现象 如图:
把彩屏插上开发板,注意:两排排针都要插进去
如图:
下载之前先判断您手上的彩屏型号,屏后面有标明型号
如图:
确定型号后,下载对应型号的程序如图
下载成功后程序自动运行,彩屏显示对应程序的内容。 常见问题处理方法:
将彩屏拔下来重新插下,重启开发板
将单片机拆下来重新安装下,重启开发板
将后面的排线重新卡一下,后面的排线扣是可以拆的
如图:
靠排线的一面是可以掰起来的!
将排线平整的插进去后,将排扣按下,装好后再装上开发板试试,能否显示!
请检查JP595,JP1302,J11跳线帽是否断开
重新插拔下彩屏,重启开发板
注意:由于51单片机处理速度较慢,所以在进行触摸划线的时候只有显示点,这个是正常的,您可以慢点画!
彩屏显示的部分单片机源码预览:
- #include"gui.h"
- //---汉字的字库头文件---//
- #include"charcode.h"
- //---如果要显示图片就添加这个头文件---//
- #ifdef PICTURE_SHOW
- #include"picture.h"
- #endif
- /****************************************************************************
- *函数名:GUI_Dot
- *输 入:x:点的X坐标;
- * * y:点的Y坐标
- * * color:点的颜色
- *输 出:
- *功 能:给单个像素涂上颜色。
- ****************************************************************************/
- void GUI_Dot(uint x, uint y, uint color)
- {
- uchar i;
- TFT_SetWindow(x-1, y, x+2, y+2); //单个像素
- for(i=0; i<16; i++)
- {
- TFT_WriteColorData(color) ;
- //TFT_WriteData(color);
- }
- }
- ///****************************************************************************
- //*函数名:GUI_Box
- //*输 入:sx:起始X坐标, sy:其实Y坐标,
- //* * ex:终止X坐标, ey:终止Y坐标,
- //* * color:方框的颜色
- //*输 出:
- //*功 能:给一个区域涂上颜色。
- //****************************************************************************/
- //void GUI_Box(uint sx, uint sy, uchar ex, uint ey, uint color)
- //{
- // uint temp;
- // TFT_SetWindow(sx, sy, ex, ey);
- // sx = ex - sx + 1;
- // sy = ey - sy + 1;
- // while (sx--)
- // {
- // temp = sy;
- // while (temp--)
- // {
- // TFT_WriteData(color);
- // }
- // }
- //}
- /****************************************************************************
- *函数名:GUI_Line
- *输 入:xStart:线的起始X坐标,
- * * yStart:线的其实Y坐标,
- * * xEnd:线的终止X坐标,
- * * yEnd:线的终止Y坐标,
- * * color:线条的颜色
- *输 出:
- *功 能:画一条直线
- ****************************************************************************/
- void GUI_Line(uint xStart, uint yStart, uchar xEnd, uint yEnd, uint color)
- {
- uint t;
- int xerr = 0, yerr = 0, delta_x, delta_y, distance;
- int incx, incy;
- uint row, col;
- delta_x = xEnd - xStart;//计算坐标增量
- delta_y = yEnd - yStart;
- col = xStart;
- row = yStart;
- if (delta_x > 0)
- {
- incx=1;//设置单步方向
- }
- else
- {
- if (delta_x == 0)
- {
- incx = 0;//垂直线
- }
- else
- {
- incx = -1;
- delta_x = -delta_x;
- }
- }
- if (delta_y > 0)
- {
- incy = 1;
- }
- else
- {
- if (delta_y == 0)
- {
- incy = 0;//水平线
- }
- else
- {
- incy = -1;
- delta_y = -delta_y;
- }
- }
- if (delta_x > delta_y)
- {
- distance = delta_x;//选取基本增量坐标轴
- }
- else
- {
- distance = delta_y;
- }
- for (t=0; t<=distance+1; t++)
- { //画线输出
- GUI_Dot(col, row, color);
- xerr += delta_x;
- yerr += delta_y;
- if(xerr > distance)
- {
- xerr -= distance;
- col += incx;
- }
- if(yerr > distance)
- {
- yerr -= distance;
- row += incy;
- }
- }
- }
- /****************************************************************************
- *函数名:GUI_WriteCnChar
- *输 入:x:显示起始X坐标
- * * y:显示起始Y坐标
- * * *cn:要显示的字符串
- * * wordColor:字体的颜色
- * * backColor:背景颜色
- *输 出:
- *功 能:写二号楷体汉字
- ****************************************************************************/
- #ifdef CHAR32_SHOW
- void GUI_Write32CnChar(uint x, uint y, uchar *cn, uint wordColor, uint backColor)
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
下载:
27 彩屏例程.rar
(13.09 MB, 下载次数: 136)
作者: LXJ50 时间: 2017-4-1 18:57
手头有两块屏不会驱动,正好下载学习学习,谢谢楼主分享!
作者: sxzhao0017 时间: 2017-9-29 17:01
谢谢分享!!!!!!
作者: liwanxi 时间: 2018-4-23 10:39
谢谢分享。
作者: wosiboos 时间: 2018-9-28 00:01
刚买的这款单片机2.2寸彩屏只发光不显示,真无语。现在注册个号进来下载没黑币,怎么办。
作者: zdr833 时间: 2018-11-28 19:13
十分感谢,正好需要。
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |