搜索
bottom↓
楼主: chenjianlin

轻轻松松实现电容感应按键

  [复制链接]

出0入0汤圆

发表于 2011-4-12 02:08:23 | 显示全部楼层
学习了

出0入0汤圆

发表于 2011-4-12 09:13:39 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-4-12 09:27:50 | 显示全部楼层
学习了!

出0入0汤圆

发表于 2011-4-12 09:28:34 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-4-12 13:52:15 | 显示全部楼层
学习一下。。。

出0入0汤圆

发表于 2011-5-5 09:20:04 | 显示全部楼层
产品里试着把触摸IC拿掉...降低成本,一个好几毛呢

出0入0汤圆

发表于 2011-5-5 17:30:14 | 显示全部楼层
王炸

出0入0汤圆

发表于 2011-5-5 17:40:40 | 显示全部楼层
有空也学习做一个啊

出0入0汤圆

发表于 2011-5-5 17:53:12 | 显示全部楼层
谢谢,又长见识了

出0入0汤圆

发表于 2011-5-5 18:20:55 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-5-5 19:16:48 | 显示全部楼层
回复【楼主位】chenjianlin
-----------------------------------------------------------------------

不错不错!学习了!!!用得到

出0入0汤圆

发表于 2011-5-8 15:08:43 | 显示全部楼层
搞了TI的paundPad,打算好好研究研究

出0入0汤圆

发表于 2011-5-9 11:03:37 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-9 13:12:49 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-6-2 13:28:37 | 显示全部楼层
请原理的,好文章

出0入0汤圆

发表于 2011-6-3 09:55:18 | 显示全部楼层
感谢分享!

出500入0汤圆

发表于 2011-7-1 07:27:20 | 显示全部楼层
mark^

出0入0汤圆

发表于 2011-7-1 07:32:54 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-7-1 09:06:05 | 显示全部楼层
mark!

出0入0汤圆

发表于 2011-7-1 09:13:38 | 显示全部楼层
mark 一下

出0入0汤圆

发表于 2011-7-1 15:24:33 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-7-1 17:29:25 | 显示全部楼层
好东西,有空研究一下

出0入0汤圆

发表于 2011-9-6 10:24:27 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-9-6 13:11:01 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-9-6 19:43:44 | 显示全部楼层
回复【207楼】yanshengdian 鄢圣典
产品里试着把触摸ic拿掉...降低成本,一个好几毛呢
-----------------------------------------------------------------------

什么触摸IC这么便宜,才几毛钱?

出0入0汤圆

发表于 2011-9-6 20:09:29 | 显示全部楼层
stc12系列,实现触摸按键
/***********************************************************************************************
*                                            Cool51
*                                         Cool51开发板例程
*
*  文件名称:main.c
*  摘    要:触摸按键实验,实验前请将Cool51核心板的"P0.0EN"处短路帽去掉,Cool51核心板左上角既是
*            电容触摸,实验需使用STC12C5A60S2单片机,11.0592晶振
*  作    者:苑臣芒
*
*  当前版本:1.1
*  完成日期:2011/07/023
*  版权所有:Rays_ele - Copyright (C) 2011
*
*************************************************************************************************/

/********引用的头文件*******/
#include<reg52.h> //开发51单片机必须包含的头文件,该文件定义了89c52单片机内部寄存器的地址

/***********宏定义**********/
#define uchar unsigned char
#define uint  unsigned int

/********硬件接口定义*******/
sbit TOUCH=P0^0;  //P0.0为触摸按键
sbit LED=P3^3;

/******特殊寄存器声明*******/
sfr P0M1 = 0x93;    //  
sfr P0M0 = 0x94;    // 两个寄存器控制P0口开漏状态,详见STC12C5A60S2手册

/*--------------------------------------------------------------------------------------
-函数名称:void Delay_ms(uint ms)
----------------------------------------------------------------------------------------
-函数功能:当晶振是11.0592Mhz时,函数延时大约是ms为单位的
-入口参数:uint ms 延时长度,比如需要延时100ms,则ms=100
-出口参数:无
---------------------------------------------------------------------------------------*/
void Delay_ms(uint ms)
{
   uchar t;
   while(ms--)
   {
   t=120;
   while(t--);
   }
}

/*--------------------------------------------------------------------------------------
-函数名称:bit Cool_Touch(void)
----------------------------------------------------------------------------------------
-函数功能:触摸按键,P0.0口,stc12c5A60S2,晶振是11.0592Mhz-12兆,使用定时器0资源
-入口参数:无
-出口参数:按键按下返回1,无按键返回0,此函数不阻塞
---------------------------------------------------------------------------------------*/
bit Cool_Touch(void)
{
uchar i=1;
        P0M1=0X01;        //配置P0为开漏输出
        P0M0=0X01;        //配置P0为开漏输出
    TOUCH=0;         //拉低TOUCH口
    Delay_ms(50);//延时一定时间,等待其一定为低
    TMOD = 0x02;//初始化定时器0为8位定时器,开始计数         
    TH0=0;                //初始化TH0为0
    TL0=0;                //初始化TH0为0
    TR0=1;                //启动定时器
        TOUCH=1;        //释放TOUCH口,此时TOUCH会慢慢升高电平
        while((!TOUCH)&&i++);//等待电平升高到单片机所认为的高电平,i控制溢出
        TR0=0;                //停止计数器
        if(TL0>16||TL0<13) //检查定时器计数时间,是否引脚电平上升时间发生变化,也相当于引脚所处分布电容发生变化
                return 1;
        else
                return 0;
}

/*--------------------------------------------------------------------------------------
-函数名称:void main(void)
----------------------------------------------------------------------------------------
-函数功能:主函数
-入口参数:无
-出口参数:无
---------------------------------------------------------------------------------------*/
void main(void)
{
   while(1)
   {
           if(Cool_Touch()==1)   
        P2++;
   }
}

出0入0汤圆

发表于 2011-9-6 22:40:06 | 显示全部楼层
这个需要程序处理吧。。。占CPU    用555定时器就能做到。前几天搭过一个,抗干扰能力还不错。

也就是硬件和软件的取舍问题了。

出10入10汤圆

发表于 2011-9-6 22:49:05 | 显示全部楼层
标记一下

出0入0汤圆

发表于 2011-9-6 23:58:32 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-9-7 00:11:02 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-11-29 00:26:26 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-11-29 16:26:15 | 显示全部楼层
mark,可能用到的噢

出0入0汤圆

发表于 2011-11-29 21:42:05 | 显示全部楼层
这个必须学习,工作现在转电容触摸按键,谢谢楼主

出0入0汤圆

发表于 2011-11-30 00:30:00 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-11-30 01:34:37 | 显示全部楼层
标记

出0入0汤圆

发表于 2011-11-30 08:39:54 | 显示全部楼层
RC充放电原理电容感应按键 MARK

出0入0汤圆

发表于 2011-11-30 10:24:45 | 显示全部楼层
MARK 一下啦啦

出0入0汤圆

发表于 2012-1-6 15:43:53 | 显示全部楼层
mark了

出0入0汤圆

发表于 2012-1-6 16:41:39 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-1-6 18:06:36 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-1-6 20:14:24 | 显示全部楼层
看看,新人学习中

出0入0汤圆

发表于 2012-1-13 13:16:10 | 显示全部楼层
mark

出0入149汤圆

发表于 2012-1-13 13:21:44 | 显示全部楼层
不错

出0入0汤圆

发表于 2012-1-14 11:18:15 | 显示全部楼层
RC充放电原理电容感应按键 MARK
头像被屏蔽

出0入0汤圆

发表于 2012-1-16 17:04:38 | 显示全部楼层
mark

出50入10汤圆

发表于 2012-1-17 20:58:37 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-1-17 22:10:24 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-1-17 22:28:00 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-1-17 23:23:59 | 显示全部楼层
电容感应按键

出100入0汤圆

发表于 2012-1-18 00:16:16 | 显示全部楼层
mark!。。。

出0入0汤圆

发表于 2012-1-19 13:56:13 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-1-19 20:39:24 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-3-2 01:21:33 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-8-2 10:05:38 | 显示全部楼层
mark                       

出0入0汤圆

发表于 2012-8-2 21:27:09 | 显示全部楼层
mark!           

出0入0汤圆

发表于 2012-8-2 21:53:43 | 显示全部楼层
mark!

出0入0汤圆

发表于 2012-8-2 22:03:19 | 显示全部楼层
好贴,好好学习。

出0入0汤圆

发表于 2012-8-2 22:30:46 | 显示全部楼层
学习 了

出0入0汤圆

发表于 2012-8-18 18:16:08 | 显示全部楼层
这两种方式还是头一次看见,长见识;

出0入0汤圆

发表于 2012-8-20 08:57:17 | 显示全部楼层
似乎来自 Microchip 的 AppNote .

出0入0汤圆

发表于 2012-8-20 10:34:02 | 显示全部楼层
表面看似可以,其实这里面有很多问题。
1)在充放电的同时有中断,怎么处理。
2)因为充放电时间太短,几个US,单片机1M,运行一条指令就需要1US。
3)while(PIND_0==0)d++;
    如果硬件出现问题导致一直停在这个地方怎么处理,如果要加时间判断,肯定会导致分辨率减小。
    PIC的有恒流控制,加上比较器产生CLOCK,后让TIM1异步计数,用TIME0为时基查看TIME1计的数做的。所以比较可靠。
综上所述,做做DEMO板是可以,生产起来难控制。
//----------------------------------------------------------------------

1)用AD的方案可以做省成本的。频率越高,AD在触摸前后越大。
2)我想过一种方法和PIC差不多,先充电至VDD后,再用比较器(基准设置为1/4 VDD),用TIME的捕捉功能计下VDD到1/4 VDD的时间。
     当然这个需要是硬件支持的,即为比较器翻转出来的信号需要内部或外部连接到比较器的另外一端。
     这样做可以节省一个TIME资源。

出0入0汤圆

发表于 2012-11-1 10:02:30 | 显示全部楼层
电容感应按键标记。。

出350入8汤圆

发表于 2012-11-1 10:04:41 | 显示全部楼层
好帖留名!

出0入0汤圆

发表于 2012-11-1 13:43:59 | 显示全部楼层
看起来好复杂啊

出0入0汤圆

发表于 2012-11-1 20:31:04 | 显示全部楼层
学习了!

出0入0汤圆

发表于 2012-11-3 14:22:37 | 显示全部楼层
顶顶  学习一下学习一下

出0入0汤圆

发表于 2012-11-3 15:39:10 | 显示全部楼层
不错,顶

出0入0汤圆

发表于 2012-12-6 12:02:08 | 显示全部楼层
你好,我想请教一下,你的触摸按键的问题,就是网上一直说的,用展频脉冲可以降低感染,不知道展频脉冲是怎么回事,你能我解答一下吗,万分感激,谢谢

出0入0汤圆

发表于 2012-12-6 13:59:55 | 显示全部楼层
mark         

出0入0汤圆

发表于 2012-12-6 20:36:43 | 显示全部楼层
支持一下

出0入0汤圆

发表于 2012-12-6 20:48:01 | 显示全部楼层
学习了!

出0入0汤圆

发表于 2012-12-7 11:20:38 | 显示全部楼层
我们以前实现都是用1个1MHz的PWM波形根据AD值来判断是否有按键,看来这个有点复杂了

出0入0汤圆

发表于 2012-12-14 21:44:14 来自手机 | 显示全部楼层
学习一下.......

出0入0汤圆

发表于 2012-12-14 21:54:23 | 显示全部楼层
学习mark!

出0入0汤圆

发表于 2012-12-14 22:50:53 | 显示全部楼层
学习一下。

出0入0汤圆

发表于 2012-12-15 09:27:03 | 显示全部楼层
试试,一直想做个电容键盘

出0入0汤圆

发表于 2012-12-15 10:32:58 | 显示全部楼层
  mark   

出0入0汤圆

发表于 2012-12-15 10:41:20 | 显示全部楼层
顶起  学习了  之前用触摸芯片 现在可以换换了

出0入0汤圆

发表于 2013-2-13 12:15:36 | 显示全部楼层
mark 学习

出0入0汤圆

发表于 2013-2-13 23:33:39 来自手机 | 显示全部楼层
谢谢楼主,我是来学习的

出0入0汤圆

发表于 2013-2-14 08:45:28 | 显示全部楼层
参考学习了。。。。

出0入0汤圆

发表于 2013-4-17 08:56:31 | 显示全部楼层
mark学习

出0入0汤圆

发表于 2013-5-9 14:08:45 | 显示全部楼层
mark,thanks.

出0入0汤圆

发表于 2013-5-9 14:27:43 | 显示全部楼层
markmarkmark

出0入0汤圆

发表于 2013-5-9 14:38:16 | 显示全部楼层
MARK 补丁

出0入0汤圆

发表于 2013-5-16 06:58:58 | 显示全部楼层
篇文章得顶,前段时间还在自己琢磨着电容触摸按键的原理,基本想法和楼主一样  哈哈,这下可以放心大胆的去做啦

出0入0汤圆

发表于 2013-5-25 20:56:06 | 显示全部楼层
这个要支持,

出0入0汤圆

发表于 2013-12-3 11:42:34 | 显示全部楼层
触摸板线可以做到多长

出0入0汤圆

发表于 2013-12-3 21:17:56 | 显示全部楼层
mark!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

出0入0汤圆

发表于 2013-12-12 10:25:43 | 显示全部楼层
必须MARK

出0入0汤圆

发表于 2013-12-12 10:37:21 | 显示全部楼层
mark感謝

出0入0汤圆

发表于 2013-12-13 04:36:54 | 显示全部楼层
mark                       

出0入0汤圆

发表于 2013-12-13 09:12:17 | 显示全部楼层
mark一下,应该会用到

出0入0汤圆

发表于 2013-12-17 09:36:54 | 显示全部楼层
好方法, 正在学习触摸方面的资料, 收藏啦

出0入0汤圆

发表于 2013-12-18 16:52:59 | 显示全部楼层
学习了,谢谢

出0入0汤圆

发表于 2014-3-14 16:22:48 | 显示全部楼层
谢谢分享

出0入0汤圆

发表于 2014-3-14 21:29:17 | 显示全部楼层
轻轻松松实现电容感应按键轻轻松松实现电容感应按键

出0入0汤圆

发表于 2014-3-14 22:20:57 | 显示全部楼层

能说一下原理吗?没看懂!

出0入0汤圆

发表于 2014-3-15 21:25:26 | 显示全部楼层
学习了一下

出0入0汤圆

发表于 2014-3-16 00:29:54 | 显示全部楼层
mark                                                           
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-17 02:09

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表