FPGA开发第四弹:触摸按键控制LED灯实验

触控按键的分类

​ 电阻式、电容式、红外感应式以及表面声波式

​ 本次实验的触摸按键为电容式触摸,下图为触摸过程电容的变化示意图。

​ 触摸按键电路原理图

​ 触摸IC型号为AR101(JL223B与AR101完全兼容),可以通过OP1和OP2两个引脚选择不同的工作模式:OP1拉低时,OUT引脚输出信号高电平有效;OP1拉高时,OUT输出信号低电平有效。

​ OP2拉低时,触摸IC处于同步模式(非自锁),即触摸时输出有效电平,松开后输出无有效电平;OP2拉高时触摸IC处于保持状态(自锁),检测到触摸操作后输出有效电平,松开后,输出电平保持不变,当再次检测到触摸操作时,输出电平变化并继续保持。

​ 系统时钟、复位按键、触摸按键和LED灯的管脚分配如下表。

对应的XDC约束语句如下图所示:

#时钟约束
creat_clock -name clk -period 20[get_ports clk]#IO约束
set_property -dict {PACKAGE_PIN R4 IOSTANDARD LVCMOS33} [get_ports clk]
set_property -dict {PACKAGE_PIN U2 IOSTANDARD LVCMOS33} [get_ports rst]
set_property -dict {PACKAGE_PIN T5 IOSTANDARD LVCMOS33} [get_ports touch_key]
set_property -dict {PACKAGE_PIN R2 IOSTANDARD LVCMOS33} [get_ports led]

模块端口及信号连接图

触摸按键控制LED代码:

module touch_led(input clk,input rst,input touch_key,output reg led
);reg touch_key0;reg touch_key1;wire touch_out;//上升沿触发器assign touch_out=(~touch_key1)&touch_key0; //当touch_key1为0//并且touch_key0时touch_out为1,否则都为0always @(posedge clk or negedge rst)
begin
if(rst==0)begintouch_key0<=1'b0;touch_key1<=1'b0;end
elsebegintouch_key0<=touch_key;touch_key1<=touch_key0;end
end//经典的边沿检测电路,检测touch_key的上升沿来捕获按键按下的信号
//一旦检测到按键按下,输出一个时钟周期的脉冲touch_outalways @(posedge clk or negedge rst)
begin
if(rst==0)led<=1'b1;//默认状态是高电平
elsebeginif(touch_out==1)//高电平led状态翻转,条件是touch_key1==0&touch_key0==1//就是touch_key0从0变为1,就是一个上升沿触发,只有当上升沿触发的时候才会led电平翻转led<=~led;end
end
endmodule

测试代码Testbentch

`timescale 1ns/1psmodule test();reg clk;
reg rst;
reg touch_key;//需要赋值,定义为regwire led;always #10 clk=~clk;always
begin
clk=1'b0;
rst=1'b0;
touch_key=0;
#200
rst=1'b1;
#40 touch_key=1'b1;
#200 touch_key=1'b0;
#40 touch_key=1'b1;
#200 touch_key=1'b0;
#40 touch_key=1'b1;
#200 touch_key=1'b0;
#40 touch_key=1'b1;
#200 touch_key=1'b0;
endtouch_led lh(
.clk(clk),
.rst(rst),
.touch_key(touch_key),
.led(led)
);//例化程序endmodule

仿真结果如下图所示

分析综合

约束输入

​ 然后要设计实现

下载比特流

​ 具体操作过程可以参考FPGA开发第一弹:FPGA开发第一弹:Vivado软件安装、开发使用与工程建立_WeeHours.的博客-CSDN博客_vivado 设置顶层

​ 以上就是我进行的触摸按键实验,继续熟悉整个FPGA开发的流程,如果自己做的项目的话其实每一步基本都不能缺失,每一步都需要我们认真总结掌握,多练几次也就熟练了!欢迎大家私信我一同交流学习,也欢迎大家批评指正!

FPGA开发第四弹:触摸按键控制LED灯实验相关推荐

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

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

  2. FPGA之触摸按键控制LED灯实验

    一.背景介绍 简介:触摸按键在稳定性.使用寿命.抗干扰能力等方面都优于传统的机械按键,被广泛应用于遥控器,便携式电子设备,楼道开关和各种智能控制等方面. 分类 电阻式触摸按键:是由多块导电薄膜按照按键 ...

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

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

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

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

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

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

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

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

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

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

  8. FPGA入门(5):控制LED灯

    文章目录 第17讲:触摸按键控制LED灯 第18讲:流水灯 第19讲:呼吸灯 第20讲:状态机 第21讲:无源蜂鸣器驱动实验 第17讲:触摸按键控制LED灯 触摸按键可分为四大类:电阻式.电容式.红外 ...

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

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

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

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

最新文章

  1. 求未知数X最临近的能被某个数字N整除的数
  2. fusionchart图表遮挡Ext下拉控件或日期控件解决办法(IE下有问题firefox与chrome正常)...
  3. android开发教程
  4. UML 类图. 对象图. 接口图. 用例图 .包,参与者. 依赖关系. 泛化/继承关系. 关联关系 .聚合/聚集关系. 实现关系 组合关系。
  5. CRC32碰撞解密压缩包密码的脚本
  6. Pool多进程的加速
  7. UVA 321 The New Villa
  8. 一个字符串中包含另一个字符串所有字符的最短子串长度?——《编程之美》最短摘要的生成的简化
  9. bind函数返回值-1_javascript函数柯里化
  10. 玩转接口测试,那些必备的技能
  11. ELM327 OBD to RS232 Interpreters
  12. 苹果mac交互原型设计软件:Axure RP
  13. 计算机应用基础试题及答案数据库,数据库原理试题及答案.doc
  14. python 窗体句柄_Python pyautogui窗口句柄(Python pyautogui window handle)
  15. Android 获取手机分辨率
  16. 视频剪辑的实用技巧快速分享
  17. python中fp是什么意思_详解python实现FP-TREE进行关联规则挖掘(带有FP树显示功能)附源代码下载(3)...
  18. 软件 黑苹果盒盖不休眠_怎么解决苹果电脑合盖自动休眠问题?
  19. 网络基础之网络布线、数制转换和子网划分
  20. KDRB-ZC变压器绕组阻抗测试仪

热门文章

  1. Power bi 4.20 词云
  2. 打造生产工具(1)——安装纯净windows系统
  3. 你有哪些“相见恨晚”的UE4学习资料?
  4. fastreport 横向分栏_fastreport分栏分组显示问题(急贴盼解决)
  5. 国内网络游戏开发技术现状和趋势
  6. 7的倍数(shell脚本 day01)
  7. 极客ios开发工程师 全套视频教程 教学视频
  8. 高项笔记1.信息化和信息系统
  9. 生物信息小知识_1_reads.contigs.scaffolds...
  10. 渗透之SQL注入-MYSQL常用语法