数电第二次大实验。
-十字路**通灯自动控制器的设计。
班级:001011
学号:00101106
姓名:宋攀飞。
实验题目:十字路**通灯自动控制器的设计。
一:实验内容及任务:设计一个十字路**通控制系统,其东西,南北两个方向除了有红、黄、绿灯指示是否允许通行外,还设有时钟,以倒计时方式显示每一路允许通行的时间,绿灯,黄灯,红灯的持续时间分别是和45秒。
当东西或南北两路中任一道上出现特殊情况,例如有消防车,警车要去执行任务,此时交通控制系统应可由交警手动控制立即进入特殊运行状态,即两条道上的所有车辆皆停止通行,红灯全亮,时钟停止计时,且其数字在闪烁。当特殊运行状态结束后,管理系统恢复原来的状态,继续正常运行。
二:实验要求:必须用可编程器件实现电路功能。可以是原理图,也可以是vhdl**,也可以混合输入。
三:实验器件:**线,fpga板等。
四:编写程序:控制机与计数器程序组成。
1.控制机。
library ieee;
use use
entity traffic isport
input ports
clk,hold,cr : in std_logic;
agreen,ayellow,ared,bgreen,byellow,bred : out std_logic;
l1,h1,h2,l2: out std_logic_vector(3 downto 0);
oc:out std_logic
end traffic ;
- library clause(s) (optional)
- use clause(s) (optional)
architecture beh**ior of traffic is
component m45
port(clk1: in std_logic;
en1 : in std_logic;
cr1 : in std_logic;
ql1,qh1,qh2,ql2: out std_logic_vector(3 downto 0);
oc1 : out std_logic
end component;
type state_type is (s0,s1,s2,s3,s4);
signal current_state,next_state :state_type;
signal counter: std_logic_vector(6 downto 0);
signal ql1,qh1,ql2,qh2:std_logic_vector(3 downto 0);
--signal oc2: std_logic;
beginu1: m45
port map(clk1=>clk,en1=>hold,cr1=>cr,ql1=>ql1,qh1=>qh1,ql2=>ql2,qh2=>qh2,oc1=>oc);
l2<=ql2;
h2<=qh2;
l1<=ql1;
h1<=qh1;
synch:process
beginwait until clk'event and clk='1';
if hold='0' then
counter<=counter;
else if counter<89 then
counter<=counter+1;
elsecounter<=(others=>'0');
end if;
end if;
end process;
process
beginwait until clk'event and clk='1';
current_state<=next_state;
end process;
state_trans:process(current_state)
begin
case current_state is
when s0=>
if hold='0' then
next_state<=s4;
elseif counter<41 then
next_state<=s0;
elsenext_state<=s1;
end if;
end if;
when s1=>
if hold='0' then
next_state<=s4;
elseif counter<46then
next_state<=s1;
elsenext_state<=s2;
end if;
end if;
when s2=>
if hold='0' then
next_state<=s4;
elseif counter<86 then
next_state<=s2;
elsenext_state<=s3;
end if;
end if;
when s3=>
if hold='0' then
next_state<=s4;
elseif counter<89 then
next_state<=s3;
elsenext_state<=s0;
end if;
end if;
when s4=>
if hold='0' then
next_state<=s4;
elseif counter<41 then
next_state<=s0;
elsif counter<46 then
next_state<=s1;
elsif counter<86 then
next_state<=s2;
elsif counter<89 then
next_state<=s3;
end if;
end if;
end case;
end process;
output:process(current_state)
begincase current_state is
when s0=>
ared<='0';
agreen<='1';
ayellow<='0';
bred<='1';
bgreen<='0';
byellow<='0';
when s1=>
数电大作业
贵州航天职业技术学院。数字电路课程设计报告书。2011年月日 数字抢答器的设计。1 设计目的。1 熟悉集成电路的引脚安排。2 掌握各芯片的逻辑功能及使用方法。3 了解面包板结构及其接线方法。4 了解数字抢答器的组成及工作原理。5 熟悉数字抢答器的设计与制作。2 设计思路。1 设计抢答器电路。2 设计...
数电大作业
班级。学号 姓名。一位8421bcd码相加,输出仍为8421bcd码。两个一位十进制数相加,加数和被加数的取值范围是0 9,其和最大为18.列出十进制数0 19与二进制数,8421bcd码的对应关系。从表中可以看出,在二进制加法器的相加结果大于01111时才会产生进位1,而8421bcd码大于010...
数电大作业
姓名 徐秀华班级 1101103 学号 1110100124 实验日期 11.25 节次 4教师签字成绩 篮球竞赛24秒倒计时器。1 实验目的。1.加深对组合逻辑电路以及时序逻辑电路的掌握。2.了解数字24秒计时器的组成及工作原理。3.进一步展开对多位计数器的思考。二 总体设计方案或技术路线。24秒...