交通信号灯_数字逻辑程序设计_第1页
交通信号灯_数字逻辑程序设计_第2页
交通信号灯_数字逻辑程序设计_第3页
交通信号灯_数字逻辑程序设计_第4页
交通信号灯_数字逻辑程序设计_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、石家庄经济学院信息工程学院数字逻辑课程设计报告题 目 十字路口交通灯控制器 姓 名 赵永超 学 号 班 号 指导老师 成 绩 2010年6月目 录1. 功能描述522. 开发工具选择523. 设计方案 524 模块描述525. VHDL实现526. 调试仿真527. 课程设计回顾总结 52参 考 文 献 52附录 521.功能描述ar,ay,ag 和br,by,bg分别表示A和B道的红灯,黄灯,绿灯的驱动信号。信号灯在高电平时亮,低电平时熄灭。十字路口的交通灯控制电路功能:十字路口交通灯控制规则为:当A道无车时,传感器输出X0,A道红灯一直亮,B道绿灯一直亮,直到15s定时时间到且A道有车为止

2、;当B道通行15s且A道有车时,B道绿灯亮变成黄灯,经过5s后变成红灯亮,A道由红灯亮变成绿灯亮,直到10s定时时间到或者X0为止;最后A道黄灯亮,B道红灯亮,直到5s定时时间到,再回到B道绿灯亮,A道红灯亮的初始状态。2.开发工具选择 选择VHDL语言描述,利用Quartus II 5.1工具。3. 设计方案在设计方案之前,我们应明确课程设计的任务和要求:该数字系统完成对十字路口交通信号灯的控制,十字路口由一条南北方向的支干道(简称A道)和东西方向的主干道(简称B道)构成。A道安装有车辆检测传感器X,当该道有车时,传感器输出信号为高电平,当该道无车时,传感器输出低电平信号。十字路口交通灯控制

3、规则为:当A道无车时,传感器输出X0,A道红灯一直亮,B道绿灯一直亮,直到15s定时时间到且A道有车为止;当B道通行15s且A道有车时,B道绿灯亮变成黄灯,经过5s后变成红灯亮,A道由红灯亮变成绿灯亮,直到10s定时时间到或者X0为止;最后A道黄灯亮,B道红灯亮,直到5s定时时间到,再回到B道绿灯亮,A道红灯亮的初始状态。(1)、首先对问题进行仔细分析设东西和南北方向的车流量大致相同,从题目中计数值与交通灯的亮灭的关系如下图所示:5s15s0sec35sec黄灯亮红灯亮15sec红灯亮绿灯亮黄灯亮10s5s图2绿灯亮 B道A道(2) 经过认真分析后制定设计方案如图3十字路口交通灯控制系统由定时

4、器模块、控制器模块和输出模块组成。定时器模块由15s、5s、10s三个定时器构成,分别确定A道、B道通行时间(绿灯亮时间)、缓冲时间(黄灯亮时间)和禁止时间(红灯亮时间)。三个定时器采用以秒为时钟的计数器来实现,e15,e5,e10分别是三个定时计数器的工作使能信号,即当e15,e5,e10为1时,相应的定时器计数;tm15、tm5、tm10为定时计数器的计数指示信号,当计数器在计数过程中,相应的指示信号为0,当计时时间到即计时结束时,相应的指示信号为1。交通灯控制器模块的作用是对系统工作状态的转换进行控制,根据十字路口交通控制信号灯控制规则则可得到系统状态转换表如图4示,其中ar,ay,ag

5、和br,by,bg分别表示由控制器输出的A道和B道红、黄、绿灯点亮信号,e15、e10、e5分别表示由控制器输出传给15s、10s、5s三个定时计数器的计数使能信号,x为输入控制器的车辆传感器信号,tm15、tm5、tm10分别表示由15s、10s、5s定时计数器产生的计时时间到信号,它们是控制器的输入信号。从图4可知系统有5个状态,编码为S0(00)、S1(01)、S2(10)、S3(11)、S4(xx),各信号高电平有效,低电平无效。输出模块的作用是将控制器输出的各个信号进行驱动以点亮对应的信号灯,。cpresetx定时器模块控制器模块10s定时器5s定时器25s定时器e10tm10e5t

6、m5e15tm15控 制 器brbyybgarayagclkclrx输出模块图3十字路口交通灯控制器状态转换表(图4)控制器输入控制器输出说明现态状态转换条件次态输出x*tm15 tm5 not(x)tm20br by bgar ay age15 e5 e10B道绿灯,A道红灯S0(0 0)1 x xS1(0 1)001100100B道黄灯,A道红灯S1(0 1)x 1 xS2(1 0)010100010B道红灯,A道绿灯S2(1 0)x x 1S3(1 1)100001001B道红灯,A道绿灯S3(1 1)x 1 xS0(0 0)1000100104 模块描述该控制系统主要分为三大模块:定时

7、计数器模块和控制器模块和连接模块、定时计数器模块:该模块分为三个定时电路,假设时基脉冲为1Hz,则需要设计一个15进制计数器、一个5进制计数器和一个10进制计数器,且每个计数器应具有计数使能控制端和计时时间到信号输出端。本设计中可采用异步清零、同步置位的4位十进制加法计数器74LS160构成。(1)、模10定时计数器的简化形式如下图:表二 模10计数器功能真值表输入计数变量输出resetcpegcountT_51 × ×置数0当count=10时,T_10=1否则T_10=0 0 1当count<10计数值加一否则置00 00Counter10cpe10resettm

8、10模10定时计数器(2)、模5定时计数器的简化形式如下图:输入计数变量输出resetcpeycountT_51 × ×置数1当count=5时,T_5=1否则T_5=0 0 1当count<5计数值加一否则置10 01cpe5resettm5Counter5模5定时计数器 (3)、模15定时计数器的简化形式如下图: 表三 模15计数器功能真值表输入计数变量输出resetcpeycountT_51 × ×置数0当count=45时,T_15=1否则T_15=0 0 1当count<15计数值加一否则置10 00cpe15resetTm15Co

9、unter15模15定时计数器 、控制器模块的简化形式如下图:tm10tm5tm15xcpresetbrbybgarayage10e5e15controller控 制 器 模 块5. VHDL实现:下面是程序实现的vhdl代码(1)模5定时计数器实现代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY counter5 isPORT (cp, e5,reset: IN STD_LOGIC; -定义输入信号 tm5: OUT STD_LOGIC); -定义输出信号END counter5;ARCHITECTURE cnt5 of counter5

10、is -结构体BEGIN PROCESS(cp, reset) -进程的敏感信号是cp和reset,进程描述摸5计数过程 VARIABLE cnt: INTEGER RANGE 5 DOWNTO 0; -定义变量cnt为整数,范围5到0 BEGIN IF reset='1' THEN cnt:=0; ELSIF (cp'EVENT AND cp='1') THEN -如果CP信号发生变化且变化后结果是CP=1 IF e5='1' AND cnt<5 THEN cnt:=cnt+1; ELSE cnt:=0; END IF; END

11、IF; IF cnt=5 THEN tm5<='1' ; ELSE tm5<='0' END IF; END PROCESS;END cnt5;(2)、模10定时计数器实现代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY counter10 IS PORT(cp, e10, reset: IN STD_LOGIC; -定义输入信号 tm10: OUT STD_LOGIC); -定义输出信号END counter10;ARCHITECTURE cnt10 OF counter10 IS BEGIN P

12、ROCESS(cp, reset) -进程的敏感信号是cp和reset,进程描述摸5计数过程 VARIABLE cnt: INTEGER RANGE 10 DOWNTO 0; -定义变量cnt为整数,范围10到0BEGIN IF reset='1' then cnt:=0; ELSIF (cp'EVENT AND cp='1') THEN -如果CP信号发生变化且变化后结果是CP=1 IF e10='1' and cnt<10 THEN cnt:=cnt+1; ELSE cnt:=0; END IF;END IF;IF cnt=10

13、 then tm10<='1'ELSE tm10<='0' END IF;END process;END cnt10;(3)、模15定时计数器实现代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY counter15 is PORT (cp, e15, reset: IN STD_LOGIC; -定义输入信号 tm15: OUT STD_LOGIC); -定义输出信号END counter15;ARCHITECTURE cnt15 of counter15 isBEGIN PROCESS(cp, re

14、set) -进程的敏感信号是cp和reset,进程描述摸15计数过程 VARIABLE cnt: INTEGER RANGE 15 DOWNTO 0; -定义变量cnt为整数,范围15到0BEGIN IF reset='1' THEN cnt:=0; ELSIF (cp'EVENT AND cp='1') THEN -如果CP信号发生变化且变化后结果是CP=1 IF e15='1' AND cnt<15 THEN cnt:=cnt+1; ELSE cnt:=0; END IF; END IF; IF cnt=15 THEN tm15

15、<='1' ; ELSE tm15<='0' END IF; END PROCESS;END cnt15;(4)、控制器controller实现代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY controller IS PORT(cp,x,reset,tm10,tm5,tm15:IN STD_LOGIC; -定义输入信号 br,by,bg,ar,ay,ag,e10,e5,e15:OUT STD_LOGIC); -定义输出信号end controller;ARCHITECTURE behave_co

16、ntrol OF controller IS -结构体TYPE CONTROL_STATE IS (S0,S1,S2,S3) ; -定义枚举类型数据,4个状态SIGNAL state:CONTROL_STATE:=S0; -定义初始信号为S0BEGINPROCESS(CP,X,RESET) -进程的敏感信号是cp,x和reset,进程描述控制器运行BEGINIF RESET='1' THEN state<=S0;ELSIF (cp'EVENT AND cp='1') THEN -如果CP信号发生变化且变化后结果是CP=1 CASE state IS

17、 WHEN S0=> IF (x AND tm15)='1' THEN state<=S1; END IF; WHEN S1=> IF tm5='1' THEN state<=S2; END IF; WHEN S2=> IF (NOT x)OR tm10)='1' THEN state<=S3; END IF; WHEN S3=> IF tm5='1' THEN state<=S0; END IF; END CASE; END IF;END PROCESS;br<='1

18、' when state=S2 or state=S3 else '0'by<='1' when state=S1 else '0'bg<='1' when state=S0 else '0'ar<='1' when state=S0 or state=S1 else '0'ay<='1' when state=S3 else '0'ag<='1' when state=S2 else '0

19、'e10<='1' when state=S2 else '0'e5<='1' when state=S1 or state=S3 else '0'e15<='1' when state=S0 else '0'END behave_control;(5)、连接模块(对各接口进行例化)实现代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;LIBRARY LATTICE;ENTITY RYG IS PORT(cp, reset, x: IN

20、 STD_LOGIC; br, by, bg, ar, ay, ag: OUT STD_LOGIC);END RYG;ARCHITECTURE BE_RYG OF RYG IS COMPONENT counter10 -元件说明:模10计数器 PORT(cp, e10, reset: IN STD_LOGIC; tm10: OUT STD_LOGIC);END COMPONENT;COMPONENT counter5 -元件说明:模5计数器 PORT (cp, e5, reset: IN STD_LOGIC; tm5: OUT STD_LOGIC);END COMPONENT;COMPONEN

21、T counter15 -元件说明:模15计数器 PORT (cp, e15, reset: IN STD_LOGIC; tm15: OUT STD_LOGIC);END COMPONENT;COMPONENT controller -元件说明:控制器 PORT(cp, x, reset, tm10, tm5, tm15: IN STD_LOGIC; br, by,bg, ar, ay, ag, e10, e5, e15: OUT STD_LOGIC);END COMPONENT;signal tag1, tag2, tag3, tag4, tag5, tag6: std_logic;BEGINU1: counter10 PORT MAP(cp=>cp, e10=>tag1, r

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论