实验八交通灯控制电路的设计_交通灯控制电路的设计

2020-02-28 其他范文 下载本文

实验八交通灯控制电路的设计由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“交通灯控制电路的设计”。

可编程逻辑设计 ——实验八报告

学院:物理与信息工程学院 专业:通信工程 年级:2007级 班级:二班

学号:110700221 姓名:林明明 指导老师:杨秀芝

实验八交通灯控制电路的设计

一、实验目的:

进一步学习复杂数字电路的设计方法,提高利用硬件描述语言进行电路设计的技巧和熟练程度。

二、实验要求及原理:

满足图1顺序工作流程。图中设南北方向的红、黄、绿灯分别为NSR、NSY、NSG,东西方向的红、黄、绿灯分别为EWR、EWY、EWG。它们的工作方式有些必须是并行进行的,即南北方向绿灯亮,东西方向红灯亮;南北方向黄灯亮,东西方向红灯亮;南北方向红灯亮,东西方向绿灯亮;南北方向红灯亮,东西方向黄红灯亮。图1 交通灯顺序工作流程图

应满足两个方向的工作时序:即东西方向亮红灯时间应等于南北方向亮黄、绿灯时间之和,南北方向亮红灯时间应等于东西方向亮黄、绿灯时间之和。时序流程图2所示。

图2中,假设每个单位时间为3秒,则南北、东西方向绿、黄、红灯亮时间分别15秒、3秒、18秒,一次循环为36秒。其中红灯亮的时间为绿灯、黄灯亮的时间之和。图2 交通灯时序工作流程图

十字路口要有数字显示,作为时间提示,以便人们更直观地把握时间。具体为:当某方向红灯亮时,置显示器为某值,然后以每秒减1计数方式方式工作,直至减到数为“0”,十字路口红、绿灯交换,一次工作循环结束,进入下一步某方向地工作循环。

例如:当南北方向从黄灯转换成红灯时,置南北方向数字显示为24,并使数显计数器开始减“1”计数,当减到“0”,时,此时红灯灭,而南北方向的绿灯亮;同时,东西方向的红灯亮,并置东西方向的数显为24。

三、实验内容:

1、根据实验要求及原理1、2画出交通指示灯控制电路原理框图。提示:两个方向的控制电路可以共用一个24进制计数器实现。

2、用VHDL硬件描述语言层次化设计方法进行顶层文件和各模块电路的设计。

3、用QuartusII对设计进行编译、综合、仿真,给出仿真波形和时序分析数据(不包括数码显示部分)。

4、通过QuartusII集成环境,将设计下载到实验电路上进行硬件测试。管脚锁定:

clk: clk1 43

clk1 start: PIO23 30

SW1 NSG

PIO19

LED12 NSY

PIO20

LED11 NSR

PIO21

LED10 EWG

PIO22

LED3 EWY

PIO12

LED2 EWR

LED15、画出完整的交通灯控制电路原理框图(含数码显示部分)。

6、修改上述内容2的设计,增加数码显示部分。

注意:两方向的计数要求分别显示在数码管1、2和数码管7、8上。

7、用MAX_plusⅡ对设计进行编译、综合、仿真,给出仿真波形和时序分析数据。

8、再次将设计下载到实验电路上进行硬件测试。新增管脚锁定:

A(6): PIO6 SEG g

A(5): PIO5 SEG f A(4): PIO4 SEG e A(3): PIO3 SEG d A(2): PIO2 SEG c A(1): PIO1 SEG b A(0): PIO0 SEG a *S(2):

*S(1):

*S(0):

四、思考题:

1、控制电路除用有限状态机实现外,还可以采用什么方法实现?

2、如果增加夜间显示(即全部黄灯闪烁),电路该怎样设计? 实验结果:

交通灯控制电路原理框图:

顶层电路的VHDL描述: library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity traffic is port(clk,start:in std_logic;NSG,NSY,NSR,EWG,EWY,EWR:out std_logic;ledNS,ledEW:out std_logic_vector(7 downto 0));end;architecture behav of traffic is component NSEW port(clk,start:in std_logic;NSG,NSY,NSR,EWG,EWY,EWR:out std_logic);end component;component led7s port(clock,start:in std_logic;ledns,ledew:out std_logic_vector(7 downto 0));end component;signal clk0,clk1,clk2,clknsr,clkewr:std_logic;begin u1:NSEW port map(clk=>clk,start=>start,NSG=>NSG,NSY=>NSY,NSR=>NSR,EWG=>EWG,EWY=>EWY,EWR=>EWR);u2:led7s port map(clock=>clk,start=>start,ledns=>ledNS,ledew=>ledEW);end;各模块电路的VHDL描述: 模块clock的VHDL描述—— library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity clock is port(clk,start:in std_logic;clk0,clk1,clk2:out std_logic);end clock;architecture behav of clock is begin proce(clk,start)variable cql:std_logic_vector(6 downto 0);begin if clk'event and clk='1' then if start='1'then

if cql'0');end if;if cql

if cql>23 and cql0 THEN CQI:=CQI-1;ELSE CQI:=“1001”;END IF;END IF;END IF;END IF;IF CQI=0 THEN COUT'0');end if;end if;if cqi'0');end if;end if;if cqi'0');end if;if cqi20 and cqi24 and cqi24 AND cqi44 AND CQI

signal cqi : std_logic_vector(7 downto 0);signal cql : std_logic_vector(7 downto 0);signal cnt6: std_logic_vector(7 downto 0);signal clk : std_logic;begin clk

if cnt6

else cnt6

end if;

end if;end if;end proce;proce(clk)begin if clk'event and clk='1' then if start='1'then if

cqi>32 then cqi16 then cqi0 then cqi

cql>32 then cql16 then cql0 then cql

测试结果及分析:

(1)东西方向亮红灯时间应等于南北方向亮黄、绿灯时间之和,南北方向亮红灯时间应等于东西方向亮黄、绿灯时间之和.(2)当某方向红灯亮时,置显示器为某值,然后以每秒减1计数方式方式工作,直至减到数为“0”,十字路口红、绿灯交换,一次工作循环结束,进入下一步某方向地工作循环。例如:当东西方向从黄灯转换成红灯时,置东西方向数字显示为24,并使数显计数器开始减“1”计数,当减到“0”,时,此时红灯灭,而东西方向的绿灯亮;同时,南北方向的红灯亮,并置南北方向的数显为24。【回答问题】

1、控制电路除用有限状态机实现外,还可以采用什么方法实现?

2、如果增加夜间显示(即全部黄灯闪烁),电路该怎样设计? 答:

还可以用进程语句实现,用一个十二进制的计数器作为控制模块,则EWR、EWG、EWY、NSR、NSG、NSY在计数器不同输出的时候有相应的输出。

《实验八交通灯控制电路的设计.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
实验八交通灯控制电路的设计
点击下载文档
相关专题 交通灯控制电路的设计 设计 交通灯 控制电路 交通灯控制电路的设计 设计 交通灯 控制电路
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文