admin管理员组

文章数量:1531305

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 -

本文标签: 显示颜色彩屏屏幕说明