




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于FPGA的交通红绿灯控制器 姓名: 学号: 专业: 班级:目录1.设计思路11.1设计思想11.2 系统功能与要求11.3总体设计22.主要模块设计程序42.1主控制模块42.2主程序5 2.3定时计数器模块 153. 所实现功能说明143.1实现功能143.2仿真波形144. 所设计原理图及故障分析155.心得体会17参考文献18附录1 元件清单19附录2 管脚201.设计思路1.1设计思想 交通灯是城市交通监管系统的重要组成部分,对于保证机动车辆的安全运行,维持城市道路的顺畅起到了重要作用。目前很多城市交叉路口的交通灯实行的是定时控制,灯亮的时间是预先设定好的,在时间和空间方面的应变性能较差,一定程度上造成了交通资源的浪费,加重了道路交通压力。本文利用FPGA的相关知识设计了交通灯控制系统,可以根据实际情况,交通拥堵时由交通警察人工控制某方向上的放行时间,以便按照交通负荷疏导阻塞车辆。整个设计系统通过Max+Plus软件进行了模拟仿真,并下载到FPGA器件中进行硬件的调试,验证了设计的交通信号灯控制电路完全可以实现预定的功能,具有一定的实用性。1.2 系统功能与要求 交通红绿灯控制器,假定十字交叉路口的两个方向各有一组红,黄,绿三个灯组成的交通灯设计一个可以由交通警察人工控制的红绿灯控制器,要求:(1) 正常时,交通放行十字交叉路口的横纵两个方向,放行时间相等;(2) 交通堵塞时,由交通警察人工控制某个方向的放行时间,以便按照交通负荷疏导阻塞车辆;(3) 在正常运行状态下,两组交通灯按以下规律自动进行转换,在不同时刻分别放行不同方向的车辆:(绿,红)2s(绿,黄红)0.5s(黄,红)2s(黄红,红)2s(红,黄)1s(红,绿)5s(红,黄绿)0.5s(红,黄)2s(红,黄绿)2s(黄,红)1s(绿,红)3s(括号内以逗号分割的分别为横,纵两方向点亮的交通灯,横向红绿黄灯分别用LEDR0,LEDG0,LEDG1,表示,纵向红绿黄分别用LEDR4,LEDG4,LEDG5表示)(4) 人工控制放行的方法是,在欲放行某个方向时按下该方向的“放行”按钮(控制)横向使用KEY0控制纵方向使用KEY1),则红绿灯自动将相应方向的道路方向,此后不会放行另一方向的道路,这时候若只按一次“恢复到正常状态”(KEY3),则整个系统恢复到正常运行状态。(5) 可使用VERLOG HDL语言和原理图来设计系统并对系统进行仿真和下载验证。图1 十字路口示意图1.3 总体设计交通灯控制器系统框图如下图所示所示,包括置数模块,计数模块,和主控制器模块。置数模块将交通灯的点亮时间预置到置数电路中,计数模块以秒为单位倒计时,当计数值减为零时,主控电路改为输出状态,电路进入下一个状态的倒计时。为了简化设计和结构清晰,将置数模块,计数模块视为整个电路的数据通道,与主控制器模块构成了“数据通道+控制器”的系统结构。因为将定时计数器划归到了数据通道,使得控制器的状态数大大减少,主控制部分可以按照有限状态机设计。2. 主要模块设计程序2.1 主控制模块交通灯控制原理图:根据对设计要求的分析,主控单元的输入信号有:(1) 时钟信号;(2) 复位清零信号reset(reset=1表示系统复位恢复到正常状态);(3) 按键信号KEY(由KEY0,KEY1,KEY3组成,KEY0=1表示横向方向放行车辆,横向亮绿灯,纵向亮红灯;KEY1=1,表示纵向方向放行车辆,纵向亮绿灯,横向亮红灯;KEY3=1表示恢复到正常状态);(4) 定时计时器的输入信号sensor(由sensor1,sensor2,sensor3,sensor4,sensor5组成,该信号为高电平时,分别表示2s,0.5s,1s,5s,3s的计时完成)。输出信号有:(1) 横向交通灯控制信号(LEDR0,LEDG0,LEDG1);(2) 纵向交通灯控制信号(LEDR4,LEDG4,LEDG5);(3) 控制状态信号:state(输出到定时计数器,分别表示2s,0.5s,1s,5s,3s计时)。主控单元的状态转移图:主控制模块程序:module traffic_control(clock,reset,KEY,sensor,LEDR0,LEDG0,LEDG1,LEDR4,LEDG4,LEDG5);input clock,reset,KEY,sensor;output LEDR0,LEDG0,LEDG1,LEDR4,LEDG4,LEDG5;parameter st0=0,st1=1,st2=2,st3=3,st4=4,st5=5,st6=6,st7=7,st8=8,st9=9,st10=10,st11=11;reg2:0 state,nxstate;reg LEDR0,LEDG0,LEDG1,LEDR4,LEDG4,LEDG5;always (posedge clock) beginif(!reset)state=st1;elsestate=nxstate;endalways (state or KEY or sensor ) begin case(state) st1:begin if (KEY0) begin nxstate=st1; LEDR0=1b0;LEDG0=1b1;LEDG1=1b0; LEDR4=1b1;LEDG4=1b0;LEDG5=1b0;end else if(KEY1) begin LEDR0=1b1;LEDG0=1b0;LEDG1=1b0; LEDR4=1b0;LEDG4=1b1;LEDG5=1b0; nxstate=st6;end else if(KEY3) LEDR0=1b0;LEDG0=1b;LEDG1=1b0; LEDR4=1b1;LEDG4=1b0;LEDG5=1b0; nxstate=st1;else if(sensor1) begin LEDR0=1b0;LEDG0=1b1;LEDG1=1b1; LEDR4=1b1;LEDG4=1b0;LEDG5=1b0; nxstate=st2; end end end st2:begin if (KEY0) begin LEDR0=1b0;LEDG0=1b1;LEDG1=1b0; LEDR4=1b1;LEDG4=1b0;LEDG5=1b0; nxstate=st1;end else if(KEY1) begin LEDR0=1b1;LEDG0=1b0;LEDG1=1b0; LEDR4=1b0;LEDG4=1b1;LEDG5=1b0; nxstate=st6;end else if(KEY3) LEDR0=1b0;LEDG0=1b1,LEDG1=1b1; LEDR4=1b1;LEDG4=1b0,LEDG5=1b0; nxstate=st2;else if(sensor2) begin LEDR0=1b0;LEDG0=1b0;LEDG1=1b1; LEDR4=1b1;LEDG4=1b0;LEDG5=1b0; nxstate=st3; end end end st3:begin if (KEY0) begin LEDR0=1b0;LEDG0=1b1;LEDG1=1b0; LEDR4=1b1;LEDG4=1b0;LEDG5=1b0; nxstate=st1;end else if(KEY1) begin LEDR0=1b1;LEDG0=1b0;LEDG1=1b0; LEDR4=1b0;LEDG4=1b1;LEDG5=1b0; nxstate=st6;end else if(KEY3) LEDR0=1b0;LEDG0=1b0;LEDG1=1b1; LEDR4=1b1;LEDG4=1b0;LEDG5=1b0; nxstate=st3;else if(sensor1) begin LEDR0=1b1;LEDG0=1b0;LEDG1=1b1; LEDR4=1b1;LEDG4=1b0;LEDG5=1b0; nxstate=st4; end end endst4:begin if (KEY0) begin LEDR0=1b0;LEDG0=1b1;LEDG1=1b0; LEDR4=1b1;LEDG4=1b0;LEDG5=1b0; nxstate=st1;end else if(KEY1) begin LEDR0=1b1;LEDG0=1b0;LEDG1=1b0; LEDR4=1b0;LEDG4=1b1;LEDG5=1b0; nxstate=st6;end else if(KEY3) LEDR0=1b1;LEDG0=1b0;LEDG1=1b1; LEDR4=1b1;LEDG4=1b0;LEDG5=1b0; nxstate=st4;else if(sensor1) begin LEDR0=1b1;LEDG0=1b0;LEDG1=1b0; LEDR4=1b0;LEDG4=1b0;LEDG5=1b1; nxstate=st5; end end endst5:begin if (KEY0) begin LEDR0=1b0;LEDG0=1b1;LEDG1=1b0; LEDR4=1b1;LEDG4=1b0;LEDG5=1b0; nxstate=st1;end else if(KEY1) begin LEDR0=1b1;LEDG0=1b0;LEDG1=1b0; LEDR4=1b0;LEDG4=1b1;LEDG5=1b0; nxstate=st6;end else if(KEY3) LEDR0=1b1;LEDG0=1b0;LEDG1=1b0; LEDR4=1b0;LEDG4=1b0;LEDG5=1b1; nxstate=st5;else if(sensor3) begin LEDR0=1b1;LEDG0=1b0;LEDG1=1b0; LEDR4=1b0;LEDG4=1b1;LEDG5=1b0; nxstate=st6; end end endst6:begin if (KEY0) begin LEDR0=1b0;LEDG0=1b1;LEDG1=1b0; LEDR4=1b1;LEDG4=1b0;LEDG5=1b0; nxstate=st1;end else if(KEY1) begin LEDR0=1b1;LEDG0=1b0;LEDG1=1b0; LEDR4=1b0;LEDG4=1b1;LEDG5=1b0; nxstate=st6;end else if(KEY3) LEDR0=1b1;LEDG0=1b0;LEDG1=1b0; LEDR4=1b0;LEDG4=1b1;LEDG5=1b0; nxstate=st6;else if(sensor4) begin LEDR0=1b1;LEDG0=1b0;LEDG1=1b0; LEDR4=1b0;LEDG4=1b1;LEDG5=1b1; nxstate=st7; end end endst7:begin if (KEY0) begin LEDR0=1b0;LEDG0=1b1;LEDG1=1b0; LEDR4=1b1;LEDG4=1b0;LEDG5=1b0; nxstate=st1;end else if(KEY1) begin LEDR0=1b1;LEDG0=1b0;LEDG1=1b0; LEDR4=1b0;LEDG4=1b1;LEDG5=1b0; nxstate=st6;end else if(KEY3) LEDR0=1b1;LEDG0=1b0;LEDG1=1b0; LEDR4=1b0;LEDG4=1b1;LEDG5=1b1; nxstate=st7;else if(sensor2) begin LEDR0=1b1;LEDG0=1b0;LEDG1=1b0; LEDR4=1b0;LEDG4=1b0;LEDG5=1b1; nxstate=st8; end end endst8:begin if (KEY0) begin LEDR0=1b0;LEDG0=1b1;LEDG1=1b0; LEDR4=1b1;LEDG4=1b0;LEDG5=1b0; nxstate=st1;end else if(KEY1) begin LEDR0=1b1;LEDG0=1b0;LEDG1=1b0; LEDR4=1b0;LEDG4=1b1;LEDG5=1b0; nxstate=st6;end else if(KEY3) LEDR0=1b1;LEDG0=1b0;LEDG1=1b0; LEDR4=1b0;LEDG4=1b0;LEDG5=1b1; nxstate=st8;else if(sensor1) begin LEDR0=1b1;LEDG0=1b0;LEDG1=1b0; LEDR4=1b1;LEDG4=1b0;LEDG5=1b1; nxstate=st9; end end endst9:begin if (KEY0) begin LEDR0=1b0;LEDG0=1b1;LEDG1=1b0; LEDR4=1b1;LEDG4=1b0;LEDG5=1b0; nxstate=st1;end else if(KEY1) begin LEDR0=1b1;LEDG0=1b0;LEDG1=1b0; LEDR4=1b0;LEDG4=1b1;LEDG5=1b0; nxstate=st6;end else if(KEY3) LEDR0=1b1;LEDG0=1b0;LEDG1=1b0; LEDR4=1b1;LEDG4=1b0;LEDG5=1b1; nxstate=st9;else if(sensor1) begin LEDR0=1b0;LEDG0=1b0;LEDG1=1b1; LEDR4=1b1;LEDG4=1b0;LEDG5=1b0; nxstate=st10; end end endst10:begin if (KEY0) begin LEDR0=1b0;LEDG0=1b1;LEDG1=1b0; LEDR4=1b1;LEDG4=1b0;LEDG5=1b0; nxstate=st1;end else if(KEY1) begin LEDR0=1b1;LEDG0=1b0;LEDG1=1b0; LEDR4=1b0;LEDG4=1b1;LEDG5=1b0; nxstate=st6;end else if(KEY3) LEDR0=1b0;LEDG0=1b0;LEDG1=1b1; LEDR4=1b1;LEDG4=1b0;LEDG5=1b0; nxstate=st10;else if(sensor3) begin LEDR0=1b0;LEDG0=1b1;LEDG1=1b0; LEDR4=1b1;LEDG4=1b0;LEDG5=1b0; nxstate=st1; end end end endcase end endmodule2.3 定时器模块袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螈螇芁
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 3.2细胞器之间的分工合作 教学设计-2024-2025学年高一上学期生物人教版(2019)必修1
- 第二节 撒哈拉以南非洲说课稿-2025-2026学年初中地理粤人版七年级下册-粤人版2012
- 2025专营合同范本下载
- 2025二手房屋交易合同范本下载
- 《2025年电子配件购销合同》
- 2025买卖合同的解除条件及方法
- 2025房地产买卖合同3
- 第8讲 东南亚 南亚-印度 第1课时 教学设计 2023-2024学年高二下学期
- 2025仓库租赁合同终止协议
- 线缆厂办公区域管理细则
- 合作建房框架协议书
- 高三毕业班会课件
- 护理学基础:会阴部擦洗
- 在第五章学习活动的基础上-针对案例《送别组诗教学实录》中教师运用教学策略的效果撰写600字评析文章
- 车辆驾驶业务外包方案投标文件(技术方案)
- 门窗定做加工合同范本
- 道路施工安全风险评估措施
- 重症护理学专科护士培训基地建设标准
- 科研机构固定资产使用和管理规范
- 培训机构教师前台工作培训
- 公安情报干部培训授课
评论
0/150
提交评论