四线电阻式触摸屏原理及MEGA8驱动实例 - 范文中心

四线电阻式触摸屏原理及MEGA8驱动实例

10/22

四线电阻式触摸屏原理及MEGA8驱动

(转载请注明出自http://www.avrbase.com,谢谢)

注:本文原理部分参考并节选自《四线电阻式触摸屏控制》、《四线电阻触摸屏的工作原理》两文,作者不详,在此表示感谢。

电阻触摸屏的屏体部分是一块与显示器表面非常配合的多层复合薄膜,由一层玻璃或有机玻璃作为基层,表面涂有一层透明的导电层,上面再盖有一层外表面硬化处理、光滑防刮的塑料层,它的内表面也涂有一层透明导电层,在两层导电层之间有许多细小(小于千分之一英寸)的透明隔离点把它们隔开绝缘,如图1。

图1 四线式触摸屏结构示意图

触摸屏工作时,上下导体层相当于电阻网络,如图

2所示。

图2 工作时的导体层

当某一层电极加上电压时,会在该网络上形成电压梯度。如有外力使得上下两层在某一点接触,则在电极未加电压的另一层可以测得接触点处的电压,从而知道接触点处的坐标。比如,在顶层的电极(X+,X-)上加上电压,则在顶层导体层上形成电压梯度,当有外力使得上下两层在某一点接触,在底层就可以测得接触点处的电压,再根据该电压与电极(X+)之间的距离关系,知道该处的X坐标。然

后,将电压切换到底层电极(Y+,Y-)上,并在顶层测量接触点处的电压,从而知道Y坐标。 触摸屏与内置A/D的单片机接口可以通过4个三极管或MOS管分别给X、Y方向施加电压,并通过A/D通道读取Y、X方向的电压值来实现(见图3)。对触摸屏输入A/D的数据读取控制可采用定时查询方式和中断方式,本文采用中断方式。

图3 四线电阻式触摸屏与MEGA8的接口电路

在触摸屏不处于触摸状态时MCU 使Q1、Q3、Q4截止,Q2导通(MCU控制口PE2为“1”)。一旦出现触摸动作,触摸屏经由D1产生一个中断信号(PE5),MCU立即使Q3导通,在Y方向上形成电流回路,启动MCU A/D转换—ADC0通道,由X+即可读出Y轴的坐标值;同样MCU关闭Q2、Q3,打开Q1、Q4,启动MCU A/D转换—ADC1通道由Y+即可读出X轴的坐标值。

图4 触摸屏与驱动电路连接 图5 配合液晶屏手写显示

MEGA8驱动程序使用BASCOM-AVR编写,串口输出数据。触摸屏XY连线及方向与电路图稍有不同,程序仅供参考。 '-----------------------------------------------------------------

'name : TouchDriver.bas

'micro: Mega8

'compiler: Bascom-avr

'author: slyt

'website:

'date: 2009-09-10

'-----------------------------------------------------------------

$regfile = "m8def.dat"

$crystal = 4000000

$baud = 9600

$hwstack = 32

$swstack = 32

$framesize = 40

Config Adc = Single , Prescaler = Auto , Reference = Internal

Ddrb = &HFF

Ddrd.6 = 1

Ddrd.2 = 0

Portb = &B11100

Portd = &HFF

Dim V1 As Word , V2 As Word , I As Integer

Dim Chan As Byte

Dim S1 As Single

Dim S As String * 4

Dim X As Word , Y As Word

Dim Xstr As String * 4

Dim Ystr As String * 4

On Int0 Int0_int

Enable Interrupts

Enable Int0

Pe1 Alias Portb.1

Pe2 Alias Portb.2

Pe3 Alias Portb.3

Pe4 Alias Portb.4

Pe5 Alias Portd.2

Pe6 Alias Portd.6

Osccal = &HA0

Start Adc

Do

Idle

Loop

Int0_int:

Pe5 = 0 : Pe6 = 0

Pe3 = 0 : Pe2 = 1 'X轴加电压

Pe4 = 1 : Pe1 = 0

V1 = Getadc(0) '读ADC0,取X电压

V1 = V1 + Getadc(0) '读ADC0,取X电压

V1 = V1 + Getadc(0) '读ADC0,取X电压

V1 = V1 + Getadc(0) '读ADC0,取X电压

V1 = V1 + Getadc(0) '读ADC0,取X电压

V1 = V1 + Getadc(0) '读ADC0,取X电压

V1 = V1 + Getadc(0) '读ADC0,取X电压

V1 = V1 + Getadc(0) '读ADC0,取X电压

V1 = V1 + Getadc(0) '读ADC0,取X电压

V1 = V1 + Getadc(0) '读ADC0,取X电压

V1 = V1 / 10

Pe3 = 1 : Pe2 = 0 '关闭X轴电压及接地

Pe4 = 0 : Pe1 = 1 'Y轴加电压

V2 = Getadc(1) '读ADC1,取Y电压

V2 = V2 + Getadc(1) '读ADC1,取Y电压

V2 = V2 + Getadc(1) '读ADC1,取Y电压

V2 = V2 + Getadc(1) '读ADC1,取Y电压

V2 = V2 + Getadc(1) '读ADC1,取Y电压

V2 = V2 / 5

X = 1023 - V1

S = Str(x)

Xstr = Format(s , "0000")

Y = V2

S = Str(y)

Ystr = Format(s , "0000")

Portb = &B11100

Pe5 = 1

Pe6 = 1

Print Xstr ; Ystr

Return

PC演示程序使用Quick Basic编写,演示屏幕触摸画点、触摸屏和液晶屏坐标位置关联定位。 '-----------------------------------------------------------------

'name : TFT_Touch.bas 'compiler: Quick Basic

'author: slyt

'website: 'date: 2009-09-10

'-----------------------------------------------------------------

DECLARE SUB delay (dt AS SINGLE) Screen 12

Cls

Clear

OPEN "COM1:9600,N,8,1,BIN" FOR INPUT AS #1

ON COM(1) GOSUB COM1HANDDLE

Com(1) Off

Com(1) On

DIM x AS INTEGER

Dim Y As Integer Dim A(4) As Integer

Dim B(4) As Integer

Dim Aa(4) As Integer Dim Bb(4) As Integer

Dim Intrun As Integer

'调入屏幕坐标与触摸屏值换算参数

Open "para.ini" For Input As #2

Line Input #2 , Para$ Kx = Val(para$)

Line Input #2 , Para$

Ky = Val(para$) Line Input #2 , Para$

Dx = Val(para$)

Line Input #2 , Para$ Dy = Val(para$)

Close #2

DO

Ak$ = Inkey$

Ak$ = Ucase$(ak$) Select Case Ak$

Case " "

Cls Case Chr$(27)

Screen 0

End Case "C" '校正坐标转换参数,在屏幕角依次显示十字 A(1) = 10 : B(1) = 10

A(2) = 10 : B(2) = 460 A(3) = 630 : B(3) = 10

A(4) = 630 : B(4) = 460

Locate 5 , 1

For I = 1 To 4

Line(a(i) - 10 , B(i)) -(a(i) + 10 , B(i)) , 15 Line(a(i) , B(i) - 10) -(a(i) , B(i) + 10) , 15 Intrun = 0

Do Loop Until Intrun = 1

Aa(i) = X : Bb(i) = Y

Sound 1200 , 1 Print I , X , Y

Delay .5

Inrun = 0 Com(1) Off

Delay .5

Line(a(i) - 10 , B(i)) -(a(i) + 10 , B(i)) , 0 Line(a(i) , B(i) - 10) -(a(i) , B(i) + 10) , 0

Com(1) On

Next Cls

'换算参数 Daa =(aa(3) + Aa(4) - Aa(1) - Aa(2)) / 2

Dbb =(bb(2) + Bb(4) - Bb(1) - Bb(3)) / 2

Da = A(3) - A(1) Db = B(2) - B(1)

Kx = Da / Daa

Ky = Db / Dbb Dx = A(1) - Kx *(aa(1) + Aa(2)) / 2

Dx = Dx + A(3) - Kx *(aa(3) + Aa(4)) / 2

Dx = Dx / 2 Dy = B(1) - Ky *(bb(1) + Bb(3)) / 2

Dy = Dy + B(2) - Ky *(bb(2) + Bb(4)) / 2

Dy = Dy / 2

'存储参数

Open "para.ini" For Output As #2 Print #2 , Str$(kx)

Print #2 , Str$(ky)

Print #2 , Str$(dx) Print #2 , Str$(dy)

Close #2

Intrun = 0

Case Else '在触摸位置画圆点 If Intrun = 1 Then Intrun = 0

Px = Kx * X + Dx

Py = Ky * Y + Dy Colr% = 15

Circle(px , Py) , 3 , Colr%

Paint(px , Py) , Colr% End If

End Select

LOOP UNTIL ak$ = CHR$(27)

END

'=========串口接收中断服务程序=========

Com1handdle: Intrun = 1

Com(1) Off

Line Input #1 , Dz$ Dz$ = Right$(dz$ , 8)

Xy$ = Left$(dz$ , 4)

X = Val(xy$) Xy$ = Right$(dz$ , 4)

Y = Val(xy$)

Com(1) On Return

'==============================

SUB delay (dt AS SINGLE)

T0 = Timer

Do T1 = Timer - T0

Loop Until T1 Dt

End Sub


相关内容

  • 触摸屏技术的简介与发展
    触摸屏技术的简介与发展 摘要:2007年,苹果公司推出iPhone ,采用了"投射式互电容"(projected, mutual-capacitance )触摸屏,可同时对两个手指的点击做出响应,大触摸屏设计使它一炮而红 ...
  • 变频器的工作原理
    变频器工作原理:该高压变频器主电路采用模块串联方式,每个功率模块为三相输入, 单相逆变输出,即通过6个独立的 低压变频功率模块串联接在移相变压器副边构成逆变主回路,高压直接输入隔离变压器,输出侧通过逆变器的 PWM调制技术,输出为多电平.直 ...
  • 光电编码器
    1 光电编码器的工作原理 光电编码器(Optical Encoder)俗称"单键飞梭",其外观好像一个电位器,因其外部有一个可以左右旋转同时又可按下的旋钮,很多设备(如显示器.示波器等)用它作为人机交互接口.下面以美国G ...
  • (最新版)汽车维修专业毕业论文
    专升本毕业设计(论文) 设计(论文)题目: 上海大众汽车点火系统故障诊断与流程分析 学 院 名 称: 机械工程学院 专 业: 汽车营销与售后技术服务 班 级: 12秋浙农贸汽车 指 导 教 师: 黄永青 职 称 副教授 定稿日期: 2014 ...
  • PLC的变频调速恒压供水系统毕业设计
    烟台工程职业技术学院 机电 系 机电一体化 专业 2010 级 毕业设计(论文) 题 目: PLC的恒压供水系统设计 姓名 张凯 学号 2010060196 指导教师(签名) 二○ 年 月 日 摘 要 随着人民生活水平的日趋提高,新技术和先 ...
  • 等离子点火系统的维护
    等离子体发生器的维护.调试及常见问题的处理 1.等离子体发生器的日常维护 等离子体发生器系整个系统的心脏,它的不稳定将直接影响锅炉点火的好坏,所以应对点火器进行精心的维护,熟知发生器的构造与原理,遇到问题不要盲目拆卸,应认真分析原因,准确找 ...
  • 液晶屏逻辑板和屏坏简易判断及检修
    屏电路就是逻辑板,一直以来都被很多师傅误以为是不可维修的, 主要是因为逻辑板是随屏一起由液晶屏厂家一起提供,厂家出于对技术的保密,其相关资料很少,加之接触的少,因此对逻辑板的组成和工作原理也是甚是模糊不清,所以被误认为逻辑板是不可维修的,很 ...
  • 基于dsp的正弦波信号发生器课程设计
    目录 第1章 绪论 ............................................. 1 1 DSP简介 ............................................... 1 第2章 ...
  • 智能红外遥控暖风机的设计
    毕 业 设 计 学生姓名: 学 号: 学 院: 信息学院 专 业: 通信工程 题 目: 智能红外遥控暖风机的设计 指导教师: 评阅教师: 2012 年 6 月 毕 业 设 计 中 文 摘 要 目 录 1 引言 . ............. ...
  • 380个机构实例,囊括机械设计人员所有基础设计!
    <常见机构设计及应用图例(第2版)>精选了约380个机构实例,囊括了平面连杆机构.凸轮机构.齿轮机构.轮系.间歇运动机构.螺旋机构.挠性传动机构.组合机构.特殊机构以及创新机构等全部的机构类型,采用运动简图.轴测简图.装配图.构 ...