看到有别的同学发帖子叫进程贴,挺好,我也叫进程贴吧。
其实,板子早拿到了,但是太陌生了,不知如何下手。只是用电脑USb供电上了一下电,看原有的跑马灯跑了一会。
我当了几本书看了看,现在想,要想看完书再动手不知何年何月了。还是像其他同学学习,争取在假期里跟教程走完,先来电上手经验,在进一步琢磨吧。
点亮LED,4、5、6楼。
15楼,加料跑马灯。
闪烁灯作业
这个确实比较简单。只要把计时常数从24999999改为49999999,同时寄存器变量delay_cnt的位数要增加一位,各有关位置均须相应改变。
程序如下。
`timescale 1ns / 1ps
module Led( sys_clk ,
sys_rstn ,
led
);
//
input sys_clk ;
input sys_rstn ;
output [3:0] led ;
//
reg [3:0] led ;
reg [25:0] delay_cnt ;
//
always@(posedge sys_clk or negedge sys_rstn)
begin
if(!sys_rstn)
delay_cnt<=26'd0;
else if(delay_cnt==26'd49999999)
delay_cnt<=26'd0;
else
delay_cnt<=delay_cnt+1'b1;
end
always@(posedge sys_clk or negedge sys_rstn)
begin
if(!sys_rstn)
led<=4'b1010;
else if(delay_cnt==26'd49999999)
led<=~led;
else
led<=led;
end
endmodule
我把led的初始值改为4'b1010,工作时好像一双蓝色的小眼睛左瞥一眼,右瞥一眼,十分有趣。
流水灯作业
流水灯左流与右流,只要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
我要赚赏金打赏帖 |
|
|---|---|
| STM32C0116DK开发探索记(3)被打赏¥30元 | |
| STM32C0116DK开发探索记(2)被打赏¥24元 | |
| STM32C0116DK开发探索记(1)被打赏¥29元 | |
| 谨防极海G32M3101电机评估板易跌落的陷阱被打赏¥24元 | |
| 【全网首拆】M5STACK ATOM系列开发板拆解 / AtomS3R-CAM摄像头更换方法(提高10倍像素)被打赏¥26元 | |
| 基于MCP23S17的输入输出功能模块控制被打赏¥20元 | |
| 【S32K3XX】SPD 软件包使用Link文件修改被打赏¥22元 | |
| Switch-Case局部变量定义问题被打赏¥23元 | |
| 基于米尔TIAM62L开发板的串口通信及应用被打赏¥20元 | |
| PCF8574功能模块及其使用被打赏¥20元 | |