还剩11页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
课程设计课题交通灯控制器的设计
一、设计目的学习QuartusII的使用方法,熟悉可编程逻辑器件的使用通过制作来了解交通灯控制系统,交通灯控制系统主要是实现城市十字交叉路口红绿灯的控制在现代化的大城市中十字交叉路口越来越多在每个交叉路口都需要使用红绿灯进行交通指挥和管理红、黄、绿灯的转换要有一个准确的时间间隔和转换顺序这就需要有一个安全、自动的系统对红、黄、绿灯的转换进行管理本系统就是基于此目的而开发的
2、设计任务
1.满足如下时序要求南北方向红灯亮时,东西方向绿灯亮,反之亦然
2.每一方向的红(绿)黄灯共维持30秒
3.当某一方向绿灯亮时,置显示器为30秒,然后以每秒减1计数方式工作,直至减到数为3秒时,红绿灯熄灭,黄灯开始间隙闪耀3秒,减到为0,红绿灯交换,一次工作循环结束,进入下一步另一方向的工作循环
4.红绿黄灯均采用发光二极管
5.设计由晶振电路产生1Hz标准秒信号的单元电路
6.要求对整体电路进行仿真,观察并记录下仿真波形
三、设计原理 交通灯有四个状态G1Y1R1G2Y2R2S
1.亮灭灭灭灭亮S
2.灭闪灭灭灭亮S
3.灭灭亮亮灭灭S
4.灭灭亮灭闪灭然后重复状态S
1.分频器分频器实现的是将高频时钟信号转换成底频的时钟信号,用于触发控制器、计数器和扫描显示电路该分频器将时钟信号分频成1HZ和4HZ的时钟信号控制器控制器的作用是根据计数器的计数值控制发光二极管的亮、灭,以及输出倒计时数值给七段数码管的分位译码电路此外,当检测到为夜间模式时,手动控制点亮黄灯的二极管计数器这里需要的计数器的计数范围为30-0计到0后,下一个时钟沿回复到30,开始下一轮计数此外,当检测到夜间模式时,计数器暂停计数,而系统复位信号使计数器异步清零
四、电路设计
1、分频单元电路设计
2、30减计数单元电路设计
3、红黄绿灯控制单元电路设计
4、译码显示单元电路设计设计流程
五、实验程序libraryieee;useieee.std_logic_
1164.all;useieee.std_logic_unsigned.all;entityjiaotongisportclkclr:instd_logic;clk1clk2clk3:bufferstd_logic;---分频信号pout:outstd_logic_vector6downto1;---东西南北的红绿黄灯状态表示C1:outstd_logic_vector3downto0;---BCD码高四位表示C0:outstd_logic_vector3downto0;---BCD码低四位表示endjiaotong;architectureoneofjiaotongissignalg1y1r1g2y2r2:STD_LOGIC;---1表示东西方向,2表示南北方向,g,y,r分别表示绿灯,黄灯,红灯signaldiv:integerrange0to20000000;---分频1signaldivn:integerrange0to4000000;---分频2,用于控制黄灯闪烁typestiss1s2s3s4;---分别表示红绿黄灯的四种组合状态signalstate:st;beginC:processclkbeginifclkeventandclk=1then---对20HZ进行分频,1HZifdiv19999999thendiv=div+1;clk1=0;elsediv=0;clk1=1;endif;ifdivn2499999then---用于黄灯闪烁divn=divn+1;clk2=0;elsedivn=0;clk2=1;endif;endif;endprocess;processclk1isvariablet:integer:=31;---初始赋值beginifclr=1then---夜间时为黄灯闪烁,且为手动控制pout6=0;pout5=clk2and1;pout4=0;pout3=0;pout2=clk2and1;pout1=0;elseifclk1eventandclk1=1thent:=t-1;casestateis---四种组合状态转换whens1=G1=1;Y1=0;R1=0;G2=0;Y2=0;R2=1;ift=3thenstate=s2;elsestate=s1;endif;whens2=G1=0;Y1=1;R1=0;G2=0;Y2=0;R2=1;ift=0thenstate=s3;t:=30;elsestate=s2;endif;whens3=G1=0;Y1=0;R1=1;G2=1;Y2=0;R2=0;ift=3thenstate=s4;elsestate=s3;endif;whens4=G1=0;Y1=0;R1=1;G2=0;Y2=1;R2=0;ift=0thenstate=s1;t:=30;elsestate=s4;endif;whenothers=NULL;endcase;casetis---十进制数与BCD码一一对应赋值,输出时便于七段显示译码器显示when0=C1=0000;C0=0000;when1=C1=0000;C0=0001;when2=C1=0000;C0=0010;when3=C1=0000;C0=0011;when4=C1=0000;C0=0100;when5=C1=0000;C0=0101;when6=C1=0000;C0=0110;when7=C1=0000;C0=0111;when8=C1=0000;C0=1000;when9=C1=0000;C0=1001;when10=C1=0001;C0=0000;when11=C1=0001;C0=0001;when12=C1=0001;C0=0010;when13=C1=0001;C0=0011;when14=C1=0001;C0=0100;when15=C1=0001;C0=0101;when16=C1=0001;C0=0110;when17=C1=0001;C0=0111;when18=C1=0001;C0=1000;when19=C1=0001;C0=1001;when20=C1=0010;C0=0000;when21=C1=0010;C0=0001;when22=C1=0010;C0=0010;when23=C1=0010;C0=0011;when24=C1=0010;C0=0100;when25=C1=0010;C0=0101;when26=C1=0010;C0=0110;when27=C1=0010;C0=0111;when28=C1=0010;C0=1000;when29=C1=0010;C0=1001;when30=C1=0011;C0=0000;whenothers=NULL;endcase;endif;pout6=G1;pout5=clk2andY1;pout4=R1;---东西南北六盏灯对应pout3=G2;pout2=clk2andY2;pout1=R2;endif;endprocess;endone;
六、测试方法与测试结果
1、测试仪器QUARTUSⅡ
2、测试方法FPGA下载验证与仿真验证
3、测试结果满足设计要求以20HZ为基准仿真仿真结果C1显示30减计数的个位C0显示30减计数的十位POUT6:东西方向绿灯控制端POUT5:东西方向黄灯控制端POUT4:东西方向红灯控制端POUT3:南北方向绿灯控制端POUT2:南北方向黄灯控制端POUT1:南北方向红灯控制端白天夜间黄灯闪烁(手动控制)设计满足了1.30秒倒数显示2.两个方向灯的交替3.黄灯在最后3秒闪烁
七、讨论该电路基本上满足了设计要求,电路简单,实现容易,节省器件在设计过程中发现的问题以及需改进的地方在下面予以讨论
1.刚开始设置时黄灯在一个周期内闪烁五次导致连接硬件时黄灯不能正常工作,因为占空比太大,可以将其改正,使其在一个周期内闪烁十次
2.黄灯在夜间亮即可,不需要闪烁,闪烁会造成对器件的耗损程度加大,该项设置可通过在CASE语句中对其赋值来实现3.手动控制可将减计数设为可控减计数器,红黄绿灯可在CASE语句的赋值中实现控制另外,手动控制在实际使用的过程中并不方便,可以在控制信号一端设置一个控制器使其能够达到自动控制的目的20MHZ分频30减计数灯控制电路译码L显示。