数电大作业

发布 2022-09-20 10:43:28 阅读 5390

数电第二次大实验。

-十字路**通灯自动控制器的设计。

班级: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秒...