流水灯作业
流水灯左流与右流,只要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
回复
我要赚赏金打赏帖 |
|
|---|---|
| 【FreeRtos】FreeRtos + MPU模块的配置使用被打赏¥32元 | |
| 【分享开发笔记,赚取电动螺丝刀】墨水屏文本显示器被打赏¥25元 | |
| 【STEVAL-STWINKT1B】:结合STMcubeMX读取磁力计iis2mdc被打赏¥19元 | |
| 【STEVAL-STWINKT1B】:结合STMcubeMX读取LPS22HH气压、温度被打赏¥19元 | |
| 【STEVAL-STWINKT1B】:结合STMcubeMX读取STTS751温度被打赏¥17元 | |
| 【STEVAL-STWINKT1B】:结合STMcubeMX软件读取HTS221温湿度被打赏¥22元 | |
| M5PAPERESP32EINKDEVKIT评测|使用MicroPython开发M5Paper被打赏¥15元 | |
| OK1126B-S开发板下以导航按键控制云台/机械臂姿态调整被打赏¥29元 | |
| 【树莓派5】便携热成像仪被打赏¥36元 | |
| 【树莓派5】环境监测仪被打赏¥35元 | |
我要赚赏金
