流水灯作业
流水灯左流与右流,只要led左移或者右移就可以了。不具述。
如何用拨码开关控制左流与右流?
我加一个输入,sw1,进行管脚设置,在移位的位置先做一下判断,决定如何移位,如下,
if(!sw1)
led<=led<<1;
else
led<=led>>1;
可惜不成功,这是为什么?
下面是源文件。
`timescale 1ns / 1ps
module Led( sys_clk ,
sys_rstn ,
led ,
sw1
);
//
input sys_clk ;
input sys_rstn ;
input sw1 ;
output [3:0] led ;
//
reg [3:0] led ;
reg [24:0] delay_cnt ;
//
always@(posedge sys_clk or negedge sys_rstn)
begin
if(!sys_rstn)
delay_cnt<=25'd0;
else if(delay_cnt==25'd14999999)
delay_cnt<=25'd0;
else
delay_cnt<=delay_cnt+1'b1;
end
always@(posedge sys_clk or negedge sys_rstn)
begin
if(!sys_rstn)
led<=4'b1111;
else
begin
if(delay_cnt==25'd14999999)
begin
if(!sw1)
led<=led<<1;
else
led<=led>>1;
if(led==4'b0000)
led<=4'b1111;
end
else
led<=led;
end
end
endmodule
跑马灯试验和作业
跑马灯的试验主要是学习移位寄存器。
完成。
下面的程序是用拨码开关控制马跑的方向的。
`timescale 1ns / 1ps
module Led( sys_clk ,
sys_rstn ,
led ,
sw1
);
//
input sys_clk ;
input sys_rstn ;
input sw1 ;
output [3:0] led ;
//
reg [3:0] led ;
reg [24:0] delay_cnt ;
//
always@(posedge sys_clk or negedge sys_rstn)
begin
if(!sys_rstn)
delay_cnt<=25'd0;
else if(delay_cnt==25'd14999999)
delay_cnt<=25'd0;
else
delay_cnt<=delay_cnt+1'b1;
end
always@(posedge sys_clk or negedge sys_rstn)
begin
if(!sys_rstn)
led<=4'b0111;
else
begin
if(delay_cnt==25'd14999999)
begin
if(!sw1)
led<={led[0],led[3:1]};
else
led<={led[2:0],led[3]};
end
else
led<=led;
end
end
endmodule
回复
有奖活动 | |
---|---|
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
【有奖活动】智能可穿戴设备AR/VR如何引领科技新潮流! | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
【有奖活动】震撼来袭!这场直播将直击工程师的心灵! |
打赏帖 | |
---|---|
如何实现基于NXPiMX.RT1021的BH1730采集被打赏50分 | |
【换取手持数字示波器】AHT10温度检测分享被打赏40分 | |
【换取手持数字示波器】ACM32F070开发板点亮LCD屏和触控按键,串口,ADC被打赏40分 | |
【换取手持数字示波器】ACM32F070LCD屏和触控按键功驱动蜂鸣器分享被打赏40分 | |
【换取手持数字示波器】国民技术PWM功能知识分享被打赏40分 | |
【换取手持数字示波器】放大器运放知识分享被打赏40分 | |
【分享评测,赢取加热台】+开关电源AC输入知识分享被打赏30分 | |
【换取手持数字示波器】N32G430点亮数码管与串口打印、ADC被打赏40分 | |
老胖子聊电路--分析一个反馈电路被打赏50分 | |
【换取手持数字示波器】+点亮WS2812RGB灯被打赏50分 |