触摸屏控制实验.doc

上传人:壹****1 文档编号:561121538 上传时间:2022-10-20 格式:DOC 页数:7 大小:345KB
返回 下载 相关 举报
触摸屏控制实验.doc_第1页
第1页 / 共7页
触摸屏控制实验.doc_第2页
第2页 / 共7页
触摸屏控制实验.doc_第3页
第3页 / 共7页
触摸屏控制实验.doc_第4页
第4页 / 共7页
触摸屏控制实验.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《触摸屏控制实验.doc》由会员分享,可在线阅读,更多相关《触摸屏控制实验.doc(7页珍藏版)》请在金锄头文库上搜索。

1、触摸屏控制实验李国彬(60802222025)一.实验目的q 了解触摸屏基本概念与原理q 编程实现并掌握对触摸屏的控制二、实验内容q 编程实现触摸屏坐标到LCD坐标的校准q 编程实现触摸屏坐标采集以及LCD坐标的计算三、实验设备q JXARM9-2410教学实验箱q ADT1000仿真器和ADT IDE集成开发环境 q 串口连接线四、触摸屏的基本原理q 触摸屏按其工作原理的不同分为: 表面声波屏 电容屏 电阻屏 红外屏五、电阻技术触摸屏电阻触摸屏是与显示器表面非常配合的电阻薄膜屏, 这是一种多层复合薄膜,它以一层玻璃或硬塑料平板作为基层,表面涂有一层透明氧化金属(ITO氧化铟,透明的导电电阻)

2、导电层,上面再盖有一层外表面硬化处理、光滑防擦的塑料层 、内表面也涂有一层ITO涂层 、在他们之间有许多细小的(小于1/1000英寸)的透明隔离点把两层导电层隔开绝缘 六、触摸屏处理流程q 触摸屏控制初始化,选择Separate X/Y位置转换模式或者Auto X/Y位置转换模式;q 设置触摸屏接口到等待中断模式;q 如果中断产生,相应的转换(Separate X/Y位置转换模式或者Auto X/Y位置转换模式)被激活;q 在获取X/Y坐标值后,返回到等待中断模式七、实验步骤:1 打开ADT IDE2 新建工程touching添加相应文件3 添加主函数:/* 包含文件 */#include d

3、ef.h#include 2410lib.h#include option.h#include 2410addr.h#include interrupt.h#include #include 2410addr.h#include 2410lib.h#include Ts_sep.h#include def.h#define LOOP 1#define ADCPRS 39#define TS_JUSTIFY_LEFTTOP 1#define TS_JUSTIFY_RIGHTBOT 2#define TS_START 3int ts_status = TS_JUSTIFY_LEFTTOP;int

4、ts_lefttop_x, ts_lefttop_y, ts_rightbot_x, ts_rightbot_y;int ts_lcd_x, ts_lcd_y;void Adc_or_TsSep() _attribute_ (interrupt(IRQ);void Adc_or_TsSep(void) int i; U32 Ptx6, Pty6; rINTSUBMSK |= (BIT_SUB_ADC|BIT_SUB_TC); / Mask sub interrupt (ADC and TC) / TC(Touch screen Control) Interrupt if(rADCTSC & 0

5、x100) PRINTF(nStylus Up!n); rADCTSC &= 0xff; / Set stylus down interrupt else PRINTF(nStylus Down!n); / rADCTSC=(08)|(07)|(16)|(15)|(04)|(13)|(02)|(1); / Down,Hi-Z,AIN5,GND,Ext vlt,Pullup Dis,Normal,X-position for(i=0;iLOOP;i+); /delay to set up the next channel for(i=0;i5;i+) rADCCON|=0x1; / Start

6、X-position conversion while(rADCCON & 0x1); / Check if Enable_start is low while(!(0x8000&rADCCON); / Check ECFLG Ptxi=(0x3ff&rADCDAT0); Ptx5=(Ptx0+Ptx1+Ptx2+Ptx3+Ptx4)/5; / rADCTSC=(08)|(07)|(16)|(15)|(04)|(13)|(02)|(2); / Down,GND,Ext vlt,Hi-Z,AIN7,Pullup Dis,Normal,Y-position for(i=0;iLOOP;i+); /

7、delay to set up the next channel for(i=0;i5;i+) rADCCON|=0x1; / Start X-position conversion while(rADCCON & 0x1); / Check if Enable_start is low while(!(0x8000&rADCCON); / Check ECFLG Ptyi=(0x3ff&rADCDAT1); Pty5=(Pty0+Pty1+Pty2+Pty3+Pty4)/5; rADCTSC=(18)|(17)|(16)|(05)|(14)|(03)|(0 (%04d, %04d)n, ts

8、_lefttop_x, ts_lefttop_y); PRINTF( 请触摸屏幕右下角位置n); else if(ts_status = TS_JUSTIFY_RIGHTBOT) ts_rightbot_x = Ptx5; ts_rightbot_y = Pty5; ts_status = TS_START; PRINTF(nRight bottom (319, 239) - (%04d, %04d)n, ts_rightbot_x, ts_rightbot_y); PRINTF(2 请点击触摸屏n); else ts_lcd_x = 320 - (Ptx5 - ts_rightbot_x)

9、* 1.0 / (ts_lefttop_x - ts_rightbot_x) * 320.0 ; ts_lcd_y = (Pty5 - ts_lefttop_y) * 1.0 / (ts_rightbot_y - ts_lefttop_y) * 240.0 ; if(ts_lcd_x 319) ts_lcd_x = 319; if(ts_lcd_x 239) ts_lcd_x = 239; if(ts_lcd_y 0) ts_lcd_x = 0; PRINTF(LCD Position = (%04d, %04d)n, ts_lcd_x, ts_lcd_y); rSUBSRCPND |= BI

10、T_SUB_TC; rINTSUBMSK = (BIT_SUB_TC); / Unmask sub interrupt (TC) ClearPending(BIT_ADC); void Ts_Sep(void) PRINTF(-触摸屏测试-n); PRINTF(1 触摸屏校准n 请触摸屏幕左上角位置n);ts_status = TS_JUSTIFY_LEFTTOP;rADCDLY = (50000); / ADC Start or Interval Delay rADCCON = (114)|(ADCPRS6)|(03)|(02)|(01)|(0); / Enable Prescaler,Pr

11、escaler,AIN7/5 fix,Normal,Disable read start,No operation rADCTSC = (08)|(17)|(16)|(05)|(14)|(03)|(02)|(3); / Down,YM:GND,YP:AIN5,XM:Hi-z,XP:AIN7,XP pullup En,Normal,Waiting for interrupt mode pISR_ADC = (unsigned)Adc_or_TsSep; rINTMSK &=(BIT_ADC); rINTSUBMSK =(BIT_SUB_TC); while(1); rINTSUBMSK |= BIT_SUB_TC; rINTMSK |= BIT_ADC; PRINTF(-触摸屏测试结束-n);/*/ Function name: Main/ Description : JXARM9-2410 触摸屏实验主程序

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号