触摸按键控制LED灯

这篇具有很好参考价值的文章主要介绍了触摸按键控制LED灯。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.理论

2.代码

2.1 touch_ctrl_led.v

2.2 tb_touch_ctrl_led


1.理论

触摸按键控制LED灯,fpga开发触摸按键控制LED灯,fpga开发

触摸按键控制LED灯,fpga开发

触摸按键控制LED灯,fpga开发

以上的波形图的touch_flag是采用组合逻辑的方式产生的。

触摸按键控制LED灯,fpga开发

以上的touch_flag是采用时序逻辑产生的,时序逻辑会延迟一拍。

触摸按键控制LED灯,fpga开发

触摸按键控制LED灯,fpga开发

以上是上升沿和下降沿的组合逻辑和时序逻辑实现,逻辑或的写法刚好是逻辑与的两个寄存器的值反过来。

2.代码

2.1 touch_ctrl_led.v

module touch_ctrl_led(
	input 	wire		sys_clk		,
	input 	wire 		sys_rst_n		,
	input 	wire 		touch_key		,
	
	output 	reg			led		
);

reg touch_key_1;
reg touch_key_2;
wire touch_flag; //因为没有延迟一拍所以是组合逻辑,wire形

//边沿检测的作用就是能够准确识别出单比特信号的上升沿或下降沿
assign touch_flag=((touch_key_1==1'b0)&&(touch_key_2==1'b1));

always@(posedge sys_clk or negedge sys_rst_n)
	if(sys_rst_n==1'b0)
		begin
			touch_key_1<=1'b1;
			touch_key_2<=1'b1;
		end
	else if(sys_rst_n==1'b1)
		begin
			touch_key_1<=touch_key;
			touch_key_2<=touch_key_1;
		end
		
always@(posedge sys_clk or negedge sys_rst_n)
	if(sys_rst_n==1'b0)
		led<=1'b1;
	else if(touch_flag==1'b1)
		led<=~led;
	else
		led<=led;
		
endmodule

2.2 tb_touch_ctrl_led

`timescale 1ns/1ns
module tb_touch_ctrl_led();

reg sys_clk;
reg sys_rst_n;
reg touch_key;
wire led;

initial
	begin
		sys_clk=1'b1;
		sys_rst_n=1'b0;
		touch_key=1'b1;
		#20
		sys_rst_n=1'b1;
		#200
		touch_key=1'b0;
		#2000
		touch_key=1'b1;
		#1000
		touch_key=1'b0;
		#3000
		touch_key=1'b1;
	end
	
	
always #10 sys_clk=~sys_clk;

touch_ctrl_led touch_ctrl_led_inst(
	.sys_clk	(sys_clk),
    .sys_rst_n  (sys_rst_n),
    .touch_key  (touch_key),
	.led		(led)

);  
   	
endmodule

2.3 仿真结果

触摸按键控制LED灯,fpga开发

触摸按键控制LED灯,fpga开发

触摸按键控制LED灯,fpga开发文章来源地址https://www.toymoban.com/news/detail-817197.html

到了这里,关于触摸按键控制LED灯的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 四个按键控制led的四种变化(按键控制led)(附源码)

    使用开发板上的四个按键控制四个LED灯。按下不同的按键时,四个LED灯显示不同效果。本实验是在EP4CE6F17C8开发板上实现,仿真请用modelsim Altera 仿真代码: 注意:该实验并未进行按键消抖,需一直按着按键才能让该按键所操控的led变化功能实现。

    2024年02月06日
    浏览(38)
  • 16个触摸按键,16个8段LED数码管大电流自动刷新,STC8H4K64TL

    16个触摸按键,16个8段LED数码管大电流自动涮新,STC8H4K64TL STC8H4K64TL-45MHz-LQFP48/32, QFN48/32, 主要功能演示板, 附详细的演示程序/原理图,大家可在本贴技术讨论 1,演示了16个触摸按键输入的效果, 2,演示了 大电流自动涮新 16个8段LED数码管,简化了硬件设计,减轻了CPU的压力,

    2024年02月10日
    浏览(37)
  • 按键控制led变化

    使用按键控制开发板上一个led灯的亮灭,当按键按下的时候led灯就亮,当再一次按下按键的时候led就不亮了。由于按键存在抖动,按键松开的时候led灯就不亮,所以需要一个消抖模块对按键消抖 总的来说编写不算复杂,需要注意的是模块之间的连接和按键消抖模块

    2024年02月16日
    浏览(33)
  • SoC-按键控制led

    1.hps_0.h 2.main.c SoC

    2024年02月10日
    浏览(38)
  • 按键控制LED闪烁实验

    实验任务: 本节实验任务是使用底板上的PL_KEY0和PL_KEY1按键来控制底板上的PL_LED0和PL_LED1两个LED的闪烁方式。没有按键按下时,两个LED保持常亮;如果按键0按下,则两个LED交替闪烁;如果按键1按下,则两个LED同时闪烁。 模块示意图:   模块代码实现: modulekey_led( input     

    2024年02月04日
    浏览(43)
  • 独立按键控制led灯

    今天,我们来学习关于独立按键来控制led灯的知识。 1.独立按键控制led灯亮灭 首先是来用一个独立按键控制一个led灯的亮灭。其中独立按键由P3表示,其具体电路图如下                     其中第一个按键为P3_1,第二个按键为P3_0,第三个按键为P3_2,第四个按键为P3_3,很明

    2024年02月08日
    浏览(46)
  • 按键控制 LED 实验

    目录 1 按键简介 2 实验任务 3 硬件设计 4 程序设计 5 下载验证         按键开关是一种电子开关,属于电子元器件类。         轻触式按键         自锁式按键         使用底板上的 PL_KEY0 和 PL_KEY1 按键来控制底板上的 PL_LED0 和 PL_LED1 两个 LED 的闪烁方式。没有

    2024年02月11日
    浏览(39)
  • 【stm32----按键中断实验,按键控制LED灯】

    1、按下KEY1,LED1亮,再次按下KEY1,LED1灭; 2、按下KEY2,LED2亮,再次按下KEY2,LED2灭; 3、按下KEY3,LED3亮,再次按下KEY3,LED3灭; 一、头文件 1、gpio.h 2、key.h 二、初始化函数及功能函数 1、gpio.c 2、key.c 三、中断处理函数 do_irq.c 四、主函数 main.c 依次按下key3、key2、key1、key2

    2024年02月04日
    浏览(51)
  • STM32按键控制LED

    1.利用模块化编程对LED 2.设置LED的几种状态(亮,灭,和利用按键反转电平) 3.按键 (1)按键初始化 (2)如果按键按下做什么(这里是控制LED) 4,主函数

    2024年02月12日
    浏览(40)
  • 驱动——按键中断控制LED灯实验

    要求:按键按一下灯亮,再按一下灯灭 注:由于开发板位置,为了方便一一对应观察,采用key1控制LED3,key2控制LED2,key3控制LED1 0、添加相关设备树节点信息 ①按键相关引脚,通过原理图可得: key1------gpiof9; key2------gpiof7; key3------gpiof8 ②LED灯相关引脚: led1-----gpioe10; led2---

    2023年04月18日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包