Microchip提供两种电容式触摸感应解决方案,一种为张驰振荡器方式,即通过检测触摸感应电容充放电的频率变化,来检测是否有键按下,根据单片机集成的硬件资源不同,另一种通过Microchip单片机集成的片上充电时间检测单元(CTMU)实现。

本文引用地址:http://www.eepw.com.cn/article/96101.htm

  简单RC振荡方式

  这种方式比较适合一个按键情况,通过集成模拟比较器的PIC10F204或PIC10F206实现触摸感应功能,用到的硬件资源为模拟比较器和Timer0定时器。图1为电路图,上电时,触摸感应电容Cp没有充电,比较器输出高电平,通过D1给电容迅速充电至接近VDD,之后比较器翻转,输出低电平,Cp通过R1放电,直至低于内部参考电压0.6V,比较器翻转输出高,进入下一个振荡周期。将比较器输出送给Timer0,作为时基,经过固定的软件延时,读出Timer0的值,可以计算出比较器输出频率。当手指接触按键时,电容值改变,随之比较器输出频率改变,读出的Timer0的值发生变化,从而检测到有触摸动作。

  带SR锁存器的比较器方式

  利用PIC16F61X、PIC16F690和PIC16F88X系列内部集成的模拟比较器具有SR锁存器功能,配合Timer0和Timer1,可以方便的实现触摸感应检测。这类器件在不进行外部模拟通道扩展情况下,可以直接支持4路触摸感应检测。

  如图2所示,Cs表示触摸感应对地电容,触摸感应直接与单片机片内比较器反相输入端相连,比较器C1采用内部大约2/3VDD作为参考电压,C2采用外部电阻分压,获得1/4VDD电压。当上电时,Cs上电压为0,C2输出为1,C1输出为0,SR锁存器反相端输出为1,通过电阻对Cs充电;当Cs电压超过1/4VDD,C2输出为0,SR锁存器保持原来输出状态。当Cs充电超过2/3VDD时,C1输出为1,SR锁存器反相端输出由1变为0,Cs通过电阻放电,当Cs放电电压低于2/3VDD时,C1输出为0,SR锁存器保持原来输出状态。当Cs放电电压低于1/4VDD时,C2输出为1,SR锁存器反相端输出为1,通过电阻对Cs充电,开始一个新的周期。这样Cs反复充放电,电容电压为锯齿波,SR锁存器输出为同频率方波。

  有触摸时,Cs变大,改变了RC电路的时间常数,SR锁存器输出的方波频率随之发生改变。将SR锁存器输出的方波信号送给Timer1作为时基,每一次Timer0溢出中断,中断程序中读出Timer1寄存器的值即代表对应频率,频率是否变化即代表是否有触摸动作。

  容性传感模块(CSM)方式

  PIC16F72X系列集成了CSM,这个模块具有恒定的拉灌电流能力,能够直接驱动容性负载(PCB焊盘),在触摸感应电容上形成连续振荡的三角波,CSM输出同频率的方波,方波信号可以提供给Timer0或Timer1做时基,通过Timer2中断读出相对应的计数值,即代表对应频率。这种方式电路非常简单,可以直接将焊盘连接到CSM输入对应的引脚。

基于Microchip单片机的触摸感应技术的更多相关文章

  1. [STM8L]基于STM8L152的TAB段式LCD液晶驱动的分析 - 单片机干货 - 中国电子技术论坛 - 最好最受欢迎电子论坛!

    [STM8L]基于STM8L152的TAB段式LCD液晶驱动的分析 - 单片机干货 - 中国电子技术论坛 - 最好最受欢迎电子论坛!.md 主控芯片为STM8L152C4T6自带LCD控制器,低功耗系 ...

  2. 基于FPGA的XPT2046触摸控制器设计

    基于FPGA的XPT2046触摸控制器设计 小梅哥编写,未经许可,文章内容和所涉及代码不得用于其他商业销售的板卡 本实例所涉及代码均可通过向 xiaomeige_fpga@foxmail.com  发 ...

  3. PSoC电容式触摸感应技术

    PSoC是由Cypress半导体公司推出的具有数字和模拟混合处理能力的可编程片上系统芯片,某些系列的PSoC(如CY8C21X34系列),由于其内部配备的特殊资源,使得它可以很容易地实现电容式触摸感应 ...

  4. AVR单片机RC触摸

    RC电容触摸感应按键1:RC感应原理 RC采样原理就是通过测量感应极电容的微小变化,来感知人体对电容式感应器(按键.轮键或者滑条)的感应.电极电容(C)通过一个固定的电阻(R)周期性地充放电.(原文件 ...

  5. 单片机课程设计——《基于AT89S52单片机和DS1302时钟芯片的电子时钟(可蓝牙校准)》

    引言 本设计以AT89S52单片机为控制核心,时钟芯片DS1302提供时钟源,配合LCD1602液晶显示模块,组成基本硬件系统,同时利用HC-05嵌入式蓝牙串口通讯模块,可在手机端进行日期.时间的校准 ...

  6. 基于STC51单片机的霓虹灯

    基于STC51单片机的霓虹灯 设计要求: 使用PWM驱动8个LED灯 人眼不能观察到灯光全灭 灯光要有动画效果 设计概述: ​  按照设计要求,为了更直观的说明脉冲宽度调制技术(PWM),所以霓虹灯的 ...

  7. [译]基于GPU的体渲染高级技术之raycasting算法

    [译]基于GPU的体渲染高级技术之raycasting算法 PS:我决定翻译一下<Advanced Illumination Techniques for GPU-Based Volume Ra ...

  8. 基于Web的数据推送技术(转)

    基于Web的数据推送技术 对于实时性数据显示要求比较高的系统,比如竞价,股票行情,实时聊天等,我们的解决方案有以下几种.1. HTTP请求发送模式,一般可以基于ajax的请求,比如每3秒一次访问下服务 ...

  9. ET 与RETI 基于51单片机中断跳出指令“RETI”浅议

    最近在基于51单片机编程的过程中出现了个很奇怪的问题“程序执行中在寄存器EA=1,ET0=1,TR0=1条件下,单TF0=1时并没有执行中断”.在有过单片机中断编程经历者都知道当EA=1,ET0=1的 ...

随机推荐

  1. Bonbo Git Server

    Install This page covers simple Bonobo Git Server installation. Be sure to check prerequisites page ...

  2. 【海岛帝国系列赛】No.1 海岛帝国:诞辰之日

     50111117海岛帝国:诞辰之日 [试题描述] YSF自从上次“被盗投降”完(带着一大堆债)回去以后,YSF对“海盗”怀念至今,他想要建立一个“药师傅”海岛帝国. 今天,他要像“管理部”那样去探寻 ...

  3. 锋利的JQuery(四)

    表单: 一个表单有三个基本组成部分:表单标签.表单域.表单按钮 Cookie: 在jQuery中有一款Cookie插件,<script src="js/jquery.cookie.js ...

  4. SQL删除重复数据方法

    例如: id           name         value 1               a                 pp 2               a           ...

  5. Junit单步调试

    单步调试:主要查看变量内容的变化 1.设置断点位置,设置在可能出现问题的代码  2.点击项目右键以Debug as方式运行程序  3.F5 --> step into 进入方法内部进行调试    ...

  6. 【python cookbook】【数据结构与算法】10.从序列中移除重复项且保持元素间顺序不变

    问题:从序列中移除重复的元素,但仍然保持剩下的元素顺序不变 解决方案: 1.如果序列中的值时可哈希(hashable)的,可以通过使用集合和生成器解决.

  7. flex 添加右键链接

    private var myMenu:ContextMenu; private function setViewerVersion():void { var menuItem:ContextMenuI ...

  8. Spring的beans标签下可以有其他标签

    以前有对xsd(也就是schema文件)小做研究,有个小困惑,就是我们定义的元素只能使用定义的哪一些标签,比如<beans>下面就只能有自定义的哪一些,那为什么在引入<context ...

  9. 3.1将AngularJS放入上下文

    本章,作者将AngularJS放在全球web app开发的上下文里,并为后面的章节设置功能.AngularJS的目标,是带来一款工具,它有服务端开发web client的能力,并易于开发,测试,富.复 ...

  10. struts2结果类型

    struts2结果类型: 结果类型 描述 前request域属性是否丢失 1 dispatcher 用于与jsp整合的结果类型.默认结果类型. 2 chain Action链式处理结果类型.前一个Ac ...