交通灯控制器课程设计.doc
《交通灯控制器课程设计.doc》由会员分享,可在线阅读,更多相关《交通灯控制器课程设计.doc(20页珍藏版)》请在沃文网上搜索。
1、电气与信息工程学院本科生课程设计目录一、 设计目的二、 设计要求三、 设计原理四、 设计程序五、设计心得19一、 设计目的1、用红、绿、黄三色发光二极管做信号灯,主干道A为东西向,设红、绿、黄三色灯为AR、AG、AY;支干道B喂南北向。三色灯为BR、BG、BY。2、主干道车辆较多,所以亮绿灯的时间设为50s;支干道亮绿灯的时间设为30s。当主干道允许通行亮绿灯时则支干道亮红灯;相反,支干道允许通行亮绿灯时则主干道亮红灯。每次由绿灯转变为红灯时,其间要亮5s的黄灯作为过渡,以便行驶中的车辆有时间停到禁止线以内。3、交通灯正常运行时,用4位数码管M1、M2、M3、M4显示主干道和支干道的倒计时时间
2、,M1、M2显示主干道在当前状态剩余时间;m3、m4显示支干道在当前状态的剩余时间。4、能实现系统总清0,清0后计数器由出事状态开始计数。指示灯指示主干道亮绿灯。5、具有一定的扩展功能: 它能实现特殊状态的功能先死,用开关S作为特殊信号传感器,S为1时进入特殊状态并实现下列特殊状态功能: 1)显示器M1、M2、M3、M4闪烁,即在全0和当前计时时间中交替显示。 2)计数器停止计数并保持原来的时间数据。 3)东西、南北方向的三色灯全显示为红色状态。 4)特殊状态解除后能继续返回正常工作状态。 5)进入特殊状态时,音响电路发出急促的“嘀嘟”声,以示警告。二、设计要求 1、分析设计任务,拟定多种设计
3、方案,根据当时的制作条件,选定其中的一种方案绘制系统框图和设计流程。 2、设计各部分单元电路或编写VHDL描述程序。计算元器件参数、确定元器件幸好和数量,提出元器件清单。 3、安装调试硬件电路,或制作以CPLD/FPGA为基础的专用集成电路芯片ASIC。 4、对制作的电路进行功能测试,分析各项技术指标;或对设计的电路进行功能仿真,分析仿真波形。对ASIC电路做硬件测试或脱机运行。 5、总结设计资料,打印包括原理电路(或VHDL描述)、仿真波形的设计报告,交验并演示电路装置三、设计原理 1、系统设计原理框图 交通灯控制器原理框图如下,包括置数模块、主控制器模块、译码器模块和数据选择器模块几个部分
4、。置数模块将交通灯的点亮时间初值预置到置数电路中,预置的具体数据则由控制器当前的状态决定,即点亮不同颜色的灯则置入不同的值。计数器电路则根据预置的初值做减1操作,当减到零时则预置时间到;又使主控制器的状态发生变化,启动计时电路进入下一个状态的倒计时。译码器模块将主控制电路的当前状态译码为红、绿、黄三色信号灯的点亮信号。整个电路的核心是主控制器。南北方向显示器东西方向显示器时钟信号1HZ清0(CR)特殊状态SBRBYBGAGAYAR主控制器十位个位译码器译码器MUX接地计数器A置数器A十位个位译码器译码器MUX接地计数器B置数器B分频器绿 黄 红 红 黄 绿交通灯控制器原理框图2、主控制器 主控
5、制器决定控制电路状态变化的顺序。主控制器的输入信号有:控制器目前状态S1S0,特殊情况输入信号S、50s计时时间到信号T50,30s计时时间到信号T30,输出信号是控制器的次态Z1Z0。可直接设计为时序电路,也可以先设计为组合电路后加接触发器,下图是主控电路的框图。主控制器原理框图FFC1FFC0S0 Z0S1 Z1 ST30T50 S0S1 ST30T50CPCLRD QC CLRD QC CLRZ0Z1四、设计程序 library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC
6、_UNSIGNED.ALL;entity tr_m is Port ( rst : in STD_LOGIC; clk : in STD_LOGIC; s : in STD_LOGIC; speak:out std_logic; BCD_out : out STD_LOGIC_VECTOR (7 downto 0); BCDout : out STD_LOGIC_VECTOR (7 downto 0); led: out STD_LOGIC_VECTOR (7 downto 0);end tr_m;architecture Behavioral of tr_m istype numstate
7、is (S1GR,S2YR,S3RG,S4RY,S5RR,S6RR);signal state : numstate;signal SBCD_out : STD_LOGIC_VECTOR (7 downto 0);constant c1: STD_LOGIC_VECTOR (7 downto 0) :=X55;constant c3: STD_LOGIC_VECTOR (7 downto 0) :=X35;signal state_tem: numstate;signal sled : STD_LOGIC_VECTOR (7 downto 0) ;signal n:std_logic;begi
8、nled=sled;process(clk,rst)begin if(rst=1) then n=1; elsif(rising_edge(clk) then if(sBCD_out=x55) then BCD_out=x50; BCDout=x55; elsif sBCD_out=x35 then BCD_out=x35; BCDout=x0 and sBCD_out(3 downto 0)=x4) then BCD_out = SBCD_out-x6-5; else BCD_out = SBCD_out-5; end if; BCDout = SBCD_out; elsif(sled=x2
9、1) then BCD_out = SBCD_out; BCDout =x0 and sBCD_out(3 downto 0)=x4) then BCDout = SBCD_out-x6-5; else BCDout = SBCD_out-5; end if; BCD_out = SBCD_out; elsif(sled=x12) then BCD_out = SBCD_out; BCDout = SBCD_out; elsif(sled=x11 and n=1 and s=1) then n=0; BCD_out = x00; BCDout = x00; elsif(sled=x11 and
10、 n=0 and s=1) then n=x0 and sBCD_out(3 downto 0)=x4) then BCDout = SBCD_out-x6-5; else BCDout = SBCD_out-5; end if; BCD_out =x0 and sBCD_out(3 downto 0)=x4) then BCD_out = SBCD_out-x6-5; else BCD_out = SBCD_out-5; end if; BCDout = SBCD_out; else BCD_out = SBCD_out; BCDout =x0 and sBCD_out(3 downto 0
11、)=x4) then BCDout = SBCD_out-x6-5; else BCDout = SBCD_out-5; end if; BCD_out =x0 and sBCD_out(3 downto 0)=x4) then BCD_out = SBCD_out-x6-5; else BCD_out = SBCD_out-5; end if; BCDout = SBCD_out; else BCD_out = SBCD_out; BCDout = SBCD_out; end if; end if; end if;end process;cntproc: process(rst,clk,st
12、ate_tem)beginif rst=1 then SBCD_out=c1;elsif rising_edge(clk) then if s=1 then SBCD_out=SBCD_out; elsif SBCD_out=1 then if sled=x12 then SBCD_out=c1; elsif sled=x21 then SBCD_out=c3; end if; elsif SBCD_out(3 downto 0)=0 then SBCD_out = SBCD_out-7; else SBCD_out = SBCD_out-1; end if;end if;end proces
13、s;stateproc: process(rst,clk)begin if rst=1 then state=S1GR; state_tem=S1GR; elsif rising_edge(clk) then if s=1 and n=1 then state=S5RR; elsif s=1 and n=0 then state=S6RR; elsif sled=x11 then state=state_tem; elsif SBCD_out=X06 then if sled=x41 then state=S2YR; state_tem=S2YR; elsif sled=x14 then st
14、ate=S4RY; state_tem=S4RY; end if; elsif SBCD_out=X01 then if sled=x21 then state=S3RG; state_tem=S3RG; elsif sled=x12 then state=S1GR; state_tem sled=x41; speak sled=x21; speak sled=x14; speak sled=x12; speak sled=x11; speak sled=x11; speak null;end case;end if;end process;end Behavioral; - Company:
15、- Engineer:- Create Date: 14:56:21 05/13/2012- Design Name:- Module Name: jiaotongdeng - Behavioral- Project Name:- Target Devices:- Tool versions:- Description:- Dependencies:- Revision:- Revision 0.01 - File Created- Additional Comments:-library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 交通灯 控制器 课程设计