TFT彩屏使用说明书.docx
《TFT彩屏使用说明书.docx》由会员分享,可在线阅读,更多相关《TFT彩屏使用说明书.docx(31页珍藏版)》请在冰豆网上搜索。
TFT彩屏使用说明书
2.4寸TFT彩屏使用说明书
彩屏驱动IC:
ILI9325
实验板:
LY-51S实验板
编写:
侯瑞阳
2013年01月
一、彩屏模块简介
屏幕尺寸:
2.4寸TFT彩屏
分辨率:
320x240262K色
接口类型:
8位数据接口,接口兼容12864液晶接口,①脚对齐
电源类型:
5V电源接口,板上有3.3V稳压芯片,不需要电平转换
SD卡模式:
SPI模式
触摸IC:
XPT2046
图1-12.4寸TFT彩屏模块
二、彩屏结构组成及原理
TFT屏(ThinFilmTransistor)是薄膜晶体管型液晶显示屏,它的每一个象素点都是由集成在其后的薄膜晶体管来驱动的,这样不仅提高了显示屏的响应速度,同时可以精确控制显示色阶,所以TFT液晶的色彩更逼真。
TFT屏主要的构成包括:
背光源、导光板、偏光板、滤光板、玻璃基板、配向膜、液晶材料、薄膜晶体管等。
图2-1彩屏的基本结构
图2-2TFT彩屏内部结构
TFT液晶模块可以显示数字、中英文字符和图案。
彩色,图案分辨率较高。
由于TFT显示器成本日渐降低,并且人们越来越渴望拥有用户友好程度更高的图形界面,因此有越来越多的工程师把TFT显示器设计到他们的产品中去。
TFT模块尺寸指屏幕的对角线长度。
常用有:
1.6、1.8、2.0、2.2、2.4、2.6、2.8、3.0、3.2、3.4、3.6、4、4.3、5.7、8.4、10.4、15、17、19、21英寸等。
屏幕高宽比小尺寸TFT模块一般是3:
4,大尺寸的也有16:
9的。
分辨率指水平像素和垂直像素的数量。
三、学习彩屏的准备知识
1、什么是图形和图像
图形:
如一段直线,在单片机内存储时只需要存储起点X、Y坐标和终点X、Y坐标,存储量极小,但在显示器上显示时,和图像的显示是一致的,也是通过像素点的组合来显示的。
图3-1像素点组成图形
图像:
如一张人物照片,在单片机内存储时需要存储所有像素点的信息,存储量极大,在显示器上显示时,通过像素点的点阵组合来完成显示的
图3-2像素点组成图像
2、什么是像素
像素:
图像的最小组成单位。
大量颜色、明暗不同的像素组成一幅点阵图像。
3、颜色的表示
一个彩色像素的信息可以用1个多位二进制数来表示和储存。
用来表示彩色像素的二进制数的位数我们称为颜色深度或颜色质量。
本彩屏模块采用16位二进制数5-6-5格式。
采用1个16位二进制数来表达一个彩色点
常用颜色码表
红:
0xf800
黄:
0xffe0
绿:
0x07e0
青:
0x07ff
蓝:
0x001f
紫:
0xf81f
黑:
0x0000
白:
0xffff
灰:
0x7bef
四、硬件接口介绍
图4-1彩屏模块原理图
彩屏模块引脚连接说明
||||||||||||||||||||
||||||||||||||||||||
GVNRWRDDDDDDDDRLCN
NCCSRDBBBBBBBBSESC
DC01234567TD
IA
N
||||||||||||||||||||
||||||||||||||||||||
GVPPPPPPPPPPPPPP
NC2.2.2.000000002.2.2.
DC456123
RS-----P2.4WR-----P2.5RD-----P2.6
RET----P2.1LEDA---P2.2CS-----P2.3
DB-----P0口
图4-2彩屏模块元件布局图
跳线说明:
一:
R1处:
1.默认不焊接,需5V输入经AMS1117后转换为3.3V。
2.短接后,模块由VCCIN接口供电。
方便接3.3V电源。
二:
R6处:
背光控制。
1.默认焊接,背光端固定接高电平。
2.若是用软件控制。
此处需断开。
用LEDA来控制
三:
SD卡部分。
引出了WP.INSERT引脚。
更方便应用。
图4-3彩屏像素点分布
X轴方向一共240个像素点,Y轴方向一共320个像素点。
五、TFT彩屏函数集
函数名:
Write_Data_U16
功能:
写16位数据
函数原型:
voidWrite_Data_U16(unsignedinty);
入口参数:
unsignedinty要写的16位数据
出口参数:
无
说明:
这个16位数据分成两个8位数据分两次写入
示例代码:
Write_Data_U16(Color);//写16位颜色数据
函数名:
Write_Cmd_Data
功能:
写命令、写数据
函数原型:
voidWrite_Cmd_Data(unsignedcharx,unsignedinty);
入口参数:
unsignedcharx要写的8位命令
unsignedinty要写的16位数据
出口参数:
无
说明:
先写8位命令,后写16位数据
示例代码:
Write_Cmd_Data(WINDOW_XADDR_START,x0);//写X坐标的起始位置
函数名:
ILI9325_Initial
功能:
液晶初始化函数
函数原型:
voidILI9325_Initial(void);
入口参数:
无
出口参数:
无
说明:
厂家提供的液晶初始化代码
示例代码:
ILI9325_Initial();//初始化LCD
函数名:
LCD_SetPos
功能:
定义显示窗体
函数原型:
staticvoidLCD_SetPos
(unsignedintx0,
unsignedintx1,
unsignedinty0,
unsignedinty1);
入口参数:
x0:
窗体中X坐标中较小者
x1:
窗体中X坐标中较大者
y0:
窗体中Y坐标中较小者
y1:
窗体中Y坐标中较大者
出口参数:
无
说明:
设置显示区域的大小
示例代码:
LCD_SetPos(0,240,0,320);//设置显示区域为320x240
函数名:
CLR_Screen
功能:
清屏
函数原型:
voidCLR_Screen(unsignedintbColor);
入口参数:
bColor清除屏幕的的颜色
出口参数:
无
说明:
使用背景色清除屏上所有内容
示例代码:
CLR_Screen(0xf800);//清屏红色
CLR_Screen(0xffe0);//清屏黄色
CLR_Screen(BLUE);//清屏蓝色
函数名:
Put_pixel
功能:
在屏幕上画点
函数原型:
voidPut_pixel(ucharx,uchary,unsignedintcolor);
入口参数:
x,y需要画点的坐标,color为点的颜色
出口参数:
无
说明:
在屏幕上指定的坐标画指定颜色的点
示例代码:
Put_pixel(200,200,RED);//在坐标点(200,200)画一红色点
函数名:
Line
功能:
在屏幕上画线
函数原型:
voidLine(ucharX0,
ucharY0,
ucharX1,
ucharY1,
unsignedintcolor);
入口参数:
起点坐标(X0,Y0),终点坐标(X1,Y1),color为线的颜色
出口参数:
无
说明:
用指定颜色在屏幕指定坐标画出线
示例代码:
Line(0,0,200,200,BLUE);//从点(0,0)到点(200,200)画一条蓝色的线
函数名:
Rectangle
功能:
绘制一个矩形框
函数原型:
voidRectangle
(ucharleft,
uchartop,
ucharright,
ucharbottom,
unsignedintcolor);
入口参数:
矩形的起始位置left,top
矩形的结束位置right,bottom
矩形框的颜色color
出口参数:
无
说明:
用指定颜色在屏幕指定坐标绘制一个矩形框
示例代码:
Rectangle(10,10,118,150,0x0000);//画一黑色矩形框
函数名:
Bar
功能:
绘制一个填充的平面矩形
函数原型:
voidBar
(ucharleft,
uchartop,
ucharright,
ucharbottom,
unsignedintcolor);
入口参数:
矩形的起始位置left,top
矩形的结束位置right,bottom
矩形填充颜色color
出口参数:
无
说明:
用指定颜色在屏幕指定坐标绘制一个填充的平面矩形
示例代码:
Bar(0,0,120,160,0x0000);//画一黑色矩形框
函数名:
Show_RGB
功能:
绘制一个填充的平面矩形
函数原型:
voidShow_RGB
(unsignedintx0,
unsignedintx1,
unsignedinty0,
unsignedinty1,
unsignedintColor);
入口参数:
x0,y0起始坐标
x1,y1结束坐标
Color背景颜色
出口参数:
无
说明:
用指定颜色在屏幕指定坐标绘制一个填充的平面矩形(速度比Bar函数快)
示例代码:
Show_RGB(0,120,0,160,0x0000);//画一黑色矩形框
函数名:
show_colour_bar
功能:
在整个屏幕上绘制横彩条
函数原型:
voidshow_colour_bar(void);
入口参数:
无
出口参数:
无
说明:
横彩条从上到下的颜色顺序为红、绿、蓝、黄、紫、青、白、黑
示例代码:
show_colour_bar();//显示彩条
函数名:
LCD_PutChar8x16
功能:
显示数字及英文字符
函数原型:
voidLCD_PutChar8x16
(unsignedshortx,
unsignedshorty,
charc,
unsignedintfColor,
unsignedintbColor);
入口参数:
x横坐标,y纵坐标
c需要显示的字符
fColor字符颜色
bColor字符背景颜色
出口参数:
无
说明:
需包含"8X16.h",显示数字、大小写英文字符和一些符号等
示例代码:
LCD_PutChar8x16(0,0,'Z',RED,BLUE);//显示英文字符Z
函数名:
PutGB1616
功能:
显示16*16汉字
函数原型:
voidPutGB1616
(unsignedshortx,
unsignedshorty,
unsignedcharc[2],
unsignedintfColor,
unsignedintbColor);
入口参数:
x横坐标,y纵坐标
c需要显示的汉字码
fColor汉字颜色
bColor汉字背景颜色
出口参数:
无
说明:
需包含"GB1616.h",具体汉字是如何取模的,阅读16*16汉字取模说明
示例代码:
PutGB1616(0,0,"华",RED,BLUE);//显示汉字“华”
16*16汉字取模说明
16*16字模由
软件取模得到,具体操作如下
点击“参数设置”中的“其它选项”,设置如下图
然后输入文字,按“Ctrl+Enter组合键”结束文字输入
点击“取模方式”选择“C51格式”,此时会在“点阵生成区”输出取模数据
把生成的代码复制,粘贴到GB1616.h中,按已有的格式进行修改
修改好GB1616.h文件后,还要修改PutGB1616函数中的“自建汉字的个数”
至此,就可以在程序中自由的调用字库中已有汉字用于显示
函数名:
LCD_PutString
功能:
显示字符串
函数原型:
voidLCD_PutString
(unsignedshortx,
unsignedshorty,
unsignedchar*s,
unsignedintfColor,
unsignedintbColor);
入口参数:
x横坐标,y纵坐标
*s需要显示的字符串
fColor字符颜色
bColor字符背景颜色
出口参数:
无
说明:
中英文字符、数字和符号可以同时显示
示例代码:
LCD_PutString(10,80,"电子科技",0x0000,0xf800);//显示字符串
函数名:
LCDShow_uCharNumber
功能:
向LCD发送一个0--65535的数值
函数原型:
voidLCDShow_uCharNumber
(ucharx,
uchary,
unsignedintuCharNumber,
unsignedintforecolor,
unsignedintbkcolor);
入口参数:
x横坐标,y纵坐标
uCharNumber需要显示的一串数字
forecolor字符颜色
bkcolor字符背景颜色
出口参数:
无
说明:
显示一串数字,数值范围从0--65535
示例代码:
LCDShow_uCharNumber(10,30,9999,0x0000,0xffff);//显示一串数字
函数名:
PutGB3232
功能:
显示32*32汉字
函数原型:
voidPutGB3232
(unsignedshortx,
unsignedshorty,
unsignedcharc[2],
unsignedintfColor,
unsignedintbColor);
入口参数:
x横坐标,y纵坐标
c需要显示的汉字码
fColor汉字颜色
bColor汉字背景颜色
出口参数:
无
说明:
需包含"GB3232.h",具体汉字是如何取模的,阅读32*32汉字取模说明
示例代码:
PutGB3232(0,200,"我",WHITE,BLUE);//显示32*32汉字
32*32汉字取模说明
32*32字模由
软件取模得到,具体操作如下
打开软件点击“模式”选择“字符模式”,设置字宽为32*32
点击“选项”,具体设置如下
然后在软件中间的空白处输入汉字,点击“生成字模”,此时字模代码产生
把生成的代码复制,粘贴到GB3232.h中,按已有的格式进行修改
修改好GB3232.h文件后,还要修改PutGB3232函数中的“自建汉字的个数”
至此,就可以在程序中自由的调用字库中已有汉字用于显示
函数名:
Show_Color_Bar
功能:
在整个屏幕上显示渐变色横彩条
函数原型:
voidShow_Color_Bar(void);
入口参数:
无
出口参数:
无
说明:
在整个屏幕上逐行扫描出渐变颜色横彩条
示例代码:
Show_Color_Bar();//显示渐变彩条
六、读SD卡显示图片
2.4寸彩屏分辨率为320x240,样例程序使用16bit表示一个点的颜色,格式为565格式。
320x240x2=153600字节,即150K,所以如果完整写一幅图片,需要150KROM容量,显然51系列单片机是不够的(最大内部ROM64K),所以需要SD卡存储图片。
SD卡使用如下:
1G以下SD卡,格式化成FAT16格式。
然后把需要显示的图片,大小为320x240像素,bmp格式,通过
软件处理成bin格式,通过读卡器存储到SD卡。
SD卡中不要含有任何其它文件,之前必须先格式化SD卡。
具体操作如下:
1G的SD卡格式化成FAT16格式
软件的具体设置,生成bin文件
bin文件储存到SD卡
用
软件查看SD卡第一个文件的物理扇区编号
可以看到右端第1扇区地址是512,这个是数据区最小的地址,我们把图片依次存放,读图片也是从这个图片开始,然后看左下角的物理扇区编号和逻辑扇区编号,配套的程序中由于没有使用完整的FAT16格式,所以这里我们选择物理扇区编号645,那么对应的地址就是645x512=330240,这个是1G卡FAT16格式化后的初始数据,1G以下卡不同容量的初始地址不同,使用winhex软件查看对应的物理扇区编号,并计算出对应的地址,然后在样例程序中更改。
以下列出的程序中是需要修改的地方:
程序中的AddTemp就是初始地址,不同的卡都需要更改这个数据。
然后重新编译即可。
上图中的2个箭头所指的数据大概说明一下:
1、KEY表示按键,可以定义到任一端口,可以看程序开头部分。
这里表示写完一幅图片后如果按键按下。
则显示下一幅图片,否则停留在当前图片。
2、j+20,20这个数字的来由,我们有上面的分析可知,一张完整的图片占用150K,也就是需要300个扇区(每个扇区512),以此推论,第一幅图片的逻辑扇区编号为512,然后紧接着的一幅图片应该是512+300=812,通过winhex可以看出实际是832,所以要跳过这个空白区。
就加20,这里的程序仅作SD卡读图片测试作用,实际SD卡读写都要读出引导信息,然后确定下一组数据的位置,这需要复杂的写FAT文件系统,有兴趣的朋友可以去研究。
七、DS1302实时时钟2.4寸彩屏显示
使用11.0592M晶振,可以使用上位机程序更新时间,波特率设置为9600,其它参数默认,如下图:
下载程序到单片机,时钟秒数正常跳动,连接好串口,点击“更新时间”
发送16个字符接收16个字符,并且发送和接收相同,表明更新完成,设置正确,此时屏幕显示时钟与电脑时钟相同,如果不同,按单片机开发板复位按键,然后再次更新。
如果使用其它非配套软件,需要把收发都设置成字符格式,输入数字如下:
2010081122542803
数字前4位表示年份,紧接着2位表示月份,然后是2位日期,接着的6为是时分秒,最后2位表示星期,如03表示星期三。
按照上述格式输入后点击发送,同样可以更新主板上的时间具体操作自行研读。