准备再修改,让水流得更快、更长:
延时缩短,LED从8位改到11位。
继11位流水后,小改一下就了跑马啦:
module ledwater(clk,led);
output [10:0] led;
input clk;
reg[11:0] led_out;
reg[11:0] led_out1;
reg[25:0]buffer;
always@(posedge clk)
begin
buffer<=buffer+2'b10;
if (buffer==26'd25000000)
begin
led_out=led_out<<1;
if(led_out==12'b000000000000)
led_out=12'b000000000001;
led_out1=~led_out;
end
end
assign led=led_out1[10:0]; //
endmodule
【视频】
第一时间下载学习 手把手教你学习FPGA—LED篇
【LED亮灯】
我的练习截图(2个都试了,下面是其中的1个):

保存的文件名:LED1.V
手工分配管脚:

正确的结果:
曾经出现错误的结果,数码管都是亮的;后把未用管脚设为3态输入,就好了。
刚开始感觉分配管脚比较麻烦,还经常找不到地方(管脚、修改的地方),现在慢慢习惯了。
[ 实现花样彩灯功能,即程序包含点亮 LED、LED 闪烁灯、流水
灯、跑马灯。 (流水灯可实现花样流水,如两边向内流水,从内
向两边流水) 。提示:可用 case语句实现。 ]
才刚学会一点的点灯、跑马灯这些简单的,就要做花样流水的作业,确实是有点为难。
赶紧补课:看看case是咋回事,看过几个还是不得要领。看“手把手系列”的前传:《FPGA入门系列实验教程——实验五.LED花样彩灯》,收获不小!
基本思路就是画好图样,一步一步来。
演练的代码如下:


新的东西: wire , case ;
变量 state 的位数与所有的状态总数相对应。
【视频】
数码管静态显示 及作业--“拨码控制数码管进行八进制数字显示”
照例是首先学习教程,演练教程里的实例,在成功下载并运行后再仔细分析个中的语句。
看到:
always@(posedge sys_clk or negedge sys_rstn) //
begin
if(!sys_rstn)
disp_dat<=4'd0;
else
begin
if(delay_cnt==26'd49999999) // 到1S?
disp_dat<=disp_dat+1'b1 ; // disp_dat +1
// else
// disp_dat<=disp_dat ; // 不变 (不变,还要赋值?)
end
end */
觉得其中2行注解掉可以照样运行,不知何意。
=作业=
准备:
从电路图上并对照实际pcb板,可以看出:
段,seg0--seg7 对应数码管的 a---dp ,低电平点亮相应段
位,dig7--dig0 对应数码管从左到右,低电平点亮相应位
拨码开关,sw8--sw1 对应于开关上的数字(1--8);开关拨在下方,sw对应位是高电平;开关拨在上方,sw对应位是低电平
按键,key1--key9 与S1--S8 对应;S未按下时,对应的key是高电平;S按下时,对应的key是低电平(本行与本次作业无关,暂放于此))
思路:以教程的例子为基础,增加SW输入;除按要求显示1-8外,无拨码时显示0,多个拨码显示F.
代码:



原本考尝试一下“复位”的功能,未能成功(在中间注解掉的47-49行),目前自己不明原因,如果你知道了,请告诉我。
运行结果图片:
回复
我要赚赏金打赏帖 |
|
|---|---|
| 28BYJ-48机械臂实现人脸跟随被打赏¥24元 | |
| 基于RK3506B的片温识读功能的实现被打赏¥25元 | |
| 【瑞萨RA8D1测评】基于FreeRTOS的lvgl移植教程被打赏¥29元 | |
| 电子价签墨水屏开发被打赏¥35元 | |
| 【Ozone】RTT 打印终端使用被打赏¥29元 | |
| BMS保护板绝缘检测功能-不平衡电桥技术绝缘电阻检测设计与实现被打赏¥34元 | |
| 给28BYJ-48三自由度机械臂加一个网页控制台被打赏¥32元 | |
| 用28BYJ-48电机从零搭一台三自由度机械臂被打赏¥33元 | |
| 【英飞凌开发经验】ModusToolbox配置EdgeTalk外设被打赏¥27元 | |
| 基于BQ76952PFBR的BMS保护板热插拔损坏的原因和处理措施被打赏¥32元 | |







我要赚赏金
