《交通灯控制软件开发》说课1
- 格式:ppt
- 大小:9.27 MB
- 文档页数:39


课程设计课题:交通灯控制器的设计一、设计目的:学习QuartusII的使用方法,熟悉可编程逻辑器件的使用。
通过制作来了解交通灯控制系统,交通灯控制系统主要是实现城市十字交叉路口红绿灯的控制。
在现代化的大城市中, 十字交叉路口越来越多,在每个交叉路口都需要使用红绿灯进行交通指挥和管理,红、黄、绿灯的转换要有一个准确的时间间隔和转换顺序,这就需要有一个安全、自动的系统对红、黄、绿灯的转换进行管理, 本系统就是基于此目的而开发的。
二、设计任务:1.满足如下时序要求:南北方向红灯亮时,东西方向绿灯亮,反之亦然。
2.每一方向的红(绿)黄灯共维持30秒。
3.当某一方向绿灯亮时,置显示器为30秒,然后以每秒减1计数方式工作,直至减到数为3秒时,红绿灯熄灭,黄灯开始间隙闪耀3秒,减到为0,红绿灯交换,一次工作循环结束,进入下一步另一方向的工作循环。
4.红绿黄灯均采用发光二极管。
5.设计由晶振电路产生1Hz标准秒信号的单元电路。
6.要求对整体电路进行仿真,观察并记录下仿真波形。
三、设计原理:交通灯有四个状态:G1 Y1 R1 G2 Y2 R2S1. 亮灭灭灭灭亮S2. 灭闪灭灭灭亮S3. 灭灭亮亮灭灭S4. 灭灭亮灭闪灭然后重复状态S1.●分频器分频器实现的是将高频时钟信号转换成底频的时钟信号,用于触发控制器、计数器和扫描显示电路。
该分频器将时钟信号分频成1HZ和4HZ的时钟信号。
●控制器控制器的作用是根据计数器的计数值控制发光二极管的亮、灭,以及输出倒计时数值给七段数码管的分位译码电路。
此外,当检测到为夜间模式时,手动控制点亮黄灯的二极管。
●计数器这里需要的计数器的计数范围为30-0。
计到0后,下一个时钟沿回复到30,开始下一轮计数。
此外,当检测到夜间模式时,计数器暂停计数,而系统复位信号使计数器异步清零。
四、电路设计1、分频单元电路设计2、30减计数单元电路设计3、红黄绿灯控制单元电路设计4、译码显示单元电路设计●设计流程五、实验程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jiaotong isport(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)beginif clk'event and clk='1' then---对20HZ进行分频,1HZif(div<19999999)thendiv<=div+1;clk1<='0';else div<=0; clk1<='1';end if;if(divn<2499999)then ---用于黄灯闪烁divn<=divn+1;clk2<='0';else divn<=0; clk2<='1';end if;end if;end process;process (clk1) isvariable t:integer :=31; ---初始赋值beginif clr='1' then ---夜间时为黄灯闪烁,且为手动控制pout(6)<='0'; pout(5)<=clk2 and '1'; pout(4)<='0';pout(3)<='0'; pout(2)<=clk2 and '1'; pout(1)<='0';else if(clk1'event and clk1='1') thent:=t-1;case state is ---四种组合状态转换when s1 =>G1<='1'; Y1<='0'; R1<='0'; G2<='0';Y2<='0';R2<='1'; if(t=3) then state<=s2;else state<=s1;end if;when s2 =>G1<='0';Y1<='1';R1<='0';G2<='0';Y2<='0';R2<='1';if(t=0) then state<=s3;t:=30;else state<=s2;end if;when s3 =>G1<='0';Y1<='0';R1<='1';G2<='1';Y2<='0'; R2<='0';if(t=3) then state<=s4;else state<=s3;end if;when s4 =>G1<='0';Y1<='0';R1<='1';G2<='0';Y2<='1';R2<='0';if(t=0) then state<=s1;t:=30;else state<=s4;end if;when others =>NULL;end case;case t is ---十进制数与BCD码一一对应赋值,输出时便于七段显示译码器显示when 0 => C1<="0000";C0<="0000";when 1 => C1<="0000";C0<="0001";when 2 => C1<="0000";C0<="0010";when 3 => C1<="0000";C0<="0011";when 4 => C1<="0000";C0<="0100";when 5 => C1<="0000";C0<="0101";when 6 => C1<="0000";C0<="0110";when 7 => C1<="0000";C0<="0111";when 8 => C1<="0000";C0<="1000";when 9 => C1<="0000";C0<="1001";when 10=> C1<="0001";C0<="0000";when 11=> C1<="0001";C0<="0001";when 12=> C1<="0001";C0<="0010";when 13=> C1<="0001";C0<="0011";when 14=> C1<="0001";C0<="0100";when 15=> C1<="0001";C0<="0101";when 16 =>C1<="0001";C0<="0110";when 17 =>C1<="0001";C0<="0111";when 18 =>C1<="0001";C0<="1000";when 19 =>C1<="0001";C0<="1001";when 20 =>C1<="0010";C0<="0000";when 21 =>C1<="0010";C0<="0001";when 22 =>C1<="0010";C0<="0010";when 23 =>C1<="0010";C0<="0011";when 24 =>C1<="0010";C0<="0100";when 25 =>C1<="0010";C0<="0101";when 26 =>C1<="0010";C0<="0110";when 27 =>C1<="0010";C0<="0111";when 28 =>C1<="0010";C0<="1000";when 29 =>C1<="0010";C0<="1001";when 30 =>C1<="0011";C0<="0000";when others =>NULL;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、测试仪器:QUARTUSⅡ2、测试方法:FPGA下载验证与仿真验证3、测试结果:满足设计要求以20HZ为基准仿真:仿真结果:C1:显示30减计数的个位C0:显示30减计数的十位POUT(6):东西方向绿灯控制端POUT(5):东西方向黄灯控制端POUT(4):东西方向红灯控制端POUT(3):南北方向绿灯控制端POUT(2):南北方向黄灯控制端POUT(1):南北方向红灯控制端白天●夜间黄灯闪烁(手动控制)●设计满足了1.30秒倒数显示2.两个方向灯的交替3.黄灯在最后3秒闪烁七、讨论该电路基本上满足了设计要求,电路简单,实现容易,节省器件。
课程设计课程名称:单片机原理及应用课目:交通信号灯设计学院:专业:姓名:班级:学号:指导教师:2013年6 月17日目录一、第1章概述 (3)1、设计背景 (3)2、设计要求 (3)二、整体设计原理 (4)1、设计原理 (4)2、硬件电路分析 (5)三、硬件电路 (6)1、晶振电路 (6)2、硬件电路 (6)四、软件设计 (7)1、主程序设计 (7)2、程序代码分析 (8)3、元件清单 (11)五、测试 (12)1、Proteus简介 (12)2、仿真调试 (13)六、总结(心得体会) (19)七、附录 (20)1、参考文献 (20)2、程序代码 (20)一、概述1、设计背景在日常生活中,交通灯作为管理交通、调协车辆的一个便捷的手段,起着很大的作用。
各种交通工具、行人都要根据交通灯的变化来决定是否前行,通行的时间的规定协调了它们的步伐,极大的减少了由于交通混乱引起的各种事故的发生。
因此,一个完善的交通系统中,交通灯是必不可少的设备,一个完善的交通灯程序会更有效的管理当前道路中出现的实际情况,使车辆、行人的行进变得更顺畅、更和谐。
随着我国国民经济的快速发展,我国机动车辆发展迅速,而城镇道路建设由于历史等各种原因相对滞后,交通拥挤和堵塞现象时常出现。
如何利用当今计算机和自动控制技术,有效地疏导交通,提高城镇交通路口的通行能力,减少交通事故是很值得研究的一个课题。
目前,国内的交通灯一般设在十字路口,在醒目位置用红、绿、黄三种颜色的指示灯加上一个倒计时的显示器来控制行车。
在老师给出的几个课题中,我认为交通灯的课题更加贴近我们的生活,而且相对其他几个课题,这个交通灯主要运用的是中断程序,我相对来说比较熟悉,所以选择了这个交通灯的课题2、设计要求(1)设计目的随着单片机应用的日益广泛,在校学生加强对单片机动手实践能力的培养,已经是非常重要的一项锻炼。
课程设计就是为加强实践机会、培养学生动手能力的一个重要环节,将理论知识与实际联系起来的一个关键机会。
交通灯控制软件的开发1 十字路口基本情况分析设有一个十字路口,1、3为东西方向,2、4为南北方向,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车;延时一段时间后,1、3路口的绿灯熄灭,而1、3路口的黄灯开始闪烁,闪烁若干次以后,1、3 路口红灯亮,而同时2、4路口的绿灯亮,2、4路口方向通车;延时一段时间后,2、4 路口的绿灯熄灭,而黄灯开始闪烁,闪烁若干次以后,再切换到1、3路口方向,之后重复上述过程。
2 交通灯状态转换分析合理的设置每个路口、每个方向的交通灯的通行时间,对车辆能否及时疏散,有着决定性的作用。
状态1 的时候:1、3路口的绿灯熄灭,1、3路口的黄灯开始亮,当通行时间剩下5秒结束时,LED会闪烁,而同时2、4路口的红灯亮状态2的时候:1、3 路口红灯亮,而同时2、4路口的绿灯亮,2、4路口方向通车;状态3的时候:1、3 路口红灯亮,而同时2、4路口的黄灯亮;状态4 的时候:1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车。
整个状态转换的过程见表2-1。
表2-1 路口四个状态和相互转换过程完成四个状态的一次循环需要40秒,红灯亮20秒、绿灯亮15秒、黄灯亮5秒完成了在适当的时间限度内,有效的疏散较大的通行量的目的。
3 紧急通行情况分析3-1图3-1 紧急中断程序4 硬件功能分析4.1 8253A定时/计数器芯片8253A定时/计数器具有定时、计数双功能。
它具有三个相同且相互独立的16位减法计数器,分别称为计数器0、计数器1和计数器2。
每个计数器计数频率为0-2MHZ。
其内部数据总线缓冲器为双向三态,故可直接连在系统数据总线上,通过CPU写入计数初值,也可由CPU读出计数当前值。
读写控制逻辑,当选中该芯片时,根据读写命令和送来的地址信息控制整个芯片工作。
其工作方式通过控制字确定。
控制字寄存器用于接收数据总线缓冲器的信息。
当写入控制字时,控制计数器的工作方式;当写入数据时则装入计数初值。