这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » sacq 的进程帖(跟着手把手 开始搞串口)

共40条 2/4 1 2 3 4 跳转至
高工
2012-10-20 10:26:34     打赏
11楼

准备再修改,让水流得更快、更长:
延时缩短,LED从8位改到11位。


高工
2012-10-20 17:20:31     打赏
12楼


继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

【视频】


高工
2012-10-20 17:25:30     打赏
13楼
LED闪动 

小改了一下,闪的快一些
【视频】


高工
2012-10-20 17:30:40     打赏
14楼
按键控制LED 




把按键改成拨码开关也可以,要特别注意1楼的最后一个贴的链接(P108的问题)

高工
2012-10-22 21:15:19     打赏
15楼

第一时间下载学习 手把手教你学习FPGA—LED篇 


【LED亮灯】

我的练习截图(2个都试了,下面是其中的1个):



保存的文件名:LED1.V

手工分配管脚:



正确的结果:




曾经出现错误的结果,数码管都是亮的;后把未用管脚设为3态输入,就好了。
刚开始感觉分配管脚比较麻烦,还经常找不到地方(管脚、修改的地方),现在慢慢习惯了。


高工
2012-10-27 00:17:25     打赏
16楼
学习手把手系列的LED篇 实验二(闪烁灯)后的 作业

耐心手工输入教程代码,修改几次才编译成功。管脚配置教程交代很少,还是啸凤整理那份资料对管脚配置很有用,按理这也该交代的。

编译成功后下载没看到效果,最终查出还是手工输入的错误:
 reg   [7:0]  delay_cnt; 
这样的编译通过,但警告还是不少的(有10多条吧),结果不对,查起来够费劲的。

课后作业的代码是在教程的教程上修改得来的:





实现的效果如下:




高工
2012-10-27 10:36:55     打赏
17楼
演练 LED的实验三 (流水灯)

可以看做是在前个的基础的的继续,为了熟悉操作,还是老老实实地按部就班地照着教程来。

输入文本完毕,修改提示的小错后,编译成功,选择芯片,配置管脚,再重编译,下载没动静。再查:文本还有错(该错记在下面),改之再编译,下载OK,流水。。。
 错误 19行 if(delay_cnt==25'd24000000)  【正确:if(delay_cnt==25'd24999999)】

【作业】改成向左流水:





管脚分配:




贴个编译结果报告,也许后面的实验可以对比一下:



【效果视频】


高工
2012-10-27 17:06:29     打赏
18楼

实验四(跑马灯)的作业a—— 向左跑马

代码在实验三及教程里的基础上改动,只改动了第32行,第28行的初始值没改动:



[视频] 
 
 

 


高工
2012-10-30 19:51:44     打赏
19楼
作业—— 花样流水

[   实现花样彩灯功能,即程序包含点亮 LED、LED 闪烁灯、流水
灯、跑马灯。 (流水灯可实现花样流水,如两边向内流水,从内
向两边流水) 。提示:可用 case语句实现。  ]

才刚学会一点的点灯、跑马灯这些简单的,就要做花样流水的作业,确实是有点为难。
赶紧补课:看看case是咋回事,看过几个还是不得要领。看“手把手系列”的前传:《FPGA入门系列实验教程——实验五.LED花样彩灯》,收获不小!
基本思路就是画好图样,一步一步来。

演练的代码如下:




新的东西: wire , case ;
变量 state 的位数与所有的状态总数相对应。

【视频】



高工
2012-11-03 11:56:33     打赏
20楼

数码管静态显示 及作业--“拨码控制数码管进行八进制数字显示”

照例是首先学习教程,演练教程里的实例,在成功下载并运行后再仔细分析个中的语句。
看到:
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行),目前自己不明原因,如果你知道了,请告诉我。

运行结果图片:










共40条 2/4 1 2 3 4 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]