文档库 最新最全的文档下载
当前位置:文档库 › 智能交通灯控制器的设计(verilog)

智能交通灯控制器的设计(verilog)

智能交通灯控制器的设计(verilog)
智能交通灯控制器的设计(verilog)

智能交通灯控制器的设计

1、实验目的及要求

实验目的:通过交通灯的设计与仿真综合,体会复杂时序的实现方法,学会用框图表示程序的设计思想,掌握中小规模集成电路的系统综合设计方法。

实验要求:设计一个交通灯信号控制电路。具体要求为:输入为50MHz的时钟和复位信号,输出为红、绿、黄三个信号(高电平为亮)。复位信号(高电平)有效,红、绿、黄灯灭;接着进行如下循环:绿灯亮1分钟,黄灯闪烁10秒,红灯亮1分钟。在此基础上再加两个数码管,对倒计时的数显示。

2、实验设备(环境)及要求

实验EDA工具为:Synplify Pro 9.6.2和ModelSim SE 6.2b。

3、实验内容与步骤

3.1设计思路概述

总体上分为三个大模块,即:顶层模块、控制模块、译码模块(包括显示模块)。他们各自的作用分别如下:

顶层模块:

此模块只做例化,即对底层的控制模块和译码模块进行例化,而不做逻辑设计。

控制模块:

此模块是本程序的主体,主要是控制各个灯颜色(此模块并不控制黄灯的闪烁)的转换,以及倒计时时间输出。

首先要对时钟进行分频。由于系统时钟频率比较大,因此首先分频产生时钟,用于下面的电路的控制;然后是各种颜色之间的转换,在此在添加一个使能端enable ,当使能端enable为0的时候,就开始进行状态循环以及倒计时,然后enable就立即变为1;状态用light_status(分别为0、1、2)表示,开始的时候,如果状态light_status为0,表示此时显示的是绿灯,便把绿灯亮的时间(60s)

给统计灯亮时间的变量light_long,并且把显示灯亮的变量light_select赋值100(高电平表示亮),最后把状态标志位light_status赋1,但是此时并不能转向下一个状态(黄),因为绿灯亮的时间还没有控制,接下来会转到倒计时处。

然后,我们这里用了BCD码表示倒计时时间。灯亮或闪烁时间(绿、黄、红分别为60s、10s、60s)用BCD码表示(分别为60h、10h、60h),倒计时的时候个位和十位分别是BCD码的高四位和低四位,首先是低四位倒数,当倒数到0时,给它重新赋值为9,且高四位减1,如此循环,直到这个数减到0,此时表示某一个灯亮的时间到,接着进行下一个状态,为了能使进入下一个状态,必须在时间减到0的时候,给使能端enable 赋值0;由于用的BCD码,高四位和低四位就分别是我们要在译码模块的要用数码管显示的十位和个位。

译码模块:

此模块主要有两个作用,控制黄灯闪烁以及对倒计时时间进行译码输出。

首先是控制黄灯闪烁。由于控制模块只是控制三个灯的亮与不亮,在此模块中首先是相当于产生一个分频时钟y_flicker(周期1s),然后是控制黄灯的闪烁,控制模块light_select只是控制了三个灯亮与不亮(三位二进制,高电平有效),最后显示灯的亮或者闪还用三位二进制表示(colour),控制时直接把light_select 的最高位和最低位直接赋给colour的最高位和最低位(分别控制绿灯和红灯的亮),中间位当分频时钟y_flicker为高且输入light_select为高时,输出colour 才为高(黄灯亮),别的情况colour中间位都为低(黄灯灭),至此可以完美实现黄灯的闪烁了(1s内亮0.5s灭0.5s),也就可以实现要求的各个灯的亮或者闪烁。

然后就是七段译码的过程。采用了3—8译码器的设计原理,将倒计时时间译码,输出到LED晶体管,显示最终倒计时时间。LED中二极管对应的顺序编号如图1所示,并且是低电平有效。写出所有数字对应的字型码,就可以知道数字的控制电平。由于只有两位数字,考虑到成本以及复杂性,可不用扫描,直接用两个译码器就可以了。

图1 七段数码管显示字段的示意图

3.2、总体设计框图及详细说明

程序总体设计框图如图2所示。

图2 程序总体设计框图

下面将对所做的系统框图进行详尽说明:

首先,输入的50MHz的系统时钟和全局控制端reset ,输出为个位数字的七段译码,十位数字七段译码以及各个灯最后状态。

然后由于系统时钟频率很大,第一要进行分频,使其成为1Hz的时钟信号,第二利用分频后的时钟信号对电路进行控制,开始先对状态跳转进行控制,正如1问所述,用case 语句控制三灯亮与灭,紧跟着进行倒计时的过程,第三输出个位和十位上的数即可,要显示倒计时是很容易实现的,直接用两个七段译码即可。

最后要控制黄灯的闪烁,还是要先产生分频时钟,作为控制端,控制模块各灯亮与灭作为输入,即可产生黄灯闪烁的效果。

另外,作为全局控制端,reset 信号是清零用的,在有时钟信号的地方就有reset 。

3.3、时序说明

假设在0时刻,加上系统时钟,首先要进行reset清零,这时在控制模块的计数器会清零,三个灯都是灭的状态,控制状态跳转的使能端enable等于0,等待着清零结束,开始工作;七段译码也不会显示。

在reset变低之后,系统开始正常工作。首先是分频时钟开始工作,在计数器达到第一个25000000之前,分频时钟都是低电位,到25000000的时候分频时钟的第一个上升沿来临,此时状态控制开始运转,先工作的是绿灯,它会经过从59到0的倒计时过程,同时译码模块也开始工作,颜色控制colour是100,表征绿灯的点亮,经七段译码,这个倒计时数字也会同步显示出来。经过60s(也就是经过60*50M个系统时钟上升沿之后)绿灯亮的时间到,会自动转到黄灯状态,黄灯是9到0的倒计时过程,译码的显示跟绿灯一样,只是黄灯的亮会加一个1Hz的时钟控制端,1秒内只有半秒,黄灯是亮的,从9秒到8.5秒之间黄灯是亮的,然后8.5到8是灭的,如此继续下去,知道10秒结束。又经过10s(70*50M 个系统时钟上升沿),状态转移到红灯,然后显示及七段译码过程与绿灯相似。至此一个周期已经完成,接下来就是循环执行以上步骤的过程,直到有reset清零端打断其正常工作。

主要的时序是在三个灯不同状态之间跳转,这也是本程序的关键,他们之间的转换关系如图3所示。

图3 时序状态转化图

3.4、模块设计框图、相关时序

本程序分为三个模块,顶层模块、控制模块、译码模块,各模块的设计框图以及相关时序说明如下:

顶层模块框图如图4所示。

输出:color 最终各灯状态(包括亮与闪)

led_ctrl_1s 个位七段译码

led_ctrl_10s 十位七段译码

时序说明:加上时钟信号之后,首先用reset清零,然后控制模块会分频产生分频时钟,根据分频时钟的高与低,会控制各个状态之间的跳转,译码模块会同步通过数码管来显示倒计时数,并且会根据译码模块黄灯闪亮控制端来输出各灯的具体状态。

控制模块框图如图5所示。

图5 控制模块框图

输入:sysclk_50MHz 全局时钟信号,50MHz

Reset 全局复位端,高电平有效

输出:dout_1s 倒计时个位上数字

dout_10s 倒计时十位上数字

light_select 各个灯状态light_select(只是控制亮与灭,不管黄灯闪烁)

时序说明:首先还是加上系统时钟之后,用reset清零,则计数器清零、所有灯都不亮。但reset为1之后模块开始工作,首先是计数器开始计数,随之分频时钟会根据计数器的变化而周期变化,绿灯会先亮60秒,之后黄灯也会亮(闪烁在译码模块实现)10秒,然后就是红灯亮60秒,以后就是循环以上步骤的过程,同时在循环过程中,倒计数的数会同步输出,各灯亮与灭状态也会同步输出。

译码模块框图如图6所示:

图6 译码模块框图

输入端口:sysclk_50MHz 全局时钟信号,50MHz

reset 全局复位端,高电平有效

din_1s 显示器个位数据,由控制模块输入

din_10s 显示器十位数据,由控制模块输入

light_sel 选择那盏灯亮,由控制模块的输入输出端口:colour 最终显示哪盏灯亮,可与硬件相连led_data_1s 显示器个位数据的译码

led_data_10s 显示器十位数据的译码时序说明:

此模块接受(系统时钟)sysclk_50MHz 和(全局复位)reset的控制,均为上升沿触发,当reset 为高电平时,电路复位,重新开始工作。当reset为低电平时,电路正常工作。

时钟上升沿触发,对[3:0]din_1s(显示器个位数据)进行译码,输出到[6:0]led_data_1s(显示器个位数据的译码),;对[3:0]din_10s (显示器十位数据)进行译码,输出到[6:0]led_data_10s (显示器十位数据的译码)。这两个译码输出端口最终连接到硬件上去,实现7段LED数码管的显示。

时钟上升沿触发,对哪个灯亮进行译码输出,light_sel[2]将高电平传入到colour[2]中,红灯开始亮,light_sel[0]将高电平传入到colour[0]中,绿灯开始亮。黄灯的闪烁在顶层模块说明。

系统结构和模块划分,关键子模块之间的接口实现定义。

系统划分为三个模块,顶层模块、控制模块、译码模块,各个模块的相关功能已经在(1)中详细说明,这里详述子模块接口实现,控制模块里有三个输出,即倒计时时间的十位dout_10s,个位dout_1s,控制灯的亮与灭light_select,这三个都是作为译码模块的输入的,十位和个位直接在译码模块里直接使用,用七段译码,用于显示,灯的亮与灭light_select,最高位和最低位(分别控制绿灯和红灯)直接输出,中间位(控制黄灯)要再加上一个时钟信号,使其闪烁。

测试平台设计

在modelsim里进行仿真,testbench的书写很简单,从顶层模块来看,只有两个输入和三个输出,即输入系统时钟,控制清零端,输出个位的七段译码,十位的七段译码以及灯的颜色和状态。

具体实现代码如下:

`timescale 1ns/1ns //clk周期应该20ns

module traffic_tb;

reg sysclk_50MHz;

reg reset;

wire [2:0] color; // 最后控制绿黄红三灯

wire [6:0] led_ctrl_1s; // 个位七段译码

wire [6:0] led_ctrl_10s; // 十位七段译码

initial

begin

reset=1;

#1 reset=0;

end

always

begin

#1 sysclk_50MHz=0; // 这里把系统时钟调为2ns

#1 sysclk_50MHz=1;

end

traffic_light U_traffic( // 实例化

.sysclk_50MHz(sysclk_50MHz),

.reset(reset),

.color(color),

.led_ctrl_1s(led_ctrl_1s),

.led_ctrl_10s(led_ctrl_10s)

);

endmodule

4、实验结果与数据处理

Modelsim仿真结果,波形图,代码覆盖率图等

首先要说明的是,由于系统时钟频率很大,运行起来很慢,并且时钟频率的大小与最后结果的正确与否关系并不是很大,于是我们在仿真的时候,把时钟周期调为了较小的2ns。由于结果很多很长,不可能一一列举,我们在此选择了几个有代表性的的点给予展示。

首先来看看图7,正如上前面所说,我们的输入输出一共有5个但是一些中间的输出的显示能让我们更好的理解,为了更好的理解仿真结果,我们将截图的左边一列的信号从上到下的解释说明列在表1中。

表1 仿真结果信号解释说明

图7展示的是绿灯倒计时的某一瞬间,竖线所在的位置是56s,这时候color 和light_selected是100,表示此时绿灯亮,而led_ctrl_1s是0010000,对照译码表可以发现它显示的数字6,led_ctrl_10s是0010100,对照译码表可以发现它显示的数字5,十位和个位合起来就是数字56,正好与dout_10s(5)和dout_1s (6)结果相对应。

图7 modelsim仿真结果关键点展示(绿灯)

图8展示的黄灯倒计时的某一瞬间,竖线显示的地方,此时color和light_selected 都是010,表示此时是黄灯在亮,倒计时十位(dout_10s)和和个位(dout_1s)合起来是08,而七段译码led_ctrl_10s是0001000,对照译码表可以发现它显示的数字0,led_ctrl_1s是0000000,对照译码表可以发现它显示的数字8,也与输出结果吻合,最后一个y_flicker为1,也表示此时黄灯可以亮。

图8 modelsim仿真结果关键点展示(黄灯)

图9也是展示的黄灯在倒计时08s时结果,与图8不同的是在color和y_flicker,图9的light_selected也是010,表示此时输入信号时黄灯在亮,然而闪烁控制端

y_flicker为0,表示此时输出的黄灯应该是灭的,实际上通过图8和图9对比可以发现,它实现了黄灯闪烁的功能(08s的前半秒黄灯是亮的,后半秒是灭的)。

图9 modelsim仿真结果关键点展示(黄灯)

图10展示的是红灯倒计时的某一刻,此时color和light_selected是100,表

示此时红灯亮,而七段译码结果合起来是37,正好与下面的十位和个位输出结

果一致。

图10 modelsim仿真结果关键点展示(红灯)

以上四幅图虽然少,但却不失代表性,可以证明我们程序的正确性。

图11是用modelsim做出来的代码覆盖率图,可见代码覆盖率已经很高了,但是并没有达到100%,可见程序仍有可以改进和提高的地方。

图11 modelsim代码覆盖率图

程序设计源代码如下:

//********************************************************************

// 顶层模块,只做例化,不做逻辑设计

//*******************************************************************

module traffic_light(

sysclk_50MHz, // 全局时钟,50MHz

reset, // 全局控制端

color, // 控制绿黄红三灯亮或者闪烁

led_ctrl_1s, // 个位七段译码

led_ctrl_10s // 十位七段译码

);

input sysclk_50MHz;

input reset;

output [2:0] color;

output [6:0] led_ctrl_1s;

output [6:0] led_ctrl_10s;

wire [3:0] dataout_1s; //个位输出,连接控制和译码模块

wire [3:0] dataout_10s; //十位输出,连接控制和译码模块

wire [2:0] light_selccted; //三灯亮否,连接控制和译码模块

light_ctrl U_light_ctrl( // 控制模块例化

.sysclk_50MHz(sysclk_50MHz),

.reset(reset),

.dout_1s(dataout_1s), // 控制模块输出个位上的数

.dout_10s(dataout_10s),// 控制模块输出个位十的数

.light_select(light_selccted)

); //控制模块输出灯的亮与灭

decode U_decode( // 译码模块例化

.sysclk_50MHz(sysclk_50MHz),

.reset(reset),

.din_1s(dataout_1s), // 译码模块个位输出做输入

.din_10s(dataout_10s), //译码模块十位输出做输入

.light_sel(light_selccted), // 译码模块灯亮与否做输入

.colour(color), // 输出,灯的亮和闪

.led_data_1s(led_ctrl_1s), // 个位七段译码

.led_data_10s(led_ctrl_10s) //十位七段译码

);

endmodule

//******************************************************************* // 控制模块,主要是控制灯的时序变化,以及倒计时

//******************************************************************* module light_ctrl (

sysclk_50MHz, // 全局时钟

reset, // 全局控制端

dout_1s, // 个位的数字

dout_10s, // 十位的数字

light_select // 只是控制三灯亮与灭

);

input sysclk_50MHz;

input reset;

output[3:0] dout_1s;

output[3:0] dout_10s;

output[2:0] light_select;

reg [2:0] light_select;

reg [1:0] light_status; // 状态控制,用于三灯跳转

reg sub_clk_1Hz; // 分频后的1Hz的时钟

reg [24:0] counter; // 计数器,用于产生1Hz时钟 reg enable; // 使能端,控制灯跳转

reg [7:0] light_long; // 灯亮的时间

parameter g_long=8'h59; // 绿灯亮时间,BCD码表示

parameter y_long=8'h09; // 黄灯闪亮时间,BCD码表示 parameter r_long=8'h59; // 红灯亮时间,BCD码表示

// 用于产生分频时钟

always@(posedge sysclk_50MHz or posedge reset)

begin

if(reset)

begin

sub_clk_1Hz<=0;

counter<=5'd0;

end

else

if(counter==25'd2*******-1) // 0.5s后翻转

begin

counter<=25'd0;

sub_clk_1Hz<=~sub_clk_1Hz;

end

else

counter<=counter+1;

end

// 控制状态跳转,倒计时always@(posedge sub_clk_1Hz or posedge reset)

begin

if(reset) // 有清零,灯都灭 begin

light_select<=3'b000;

light_status<=2'd0;

enable<=0;

end

else

if(enable==0) // 使能端为0则执行

begin

enable<=1; // 使能端变1,下面只执行一次

case(light_status) // 控制状态跳转

0: begin

light_long<=g_long; // 绿灯亮的时间60s

light_select<=3'b100;// 控制绿灯亮

light_status<=2'd1; // 交给下一个状态

end

1: begin

light_long<=y_long; // 黄灯亮的时间10s

light_select<=3'b010;// 控制黄灯亮

light_status<=2'd2; // 交给下一个状态

end

2: begin

light_long<=r_long; // 红灯亮的时间60s

light_select<=3'b001;// 控制红灯亮

light_status<=2'd0; // 交给下一个状态

end

default light_select<=3'b000;

endcase

end

else

if(light_long==0) // 一个灯倒计时完,使能端变0 enable<=0;

else

if(light_long[3:0]==0) // 如果个位为0

begin

light_long[3:0]<=4'd9;// 则个位重新赋值9

light_long[7:4]<=light_long[7:4]-1;

end // 且十位减1

else // 否则个位值减1

light_long[3:0]<=light_long[3:0]-1;

end

assign dout_1s=light_long[3:0]; // 倒计时低四位就是输出个位

assign dout_10s=light_long[7:4]; // 倒计时高四位就是输出十位endmodule

//*******************************************************************// 译码模块,主要是控制黄灯闪烁,绿红灯亮以及倒计时的显示

//*******************************************************************

module decode (

sysclk_50MHz, // 全局时钟,50MHz

reset, // 全局控制端

din_1s, // 个位上输入,是控制模块的输出

din_10s, // 个位上输入,是控制模块的输出

light_sel, // 灯亮的输入,是控制模块的输出

colour, // 最终灯展示出来的效果

led_data_1s, // 个位七段译码

led_data_10s // 十位七段译码

);

input sysclk_50MHz;

input reset;

input [3:0] din_1s;

input [3:0] din_10s;

input [2:0] light_sel;

output [2:0] colour;

output [6:0] led_data_1s;

output [6:0] led_data_10s;

reg [6:0] led_data_1s;

reg [6:0] led_data_10s;

reg [2:0] colour;

reg [24:0] counter_yell; // 计数器,用于控制黄灯闪烁

reg y_flicker; // 相当于一个分频出来的控制时钟 // 分频出控制黄灯闪烁的信号always@(posedge sysclk_50MHz or posedge reset)

begin

if(reset)

begin

counter_yell<=25'd0;

y_flicker<=0;

end

else

if(counter_yell==25'd2*******-1) // 周期1s

begin

counter_yell<=25'd0;

y_flicker<=~y_flicker; // 0.5s时翻转 end

else

counter_yell<=counter_yell+1;

end

// 控制黄灯闪烁

always@(y_flicker or light_sel)

begin

colour[2]=light_sel[2]; // 最高位(绿灯)直接传送colour[0]=light_sel[0]; //最低位(红灯)直接传送

if((y_flicker==1)&&(light_sel[1]==1'b1))// 输入黄灯亮,且控制信号 colour[1]<=1'b1; // 为高,黄灯才亮

else // 别的情况,黄灯都灭

colour[1]<=1'b0;

end

// 个位七段译码,低电平有效always@(din_1s)

begin

case(din_1s)

4'h0 : led_data_1s = 7'b0001000;

4'h1 : led_data_1s = 7'b1101101;

4'h2 : led_data_1s = 7'b0100010;

4'h3 : led_data_1s = 7'b0100100;

4'h4 : led_data_1s = 7'b1000101;

4'h5 : led_data_1s = 7'b0010100;

4'h6 : led_data_1s = 7'b0010000;

4'h7 : led_data_1s = 7'b0101101;

4'h8 : led_data_1s = 7'b0000000;

4'h9 : led_data_1s = 7'b0000100;

default : led_data_1s = 7'b1111111;

endcase

end

always@(din_10s) // 十位七段译码,低电平有效begin

case(din_10s)

4'h0 : led_data_10s = 7'b0001000;

4'h1 : led_data_10s = 7'b1101101;

4'h2 : led_data_10s = 7'b0100010;

4'h3 : led_data_10s = 7'b0100100;

4'h4 : led_data_10s = 7'b1000101;

4'h5 : led_data_10s = 7'b0010100;

4'h6 : led_data_10s = 7'b0010000;

4'h7 : led_data_10s = 7'b0101101;

4'h8 : led_data_10s = 7'b0000000;

4'h9 : led_data_10s = 7'b0000100;

default : led_data_10s = 7'b1111111;

endcase

end

endmodule

5、分析与讨论

电路的功能是否正确,仿真是否充分,如何进一步提高代码覆盖率从modelsim模拟仿真结果以及synplify综合结果可以看出,电路功能是基本正确的,实现了我们想要的绿灯亮60秒,黄灯闪10秒和红灯亮60秒。仿真也很充分,从代码覆盖率图我们可以看出,代码覆盖率是有提高的潜力,我们可以从关键路径进行优化等方面来提高。电路的关键路径在哪里,如何对关键路径进行优化。电路关键是在进行时序状态转换,倒计时计数,译码模块控制黄灯闪烁过程,其实经过分析我们会发现,在控制模块和译码模块都用到了一个分频计数器,我们可以进行优化,在一个模块里共用。

数字电子技术课程设计之交通灯控制系统

数字电子技术课程设计之交通灯控制系统 专业班级:物联网112 指导教师:陈际 组成员:王海超、殷修修、张天一

一、内容摘要 二、设计内容与要求 三、方案分析 四、原理图设计 4、1信号灯控制器电路 4、2信号灯译码器电路 4、3计时器系统 4、4显示译码器 4、5 LED七段数码管 4、6 555振荡器组成的秒脉冲电路 五、整体电路图以及工作原理 六、参考文献 一、内容摘要 电路通过两个D触发器组成的四进制级数器和由与非门组成的译码器来控制主干道和支干道红、绿、黄灯的状态变化,从而达到疏

通车辆安全顺利通过十字路口,有555计时和电容电阻组成的秒脉冲发生器,计时器由两个74LS190计数器构成,分别用于计时的十位和个位,显示译码器把74LS190输出的BCD码译成七位二进制代码通过七段数码管显示出相应的十进制数。 二、设计内容与要求 为了确保在十字路口车辆安全顺利的通过,在交叉路口设置红、绿、黄三种信号灯,红灯亮时禁止通行,绿灯亮时允许通行,黄灯亮时给行驶中的车辆有时间停靠在禁行线外。 任务和要求: 1、在主干道和支干道之间交替放行,主干道每次放行50秒,支干道每次放行40秒。 2、每次绿灯亮变红时,黄灯先亮4秒,而原红灯不变。 3、用十进制数显示放行与等待时间。 三、方案分析 方案一、用数电电子技术来实现交通灯的控制 1、交通灯控制系统原理框图如图1-1所示 主要由控制器、定时器、译码器和秒脉冲信号发生器等部分组成,秒脉冲发生器是系统中定时器和控制器的标准时钟信号源,译码器输出两组信号灯的控制信号,经驱动电路驱动信号灯工作,控制器是系统的主要成分,由它控制定时器和译码器工作。

基于VerilogHDL的通行时间可变的交通灯控制器

通行时间可变的交通灯控制器设计 module tr1(ng,clk,reset,resets,emergency,lighta,lightb,seg,select); input ng,clk,reset,emergency,resets; output[6:0]seg;//显示用的 output[3:0] lighta,lightb;//a是主干道,b是支干道 output [3:0] select;//选择那一个管子进行显示 reg clk1,clk2;//clk1要5HZ clk2要几千HZ reg [3:0] select; reg tim1,tim2;//这是看你的等有没有变过颜色的控制信号 reg [1:0] cont; reg[2:0]state1,state2,ste;两个控制颜色变化状态的信号。 reg[3:0]lighta,lightb;//a是主干道,b是支干道 reg[3:0]num;//译码器是根据这个东西来译码的 reg [35:0] fout; reg[6:0]seg;//显示 reg[7:0] numa,numb; reg[7:0] red1,red2,green1,green2,yellow1,yellow2,left1,left2; always @(ng ) if(!ng) begin //设置计数初值 green1 <=8'b00110000;//30S red1 <=8'b01010001;//51S yellow1<=8'b00000011;//3S left1 <=8'b00010101; //15S green2 <=8'b00110000;//30S

PLC交通灯课程设计

目录 第一章摘要............................................................................ - 2 - 第二章简述PLC ......................................................................... - 3 - 2.1 PLC简介.............................................................................. - 3 - 2.2 PLC工作原理 ...................................................................... - 4 - 2.3 PLC主要功能 ...................................................................... - 6 - 第三章PLC的交通信号灯系统设计.......................................... - 7 - 3.2 流程图如下:.................................................................... - 8 - 3.3程序梯形图设计: ............................................................. - 9 - 第四章总结.............................................................................. - 12 - 4.1程序调试........................................................................... - 12 - 4.2 收获和体会...................................................................... - 12 -

设计题目 交通灯控制器设计

广西科技大学 单片机技术课程设计报告 课程:单片机技术 题目: 学院: 专业: 姓名: 学号: 指导老师: 完成时间: 成绩评定 设计报告得分S1:(百分制) 平时考勤得分S2:(百分制) 问题回答得分S3:(百分制) 总成绩:(S1×0.6+S2×0.2+ S3×0.2) 指导教师签字年月日

摘要 随着各种交通工具的发展和交通指挥的需要,第一盏名副其实的三色灯(红、黄、绿三种标志)于1918年诞生。它是三色圆形四面投影器,被安装在纽约市五号街的一座高塔上,由于它的诞生,使城市交通大为改善。黄色信号灯的发明者是我国的胡汝鼎,他怀着“科学救国”的抱负到美国深造,在大发明家爱迪生为董事长的美国通用电器公司任职员。一天,他站在繁华的十字路口等待绿灯信号,当他看到红灯而正要过去时,一辆转弯的汽车呼地一声擦身而过,吓了他一身冷汗。回到宿舍,他反复琢磨,终于想到在红、绿灯中间再加上一个黄色信号灯,提醒人们注意危险。他的建议立即得到有关方面的肯定。于是红、黄、绿三色信号灯即以一个完整的指挥信号家族,遍及全世界陆、海、空交通领域了。 交通灯控制器设计主要功能是用单片机控制LED灯模拟指示。模拟东西南北方向的十字路口交通灯信号控制情况。以89C52单片机为核心芯片,采用中断方式实现控制。本模拟系统由单片机硬/软件系统,两位8段数码管和LED灯显示系统。和复位电路控制电路等组成,较好的模拟了交通路面的控制。 关键词:交通灯单片机数码管

目录 1.概述 (1) 2系统总体方案及硬件设计 (2) 2.1设计内容 (2) 2.2 设计要求 (2) 2.3 总体设计思想 (2) 2.4 设计参考 (2) 2.5 知识点准备 (2) 3各模块设计 (3) 3.1设计项目简介 (3) 3.2总体设计 (3) 3.3硬件设计 (3) 3.4软件设计 (9) 4软件仿真 (12) 5课程设计体会 (13) 参考文献 (14) 附录一程序清单 (15) 附录二系统原理图 (21)

微机原理课程设计——交通灯控制系统

南通大学电子信息学院 微机原理课程设计 报告书 课题名交通灯控制系统 班级 _______ 学号 __________ 姓名 ____ 指导教师 ______ 日期 _________

目录 1 设计目的 (1) 2 设计内容 (1) 3 设计要求 (1) 4 设计原理与硬件电路 (2) 5 程序流程图 (4) 6 程序代码 (4) 7 程序及硬件系统调试情况 (8) 8 设计总结与体会 (9) 9 参考文献 (9)

1 设计目的 电子课程设计是电子技术学习中非常重要的一个环节,是将理论知识和实践能力相统一的一个环节,是真正锻炼学生能力的一个环节。交通灯能保证行人过马路的安全,控制交通状况等优点受到人们的欢迎,在很多场合得到了广泛的应用。 交通灯是采用计算机通过编写汇编语言程序控制的。红灯停,绿灯行的交通规则。广泛用于十字路口,车站, 码头等公共场所,成为人们出行生活中不可少的必需品,由于计算机技术的成熟与广泛应用,使得交通灯的功能多样化,远远超过老式交通灯, 交通灯的数字化给人们生产生活带来了极大的方便,而且大大地扩展了交通灯的功能。诸如闪烁警示、鸣笛警示,时间程序自动控制、倒计时显示,所有这些,都是以计算机为基础的。还可以根据主、次干道的交通状况的不同任意设置各自的不同的通行时间。或者给红绿色盲声音警示的人性化设计。现在的交通灯系统很多都增加了智能控制环节,比如对闯红灯的车辆进行拍照。当某方向红灯亮时,此时相应的传感器开始工作,当有车辆通过时,照相机就把车辆拍下。 要将交通灯系统产品化,应该根据客户不同的需求进行不同的设计,应该在程序中增加一些可以人为改变的参数,以便客户根据不同的需要随时调节交通灯。因此,研究交通灯及扩大其应用,有着非常现实的意义。 2 设计内容 交通灯控制系统 利用8253定时器、8255等接口,设计一电路,模拟十字路口交通灯控制。要求能实现自动控制和手动应急控制。 3 设计要求 在Proteus环境下,结合课程设计题目,设计硬件原理图,搭建硬件电路 软件设计

交通灯设计 verilog

数电课程设计 学生姓名: 专业:电子信息工程 指导教师: 完成日期: 2016-6-30

摘要 Verilog HDL作为一种规范的硬件描述语言,被广泛应用于电路的设计中。它的设计描述可被不同的工具所支持,可用不同器件来实现。利用Verilog HDL语言自顶向下的设计方法设计交通灯控制系统,使其实现道路交通的正常运转,突出了其作为硬件描述语言的良好的可读性、可移植性和易理解等优点,并通过Quartus5.0完成综合、仿真。此程序通过下载到FPGA芯片后,可应用于实际的交通灯控制系统中。 关键词:Verilog HDL;硬件描述语言;状态;FPGA Abstract As a common language for the description of hardware, Verilog HDL is widely applied in circuit designing. The design description can be supportted by differenttools and implemented by different devices.In this paper, the process of design ing traffic light controller system by the Verilog HDL topdown design method is presented, which has made the road traffic work well, the design of t his system has shown the readability, portability and easily understanding of Verilog HDL as a hard description language Circuit synthesis and simulation are pe rformed by Quartus5.0. The program can be used in the truly traffic light controller system by downloading to the FPGA chip Keywords:Verilog HDL; hardware description language; state; FPGA

数字电路课程设计交通灯

数字逻辑电路设计 课程设计报告 系(部):三系 专业:通信工程 班级: 2011级<1>班 姓名:陈 学号: 201103061 成绩: 指导老师:李海霞 开课时间: 2012-2013 学年二学期

一、设计题目 交通信号灯控制器 二、主要内容 1、分析设计题目的具体要求 2、完成课题所要求的各个子功能的实现 3、用multisim软件完成题目的整体设计 三、具体要求 (一)、交通灯信号控制器仿真设计 设计要求 (1)设计一个十字路口的交通灯控制电路,要求东西方向和南北方向车道两条交叉道路上的车辆交替运行,每次通行时间都设为35s。时间可 设置修改。 (2)在绿灯转为红灯时,要求黄灯先亮5s,才能变换运行车道。 (3)黄灯亮时,要求每秒闪亮一次。 (4)东西方向、南北方向车道除了有红、黄、绿灯指示外,每一种灯亮的时间都用显示器进行显示。 (5)假定+5V电源给定。 四、进度安排 第一天:介绍所用仿真软件;布置任务,明确课程设计的完整功能和要求。第二天:消化课题,掌握设计要求,明确设计系统的全部功能,图书馆查阅资料。 第三天:确定总体设计方案,画出系统的原理框图。 第四天:绘制单元电路并对单元电路进行仿真。 第五天:分析电路,对原设计电路不断修改,获得最佳设计方案。 第六天:完成整体设计并仿真验证。 第七天:对课程设计进行现场运行检查并提问,给出实践操作成绩。 第八天:完成实践报告的撰写

五、成绩评定 课程设计成绩按优、良、中、及格、不及格评定,最终考核成绩由四部分组成: 1、理论设计方案,演示所设计成果,总成绩40%; 2、设计报告,占总成绩30%; 3、回答教师所提出的问题,占总成绩20%; 4、考勤情况,占总成绩10%; 无故旷课一次,平时成绩减半;无故旷课两次平时成绩为0分,无故旷课三次总成绩为0分。迟到20分钟按旷课处理。

交通灯控制器的设计

交通灯控制器的设计 LG GROUP system office room 【LGA16H-LGYY-LGUA8Q8-LGA162】

电子设计自动化实训说明书 题目:交通灯控制器的设计 系部:信息与控制工程学院 专业:电子信息工程 班级: 06级1班 学生姓名: 朱清美学号: 015 指导教师:张建军 2009年12月21日 目录 1摘要............................................................... 2设计任务与要求..................................................... 3设计原理及框图..................................................... 4单元电路设计及仿真调试............................................. 状态控制器的设计................................................ 状态译码器设计及仿真调试........................................ 定时系统设计及仿真调试.......................................... 秒脉冲发生器设计................................................ 5个人总结 (14) 6参考文献........................................................... 1摘要: 分析了现代城市交通控制与管理问题的现状,结合城乡交通的实际情况阐述了交通灯控制系统的工作原理,给出了一种简单实用的城市交通灯控制系统的硬件电路设计方案。关键词:交通控制交通灯时间发生器定时器1 引言随着社会经济的发展,城市交通问题越来越引起人们的关注。人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。城市交通控制系统是用于城市交通数据监测、交通信号灯控制与交通疏导的计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。随着城市机动车量的不断增加,许多大城市如北京、上海、南京等出现了交通超负荷运行的情况,因此,自80年代后期,这些城市纷纷修建城市高速道路,在高速道

数字系统课程设计-交通灯控制器实验报告

交通灯控制器 ——数字系统设计报告 姓名: 学号:

一.实验目的 1.基本掌握自顶向下的电子系统设计方法 2.学会使用PLD和硬件描述语言设计数字电路,掌握 Quartus II等开发工具的使用方法 3.培养学生自主学习、正确分析和解决问题的能力 二.设计要求 我所选择的课题是用Verilog HDL实现交通灯控制器。该课题的具体内容及要求如下: 主干道与乡村公路十字交叉路口在现代化的农村星罗棋布,为确保车辆安全、迅速地通过,在交叉路口的每个入口处设置了红、绿、黄三色信号灯。红灯禁止通行;绿灯允许通行;黄灯亮则给行驶中的车辆有时间行驶到禁行线之外。主干道和乡村公路都安装了传感器,检测车辆通行情况,用于主干道的优先权控制。 (1)当乡村公路无车时,始终保持乡村公路红灯亮,主干道绿灯亮。 (2)当乡村公路有车时,而主干道通车时间已经超过它的最短通车时间时,禁止主干道通行,让乡村公路通行。主干道最短通车时间为25s 。 (3)当乡村公路和主干道都有车时,按主干道通车25s,乡村公路通车16s交替进行。 (4)不论主干道情况如何,乡村公路通车最长时间为16s。 (5)在每次由绿灯亮变成红灯亮的转换过程中间,要亮5s时

间的黄灯作为过渡。 (6)用开关代替传感器作为检测车辆是否到来的信号。用红、绿、黄三种颜色的发光二极管作交通灯。 (7)要求显示时间,倒计时。 (C表示乡村道路是否有车到来,1表示有,0表示无;SET用来控制系统的开始及停止;RST是复位信号,高电平有效,当RST=1时,恢复到初始设置;CLK是外加时钟信号;MR、MY、MG分别表示主干道的红灯、黄灯和绿灯;CR、CY、CG分别表示乡村道路的红灯、黄灯和绿灯,1表示亮,0表示灭) 系统流程图如下:(MGCR:主干道绿灯,乡村道路红灯;MYCR:主干道黄灯,乡村道路红灯;MRCG:主干道红灯,乡村道路绿灯;MRCY:主干道红灯,乡村道路黄灯;T0=1表示主干道最短通车时间到,T1=1表示5秒黄灯时间到,T2=1表示乡村道路最长通车时间到。)

verilog课程设计—交通灯

课程论文 论文题目基于DE2的交通灯设计完成时间 课程名称Verilog语言设计 任课老师 专业 年级

1.交通信号控制器设计要求与思路 1.1设计背景 FPGA是一种用户根据各自需要而自行构造逻辑功能的数字集成电路,其种类很多,内部结构也不同,但共同的特点是体积小、使用方便。本文介绍了用VerilogHDL语言设计交通灯控制器的方法,并在QuartusII系统对FPGA芯片进行编译下载,由于生成的是集成化的数字电路,没有传统设计中的接线问题,所以故障率低、可靠性高,而且体积非常小。本文通过EDA设计,利用VerilogHDL语言模拟仿真交通灯控制电路。 1.2设计要求 根据交通灯控制器要实现的功能,考虑用两个并行执行的always语句来分别控制A方向和B方向的3盏灯。这两个always语句使用同一个时钟信号,以进行同步,也就是说,两个进程的敏感信号是同一个。每个always语句控制一个方向的3种灯按如下顺序点亮,并往复循环:绿灯----黄灯----红灯,每种灯亮的时间采用一个减法计数器进行计数,计数器用同步预置数法设计,这样只需改变预置数据,就能改变计数器的模,因此每个方向只要一个计数器进行预置数就可以。为便于显示灯亮的时间,计数器的输出均采用BCD码,显示由4个数码管来完成,A方向和B方向各用两个数码管。设定A方向红灯、黄灯、绿灯亮的时间分别为:35s、5s、35s,B方向的红灯、黄灯、绿灯亮的时间分别为:35s、5s、35s。假如要改变这些时间,只需要改变计数器的预置数即可。 1.3设计思路 两个方向各种灯亮的时间能够进行设置和修改,此外,假设B方向是主干道,车流量大,因此B方向通行的时间应该比A方向长。交通灯控制器的状态转换表见下表。表中,1表示灯亮,0表示灯不亮。A方向和B方向的红黄绿分别用R1、Y1、G1、R2、Y2、G2来表示。

简易交通灯控制电路的设计课程设计

长安大学 电子技术课程设计 题目简易交通信号灯控制器 班级 姓名黄红涛指导教师温 凯歌 日期 前言 在现代城市中,人口和汽车日益增长,市区交通也日益拥挤,人们的安全问题也日益重要。因此,红绿交通信号灯成为交管部门管理交通的重要工具之一。有了交通灯之后人们的安全出行有了很大的保障。 自从交通灯诞生以来,其内部的电路控制系统就不断的被改进,设计方法也开始多种多样,从而使交通灯显得更加智能化。尤其是近几年来,随着电子与计算机技术的飞速发展,电子电路分析和设计方法有了很大的改进,电子设计自动化也已经成为现代电子系统中不可缺少的工具和手段,这些为交通灯控制电路的设计提供了一定的技术基础。 因此,在本次课题为简易交通灯的课程设计中,通过采用数字电路对交通灯控制电路的设计,提出使交通灯控制电路用数字信号自动控制十字路口两组红、黄、绿交通灯的状态转换的方法,指挥各种车辆和行人安全通行,实现十字路口交通管理的自动化。

本设计分为两个部分:第一部分是由定时器、时钟脉冲驱动和控制器组成的秒脉冲信号发生装置;第二部分是有译码器、发光二极管和数码管组成的交通信号灯以及时间显示装置。各部分采用分模块设计,正文中详细介绍了各模块的功能和原理。 为了完成本次设计,参阅了大量的资料,包括所用到的芯片的详细中英文资料。搜集和查阅资料是一个漫长但是非常重要的过程,获取各模块电路原理,然后经过讨论比较,结合课题要求,确定出一套最合适的方案。小组人员花费几天时间,通过图书馆和上网查阅资料,分别查阅到相应资料。经过商讨,结合现有资料,制定基本框架,并基本定出电路图。在MULTISIM软件里进行电路仿真,来验证电路的正确性。通过仿真来验证实验原理和电路的正确性。在整个过程中,充分发挥主观能动性,将平时所学的理论知识和实际相结合,往往理论可行的东西,实际并不一定能出现结果,这就是我们需要解决的问题,通过问老师或者查资料来分析解决问题。最后确定仿真没有错误后,汇总电路图。 本设计分为两大部分,交通信号灯以及译码显示电路(时间显示)部分由黄红涛同学和韩白雨同学负责主导设计;秒脉冲信号发生以及控制部分由任永刚同学负责,最后进过整合后得到完整系统。 由于缺少实践经验,并且知识有限,所以本次课程设计中难免存在缺点和错误,敬请老师批评指正。 黄红涛 2010年12月29日 目录 前言 (2)

基于FPGA下的交通灯控制器设计

引言 随着城乡的经济发展,车辆的数量在迅速的增加,交通阻塞的问题已经严重影响了人们的出行。 现在的社会是一个数字化程度相当高的社会,很多的系统设计师都愿意把自己的设计设计成集成电路芯片,芯片可以在实际中方便使用。随着EDA技术的发展,嵌入式通用及标准FPGA器件的呼之欲出,片上系统(SOC)已经近在咫尺。FPGA/CPLD 以其不可替代的地位及伴随而来的极具知识经济特征的IP芯片产业的崛起,正越来越受到业内人士的密切关注。FPGA就是在这样的背景下诞生的,它在数字电路中的地位也越来越高,这样迅速的发展源于它的众多特点。交通等是保障交通道路畅通和安全的重要工具,而控制器是交通灯控制的主要部分,它可以通过很多种方式来实现。在这许许多多的方法之中,使用FPGA和VHDL语言设计的交通灯控制器,比起其他的方法显得更加灵活、易于改动,并且它的设计周期性更加短。 城市中的交通事故频繁发生,威胁着人们的生命健康和工作生活,交通阻塞问题在延迟出行时间的同时,还会造成更多的空气污染和噪声污染。在这种情况下,根据每个道路的实际情况来设置交通灯,使道路更加通畅,这对构建和谐畅通的城市交通有着十分重要的意义。

第一章软件介绍 1.1 QuartusⅡ介绍 本次毕业设计是基于FPGA下的设计,FPGA是现场可编程门阵列,FPGA开发工具种类很多、智能化高、功能非常的强大。可编程QuartusⅡ是一个为逻辑器件编程提供编程环境的软件,它能够支持VHDL、Verilog HDL语言的设计。在该软件环境下,设计者可以实现程序的编写、编译、仿真、图形设计、图形的仿真等许许多多的功能。在做交通灯控制器设计时选择的编程语言是VHDL语言。 在这里简单的介绍一下QuartusⅡ的基本部分。图1-1-1是一幅启动界面的图片。在设计前需要对软件进行初步的了解,在图中已经明显的标出了每一部分的名称。 图 1-1-1 启动界面 开始设计前我们需要新建一个工程,首先要在启动界面上的菜单栏中找到File,单击它选择它下拉菜单中的“New Project Wizard”时会出现图1-1-2所显示的对话框,把项目名称按照需要填好后单击Next,便会进入图 1-1-3 显示的界面。

交通灯设计-verilog.

. 基于Verilog语言交通灯设计报告 院系:工学院自动化系 年级:14级 班级:10班 姓名:周博 学号:14032291

这学期我学习了EDA技术及其创新实践这门课程,通过自己学习的内容和自己查找的一些资料用Verilog语言编写交通灯的程序,并且完成了仿真。Verilog HDL是工业和学术界的硬件设计者所使用的两种主要的HDL之一,另一种是VHDL。现在它们都已成为IEEE标准。两者各有特点,但Verilog HDL拥有更悠久的历史、更广泛的设计群体,资源也远比VHDL丰富,且非常容易学习掌握。一、设计背景和意义 交通灯控制系统主要是实现城市十字交叉路口红绿灯的控制。在现代化的大城市中,十字交叉路口越来越多,在每个交叉路口都需要使用红绿灯进行交通指挥和管理,红、黄、绿灯的转换要有一个准确的时间间隔和转换顺序,这就需要有一个安全、自动的系统对红、黄、绿灯的转换进行管理,本系统就是基于此目的而开发的。 二、设计任务 (1)设计一个交通红绿灯。要求分主干道和支干道,每条道上安装红(主:red1,支:red2)绿(主:green1,支:green2)黄(主:yellow1,支:yellow2)三种颜色灯,由四种状态自动循环构成; (2)在交通灯处在不同的状态时,设计一个计时器以倒计时方式显示计时,主干道上绿灯亮30S,支干道上绿灯亮20S。每个干道上,在绿灯转为红灯时,要

求黄灯先亮5S。 在完成基本要求的基础上,可进一步增加功能、提高性能,如绿灯亮的时间可调。 三、设计方案 1.工作原理: 城市十字交叉路口红绿灯控制系统主要负责控制主干道走向和从干道走向的红绿灯的状态和转换顺序,关键是各个状态之间的转换和进行适当的时间延时,正是基于以上考虑,采用如下设计: S0:当主干道走向的绿灯亮时,从干道走向的红灯亮,并保持30s S1:当主干道走向的黄灯亮时,从干道走向的黄灯亮,并保持5s S2:当主干道走向的红灯亮时,从干道走向的绿灯亮,并保持20s S3:当主干道走向的黄灯亮时,从干道走向的黄灯亮,并保持5s 在S3结束后又回到(1)状态,并周期重复进行。 状态图如下: 30秒 5秒5秒

交通灯单片机课程设计

1 序言 交通灯的形成 当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。但这一技术在19世纪就已出现了。1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿两色旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。 电气启动的红绿灯出现在美国,这种红绿灯由红绿黄三色圆形的投光器组成,1914年始安装于纽约市5号大街的一座高塔上。红灯亮表示“停止”,绿灯亮表示“通行”。 1918年,又出现了带控制的红绿灯和红外线红绿灯。带控制的红绿灯,一种是把压力探测器安在地下,车辆一接近红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下嗽叭,就使红灯变为绿灯。红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。 信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。1968年,联合国《道路交通和道路标志信号协定》对各种信号灯的含义作了规定。绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。我们设计的单片机控制交通灯就是基于信号灯。 技术指示 设计一个十字路口(方向为东西南北四个方向)的交通灯控制电路,每条道路上各配有一组红、黄、绿交通信号灯,其中红灯亮,表示该道路禁止通行;黄灯亮表示

基于EDA十字路口交通灯控制器设计

十字路口交通灯控制器设计 一、实验目的 1、进一步加强经典状态机的设计 2、学会设计模可变倒计时计数器 二、实验要求 一条主干道,一条乡间公路。组成十字路口,要求优先保证主干道通行。有MR(主红)、MY(主黄)、MG(主绿)、CR(乡红)、CY(乡黄)、CG(乡绿)六盏交通灯需要控制;交通灯由绿→红有4秒黄灯亮的间隔时间,由红→绿没有间隔时间;系统有MRCY、MRCG、MYCR、MGCR四个状态; 乡间公路右侧各埋有一个传感器,当有车辆通过乡间公路时,发出请求信号S=1,其余时间S=0; 平时系统停留在MGCR(主干道通行)状态,一旦S信号有效,经MYCR(黄灯状态)转入MRCG(乡间公路通行)状态,但要保证MGCR的状态不得短于一分钟;一旦S信号无效,系统脱离MRCG状态。随即经MRCY(黄灯状态)进入MGCR 状态,即使S信号一直有效,MRCG状态也不得长于20秒钟。 三、实验思路 1、设计一个状态寄存器,控制六盏灯的亮与灭 2、设计一个计时器,控制各状态的持续时间,计时器应满足以下要求: 1)当S=1,且计数器已完成60计数时,计数器进入模4计数,随后进入模20计数,再进入模4计数,再回到模60计数 2)当计数器进行摸20计数时,一旦S变为0,计数器立马进入模4计数,再进入模60计数 3)完成模20计数后,不论S为0或1,计数器进入模4计数,再进入模60 计数 4)若计数器未完成模60计数,不论S如何变话,计数器将继续进行模60 计数 3、使用文本设计底层文件,并生成相应元器件,再使用原理图设计顶层文件 四、实验步骤 1、建立工作库文件夹和编辑设计文件 1)建立一个文件夹保存工程文件; 2)打开QuartusII,建立新的VHDL文件,再打开的页面下输入以下程序 控制6盏灯的模块代码: LIBRARY IEEE;

交通灯控制器课程设计说明书

交通灯控制器课程设计说明书课程设计说明书 学生姓名:____________ 学号:________________ 学院:_______________________________________ 专业:_______________________________________ 题目:_____________ 交通灯控制器_____________ 指导教师:职称:

2010年1月15日 目录 1、实验任务 (3) 2、实验目的 (3) 3、设计方案 (3) 4、参考电路设计 (4) 5、实验仪器设备 (9) 6、实验心 得 (10)

一.实验任务 设计一个交通灯控制器,具体要求如下: 1、以红,黄,绿三种颜色的发光管作为交通灯。绿灯亮表示可以通行, 红灯 亮表示禁止通行.黄灯亮表示未通过的车辆禁止通行. 2、每次放行时间为30秒,红转绿或绿转红时,需黄灯亮5秒作为过度。 二.实验目的 1、掌握电子电路的一般设计方法和设计流程。 2、学习使用PROTEL软件绘制电路原理图和印刷版图。] 3、掌握应用EWB对设计的电路进行仿真,通过仿真结果验证设计的正确 性。 三.设计方案 交通灯控制器参考方案 图1 图1为交通灯控制器的一个参考设计方案。在这一方案中,系统主要由控制器.定时器?脉冲信号发生器.译码器?信号灯组成。 TL.TY为定时器的输出信号,ST为控制器的输出信号。 当车道绿灯亮时,定时器开始记时,当记时到30秒时,TL输出为1,否则,TL=0; 当车道黄灯亮后,定时器开始记时,当记时到5秒时,TY输出为1,否则,TY=0;

ST 为状态转换信号,当定时器数到规定的时间后,由控制器发出状态转 换信号,定时器开始下一个工作状态的定时计数。 控制状态为: 表1 ?状态转换 表 图2画出了控制器的状态转换图,图中TY 和TL 为控制器的输入信号, ST 为控制器的输出信号。 00 .01 . 11. 交通信 号灯 有四个状态, 用SO. 来表 SI. S2 ? S3 示,并且分别 分配 编码状态为

通过Verilog实现交通灯设计实验报告

电子科技大学 实 验 报 告 一、实验室名称:虚拟仪器实验室 二、实验项目名称:交通灯设计实验 三、实验学时:4学时 四、实验原理

假设交通灯处于南北和东西两条大街的“十”字路口,如图1所示。用FPGA 开发板的LED 灯来模拟红、黄、绿3种颜色信号,并按一定顺序、时延来点亮LED ,如图2所示。图3给出了交通灯的状态转移图。设计使用频率为1Hz 的时钟来驱动电路(注1:仿真时采用1MHz 的时钟来驱动电路),则停留1个时钟可得到1S 的延时,类似停留3个时钟可得到3S 的延时,停留15个时钟可得到15S 的延时(注2:开发板工作时钟为50MHz )。 北 南 西东 图1. 六个彩色LED 可以表示一组交通信号灯 图2. 交通灯状态 南北 东西 红 黄 绿 红 黄 绿 S0 1 0 0 0 0 1 S1 1 0 0 0 1 0 S2 1 0 0 1 0 0 S3 0 0 1 1 0 0 S4 0 1 0 1 0 0 S5 1 0 0 1 0 0

图3. 交通灯的状态转移图 顶层模块 时钟分频模块状态机跳转模块 图4. 交通灯的原理框图 五、实验目的 本实验是有限状态机的典型综合实验,掌握如何使用状态转移图来定义Mealy状态机和Moore状态机,熟悉利用HDL代码输入方式进行电路的设计和仿真的流程,掌握Verilog语言的基本语法。并通过一个交通灯的设计掌握利用EDA软件(Xilinx ISE 13.2)进行HDL代码输入方式的电子线路设计与仿真的详细流程。。 六、实验内容 在Xilinx ISE 13.2上完成交通灯设计,输入设计文件,生成二进制码流文件下载到FPGA开发板上进行验证。 七、实验器材(设备、元器件)

微机原理-交通灯课程设计报告

微型计算机原理及应用课程设计说明书 交通灯控制系统设计 班级:1401班 姓名: 学号: 指导教师: 日期:2016年6月

一.课程设计目的: 在车辆日渐增多的今天,人们也越来越关注交通问题,而交通灯在安全行车过程中无疑起着十分重要的作用。现在交通灯一般都设在十字路口,用红、绿、黄三种颜色的指示灯和一个倒计时的显示计时器来控制行车, 对一般情况下的安全行车、车辆分流发挥着作用, 但根据实际行车过程中出现的情况, 主要有如下几个缺点: 1、车道轮流放行时间相对固定, 不能根据实际情况中两个车道的车辆多少来设置改变通行时间;2、没有考虑紧急车辆通过时, 两车道应采取的措施。譬如, 有消防车通过执行紧急任务时, 两个车道的车都应停止, 让紧急车辆通过。因此如何合理高效地利用交通灯指示交通情况,是一个亟需解决的问题。 交通灯是采用计算机通过编写汇编语言程序控制的。红灯停,绿灯行的交通规则。广泛用于十字路口,车站, 码头等公共场所,成为人们出行生活中不可少的必需品,由于计算机技术的成熟与广泛应用,使得交通灯的功能多样化,远远超过老式交通灯, 交通灯的数字化给人们生产生活带来了极大的方便,而且大大地扩展了交通灯的功能。诸如闪烁警示、鸣笛警示,时间程序自动控制、倒计时显示,所有这些,都是以计算机为基础的。还可以根据主、次干道的交通状况的不同任意设置各自的不同的通行时间。或者给红绿色盲声音警示的人性化设计。现在的交通灯系统很多都增加了智能控制环节,比如对闯红灯的车辆进行拍照。当某方向红灯亮时,此时相应的传感器开始工作,当有车辆通过时,照相机就把车辆拍下。 要将交通灯系统产品化,应该根据客户不同的需求进行不同的设计,应该在程序中增加一些可以人为改变的参数,以便客户根据不同的需要随时调节交通灯。因此,研究交通灯及扩大其应用,有着非常现实的意义 二.课程设计内容: 设有一个十字路口,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、4路口黄灯亮,再切换到1、3路口方向,之后重复上述过程。 三.问题分析及硬件介绍: 本次课程设计的内容为利用8086、8255等接口,实现控制十二个二极管亮灭的过程。需要PC机一台,8255并口:用做接口芯片。LED:共12个LED灯。还有8086芯片,8253a定时器等器材. 将8086和74273、74154和8255连接起来.需用到8255的六个输出端口。所以要求8255工作在方式0,因为二极管是共阳的,所以输出低电平二极管才会亮。8086用作cpu,三个74273是锁存器,锁存地址。 用软件proteus7.8画出电路图,加载程序到8086cpu,进行模拟。 系统硬件设计

交通灯信号控制器仿真设计

交通灯信号控制器仿真设计 一、设计目的 1、巩固和加强《数字电子技术》课程的理论知识。 2、掌握电子电路的一般设计方法,了解电子产品研制开发过程。 3、掌握电子电路安装和调试的方法及其故障排除方法,学会用Multisim软 件仿真。 4、通过查阅手册和文献资料,培养学生独立分析问题、解决问题以及团队协作能力。巩固所学知识,加强综合能力,提高实验技能,启发创新能力的效果 5、培养学生创新能力和创新思维。让学生通过动手动脑解决实际问题,巩固课程中所学的理论知识和实验技能。 二、设计要求 1、设计一个十字路口的交通灯控制电路,要求东西方向和南北方向车道两条交叉道路上的车辆交替运行,每次通行时间都设为45s。时间可设置修改。 2、在绿灯转为红灯时,要求黄灯先亮5s,才能变换运行车道。 3、黄灯亮时,要求每秒闪亮一次。 4、东西方向、南北方向车道除了有红、黄、绿灯指示外,每一种灯亮的时间都用显示器进行显示。 5、假定+5V电源给定。 三、总体概要设计 设计一个十字路口的交通灯控制电路,要求东西方向和南北方向车道两条交叉道路上的车辆交替运行,每次通行时间都为45s,每次绿灯变红时黄灯先亮5秒。该交通灯控制系统的总体设计方案如下图所示所示。90进制加法计数器作为该系统的主控制电路,控制东西方向和南北方向交通的及LED显示,秒信号发生器产生整个定时系统的时间脉冲,通过加法计数器对秒脉冲加计数,当到达固定时刻,控制LED显示的减法计数器进行数制转换,交通灯做出相应的变化。 交通灯控制系统的总体设计方案 电

电路流程图 四、局部细节设计 一、秒脉冲电路部分

二、主控电路(89进制加法计数器)部分 三、东西方向减法计数器及LED显示部分

单片机课程设计_基于单片机的交通灯控制系统设计说明

目录 1.硬件设计方案............................................... - 3 -1.1总方案设计 (3) 1.2中央处理单元 (4) 1.3红、绿、黄灯显示部分 (4) 1.4时间显示部分 (4) 1.5按键部分 (5) 2.主要电路原理分析和说明 ..................................... - 6 -2.1红、绿、黄灯显示电路.. (6) 2.2时间显示电路 (6) 2.3按键电路 (8) 2.4时钟及复位电路, (9) 其电路原理图如图2.4所示 (9) 2.5完整电路原理图 (9) 2.6单片机相应管脚及功能说明 (12) 3.软件设计流程及描述......................................... - 14 - 3.1程序流程图 (14) 4.调试....................................................... - 16 -(1)硬件调试 (16) (2)软件调试 (16)

5.结束语..................................................... - 17 - 6.参考文献................................................... - 17 - 7.附录....................................................... - 19 - 1.源程序代码 (19) 2.实物图 (22)

verilog课程设计—交通灯1

课程设计 课程名称__EDA技术综合设计与实践__ 题目名称交通灯控制系统 学生学院信息工程学院 专业班级通信工程08(4) 学号 3108002925 学生姓名高高 指导教师李学易 2011 年12 月26 日

基于FPGA 的交通灯控制器的设计 摘要:Verilog 是广泛应用的硬件描述语言,可以用在硬件设计流程的建模、综合和模拟等多个阶段。随着硬件设计规模的不断扩大,应用硬件描述语言进行描述的CPLD 结构,成为设计专用集成电路和其他集成电路的主流。现代城市在日常运行控制中,越来越多的使用红绿灯对交通进行指挥和管理。而一套完整的交通灯控制系统通常要实现自动控制和手动控制去实现其红绿灯的转换。 基于FPGA 设计的交通灯控制系统电路简单、可靠性好。本设计利用Verilog HDL 语言、采用层次化混合输入方式,可控制4个路口的红、黄、绿、左转四盏信号灯,让其按特定的规律进行变化。在QUARTUSⅡ下对系统进行了综合与仿真。仿真结果表明系统可实现十字路口红绿灯及左转弯控制和倒计时显示,并能够自动控制交通灯转变。通过应用Verilog HDL 对交通灯控制器的设计,达到对Verilog HDL 的理解 关键词:FPGA;交通灯自动控制;V erilog HDL;Quartus Ⅱ 1.交通信号控制器设计要求与思路 1.1设计要求 在交通灯系统中(图1),路口1、2、3、4均需要红、黄、绿、左转四盏灯(用RYGL分别表示) ,并且每个路口都需要一个倒数的计时器,假设绿灯每次维持的时间是40 s ,黄灯为5 s ,左转灯10s,红灯60s,黄灯亮时以一定的频率闪动。交通灯系统大多是自动控制来指挥交通的,但有时需要由交警手动控制红绿灯,所以要求设 计的该交通信号系统需要具有该功能。 实现设计目标如下: (1)设计一个十字路口的交通灯控制电路,每条路配有红、黄、绿交通信号灯,通过电路对十字路口的两组交通灯的状态实现自动循环控制; (2)实现东西车道和南北车道上的车辆交替运行,绿灯每次维持的时间是40 s ,黄灯为5 s ,左转灯10s,红灯60s; (3)要求黄灯亮5 秒后,红灯才能转为绿灯,黄灯亮时以一定的频率闪动; (4)东西车道和南北车道每次通行的时间不同且可调; 图1 交通灯系统示意图

相关文档