嵌入式系统触摸屏设计
嵌入式系统中的电容触摸屏驱动开发
( )设 置参数 3
计 算机应 用 与软件
/¥ 设置 M l T uh u i oc 坐标范围 , 据 L D分辨率 为 12 x 8 t 根 C 0 4 7 设置 x 6 坐标 的范围是 0— 0 4 Y坐标的范围是 0~ 6 / 12 , 78
ip ts n u et a s l a
的全局结构变量 :
s t tu ti m i sr c 2c b a d i f c i c o r n o mx 2c h b a d s or
— — — — — —
( )注册输入 设备 。注 册 函数 为 : tip trg tr dv e 3 i u— eie— ei n n s c
第1 0期
郭 小梅 : 入 式 系统 中的 电容 触摸 屏驱 动 开发 嵌
poe 该函数原型如 下 : rb ,
sa i n x i 2e t t t i tpic r i s c
_ —
25 6
1C接 口只需要 S L时钟 和 S A数据 两根 信号线 , 2 C D 另外 , 当 有手指点击 电容触摸屏 时 , T ea6 A m g18采 样到坐标值 后 , 产生 会
i p t i p t alct n u = n u l ae o
— —
.
rs e ume = p x i 2c t ic r i s
— — —
rue em , s
/ 电源管理唤醒函数 /
.
i—a l = px i ic t i dt e b ie _2 s d, r
d v e ) ei ( ; c
t s
_
d vr= { i re
.
p o e函 数 rb
面向智能楼字的触摸屏嵌入式驱动设计
姚 胜 兴 ( 95 ) 16 一 ,
控制器 A S8 6的基 本结 构及其坐标测量原理 。结合它们 的特点 和工作时 序 , D 74 设计 了
A S8 6与 P A 5 D 74 X 2 5接 口等硬件 驱动 电路 , 写 了相 应的驱 动程 序。经在 开发 平 台下 编 对驱动模块 的安装运行 , 效果 良好 。由于 Lnx平 台下 的驱 动程序具 有 良好 的移植性 , iu
Absr c t a t:Th sc prn i e o o h c e n a d e e ba i i cpl ftuc s r e n mbe e ir p o e s r PXA25 r n rdu e dd d m c o r c so 5 we e i to c d. T e h b i tucur ft u h s r e o tol rADS 46 n t o r i ae me s r me t rn p e we e a s n l z d. s a c sr t eo o c c e n c n r le 78 a d is c o d n t a u e n p cil r lo a ay e i Co b nng wih t e rc a a t rsis a d t i e e c m i i t h i h rc e tc n he tme s qu n e, t a d r iv r ut whih wa he i e fc f i he h r wae dr e cic i, c s t ntra e o t he ADS7 4 a 8 6 nd PXA25 5,Wa sg d. An he c re po d d v ot r: s s e in d. Ast e r s l ,i s de ine d t o r s n r e s fwa e wa a o d sg e i l h e u t t i d c t d t a h fe twa e y g d wh n te drv o l a e n i sal d i h e e o n i ae h tt e efc s v r o e h i e m du e h d b e n t e n t e d v lpme tp af m . Be l n l t or —
嵌入式实验报告模板
武汉大学计算机学院08级嵌入式系统设计实验报告班级: 08级计科5班指导老师:武小平学期: 2011-2012第1学期小组成员:姓名学号组长2008301500174成员成员目录一、设计题目选择 (3)二、实验目的 (3)三、实验内容 (3)四、实验设备 (3)五、实验步骤 (5)六、实验结果及测试 (5)七、实验总结 (5)一、设计题目选择触摸屏驱动实验或液晶显示数字电子时钟设计二、实验目的综合运用ARM平台,掌握驱动程序设计方法,了解触摸屏工作原理。
(触摸屏)综合运用ARM平台,掌握LCD显示接口原理及电子钟实现方法,了解驱动程序的设计方法和触摸屏的工作原理(电子时钟)三、实验内容在现有ARM平台上实现触摸屏功能。
编制触摸屏驱动,设计一个简单的按钮程序,通过触摸屏点击触发按钮动作。
(触摸屏)在ARM实验平台上设计实现电子时钟,并编制触摸屏驱动,设计一个简单的按钮程序,可通过触摸点击改变当前时钟状态。
(电子时钟)四、实验设备实验平台:硬件部分:PC计算机(宿主机)、ARM2410实验台。
软件部分:PC机Linux系统、实验台内核Linux系统、实验驱动程序、实验应用程序、开发工具软件等。
基本配置:配置名称型号说明CPU ARM920T结构芯片工作频率203MHz三星S3C2410XFLASH SAMSUNG K9F1208 64M NANDSDRAM HY57V561620AT-H 32M×2=64MEtherNet网卡AX88796 10/100M自适应LCD LQ080V3DG01 8寸16bit TFT触摸屏SX-080-W4R-FB FM7843驱动USB 接口4个HOST /1个DEVICE AT43301构成USB HUB从处理器的UART2引出UART/IrDA 2个RS232,1个RS485,1个IrDA扩展卡插槽168Pin EXPORT 总线直接扩展PS2 PC键盘和鼠标由ATMEGA8单片机控制CAN BUS 由MCP2510和TJA1050构成Double DA MAX504 一个10位DAC端口调试接口JTAG 14针、20针五、实验步骤六、实验结果及测试七、实验总结。
嵌入式智能仪器设计中触摸屏校准算法的应用研究
o t ie oey Th n ia c r c n n e s ie e s i h e it e t u h s r e r o v d b an d s ll. e n c u a y a d i s n i v n s n t e rssi o c c e n a e s le t v a dsa it n lxb l y a e i p o e . Afe h t e ee c o h o ua iy o o c n tb l y a d fe i it r m r v d i i trt a ,a r fr n ef rt e p p lrt ft u h
第3 2卷
第 3期
光
学
仪
器
Vo. 2,No 3 13 .
2 1 年 6月 00
OPTI CAL I TRUM ENTS Байду номын сангаасNS
J n ,2 1 ue 00
文章编 号 :1 0 —6 0 2 1 ) 30 2 —4 0 55 3 ( 0 0 0 —0 80
嵌入式智 能仪器设 计中触摸屏校准 算法的应 用研究
*
杨 海 马 , 陈 军 苗 雷 王 鹏祥 汤 涛 , , ,
(. 1 上海理工大学光电信息与计算机工程学院 , 上海
2 中 国 水产 科 学 研究 院 渔 业 机 械仪 器 研 究 所 , 海 . 上
209 ; 003
20 9 ) 0 0 2
摘 要 :针对嵌 入式 智能仪 器设计 中触摸 屏校 准过 程 中的 准确 性 和稳 定 性 问题 , 设计 了一种 可以
Y ANG i a ”,CHEN u 。 Ha r n J n ,M I AO Le 。 i ,WANG n xin ,TANG o Pe g a g。 Ta 。
触摸屏设计方案
触摸屏设计方案1. 引言触摸屏作为一种用户界面交互方式,已经在电子设备领域中得到广泛应用。
它可以取代物理按键,提供更直观、便捷的操控方式。
本文将介绍一个触摸屏设计方案,包括设计目标、硬件选型、软件开发以及测试计划。
2. 设计目标在设计触摸屏前,首先需要明确设计目标。
以下是本设计方案的目标:•实现高精度触摸控制:触摸屏应该有足够的分辨率和灵敏度,以实现精准的触摸控制。
•支持多点触控:触摸屏应该支持多点触控,以实现更复杂的手势操作。
•高可靠性和稳定性:触摸屏应该具备高可靠性和稳定性,能够在长时间使用中保持正常工作。
•低功耗:触摸屏应该尽可能降低功耗,延长电池续航时间。
•符合人体工程学设计:触摸屏的外形和尺寸应该符合人体工程学的要求,使操作更舒适。
3. 硬件选型选择适合的硬件是设计触摸屏的重要一步。
下面是本设计方案的硬件选型:3.1 触摸屏芯片触摸屏芯片是触摸屏的核心组件,负责将触摸信号转换为数字信号输出。
在选型触摸屏芯片时,需要考虑以下因素:•分辨率:选择具备高分辨率的触摸屏芯片,以获得更准确的触摸控制。
•灵敏度:选择灵敏度高的触摸屏芯片,以提高触摸的响应速度。
•接口类型:触摸屏芯片应支持常用接口类型,比如I2C或SPI,在连接主控芯片时更加方便。
•抗干扰能力:触摸屏芯片应具备较好的抗干扰能力,以减少外部干扰对触摸控制的影响。
3.2 显示屏触摸屏一般与显示屏结合使用,形成一个完整的显示控制系统。
在选型显示屏时,需要考虑以下因素:•分辨率:选择与触摸屏芯片匹配的显示屏,以保证触摸和显示的一致性。
•尺寸和比例:根据应用场景和终端设备的尺寸要求选择合适的显示屏尺寸和比例。
•显示技术:根据应用需求选择合适的显示技术,比如LCD、OLED等。
3.3 控制器控制器是触摸屏与主控芯片之间的桥梁,负责将触摸信号传输给主控芯片,并接收主控芯片发送的指令。
在选型控制器时,需要考虑以下因素:•接口类型:选择与主控芯片兼容的控制器,以确保信号传输的稳定性。
[arm]嵌入式系统计算器设计
嵌入式系统设计报告题目:触摸式计算器设计姓名:姜涛学号:x05610117班级:05电子(11)班指导老师:沈军民一、课程任务本电子系统的功能是借助ARM 7教学实验箱,使用S3C44B0三星处理器能及触摸屏及LCD显示屏等硬件编写程序来实现计算器的设计。
实验要求:1、要用触摸屏来实现2、能够具有触摸按键选择功能,并且具有显示数字功能3、可以实现四则运算功能二、软件实现流程图三、主程序:#include "44b.h"#include"uhal.h"#include "option.h"#include"def.h"#include "tchScr.h"#include"myuart.h"#include "tchScr.h"#include "maro.h"#pragma import(__use_no_semihosting_swi) // ensure no functions that use semihostingextern U32 LCDBuffer[240][320];U32 jcolor;int number =0;//记录数字int number1=0;char signal;int main(void){int i,j,k;int m,n;ARMTargetInit(); //开发版初始化LCD_Init(); //LCD初始化/* for (i=0;i<9;i++){ switch (i){ case 0: jcolor=0x00000000; //RGB均为0 黑色break;case 1: jcolor=0x000000e0; //R 红色break;case 2: jcolor=0x0000d0e0; //R and G 橙色break;case 3: jcolor=0x0000e0e0; //R and G 黄break;case 4: jcolor=0x0000e000; //G 绿色break;case 5: jcolor=0x00e0e000; //G B 青色break;case 6: jcolor=0x00e00000; //B 蓝色break;case 7: jcolor=0x00e000e0; //R and B 紫色break;case 8: jcolor=0x00e0e0e0; //RGB 白色break;}*/jsqInit();getNum(235,7,0);LCD_Refresh() ;while(1){TchScr_Test();Delay(1000);}return 0;}getNum(int x,int y,int num){int i,j;for(i=x;i<=x+8;i++)for(j=y;j<=y+14;j++){LCDBuffer[j][i]=0x00000000;switch(num){case 0:if(i==x||i==x+8) LCDBuffer[j][i]=0x0000e000;if(j==y||j==y+14) LCDBuffer[j][i]=0x0000e000;break;case 1:if(i==x+8) LCDBuffer[j][i]=0x0000e000;break;case 2:if(j==y||j==y+7||j==y+14) LCDBuffer[j][i]=0x0000e000;if((i==x&&j>=y+7)||(i==x+8&&j<=y+7))LCDBuffer[j][i]=0x0000e000;break;case 3:if(j==y||j==y+7||j==y+14) LCDBuffer[j][i]=0x0000e000;if(i==x+8) LCDBuffer[j][i]=0x0000e000;break;case 4: if(j==y+7) LCDBuffer[j][i]=0x0000e000;if(i==x&&j<=y+7) LCDBuffer[j][i]=0x0000e000;if(i==x+8) LCDBuffer[j][i]=0x0000e000;break;case 5:if(j==y||j==y+7||j==y+14) LCDBuffer[j][i]=0x0000e000;if((i==x&&j<=y+7)||(i==x+8&&j>=y+7))LCDBuffer[j][i]=0x0000e000;break;case 6:if(j==y||j==y+7||j==y+14)LCDBuffer[j][i]=0x0000e000;if(i==x||(i==x+8&&j>=y+7))LCDBuffer[j][i]=0x0000e000;break;case 7:if(i==x+8) LCDBuffer[j][i]=0x0000e000;if(j==y) LCDBuffer[j][i]=0x0000e000;break;case 8:if(j==y||j==y+7||j==y+14) LCDBuffer[j][i]=0x0000e000;if(i==x||i==x+8) LCDBuffer[j][i]=0x0000e000;break;case 9:if(j==y||j==y+7||j==y+14) LCDBuffer[j][i]=0x0000e000;if((i==x&&j<=y+7)||i==x+8)LCDBuffer[j][i]=0x0000e000;break;}}}getOp(){int i,j;for(i=235;i<=243;i++)for(j=7;j<21;j++){switch(signal){case '+':if(j==14||i==239) LCDBuffer[j][i]=0x00e00000;break;case '-':if(j==14) LCDBuffer[j][i]=0x00e00000;break;case'*':if(j+i==245||j-i==221)LCDBuffer[j][i]=0x00e00000;break;case '/':if(j-i==221)LCDBuffer[j][i]=0x00e00000;break;}}}jsqInit(){int k,i,j;for (k=0;k<260;k++)for (j=i*32;j<i*32+32;j++){LCDBuffer[2][k+10]= 0x00e00000;LCDBuffer[42][k+10]= 0x00e00000;LCDBuffer[215][105]= 0x00e00000;//'.'LCDBuffer[107][235]= 0x00e00000;//'/'LCDBuffer[117][235]= 0x00e00000;//'/'}for (k=0;k<10;k++)for (j=i*32;j<i*32+32;j++){LCDBuffer[57][k+100]= 0x00e00000;//‘2’的位置 LCDBuffer[67][k+100]= 0x00e00000;LCDBuffer[77][k+100]= 0x00e00000;LCDBuffer[57][k+165]= 0x00e00000;//‘3’的位置 LCDBuffer[67][k+165]= 0x00e00000;LCDBuffer[77][k+165]= 0x00e00000;LCDBuffer[112][k+35]= 0x00e00000;//‘4’的位置LCDBuffer[102][k+100]= 0x00e00000;//‘5’的位置 LCDBuffer[112][k+100]= 0x00e00000;LCDBuffer[122][k+100]= 0x00e00000;LCDBuffer[102][k+165]= 0x00e00000;//‘6’的位置 LCDBuffer[112][k+165]= 0x00e00000;LCDBuffer[122][k+165]= 0x00e00000;LCDBuffer[147][k+35]= 0x00e00000;//‘7’的位置LCDBuffer[147][k+100]= 0x00e00000;//‘8’的位置 LCDBuffer[157][k+100]= 0x00e00000;LCDBuffer[167][k+100]= 0x00e00000;LCDBuffer[147][k+165]= 0x00e00000;//‘9’的位置 LCDBuffer[157][k+165]= 0x00e00000;LCDBuffer[167][k+165]= 0x00e00000;LCDBuffer[192][k+35]= 0x00e00000;//‘0’的位置 LCDBuffer[212][k+35]= 0x00e00000;LCDBuffer[157][k+230]= 0x00e00000;//‘-’的位置LCDBuffer[202][k+165]= 0x00e00000;//‘+’的位置LCDBuffer[200][k+230]= 0x00e00000;//‘=’的位置 LCDBuffer[204][k+230]= 0x00e00000;LCDBuffer[112][k+230]= 0x00e00000;//'/'}for (k=0;k<60;k++)for (j=i*32;j<i*32+32;j++){LCDBuffer[47][k+10]= 0x00e00000;LCDBuffer[87][k+10]= 0x00e00000;LCDBuffer[47][k+75]= 0x00e00000;LCDBuffer[87][k+75]= 0x00e00000;LCDBuffer[47][k+140]= 0x00e00000;LCDBuffer[87][k+140]= 0x00e00000;LCDBuffer[47][k+205]= 0x00e00000;LCDBuffer[87][k+205]= 0x00e00000;LCDBuffer[92][k+10]= 0x00e00000; LCDBuffer[132][k+10]= 0x00e00000;LCDBuffer[92][k+75]= 0x00e00000; LCDBuffer[132][k+75]= 0x00e00000;LCDBuffer[92][k+140]= 0x00e00000; LCDBuffer[132][k+140]= 0x00e00000;LCDBuffer[92][k+205]= 0x00e00000; LCDBuffer[132][k+205]= 0x00e00000;LCDBuffer[137][k+10]= 0x00e00000; LCDBuffer[177][k+10]= 0x00e00000;LCDBuffer[137][k+75]= 0x00e00000; LCDBuffer[177][k+75]= 0x00e00000;LCDBuffer[137][k+140]= 0x00e00000; LCDBuffer[177][k+140]= 0x00e00000;LCDBuffer[137][k+205]= 0x00e00000; LCDBuffer[177][k+205]= 0x00e00000;LCDBuffer[182][k+10]= 0x00e00000; LCDBuffer[222][k+10]= 0x00e00000;LCDBuffer[182][k+75]= 0x00e00000; LCDBuffer[222][k+75]= 0x00e00000;LCDBuffer[182][k+140]= 0x00e00000; LCDBuffer[222][k+140]= 0x00e00000;LCDBuffer[182][k+205]= 0x00e00000; LCDBuffer[222][k+205]= 0x00e00000;}jcolor=0x00e00000;for (i=0;i<40;i++){if (i==80||i==160)jcolor<<=8;for (j=288;j<320;j++){LCDBuffer[i+2][10]=0x00e00000; LCDBuffer[i+2][270]=0x00e00000;LCDBuffer[i+47][10]=0x00e00000;LCDBuffer[i+47][70]=0x00e00000; LCDBuffer[i+47][75]=0x00e00000; LCDBuffer[i+47][135]=0x00e00000; LCDBuffer[i+47][140]=0x00e00000; LCDBuffer[i+47][200]=0x00e00000; LCDBuffer[i+47][205]=0x00e00000; LCDBuffer[i+47][265]=0x00e00000;LCDBuffer[i+92][10]=0x00e00000; LCDBuffer[i+92][70]=0x00e00000; LCDBuffer[i+92][75]=0x00e00000; LCDBuffer[i+92][135]=0x00e00000; LCDBuffer[i+92][140]=0x00e00000; LCDBuffer[i+92][200]=0x00e00000; LCDBuffer[i+92][205]=0x00e00000; LCDBuffer[i+92][265]=0x00e00000;LCDBuffer[i+137][10]=0x00e00000;LCDBuffer[i+137][70]=0x00e00000;LCDBuffer[i+137][75]=0x00e00000;LCDBuffer[i+137][135]=0x00e00000;LCDBuffer[i+137][140]=0x00e00000;LCDBuffer[i+137][200]=0x00e00000;LCDBuffer[i+137][205]=0x00e00000;LCDBuffer[i+137][265]=0x00e00000;LCDBuffer[i+182][10]=0x00e00000;LCDBuffer[i+182][70]=0x00e00000;LCDBuffer[i+182][75]=0x00e00000;LCDBuffer[i+182][135]=0x00e00000;LCDBuffer[i+182][140]=0x00e00000;LCDBuffer[i+182][200]=0x00e00000;LCDBuffer[i+182][205]=0x00e00000;LCDBuffer[i+182][265]=0x00e00000;}}jcolor=0x00e00000;for (i=0;i<10;i++){if (i==80||i==160)jcolor<<=8;for (j=288;j<320;j++){LCDBuffer[i+67][100]=0x00e00000;// ‘2’ LCDBuffer[i+57][110]=0x00e00000;LCDBuffer[i+102][35]=0x00e00000;// ‘4’LCDBuffer[i+102][100]=0x00e00000;// ‘5’LCDBuffer[i+112][110]=0x00e00000;LCDBuffer[i+112][175]=0x00e00000;// ‘6’LCDBuffer[i+147][165]=0x00e00000; // ‘9’LCDBuffer[i+197][170]=0x00e00000; // ‘+’}}jcolor=0x00e00000;for (i=0;i<20;i++){if (i==80||i==160)jcolor<<=8;for (j=288;j<320;j++){LCDBuffer[i+62][40]=0x00e00000;//‘1’LCDBuffer[i+57][175]=0x00e00000;//‘3’LCDBuffer[i+102][40]=0x00e00000;//‘4’LCDBuffer[i+102][165]=0x00e00000;//‘6’LCDBuffer[i+147][45]=0x00e00000;//‘7’LCDBuffer[i+147][100]=0x00e00000;//‘8’ LCDBuffer[i+147][110]=0x00e00000;LCDBuffer[i+147][175]=0x00e00000;//‘9’LCDBuffer[i+192][35]=0x00e00000;//‘0’ LCDBuffer[i+192][45]=0x00e00000;}}//return;// }}tchNum(int x,int y){int i;int x1,y1;x1=(x-5)/65;y1=(y-42)/45;if(number<99999999||(x1==1&&y1==3)||(x1==2&&y1==3)||x1==3){switch(x1){case 0:switch(y1){case 0:number=number*10+1;return;case 1:number=number*10+4;return;case 2:number=number*10+7;return;case 3:number=number*10;return;}case 1:switch(y1){case 0:number=number*10+2;return;case 1:number=number*10+5;return;case 2:number=number*10+8;return;case 3:signal='*';clear();getOp();number1=number;number=0;return;}case 2:switch(y1){case 0:number=number*10+3;return;case 1:number=number*10+6;return;case 2:number=number*10+9;return;case 3:signal='+';clear();getOp();number1=number;number=0;return;}case 3:switch(y1){case 0:number=0;number1=0;clear();getNum(235,7,0);return;case 1:signal='/';clear();getOp();number1=number;number=0;return;case 2:signal='-';clear();getOp(); number1=number;number=0;return;case 3:operation();return;}}}}showNum(){//tchNum();int ws=1;int n;n=number;Uart_Printf("$$$$$$$$number=%d",n);Uart_Printf("$$$$$$$$number=%d",number);if(number<0) {isFu();n=-n;}while(n!=0||n/10!=0){switch(ws){case 1:getNum(235,7,n%10);break;case 2:getNum(220,7,n%10);break;case 3:getNum(205,7,n%10);break;case 4:getNum(190,7,n%10);break;case 5:getNum(175,7,n%10);break;case 6:getNum(160,7,n%10);break;case 7:getNum(145,7,n%10);break;case 8:getNum(130,7,n%10);break;case 9:getNum(115,7,n%10);break;}ws++;n=n/10;}}clear(){int i,j;for(i=115;i<=235;i=i+15)getNum(i,7,10);for(i=100;i<=108;i++)for(j=7;j<21;j++){if(j==14) LCDBuffer[j][i]=0x00e0e0e0;break;}}operation(){switch(signal){case '+': number = number+number1;clear();break;case '-':number = number1-number;clear();break;case '*':number = number*number1;clear();break;case '/':number = number1/number;clear();break;}}isFu(){int i,j;for(i=100;i<=108;i++)for(j=7;j<21;j++){if(j==14) LCDBuffer[j][i]=0x00e0e0e0;break;}}四、实验结果显示五、实验心得1、在做计算器时,第一步关键是要将触摸屏校准,使用触摸屏实验程序,通过超级终端将坐标打印出来,从而去调整TchScr_Xmax, TchScr_Xmin, TchScr_Ymax, TchScr_Ymin四个坐标值,使得触摸屏与LCD显示屏能够正确的对应2、在坐标对应的过程中,首先要确定实际触摸屏的X、Y坐标方向,以及程序中的X、Y坐标方向是不是已经和实际坐标对应起来,否则容易出现后面按键时出现按键错位。
ARM嵌入式系统中触摸屏的中断控制方法
2 2 中 断 与 中 断 服 务 程序 .
中 断 的硬 件 逻辑 将 检 测 到 的 中 断 , 以某 种 方 式 指 向 中 断 服 务 程 序 的 地 址 , 地 址 在 头 文 件 中以 宏 定 义 的 形 式 出 该 现 。用 户 在 自己 的程 序 中 , 中断 服 务 程 序 的 地址 赋 给 该 将 指 针 , 而将 中 断 与 中 断 服 务 程 序联 系起 来 。 从 为 了方 便 使 用 高 级 语 言 编 写 异 常 处 理 函数 , ARM
常处理机制 。
备 越来 越 多 , 而外 围设 备 与处 理 器 之 间 多采 用 中 断 方 式 进
行通信 , 即使 在 没有 操 作 系统 的 情 况 下 , 常 需 要 对 多 个 也 外 围设 备 的 中断 处 理 例 程 进 行 动 态 加 载 , 而实 现 对 多个 从
外 围 设 备 的 集 中 动 态 管 理 。 同 时 , 断 功 能 可 以 解 决 中
译 器 对 异 常处 理 函数 作 了 特 定 的 扩 展 , 要 使 用 关 键 字 只
一
¥ C 4 0 触 摸屏 的 外 接 电 路 主 要 是 控 制 上 下 两 层 3 21A 导电层 的通 断 情 况 以及 取 电压 , 电压 之 后 还 需 要 将 这 个 取 模 拟 量 转 换 成 数 字 量 , 部 分 _ 作 主 要 是 靠 ¥ C2 1 A 芯 这 T 3 40
复 的需 要 。
2 A M 嵌 入 式 操 作 系统 中断处 理 方 法 R
I NTP ND( tru tp n igrgse) 中断 挂 起 寄存 器 ; i er p e dn e i r , n t
基于I 2C的嵌入式多点触摸屏幕驱动设计
电 容 触 摸 屏 。本 文 通 过 对 以 C p e s7 5 y r s 9 8为 代 表 的 IC 总线 接 口电 容 式 多 点 触 摸 屏 的研 究 , 计 了 针 对 L n x操 设 iu 作 系 统 的多 点 触 摸 的 屏 幕 驱 动 , 以及 不运 行 操 作 系 统 前 提 下 的单 片机 对 触 摸 屏 的驱 动 , 得 了 良好 的 效 果 。 取
Key wor ds:m ulit uc c e n;¥3C6 o ;I C s;e be e nux;c p ct c ou h s r n t o hs re — 41 x bu m dd d Li a a ian e t c c ee
电体 内形 成 一 个 低 电压 交 流 电场 。 在触 摸 屏 幕 时 , 由于 人
造 成影 响 , 算 屏 幕 沾 有 污 秽 、 埃 或 油 渍 , 就 尘 电容 式 触 摸 屏 依 然 能 准 确 算 出触 摸 位 置 。 与 电 阻 触 摸 屏 相 对 比 , 电容 式
触 摸 屏 就 是 支 持 多 点 触 摸 的人 机 交 互 方 式 , 通 电阻 式 触 普 摸 屏 只 能 进 行 单 一 点 的触 控 。
Embe de u t.o c r n Dr er Bas d on 1C d d M lit u h Sc ee i v e 2
S O,Zh uJ a u hiYa o i l
( olg f e iinI sr me tAn t— lcrnc gn eig,Tini ie st ,Tin i 0 0 2 C l eo cso n tu n dOp o E e to isEn ie r e Pr n a j Unv riy n a jn3 0 7 ,Chn ) ia
嵌入式 qt开发实例 触摸屏
InitWidget();
QTimer::singleShot(500, this, SLOT(SltLoadPhotos()));
}
PhotosView::~PhotosView()
#include <QTimer>
#include <QDir>
PhotosView::PhotosView(QWidget *parent) : QtAnimationWidget(parent)
{
this->SetBackground(QColor("#ffffff"));
编写日期 : 2019
说 明 :
历史纪录 :
<作者> <日期> <版本> <内容>
2019/9/8
*******************************************************************/
QVBoxLayout *verLayout = new QVBoxLayout(this);
verLayout->setContentsMargins(0, 0, 0, 0);
verLayout->setSpacing(0);
verLayout->addWidget(widgetTitle, 1);
#include "photosview.h"
#include "skin.h"
一个典型的嵌入式系统设计和实现[五篇模版]
一个典型的嵌入式系统设计和实现[五篇模版]第一篇:一个典型的嵌入式系统设计和实现关键字:嵌入式系统设计ARM FPGA 多功能车辆总线Multifunction Vehicle Bus在计算机、互联网和通信技术高速发展的同时,嵌入式系统开发技术也取得迅速发展,嵌入式技术应用范围的急剧扩大。
本文介绍了一种基于ARM和FPGA,从软件到硬件完全自主开发多功能车辆总线(Multifunction Vehicle Bus)MVB??B嵌入式系统的设计和实现。
系统设计和实现通常来说,一个嵌入式系统的开发过程如下:1. 确定嵌入式系统的需求;2. 设计系统的体系结构:选择处理器和相关外部设备,操作系统,开发平台以及软硬件的分割和总体系统集成;3. 详细的软硬件设计和RTL代码、软件代码开发;4. 软硬件的联调和集成;5. 系统的测试。
一、步骤1:确定系统的需求:嵌入式系统的典型特征是面向用户、面向产品、面向应用的,市场应用是嵌入式系统开发的导向和前提。
一个嵌入式系统的设计取决于系统的需求。
1、MVB总线简介列车通信网(Train Communication Network,简称TCN)是一个集整列列车内部测控任务和信息处理任务于一体的列车数据通讯的IEC国际标准(IEC-61375-1), 它包括两种总线类型绞线式列车总线(WTB)和多功能车厢总线(MVB)。
TCN在列车控制系统中的地位相当与CAN总线在汽车电子中的地位。
多功能车辆总线MVB是用于在列车上设备之间传送和交换数据的标准通信介质。
附加在总线上的设备可能在功能、大小、性能上互不相同,但是它们都和 MVB总线相连,通过MVB总线来交换信息,形成一个完整的通信网络。
在MVB系统中,根据IEC-61375-1列车通信网标准,MVB总线有如下的一些特点:拓扑结构:MVB总线的结构遵循OSI模式,吸取了ISO的标准。
支持最多4095个设备,由一个中心总线管理器控制。
嵌入式Linux中触摸屏驱动程序的设计
1 引盲 嵌入式Li n u x 是一种开放源码、软实
义的人口 点来进行。 通常, 字符设备驱动程序 能提供如下人口 点: 1为 价入口点。 , 打开设备准备1 0 操作。 / ) l e 2 c os 入口 点。关闭一个设备。 ) e 3 r ad 入口点。从设备上读数据。 ) i e 4 wr t 入口 点。往设备上写数据。 5) o U入口 执行读、写 ic 点。 之外的操作, 实现对设备的控制。 6冲le t 人口 检查设备, c 点。 看数据是否可 读或设备是否可用于写数据。 3. 2 设备的添加和删除 添加设备: 在Li n u x 系统中, 通过调用
T 技 术
SC〔r心 〔 & 下 0 日 工 OG Y 叭 日 I ON 〕 〔 峨 「0 MAT
嵌入式 L I nΒιβλιοθήκη UX中触摸屏驱动程序的设计
4, ) 0003
杨凤年 何文德 黄彩谁 (长沙学院计算机科学与技术系 湖南长沙
摘 要: 简要介绍了L n u x 设备驱动程序的概念、分类、基本工作原理和关键技术, i 以及嵌人式系统中常用的电阻式触摸屏的组成和 工作原理。给出了基于嵌人式L n u x 的触摸屏设备驱动程序的设计和实现方法。 i 关键词:嵌入式系统 L nux 驱动程序 触摸屏 i 中图分类号:T P 3l l . 52 文献标识码: A 文章编号: 1672一 1(20 7)0 (a)一 379 0 6 0135一 02 点处的电压, 从而知道接触点处的坐标。 对触摸屏的控制有专门的芯片, 本文采用 时、多任务的操作系统, 是开发嵌人式产品的 Bu 一 犷 r Bro, n公司生产的触摸屏专用接口 芯片 优秀软件平台, 是在标准Li u 基础上针对嵌 ADS7843。它有两个主要功能: 一、完成电 nx 极 入式系统进行裁减和优化后形成的, 因此它具 电压切换, 二、采集接触点处的电压值, 并进 和纵向导体层之 有Li u 的基本性质。在Li u 系 nx nx 统中, 设备 行A/ D 转换。对电压的横向 驱动程序对用户程序隐藏了 设备的具体细节, 间的切换以及A/ D 转换, 需要先由 微处理器 4 X 或普通1/ 0 口 把设备映射为一个特殊的设备文件, 用户程序 (S3C4 BO )通过510 串行接口 可以像对其他文件一样对设备文件进行操作。 向ADS7843 发送控制字, D 转换完成后, A/ 因此, 对设备文件的操作实质就是对设备的操 微处理器再通过5 0 串行接口 1 或普通1 0 口 / 作。 n u 中的设备可以分为三类:字符设备, 读出 A / D 转换值 。微处理器通过 中断 Li x 块设备和网络设备。其中, 字符设备没有缓冲 (EXINT2 与触摸屏交换数据, ) 触摸屏模块的 区, 以字节为单位顺序处理数据。常见的字符 硬件连接如图1所示。 其中 脚X + , + , 管 Y X 设备有普通打印机、系统的串口、 终端显示 一, 一 Y 与触摸屏连接, PFS、 PF6、 PF7、 S F P 器、 嵌入式设备中的简单按键、 触摸屏、 手写 和EXINTZ与微处理器的 相应管脚连接。
嵌入式开发中的图形界面设计
嵌入式开发中的图形界面设计嵌入式开发是一种在嵌入式系统中进行软件开发的技术和过程,它主要应用于各种电子设备,如智能手机、平板电脑、家电、汽车等。
而图形界面设计是嵌入式系统中不可或缺的一部分,它直接影响着用户对产品的体验和使用效果。
本文将重点介绍嵌入式开发中的图形界面设计,包括设计原则、常用的设计工具以及一些实际应用案例。
一、设计原则在进行嵌入式开发中的图形界面设计时,需要遵循以下几个原则:1.用户友好性:界面设计应简洁明了,方便用户操作,并且要符合用户的使用习惯和心理预期。
2.响应速度:嵌入式系统的资源有限,因此图形界面设计要尽量避免繁重的计算和图形渲染操作,以提高系统的响应速度。
3.美观易读:界面的颜色、字体和排版要合理搭配,使其在视觉上舒适且易于辨识。
4.节约资源:由于嵌入式系统的资源限制,图形界面设计要优化使用内存和存储空间,避免资源浪费。
二、常用的设计工具在进行嵌入式开发中的图形界面设计时,可以选择适合自己的设计工具来辅助完成设计任务。
以下是一些常用的设计工具:1. Adobe Photoshop:用于界面的原型设计和图片编辑处理,它具有强大的图像处理和设计功能。
2. Sketch:是一款专门为界面设计师开发的工具,它支持矢量绘图和界面原型制作。
3. Axure RP:用于界面原型设计和交互设计,它可以帮助设计师创建出具有高度可交互性的原型演示。
4. Balsamiq Mockups:一款简单易用的原型设计工具,旨在帮助设计师快速绘制出界面的线框图。
5. Figma:是一款基于浏览器的多人协作设计工具,它可以帮助设计师在团队合作中进行界面设计和交互设计。
三、实际应用案例以下是一些实际应用中的嵌入式开发图形界面设计案例,它们展示了不同领域的图形界面设计特点和应用场景:1. 智能手机图形界面设计:在智能手机上,图形界面设计需要考虑到用户的视觉习惯和操作方式,设计出便于操作和使用的界面,如主屏幕、应用程序界面和通知栏等。
嵌入式智能家居系统中LCD触摸屏的设计研究
电 路 中 的 S C 4 0的 V 2 V 321 D - D7为 蓝 色 信 号 线 , D 0 V 1~
V 5为 绿 色 信 号 线 , D1 - D2 为 红 色 信 号 线 。 其 余 的 D1 V 8V 3
《 业 控 制 计 算 机 } 0 工 21 1年第 2 4卷第 1 2期
嵌入式智能家居系统中 L C D触摸屏的设计研究
沈 利 迪 ( 台州职 业技 术 学院 , 江 台州 3 8 0 ) 浙 1 0 0
摘 要
L D 触 摸屏 是 人 与 智 能 家居控 制 系统 的 一 个人 机 交 互的 接 口, 智 能 家居 系统 中不 可缺 少的 一部 分 。 以 A M 系列 三 C 是 R 9 星 公 司 的 ¥ C 4 0处理 器 为核 心 , 3 2 1 以嵌入 式 Ln x 作 系统 为 开发 平 台 , iu 操 设计 一 种 智 能 家居控 制 系统 的 L CD触摸 屏 。 关 键 词 : 3 2 1 ,i x L D触摸 屏 ¥ C 4 0 L u ,C n
3 L CD 显 示 屏 设 计
4 在 L C 4 中只 需要 设 置 H P 即可 , 值 9 。 ) CD ON SW 取 5
5 在 L C 5中 , P 2 B 用 于决 定’4 p ) CD ON B P4 L 2 b p视 频 存 储 器
S C2 1 内置 的 L 3 40 CD 液 晶屏 控 制 器 ,具 有 将 显 示 缓 存 中
1在 L D ) C CON1中 , 钟 参 数 C K AL取 值 1 显 示 模 式 时 LV ,
P R N MODE取值 3, F 表 示 所 用 模 块 的类 型 , 个 象 素 的 数 据 T. r 每
触摸屏嵌入式实训报告
一、引言随着科技的不断发展,触摸屏技术在各个领域的应用越来越广泛。
为了提高我们的实践能力,我们参加了为期一个月的触摸屏嵌入式实训。
通过本次实训,我们学习了触摸屏的工作原理、驱动开发以及实际应用,现将实训过程及心得体会总结如下。
一、实训内容1. 触摸屏基础知识实训首先介绍了触摸屏的工作原理、分类、特点等基础知识。
我们了解到,触摸屏按工作原理分为电阻式、电容式、红外式等;按安装方式分为表面安装、嵌入式安装等。
2. 触摸屏驱动开发实训过程中,我们学习了触摸屏的驱动开发。
以Linux操作系统为例,我们掌握了以下内容:(1)硬件平台搭建:包括触摸屏模块、控制器、PCB板等硬件设备的选择与连接。
(2)驱动框架搭建:了解Linux内核中的触摸屏子系统,包括输入子系统、设备树、驱动框架等。
(3)触摸屏驱动编写:通过学习触摸屏硬件手册,我们了解了触摸屏的接口、寄存器、中断等,并编写了触摸屏驱动程序。
3. 触摸屏实际应用实训最后,我们学习了触摸屏在实际项目中的应用。
以一个智能家居项目为例,我们学习了以下内容:(1)需求分析:分析项目需求,确定触摸屏的功能模块。
(2)硬件选型:根据项目需求,选择合适的触摸屏模块和控制器。
(3)软件开发:编写触摸屏驱动程序,实现触摸屏功能。
(4)系统集成:将触摸屏集成到智能家居项目中,实现人机交互。
二、实训收获1. 提高了动手能力:通过实际操作,我们掌握了触摸屏硬件搭建、驱动开发、系统集成等技能。
2. 深化理论知识:实训过程中,我们对触摸屏基础知识、驱动开发、实际应用等方面有了更深入的了解。
3. 培养团队协作能力:实训期间,我们分组进行项目开发,培养了团队协作精神。
4. 增强了创新意识:在实训过程中,我们不断思考、解决问题,提高了创新意识。
三、实训心得1. 理论与实践相结合:本次实训使我深刻认识到,理论知识是实践的基础,实践是检验理论的唯一标准。
只有将理论与实践相结合,才能更好地掌握知识。
构建简易嵌入式LINUX触摸屏系统
晶屏 , 在其表 面附着 同样 大小 的四线 电阻式触 摸屏 , 并 嵌 机和三 个 U R 。 A T 3支 持包 括触 摸式 屏幕 , 字键 盘 以及 高 品质音 质 、 数
(P,F , S I S 和 A 9) C 7图一所示 。
取各种信 息 。
电阻触摸屏是 不怕灰尘 和水汽 ,可 以用 任何物体 来
嵌入 式 Lnx是 一种 可 以进行 裁减 、修 改使 之 能在 触摸 , 以用来 写字 画画 , iu 可 比较适 合工业 控制领 域及办公 嵌入式计 算机 系统上 运行 的操作 系统 , 既继 承 了 It t 室 内有 限人 的使用。缺点是太用力或使用锐器触摸可能划 ne me 上 的无 限的开放源代码 资源 ,又具有嵌 入式操作 系统 的 伤整个触摸屏而导致报废。 特性 。 系统具有较 高 的稳定性 和安全性 、 该 良好 的硬件 支
5 还包 括 2维 画面加 速器 , 过块 拷 贝 , 填 充 , 、 通 块 划
从而确定输入的信息。按照触摸屏的工作原理和传输信
息 的介 质 , 把触 摸屏分 为 五种 , 分别 为 电阻式 、 电容感应 线, 以及位处理提商l 其支持 12x6(G ) 生 能。 0478 A的分辨率。 X
2 1 第 9卷 第 1 ( 0 0年 期 患第 1 1 ) 4期
6 1
构 建简 易嵌人式 L NU I X触摸 屏系统
彩 晓玲 色 ( 头 市超 声仪 器研 究所有 限公 司 , 东汕 头 汕 广
摘
5 54 ) 10 1
要: 触摸屏 因方便灵 活、 节省 空间、 直观 等特 点 , 作为嵌入 式 系统的输入设备越 来越 受各种 终端产 品生厂 商的
青睐。 Ln x操作 系统 因为有 着 源代码公 开、 于裁减 的优点 , 当前嵌入 式 系统 的一大热 门选择。 文在构造硬 件 而 j u 便 是 本
嵌入式开发中的图形用户界面设计
嵌入式开发中的图形用户界面设计一、概述在嵌入式开发领域,图形用户界面(Graphical User Interface,简称GUI)设计是用户与设备交互的重要环节。
良好的GUI设计能够提升用户体验,加强设备的易用性和功能性。
本文将介绍嵌入式开发中的图形用户界面设计的原理、方法和注意事项。
二、图形用户界面的基本原理1. 视觉设计原则图形用户界面的设计要考虑到用户的感知和视觉需求。
界面的颜色、图标、字体等元素需要与设备的功能相匹配,同时也要符合用户的审美和习惯。
清晰简洁的界面设计可以减少用户的学习成本和操作错误。
2. 用户交互原则用户界面的交互应该简单明了,易于理解和操作。
通过合理的交互设计,用户可以方便地输入、输出信息,完成各种功能操作。
界面元素的布局、按钮的设计和触摸反馈等都是需要考虑的重要因素。
3. 多平台兼容性原则在嵌入式开发中,同一个GUI可能需要在不同的平台上运行,比如小尺寸屏幕、大尺寸屏幕等。
因此,应该设计可伸缩和适用于不同分辨率的界面元素,以保持一致的用户体验和操作方式。
三、图形用户界面设计方法1. 了解用户需求在进行GUI设计之前,要充分了解目标用户的需求和使用场景。
通过调研、访谈等方法,获取用户的反馈和建议,确定设计的方向和重点。
2. 建立界面原型使用界面原型工具,可以快速搭建出GUI的草图,包括界面布局、元素样式等。
原型可以帮助开发团队和用户更好地理解设计思路,及时修改和优化。
3. 选择合适的设计工具根据项目需求和团队成员的熟悉程度,选择适合的设计工具。
常用的GUI设计工具有Adobe XD、Sketch、Axure RP等,它们提供了丰富的组件库和交互功能,支持导出设计图和界面规范。
4. 设计布局和元素根据用户需求和设备特点,合理设计界面的布局和元素的样式。
布局应该简洁明了,避免信息过载;元素的样式要统一,保持可读性和识别性。
5. 进行用户测试设计完成后,可以邀请一些目标用户参与测试,收集他们的反馈和建议。
触摸屏控制实验设计报告
触摸屏控制实验设计报告序随着中国工业化的快速发展,对工业自动化控制的要求也在不断提高和完善。
触摸屏作为一种可视化的人机界面,以其体积小、可靠性高的特点逐渐取代传统的按钮控制和仪表控制,成为工业控制中人机界面的主流。
本文分析了触摸屏设备的特点、国外现状和发展趋势,设计了一种基于嵌入式实时操作系统WinCE5.0和ARM9系列AT91SAM9261为核心处理器的大型触摸屏控制器。
考虑到触摸屏设备的功能需求,提出了本课题的设计指标,制定了触摸屏控制器的总体设计方案,具体体现在控制器硬件设计和操作系统移植两个方面。
硬件平台采用模块化、结构化的思想进行设计和实现。
分析了触摸屏控制器中的主要硬件模块,包括处理器核心模块、存储模块、触摸屏模块、键盘模块、以太网模块和USB主从模块,并给出了硬件设计方法和电路实现。
硬件测试环境的建立是为了调试我弟弟的硬件模块。
基于搭建的硬件平台,本文重点研究了嵌入式操作系统WinCE 5.0的移植和BSP的开发。
分析了WinCE 5.0操作系统的架构和移植原理,在了解了三星公司的S3C2410 BSP之后,给出了基于AT91SAM9261的WinCE 5.0 BSP的开发过程。
详细分析了WinCE 5.0 Bootloader的工作原理和体系结构。
根据触摸屏系统的功能需求和硬件资源的分配,设计了触摸屏设备的Bootloader,并给出了具体的开发步骤。
深入研究了OAL的功能和原理,详细给出了OAL开发中的重要功能和主要模块。
针对触摸屏控制器的主要硬件模块,在分析WinCE 5.0中断模型和中断机制的基础上,开发了触摸屏驱动程序、矩阵键盘驱动程序和USB主机驱动程序。
在开发的BSP的基础上,利用WinCE 5.0操作系统定制工具Plarform Builder 对操作系统内核进行定制和编译,并对操作系统的性能进行测试。
测试结果表明,WinCE 5.0操作系统能够成功移植到触摸屏控制器上,能够满足工业现场的实时性要求。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
触摸屏附着在显示器的表面,根据触摸点在显示屏上对应坐标点 的显示内容或图形符号,进行相应的操作。 触摸屏按其工作原理可分为矢量压力传感式、电阻式、电容式、红 外线式和表面声波式5类。在嵌入式系统中常用的是电阻式触摸屏。
电阻触摸屏结构如图5.6.1(c)所示,最上层是一层外表面经 过硬化处理、光滑防刮的塑料层,内表面也涂有一层导电层(ITO 或镍金);基层采用一层玻璃或薄膜,内表面涂有叫作ITO的透明 导电层;在两层导电层之间有许多细小(小于千分之一英寸)的 透明隔离点把它们隔开绝缘。在每个工作面的两条边线上各涂一 条银胶,称为该工作面的一对电极,一端加5V电压,一端加0V, 在工作面的一个方向上形成均匀连续的平行电压分布。当给X方向 的电极对施加一确定的电压,而Y方向电极对不加电压时,在x平 行电压场中,触点处的电压值可以在Y+(或Y—)电极上反映出 来,通过测量Y+电极对地的电压大小,通过A/D转换,便可得知 触点的X坐标值。同理,当给Y电极对施加电压,而X电极对不加电 压时,通过测量X+电极的电压,通过A/D转换便可得知触点的Y 坐标。
此时,一旦有触摸动作将引发触摸屏中断,而转入到Adc or TsS即进行处理。
通过rADCTSC的bit8可以判断触摸笔是按下或者抬起。 在采集之后就可以对数据进行处理,开始的两次采集认为是屏 幕准的数据,分别保存到ts_lefttop_x,ts_lefttop_y,ts_rightbot_x, ts_rightbot_y变量中,它们保存的是屏幕左上角和右下角触摸屏坐 标的x和y值。
当nYPON、YMON、nXPON和XMON输出等待中断状态电平时, 外部晶体管控制器输出低电平,与VDDA_ADC相连的晶体管导通, 中断线路处于上拉状态。当触笔单击触摸屏时,与AIN[7]相连的 XP出现低电平,于是AIN[7]是低电平,内部中断线路出现低电平, 进而引发内部中断。触摸屏XP口需要接一个上拉电阻。
同理也可以得出Y轴的坐标。
图5.6.1 触摸屏坐标识别原理
+ 电阻式触摸屏有四线式和五线式两种。四线式触摸屏的X工作面和Y工
作面分别加在两个导电层上,共有4根引出线:X+、X-,Y+、Y- 分别连到触摸屏的X电极对和Y电极对上。四线电阻屏触摸寿命小于 100万次。 + 五线式触摸屏是四线式触摸屏的改进型。五线式触摸屏把X工作面和Y 工作面都加在玻璃基层的导电涂层上,工作时采用分时加电,即让两 个方向的电压场分时工作在同一工作面上,而外导电层则仅仅用来充 当导体和电压测量电极。五线式触摸屏需要引出5根线。五线电阻屏 的触摸寿命可以达到3500万次。五线电阻屏的ITO层可以做得更薄, 因此透光率和清晰度更高,几乎没有色彩失真。 + 注意:电阻触摸屏的外层复合薄膜采用的是塑胶材料,太用力或使用 锐器触摸可能划伤,获取的触摸屏坐标需要 转换成为I_cn坐标,方法是根据获取的根据LCD左上角(0,0)和 右下角(319,239)的触摸屏坐标(ts_lefttop_x, ts_left-top_y)和 (ts_rightbot_x, ts_rightbot_y)计算得到。 计算公式如下,其中(x,y)为待求点的触摸屏坐标:
图5.6.2 CPU与触摸屏连接图
2.使用触摸屏的配置过程 在S3C2410A构成的嵌入式系统中使用触摸屏,配置过程如下: (1)通过外部晶体管将触摸屏引脚连接到S3C2410A上; (2)选择分开的X/Y位置转换模式或者自动(顺序)X/Y位置转换模 式,来获取X/Y位置; (3)设置触摸屏接口为等待中断模式; (4)如果中断发生,将激活相应的转换过程(X/Y位置分开转换模 式或者X/Y位置自动(顺序)转换模式); (5)得到X/Y位置的正确值以后,返回等待中断模式。
代码如下所示:
表5.6.1 分开的X/Y位置转换模式的转换条件 XP X位置转 换 Y位置转 换 外部电压 XM GND(地) Hi-Z (高阻状 态) YP AIN[5] 外部电 压 YM Hi-Z(高阻状 态)
AIN[7]
GND (地)
(3)自动(顺序)X/Y位置转换模式 当ADCTSC寄存器的AUTO_PST=1和XY_PST=0时进入自动(顺序) X/Y位置转换模式模式。首先写X的位置转换数据到ADCDAT0寄存 器的XPDATA位,然后写Y的位置转换数据到ADCDAT1寄存器的 YPDA_TA位,完成转换后,触摸屏接口产生中断请求(INT_ADC)到 中断控制器。 转换条件与分开的X/Y位置转换模式下的转换条件相同。 (4)等待中断模式 当ADCTSC寄存器的XY_PST=3时,进入等待中断模式模式。在等 待中断模式,等待触笔点下。当触笔点下触摸屏后,它将产生 INT_TC中断。进入等待中断模式的条件如表5.6.2所示。
当手指或笔触摸屏幕时(如图5.6.1(c)所示),两个相互绝 缘的导电层在触摸点处接触,因其中一面导电层(顶层)接通X轴 方向的5V均匀电压场(如图5.6.1(a)所示),使得检测层(底 层)的电压由零变为非零,控制器检测到这个接通后,进行A/D 转换,并将得到的电压值与5V相比,即可得触摸点的X轴坐标为 (原点在靠近接地点的那端):
3.触摸屏的接口模式 S3C2410A与触摸屏接口有5种接口模式。 (1)普通的A/D转换模式 在普通的A/D转换模式,AUTO_PST=0,XY_PST=0。这个模式可 以在初始化设置时,读ADCDAT0 (ADC 数据寄存器0)的XPDATA数值, 通过设置ADCCON和ADCTSC完成。 (2)分开的X/Y位置转换模式 分开的X/Y位置转换模式由X位置模式和Y位置模式两种转换模式 组成。分开的X/Y位置转换模式下的转换条件如表5.6.1所列。X位 置模式(ADCTSC寄存器的AUTO_PST=0和XY_PST=1)写X的位置 转换数据到ADCDAT0寄存器的XPDATA位,完成转换后,触摸屏接 口产生中断请求(INT_ADC)到中断控制器;Y位置模式(ADCTSC 寄存器的AUTO_PST=0和XY_PST=2)写Y的位置转换数据到 ADCDAT1寄存器的YPDA_TA位,,完成转换后,触摸屏接口产生中 断请求(INT_ADC)到中断控制器。
图5.6.3 触摸屏坐标转换控制电路
5.触摸屏控制程序例 一个触摸屏控制程序例如下所示: 在Ts_Sep函数中进行触摸屏初始化、启动触摸屏测试等动作。
触摸屏初始化主要是对rADCCON和rADCTSC两个寄存器进行配置。 并设置为等待中断模式。
初始化完毕后就设置触摸屏中断服务函数Adc_or_TsSep)并启动 触摸屏中断,然后在主程序中等待。
1.S3C2410A与触摸屏的接口电路结构 S3C2410A内部具有触摸屏接口,触摸屏接口包含1个外部晶体管 控制逻辑和1个带有中断产生逻辑的ADC接口逻辑,它使用控制信 号nYPON、YMON、nXPON和XMON控制并选择触摸屏面板,使用 模拟信号AIN[7]和AIN[5]分别连接X方向和Y方向的外部晶体管,与 触摸屏的接口电路如图5.6.2所示。 在图5.20中,XP(X+)与S3C2410A的A[7]口相连,YP(Y+)与 S3C2410A的A[5]口相连。需要注意的是,外部电压源应当是3.3V, 外部晶体管的内部电阻应该小于5Ω,当S3C2410A的nYPON、 YMON、nXPON和XMON输出不同的电平时,外部晶体管的导通状 况不同,分别连接X的位置(通过A[7])和丫的位置(通过A[5]) 输入。
ADS7843是TI公司生产的4线式电阻触摸屏转换接口芯片,是一 款具有同步串行接口的12位取样模数转换器,在125KHz吞吐速率 和2.7V电压下的功耗为750µW,而在关闭模式下的功耗仅为 0.5µW,ADS7843采用SSOP-16引脚封装形式,温度范围是-40~ +85℃。 ADS7843具有两个辅助输入(IN3和IN4)可设置为8位或12位模 式,X+、X-、Y+、Y-为转换器模拟输入端,DCLK为外部时钟输入 引脚端,/CS片选端,其外部连接电路如图2-44所示。电路的工作 电压VCC为2.7~5.25V,基准电压VREF为1V~+VCC ,基准电压确 定了转换器的输入范围。输出数据中每个数字位代表的模拟电压 等于基准电压除以4096。平均基准输入电流由ADS7843的转换率 来确定。 采用ADS7843专用芯片对触摸屏进行控制,处理是否有笔或手 指按下触摸屏,并在按下时分别给两组电极通电,然后将其对应 位置的模拟电压信号经过A/D转换后送到微处理器。
图2-44 ADS7843触摸屏控制接口
ADS7843送到微控制器的X与Y值仅是对当前触摸点的电压值的 A/D转换值,这个值的大小不但与触摸屏的分辨率有关,而且也 与触摸屏与LCD贴合的情况有关。一般来说,LCD分辨率与触摸屏 的分辨率不一样,坐标也不一样。因此,要想使LCD坐标与触摸 屏坐标一致,还需要在程序中进行转换。假设LCD分辨率是 320×240,坐标原点在左上角;触摸屏分辨率是900×900,坐标 原点在左上角,则转换公式如下: xLCD=[320×(x-x2)/(x1-x2)]; yLCD=[240×(y-y2)/(y1-y2)]。 如果坐标原点不一致,比如LCD坐标原点在右下角,而触摸屏原 点在左上角,则转换公式如下: xLCD=320-[320×(x-x2)/(x1-x2)]; yLCD=240-[240×(y-y2)/(y1-y2)]。
表5.6.2 等待中断模式下的转换条件 模式 等待中断 模式 XP 上拉 XM 高阻 YP AIN[5] YM GND
(5)待机模式(Standby Mode) 当ADCCON寄存器的STDBM位设置为1时,进入待机模式。进入 待机模式模式后, A/D转换停止,ADCDAT0的XPDATA和ADCDAT1 的YPDATA保持上次转换的数值。 与ADC和触摸屏相关的需要设置的寄存器有3个:ADCCON、 ADCTSC和ADCDLY,另外还有2个只读的寄存器:ADCDAT0和 ADCDAT1。有关这些寄存器的位描述请参阅“5.2.2 S3C2410A的 A/D转换器”一节。 4.S3C2410A的触摸屏坐标转换控制电路 S3C2410A的触摸屏坐标转换控制电路如图5.6.3所示。在图5.6.3 中,AIN[7]与触摸屏的X+连接,AIN[5]与触摸屏的Y+连接。图5.6.3 中使用了4个MOSFET, nYPON、YMON、nXPON和XMON等控制信 号分别与4个MOSFET相连。