欢迎来到天天文库
浏览记录
ID:39606300
大小:188.00 KB
页数:5页
时间:2019-07-07
《交通灯控制电路实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、南昌航空大学电子信息工程学院EDA技术课程实验报告实验名称:交通灯控制电路实验实验时间:09年11月27日指导教师:班级:060422学号:24姓名:刘杰水成绩:一、一、实验目的1、了解交通灯的燃灭规律。2、了解交通灯控制器的工作原理。3、熟悉VHDL语言编程,了解实际设计中的优化方案。二、实验原理交通灯的显示有很多方式,如十字路口、丁字路口等,而对于同一个路口又有很多不同的显示要求,比如十字路口,车辆如果只要东西和南北方向通行就很简单,而如果车子可以左右转弯的通行就比较复杂,本实验仅针对最简单的南北和东西直行的情况。要完成本实验,首先必须了解交通路灯的燃
2、灭规律。本实验需要用到实验箱上交通灯模块中的发光二极管,即红、黄、绿各三个。依人们的交通常规,“红灯停,绿灯行,黄灯提醒”。其交通灯的燃灭规律为:初始态是两个路口的红灯全亮,之后,东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时一段时间后,东西路口绿灯灭,黄灯开始闪烁。闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口的绿灯灭,黄灯开始闪烁。闪烁若干次后,再切换到东西路口方向,重复上述过程。在实验中使用8个七段码管中的任意两个数码管显示时间。东西路和南北路的通车时间均设定为20s。数码管的时间总是显示为1
3、9、18、17……2、1、0、19、18……。在显示时间小于3秒的时候,通车方向的黄灯闪烁。三、实验内容本实验要完成任务就是设计一个简单的交通灯控制器,交通灯显示用实验箱的交通灯模块和七段码管中的任意两个来显示。系统时钟选择时钟模块的1KHz时钟,黄灯闪烁时钟要求为2Hz,七段码管的时间显示为1Hz脉冲,即每1s中递减一次,在显示时间小于5秒的时候,通车方向的黄灯以2Hz的频率闪烁。系统中用S1按键进行复位。一、总原理图各模块的功能:1、traffic_control:主控模块,控制两个定时器的使能与红、绿、灯的亮灭。2、Count:定时器,用于控制东西与
4、南北的通车时间。3、Divder:分频器,10分频用于扫描数码管,1000分频用于定时器与主控模块,500分频用于黄灯的闪烁。4、mux_2:2选1的选择器,用于控制数码管的显示值。5、Display:控制数码管的显示。6、Yellow:用于控制黄灯的闪烁。一、主控模块的VHDL的程序libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useIEEE.STD_LOGIC_ARITH.ALL;useIEEE.STD_LOGIC_UNSIGNED.ALL;----------------------------------------
5、------------------ENTITYtraffic_controlIS--实体描述PORT(clk1:INstd_logic;c1,c2:INstd_logic;rst:INstd_logic;EN_1,EN_2:outstd_logic;r1,r2,y1,y2,g1,g2:outstd_logic);ENDtraffic_control;-----------------------------------------------------------ARCHITECTUREbehaveOFtraffic_controlIStypestat
6、esis(st0,st1,st2,st3);--定义状态机的四个状态,状态0:东西通车且绿signalstate:states;--亮;状态1:东西通车且黄灯闪烁;状态2:南BEGIN--北亮且绿灯亮;状态3:南北通车且黄灯闪烁PROCESS(clk1,rst)beginifrst='0'thenstate<=st0;elseifclk1'eventandclk1='1'thencasestateiswhenst0=>ifc1='1'thenstate<=st1;endif;whenst1=>ifc2='1'thenstate<=st2;endif;whe
7、nst2=>ifc1='1'thenstate<=st3;endif;whenst3=>ifc2='1'thenstate<=st0;endif;endcase;endif;endif;endprocess;EN_1<='1'whenstate=st0orstate=st2else'0';--状态0或状态2定时器1使能EN_2<='1'whenstate=st1orstate=st3else'0';--状态1或状态3定时器2使能r1<='1'whenstate=st2orstate=st3else'0';--状态2或状态3东西红灯亮r2<='1'whens
8、tate=st0orstate=st1else'0';--状态0或
此文档下载收益归作者所有