基于ARM微处理器的液晶触摸屏的设计
、支持实时仿真和嵌入式跟踪的32 位嵌入式ARM7 微处制器。该处理器内置了宽范围的串行通信接口、14 通道10 位ADC、1 通道10 位DAC、45 个高速GPIO 线以及多达9 个边沿或电平触发的外部中断管脚。处理器集成有40kB 的片内SRAM、512kB 嵌入的高速Flash 存储器,128 位宽度的存储器接口和独特的加速结构使32 位代码能够在最大时钟速率下运行, 为通信网关、协议转换器、软件modem、语音识别、低端成像等应用提供大规模的缓冲区和强大的处理功能,适合于彩色液晶的图片处理和数据存储。
(2)复位和晶振电路
LPC2148 第57 脚为复位信号输入端,采用低电平复位,由C3、R9、R10、K1 构成的复位电路为系统提供上电复位和强制复位功能,K1 为系统强制复位按键。晶振电路由X1(12MH z) 、C7、C8 构成,支持微控制器芯片内部PLL 及ISP功能;X2(321 768KH z) 、C9、C10 为RTC(实时时钟) 提供基准时钟。
(3) 资源分配
LPC2148 的P0.8~ P0.23 作为16 位数据线( D0~ D15) ,经JP1 插座与液晶模块的DB0 ~ DB15 连接;P0.0、P0.26、P0.28~ P0.31 作为液晶模块的控制口线使用,经JP1 分别与液晶模块的PWM、CS、RESET 、RS、RD 和WR 连接;P0.27、P1.16~ P1.20 用于触摸屏控制,通过JP1 的连接分别接ADS7843 的BUSY、7843- CS ( CS ) 、DCLK、DIN、INT( PENIRQ) 和DOUT 引脚。
P1.26~ P1.31 作为JTAG 功能使用,JP2 为微处理器JTAG 程序调试及下载端口。
P0.25 作为蜂鸣器控制口线,蜂鸣器电路用于液晶触摸或显示时发出蜂鸣声响,作为人机对话的辅助功能。蜂鸣器使用PNP 三极管8550(Q2)进行驱动,其放大倍数高(hFE =300),基级偏置电阻R8 为1k, 当输入低电平时,Q1 为深度饱和导通,可为蜂鸣器提供足够的电流。
(4) 电源电路
LPC2148 为单电源供电,CPU 操作电压为3.0~ 3.6V。
电路采用+ 3.3V 供电,外接+ 5V 直流电源经AMS1117(U4) 稳压器稳压后,输出+ 3.3V 电压,给液晶模块和ADS7843 供电。AMS1117 的特点是输出电流大( 800mA) ,输出电压精度在1%以内,具有电流限制和热保护功能,稳定性好。C4、C5、C6 均为电源滤波电容。
3 软件编程
3.1 对液晶屏的C 程序设计
液晶屏的软件设计采用C 语言编程。包括液晶屏初始化、写液晶控制字、写液晶数据子程序、读液晶液晶数据、全屏显示单色、指定位置显示汉字和字符、指定位置显示图片、清屏等子程序。
写液晶数据子程序为:
3.2 对触摸屏的C 程序设计
触摸屏的程序设计主要是确定其位置坐标与液晶屏上位置坐标的对应关系,通过一定的算法把触摸屏触摸信息转化为液晶屏上的位置坐标。液晶屏像素为240×320, 从触摸屏接收到的X 值不在0~ 320 范围变化、Y 值也不在0~ 240范围变化, 在触摸屏的边缘区域,X 、Y 方向输出数据变化较大,是非线性关系,坐标值在中间大部分范围内基本是成线性变化的。为了较准确的进行坐标转换,可采用线性求值和查表相结合的方式进行坐标转换。
触摸屏的C 程序设计主要包括触摸屏初始化子函数、读A/ D 转换值子函数、坐标原始值子函数和坐标转换子函数。
与ADS7843 相关的引脚C 程序预处理为:
读A/ D 转换值子函数:
4 结束语
在嵌入式智能设备中,用液晶触摸屏取代传统的按键、LED 等人机对话部件,具有操作简便、界面友好及功能较强等优点。随着LCD 液晶屏价格的进一步下降,液晶触摸屏有着更宽广的应用市场,基于ARM 微处理器与液晶触摸屏的技术开发具有现实意义和社会经济价值。本系统以ARM7 处理器LPC2148 作为主控制器,与传统单片机相比,具有较大的数据存储容量和较快的图片处理速度;液晶屏带触摸功能,大大增强了人机对话的交互能力;基于C 语言的编程方法有较强的实时性。所设计的液晶触摸屏应用于ARM 嵌入式创新实训系统和便携式铁路平调装置故障检测仪,触摸键反应灵敏,与ARM7 处理器接口电路
- Linux嵌入式系统开发平台选型探讨(11-09)
- 基于ARM体系的嵌入式系统BSP的程序设计方案(04-11)
- 在Ubuntu上建立Arm Linux 开发环境(04-23)
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)
- SQLite嵌入式数据库系统的研究与实现(02-20)
- 革新2410D开发板试用手记(04-21)