基于STM8的电容触摸式按键方案介绍

发布者:水墨人生最新更新时间:2020-07-23 来源: 51hei关键字:STM8  电容触摸式  按键 手机看文章 扫描二维码
随时随地手机看文章

电容式触摸感应软件库的可提供如下功能:

  • 软件库模块可以方便的应用于绝大部分微控制器中,直接内嵌在主控制器中。

  • 软件库适用于大部分的用户接口需求:最多24个按键,以及2个滑动条/滚轮。

  • 经济的解决方案:少量的硬件和软件开销

  • 采用各种必须的软件滤波处理以获得高可靠性

  • 优化的固件源代码

  • 完全免费的源代码(但仅限于应用在ST的微控制器上)


如何工作?
容性的人体接触可以通过对RC 网络的充放电时间的检测来测得。RC网络由一个电阻和电极的电容(Cx)组成。

性能

  • 每个触摸通道需要2个电阻和一个MCU 通用IO口。

  • 可将MCU的任意通用IO口配置为触摸通道

  • 触摸按键可分布在最多3个不同的GPIO 端口上(目前如此,以后可能会扩展)

  • 软件库使用2个定时器:一个作为时基,一个用于采集


STM8 资源需求

MCU 硬件

  • 1*16位定时器(采集: 测量RC充放电时间)

  • 1*8位定时器(后处理: 时基)

  • 每个通道1个通用IO

  • 1个I/O 作为LOAD输出(common to all channels)


MCU 存储器使用(库+ 常量)

  • 只有按键: ~ 1900 bytes

  • 按键+ 1滚轮/滑动条: ~ 3800 bytes

  • 按键+ 2 滚轮/滑动条: ~ 3900 bytes


RAM

  • 只有按键: ~ 57 + (13*(Nb_keys-1))

  • 按键+ 1滚轮/滑动条: ~ 112 + (13*(Nb_keys-1))

  • 按键+ 2 滚轮/滑动条: ~ 154 + (13*(Nb_keys-1))

  • - 例1 :10 个按键占用174 bytes的RAM空间

  • - 例2 : 5 按键+ 1 滚轮占用174 bytes的RAM空间


关键字:STM8  电容触摸式  按键 引用地址:基于STM8的电容触摸式按键方案介绍

上一篇:进一步掌握STVD/COSMIC
下一篇:基于STM8的电容触摸式按键软件库介绍

推荐阅读最新更新时间:2024-11-10 10:22

STM32三线检测八个按键(74HC165)
STM32三线检测八个按键是典型的IO扩展应用(并转串),思路和学习51单片机时一致,下面直接上图和代码! 简述: 1.74HC165使用1、2、9脚,15脚可直接接地 2.按键低电平为按下 PA1- SL 并行数据加载 PA2- CLK 时钟 PA3- DAT 串行数据输出 代码: #include 74HC165.h #include delay.h void Init_74HC165(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); GP
[单片机]
STM32三线检测八个<font color='red'>按键</font>(74HC165)
51单片机入门教程(4)——按键控制
单片机与外界的信息交互主要有两大类,输入信息和输出信息。 之前的博客介绍了通过单片机控制LED灯和数码管向外界输出信息,该教程介绍单片机常用的输入设备——独立按键和矩阵键盘。 一、独立按键 1.1 独立按键的原理 独立按键一共有四个针脚,两个短针脚之间默认不导通,两个长针脚之间默认导通。实物图如图: 1.2 独立按键的仿真电路 在Proteus中对按键进行了简化,只有两个接线针脚。按键的一端接到单片机的IO口上,另一端与GND连接。当按键按下时,单片机的IO口与GND连接,端口电平被拉低。因此通过读取端口电平即可获知按键状态。 仿真电路如图: 1.3 按键消抖 关于按键抖动: 通常的按键所用开关为机械弹性开关,
[单片机]
51单片机入门教程(4)——<font color='red'>按键</font>控制
从头学STM8单片机之"Hello,world"
  最近做了一个数显电压表,电路上支持交流或直流电压显示,软件上支持七种不同的满量程档位,可以自由切换,有小数点自动移位,无效零消隐,超量程指示等功能,修改外部元件就可以做成不同量程的交流或直流电压表,不会编程的朋友也可以DIY出各种不同量程的交流或直流电压表。   主要元件有STM8S003F3单片机一片,自带ADC,0.56寸三位共阴数码管一个,再就是阻容稳压什么的,电路也很简单,爱好者自制很方便。本贴的程序都能在此硬件上测试通过。下面是电路原理图:   自从去年开始学了单片机以后,发现单片机没有想象中那么难,所以想做一个教程和大家一起共同学习。我的编译环境是IAR的EWSTM8-2102,本贴代码都在此环境下测试通过,
[单片机]
从头学<font color='red'>STM8</font>单片机之
20.电容触摸按键实验
一。 电容触摸按键原理 1. RC 充放电电路原理 Cx电压从0开始充电,一直到V1。 如果达到同样的电压值,如果电容越大,那么达到的时间越长。 手指按下后,电容值为Cs+Cx,电容变大,充电时间变长,通过判断充电时间长短来判断TPAD是否被按下。 2. 电容触摸按键在PCB板上怎么画 首先,人体是具有一定电容的。当我们把PCB上的铜画成如下形式的时候,就完成了一个最基本的触摸感应按键。 上图左边,是一个基本的触摸按键,中间圆形绿色的为铜(我们可以称之为“按键”),在这些按键中会引出一根导线与MCU相连,MCU通过这些导线来检测是否有按键“按下”(检测的方法多种多样,这将在后面章节中谈到);外围的绿色也是铜,不
[单片机]
20.<font color='red'>电容</font>触摸<font color='red'>按键</font>实验
二、mini2440裸机程序之按键检测实验
开发板:mini2440, NandFlash:K9F2G08U0B 256M大小,CPU:S3C2440A 。 开发环境:MDK4.11 仿真器:Jlink v8 这是我用csdn发表的第一个文章,之前使用过arm-linux-gcc裸机开发mini2440,但是很多函数什么的不能直接调用(我的技术问题),准备重新整理一下ARM裸机,整理好之后准备下一阶段学习。关于软件MDK4.11和它的注册机,我传不上去,说是由于文件太大,又想要的直接留言邮箱要就行了。 下面开始我们的第一个LED灯的点亮程序吧! 1、新建一个项目工程 双击MDK图标 进入开发环境,如下图, 单击Project/New uVision Pro
[单片机]
二、mini2440裸机程序之<font color='red'>按键</font>检测实验
51单片机按键控制蜂鸣器启停程序
51单片机按键控制蜂鸣器启停程序 #include reg52.h #define uint unsigned int //宏定义 sbit SPK=P3^5; //定义喇叭端口 sbit key=P3^1; //开发板上对应的是s18按键 void delay(uint z) { uint x,y; for(x=z;x 0;x--) for(y=110;y 0;y--); } void main() { while(1) { if(key==0) { delay(100); SPK=0; delay(100); SPK=1; } else { SPK=1; } } }
[单片机]
单片机矩阵按键的扫描
我们讲独立按键扫描的时候,大家已经简单认识了矩阵按键是什么样子了。矩阵按键相当于 4 组每组各 4 个独立按键,一共是 16 个按键。那我们如何区分这些按键呢?想一下我们生活所在的地球,要想确定我们所在的位置,就要借助经纬线,而矩阵按键就是通过行线和列线来确定哪个按键被按下的。那么在程序中我们又如何进行这项操作呢? 前边讲过,按键按下通常都会保持 100ms 以上,如果在按键扫描中断中,我们每次让矩阵按键的一个 KeyOut 输出低电平,其它三个输出高电平,判断当前所有 KeyIn 的状态,下次中断时再让下一个 KeyOut 输出低电平,其它三个输出高电平,再次判断所有 KeyIn,通过快速的中断不停的循环进行判断,就可以最终
[单片机]
STM32F103按键操作的另一种实现——状态机
#ifndef _KEY_H_ #define _KEY_H_ #include HAL_gpio.h // 换成STM32F103对应的GPIO库 #include type.h // type.h主要是一些类型的重命名 #define KEY_UP_GRP GPIOA #define KEY_UP_IDX GPIO_Pin_9 #define KEY_UP_IS_DOWN() GPIO_ReadInputDataBit(KEY_UP_GRP, KEY_UP_IDX) #define KEY_UP_CONFIG() GPIOConfig(KEY_UP_GRP, KEY_UP_IDX, GPIO_M
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved