我是靠谱客的博主 清爽水蜜桃,最近开发中收集的这篇文章主要介绍按键控制led灯亮灭编写程序_FPGA学习altera系列: 第十篇 按键控制LED,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

26c307590b4044d8d5a41ecaf1b3b4a3.gif大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分。大侠可以关注FPGA技术江湖,在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢。

今天给大侠带来“FPGA学习系列 altera"系列,持续更新。此学习心得是本人之前所写,所用设计软件为Quartus II 13.1,现Quartus II 新版本已更新到19+,以下仅供初学者学习参考。后续会更新其他系列,敬请关注。话不多说,上货。

按键控制LED

对于每一个的小实验,我们都可以把它看作是一个小项目,逐步的去分析,设计,调试,最后完成功能。下面我们就开始我们的“小项目”。 项目名称:按键控制led。 具体要求:按下按键led亮,释放按键led灭。 通过分析上述的“项目名称”和“具体要求”,我们可以设计出如下的架构: 251ab7b2abb66fc8deaf7a9cd56eb8d0.png   当我们需要用到外部按键和led时,我们应该去分析它们的工作原理,如下:

507d16ea4a7bd65aa8023cfd65380ca9.png

独立按键的电路图

6834947487c336d6099d2531037946ae.png

Led的电路图

简单的分析得知:按键按下为低电平,按键释放为高电平。输出为高电平时,led灭,输出为低电平时,led亮。

在verilog中/*······*/,中间的内容会被注释掉,不被编译进去。‘//·····’表示这一行//后面的内容会被注释掉,不被编译进去。

设计代码如下:

/*模块名称:key_led模块功能:按下按键led亮,释放按键led灭 作者:郝旭帅邮箱:746833924@qq.com*/module key_led (clk, rst_n, key, led);  input clk;  input rst_n;//低电平有效的复位  input key;    output reg led;//低电平led亮  always @ (posedge clk or negedge rst_n )     begin  // 时序逻辑,异步复位      if (!rst_n)        begin          led <= 1'b1;        end      else        begin          if (key == 1'b0)            begin//按键按下              led <= 1'b0;            end          else            begin//按键释放              led <= 1'b1;            end        end    end    endmodule
激励代码如下:
/*模块名称:key_led_tb模块功能:为key_led模块提供激励信号作者:郝旭帅邮箱:746833924@qq.com*/`timescale 1ns/1psmodule key_led_tb;    reg clk;  reg rst_n;//低电平有效的复位  reg key;    wire led;//低电平led亮  initial begin    clk = 1'b1;    rst_n = 1'b0;    key = 1'b1;//复位时,按键释放    # 200 // 复位200ns        rst_n = 1'b1;    # 200        key = 1'b0;    # 200//按下200ns        key = 1'b1;//按键释放    # 200    $stop;  end    always # 10 clk = ~clk;//50M    key_led key_led_dut(      .clk(clk),      .rst_n(rst_n),      .key(key),       .led(led)    );    endmodule
笔者手中的板子的本地晶振为:50MHz。故而,所有的仿真中,时钟都是50MHz。

仿真波形如下:

55b968efd22db891b797f2dacbffeeed.png

当按键按下时,led亮,按键释放,led灭。

设计正确,下板即可验证。如果小伙伴的电路原理和笔者的不一样,请自行更改设计。如果还是有不明白的小伙伴可以发邮件到我邮箱或者加群询问。

END制作人:郝旭帅(QQ:746833924)         QQ交流群:173560979(进群备注地区+名字)大侠们,江湖偌大,继续闯荡,愿一切安好,有 缘再见! ea626f1a4ae3cc8ad248a8e556520a98.gif

f5d76b6bccc837f7b706c7414df2c9aa.png

FPGA技术江湖广发江湖帖

无广告纯净模式,给技术交流一片净土,从初学小白到行业精英业界大佬等,从军工领域到民用企业等,从通信、图像处理到人工智能等各个方向应有尽有,QQ微信双选,FPGA技术江湖打造最纯净最专业的技术交流学习平台。

FPGA技术江湖微信交流群

afffb56eb22d0ed9b5a8cfeb856f80ec.png

加群主微信,备注职业+方向+名字进群

FPGA技术江湖QQ交流群

82728d381e155e4a568817d01371ad04.png

备注地区+职业+方向+名字进群

df2dce9d58b18da0f2063bd84216e706.png

最后

以上就是清爽水蜜桃为你收集整理的按键控制led灯亮灭编写程序_FPGA学习altera系列: 第十篇 按键控制LED的全部内容,希望文章能够帮你解决按键控制led灯亮灭编写程序_FPGA学习altera系列: 第十篇 按键控制LED所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部