完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 elecfans跑堂 于 2015-9-6 13:49 编辑
源代码:`timescale 1ns / 1psmodule led_key(clk,key1,key2,led,rst_n ); input clk; input rst_n; input key1,key2; //key1控制流水灯左移,key2--右移 output [7:0]led; reg key1_r; reg key2_r; reg [1:0]led_dir; reg [7:0]led_r; //======================= always@(posedge clk or posedge rst_n)begin if(rst_n)begin key1_r <= 1'b0; key2_r <= 1'b0; end else begin key1_r <= key1; key2_r <= key2; end end //==计数器做延时 reg [15:0]cnt; always@(posedge clk or posedge rst_n)begin if(rst_n) cnt <= 16'b0; else cnt <= cnt + 1'b1; end //== 读按键的状态 always@(posedge clk )begin led_dir <= {key2_r,key1_r}; case(led_dir) 2'b00: led_r <= 8'b0000_0000; //都不亮 2'b01: begin led_r <= 8'b0000_0001; //led左移 if(cnt == 16'b1000_0000_0000_0000) led_r <= {led_r[6:0],led_r[7]}; end 2'b10: begin led_r <= 8'b1000_0000; //led右移 if(cnt == 16'b1000_0000_0000_0000) led_r <= {led_r[0],led_r[7:1]}; end 2'b11: led_r <= 8'b1111_1111; //全亮 endcase end assign led = led_r; endmodule 感觉每次都进不了if(cnt == 16'b1000_0000_0000_0000)语句,不知为什么?求大神解答? |
|
相关推荐
13个回答
|
|
rst_n对应的是按键还是播码开关?????如果是按键,就一直复位
|
|
|
|
是按键,可能是习惯原因,reset信号一般都是低电平复位,所以我用rst_n来命名,但发现板子上的按键是被按下时接的高电平。 |
|
|
|
发现问题了。
语句每个时钟点都对赋值 led_r <= 8'b0000_0001; //led左移 这条语句(if(cnt == 16'b1000_0000_0000_0000) led_r <= {led_r[6:0],led_r[7]};)执行完后,LED数据改变,但下次再进入CASE语句时,语句:led_r <= 8'b0000_0001; 又将其改写为了8'b0000_0001,而if(cnt == 16'b1000_0000_0000_0000) 条件不再满足,后续语句不再更新LED,所以led_r只会出现8'b0000_0001, 和8'b0000_0010,且停留在8'b0000_0010时间非常短(一个时钟周期),当频率太快时,基本看不到现象。 |
|
|
|
那你把==改成<=就行了
|
|
|
|
那你把==改成<=就行了
|
|
|
|
那你把==改成<=就行了
|
|
|
|
那你把==改成<=就行了
|
|
|
|
你的按键消抖部分呢?没有按键消抖部分吗?那你去做一下仿真,你会看到各种奇葩的东西
|
|
|
|
我用的按键不是那种圆的独立按键,用的是自锁按键 |
|
|
|
|
|
|
|
实现了,实验现象与预想的一样
|
|
|
|
|
|
|
|
学习中希望能从电子发烧论坛中与大家获得交流 谢谢 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1446 浏览 1 评论
助力AIoT应用:在米尔FPGA开发板上实现Tiny YOLO V4
1061 浏览 0 评论
2525 浏览 1 评论
2217 浏览 0 评论
矩阵4x4个按键,如何把识别结果按编号01-16(十进制)显示在两个七段数码管上?
2486 浏览 0 评论
1947 浏览 53 评论
6031 浏览 113 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 13:29 , Processed in 0.936258 second(s), Total 96, Slave 79 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号