www.qpwy.net > 如何用vErilog实现一个开关控制LED灯。

如何用vErilog实现一个开关控制LED灯。

module leds( input button, input clk, output reg ctrl[2:0] ); reg button_dly; wire button_vld; always@(posedge clk) button_dly

module leds( input button, input clk, output reg ctrl[2:0]); reg button_dly; wire button_vld; always@(posedge clk) button_dly <= button; assign button_vld = button & ~button_dly; always@(posedge clk) if(button_vld ) case (ctrl) 3'b001:ctrl<=3'b010; 3'b

按键低电平有效,led灯低电平时亮.按键按下亮,松开灭.程序较简单,为组合逻辑电路,没有按键防抖功能.module led(led,key);input key;output led;reg led_out;always@(key) if(!key) led_out=1'b0; else led_out=1'b1;assign led=led_out;endmodule

这个程序可以不用时钟,即使使用时钟你这个方法也是不对的; 正确的做法:如果按键a低表示按下,那么只需要判断a的上升沿然后加一次就可以了,同时你需要一个复位按键用来复位;具体程序如下,已仿真,完全正确;请给分,有不明白

可以看看verilog语法书,具体代码如下:always @ (posedge clk) begin if(SW)//SW是一个开关,分配一个开关引脚 light<=1; //输出高电平,灯点亮 else light<=0;输出低电平,灯灭 end 这是一个非常简单的程序,如果你看过一边语法书后这样的都不会写,那你可以不要做fpga了.

假设输入频率知是50hz,那么周期是0.02s=20nm也就是道说需要内一个50的计数器容来翻转module auto_turn_on_off( clk, reset, turn);input clk; //50hzinput reset; // high enableoutput turn; //the controlreg [5:0] counter;always @(posedge clk or

台灯可以采用PWM调光,LED驱动电路可以采用恒流驱动芯片

module ledcon(clk,rst,led); input clk,rst; output [3:0] led; //高电平有效 reg [3:0] led_r; //led控制寄存器 reg [19:0] cnt; //计数器 always @(posedge clk or negedge rst) if(!rst) cntelse cnt always @(posedge clk or negedge rst) if(!rst) led_relse if (cnt==20'hfffff) led_r assign led=led_r; endmodule

给你一个例子 , 5个led灯,通过开关来选择显示模式:led是 1为亮,0为灭 sel是 1为选中,0为不选 led默认状态是 全亮5'b10000:从左到右每两个LED逐渐点亮5'b01000:从右到左每两个LED逐渐点亮5'b00100:从左到右一个LED跳跃式点5'

说的不明白最简单的把开关和LED串联就行

网站地图

All rights reserved Powered by www.qpwy.net

copyright ©right 2010-2021。
www.qpwy.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com