交通灯控制器的课程设计

上传人:hao****an 文档编号:142566167 上传时间:2022-08-25 格式:DOC 页数:13 大小:283.51KB
返回 下载 相关 举报
交通灯控制器的课程设计_第1页
第1页 / 共13页
交通灯控制器的课程设计_第2页
第2页 / 共13页
交通灯控制器的课程设计_第3页
第3页 / 共13页
点击查看更多>>
资源描述
课程设计课题:交通灯控制器的设计 一、设计目的:学习QuartusII的使用方法,熟悉可编程逻辑器件的使用。通过制作来了解交通灯控制系统,交通灯控制系统主要是实现城市十字交叉路口红绿灯的控制。在现代化的大城市中, 十字交叉路口越来越多,在每个交叉路口都需要使用红绿灯进行交通指挥和管理,红、黄、绿灯的转换要有一个准确的时间间隔和转换顺序,这就需要有一个安全、自动的系统对红、黄、绿灯的转换进行管理, 本系统就是基于此目的而开发的。二、 设计任务: 1.满足如下时序要求: 南北方向红灯亮时,东西方向绿灯亮,反之亦然。 2.每一方向的红(绿)黄灯共维持30秒。 3.当某一方向绿灯亮时,置显示器为30秒,然后以每秒减1计数方式工作,直至减到数为3秒时,红绿灯熄灭,黄灯开始间隙闪耀3秒,减到为0,红绿灯交换,一次工作循环结束,进入下一步另一方向的工作循环。 4.红绿黄灯均采用发光二极管。 5.设计由晶振电路产生1Hz标准秒信号的单元电路。 6.要求对整体电路进行仿真,观察并记录下仿真波形。三、设计原理:l 交通灯有四个状态: G1 Y1 R1 G2 Y2 R2 S1. 亮 灭 灭 灭 灭 亮 S2. 灭 闪 灭 灭 灭 亮 S3. 灭 灭 亮 亮 灭 灭 S4. 灭 灭 亮 灭 闪 灭 然后重复状态S1.l 分频器分频器实现的是将高频时钟信号转换成底频的时钟信号,用于触发控制器、计数器和扫描显示电路。该分频器将时钟信号分频成1HZ和4HZ的时钟信号。l 控制器控制器的作用是根据计数器的计数值控制发光二极管的亮、灭,以及输出倒计时数值给七段数码管的分位译码电路。此外,当检测到为夜间模式时,手动控制点亮黄灯的二极管。l 计数器这里需要的计数器的计数范围为30-0。计到0后,下一个时钟沿回复到30,开始下一轮计数。此外,当检测到夜间模式时,计数器暂停计数,而系统复位信号使计数器异步清零。四、电路设计1、分频单元电路设计2、30减计数单元电路设计3、红黄绿灯控制单元电路设计4、译码显示单元电路设计l 设计流程20MHZ分频30减计数灯控制电路译码L显示五、实验程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jiaotong is port(clk,clr:in std_logic; clk1,clk2,clk3:buffer std_logic; -分频信号 pout:out std_logic_vector(6 downto 1);-东西南北的红绿黄灯状态表示 C1:out std_logic_vector(3 downto 0);-BCD码高四位表示 C0:out std_logic_vector(3 downto 0);-BCD码低四位表示end jiaotong;architecture one of jiaotong issignal g1,y1,r1,g2,y2,r2:STD_LOGIC;-1表示东西方向,2表示南北方向,g,y,r分别表示绿灯,黄灯,红灯signal div:integer range 0 to 20000000; -分频1signal divn:integer range 0 to 4000000; -分频2,用于控制黄灯闪烁type st is(s1,s2,s3,s4);-分别表示红绿黄灯的四种组合状态signal state:st;beginC:process(clk) begin if clkevent and clk=1 then-对20HZ进行分频,1HZ if(div19999999)then div=div+1; clk1=0; else div=0; clk1=1; end if; if(divn2499999)then -用于黄灯闪烁 divn=divn+1; clk2=0; else divn=0; clk2=1; end if; end if; end process;process (clk1) is variable t:integer :=31; -初始赋值begin if clr=1 then -夜间时为黄灯闪烁,且为手动控制 pout(6)=0; pout(5)=clk2 and 1; pout(4)=0; pout(3)=0; pout(2)=clk2 and 1; pout(1) G1=1; Y1=0; R1=0; G2=0;Y2=0;R2=1;if(t=3) then state=s2; else state G1=0;Y1=1;R1=0;G2=0;Y2=0;R2=1; if(t=0) then state=s3;t:=30; else state G1=0;Y1=0;R1=1;G2=1;Y2=0; R2=0; if(t=3) then state=s4; else state G1=0;Y1=0;R1=1;G2=0;Y2=1;R2=0; if(t=0) then state=s1;t:=30; else stateNULL; end case; case t is -十进制数与BCD码一一对应赋值,输出时便于七段显示译码器显示 when 0 = C1=0000;C0 C1=0000;C0 C1=0000;C0 C1=0000;C0 C1=0000;C0 C1=0000;C0 C1=0000;C0 C1=0000;C0 C1=0000;C0 C1=0000;C0 C1=0001;C0 C1=0001;C0 C1=0001;C0 C1=0001;C0 C1=0001;C0 C1=0001;C0C1=0001;C0C1=0001;C0C1=0001;C0C1=0001;C0C1=0010;C0C1=0010;C0C1=0010;C0C1=0010;C0C1=0010;C0C1=0010;C0C1=0010;C0C1=0010;C0C1=0010;C0C1=0010;C0C1=0011;C0NULL; end case; end if; pout(6)=G1; pout(5)=clk2 and Y1;pout(4)=R1; -东西南北六盏灯对应 pout(3)=G2; pout(2)=clk2 and Y2;pout(1)=R2;end if;end process ;end one;六、测试方法与测试结果1、测试仪器:QUARTUS2、测试方法:FPGA下载验证与仿真验证3、测试结果:满足设计要求以20HZ为基准仿真:仿真结果:C1:显示30减计数的个位C0:显示30减计数的十位POUT(6):东西方向绿灯控制端POUT(5):东西方向黄灯控制端POUT(4):东西方向红灯控制端POUT(3):南北方向绿灯控制端POUT(2):南北方向黄灯控制端POUT(1):南北方向红灯控制端l 白天l 夜间黄灯闪烁(手动控制)l 设计满足了130秒倒数显示2两个方向灯的交替3黄灯在最后3秒闪烁七、讨论该电路基本上满足了设计要求,电路简单,实现容易,节省器件。在设计过程中发现的问题以及需改进的地方在下面予以讨论:1. 刚开始设置时黄灯在一个周期内闪烁五次导致连接硬件时黄灯不能正常工作,因为占空比太大,可以将其改正,使其在一个周期内闪烁十次。2.黄灯在夜间亮即可,不需要闪烁,闪烁会造成对器件的耗损程度加大,该项设置可通过在CASE语句中对其赋值来实现。 3手动控制可将减计数设为可控减计数器,红黄绿灯可在CASE语句的赋值中实现控制。 另外,手动控制在实际使用的过程中并不方便,可以在控制信号一端设置一个控制器使其能够达到自动控制的目的。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑环境 > 建筑资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!