用verilog编程,如何四个八位数码管上显示不同的数字? 50
我是FPGA的初学者,我现在这块板子上有有4个八位数码管,我现在想做的事情是在4个数码管上显示四位不同的数字,比如说1325。可以从原理图上看到,四个数码管他们的段选都是...
我是FPGA的初学者,我现在这块板子上有有4个八位数码管,我现在想做的事情是在4个数码管上显示四位不同的数字,比如说1325。
可以从原理图上看到,四个数码管他们的段选都是连在一起的,所以当位选信号输入时,比如:
case(dis_data)
4'h0: sem_db <= sem_seg_0;
4'h1: sem_db <= sem_seg_1;
4'h2: sem_db <= sem_seg_2;
4'h3: sem_db <= sem_seg_3;
4'h4: sem_db <= sem_seg_4;
4'h5: sem_db <= sem_seg_5;
4'h6: sem_db <= sem_seg_6;
4'h7: sem_db <= sem_seg_7;
4'h8: sem_db <= sem_seg_8;
4'h9: sem_db <= sem_seg_9;
default: sem_db <= sem_seg_f;
endcase
我只能一次性同时改变四位数码管,比如1111,9999这样,但我不懂如何输出四位不同的数字。
可能不太说得清楚,如果可以的话,邮箱说511829033 @ q q . c o m 一定重分酬谢~~~ 展开
可以从原理图上看到,四个数码管他们的段选都是连在一起的,所以当位选信号输入时,比如:
case(dis_data)
4'h0: sem_db <= sem_seg_0;
4'h1: sem_db <= sem_seg_1;
4'h2: sem_db <= sem_seg_2;
4'h3: sem_db <= sem_seg_3;
4'h4: sem_db <= sem_seg_4;
4'h5: sem_db <= sem_seg_5;
4'h6: sem_db <= sem_seg_6;
4'h7: sem_db <= sem_seg_7;
4'h8: sem_db <= sem_seg_8;
4'h9: sem_db <= sem_seg_9;
default: sem_db <= sem_seg_f;
endcase
我只能一次性同时改变四位数码管,比如1111,9999这样,但我不懂如何输出四位不同的数字。
可能不太说得清楚,如果可以的话,邮箱说511829033 @ q q . c o m 一定重分酬谢~~~ 展开
2个回答
展开全部
虽然是2014年的问题,但是我现在也遇到了这个麻烦,回答留在这帮助一下以后遇到这个问题的人。同时显示不同的数我能想到一种方法,但是需要的是fpga的支持,这种方法需要在每个数码管前面放一个锁存器,用这个锁存器向这个数码管提供显示数据,当需要修改数码管显示的时候,更新锁存器内容就行了,这种方式也称为直流法(直接驱动);还有一种不同时显示但是可以给人一种同时显示的感觉,那就是先显示第一个,再显示第二个,再显示第三个,再显示第四个,只要时间间隔够短,在人们看来就是同时显示,这种方法不需要锁存器的支持,因为我们本来就是一次显示一个,这种方式称为动态扫描
展开全部
你咋还不懂呢,你四个管子输出相同的原因在于你四个管子的输入接的是一样的,你想输出不一样只有二种办法,一种是四份输入分别接四个管子,一个是1份输入扩大线宽,每个管子接不同的线位。也就是相当于一个MUX。
追问
大哥 又是你啊 可问题是我这个买来的学习版是固定住的,显然第一种方法不能用,第二种我又没搞懂啊。。。。。。。。
真心求教啊......我刚入门,确实不太懂,真心求指点......你在我另一个提问里说的我也不是很懂啊
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询