admin管理员组文章数量:1651732
2024年5月7日发(作者:)
2.4寸TFT彩屏使用说明书
彩屏驱动IC:ILI9325
实验板:LY-51S实验板
编写:侯瑞阳
2013年01月
一、彩屏模块简介
屏幕尺寸:2.4寸TFT彩屏
分辨率:320x240 262K色
接口类型:8位数据接口,接口兼容12864液晶接口,①脚对齐
电源类型:5V电源接口,板上有3.3V稳压芯片,不需要电平转换
SD卡模式:SPI模式
触摸IC:XPT2046
图1-1 2.4寸TFT彩屏模块
- 1 -
二、彩屏结构组成及原理
TFT屏(Thin Film Transistor)是薄膜晶体管型液晶显示屏,它的每一个
象素点都是由集成在其后的薄膜晶体管来驱动的,这样不仅提高了显示屏的响应
速度,同时可以精确控制显示色阶,所以TFT液晶的色彩更逼真。
TFT屏主要的构成包括:背光源、导光板、偏光板、滤光板、玻璃基板、配
向膜、液晶材料、薄膜晶体管等。
图2-1 彩屏的基本结构
- 2 -
图2-2 TFT彩屏内部结构
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的。
分辨率指水平像素和垂直像素的数量。
- 3 -
三、学习彩屏的准备知识
1、什么是图形和图像
图形:如一段直线,在单片机内存储时只需要存储起点X、Y坐标和终点X、Y
坐标,存储量极小,但在显示器上显示时,和图像的显示是一致的,也是通过像
素点的组合来显示的。
图3-1 像素点组成图形
图像:如一张人物照片,在单片机内存储时需要存储所有像素点的信息,存
储量极大,在显示器上显示时,通过像素点的点阵组合来完成显示的
图3-2 像素点组成图像
- 4 -
2、什么是像素
像素:图像的最小组成单位。大量颜色、明暗不同的像素组成一幅点阵图像。
3、颜色的表示
一个彩色像素的信息可以用1个多位二进制数来表示和储存。用来表示彩色
像素的二进制数的位数我们称为颜色深度或颜色质量。本彩屏模块采用16位二进
制数5-6-5格式。
采用1个16位二进制数来表达一个彩色点
常用颜色码表
红: 0xf800
黄: 0xffe0
绿: 0x07e0
青: 0x07ff
蓝: 0x001f
紫: 0xf81f
0x0000
白: 0xffff
灰: 0x7bef
- 5 -
四、硬件接口介绍
图4-1 彩屏模块原理图
彩屏模块引脚连接说明
1
○
2
○
3
○
4
○
5
○
6
○
7
○
8
○
9
○
10
○
11
○
12
○
13
○
14
○
15
○
16
○
17
○
18
○
19
○
20
○
| | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | |
G V N R W R D D D D D D D D R L C N
N C C S R D B B B B B B B B S E S C
D C 0 1 2 3 4 5 6 7 T D
I A
N
| | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | |
G V P P P P P P P P P P P P P P
N C 2. 2. 2. 0 0 0 0 0 0 0 0 2. 2. 2.
D C 4 5 6 1 2 3
RS-----P2.4 WR-----P2.5 RD-----P2.6
RET----P2.1 LEDA---P2.2 CS-----P2.3
DB-----P0口
- 6 -
图4-2 彩屏模块元件布局图
跳线说明:
一:R1处: 1.默认不焊接,需5V输入经AMS1117后转换为3.3V。
2.短接后,模块由VCCIN 接口供电。方便接3.3V 电源。
二:R6处:背光控制。1.默认焊接,背光端固定接高电平。
2.若是用软件控制。此处需断开。用LEDA来控制
三:SD 卡部分。引出了WP. INSERT引脚。更方便应用。
- 7 -
X轴
Y轴
图4-3 彩屏像素点分布
X轴方向一共240个像素点,Y轴方向一共320个像素点。
- 8 -
五、TFT彩屏函数集
函数名:
Write_Data_U16
功能:写16位数据
函数原型:void Write_Data_U16(unsigned int y);
入口参数:unsigned int y 要写的16位数据
出口参数:无
说明:这个16位数据分成两个8位数据分两次写入
示例代码:
Write_Data_U16(Color);//写16位颜色数据
函数名:
Write_Cmd_Data
功能:写命令、写数据
函数原型:void Write_Cmd_Data(unsigned char x,unsigned int y);
入口参数:unsigned char x 要写的8位命令
unsigned int y 要写的16位数据
出口参数:无
说明:先写8位命令,后写16位数据
示例代码:
Write_Cmd_Data(WINDOW_XADDR_START,x0);//写X坐标的起始位置
函数名:
ILI9325_Initial
功能:液晶初始化函数
函数原型:void ILI9325_Initial(void);
入口参数:无
出口参数:无
说明:厂家提供的液晶初始化代码
示例代码:
ILI9325_Initial();//初始化LCD
- 9 -
函数名:
LCD_SetPos
功能:定义显示窗体
函数原型:static void LCD_SetPos
(unsigned int x0,
unsigned int x1,
unsigned int y0,
unsigned int y1);
入口参数:x0:窗体中X坐标中较小者
x1:窗体中X坐标中较大者
y0:窗体中Y坐标中较小者
y1:窗体中Y坐标中较大者
出口参数:无
说明:设置显示区域的大小
示例代码:
LCD_SetPos(0,240,0,320);//设置显示区域为320x240
函数名:
CLR_Screen
功能:清屏
函数原型:void CLR_Screen(unsigned int bColor);
入口参数:bColor 清除屏幕的的颜色
出口参数:无
说明:使用背景色清除屏上所有内容
示例代码:
CLR_Screen(0xf800);//清屏红色
CLR_Screen(0xffe0);//清屏黄色
CLR_Screen(BLUE);//清屏蓝色
- 10 -
函数名:
Put_pixel
功能:在屏幕上画点
函数原型:void Put_pixel(uchar x,uchar y,unsigned int color);
入口参数:x,y 需要画点的坐标,color为点的颜色
出口参数:无
说明:在屏幕上指定的坐标画指定颜色的点
示例代码:
Put_pixel(200,200,RED);//在坐标点(200,200)画一红色点
函数名:
Line
功能:在屏幕上画线
函数原型:void Line(uchar X0,
uchar Y0,
uchar X1,
uchar Y1,
unsigned int color);
入口参数:起点坐标(X0,Y0),终点坐标(X1,Y1),color为线的颜色
出口参数:无
说明:用指定颜色在屏幕指定坐标画出线
示例代码:
Line(0,0,200,200,BLUE);//从点(0,0)到点(200,200)画一条蓝色的线
- 11 -
函数名:
Rectangle
功能:绘制一个矩形框
函数原型:void Rectangle
(uchar left,
uchar top,
uchar right,
uchar bottom,
unsigned int color);
入口参数:矩形的起始位置left,top
矩形的结束位置right,bottom
矩形框的颜色color
出口参数:无
说明:用指定颜色在屏幕指定坐标绘制一个矩形框
示例代码:
Rectangle(10,10,118,150,0x0000);//画一黑色矩形框
函数名:
Bar
功能:绘制一个填充的平面矩形
函数原型:void Bar
(uchar left,
uchar top,
uchar right,
uchar bottom,
unsigned int color);
入口参数:矩形的起始位置left,top
矩形的结束位置right,bottom
矩形填充颜色color
出口参数:无
说明:用指定颜色在屏幕指定坐标绘制一个填充的平面矩形
示例代码:
Bar(0,0,120,160,0x0000);//画一黑色矩形框
- 12 -
函数名:
Show_RGB
功能:绘制一个填充的平面矩形
函数原型:void Show_RGB
(unsigned int x0,
unsigned int x1,
unsigned int y0,
unsigned int y1,
unsigned int Color);
入口参数:x0,y0 起始坐标
x1,y1 结束坐标
Color 背景颜色
出口参数:无
说明:用指定颜色在屏幕指定坐标绘制一个填充的平面矩形(速度比Bar函数快)
示例代码:
Show_RGB (0,120,0,160,0x0000);//画一黑色矩形框
函数名:
show_colour_bar
功能:在整个屏幕上绘制横彩条
函数原型:void show_colour_bar(void);
入口参数:无
出口参数:无
说明:横彩条从上到下的颜色顺序为红、绿、蓝、黄、紫、青、白、黑
示例代码:
show_colour_bar();//显示彩条
- 13 -
函数名:
LCD_PutChar8x16
功能:显示数字及英文字符
函数原型:void LCD_PutChar8x16
(unsigned short x,
unsigned short y,
char c,
unsigned int fColor,
unsigned int bColor);
入口参数:x 横坐标,y 纵坐标
c 需要显示的字符
fColor 字符颜色
bColor 字符背景颜色
出口参数:无
说明:需包含"8X16.h ",显示数字、大小写英文字符和一些符号等
示例代码:
LCD_PutChar8x16(0,0,
'Z',RED,BLUE);//显示英文字符Z
函数名:
PutGB1616
功能:显示16*16汉字
函数原型:void PutGB1616
(unsigned short x,
unsigned short y,
unsigned char c[2],
unsigned int fColor,
unsigned int bColor);
入口参数:x 横坐标,y 纵坐标
c 需要显示的汉字码
fColor 汉字颜色
bColor 汉字背景颜色
出口参数:无
说明:需包含" GB1616.h ",具体汉字是如何取模的,阅读16*16汉字取模说明
示例代码:
PutGB1616(0,0, "华",RED,BLUE);//显示汉字“华”
- 14 -
16*16汉字取模说明
16*16字模由软件取模得到,具体操作如下
点击“参数设置”中的“其它选项”,设置如下图
- 15 -
然后输入文字,按“Ctrl+Enter组合键”结束文字输入
点击“取模方式”选择“C51格式”,此时会在“点阵生成区”输出取模数据
- 16 -
把生成的代码复制,粘贴到GB1616.h中,按已有的格式进行修改
修改好GB1616.h文件后,还要修改PutGB1616函数中的“自建汉字的个数”
至此,就可以在程序中自由的调用字库中已有汉字用于显示
- 17 -
函数名:
LCD_PutString
功能:显示字符串
函数原型:void LCD_PutString
(unsigned short x,
unsigned short y,
unsigned char *s,
unsigned int fColor,
unsigned int bColor);
入口参数:x 横坐标,y 纵坐标
*s 需要显示的字符串
fColor 字符颜色
bColor 字符背景颜色
出口参数:无
说明:中英文字符、数字和符号可以同时显示
示例代码:
LCD_PutString(10,80,"电子科技",0x0000,0xf800);//显示字符串
函数名:
LCDShow_uCharNumber
功能:向LCD发送一个0--65535的数值
函数原型:void LCDShow_uCharNumber
(uchar x,
uchar y,
unsigned int uCharNumber,
unsigned int forecolor,
unsigned int bkcolor);
入口参数:x 横坐标,y 纵坐标
uCharNumber 需要显示的一串数字
forecolor 字符颜色
bkcolor 字符背景颜色
出口参数:无
说明:显示一串数字,数值范围从0--65535
示例代码:
LCDShow_uCharNumber(10,30,9999,0x0000,0xffff);//显示一串数字
- 18 -
函数名:
PutGB3232
功能:显示32*32汉字
函数原型:void PutGB3232
(unsigned short x,
unsigned short y,
unsigned char c[2],
unsigned int fColor,
unsigned int bColor);
入口参数:x 横坐标,y 纵坐标
c 需要显示的汉字码
fColor 汉字颜色
bColor 汉字背景颜色
出口参数:无
说明:需包含" GB3232.h ",具体汉字是如何取模的,阅读32*32汉字取模说明
示例代码:
PutGB3232(0,200,"我",WHITE,BLUE);//显示32*32汉字
32*32汉字取模说明
32*32字模由软件取模得到,具体操作如下
- 19 -
打开软件点击“模式”选择“字符模式”,设置字宽为32*32
点击“选项”,具体设置如下
- 20 -
然后在软件中间的空白处输入汉字,点击“生成字模”,此时字模代码产生
把生成的代码复制,粘贴到GB3232.h中,按已有的格式进行修改
修改好GB3232.h文件后,还要修改PutGB3232函数中的“自建汉字的个数”
- 21 -
至此,就可以在程序中自由的调用字库中已有汉字用于显示
函数名:
Show_Color_Bar
功能:在整个屏幕上显示渐变色横彩条
函数原型:void Show_Color_Bar(void);
入口参数:无
出口参数:无
说明:在整个屏幕上逐行扫描出渐变颜色横彩条
示例代码:
Show_Color_Bar();//显示渐变彩条
- 22 -
六、读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格式
- 23 -
软件的具体设置,生成bin文件
bin文件储存到SD卡
- 24 -
用软件查看SD卡第一个文件的物理扇区编号
可以看到右端第1扇区地址是512,这个是数据区最小的地址,我们把图片
依次存放,读图片也是从这个图片开始,然后看左下角的物理扇区编号和逻辑扇
区编号,配套的程序中由于没有使用完整的FAT16格式,所以这里我们选择物理
扇区编号645,那么对应的地址就是645x512=330240,这个是1G卡FAT16格式化
后的初始数据,1G以下卡不同容量的初始地址不同,使用winhex软件查看对应
的物理扇区编号,并计算出对应的地址,然后在样例程序中更改。
以下列出的程序中是需要修改的地方:
- 25 -
程序中的AddTemp就是初始地址,不同的卡都需要更改这个数据。然后重新
编译即可。
上图中的2个箭头所指的数据大概说明一下:
1、 KEY表示按键,可以定义到任一端口,可以看程序开头部分。这里表示写完
一幅图片后如果按键按下。则显示下一幅图片,否则停留在当前图片。
2、 j+20,20这个数字的来由,我们有上面的分析可知,一张完整的图片占用
150K,也就是需要300个扇区(每个扇区512),以此推论,第一幅图片的逻
辑扇区编号为512,然后紧接着的一幅图片应该是512+300=812,通过winhex
可以看出实际是832,所以要跳过这个空白区。就加20,这里的程序仅作SD
卡读图片测试作用,实际SD卡读写都要读出引导信息,然后确定下一组数据
的位置,这需要复杂的写FAT文件系统,有兴趣的朋友可以去研究。
- 26 -
七、DS1302实时时钟2.4寸彩屏显示
使用11.0592M晶振,可以使用上位机程序更新时间,波特率设置为9600,
其它参数默认,如下图:
下载程序到单片机,时钟秒数正常跳动,连接好串口,点击“更新时间”
- 27 -
发送16个字符接收16个字符,并且发送和接收相同,表明更新完成,设置
正确,此时屏幕显示时钟与电脑时钟相同,如果不同,按单片机开发板复位按键,
然后再次更新。如果使用其它非配套软件,需要把收发都设置成字符格式,输入
数字如下:
2803
数字前4位表示年份,紧接着2位表示月份,然后是2位日期,接着的6为
是时分秒,最后2位表示星期,如03表示星期三。按照上述格式输入后点击发
送,同样可以更新主板上的时间具体操作自行研读。
- 28 -
版权声明:本文标题:TFT彩屏使用说明书.. 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/xitong/1715095938a434887.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论