您当前的位置: 首页 >  fpga开发

正点原子

暂无认证

  • 4浏览

    0关注

    382博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

正点原子 发布时间:2021-10-23 12:27:22 ,浏览量:4

1)实验平台:正点原子新起点V2开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=609758951113 2)全套实验源码+手册+视频下载地址:http://www.openedv.com/thread-300792-1-1.html 3)对正点原子FPGA感兴趣的同学可以加群讨论:994244016 4)关注正点原子公众号,获取最新资料更新 在这里插入图片描述

第十一章触摸按键控制LED灯实验

随着电子技术的不断发展,按键的应用场景越来越广泛。触摸按键在稳定性、使用寿命、抗干扰能力等方面都优于传统的机械按键,被广泛应用于遥控器,便携电子设备,楼道电灯开关,各类家电控制面板等方面。本章将介绍触摸按键的控制方法并使用开发板上的触摸按键控制led的亮灭。 本章分为以下几个章节: 1111.1简介 11.2实验任务 11.3硬件设计 11.4程序设计 11.5下载验证 11.1简介 触摸按键主要可分为四大类:电阻式、电容式、红外感应式以及表面声波式。根据其属性的不同,每种触摸按键都有其合适的使用领域。 电阻式触摸按键由多块导电薄膜按照按键的位置印制而成,但由于耐用性较差且维护复杂,目前使用率较低;红外感应式触摸按键通过红外扫描来识别按键位置,一般在较恶劣的环境下使用;表面声波式触摸按键利用声波扫描来识别是否按下,使用寿命长,较适合公共场所的POS机,无人售货机等处使用。 电容式触摸按键:这种按键的诞生主要是为了克服电阻式按键耐用性差的不足所提出的。电容式触摸按键采用电容量为评判标准,其感应区域可穿透绝缘外壳(玻璃、塑料等)20mm以上。其灵敏度和可靠性不会因环境条件的改变或长期使用而发生变化,具有防水、强抗干扰能力强、适应温度范围广以及使用寿命长等优点,是现代使用最广泛,发展最迅速的一种触摸按键。 接下来,我们具体的了解一下电容触摸按键的构造和工作原理。 电容触摸按键主要由按键IC部分和电容部分构成。按键IC部分主要由元器件供应商提供,用于将电容的变化转换为电信号。电容部分指的是由电容极板,地,隔离区等组成触摸按键的电容环境。 任何两个导电的物体之间都存在着感应电容,在周围环境不变的情况下,该感应电容值是固定不变的。如图 11.1.1所示,手指接触到触摸按键时,按键和手指之间产生寄生电容,使按键的总容值增加。 在这里插入图片描述

图 11.1.1 触摸按键寄生电容示意图 触摸按键按下前后,电容的变化如图 11.1.2所示。电容式触摸按键IC在检测到按键的感应电容值改变,并超过一定的阈值后,将输出有效信号表示按键被按下。 在这里插入图片描述

图 11.1.2 触摸过程电容变化示意图 11.2实验任务 使用触摸按键控制LED灯亮灭,开发板上电后LED为点亮状态,手指触摸后LED熄灭,再次触摸,LED点亮。 11.3硬件设计 新起点开发板上的触摸按键部分的原理图如图 11.3.1所示、多功能端口原理图如图 11.3.2所示。 在这里插入图片描述

图 11.3.1 触摸按键电路原理图 在这里插入图片描述

图 11.3.2 多功能端口原理图 开发板上所使用的触摸IC型号为AR101,它可以通过OP1和OP2两个引脚选择不同的工作模式:OP1拉低时,OUT引脚输出信号高电平有效;OP1拉高时,OUT输出信号低电平有效。 当OP2拉低时,触摸IC工作在同步模式(类似于非自锁的轻触按键),即触摸时输出有效电平,松开后无有效电平输出;OP2拉高时触摸IC工作在保持模式(类似于自锁按键),即检测到触摸操作后输出有效电平,松开后,输出电平保持不变。当再次检测到触摸操作时,输出电平变化并继续保持。 如图 11.3.1所示,触摸IC的引脚OP1和OP2均拉低,因此当手指按在触摸按键上时,TOUT管脚输高电平,松开后输出低电平。 这里需要注意的是,由图 11.3.1和图 11.3.2所可知,TOUT引脚并没有直接连接到FPGA引脚,而是连接到P4多功能端口上,而P4上的TPAD是和FPGA的引脚相连接的,因此,我们在做触摸按键的实验时,需要使用跳帽或者杜邦线将P4上的TPAD和TOUT短接在一起。 本实验中,系统时钟、复位按键、触摸按键和LED灯的管脚分配如下表所示。 在这里插入图片描述

对应的TCL约束语句如下: set_location_assignment PIN_M2 -to sys_clk set_location_assignment PIN_M1 -to sys_rst_n set_location_assignment PIN_F8 -to touch_key set_location_assignment PIN_D11 -to led 11.4程序设计 本次设计的模块端口及信号连接如图 11.4.1所示。通过对按键信号上升沿的识别来进行控制信号的切换,起到控制LED亮灭的效果。 在这里插入图片描述

图 11.4.1 模块端口及信号连接图 触摸按键控制led代码如下:

1   module touch_led(
2       //input
3       input        sys_clk,      //时钟信号50Mhz
4       input        sys_rst_n,    //复位信号
5       input        touch_key,    //触摸按键 
6   
7       //output
8       output  reg  led           //LED灯
9   );
10  
11  //reg define
12  reg    touch_key_d0;
13  reg    touch_key_d1;
14  
15  //wire define
16  wire   touch_en;
17  
18  //*****************************************************
19  //**                    main code
20  //*****************************************************
21  
22  //捕获触摸按键端口的上升沿,得到一个时钟周期的脉冲信号
23  assign  touch_en = (~touch_key_d1) & touch_key_d0;
24  
25  //对触摸按键端口的数据延迟两个时钟周期
26  always @ (posedge sys_clk or negedge sys_rst_n) begin
27      if(!sys_rst_n) begin
28          touch_key_d0             
关注
打赏
1665308814
查看更多评论
0.0374s