按键驱动LED地实验课设资料.doc
《按键驱动LED地实验课设资料.doc》由会员分享,可在线阅读,更多相关《按键驱动LED地实验课设资料.doc(8页珍藏版)》请在课桌文档上搜索。
1、word设计一:按键驱动LED的实验一、 设计目的学会用Verilog语言编写所需要的程序,会对自己编写的程序进展编译和仿真,懂得根据仿真软件提示的错误进展修改,也需要对通过仿真改正功能的错误。并学会检测按键和控制LED的输出。本实验是通过FPGA检测I/O口上的按键信号,通过时序控制两个LED灯以流水灯的方式各亮灭六次。最后灯保持灭的状态。二、 设计原理该实验的主要问题是FPGA如何捕获到按键是否按下。当按键按下时,输入电平会由高变低,按键松开后,输入电平会由低变高,这就有一个上升沿和一个下降沿。捕获到这两个沿。就可以确认按键按下。检测到按键按下时,开始实现设计的功能。由于两个LED灯亮灭有
2、时间控制。所以需要分频。由于FPGA的内部频率是66兆赫兹,如此需要分频65999999次能达到一秒。最后编写主要的功能程序,首先让两个LED灯都置于高电平,当检测到按键按下时,时间过了一秒之后,led1开始亮,又过了一秒,LED2和LED1对LED1取反,实现了一亮一灭的功能。这样循环六次后,分别将两灯置于高电平,即灭的状态。在此过程中,假如复位键置于高电平,如此亮灯都暗。三、 设计成果1、模块划分或者状态机1键盘的检测2分频3实现流水灯的模块2、模块设计计数模块用来计数的。低电平和计数器满时,复位。否如此计数器不断的计数加一,直到计数满时再复位。 always(posedge clk or
3、 negedge reset_n)begin if(!reset_n) t1=20d0;else t1=t1+1b1;endalways(negedge reset_n or posedge clk)begin if(reset_n=1b0) begin t=28d0; end else begin if(t=28d00000099) begin t=28d0; end else t=t+1; endendreg yimiao;always(negedge reset_n or posedge clk)begin if(reset_n=1b0) begin yimiao=1b0; end el
4、se begin if(t=28d00000099) yimiao=1b1; else if(yimiao) yimiao=1b0; end end键盘的检测模块 always(negedge reset_n or posedge clk) begin if(reset_n=1b0) key1_dly=1b0; else key1_dly= key1; end always(negedge reset_n or posedge clk) begin if(reset_n=1b0) key1_dly1=1b0; else key1_dly1= key1_dly; end always(neged
5、ge reset_n or posedge clk) begin if(reset_n=1b0) key1_nege_flag=1b0; else if(key1_dly=1b0&key1_dly1=1b1) key1_nege_flag =1b1; else if(key1_valid=1b1) key1_nege_flag =1b0; end always(negedge reset_n or posedge clk) begin if(reset_n=1b0) key1_pose_flag=1b0; else if(key1_nege_flag=1b1) begin if(key1_dl
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 按键 驱动 LED 实验 资料
![提示](https://www.desk33.com/images/bang_tan.gif)
链接地址:https://www.desk33.com/p-7555.html