交通信号灯控制器课程设计报告.doc_第1页
交通信号灯控制器课程设计报告.doc_第2页
交通信号灯控制器课程设计报告.doc_第3页
交通信号灯控制器课程设计报告.doc_第4页
交通信号灯控制器课程设计报告.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

交通信号灯控制器课程报告一设计要求1、 设计一个交通信号灯控制器,由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。2、 主、支干道交替允许通行,主干道每次放行45秒,支干道每次放行25秒,设立45秒、25秒计时、显示电路。3、 在每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡。提示:1、 选择1HZ时钟脉冲作为系统时钟。2、 45秒、25秒、5秒定时信号用倒计时,计时起始信号由主控电路给出,每当计满所需时间,计数器清零,由主控电路启、闭三色信号灯或启动另一计时电路。2 设计思路 本设计针对一条主干道和一条支干道汇合成的十字路口,进行南北和东西直行情况下交通灯控制。根据交通灯的亮的规则,在初始状态下四个方向的都为红灯亮启,进入正常工作状态后,当主干道上绿灯亮时,支干道上红灯亮,持续45S后,主干道和支干道上的黄灯都亮启,持续5S后,主干道上红灯亮启,支干道上绿灯亮启持续25S,之后主干道和支干道上的黄灯都亮启5s,一个循环完成。循环往复的执行这个过程。设计中用两组红黄绿LED模拟两个方向上的交通灯,用4个7段数码管分别显示两个方向上的交通灯剩余时间,控制时钟由试验箱上频率信号提供。 根据状态机的设计规范,本次设计了四个状态之间的循环转化,其真值表及状态转化图如下所示目前状态下一状态输出Light1Light2S0=00S1=01001100S1=01S2=10010010S2=10S3=11100001S3=11S0=00010010 S0S3S1S23 程序说明1.各输入输出变量说明:clk:计数时钟qclk:扫描显示时钟rst:复位信号,当rst为1时,控制器和计数器回到初始状态en:使能信号,当en为1时控制器开始工作,en为0时hold:特殊情况控制信号,hold为1时,主、支干道方向无条件显示为红灯 seg:用于数码管的译码输出dig:用于选择显示的数码管(片选) num1:用于主干道方向灯的时间显示num2:用于支干道方向灯的时间显示light1:控制主干道方向四盏灯的亮灭,其中,light10light12分别控制主干道方向的绿灯、黄灯和红灯light2:控制支干道方向四盏灯的亮灭,其中,light20light22分别控制支干道方向的绿灯、黄灯和红灯2.输入输出及中间变量设置:module traffic(en,clk,qclk,rst,hold,num1,num2,light1,light2,seg,dig;input en,clk,qclk,rst,hold;output 5:0dig;output7:0 num1,num2;output6:0seg;output2:0light1,light2;reg tim1,tim2;reg3:0disp_dat;reg6:0seg;reg7:0num1,num2;reg7:0red1,red2,green1,green2,yellow1,yellow2;reg5:0dig;reg 1:0count;reg1:0state1,state2;reg2:0light1,light2;3.初始状态设置:always (en)if(!en)begingreen1=8b01000101;red1=8b00100101;yellow1=8b00000101;green2=8b00100101;red2=8b01000101;yellow2=8b00000101;end4.主干道方向点亮顺序:always(posedge clk) /主干道begin if(rst)beginlight1=3b001;num1=green1;endelse if(hold) begin light1=3b100; num1=green1; endelse if(en)beginif(!tim1)begintim1=1;case(state1)2b00:begin num1=green1; light1=3b001; state1=2b01; end2b01:begin num1=yellow1; light1=3b010; state1=2b11; end2b11:begin num1=red1; light1=3b100; state1=2b10; end2b10:begin num1=yellow1; light1=3b010; state1=2b00; enddefault:light10) if(num13:0=0) begin num13:0=4b1001; num17:4=num17:4-1; end else num13:0=num13:0-1; if(num1=1)tim1=0; end endelse begin light1=3b010; num1=2b00; tim1=0; endend5.支干道方向点亮顺序:always(posedge clk) /支干道begin if(rst)beginlight2=3b100;num2=red2;endelse if(hold) begin light2=3b100; num2=red2; endelse if(en)beginif(!tim2)begintim2=1;case(state1)2b00:begin num2=red2; light2=3b100; state2=2b01; end2b01:begin num2=yellow2; light2=3b010; state2=2b11; end2b11:begin num2=green2; light2=3b001; state2=2b10;end 2b10:begin num2=yellow2; light2=3b010; state2=2b00;enddefault:light20) if(num23:0=0) begin num23:0=4b1001; num27:4=num27:4-1; end else num23:0=num23:0-1; if(num2=1)tim2=0; end endelse begin light2=3b010; state2=2b00; tim2=0; endend6.数码管译码及显示:always (posedge qclk) /定义上升沿触发进程begin count = count +1b1;endalways ( count)begin case(count) /选择扫描显示数据 2d0 : disp_dat = num13:0; /第一个数码管 2d1 : disp_dat = num17:4; /第二个数码管 2d2 : disp_dat = num23:0; /第三个数码管 2d3 : disp_dat = num27:4; /第四个数码管 default : disp_dat = 0; endcaseend always (count) begin case(count) /选择数码管显示位 2d0 : dig= 6b011111;/选择第一个数码管显示 2d1 : dig= 6b101111;/选择第二个数码管显示 2d2 : dig = 6b110111;/选择第三个数码管显示 2d3 : dig= 6b111011;/选择第四个数码管显示 default : dig= 6b111111; endcase endalways (disp_dat)begin case (disp_dat) /七段译码 4b0000 : seg= 7b0111111; /显示0 4b0001 : seg = 7b0000110; /显示1 4b0010 : seg= 7b1011011; /显示2 4b0011 : seg= 7b1001111; /显示3 4b0100 : seg = 7b1100110; /显示4 4b0101 : seg= 7b1101101; /显示5 4b0110

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论