打印
[AVR单片机]

发贴庆贺,AVR直连 触摸屏成功

[复制链接]
26618|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
highend|  楼主 | 2007-1-18 17:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

由于系统中需要检测电流,所以使用了mega16,其实,任何一个具备AD转换器(和EEPROM)的AVR都可以实现。
使用mega16的ADC0-3直接连接4线触摸屏。
0  -   X+
2  -   X-
1  -   Y+
3  -   Y-

将x+  x-设置成低电平。
Y+设置成输入加上拉。
Y-设置成单纯输入无上拉。

没有触摸时,Y-当然是高电平。
如果有触摸,Y-将变成低电平
----可以设置成中断哦。
----为啥这样?嘿嘿,自己去计算一下吧。


一旦有触摸,Y+设置成高电平,Y-设置成低电平。
X+单纯输入,不必理会,X-连接ADC测量!!得到Y坐标。

X+设置成高电平,X-设置成低电平。
Y+单纯输入,不必理会,Y-连接ADC测量!!得到X坐标。


测量时,ADC的REF设置成Vcc。
AVR有10bit的ADC,数值上,可达到1023。所以,对于中小尺寸的液晶显示器,或者较粗略的触摸要求,足够了。
mega系列有乘法器,可以快速计算曲线,校准触摸(屏幕电阻不均匀,边缘引线电阻等)。
QVGA点阵320x240远小于1024,所以,AVR直连触摸屏,经校准,已相当精确。
使用EEPROM存储校准系数,蛮好!


还有最后一点,AVR系列抗静电能力还可以,哈哈哈。
为了提高抗静电能力,最廉价的办法,大概是每个引脚连接一个1nF贴片电容,不过,会降低触摸速度。
现在,专门静电保护的小芯片也很多了,嗯,暂时没兴趣。





测试通过的例程(仅采样,不含校准):
        DDRA = 0xfa;        //prepare test.
        PORTA = 0xf1;
        for(j=0;j<10;j++);
        if(!(PINA.2))       //or Interrupt
        {
            PORTA = 0xf2;
            DDRA = 0xfa;
            for(j=0;j<20;j++);
            mTouchY = read_adc(0);

            PORTA = 0xf1;
            DDRA = 0xf5;
            for(j=0;j<20;j++);
            mTouchX = read_adc(1);
        }



unsigned char read_adc(unsigned char adc_input)
{
ADMUX=adc_input|0x60;
ADCSRA|=0x40;
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCH;
}









相关帖子

沙发
xwj| | 2007-1-18 17:11 | 只看该作者

呵呵,早就这样做了,两个IO加2个ADC口即可

不过,ADC输入口做IO时不能引脚中断,只能用定时器去激活查询

使用特权

评论回复
板凳
highend|  楼主 | 2007-1-18 18:13 | 只看该作者

当然就可以设置中断!!!


呵呵。

具体设置,仔细想想吧。




另:做ESD测试了么???

到了多少V  ?







使用特权

评论回复
地板
xwj| | 2007-1-18 19:04 | 只看该作者

mega16的ADC0-3是PA口,你说说看怎么个中断法?

把Y-接别的外部中断引脚还差不多

使用特权

评论回复
5
wolfererer| | 2007-1-18 19:45 | 只看该作者

顶~~~

使用特权

评论回复
6
shuaiyu| | 2007-2-13 14:43 | 只看该作者

能请教一下关于校准和滤值吗

我最近一个项目也要用到触摸屏,最近比较困惑,发现手按下后轻重对返回值的影响比较,请教各位大大是如何解决这个问题的.谢谢!!

使用特权

评论回复
7
ipman| | 2007-3-1 15:27 | 只看该作者

请问系统资源占用严重吗,正打算应用

使用特权

评论回复
8
阿发| | 2007-3-2 09:33 | 只看该作者

正想要这个资料

下载来好好学习一下。

好像这种电阻屏比较贵吧,一般要多少钱啊。

使用特权

评论回复
9
qjy_dali| | 2007-3-3 00:01 | 只看该作者

我04年在北京时用MC68HC08系列也做过这个工作,呵呵

使用特权

评论回复
10
安步当车| | 2007-3-6 10:23 | 只看该作者

支持

使用特权

评论回复
11
dianzu123| | 2007-3-14 10:28 | 只看该作者

哪位大虾有NT7534驱动的LCD的程序啊......(急!!!万分感谢)

使用特权

评论回复
12
liuswallow| | 2007-4-6 20:42 | 只看该作者

用M16带触摸,只能玩玩,无任何实用价值

使用特权

评论回复
13
frankpeter| | 2007-4-25 11:34 | 只看该作者

自己玩玩

我也想玩玩

使用特权

评论回复
14
王学珠| | 2007-5-11 13:45 | 只看该作者

是这个样子啊!!

使用特权

评论回复
15
shabby| | 2007-6-5 22:37 | 只看该作者

楼主可以讲讲校准的思路吗?

请问楼主,用AVR校准的思路是怎样子的呀?可以详细讲讲么?

使用特权

评论回复
16
FJHCPU| | 2008-1-28 11:47 | 只看该作者

有人在产品产品中这样用过吗

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

148

主题

690

帖子

2

粉丝