北邮数字电路实验报告——交通灯控制器(VHDL)(最全的)

上传人:lil****ar 文档编号:272055723 上传时间:2022-04-01 格式:DOC 页数:24 大小:2.14MB
返回 下载 相关 举报
北邮数字电路实验报告——交通灯控制器(VHDL)(最全的)_第1页
第1页 / 共24页
北邮数字电路实验报告——交通灯控制器(VHDL)(最全的)_第2页
第2页 / 共24页
北邮数字电路实验报告——交通灯控制器(VHDL)(最全的)_第3页
第3页 / 共24页
北邮数字电路实验报告——交通灯控制器(VHDL)(最全的)_第4页
第4页 / 共24页
北邮数字电路实验报告——交通灯控制器(VHDL)(最全的)_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《北邮数字电路实验报告——交通灯控制器(VHDL)(最全的)》由会员分享,可在线阅读,更多相关《北邮数字电路实验报告——交通灯控制器(VHDL)(最全的)(24页珍藏版)》请在金锄头文库上搜索。

1、 课题三:交通灯控制器学院:信息与通信工程学院专业:通信工程姓名:马赛克学号:09210246课题三:交通灯控制器一设计课题的任务要求(一)、实验目的1. 熟练掌握 VHDL 语言和QuartusII 软件的使用;2. 理解状态机的工作原理和设计方法;3. 掌握利用 EDA 工具进行自顶向下的电子系统设计方法;(二)、相关知识本实验要利用 CPLD 设计实现一个十字路口的交通灯控制系统,与其他控制系统一样,本系统划分为控制器和受控电路两部分。控制器使整个系统按设定的工作方式交替指挥车辆及行人的通行,并接收受控部分的反馈信号,决定其状态转换方向及输出信号,控制整个系统的工作过程。路口交通灯控制系

2、统的有东西路和南北路交通灯 R(红)、Y(黄)、G(绿)三色,所有灯均为高电平点亮。设置20s 的通行时间和5s 转换时间的变模定时电路,用数码管显示剩余时间。提供系统正常工作/复位和紧急情况两种工作模式。(三)、实验任务1.基本任务:设计制作一个用于十字路口的交通灯控制器。1). 南北和东西方向各有一组绿、黄、红灯用于指挥交通,绿灯、黄灯和红灯的持续时间分别为20 秒、5 秒和25 秒;2). 当有特殊情况(如消防车、救护车等)时,两个方向均为红灯亮,计时停止,当特殊情况结束后,控制器恢复原来状态,继续正常运行;3). 用两组数码管,以倒计时方式显示两个方向允许通行或禁止通行的时间;2.提高

3、要求:1). 增加左、右转弯显示控制功能;2). 紧急状况时增加声光警告功能;3). 自拟其它功能。二系统设计(包括设计思路、总体框图、分块设计)(一)设计思路 利用有限状态机描绘出交通灯的状态转移图,并设置记录东西和南北路口可通行时间的全局变量count,共设置四个正常状态,状态间的转移以count的值作为判断条件。对于两种特殊情况:当复位信号reset为高电平时,则回到最初状态;当紧急输入信号emergency为高电平时,则转移到一特殊状态。(二)总体框图1.系统结构框图3控制模块流程图(三)分块设计 -在VHDL设计中,采用自顶向下的设计思路。1.顶层模块中,根据硬件设计,设置如下端口:

4、u 外部时钟信号:CLKu 紧急状态按键:EMERGENCYu 南北方向状态灯:LIGHT1u 东西方向状态灯:LIGHT2u 蜂鸣器控制:BELLu 数码管显示信号:NUMu 数码管共阴极控制:CAT_TEMP2.在底层中,把不同功能分模块设计。u 主分频模块:由于外部时钟信号CLK的频率为50MHz,而实际需要的内部计时时钟频率为1Hz,需要一个分频电路。输入端口:CLK外部时钟信号输出端口:CLK_OUT分频后信号u 次分频模块:由于主频对于数码管扫描来说频率过高,因而再进行一次分频输入端口:CLK外部时钟信号输出端口:CLK_OUT1分频后信号u 计数器模块:由于整个过程的显示周期为5

5、0秒,即50个状态,所以该模块为计数器模块,计数周期为50,输入为1Hz的外部时钟,并加入紧急信号和复位信号,当输入紧急信号,计数停止,当输入复位信号,计数置1.通过该计数器的计数输出信号来控制LIGHT模块和COUNTDOWN模块的状态。输入端口:CLK时钟信号,EMERGENCY紧急信号,RESET复位信号输出端口:COUNTER计数状态信号,BELL报警信号u 数码管计数模块:倒计时显示模块,通过输入的COUNTER和CLK来控制数码管共阴极和7段数码管数字显示控制。输入接口:CLK时钟信号,COUNT计数器信号输出接口:CAT_TEMP共阴极控制,NUMIN数字输出u 显示模块:接收数

6、字信号,进行7位数码管显示译码输出。输入接口:NUMIN输入信号输出接口:NUM译码输出u 信号灯控制模块:使用状态机控制5个状态输入接口:COUNT计数器信号,EMERGENCY紧急状态控制,RESET复位信号输出接口:LIGHT1,LIGHT2信号灯输出三仿真波形及波形分析仿真波形-由于时钟为50MHz,故在仿真时为了波形图更易读,将分频器设为20分频1状态周期为150,在每个状态内,数码管共阴极进行扫描,且扫描同时数码管显示进行循环变化2周期状态,在120,2125,2645,4650进行红绿灯显示变化3.一整个周期状态150,在120,2125,2645,4650进行红绿灯显示变化 4

7、.多个周期循环5.紧急状态和复位状态四源程序(注释)l TRAFFICILGHT.vhd-主程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY TRAFFICLIGHT IS PORT( CLK,RESET,EMERGENCY:IN STD_LOGIC;-输入时钟信号,复位信号,紧急信号 LIGHT1,LIGHT2:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);-输出东西南北向两个红信号NUM:OUT ST

8、D_LOGIC_VECTOR(6 DOWNTO 0);-输出7端数码管选通信号CAT_TEMP:OUT STD_LOGIC_VECTOR(5 DOWNTO 0);-输出7端数码管共阴极信号BELL:OUT STD_LOGIC-输出警铃信号 );END TRAFFICLIGHT;ARCHITECTURE MAIN OF TRAFFICLIGHT ISSIGNAL TEMPCLK:STD_LOGIC;SIGNAL TEMPCLK2:STD_LOGIC;SIGNAL TEMPCOUNT:STD_LOGIC_VECTOR(5 DOWNTO 0);SIGNAL TEMPNUM:STD_LOGIC_VEC

9、TOR(3 DOWNTO 0);COMPONENT DIV IS-组合FREQUENCY模块,以下同 PORT( CLK:IN STD_LOGIC; CLK_OUT:OUT STD_LOGIC );END COMPONENT;COMPONENT DIV2 IS PORT( CLK:IN STD_LOGIC; CLK_OUT:OUT STD_LOGIC );END COMPONENT;COMPONENT COUNT ISPORT(CLK:IN STD_LOGIC;RESET:IN STD_LOGIC;EMERGENCY:IN STD_LOGIC;COUNTER:OUT STD_LOGIC_VEC

10、TOR (5 DOWNTO 0);BELL:OUT STD_LOGIC);END COMPONENT;COMPONENT LIGHT IS PORT( EMERGENCY:IN STD_LOGIC; COUNT:IN STD_LOGIC_VECTOR(5 DOWNTO 0); LIGHT1,LIGHT2:OUT STD_LOGIC_VECTOR(2 DOWNTO 0) );END COMPONENT;COMPONENT SHUMAGUAN IS PORT( COUNT:IN STD_LOGIC_VECTOR(5 DOWNTO 0); CLK:IN STD_LOGIC; NUMIN:OUT ST

11、D_LOGIC_VECTOR(3 DOWNTO 0); CAT_TEMP:OUT STD_LOGIC_VECTOR(5 DOWNTO 0) );END COMPONENT;COMPONENT SHOW ISPORT(NUM_IN:IN STD_LOGIC_VECTOR(3 DOWNTO 0);NUM:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END COMPONENT;BEGIN-将各个模块接口连接起来U1:DIV PORT MAP (CLK=CLK,CLK_OUT=TEMPCLK);U2:COUNT PORT MAP(BELL=BELL,CLK=TEMPCLK,RES

12、ET=RESET,EMERGENCY=EMERGENCY,COUNTER=TEMPCOUNT);U3:LIGHT PORT MAP(EMERGENCY=EMERGENCY,COUNT=TEMPCOUNT,LIGHT1=LIGHT1,LIGHT2=LIGHT2);U4:SHUMAGUAN PORT MAP(CAT_TEMP=CAT_TEMP,COUNT=TEMPCOUNT,CLK=CLK,NUMIN=TEMPNUM);U5:SHOW PORT MAP (NUM_IN=TEMPNUM,NUM=NUM);U6:DIV2 PORT MAP (CLK=CLK,CLK_OUT=TEMPCLK2);END

13、MAIN;l DIV.vhd-分频器模块,1HzLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;D_LOGIC_UNSIGNED.ALL;ENTITY DIV ISPORT(CLK:IN STD_LOGIC;CLK_OUT:OUT STD_LOGIC);END DIV;ARCHITECTURE FREQ OF DIV ISSIGNAL TEMP:INTEGER RANGE 0 TO 49999999;-设置分频49999999,则为1HzBEGINPROCESS(CLK)BEGINIF(CLKEVENT AND CLK=1)THENIF(TEMP=4999999)THENTEMP=0;ELSETEMP=TEMP+1;END IF;IF TEMP=49999999 THEN CLK_OUT=1; ELSE CLK_OUT=0; END IF; END IF;END PROCESS;END;l DIV2.vhd-次分频器模块,50KHzLIBRARY IEEE;C_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY DIV2 ISPORT(CLK:IN

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号