基于BASYS2的VHDL程序——分频和数码管静态显示程序

转载请注明出处:http://www.cnblogs.com/connorzx/p/3633860.html 

分频是基于计数器程序。由于FPGA的并行处理能力,根本不需要单片机式的中断指令,用起来很方便。

数码管是靠段选和片选控制的。即所有数目管公用一套八段LED选择端,每个管的亮灭靠片选控制。只要刷新频率够高,就能出现连续的效果。

代码如下:

 1 library IEEE;
 2 use IEEE.STD_LOGIC_1164.ALL;
 3 use IEEE.STD_LOGIC_ARITH.ALL;
 4 use IEEE.STD_LOGIC_UNSIGNED.ALL;
 5 
 6 
 7 entity digit_node is
 8     Port ( 
 9            clk : in  STD_LOGIC;
10               an :  out  STD_LOGIC_VECTOR (3 downto 0);
11            seg : out  STD_LOGIC_VECTOR (6 downto 0));
12               
13 end digit_node;
14 
15 architecture Behavioral of digit_node is
16 signal cnt:  INTEGER;
17 signal sclk: STD_LOGIC;
18 signal sw:STD_LOGIC_VECTOR (3 downto 0);
19 begin
20 an<="0000";
21 process(clk)
22 begin
23 if(clk'event and clk='1') then
24     if(cnt=10000000) then
25         cnt<=0;
26         sclk<=not sclk;
27     else
28         cnt<=cnt+1;
29     end if;
30 end if;
31 end process;
32 process(sclk)
33 begin
34 if(sclk'event and sclk='1') then
35     sw<=sw+1;
36 case sw is
37     when x"0"=>seg<=b"0000001";
38     when x"1"=>seg<=b"1001111";
39     when x"2"=>seg<=b"0010010";
40     when x"3"=>seg<=b"0000110";
41     when x"4"=>seg<=b"1001100";
42     when x"5"=>seg<=b"0100100";
43     when x"6"=>seg<=b"0100000";
44     when x"7"=>seg<=b"0001111";
45     when x"8"=>seg<=b"0000000";
46     when x"9"=>seg<=b"0000100";
47     when x"a"=>seg<=b"0001000";
48     when x"b"=>seg<=b"1100000";
49     when x"c"=>seg<=b"0110001";
50     when x"d"=>seg<=b"1000010";
51     when x"e"=>seg<=b"0110000";
52     when x"f"=>seg<=b"0111000";
53     when others=>seg<=b"0000001";
54 end case;
55 end if;
56 end process;
57 
58 end Behavioral;

 

约束文件如下:

 1 NET "clk"   LOC="B8";
 2 NET "an<0>" LOC="K14";
 3 NET "an<1>" LOC="M13";
 4 NET "an<2>" LOC="J12";
 5 NET "an<3>" LOC="F12";
 6 #NET "seg<7>" LOC="N13";
 7 NET "seg<6>" LOC="L14";
 8 NET "seg<5>" LOC="H12";
 9 NET "seg<4>" LOC="N14";
10 NET "seg<3>" LOC="N11";
11 NET "seg<2>" LOC="P12";
12 NET "seg<1>" LOC="L13";
13 NET "seg<0>" LOC="M12";

 

转载于:https://www.cnblogs.com/connorzx/p/3633860.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值