交通灯控制逻辑电路设计与总结报告.doc
文本预览下载声明
交通灯控制逻辑电路设计与总结报告
一、设计任务
用CPLD设计路口交通灯控制器
二、设计要求
1、满足一下时序要求:南北方向红灯亮,东西方向绿灯亮;南北方向绿灯亮,东西方向红灯亮;
2、每一方向的红(绿)黄灯总共维持30秒;
3、十字路口要有时间显示,具体为:当某一方向绿灯亮时,置显示器为30秒,然后以每秒减一技术方式工作,直至减到数为4秒时,红绿灯熄灭,黄灯开始间隙闪耀4秒,减到0时,红绿灯交换,一次工作循环结束,进入下一步另一方向的工作循环;
4、红绿灯均采用发光二极管;
5、设计由晶振电路产生1Hz标准秒信号的单元电路 (实际秒脉冲由开发箱提供);
6、要求对整体电路进行仿真,观察并记录下仿真波形;
7、选作部分:
a、手动调整和自动控制,夜间为黄灯闪耀;
b、白天黄灯亮时,以2Hz的速度闪烁点亮四秒;
c、红绿灯循环点亮时间可以自由修改。
三、设计设备
含有Quartus软件的电脑一台,可下载的试验台;
四、设计方法
使用VHDL语言进行程序的设计运行和仿真,以及波形的运行仿真,最后进行下载仿真;
五、方案论证
方案1:把整个流程分成几个进程来做;
方案2:每个进程都使用if和case语句实现功能的实现;
方案3:使用状态机来实现状态间的转换;
方案论证:
1、要实现整个流程,需要做的输出内容类型不同,如果放在一个进程里面就比较容易混淆,产生混乱。而采用分成几个进程来做的方式就明确了每个模块的内容和分工,使其调理清晰,一目了然;
2、if语句是条件语句,是VHDL语言中常用的基本语句。该流程中的变量比较繁多,而使用case语句分情况列出来,简洁明了。
3、状态机的使用格式简洁,使用简单方便,特别是在进行状态的转换时候。并行的状态转换不易出错,可将状态转换、赋值、计数等多个功能封装在某一个状态中,并且更加便于为系统添加新的状态功能。
方案选定:
通过以上分析,确定用以上方案为本次设计的方案。
六、工作原理
先对所给时钟脉冲进行分频到标准时钟脉冲;设计两个时钟控制倒计时,倒计时的时间可自由修改,由输入决定;设计另一个时钟,用以控制白天与夜间模式的转换;在白天时,根据倒计时的数字进行红绿灯的状态转换;夜间时,红绿灯状态改为夜间模式:黄灯闪烁。
七、程序设计
------交通灯控制系统所使用的库和包
----------------------------------------------------------------------------------------------------------------------
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
----------------------------------------------------------------------------------------------------------------------
------交通灯控制系统的实体
----------------------------------------------------------------------------------------------------------------------
entity jt is
port(clk,reset:in std_logic; ------------------时钟脉冲clk由系统直接提供,需要进行分频;reset是启动键,当reset为1是,系统启动
t0:integer range 0 to30; ------------------红绿灯循环点亮的时间,根据输入的不同系统运行的不同
r1,y1,g1,r2,y2,g2:out std_logic; ------------------ r1为东西方向红灯, y1为东西方向黄灯,g1为东西方向绿灯;r2为南北方向红灯,y2为南北方向黄灯,g2为南北方向绿灯
ec0,ec1,nc0,nc1:out std_logic_vector(3 downto 0));
------------------ ec0,ec1分别为东西方向的倒计时间的个位和十位;nc0,nc1分别为南北方向的倒计时间的个位和十位
end jt;
-----------------------------------------------------------
显示全部