基于Microchip单片机的触摸感应技术
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单片机的触摸感应技术的更多相关文章
- [STM8L]基于STM8L152的TAB段式LCD液晶驱动的分析 - 单片机干货 - 中国电子技术论坛 - 最好最受欢迎电子论坛!
[STM8L]基于STM8L152的TAB段式LCD液晶驱动的分析 - 单片机干货 - 中国电子技术论坛 - 最好最受欢迎电子论坛!.md 主控芯片为STM8L152C4T6自带LCD控制器,低功耗系 ...
- 基于FPGA的XPT2046触摸控制器设计
基于FPGA的XPT2046触摸控制器设计 小梅哥编写,未经许可,文章内容和所涉及代码不得用于其他商业销售的板卡 本实例所涉及代码均可通过向 xiaomeige_fpga@foxmail.com 发 ...
- PSoC电容式触摸感应技术
PSoC是由Cypress半导体公司推出的具有数字和模拟混合处理能力的可编程片上系统芯片,某些系列的PSoC(如CY8C21X34系列),由于其内部配备的特殊资源,使得它可以很容易地实现电容式触摸感应 ...
- AVR单片机RC触摸
RC电容触摸感应按键1:RC感应原理 RC采样原理就是通过测量感应极电容的微小变化,来感知人体对电容式感应器(按键.轮键或者滑条)的感应.电极电容(C)通过一个固定的电阻(R)周期性地充放电.(原文件 ...
- 单片机课程设计——《基于AT89S52单片机和DS1302时钟芯片的电子时钟(可蓝牙校准)》
引言 本设计以AT89S52单片机为控制核心,时钟芯片DS1302提供时钟源,配合LCD1602液晶显示模块,组成基本硬件系统,同时利用HC-05嵌入式蓝牙串口通讯模块,可在手机端进行日期.时间的校准 ...
- 基于STC51单片机的霓虹灯
基于STC51单片机的霓虹灯 设计要求: 使用PWM驱动8个LED灯 人眼不能观察到灯光全灭 灯光要有动画效果 设计概述: 按照设计要求,为了更直观的说明脉冲宽度调制技术(PWM),所以霓虹灯的 ...
- [译]基于GPU的体渲染高级技术之raycasting算法
[译]基于GPU的体渲染高级技术之raycasting算法 PS:我决定翻译一下<Advanced Illumination Techniques for GPU-Based Volume Ra ...
- 基于Web的数据推送技术(转)
基于Web的数据推送技术 对于实时性数据显示要求比较高的系统,比如竞价,股票行情,实时聊天等,我们的解决方案有以下几种.1. HTTP请求发送模式,一般可以基于ajax的请求,比如每3秒一次访问下服务 ...
- ET 与RETI 基于51单片机中断跳出指令“RETI”浅议
最近在基于51单片机编程的过程中出现了个很奇怪的问题“程序执行中在寄存器EA=1,ET0=1,TR0=1条件下,单TF0=1时并没有执行中断”.在有过单片机中断编程经历者都知道当EA=1,ET0=1的 ...
随机推荐
- ORA-000845 与 /dev/shm(tempfs)
MEMORY_TARGET参数在Oracle 11g被引进,主要是用于控制Oracle对于系统内存的使用,首次将SGA与PGA整合到一起实现自动管理.一旦设置了MEMORY_TARGET参数值,Ora ...
- 通过进程检测服务时脚本文件名不要起要检测的服务名字命名 shell程序从上到下执行若定义函数或引用系统函数需先定义 kill -USR2
通过进程检测服务时脚本文件名不要起要检测的服务名字命名 kill -USR2 `cat /var/run/mysqld.pid`
- oracle 序列 ,check约束
====================序列 //查询当前用户序列 select * from user_sequences //查询所有序列 select * from all_sequences; ...
- scala构建类似java的pojo
主要看以下代码: package com.test.scalaw.test.demo import scala.beans.BeanProperty /** * scala构建类似java 的pojo ...
- PHP memcached 扩展的安装
PHP memcached 扩展的安装 1.下载相关的源码包(软件版本自己选择) memcached-1.4.15 , http://memcached.org/ //Memcached服务端. me ...
- 关于PHP的正则表达式
1.入门简介 简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具.我们可以在几乎所有的基于UNIX系统的工具中找到正则表达式的身影,例如,vi编辑器,Perl或PHP脚本语言,以及awk或 ...
- Python查看函数代码内容
方法1:使用help(random) >>> import random >>> help(random) Help on module random: NAME ...
- C#:WPF绘制问题
1.问题描述:切换画笔后,鼠标呈现画笔,但绘制界面需要点击后才能绘制,体验比较差 注:如果将切换为画笔或橡皮擦的功能放在二级菜单中则无次问题 解决方法(大体如此): 1)在第三方中,先创建完绘制画面和 ...
- ecshop后台增加栏目查询会员是否重复注册
ecshop的后台要查询哪些会员是否有重复注册时,可以利用特定的栏目来判断~ 譬如会员电话... 修改前请务必先备份下列档案!!! admin/users.php admin/templates/us ...
- c#调用c++的dll,错误篇
"LIPS.vshost.exe"(托管(v4.0.30319)): 已加载"C:\Windows\Microsoft.Net\assembly\GAC_MSIL\Sys ...