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. 自编自导自演年会节目《程序员》
  2. accesskey 提交
  3. idea springboot jrebel hotreloaded
  4. 从双十一强化体验认知,看苏宁的“自增强回路”增长飞轮
  5. 【Android开发学习笔记之一】5大布局方式详解
  6. pysvn安装及常用方法
  7. TYVJ P1051 选课 Label:多叉转二叉树形dp(虐心♥)
  8. pycharm cant open file_PyCharm
  9. leetcode1405. 最长快乐字符串(贪心算法)
  10. flink sql udf jar包_编写Hive的UDF(查询平台数据同时向mysql添加数据)
  11. My_software_list
  12. CentOS SSH配置
  13. placeholder和assign速度对比
  14. docker stats 监控资源使用情况
  15. android接推流sdk,Android-SDK推流端说明
  16. Fedora9下编译内核
  17. Chrome浏览器保存整个网页为图片
  18. html网站运行天数代码,给网站加上运行时间天数统计代码
  19. 2021阿里云开发者大会——时隔两年平头哥有哪些杰作?
  20. UG NX二次开发 - CAM 获取和设置公差的方法,含内外公差、边界内外公差的设置方法

热门文章

  1. PowerBI自动切换中英文单位
  2. 使用kvm部署虚拟化服务器,KVM虚拟化(KVM的部署及使用)
  3. 龙之谷2服务器维护,龙之谷2更新后进不去游戏解决方法
  4. c/c++实现带图形界面的扫雷游戏
  5. 用Qt图形视图框架开发拼图游戏
  6. mybatis一级缓存,二级缓存的开启、关闭、清除及使用说明
  7. shell script简介
  8. python所有字母大写_在python中将所有字母改为大写
  9. ios开发工程师常见面试题汇总
  10. jena java_对Jena的简单理解和一个例子