ATmega16与ads7846触摸屏的连接 - 图文
更新时间:2023-11-23 03:18:02 阅读量: 教育文库 文档下载
- ATMEGA16引脚图推荐度:
- 相关推荐
ATmega16与触摸屏的连接
触摸屏是四线电阻式的,驱动芯片采用了很常见的ADS7846。ADS7846的典型应用电路图如下图所示。
在笔者的应用中,pin7和pin8都直接连接到GND,即不使用辅助输入通道,pin9和pin10连接在一起,即使用了VCC做为ADS7846的模数转换参考电压源。pin11所接的上拉电阻可以不要,但要设置相应的AVR输入端口上拉电阻使能。pin13做为转换结束指示,可以通过判断此脚电平来决定是否可以读出转换数据,也可以简单的使用延时的方法来留够转换时间。pin16、pin15、pin14、pin12做为一个标准的SPI从机接口与mega16芯片相连接。
ADS7846支持8位精度和12位精度,即触摸分辨率可以达到1/256或者1/4096,根据不同分辨率的LCD来选择相应的触摸精度。比如128×64的LCD可以采用8位精度,320×240的LCD需要采用12位精度。采集后的数据分两次读出,8位精度的先得到前7位再得到最后一位,12位精度的先得到前7位再得到后5位。 程序段如下:(编译器使用ICCAVR)
/********************************************************************
SPI Interface file crystal: 8MHz
write by han, hanembed@126.com, http://embed.hanyuer.net
********************************************************************/
/******************************************************************** touch data read file crystal: 8MHz
write by han, hanembed@126.com, http://embed.hanyuer.net
********************************************************************/
经过简单调试,笔者编写了一个PC端软件以显示在触摸屏上滑过的字符,一块8×5cm的触摸屏上约可以写四行汉字,如下图所示:
图中的若干零散点是由于硬件并没有做抗干扰滤波,mcu程序中也没有对接触点进行重复读取所致,一般可使用读取两次,重复数据为正确数据的方法来排除干扰。
#include
unsigned int positionx; unsigned int positiony; unsigned char flgtouch;
/*========================Extern Interrupt==========================*/ #pragma interrupt_handler keydown: iv_INT1
/*===================================================================
// function: initialize all used port // in: void // retun: void // date: 2005/8/10
===================================================================*/
void portini(void) {
spiinit(); endspi();
DDRD &= ~(1 << PD3); // port input
PORTD |= (1 << PD3); // pull-up resistance //MCUCR |= 1< /*=================================================================== // function: small delay // in: unsigned char delay times // retun: void // date: 2005/8/10 ===================================================================*/ void smalldelay(unsigned char tmp) { unsigned char i; while(tmp--) { for(i = 0; i < 250; i++) { NOP(); } } } /*=================================================================== // function: read touch data // in: void // retun: void // date: 2005/8/10 ===================================================================*/ void keydown(void) { unsigned char tmp; // temporary data smalldelay(20); // delay wait tranquilization startspi(); // begin data transfer smalldelay(1); sendspi(0x90); // difference conversion, x data smalldelay(2); // delay wait x conversion sendspi(0x00); tmp = readspi(); // first 7 bit x data if(tmp == 0x7F) // error read return; positionx = tmp; positionx <<= 5; // left shift 5 bit sendspi(0xD0); // difference conversion, y data tmp = readspi(); // last 5 bit x data tmp >>= 3; // right shift 3 bit positionx += tmp; // real x data smalldelay(2); // delay wait y conversion sendspi(0x00); tmp = readspi(); // first 7 bit y data positiony = tmp; positiony <<= 5; sendspi(0x00); // only for read last y data tmp = readspi(); tmp >>= 3; positiony += tmp; // real y data endspi(); } #include /*=================================================================== // function: initialize spi interface // in: void // retun: void // date: 2005/8/10 ===================================================================*/ void spiinit(void) { DDRB = (1 << PB4) | (1 << PB5) | (1 << PB7); // MOSI and SCK port out PORTB |= (1 << PB4); SPCR = (1 << SPE) | (1 << MSTR) | (0 << SPR0); // enable spi,master mode, MCLK/4,spi 0 mode } /*=================================================================== // function: send data from spi interface // in: unsigned char real data // retun: void // date: 2005/8/10 ===================================================================*/ void sendspi(unsigned char data) { SPDR = data; // send data while( !(SPSR & (1 << SPIF)) ); // wait data transfer end } /*=================================================================== // function: receive data form spi interface
正在阅读:
ATmega16与ads7846触摸屏的连接 - 图文11-23
第八章工业成本的核算04-21
年度总结05-25
金融学学习心得体会(精选五篇)08-23
口腔组织病理学 选择题05-11
硝苯地平缓释片、马来酸依那普利片和富马酸比索洛尔片对Ⅰ级高血压患者24 h血压的影响-论文05-18
六年级 下册 总复习 汉语拼音(好)06-25
中小学校舍安全建设档案管理办法解读05-13
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 触摸屏
- ATmega16
- 连接
- ads7846
- 图文
- 人教版七年级英语下册Unit 9 单元测试
- 《分数的初步认识》教学设计
- 港珠澳大桥钢箱梁板单元制造技术研究及实施(1106完全版) - 图文
- 儿童视力发育
- 齐心协力,共抓教育
- (新课标)高中历史 第三单元 北魏孝文帝改革 3.2 北魏孝文帝的改革措施教案 新人教版选修1
- 英语语法知识难点解读2
- 化工企业安全生产知识
- 高中化学必修一 - 方程式总结
- 开凿水源井施工组织设计
- 气相色谱法的确认
- 18春学期《市场营销》在线作业1
- 生理学 第七章能量代谢与体温练习题及答案
- 口 腔 门 诊 规 章 制 度
- 语文人教版四年级下册《和我们一样享受春天》习题
- 大学生安全自护自救知识调查问卷
- 表冷器制造工艺标准
- 计算机系统结构第二章第一部分
- Epson4880c打印机设置说明
- 变化线段和最大、差最小问题