library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity seven_seg is
port (
clk : in std_logic;
dig_sel_n : out std_logic_vector(7 downto 0);----------位选信号(哪几个数码管亮)
data_out : out std_logic_vector(7 downto 0)-----------段选信号(每个数码管中显示0-9哪个数)
);
end entity seven_seg;
architecture bhv of seven_seg is
signal dig0, dig1, dig2, dig3 : std_logic_vector(7 downto 0);-----dig0,1,2,3包含的就是数码管0,1,2,3显示的内容
signal digSelectAddress: integer range 0 to 3;--------------------当前将要显示数码管的地址控制线,用到了四位
signal clock_3ms: std_logic;--------------------------------------clock_3ms => 3ms 显示刷新脉冲信号线;
--------------------数码管的译码函数-----------------------------------------
----- 形参 data :为要译码的数字,范围为:0--9;
----- 返回值 ledSegment :为译码好的七段数码管段码;
function decode( data: integer range 0 to 9 )
return std_logic_vector is
variable ledSegment: std_logic_vector(7 downto 0);
begin
CASE data IS
WHEN 0 => ledSegment := "11000000";-- 0xC0;0
WHEN 1 => ledSegment := "11111001";-- 0xf9;1
WHEN 2 => ledSegment := "10100100";-- 0xa4;2
WHEN 3 => ledSegment := "10110000";-- 0xb0;3
WHEN 4 => ledSegment := "10011001";-- 0x99;4
WHEN 5 => ledSegment := "10010010";-- 0x92;5
WHEN 6 => ledSegment := "10000010";-- ox82;6
WHEN 7 => ledSegment := "11111000";-- 0xf8;7
WHEN 8 => ledSegment := "10000000";-- 0x80;8
WHEN 9 => ledSegment := "10010000";-- 0x90;9
WHEN OTHERS => null;
END CASE;
return ledSegment;
end decode;
begin
dig3 <= decode(1);------------------------第四个数码管显示1
dig2 <= decode(2);------------------------第三个数码管显示2
dig1 <= decode(3);------------------------第二个数码管显示3
dig0 <= decode(4);------------------------第一个数码管显示4
--------------------------------------------------------------------------------------------------------------
Div_clock_3ms: process(clk)--------------clock_3ms => 3ms 数码管显示刷新脉冲信号
variable count :integer range 0 to 30_000 ;
begin
if(clk = '1' and clk'event) then
if count = 29_999 then
count:= 0;
else
count:= count + 1;
end if;
if(count>= 15_000) then
clock_3ms <= '0';
else
clock_3ms <= '1';
end if;
end if;
end process Div_clock_3ms;
--------------------------------------------------------------------------------------------------------------
counter: process(clock_3ms)-----------------------因为只有八位数据线每次只能送8位数(一个数码管的显示内容),因此每3ms后移一个数码管显示,利用人眼的惰性,实现动态刷新
begin
if(clock_3ms = '1' and clock_3ms'event) then
if digSelectAddress = 3 then
digSelectAddress <= 0;
else
digSelectAddress <= digSelectAddress + 1;---------加1后移一位
end if;
end if;
end process counter;
--------------------------------------------------------------------------------------------------------------
show: process(digSelectAddress)
begin
case digSelectAddress is-------------位选信号digSelectAddress 低电平有效
when 0 => dig_sel_n <= "11111110";data_out <= dig0;
when 1 => dig_sel_n <= "11111101";data_out <= dig1;------当地址选通信号为1,位选dig_sel_n8位得出,显示的内容data_out显示对应的dig
when 2 => dig_sel_n <= "11111011";data_out <= dig2;
when 3 => dig_sel_n <= "11110111";data_out <= dig3;
WHEN OTHERS => null;
end case;
end process;
end architecture bhv;
没有合适的资源?快使用搜索试试~ 我知道了~
vhdl实现交通灯课程设计作业
共146个文件
cdb:31个
hdb:29个
tdf:17个
需积分: 38 38 下载量 45 浏览量
2016-12-11
09:54:55
上传
评论 6
收藏 448KB ZIP 举报
温馨提示
南北方向和东西方向的共六个颜色灯(红、黄、绿)按给定延迟时间循环点亮。东西方向通行30秒,南北方向通行30秒。选用2个七段码显示时间,进行倒计时。当时间到后,进行红黄绿灯显示切换。
资源推荐
资源详情
资源评论
收起资源包目录
vhdl实现交通灯课程设计作业 (146个子文件)
seven_seg_global_asgn_op.abo 76KB
seven_seg.root_partition.cmp.atm 11KB
seven_seg.root_partition.map.atm 9KB
seven_seg.vhd.bak 3KB
seven_seg.ace_cmp.bpm 731B
seven_seg.cmp.bpm 560B
seven_seg.map.bpm 540B
seven_seg.ace_cmp.cdb 69KB
seven_seg.cmp.cdb 11KB
seven_seg.(4).cnf.cdb 9KB
seven_seg.(21).cnf.cdb 9KB
seven_seg.(17).cnf.cdb 8KB
seven_seg.map.cdb 4KB
seven_seg.(0).cnf.cdb 3KB
seven_seg.pre_map.cdb 3KB
seven_seg.rtlv_sg.cdb 3KB
seven_seg.sgdiff.cdb 3KB
seven_seg.(12).cnf.cdb 2KB
seven_seg.(11).cnf.cdb 2KB
seven_seg.(10).cnf.cdb 1KB
seven_seg.(9).cnf.cdb 1KB
seven_seg.(8).cnf.cdb 1KB
seven_seg.(3).cnf.cdb 1KB
seven_seg.(20).cnf.cdb 1KB
seven_seg.(7).cnf.cdb 1KB
seven_seg.(16).cnf.cdb 1KB
seven_seg.(13).cnf.cdb 1KB
seven_seg.(1).cnf.cdb 1KB
seven_seg.(18).cnf.cdb 1KB
seven_seg.(14).cnf.cdb 1KB
seven_seg.(2).cnf.cdb 1KB
seven_seg.(19).cnf.cdb 1023B
seven_seg.(6).cnf.cdb 1004B
seven_seg.(15).cnf.cdb 956B
seven_seg.(5).cnf.cdb 769B
seven_seg.map_bb.cdb 688B
seven_seg.rtlv_sg_swap.cdb 178B
seven_seg.eco.cdb 161B
seven_seg.db_info 137B
seven_seg.cmp0.ddb 25KB
seven_seg.tis_db_list.ddb 174B
seven_seg.root_partition.cmp.dfp 33B
seven_seg.done 26B
seven_seg.dpf 239B
seven_seg.root_partition.map.dpi 732B
seven_seg.ace_cmp.ecobp 28B
seven_seg.map.ecobp 28B
seven_seg.cmp.ecobp 28B
seven_seg.ace_cmp.hdb 23KB
seven_seg.cmp.hdb 8KB
seven_seg.sgdiff.hdb 8KB
seven_seg.pre_map.hdb 8KB
seven_seg.rtlv.hdb 8KB
seven_seg.map.hdb 8KB
seven_seg.map_bb.hdb 6KB
seven_seg.(4).cnf.hdb 4KB
seven_seg.(21).cnf.hdb 4KB
seven_seg.(17).cnf.hdb 3KB
seven_seg.(0).cnf.hdb 2KB
seven_seg.(20).cnf.hdb 744B
seven_seg.(3).cnf.hdb 739B
seven_seg.(16).cnf.hdb 729B
seven_seg.(12).cnf.hdb 704B
seven_seg.(11).cnf.hdb 685B
seven_seg.(10).cnf.hdb 679B
seven_seg.(9).cnf.hdb 673B
seven_seg.(8).cnf.hdb 659B
seven_seg.(6).cnf.hdb 658B
seven_seg.(7).cnf.hdb 643B
seven_seg.(19).cnf.hdb 632B
seven_seg.(15).cnf.hdb 631B
seven_seg.(5).cnf.hdb 631B
seven_seg.(2).cnf.hdb 625B
seven_seg.(18).cnf.hdb 582B
seven_seg.(14).cnf.hdb 580B
seven_seg.(13).cnf.hdb 572B
seven_seg.(1).cnf.hdb 572B
seven_seg.root_partition.cmp.hdbx 2KB
seven_seg.root_partition.map.hdbx 2KB
seven_seg.hier_info 1KB
seven_seg.hif 17KB
seven_seg.lpc.html 430B
seven_seg.root_partition.map.kpt 10KB
seven_seg.map.kpt 10KB
seven_seg.cmp_merge.kpt 346B
seven_seg.root_partition.cmp.kpt 341B
seven_seg.cmp.kpt 340B
seven_seg.cmp.logdb 4B
seven_seg.map.logdb 4B
seven_seg.map_bb.logdb 4B
seven_seg.root_partition.cmp.logdb 4B
seven_seg.pin 20KB
pins.png 13KB
seven_seg.pof 128KB
prev_cmp_seven_seg.qmsg 73KB
prev_cmp_seven_seg.fit.qmsg 40KB
seven_seg.fit.qmsg 40KB
seven_seg.tan.qmsg 24KB
prev_cmp_seven_seg.tan.qmsg 24KB
prev_cmp_seven_seg.map.qmsg 7KB
共 146 条
- 1
- 2
资源评论
PJlei
- 粉丝: 9
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功