完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
reg [3:0] key_scan_r;
always @(posedge clk) key_scan_r <= key_scan; wire [3:0] flag_key = key_scan_r[3:0] & (~key_scan[3:0]); |
|
相关推荐
12个回答
|
|
reg [3:0] key_scan_r;//定义按键寄存器4个0,1,2,3
always @(posedge clk)//测试按键时钟 key_scan_r <= key_scan;//读取的按键值赋给前者 wire [3:0] flag_key = key_scan_r[3:0] & (~key_scan[3:0]);//连接按键的线产生跳变[0->1或1->0]
最佳答案
|
|
|
|
这说的是按键信号锁存一个时钟节拍,但是具体是什么意思呢?
|
|
|
|
|
|
|
|
这是采沿啊!采下降沿!!!!你把所有信号当成1bit去理解,就是一个1bit的下降沿,这里一共四bit,写到一起了而已!
|
|
|
|
还没有敲完上去了,补充1点,最后一句理解成,比如原始位1111,按键之后成为1011,两者取反与后=1011。
|
|
|
|
大神,我也刚开始学,那个1011怎么出来的?能详细点吗 |
|
|
|
比如原来的flag_key=1111,~flag_key就是扫描到的按键值再取反,如果按下一个键=1011,取反后=0100; 1111与0100做逻辑与运算,结果=0100,表示为1的哪个键按下了-如果键分别为Key3,key2,key1,key0,应该是key2按下了。 以前的表达有误,Sorry。 |
|
|
|
zh***1 发表于 2017-3-1 06:57 谢谢你哦,懂了,谢谢谢谢 |
|
|
|
取4个信号的上升沿,脉宽1个clk
|
|
|
|
键盘的扫描寄存器对输入进行检测,当出现scan状态为0,scanr状态为1时,对应位的flag_key变为1
|
|
|
|
边缘检测
|
|
|
|
谢谢。。我就是阻塞赋值理解的不到位。。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1620 浏览 1 评论
1381 浏览 0 评论
矩阵4x4个按键,如何把识别结果按编号01-16(十进制)显示在两个七段数码管上?
1592 浏览 0 评论
936 浏览 0 评论
2392 浏览 0 评论
1484 浏览 37 评论
5687 浏览 113 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-27 21:10 , Processed in 0.815281 second(s), Total 94, Slave 78 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号