AN1510B ATK-7’ TFTLCD 电容触摸屏模块使用说明 
本应用文档(AN1510B)将教大家如何在 ALIENTEK 探索者 STM32F407 开发板上使用
ATK-7’ TFTLCD 电容触摸屏模块。(本文档仅针对 V1 版本的 7 寸屏模块,即:CPLD+FT5206 方
案;非 V2 版本的 7 寸屏模块,V2 版本采用的是:SSD1963+FT5206 方案)。 
本文档分为如下几部分: 
1, ATK-7’ TFTLCD  电容触摸屏模块简介 
2, 硬件连接 
3, 软件实现 
4, 验证 
1、ATK-7’ TFTLCD 电容触摸屏模块简介 
ATK-7’  TFTLCD 电容触摸屏模块,是 ALIENTEK 生产的一款高性能 7 寸电容触摸屏模块,
该模块屏幕分辨率为 800*480,16 位真彩显示,模块自带 LCD 控制器,拥有多达 8MB 的显
存,能提供 8 页的显存,并支持任意点颜色读取。模块采用电容触摸屏,支持 5 点同时触摸,
具有非常好的操控效果。同时,模块还提供了镜像翻转、背光控制等功能,方便用户使用。 
ATK-7’  TFTLCD 模块采用单 5V 供电,工作电流为 130mA~350mA,功耗很低,非常适合
各类型产品使用。 
1.1  模块引脚说明 
ATK-7’  TFTLCD 电容触摸屏模块通过 2*17 的排针(2.54mm 间距)同外部连接,模块可
以与 ALIENTEK 的 STM32 开发板直接对接,我们提供相应的例程,用户可以在 ALIENTEK STM32
开发板上直接测试。ATK-7’ TFTLCD 电容触摸屏模块外观如图 1.1.1 所示:   
 
图 1.1.1-1 ATK-7’ TFTLCD 电容触摸屏模块正面图 
 
图 1.1.1-2 ATK-7’ TFTLCD 电容触摸屏模块背面图   
 
模块通过 34(2*17)个引脚同外部连接,各引脚的详细描述如表 1.1.1 所示: 
序号 
说明 
名称 
NCE 
RS 
WR 
RD 
RST 
LCD 控制器片选信号(低电平有效) 
命令/数据控制信号(0,命令;1,数据;) 
写使能信号(低电平有效) 
读使能信号(低电平有效) 
复位信号(低电平有效) 
1 
2 
3 
4 
5 
6~21 
22,26,27 
23~25 
28 
29 
30 
31 
32 
33 
34 
D0~D15  双向数据总线 
GND 
NC 
VCC 
MISO 
MOSI 
PEN 
BUSY 
CS 
CLK 
地线 
未用到 
5V 电源输入引脚 
NC,电容触摸屏未用到 
电容触摸屏 IIC_SDA 信号(CT_SDA) 
电容触摸屏中断信号(CT_INT) 
NC,电容触摸屏未用到 
电容触摸屏复位信号(CT_RST) 
电容触摸屏 IIC_SCL 信号(CT_SCL) 
表 1.1.1 ATK-7’ TFTLCD  模块引脚说明   
  从上表可以看出,LCD 控制器总共需要 21 个 IO 口驱动,电容触摸屏需要 4 个 IO 口驱
动,这样整个模块需要 25 个 IO 口驱动。   
1.2 LCD 控制器接口时序 
ATK-7’  TFTLCD 模块自带的 LCD 控制器采用 16 位 8080 总线接口,总线写时序如图 1.2.1
 
所示: 
图 1.2.1  总线写时序 
 
  图中,当 RS 为 0 的时候,表示写入的是寄存器地址(0~7),RS 为 1 的时候,表示写入
的是数据(寄存器值/GRAM 数据)。 
  总线读时序如图 1.2.2 所示: 
图 1.2.2  总线读时序 
ATK-7’ TFTLCD 模块自带的 LCD 控制器可读的寄存器只有 2 个,当 RS 为 0 的时候,表示
 
读取的是状态寄存器(STATE),当 RS 为 1 的时候,表示读取的是像素数据(DATA),读期间的
地址寄存器(ADDR)将被忽略。 
 
1.3 LCD 控制器寄存器说明 
ATK-7’ TFTLCD 模块自带的 LCD 控制器各个寄存器的地址和功能简介如表 1.3.1 所示: 
复位值 
0x0000 
功能简介 
16 
— 
— 
16 
RS  操作  位宽  地址  名称 
0  写 
0  读 
1  读 
1  写 
1  写 
1  写 
1  写 
0x00 
0x01 
0x02 
16 
16 
16 
16 
16 
— 
0x03 
END_X 
ADDR  设置地址寄存器的值 
STATE  读状态寄存器 
DATA  读像素数据 
CUR_Y  设置屏幕的 Y 坐标 
CUR_X  设置屏幕的 X 坐标 
PIXELS  写入像素数据 
1  写 
1  写 
16 
16 
0x04  保留 
0x05 
PREF  设置当前显示页、当前操作页, 
设置 X 方向自动返回的坐标,以及页
拷贝时 X 方向的结束坐标 
 
背光等 
0x0000 
0x0000 
0x0000 
0x0000 
0x0000 
0x031f 
 
0x0000 
1  写 
1  写 
8 
8 
0x06  保留 
0x07  MIRROR  控制镜像翻转 
 
 
0x0001 
表 1.3.1 ATK-7’ TFTLCD  模块自带 LCD 驱动器寄存器地址和功能简介   
1.3.1 CUR_X 寄存器(0x01)和 CUR_Y 寄存器(0x00) 
寄存器 CUR_X 和 CUR_Y 用于设置待操作像素点的坐标,TFTLCD 屏幕上坐标的排列如图
1.3.1.1 所示:   
图 1.3.1.1  坐标排列 
 
当 CUR_Y 和 CUR_X 的值确定后,像素点 A 的位置便被唯一的确定了,随后的写入的像
素数据会被准确的放置在 A 点。 
1.3.2 PIXELS 寄存器(0x02) 
寄存器 PIXELS 对应着 16 位的颜色数据,如果当前显示页与当前操作页相同,那么写入
PIXELS 的数据会被立即呈现在由 CUR_X 和 CUR_Y 选中的当前激活点上,如果当前显示页与
当前操作页不相同,那么写入 PIXELS 的数据不会被立即呈现出来。 
ATK-7’ TFTLCD 模块的颜色格式为 RGB565,具体的颜色与每个位对应关系如表 1.3.2.1 所
示: 
b15 
b14  b13  b12  b11  b10  b9  b8  b7  b6  b5  b4 
b3  b2  b1  b0 
R4 
R3 
R2 
R1 
R0 
G5  G4  G3  G2  G1  G0  B4 
图 1.3.2.1  颜色与位对应关系 
B3  B2  B1  B0 
1.3.3 END_X 寄存器(0x03) 
为了提高像素数据连续读写的效率,当设置好 CUR_X 和 CUR_Y 后,每读取/写入一个像
素,当前激活点的 X 坐标就会自动加一,当激活点的 X 坐标等于 END_X 后,便会自动返回
CUR_X 同时 Y 坐标自动加一。如图 1.3.3.1 所示: 
图 1.3.3.1 X 坐标自动返回示意图 
 
以写数据为例,假设 CUR_X、CUR_Y、END_X 分别为 400、200、500,A 点、B 点、C 点、
D 点的坐标分别为(400,200)、(500,200)、(400,201)、(500,201)。设置好 CUR_X、
CUR_Y 后,第一个像素写到了 A 点,第 100 个像素写到 B 点,第 101 个像素写到 C 点,第
200 个像素写到 D 点,依此类推。 
借助 END_X 寄存器,可以简化 MCU 批量数据读写的流程,假设 MCU 需要以(100,200)
为起始坐标写入一个 10×20 的矩形,那么只需要将 CUR_X 设为 100,CUR_Y 设为 200,END_X
设为 210,然后进行 200 次的像素点读/写操作即可,期间不需要再进行坐标设置操作,所
有的坐标都会被自动推算。 
1.3.4 PREF 寄存器(0x05) 
PREF 寄存器用于设置当前显示页、当前操作页和 TFT 背光,各个位的具体含义如表
1.3.4.1 所示: 
位 
b5~b0 
b8~b6 
b11~b9 
b14~b12 
b15 
名称 
功能简介 
复位值 
BK_PWM 
背光控制 
保留 
—— 
CUR_PAGE  当前显示的页 
OPT_PAGE  当前操作的页 
保留 
—— 
0 
0 
0 
0 
0 
表 1.3.4.1 HREF 寄存器各位定义   
其中,BK_PWM 用于设置背光信号的占空比,从而调节 TFT 背光的亮度,取值范围为
0~63,0 代表背光关闭,63 代表背光最亮。上电复位后 BK_PWM 的值默认为 0,也就是背
光关闭,在 MCU 对 BK_PWM 赋以非零值后,背光才能点亮。 
当前显示页由 CUR_PAGE 指定,表示屏幕上实际显示的显存分页,当前操作页由
OPT_PAGE 指定,表示当前读写操作的显存分页。如果 CUR_PAGE 与 OPT_PAGE 指向同
一显存分页,那么写显存操作的结果会被立即呈现在屏幕上,如果 CUR_PAGE 与 OPT_PAGE
指向不同的显存分页,那么对 OPT_PAGE 的任何操作都不会影响屏幕上的显示内容,只有
在 CUR_PAGE 切换到 OPT_PAGE 后,OPT_PAGE 中数据才会被显示出来。 
1.3.5 MIRROR 寄存器(0X07) 
MIRROR 寄存器用于实现图像的水平和垂直镜像翻转,该寄存器各位的具体含义如表
1.3.5.1 所示。   
位 
b15~b2 
b1 
b0 
名称 
保留 
UD 
LR 
功能简介 
复位值 
—— 
控制垂直镜像翻转 
控制水平镜像翻转 
表 1.3.5.1 MIRROR 寄存器各位定义   
0 
0 
1 
UD 位用于控制显示画面的垂直翻转,LR 位用于控制显示画面的水平翻转,操作 UD
位和 LR 位会影响 TFT 上的像素点位置与显存中数据地址的映射关系,但不会改变显存中
的数据,不同的 UD 和 LR 值所对应的显示效果如图 1.3.5.1 所示。 
图 1.3.5.1  显示效果示意图 
 
1.3.6 STATE/ DATA 寄存器 
这两个寄存器相互配合,用于完成像素数据的读操作。STATE 寄存器的位定义如表
1.3.6.1 所示,读取该寄存器会自动启动像素点的读操作,当 MCU 查询到 STATE 的 DATA_OK
位(b0 位)为 1 后,表示像素数据有效,然后 MCU 读 DATA 寄存器即可获得对应点的像
素数据,与写像素数据的操作相同,读像素数据的像素点位置也是由当前的 CUR_X 和
CUR_Y 定义的。当 MCU 读取 DATA 寄存器后,DATA_OK 位会被自动清零。需要注意的
是,读 STATE 寄器时,b15~b1 位是随机值,因此在判断 DATA_OK 时,需要屏蔽掉这些位。 
位 
b15~b1 
b0 
名称 
保留 
 
功能简介 
DATA_OK 
数据有标志 
表 1.3.6.1 STATE 寄存器各位定义   
复位值 
0 
0 
1.4 LCD 控制器使用说明 
  经过前面的介绍,我们对 ATK-7’  TFTLCD 模块自带的 LCD 控制器有了个大概的了解,接
下来,我们介绍一下该驱动器的具体使用方法。 
1.4.1  初始化 
 
ATK-7’ TFTLCD 模块自带的 LCD 控制器初始化非常简单,分为如下 3 个步骤: 
1, 复位。 
通过拉低模块 RST 脚,实现对 LCD 控制器的复位,延时 100ms 左右,再拉高 RST
脚,完成对 LCD 的复位。   
2, 等待控制器准备好。 
在复位后,我们通过直接读 LCD 控制的数据,直到读到的数据最低位变为 1,说明
LCD 驱动器准备好了,可以开始后续的的操作。 
3, 设置显示相关寄存器。 
这里,我们要设置的包括:MIRROR 寄存器、PREF 寄存器、ENDX 寄存器等三个寄
存器。通过 MIRROR 寄存器设置屏幕的显示方向,这里我们默认设置为 0X01。然后,
通过 PREF 寄存器设置当前操作页、当前显示页以及背光控制等参数,这里我们默认设
置操作页和显示页均为第 0 页。然后设置背光为 63,设置背光到最亮。最后,通过 ENDX
寄存器设置 X 坐标的结束位置,由于 ATK-7’ TFTLCD 模块使用的 LCD 分辨率为 800*480,
所以默认设置 ENDX 的值为 799,满足全屏显示的需要。 
  经过以上三步设置,LCD 驱动器的初始化就完成了。 
1.4.2  画点 
LCD 驱动最重要的就是画点了,这里我们简单介绍一下 ATK-7’ TFTLCD 模块的画点实现。
 
用模块自带的 LCD 驱动器实现画点也是非常简单,我们只需通过操作三个寄存器,即可实
现任意点的画点。 
  首先,将我们要画的点的坐标写入 CUR_X 和 CUR_Y 这两个寄存器。然后,我们在 PIXELS
寄存器里面写入该点的颜色值,即完成画点操作了。如果设置操作页和显示页相同的话,我
们就可以立马在 LCD 上看到这个画出来的点。   
1.4.3  读点 
LCD 驱动另一个重要的功能就是读取点的颜色,方便做其他处理。ATK-7’ TFTLCD 模块自
 
带的 LCD 驱动器可以实现任意点的读取,方法类似画点操作,不过稍有区别。 
  首先,我们同样是通过 CUR_X 和 CUR_Y 两个寄存器,设置要读取点的坐标。然后,我
们读 STATE 寄存器(RS=0),等待 STATE 寄存器的最低位变为 1,之后,我们读取 DATA 寄存
器(RS=1),就可以读到指定点的颜色。  这样我们就实现一个点颜色的读取。   
1.5  电容触摸屏接口说明 
1.5.1  电容式触摸屏简介 
现在几乎所有智能手机,包括平板电脑都是采用电容屏作为触摸屏,电容屏是利用人体
感应进行触点检测控制,不需要直接接触或只需要轻微接触,通过检测感应电流来定位触摸
坐标。 
ATK-7’  TFTLCD  V1 模块自带的触摸屏采用的是电容式触摸屏,下面简单介绍下电容式触
摸屏的原理。   
电容式触摸屏主要分为两种: 
1、 表面电容式电容触摸屏。 
表面电容式触摸屏技术是利用 ITO(铟锡氧化物,是一种透明的导电材料)导电膜,通过
电场感应方式感测屏幕表面的触摸行为进行。但是表面电容式触摸屏有一些局限性,它只能
识别一个手指或者一次触摸。 
2、 投射式电容触摸屏。 
投射电容式触摸屏是传感器利用触摸屏电极发射出静电场线。一般用于投射电容传感技
术的电容类型有两种:自我电容和交互电容。   
自我电容又称绝对电容,是最广为采用的一种方法,自我电容通常是指扫描电极与地构
成的电容。在玻璃表面有用 ITO 制成的横向与纵向的扫描电极,这些电极和地之间就构成
一个电容的两极。当用手或触摸笔触摸的时候就会并联一个电容到电路中去,从而使在该条
扫描线上的总体的电容量有所改变。在扫描的时候,控制 IC 依次扫描纵向和横向电极,并
根据扫描前后的电容变化来确定触摸点坐标位置。笔记本电脑触摸输入板就是采用的这种方
式,笔记本电脑的输入板采用 X*Y 的传感电极阵列形成一个传感格子,当手指靠近触摸输
入板时,在手指和传感电极之间产生一个小量电荷。采用特定的运算法则处理来自行、列传
感器的信号来确定手指的位置。   
交互电容又叫做跨越电容,它是在玻璃表面的横向和纵向的 ITO 电极的交叉处形成电
容。交互电容的扫描方式就是扫描每个交叉处的电容变化,来判定触摸点的位置。当触摸的
时候就会影响到相邻电极的耦合,从而改变交叉处的电容量,交互电容的扫面方法可以侦测
到每个交叉点的电容值和触摸后电容变化,因而它需要的扫描时间与自我电容的扫描方式相
比要长一些,需要扫描检测 X*Y 根电极。目前智能手机/平板电脑等的触摸屏,都是采用交
互电容技术。 
ALIENTEK 所选择的电容触摸屏,也是采用的是投射式电容屏(交互电容类型),所以
后面仅以投射式电容屏作为介绍。 
透射式电容触摸屏采用纵横两列电极组成感应矩阵,来感应触摸。以两个交叉的电极矩
阵,即:  X 轴电极和 Y 轴电极,来检测每一格感应单元的电容变化,如图 1.4.1.1 所示: 
图 1.5.1.1  投射式电容屏电极矩阵示意图 
 
示意图中的电极,实际是透明的,这里是为了方便大家理解。图中,X、Y 轴的透明电
极电容屏的精度、分辨率与 X、Y 轴的通道数有关,通道数越多,精度越高。以上就是电容
触摸屏的基本原理,接下来看看电容触摸屏的优缺点:   
电容触摸屏的优点:手感好、无需校准、支持多点触摸、透光性好。 
电容触摸屏的缺点:成本高、精度不高、抗干扰能力较差。 
这里特别提醒大家电容触摸屏对工作环境的要求是比较高的,在潮湿、多尘、高低温环
境下面,都是不适合使用电容屏的。     
电容触摸屏一般都需要一个驱动 IC 来检测电容触摸,且一般是通过 IIC 接口输出触摸