一、背景介绍

  • 简介:触摸按键在稳定性、使用寿命、抗干扰能力等方面都优于传统的机械按键,被广泛应用于遥控器,便携式电子设备,楼道开关和各种智能控制等方面。
  • 分类
    • 电阻式触摸按键:是由多块导电薄膜按照按键的位置印制而成,但由于耐用性较差且维护复杂,目前使用率较低;
    • 电容式触摸按键:它的诞生主要是为了克服电阻式按键耐用性差的不足所提出的。电容式触摸按键采用电容量来评判标准,其感应区域可穿透绝缘外壳(玻璃、塑料等)20mm以上。其灵敏度和可靠性不会因环境条件的改变或者长期使用而发生变化,具有防水、强抗干扰能力、适应温度范围广以及使用寿命长等优点,是现代使用最广泛,发展最迅速的一种触摸按键。
    • 红外感应式触摸按键:通过红外扫描来识别按键位置,一般在较恶劣的环境下使用;
    • 表面声波式触摸按键:利用声波扫描来识别是否按下,使用寿命长,较适合公共场合的pos机,无人售货机等处使用。
  • 电容触摸按键的构造和工作原理
    • 电容触摸按键主要由按键IC部分和电容部分构成。按键IC部分主要由元器件供应商提供,用于电容的变化转换为电信号。电容部分指的是由电容极板、地、隔离区等组成触摸按键的电容环境。
    • 任何两个导电的物体之间都存在着感应电容,在周围环境不变的情况下,该感应电容值是固定不变的。当手指触摸到触摸按键时,按键和手指之间产生寄生电容,使电容的总容值增加。按键按下后电容的变化如下图所示:

  • 电容式触摸按键IC在减测到按键的感应容值改变,并超过一定的阈值时,将输出有效信号表示按键被按下。

二、实验工程

  • 任务:使用触摸按键控制LED灯亮灭,开发板上电后LED为点亮状态,手指触摸后LED熄灭,再次触摸,LED点亮。
  • 硬件电路图

       开发板上所使用的触摸IC型号为AR101,它可以通过OP1和OP2两个引脚选择不同的工作模式:OP1拉低时,OUT引脚输出信号高电平有效;OP1拉高时,OUT输出信号低电平有效。 当OP2拉低时,触摸IC工作在同步模式(类似于非自锁的轻触按键),即触摸时输出有效电平,松开后无有效电平输出;OP2拉高时触摸IC工作在保持模式(类似于自锁按键),即检测到触摸操作后输出有效电平,松开后,输出电平保持不变。当再次检测到触摸操作时,输出电平变化并继续保持。

       如图 10.3.1所示,触摸IC的引脚OP1和OP2均拉低,因此当手指按在触摸按键上时,TOUT 管脚输高电平,松开后输出低电平。

在做触摸按键的实验时,需要使用跳帽或者杜邦线将P4上的TPAD和TOUT短接在一起。
  • 实验管教分配图

  • 程序设计

采用系统50NHZ时钟,实验中按键按住时会从低电平转换成高电平,所以只需要检测上升沿就可以判断是否按键按下,同时控制LED信号!

module touch_key(input sys_clk,input sys_rst_n,input key,output reg   led
);reg  key_reg;
wire  key_flag;always @(posedge sys_clk or negedge sys_rst_n)beginif(!sys_rst_n)key_reg<=1'b0;elsekey_reg<=key;
endassign   key_flag=(key_reg)&~key;always @(posedge sys_clk or negedge sys_rst_n)beginif(!sys_rst_n)led<=1'b0;else if(key_flag)led<=~led;elseled<=led;
endendmodule

其中主要是检测上升沿    通过保存 按键上一时钟周期的状态和当前按键状态的取反相与得到一个脉冲信号,通过判断该信号来知道按键是否被按下过

开发板提供写法如下:

 module touch_key( input        sys_clk,            //时钟信号50Mhz input        sys_rst_n,        //复位信号 input        key,        //按键信号 //output output   reg  led           //LED灯 ); //reg define reg    touch_key_d0; reg    touch_key_d1; //wire define wire   touch_en; //***************************************************** //**                  main code //*****************************************************
//根据按键信号的上升沿判断按下了按键
assign  touch_en =  (~touch_key_d1) & touch_key_d0; //对触摸按键端口接收的数据延迟两个周期
always @ ( posedge sys_clk  or  negedge sys_rst_n)  begin if(sys_rst_n  == 1'b0)  begin touch_key_d0  <= 1'b0; touch_key_d1  <= 1'b0; end else  begin touch_key_d0  <= key; touch_key_d1  <= touch_key_d0; end
end //根据上升沿使能信号切换led状态
always @ ( posedge sys_clk  or  negedge sys_rst_n)  begin if (sys_rst_n  == 1'b0) led  <= 1'b1; else  if (touch_en) led  <= ~led; end endmodule

通过两个代码的比对发现一个现象,我写的这段 代码,当按键按下,手指拿走后灯的状态才会改变,而开发板历程是当手指按上时灯的状态就会改变。

其中的原因又是什么喃?

采用signalTap II仿真结果如上图所示。

开发板代码仿真效果

通过对比发现  上面的仿真是在按键松开时产生的脉冲   下面的仿真是在按键刚按延时一个周期后产生的脉冲

总的来说,都能实现需要的按键控制功能!!!

本实验到此结束!!!

FPGA之触摸按键控制LED灯实验相关推荐

  1. 【正点原子FPGA连载】第十一章 触摸按键控制LED灯实验 -摘自【正点原子】领航者ZYNQ之FPGA开发指南_V2.0

    1)实验平台:正点原子领航者ZYNQ开发板 2)平台购买地址:https://item.taobao.com/item.htm?&id=606160108761 3)全套实验源码+手册+视频下 ...

  2. verilog学习笔记- 12)触摸按键控制LED灯实验

    目录 简介: 实验任务: 硬件设计: 程序设计: 下载验证: 简介: 触摸按键主要可分为四大类:电阻式.电容式.红外感应式以及表面声波式.根据其属性的不同,每种触摸按键都有其合适的使用领域. 电阻式触 ...

  3. 触摸按键控制 LED 灯实验

    1 触摸按键简介 触摸按键主要可分为四大类:电阻式.电容式.红外感应式以及表面声波式.根据其属性的不同,每 种触摸按键都有其合适的使用领域. 电阻式触摸按键由多块导电薄膜按照按键的位置印制而成,但由于 ...

  4. led计数电路实验报告_「正点原子FPGA连载」第八章 按键控制LED灯实验

    1)实验平台:正点原子开拓者FPGA开发板 2)本实例源码下载:请移步正点原子官网 第八章 按键控制LED灯实验 按键是常用的一种控制器件.生活中我们可以见到各种形式的按键,由于其结构简单,成本低廉等 ...

  5. 【FPGA基础快速入门6】实战-----触摸按键控制LED灯的学习

    [FPGA基础快速入门6]实战-----触摸按键控制LED灯的学习 触摸按键的种类 触摸按键主要可以分为四大类: 电阻式.电容式.红外感应式以及表面声波式. 1.电阻式触摸按键又多块导电薄膜按照按键的 ...

  6. FPGA-04 触摸按键控制LED灯

    (1)实验任务 使用触摸按键控制LED灯亮灭,开发板上电后LED为点亮状态,手指触摸后LED熄灭,再次触摸,LED点亮 (2)硬件设计 引脚分配 当OP2拉低时,触摸IC工作在同步模式(类似于非自锁的 ...

  7. 《STM32从零开始学习历程》——USART串口通讯实验篇2——指令控制LED灯实验

    <STM32从零开始学习历程>@EnzoReventon USART串口通讯实验篇2--指令控制LED灯实验 本实验是在<USART串口通讯实验篇1--中断接收与发送>的基础上 ...

  8. 驱动——按键中断控制LED灯实验

    三个按键实现按键中断 要求:按键按一下灯亮,再按一下灯灭 注:由于开发板位置,为了方便一一对应观察,采用key1控制LED3,key2控制LED2,key3控制LED1 0.添加相关设备树节点信息 ① ...

  9. 触摸按键控制LED灯

    这里采用电容式触摸按键,电容式触摸按键主要由按键IC部分和电容部分构成:按键IC用于将电容的变化转换为电信号:电容部分指的是由电容极板.地.隔离区等组成触摸按键的电容环境.电容式触摸按键主要是为了弥补 ...

最新文章

  1. grafana 监控mysql_Prometheus+Grafana监控MySQL性能
  2. python官网怎么下载安装-Python怎么下载安装
  3. 创建Servlet项目(IDEA版)
  4. 资源 | 普通程序员如何自学机器学习
  5. Qt OpenGL 图像的平移(使用glTranslatef)
  6. 直接拿来用!最火的Android开源项目(一) (转)
  7. 安装win7和Centos后,默认启动项的修改.
  8. [2018.08.09 T3] 几何题
  9. 编译器之词法分析器(Lexical Analyzer)
  10. 关于unity,Player打包面板的信息(上)
  11. 计算机技术研究生省考,省考,硕士学历计算机技术(专硕)可以报计算机类的职位吗...
  12. bin code led_一种led颜色BIN划分方法与流程
  13. SpringBoot源码分析(二)之自动装配demo
  14. Me-tetrazine-Disulfo-Cyanine5,甲基四嗪-磺酸基菁染料Cy5,蓝色固体
  15. crack.vbs病毒,u盘里的所有文件全部变成快捷方式
  16. hadoop大数据生态集群
  17. gpd linux内核,linux内核驱动ZLG7290芯片
  18. Java学习12.6
  19. 【NOIP2013模拟联考5】小麦亩产一千八(kela) (Standard IO)
  20. 2019暑假五考Ronald(神仙结论题)

热门文章

  1. MTK平台 mt6771 GPIO控制
  2. JavaScript:回调函数(callback)
  3. 阿里云国际使用高速通道在 VPC 之间建立内网连接
  4. 基于AWS的云架构设计最佳实践——万字长文:云架构设计原则|附PDF下载
  5. 香港大学尹国圣教授:统计学家眼中的医学AI丨CCF-GAIR 2019
  6. 【LeetCode】860. 柠檬水找零(C语言)
  7. Nd2d引擎学习笔记
  8. Pick-it 3D视觉系统应用集锦
  9. 【Java后端认证答辩、面试题】
  10. Linux中级实战专题篇:rabbitmq(消息中间件p2p模式和pub模式,消息队列rabbitmq详解,单机安装,集群部署以及配置实战)