交通灯控制器VHDL设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
11
Page 11

STATE<=S3;T1<=5;T2<=5; END IF; --states为s3时,南北方向亮红灯,东西方向黄灯, 5s WHEN S3=> LIGHT<="010001"; T1<=T1-1;T2<=T2-1; Q1<=T1;Q2<=T2; IF T1=0 THEN STATE<=S0;T1<=50;T2<=55; END IF; WHEN OTHERS=>STATE<=S0;T1<=50;T2<=55;--主 干道 END CASE; END IF; END PROCESS; END behav;
交通信号控制器VHDL设计
2014.12.7
设计构思
1.设计一个南北方向为主干道,东西方向为支干道; 2.选择一个标准时钟发生电路,为电路提供一个标准1HZ信 号; 3.(1)交通灯从绿变红时,有5秒黄灯亮的间隔时间;
(2)交通灯红变绿是直接进行的,没有间隔时间;
(3)主干道上的绿灯时间为50秒,支干道的绿灯时间为 30秒;
7
Page 7
程序说明
Page 8
8
VHDL设计代码
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; USE IEEE.STD_LOGIC_ARITH; ENTITY TRAFFIC2 IS PORT (CLK,R,SPC: IN STD_LOGIC; --时钟、复位、特殊 情况 LIGHT: OUT STD_LOGIC_VECTOR(5 DOWNTO 0); -light:G1,R1,Y1,G2,R2,Y2; Q1,Q2 : OUT INTEGER RANGE 0 TO 55); END TRAFFIC2 ; ARCHITECTURE behav OF TRAFFIC2 IS TYPE STATES IS (S0,S1,S2,S3); --定义枚举 SIGNAL STATE : STATES ; SIGNAL T1,T2: INTEGER RANGE 0 TO 55; BEGIN Page 9
Page 14
14
Page 5
5
系统功能
用VHDL编写程序实现交通信号控制器以下功能:
(1)交通灯从绿变红时,有5秒黄灯亮的间隔时间;
(2)交通灯红变绿是直接进行的,没有间隔时间; (3)主干道上的绿灯时间为50秒,支干道的绿灯时间 为30秒
Page 6
6
用VHDL编写程序实现交通信号控制器的端口控制信号。 其中, clk为标准的1HZ的时钟信号;R为复位信号;SPC 为紧急情况信号,负责紧急情况的处理,当紧急情况发 生时,南北主干道和东西支干道均显示红灯。 该程序定义了4个状态S0,S1,S2,S3。当状态为S0时,南 北方向亮绿灯,东西方向亮红灯,50s;当为状态为S1时 ,南北方向亮黄灯,东西方向亮红,5s ;当状态为S2时 ,南北方向亮红灯,东西方向绿灯,30s;当状态为S3时 ,南北方向亮红灯,东西方向黄灯,5s;程序还设计了 一个紧急信号情况,当遭遇紧急情况时,主干道和支干 道都亮红灯。
12
Page 12
仿真波形
Page 13
13
总结
通过这次实训,我们在程序的功能,源程序修改以及最后 的硬件调试波形仿真中取得了更深一步的成就,通过理论 结合实际进行不断地修改、讨论。填补了我们在这一方面 的不足,当最后结果出来的时候,我们心比蜜甜,通过这 次实训,我们在实践中学会了很多在平时的实验中无法学 到得东西。将使我们在以后的工作中受益匪浅。
Page 2
2
设计内容
交通信号控制器的VHDL源程序
交通信号控制器的仿真波形
Page 3
3
具体要求
设计一个交通信号控制器。 原理框图如下
Page 4
4
设计过程
选择我们所要制作的课程设计题目;
用Quartus Ⅱ 9.0写出交通信号控制器的VHDL源 程序代码;
将程序代码编译完成后对其波形进行仿真; 分析并验证功能仿真
9
ຫໍສະໝຸດ Baidu
P1: PROCESS (CLK,STATE) BEGIN IF R='1'THEN STATE<=S0;T1<=50;T2<=55; --复位 ELSIF SPC='1' THEN LIGHT<="010010"; --特殊情况 亮红灯 ELSIF CLK'EVENT AND CLK='1' THEN CASE STATE IS --states为s0时,南北方向亮绿灯,东西方向亮红灯,50s WHEN S0=> LIGHT<="100010"; T1<=T1-1;T2<=T2-1; Q1<=T1;Q2<=T2; IF T1=0 THEN
Page 10
10

STATE<=S1;T1<=5;T2<=5; END IF; --states为s1时,南北方向亮黄灯,东西方向亮红,5s WHEN S1=> LIGHT<="001010"; T1<=T1-1;T2<=T2-1; Q1<=T1;Q2<=T2; IF T1=0 THEN STATE<=S2;T1<=35;T2<=30; END IF; --states为s2时,南北方向亮红灯,东西方向绿灯, 30s WHEN S2=> LIGHT<="010100"; T1<=T1-1;T2<=T2-1; Q1<=T1;Q2<=T2; IF T2=0 THEN STATE<=S3;T1<=5;T2<=5;
相关文档
最新文档