基于8位MCU的触摸按键解决方案

合集下载

基于单片机的电容感应式触摸按键原理与程序——C程序

基于单片机的电容感应式触摸按键原理与程序——C程序

基于单片机的电容感应式触摸按键原理与程序——C程序经过上篇文章的介绍,基于单片机的电容感应式触摸按键的实现方法也就没什么神秘的了,而且其控制程序也就呼之欲出了,核心就是用STC单片机的片内ADC实时的进行数据转换与比对判断,但虽然原理简单,但编程思路还是要啰嗦几句,想法是先设置一个空数组作为键值数据暂存器,每次上电运行时,经过短暂的等待,待电源和系统稳定后,扫描一次键盘,将无操作时的键值加以记录,而后循环扫描键盘与之对比,当差值符合条件是,判断为有键按下,同时返回键号及键控指令。

程序如下:/************************************************************** **************** STC单片机电容感应按键C程序---------原创作者wannenggong*************************************************************** ***************//*======================================== =========================应用电路见原理篇的图1,图中:PWM-IN端输入频率为380KHz、占空比75%的矩形脉冲,定义按键K1为ADC0接P1.0,K2为ADC1接P1.1;K1有指触摸时LED1亮LED2灭,K2有指触摸时LED2亮LED1灭;按键面板玻璃厚度为5mm。

程序应用时需检查STC12C2052AD.H文本文档中有无如下设置,如没有时需要加入并保存,否则ADC相关函数将报错#define ADC_POWER 0x80 //ADC模块电源控制位#define ADC_SPEEDLL 0x00 //每次转换需要1080个时钟周期#define ADC_SPEEDL 0x20 //每次转换需要810个时钟周期#define ADC_SPEEDH 0x40 //每次转换需要540个时钟周期#define ADC_SPEEDHH 0x60 //每次转换需要270个时钟周期#define ADC_FLAG 0x10 //ADC转换完成标志#define ADC_START 0x08 //ADC开始转换控制位#define ADC_CHS1 0x02 //ADC通道选择位1#define ADC_CHS0 0x01 //ADC通道选择位0ADC转换程序参照宏晶官网程序改编====================================== ============================*/#include#include#define uint unsigned int#define uchar unsigned char/***********I/O口位功能定义*****************************************/sbit LED1=P3^4;sbit LED2=P3^5;/************应用变量设置*******************************************/bit f1,f2;uint FLG[2]; //初始键值寄存uint zz,RV,R,RR;uchar ee=1,n=0,y;/************************************************************** *****/void Delay(uint x)//用于ADC转换及其它{uint y;while (x--)y = 5000;while (y--);}}/******初始模数转换寄存器函数****************************************/ void InitADC() {ADC_DA TA = 0; //ADC数据寄存器清零ADC_CONTR = ADC_POWER | ADC_SPEEDLL;Delay(2);}/****8位ADC转换执行函数***********************************************/ uint GetADCResult(uchar ch){ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ch | ADC_START;_nop_(); //必要的查询等待_nop_();_nop_();_nop_();while (!(ADC_CONTR & ADC_FLAG));//等待标志位ADC_CONTR &=~ADC_FLAG; //关闭ADCreturn ADC_DA TA; //返回AD转换完成的8位数据(16进制)}/*************按键初值保存函数*****************************************/ //系统上电时更新一次void InitDA T(){uchar e;Delay(50);//延时等待系统稳定很有必要for(e=0;e<2;e++){FLG[e]=GetADCResult(e);Delay(5);}}/*****************开关控制函数****************************************/ void key_control(void) {R=0;RV=GetADCResult(ee-1);R=(FLG[ee-1]-RV);if(R>=0x17 && R<=0x1d)R=ee;{R=0;ee++;}if(ee>2)ee=1;switch(R){case 1://K1{f1=1;f2=0;}break;case 2://K2{f2=1;f1=0;}break;default : R=0;}}/******开关控制执行与显示选择函数************************************/void Auto(void){key_control();if(f1==0 && f2==0){LED1=LED2=1;}if(f1==1){LED1=0;LED2=1;}if(f2==1){LED1=1;LED2=0;}}/*********主函数*****************************************************/main(){P1M0 = 0x03; //设置P1.0/P1.1为高阻状态P1M1 = 0x00;InitADC();InitDA T();while(1){key_control();Auto();}}到此,关于电容感应按键的实验就完成了,制作是实验性质的,结果可供参考,经验仅供交流,如用于商业用途而产生的问题本人盖不负责,若欲转载(贴)请注明出处并望告知,若有用于广告引贴,本人保留追究的权力。

松翰科技推出触摸屏方案及内建嵌入式开发平台MCU

松翰科技推出触摸屏方案及内建嵌入式开发平台MCU

松翰科技推出触摸屏方案及内建嵌入式开发平台MCU
佚名
【期刊名称】《《中国集成电路》》
【年(卷),期】2010(019)005
【摘要】松翰科技近日于深圳及顺德举办新品发表会,为历年来公司所举办规模最盛大的一次技术研讨会议。

此次新品发表会议最主要系推出目前最火爆的电阻式触摸屏技术与电容式触控按键及内建嵌入式开发平台的8位单片机以及无线摄像头影音方案与智能家电方案等。

【总页数】1页(P8-8)
【正文语种】中文
【中图分类】TP311.56
【相关文献】
Scope嵌入式仿真开发平台讲座(17)TKScope与TKStudio联手推出高端ARM11仿真解决方案 [J], 广州致远电子有限公司
Scope嵌入式仿真开发平台讲座(18)TKScope推出多ARM器件仿真解决方案 [J], 广州致远电子有限公司
3.松翰推出高速USB2.0双核心摄像头方案SN9C201 [J], 无
4.Silicon Labs推出内建高速16位ADC的8位MCU系列 [J],
5.松翰推出触摸屏方案及内建嵌入式开发平台MCU [J], 志永
因版权原因,仅展示原文概要,查看原文内容请购买。

单片机按键的解决方法

单片机按键的解决方法

单片机按键的解决解决方案1、单片机上的按键控制一般采用两种控制方法:中断和查询。

中断必须借助中断引脚,而查询按键可用任何IO端口。

按键较少时,一个按键占用一个端口,而按键较多时,多采用矩阵形式(如:经常用4个端口作为输出,4个端口作为输入的4X4矩阵来获得16个按键);还可以用单片机的AD转换功能一个引脚接多个按键,根据电阻分压原理判断是哪个按键按下。

2、中断形式STM32可支持68个中断通道,已经固定分配给相应的外部设备,每个中断通道都具备自己的中断优先级控制字节PRI_n(8位,但是STM32中只使用4位,高4位有效),每4个通道的8位中断优先级控制字构成一个32位的优先级寄存器。

68个通道的优先级控制字至少构成17个32位的优先级寄存器.4bit的中断优先级可以分成2组,从高位看,前面定义的是抢占式优先级,后面是响应优先级。

按照这种分组,4bit一共可以分成5组第0组:所有4bit用于指定响应优先级;第1组:最高1位用于指定抢占式优先级,后面3位用于指定响应优先级;第2组:最高2位用于指定抢占式优先级,后面2位用于指定响应优先级;第3组:最高3位用于指定抢占式优先级,后面1位用于指定响应优先级;第4组:所有4位用于指定抢占式优先级。

所谓抢占式优先级和响应优先级,他们之间的关系是:具有高抢占式优先级的中断可以在具有低抢占式优先级的中断处理过程中被响应,即中断嵌套。

当两个中断源的抢占式优先级相同时,这两个中断将没有嵌套关系,当一个中断到来后,如果正在处理另一个中断,这个后到来的中断就要等到前一个中断处理完之后才能被处理。

如果这两个中断同时到达,则中断控制器根据他们的响应优先级高低来决定先处理哪一个;如果他们的抢占式优先级和响应优先级都相等,则根据他们在中断表中的排位顺序决定先处理哪一个。

每一个中断源都必须定义2个优先级。

有几点需要注意的是:1)如果指定的抢占式优先级别或响应优先级别超出了选定的优先级分组所限定的范围,将可能得到意想不到的结果;2)抢占式优先级别相同的中断源之间没有嵌套关系;3)如果某个中断源被指定为某个抢占式优先级别,又没有其它中断源处于同一个抢占式优先级别,则可以为这个中断源指定任意有效的响应优先级别。

STM8L系列超低功耗8位微控制器 说明书

STM8L系列超低功耗8位微控制器 说明书

STM8L1xx 典型应用和结构框图
医疗器械 血糖仪 胰岛素泵 糖尿病监护 血压计 胆固醇计 病人监控 心脏监护 仪表 电表/气表/水表/热表 称重 报警系统 中央处理单元 有线/无线传感器 门禁 通用移动设备 手机及配件 3D鼠标及遥控器 游戏机和玩具 GPS手表 体育设施
内部的16MHz RC振荡器 1~16MHz晶体 振荡器 内部的38kHz RC振荡器 32.768kHz晶体 振荡器 运行于16MHz的 STM8核心 嵌套的中断控制器 32个中断向量 多达40个外部中断 SWIM 调试模块 多达41个I/O端口 12位ADC 25个通道
STM8L系列
超低功耗8位微控制器
微控制 超节能
2009年9月
/mcu
STM8L超低功耗MCU系列
意法半导体公司开发出了基于8位STM8内核的超低功耗微控制器.借助一个优秀的面向未来的超低功耗平台,采 用了全新的超低漏电工艺和优化的体系结构,STM8L系列微控制器集合了高性能与超低功耗于一身.STM8L系列 现有三个子系列,可以满足对低功耗有特殊要求的多种应用.
STM8L一览
现在已有26个兼容的产品
Flash容量 (字节) STM8L152C8
64 K 32 K 16 K 8K
STM8L152R8 STM8L152M8 STM8L151R8 STM8L151M8
STM8L151C8 STM8L152K6 STM8L151G6 STM8L151K6 STM8L152K4 STM8L151G4 STM8L151K4 STM8L151F3 STM8L101F3 STM8L151G3 STM8L151K3 STM8L101G3 STM8L101K3 STM8L151G2 STM8L101G2 28引脚 QFN (4x4) 32引脚 LQFP (7x7)/ QFN (5x5) 48引脚 LQFP (7x7)/ QFN (7x7) STM8L152C6 STM8L151C6 STM8L152C4 STM8L151C4

利用51单片机,8个按键,8路发光二级管构成一个独立式键盘系统,按下8个按键,点亮对应的灯。

利用51单片机,8个按键,8路发光二级管构成一个独立式键盘系统,按下8个按键,点亮对应的灯。

电子信息工程学院电子设计应用软件训练任务【训练任务】:1、熟练掌握PROTEUS软件的使用;2、按照设计要求绘制电路原理图;3、能够按要求对所设计的电路进行仿真;【基本要求及说明】:1、按照设计要求自行定义电路图纸尺寸;2、设计任务如下:利用51单片机,8个按键,8路发光二级管构成一个独立式键盘系统,按下8个按键,点亮对应的灯。

3、按照设计任务在Proteus 6 Professional中绘制电路原理图;4、根据设计任务的要求编写程序,在Proteus下进行仿真,实现相应功能。

【按照要求撰写总结报告】指导教师年月日负责教师年月日学生签字年月日成绩评定表电子设计应用软件训练总结报告一.任务说明本次任务是利用51单片机、按键以及发光二极管设计一个独立式键盘系统,要求独立简单可控。

首先要明确51单片机的工作原理,在此基础上编写单片机程序,再载入到所连电路原理图中实现按键控制二极管亮灭。

此次任务需要完成电路原理图的绘制、单片机汇编语言的编程。

目的是通过本次设计熟悉Proteus软件的工作环境,掌握基本的操作及流程以及对单片机汇编语言的进一步学习,使之前的学习得到巩固。

二.原理图绘制说明总体而言,一个完善的系统最重要的是稳定,精确,设计简单,修护容易,成本低,体积小。

满足以上条件的系统我们都可以说是完善的系统。

因此,我在设计中选用了一些比较成熟的器件,这些器件都经过时间的考验,能稳定的工作,同时,价格也相对便宜。

下面对原理图中主要的硬件进行简单介绍。

2.1 AT89C51的基本概述AT89C5l单片机,是一种低功耗、高性能的、片内含有4KB Flash ROM的8位CMOS 单片机,工作电压范围为2.7~6V(实际使用+5V供电),8位数据总线。

它有—个可编程的全双工串行通信接口,能同时进行串行发送和接收。

AT89C51具有4K并行可编程的非易失性FLASH程序存储器,可实现对器件串行在系统编程ISP和在应用中编程(IAP)。

HT45R36 在触控滑条式按键中的应用

HT45R36 在触控滑条式按键中的应用

1 图1HT45R36在触控滑条式按键中的应用文件编码:HA0158S简介以HT45R36 8-Bit MCU 控制滑条触摸式按键面板。

HT45R36滑条触摸式显示控制板包含触摸按键 (Touch Switch) 和触摸式滑条 (Touch slider) 。

滑条是无极性滚动条,手在上面来回滑动,显示的数值会相应地加或减。

调到最大值时,则固定显示最大值,数值不再往上加;调到最小值也不再往下减。

两个按键分别实现单步加1和减1。

HT45R36 基本特征• 工作电压:f SYS = 4MHz : 2.2V ~ 5.5V f SYS = 8MHz : 3.3V ~ 5.5V• 25个双向输入/输出口• 2个与输入/输出共享引脚的外部中断输入• 8位可程序定时/计数器,具有溢出中断和8级预除频器 • 外部RC 振荡转换电路 • 内置晶体和RC 振荡电路 • 看门狗定时器• 16个触控按键SENSOR • 2048x14程序内存ROM • 128x8数据存储器RAM • HALT 和唤醒功能可降低功耗• 在VDD=5V ,系统时钟为8MHz 时,指令周期为0.5µs • 所有指令在1或2个指令周期内完成 • 查表指令,表格内容字长14位 • 4层硬件堆栈•位操作指令•强大的指令: 63条•低电压重置功能•44/52-pin QFP package硬件方块图硬件方块图图2方块图说明•电源:由2节干电池提供3V电压•MCU:HT45R36•显示:为2个7段LED数码管2硬件电路及说明电路图说明•电源输入电压为3V,由电池供电,供给整个电路。

•HT45R36采用外部晶振振荡。

•K1~K10为触摸感应式滑条,K11、K12位触摸按键。

Touch工作原理外部RC振荡器HT45R36提供一个外部RC振荡的功能。

外部RC振荡器包含有两个16位可编程向上计数器Timer A (其时钟来源于系统时钟或系统时钟四除频) 和Timer B (其时钟来源于外部RC振荡器)。

高度整合周边设备 盛群半导体再战8位MCU市场

高度整合周边设备 盛群半导体再战8位MCU市场
பைடு நூலகம்
陈一南先 生首先表示 , 位 MC 8 U不可能被取代 , 在许多 讯 号来源 等特点 ,可大幅降低整体使用 功耗,应 用于水表 、 领域诸如大量 的 P C周边外设产 品,8位 MCU完全 可 以满 仪器表 、 电产 品、 家 量测 仪表 等产 品中。 足其性能需 求,但在如汽 车 电子 引擎控 制中因其性 能要求
或3 2位取 代的声音 。在 8位 MCU市场,相 当大的份额还 按键 , 广泛应 用于遥控器 、 热水器等小 家电中。 依然被 Mi o h 、 re c l c c i Fe soe等欧美 日厂商 占据 。此 外因 8 r p
第二类低功耗 (i P we) Tn o r y MCU, 盛群此次推 出了 Tn — i y
C方案 ,从而能够达 商近年追逐 的市场热 点应用 。仅 8位 MCU 每年 的市场 销 硬件 ,做 出适用 不同行业需求 的专用 l 这种整体成本方 式, 帮助客 售额就达数 百亿 美元 。因而 欧美供应商 凭借技术优势 占据 到为客户 节省整体 的系统成 本。
着高利润 的汽 车 电子 市场 绝对份额 , 日韩供应商则在 消费 户减少 周边硬件成本 ,远远 超出 MCU 芯片本身节省 的成 用低价芯 片实现高品质 。 这种高度整 合的产品策略 为盛 电子等领域展 开激烈厮 杀。如何在残酷 的市场竞争 中寻求 本 ,
面对激 烈的竞争环境 , 陈~南表示 , 价格 战不是 明智 的 了 Fu h语音存储器 , ls 可板上语音 数据编程 , 主要应用在语 方式 。盛群采 取差异化产 品策略 ,即通 过整合外 围周边设 音 家 电、 语音 医疗产 品、 车语音报警 、 汽 语音型家庭安 防产 备, 将其集 成到 MCU中来获得市场 。盛群在推广 其多系列 品、 工业控制语音 装置等 。 圃

电容触摸按键式射频遥控器 方案介绍

电容触摸按键式射频遥控器 方案介绍
以8位微处理器的价格实现16位的性能和超低功耗 4KB Flash,256B SRAM 多达24 个支持电容触摸控制的I/O引脚
射频芯片:CC115L
CC115L sub-1GHz RF发送器与CC113L搭配实现低成本的RF 链路 可编程输出功率高达 +12dBm 可编程数据速率:范围是0.6至600kbps 频段:300-348MHz,387-464MHz 和 779-928MHz 支持2-FSK,4-FSK等
软件框图及主要特性
系统初始化
电容触摸按键 数量: 5个 尺寸: 10mm×10mm 支持单击与滑动功能
检测按键状态 NO 是否有按键按 下? YES 射频发射按键信息
指示LED
按键指示LED 轨迹指示LED 滑动指示LED
更新LED指示
谢 谢
电容触摸按键式射频遥控器 方案介绍
安富利上海设计中心
摘 要
1.方案背景介绍 2.设计原理图及介绍 3.方案硬件介绍 4.方案软件框图及介绍
方案背景介绍
电容触摸按键式射频遥控器是用于取代传统的家用遥控器,比起传 统的红外遥控器,更加轻松便捷。 所采用的无线射频信号,相比于传统的红外遥控,具有以下优点: 具有无方向性; 可以穿透或绕过障碍物; 传输距离远; 抗干扰能力强;
设计原理图
触摸按键工作原理介绍
基于 MSP430 的触摸式传感器采用张驰振荡技术来测量电容的变化;
张弛振荡系统由芯片内部比较器和外部感应电容组成,并通过外部参 考电阻设定充放电压;
针对张弛振荡系统的频率测量方法:
采用芯片内部低频时钟设定测量时间窗口,使用较高的张弛振荡频率 通过片内计数器来计数测量时间窗口中的振荡次数; 在测量窗口的下降沿和上升沿分别捕获定时器的输出, 两次捕获的定 时器计数差就是采样窗口中振荡的次数。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

前言
在需要用户界面的应用方案中,传统的机电开关正在被电容式触摸感应控制所替代。

Sino wealth已经开发了一套触摸感应软件,使得任意一款8位的中颖微控制器都可以作为一个电容式触摸按键控制器使用。

通过对由一个电阻和触摸电极电容组成的RC充放电时间的控制,该触摸感应软件可以检测到人手的触摸。

由于电极电容的改变,导致的RC充放电时间的改变,能够被检测出来,然后经过滤波等,最终通过专用的I/O端口,或者I2C/SPI 接口发送给主机系统。

该软件库所需的元器件BOM表,成本低廉,因为每个通道只需要两个电阻就可以实现触摸检测功能
RC感应原理
RC采样原理就是通过测量触摸电极电容的微小变化,来感知人体对电容式触摸感应器(按键、滚轮或者滑条)的触摸。

电极电容(C)通过一个固定的电阻(R)周期性地充放电。

电容值取决于以下几个参数:电极面积(A),绝缘体相对介电常数,空气相对湿度,以及两个电极之间的距离(d)。

电容值可由下列公式得出:
图1:RC电压检测。

固定电压施加在,的电压随着电容值的变化而相应增加或者降低,如图2所示。

图2:测量充电时间。

通过计算V OUT的电压达到阀值V TH所需要的充电时间(T C),来得到电容值(C)。

在触摸感应应用中,电容值(C)由两部分组成:固定电容(电极电容,C X)和当人手接触或者靠近电极时,由人手带来的电容(感应电容,C T)。

电极电容应该尽可能的小,以保证检测到人手触摸。

因为通常人手触摸与否,带来的电容变化一般就是几个pF(通常5pF)。

利用该原理,就可以检测到手指是否触摸了电极。

图3:触摸感应。

这就是用于检测人手触摸的触摸感应软件中感应层所采用的基本原理。

硬件实现
图4显示了一个实现的实例。

由R1,R2以及电容电极(C X)和手指电容(C T)并联的电容(大约5pF) 形成一个RC网络,通过对该RC网络充放电时间的测量,可以检测到人手的触摸。

所有电极共享一个“负载I/O”引脚。

电阻R1和R2尽量靠近MCU放置。

电容R1(阻值在几百欧到几兆欧之间)是主要电容,用于调节触摸检测的灵敏度。

电容R2(10KΩ)是可选的,用于减少对噪声影响。

图4:电容触摸感应实现实例。

3 软件实现
本章描述了触摸感应RC原理的实现。

3.1充电时间测量原理
为了保证健壮的电容触摸感应的应用,充电时间的测量需要足够的精确。

采用一个简单的定时器(无需IC功能)和一系列简单的软件操作,即定时地检查感应I/O端口上的电压是否达到阀值。

这样的话,时间测量的精确度就取决于执行一次完整软件查询需要的CPU周期数。

这种测量方法会由于多次测量带来一些抖动,但是由于没有硬件限制,这种方法适用于需要很多电极的场合。

基本测量
使用普通定时器进行充电时间的测量。

对电容充电开始之前,定时器的计数器数值被记录下来。

当采样I/O端口上的电压达到某个阀值(V TH)时,再次记录定时器计数器的值。

二者之差就是充电或者放电的时间。

图5:定时器计数器值。

过采样
过采样的目的是以CPU时钟的精度,对输入电压达到高电平和低电平(V IH和V IL)的时间测量。

为了跨越所有的取值范围,每次测量都比上一次测量延迟一个CPU时钟周期的时间。

为了跨越所有的取值范围,测量的次数是和MCU核相关的。

图6说明了这个概念的应用情况。

图6:输入电压测量。

输入电压测量的原理
为了提高在电压和温度变动情况下的稳定性,对电极会进行连续两次的测量:第一次测量对电容的充电时间,直到输入电压升至V IH。

第二次测量电容的放电时间,直到输入电压降至V IL。

下图以及以下的表格详细说明了对感应电极(感应I/O)和负载I/O引脚上的操作流程。

图7:电容充放电时间测量。

表2 电容充放电测量步骤
触摸的效果
电极的电容值(C X)取决于以下几个主要因素:电极的形状、大小,触摸感应控制器到电极之间的布线(尤其是地耦合),以及介电面板的材料和厚度。

因此,RC充放电时间直接和C X 有关。

图8说明了这种“触摸的效果”。

时间(即达到了V IH电平的时刻)比长;同样对于降至V IL电平的时间也比长。

图8:触摸效果实例。

多次测量以及高频噪声的去除
为了提高测量的精确度,并去除高频噪声,有必要对V IH和V IL进行多次的测量,然后再决定是否有按键被有效“触摸”。

图9:测量的种类。

注意:下图说明了去除噪声的实例。

如果测量次数(N)设置为4,那么对一个电极的完整测量将包括4次正确的“连续组测量”(BGs)。

这些实例展示了不同噪声影响下的测量。

绿色线条表示正确的V IH/V IL测量;而红色线条表示不正确的V IH/V IL测量。

图10 显示了没有噪声的影响,所有测量都有效的情况。

这个例子中,每个连续组测量中的测量都有效,使得一个完整的测量很快就可以完成。

图10:实例1。

图11 显示了有一些噪声使得某些测量无效的情况(即r1和r2)。

在这个例子中,连续组测量BG3重复了好几次,直到其中的所有测量都有效,该次组测量才算通过。

这样就需要较多的时间来完成一次完整的测量。

图11:实例2。

图12显示了有很多噪声,使得无效的组测量次数达到了最大限制(比如20)。

这样的话,整个电极测量都无效。

这个例子中,达到了无效的组测量次数的最大限制,因此停止对该电极的测量。

图12:实例3。

相关文档
最新文档