在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2569|回复: 4

数码管动态扫描问题

[复制链接]
发表于 2009-10-18 22:29:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity led_test3 is
port(clk:in std_logic;
     rst:in std_logic;
     segut std_logic_vector(6 DOWNTO 0);
     btut STD_LOGIC_vector(3 downto 0)
     );
end;
architecture beh of led_test3 is
   signal cnt:std_logic_vector(1 downto 0);
   signal a:integer range 0 to 3;
   begin
p1:process(clk,rst)
   begin
   if rst='1' then
     cnt<="00";
   elsif clk'event and clk='1' then
     cnt<=cnt+1;
   end if;
end process p1;  
--- bt 是 位选端 seg为段选,数码管为共阳的 我想当clk为1hz时让四个数码管依次显示0,1,2,3;可是结果下到板子上他不是依次显示0,1,2,3;而是乱跳着显示不是每一秒钟从左往右依次显示
p2:process(cnt)     
    begin
   case cnt is
     when "00" => bt<="1000";a<=0;--
     when "01" => bt<="0100";a<=1;--223
     when "10" => bt<="0010";a<=2;--221
     when "11" => bt<="0001";a<=3;--230
     when others => null;
     end case;
     
     end process p2;
p3:process(a)
     begin
     case a is
     when 0 => seg<="0000001";       -- display 0
     when 1 => seg<="1001111";       --1
     when 2 => seg<="0010010";       --2
     when 3 => seg<="0000110";       --3
     when others => null;
     end case;
     end process p3;
     end;
 楼主| 发表于 2009-10-18 22:33:07 | 显示全部楼层
这是什么原因啊,我是新手。。。请各位帮忙
发表于 2009-10-19 10:16:38 | 显示全部楼层
signal a:integer range 0 to 3;
这个用vector比较好,检查一下时序和你的外界时钟源!
发表于 2009-10-19 15:37:12 | 显示全部楼层
仿真了么?
 楼主| 发表于 2009-10-19 21:51:15 | 显示全部楼层
用modelsim仿真结果是正确的,可是下到硬件上不对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-17 06:47 , Processed in 0.026106 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表