原创 VHDL周学习总结(二)--数码管动态显示

2010-3-27 21:30 5042 4 7 分类: FPGA/CPLD

      3月21晚上弄的是静态显示,今天俺就弄一个动态显示吧,因为俺以前弄过单片机,所以对动态显示和静态显示还是弄的比较清的,嘻嘻……不过俺当年学单片机时可以对这些概念一窍不通呀,呵呵,所以俺想学习VHDL一定弄好数电这一定是真理,如果连逻辑关系都弄不清,那还是不要弄VHDL了,下面把俺消化的例子弄上来:


--------------------------------------------------------------------------------------------
--这是俺的第二个程序,采用共阴极数码管
--每天进步一点点,开心一大点^_^
--功能:LED动态显示
--作者:萤火虫II号
--日期:2010.03.22
--------------------------------------------------------------------------------------------
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;


ENTITY dynamic IS
 PORT(clk: IN STD_LOGIC;    ---输入时钟信号
    reset: IN  STD_LOGIC;  ---复位信号
    din1:  IN  STD_LOGIC_VECTOR(6 DOWNTO 0);   ---译码后的数据信号1(4位2进制数据)
                 ---我把它改成就用一个数据通道,只换位选
                 ---来达到动态显示的目的,这样才更有动态的意思,嘻嘻……
   --din2:  IN  STD_LOGIC_VECTOR(6 DOWNTO 0);  ---译码后的数据信号2
    --din3:  IN  STD_LOGIC_VECTOR(6 DOWNTO 0); ---译码后的数据信号3
    --din4:  IN  STD_LOGIC_VECTOR(6 DOWNTO 0); ---译码后的数据信号4
    shift: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); ----位选信号
    Q:  OUT STD_LOGIC_VECTOR(6 DOWNTO 0)  ----数据信号 
    );
END dynamic;


ARCHITECTURE behavioral OF dynamic IS
 SIGNAL scan_clk: STD_LOGIC_VECTOR(1 DOWNTO 0);
 BEGIN
 PROCESS(clk,scan_clk,reset)         ----分频进程
  variable scan: STD_LOGIC_VECTOR(5 DOWNTO 0);
 BEGIN
  IF reset='1' THEN
     scan:="000000";
     scan_clk<="00";
  ELSIF clk'event and clk='1' then
   scan:=scan+1;
  END IF;
    scan_clk<=scan(5 downto 4);
  END PROCESS;
  PROCESS (scan_clk,din1)  ---扫描进程PROCESS (scan_clk,din1,din2,din3,din4)(原来是这样写的^_^)
  BEGIN
   CASE scan_clk IS
    WHEN "00"=> Q <=din1;shift<="1110";  ---原程序上是共阳极数码管,我改成共阴极了
    WHEN "01"=> Q <=din1;shift<="1101";
    WHEN "10"=> Q <=din1;shift<="1011";
    WHEN "11"=> Q <=din1;shift<="0111";
    WHEN OTHERS=> Q <="0000000";shift<="1111";
   END CASE;
  END PROCESS;
END behavioral;


 


      以前没有弄过分频语句,现在终于又学会了一招,呵呵……


      还是俺那句口号:


      每天进步一点点,开心多一点^_^


 


 


 


 


 


 


 

PARTNER CONTENT

文章评论3条评论)

登录后参与讨论

xucun915_925777961 2010-11-28 22:03

我也好久没写这个了,手上没有你们要的代码,真是不好意思……

用户612565 2010-11-26 15:33

我想要8个led 的数码管静态显示数字的程序。我刚刚学还没有入门。谢谢!

用户404329 2010-11-26 15:32

我想要八个led静态显示数字的vhdl程序。是什么样的思路啊?我还没有入门!谢谢!
相关推荐阅读
xucun915_925777961 2013-04-28 11:31
毕业后的五年拉开大家差距的原因在哪里?【转】
  有人工作,有人继续上学,大家千万不要错过这篇文章,能看到这篇文章也是一种幸运,真的受益匪浅,对我有很大启迪,这篇文章将会改变我的一生,真的太好了,希望与有缘人分享,也希望对有缘人有所帮助!...
xucun915_925777961 2013-03-31 20:28
职场大牛精彩总结:职场上,如何做人做事做管理【转】(文/张子阳)
      大道至简,越是根源和基本的问题,道理实际上越简单。关于如何做人、做事、做管理的书很多,我看得不多,但是我觉得这些书更多是侧重技术和实现细节上的,而很少从人的思想和观念去讲。实际...
xucun915_925777961 2013-03-28 14:03
介绍几种优秀的UML工具
统一建模语言(UML是 Unified Modeling Language的缩写)是用来对软件密集系统进行可视化建模的一种语言。UML为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言...
xucun915_925777961 2013-03-27 18:05
IAR EW FOR 8051 修改工程名称的方法
        近段时间一直在搞蓝牙4.0的开发任务,所以用到了IAR编译器,话说IAR编译器用途蛮广,可以编译MSP430,ARM,还有TI的51核芯片,当然,这要不同的版本,我现在用的是for...
xucun915_925777961 2013-03-26 16:40
Cortex-M3学习日志(八)-- TFT实验Part(a)
    自己用的LPC1768的开板带有一块2.4寸的TFT彩色液晶屏,虽然自己工作中还用不过显示屏,但是晚上闲着也是闲着,于是继续玩咱的LPC1768吧。 我的开发板上的液晶屏的用的是SPI接口,当...
xucun915_925777961 2013-03-25 20:48
说说那几款查看源代码的工具
说说那几款查看代码的工具 今天给大家介绍几款单片机工程师所喜欢的几款查看源代码的工具,这几款工具在懒猫的日常工作中可是帮了不少忙。 一、 Source Insight     Source Insig...
EE直播间
更多
我要评论
3
4
关闭 站长推荐上一条 /3 下一条