文档库 最新最全的文档下载
当前位置:文档库 › Verilog HDL交通灯设计实验

Verilog HDL交通灯设计实验

Verilog HDL交通灯设计实验
Verilog HDL交通灯设计实验

实验四交通灯设计

一、实验目的和要求

1、了解交通灯控制原理

2、了解模块化设计方法

3、掌握数字系统设计的方法

4、通过仿真器观察输入输出波形,并能在FPGA开发板上实现交通灯控制系统

二、实验仪器

1、计算机

2、FPGA实验开发板

三、实验内容

(包括必要的步骤、原理,如状态图等)

1、完成系统的模块划分

2

3

十字路口交通灯程序代码: module top(clk,rst,road1,road2);

input clk, rst;

output[2:0] road1,road2;

wire en5,en25,lin5,lin25;

timer5 u1(clk,rst,en5,lin5);

timer25 u2(clk,rst,en25,lin25);

controller u3(clk,rst,en5,en25,lin5,lin25,road1,road2);

endmodule

module timer5(clk,rst,en5,lin5);

input clk,rst,en5;

output lin5;

reg lin5;//对于timer 模块,lin5为输出口,所以用寄存器类型

reg[27:0] count;

always @ (posedge clk)

begin

if(!rst) begin

count<=0;lin5<=0;

end

else if(en5)

begin count<=count+1;

if(count==2_5000_0000) /*进行软件仿真时将数值改小,在实验时候跳转过快就是设置数值时少写了一个零*/

lin5<=1;

end

else begin

count<=0 ; lin5<=0;

end

end

endmodule

module time25(clk,rst,en25,lin25);

input clk,rst,en25;

output lin25;

reg lin25;

reg[31:0] count; //计数功能

always @ (posedge clk)

begin

if(!rst) begin

count<=0;lin25<=0;//两句赋值语句间需用“;”号

end

else if(en25)

begin

count<=count+1;

if(count==12_5000_0000) //进行软件仿真时将数值改小

lin25<=1;

end

else begin

count<=0 ; lin5<=0;

end

end

endmodule

module controller(clk,rst,en5,en25,lin5,lin25,road1,road2);

input clk,rst,lin5,lin25;

output en5,en25;

output[2:0] road1,road2;

reg en5,en25; //寄存器类型必须定义

reg[2:0] road1,road2; //寄存器类型

reg[1:0] state; //状态分配,四个状态用2位即可满足

always @(posedge clk)

begin

if(!rst) begin en5<=0,en25<=0; state<=0;end /*刚将lin5<=0,lin25<=0;是不正确的,对寄存器才赋初值,en5,en25对于controller模块来说是输出端口,并且变量在always语句中,所以要用reg类型,对state预设零非常重要,不然就会出现像我在实验中六盏灯全亮的情况*/

else case(state)

0: begin

road1<=’b011, road2<=’b101;/*对应红绿黄共阳极接法,出零灯亮*/

en25<=1,en5<=0;

if(lin25==1) state<=1;

end

1: begin

road1<=’b011, road2<=’b110;

en25<=0,en5<=1;

if(lin5==1) state<=2;

end

2: begin

road1<=’b101, road2<=’b011;

en25<=1,en5<=0;

if(lin25==1) state<=3;

end

3: begin

road1<=’b110, road2<=’b011;

en25<=0,en5<=1;

if(lin5==1) state<=0;

end

endcase//end…endcase为固定语句

end

endmodule

创建新的项目:[File]->[New Project] 选择器件属性

创建源文件:[Project]->[New Source]->Verilog Module 输入交通灯程序代码(上图所示)

设计综合:使用ISE自带的综合工具XST 检查程序是否有误

调试仿真波形仿真

?创建测试矢量波形文件:[Project]->[New Source]->Test Bench Waveform

?初始化输入波形

?启动ModelSim进行行为仿真

设计实现

?启动设计实现:[Implement Design]

?可以在布局规划器(Floorplanner)中查看设计布局:[Place & Route]->[View/Edit Placed Design(Floorplanner)]

下载调试将Verilog程序完成的电路配置到芯片里,并让芯片运行,观察并调试结果

四:实验结果

(说明实验的结果显示,最好包括波形和文字的)

四、小结

(对实验的心得,以及在试验中碰到的问题,你是如何解决这个问题的)

进行软件仿真时要注意源程序代码的修改

?if(!rst) begin en5<=0,en25<=0; state<=0;end /*刚将lin5<=0,lin25<=0;是不正确的,对寄存器才赋初值,en5,en25对于controller模块来说是输出端口,并且变

量在always语句中,所以要用reg类型,对state预设零非常重要,不然就会出

现像我在实验中六盏灯全亮的情况*/

?if(!rst) begin

count<=0;lin25<=0;//两句赋值语句间需用“;”号

end

?在进行程序设计时,一定先要分析系统的各个模块,以及各个模块之间的关系,画出模块之间的电路图。

?在进行程序算法实现前,最好先分析一下各个状态,画出状态图,然后在根据分析特到的状态图进行程序编写。

娄水锋

08电信本

基于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

交通灯实验报告

交通控制器设计实验 一.实验目的 1.了解交通灯的亮灭规律。 2.了解交通灯控制器的工作原理。 3.进一步熟悉VHDL语言编程,了解实际设计中的优化方案。二.实验任务 设计一个十字路口交通控制系统,其东西,南北两个方向除了有红、黄、绿灯指示是否允许通行外,还设有时钟,以倒计时方式显示每一路允许通行的时间,绿灯,黄灯,红灯的持续时间分别是40、5和45秒。当东西或南北两路中任一道上出现特殊情况,例如有消防车,警车要去执行任务,此时交通控制系统应可由交警手动控制立即进入特殊运行状态,即两条道上的所有车辆皆停止通行,红灯全亮,时钟停止计时,且其数字在闪烁。当特殊运行状态结束后,管理系统恢复原来的状态,继续正常运行。 三.原理分析 本系统主要由计数控制器和倒计时显示器电路组成。计数控制器实现总共90秒的计数,90秒也是交通控制系统的一个大循环;控制器控制系统的状态转移和红黄绿灯的信号输出;倒计时显示器电路实现45秒倒计时和显示功能。整个系统的工作时序受控制器控制,它是系统的核心。 控制器的整个工作过程用状态机进行描述,其状态转移关系如下图所示。五种状态描述如下: s0:东西方向红灯亮,南北方向绿灯亮,此状态持续40秒的时间; s1:东西方向红灯亮,南北方向黄灯亮,此状态持续5秒的时间;

s2:东西方向绿灯亮,南北方向红灯亮,此状态持续40秒的时间; s3:东西方向黄灯亮,南北方向红灯亮,此状态持续5秒的时间; s4:紧急制动状态,东西方向红灯亮,南北方向红灯亮,当紧急制动信号有效(hold=’0’)时进入这种状态。 当紧急制动信号无效(hold=’1’)时,状态机按照s0→s1→s2→s3→s0循环;当紧急制动有效(hold=’0’)时,状态机立即进入s4,两个方向红灯全亮,计数器停止计数;当紧急制动信号再恢复无效时,状态机会回到原来的状态继续执行。 四.电路设计 交通控制器系统顶层原理图如下图所示,它由计数控制器(control),45秒倒计时计数器(M45)模块组成。下面主要介绍计数控制器和倒计时计数器M45的设计方法。

交通灯设计 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

交通灯实验报告

微机原理课程设计报告 新疆农业大学 计算机与信息工程学院 课程题目:微机原理与几口技术 班级:电科112 指导老师:张婧婧 姓名:刘建国 学号:114633222

基于8086的交通信号控制器的设计报告摘要: 这次课程设计,我们的任务是:基于8086的交通信号控制器的设计。8086系统是我们这个学期学习的主线方向,我们将在8086系统的基础上完成交通信号控制器的设计,其具体功能是:1.显示十字路口东西、南北2个方向的红、黄、绿的指示状态。2.实现正常的倒计时功能。用2组数码管作为东西和南北方向的倒计时显示,显示时间为红灯30s,绿灯50s,黄灯5s。3.按S1键能实现特殊的功能,显示倒计时的2组数码管闪烁,计数器停止计数并保持在原来的状态;东西、南北路口均显示红灯状态;特殊状态解除后能继续计数。4.按S2键实现总体清零功能。计数器由初始状态计数,对应的指示灯亮。 关键词:8086系统 74154 74HC373 8255A LED交通灯

(一) 1) 设计目的 交通信号控制灯是日常交通不可缺少的工具,涉及到人们的人生和财产安全,在道路行驶上起了相当关键的作用,因而设计交通信号控制灯是非常有意义的。同时我们这次设计的课题就是“基于8086交通信号控制器的设计”,基于以上目的,我利用一周时间精心设计出课题要求的交通灯。 2) 设计思想 在此次设计过程中,我们选择了数码管、发光二极管、74LS138、74LS373、8255A和8086来控制实现交通灯按设计要求工作。 3)硬件部分 1、LED设计说明: 用LED作为倒计时时间的显示器,LED在亮度、功耗、可视角度和刷新速率等方面,都更具优势。LED与LCD的功耗比大约为10:1,利用LED技术,可以制造出比LCD更薄、更亮、更清晰的显示器,LED是发光二极管属于二极管的一种,LCD是液晶显示器,两者相差太多.但是用LED的点阵也能组成显示器,适用于户外大屏幕显示,分辨率较低,LED与LCD具体比较如下图 表1-1:LCD与LED的比较 2、8255设计说明: 用8255A可编程并行接口芯片的A、B、C三口作为红、绿、黄交通灯的控制输入口。8255有三个并行输入输出口,可以方便的对三种颜色的交通灯进行很好的控制。解决方案是:PB0~PB7接模拟灯二极管,PA0~PA7接7段二极管的段选,PC0~PC3接7段二极管的位选,PC4~PC7与开关相连,处理器芯片集成芯片卡PCI卡连接,用于完成硬件方面的实验正常通信。其芯片比较说明:如下表: 表1-2:8255A与8251芯片的比较

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来表示。

交通灯实验报告——数字电路

一、用中规模器件设计交通灯控制器 一、任务要求 1)通过数字电路的设计,在面包板上模拟交通红绿灯。要求分主干道和支干道,每条道上安装红(主R,支r)绿(主G,支g)黄(主Y,支y)三种颜色的灯,由四种状态自动循环构成(G、r→Y、r→R、g→R、y); 2)在交通灯处在不同的状态时,设计一计时器以倒计时方式显示计时,并要求不同状态历时分别为:G、r:30秒;R、g:20秒;Y、r,R、y:5秒。 二、总体方案 三、单元电路设计 1)主控电路 在设计要求中要实现四种状态的自动转换,首先要把这四种状态以数字的形态表示出来。因2*2=4,所以可以两位二进制数表示所需状态(00—G、r, 01—Y、r, 10—R、g, 11—R、y),循环状态:(00—10—11—01—00) 数字电路课程中介绍的计数器就是通过有限几个不同状态之间的循环实现不同模值计数,由此可以尝试设计一模值为4的计数器,其输出(代表不同状态)既可以循环转换,而且能够控制其他部分电路。在课程设计中本人利用74LS74(双上升沿D触发器)设计模4计数器作为主控部分电路。 主控电路图如下:

红绿灯显示电路接线如下: 4)计时部分电路 a)计时器状态产生模块: 设计要求对不同的状态维持的时间不同,而且要以十进制倒计时显示出来。限于实验 室器材本人采用两个74LS161完成计时器状态产生模块设计。 设计思路: 要以十进制输出,而又有一些状态维持时间超过10秒,则必须用两个74LS161分别 产生个位和十位的数字信号。显然,计数器能够完成计时功能,我们可以用74LS161设计, 并把它的时钟cp接秒脉冲。74LS161计数器是采用加法计数,要想倒计时,则在74LS161 输出的信号必须经过非门处理后才能接入数码管的驱动74LS48,而在显示是最好以人们 习惯的数字0---9显示计时,故在设计不同模值计数器确定有效状态时,本人以0000,0001,0010-----1111这些状态中靠后的状态为有效状态。 例如:有效状态1011—1100—1101—1110—1111 取反0100—0011—0010—0001—0000即4------3------2-------1------0实现模5的倒计时。 在将74LS161改装成其他模值时既可以采用同步清零法,也可采用异步置数法,但 0000不可能为有效状态,所以采用异步置数法完成不同模值转化的实现。 首先对控制个位输出的74LS161设计: 按要求对系统的状态不同,即红绿灯的状态不同,个位的进制也就要求不同。本人利 用系统的状态量Q 2、Q 1 控制74LS161的置数端D 3 D 2 D 1 D 。当系统处在G、r或R、g状态时, 个位的进制是十(模10),即逢十进一,当系统处在Y、r或R、y状态时,个位的进制是 五(模5),即逢五进一,模10时,有效状态为0110-----1111,置D 3D 2 D 1 D 为0110,模5

交通灯设计-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秒

EDA交通灯实验报告

实验:交通灯设计 一、设计任务及要求: 设计任务:模拟十字路口交通信号灯的工作过程,利用实验板上的两组红、黄、绿LED作为交通信号灯,设计一个交通信号灯控制器。要求: (1)交通灯从绿变红时,有4秒黄灯亮的间隔时间; (2)交通灯红变绿是直接进行的,没有间隔时间; (3)主干道上的绿灯时间为40秒,支干道的绿灯时间为20秒; (4)在任意时间,显示每个状态到该状态结束所需的时间。 主干道 图1 路口交通管理示意图 设计要求: (1)采用VHDL语言编写程序,并在QuartusII工具平台中进行仿真,下载到EDA实验箱进行验证。 (2)编写设计报告,要求包括方案选择、程序清单、调试过程及测试结果。 二、设计原理 1、设计目的: 学习DEA开发软件和QuartusII的使用方法,熟悉可编程逻辑器件的使用。通过制作来了解交通灯控制系统,交通灯控制系统主要是实现城市十字交叉路口红绿灯的控制 2、设计说明

(1)第一模块:clk时钟秒脉冲发生电路 在红绿灯交通信号系统中,大多数情况是通过自动控制的方式指挥交通的。 因此为了避免意外事件的发生,电路必须给一个稳定的时钟(clock)才能让系统正常运作。 模块说明: 系统输入信号: Clk: 由外接信号发生器提供256的时钟信号; 系统输出信号: full:产生每秒一个脉冲的信号; (2)第二模块:计数秒数选择电路 计数电路最主要的功能就是记数负责显示倒数的计数值,对下一个模块提供状态转换信号。 模块说明: 系统输入:full: 接收由clk电路的提供的1HZ的时钟脉冲信号; 系统输出信号:tm:产生显示电路状态转换信号 tl:倒计数值秒数个位变化控制信号 th:倒计数值秒数十位变化控制信号 (3)第三模块:红绿灯状态转换电路 本电路负责红绿灯的转换。 模块说明: 系统输入信号:full: 接收由clk电路的提供的1hz的时钟脉冲信号; tm: 接收计数秒数选择电路状态转换信号; 系统输出信号:comb_out: 负责红绿灯的状态显示。 (4)第四模块:时间显示电路 本电路负责红绿灯的计数时间的显示。 模块说明: 系统输入信号:tl:倒计数值秒数个位变化控制信号; th:倒计数值秒数十位变化控制信号; 系统输出信号:led7s1: 负责红绿灯的显示秒数个位。 led7s2:负责红绿灯的显示秒数十位。 三、设计方案

通过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开发板上进行验证。 七、实验器材(设备、元器件)

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 交通灯系统示意图

红绿灯实验报告

红绿灯实验报告 上海交通大学材料科学与工程学院 实验目的: 通过Labview程序设计做出十字路口红绿灯的计算机模拟。 程序原理: 整体思路: 用户将纵向红灯时间t纵红、纵向黄灯时间t纵黄、纵向绿灯时间t纵绿输入完毕后,程序会将这三段时间相加作为一个循环的时长T,并把时间计数器的时间除以1000取整数部分,再用这个结果除以T取余数得到当前循环已进行的时间t,取整数得到已进行的循环次数n。为了简便起见,程序默认t横黄等于t纵黄。根据实际经验可知: 机动车道部分: t纵红= t横黄+ t横绿 t横红= t纵黄+ t纵绿 人行道部分: t纵红= t横绿= 机动车道部分t纵红 t横红= t纵绿= 机动车道部分t横红 因此,我们可以采用判断时间区间的办法控制各个指示灯的亮灭,即:令纵向红灯时间区间为[ 0,t 纵红 ]、纵向黄灯时间区间为[ t纵红 + t纵绿,T ]、纵向绿灯时间区间为[ t纵红,t纵红 + t纵绿 ]、横向红灯时间区间为[ t纵红,T ]、横向黄灯时间区间为[ t横绿,t纵红 ]、横向绿灯时间区间为[ 0,t横绿 ],利用判定范围元件判断t所符合的区间。当t符合某些红灯或绿灯的区间时,指定元件将布尔量直接输出到信号灯,从而点亮这些红灯或绿灯并保持其他红灯或绿灯不工作;当t符合黄灯的区间时,利用相应元件得到黄灯已工作的时间,并将其除以2取余数,判断余数是否等于0,将布尔量输入信号灯,达到让黄灯闪烁的目的。 显然,各对指示灯时间区间均不相同,但是同一方向上三种颜色的指示灯的时间区间相加正好可以构成一个完整的循环,所以某一确定方向上有且仅有一种颜色的交通灯在工作。另外,本程序通过控制时间区间,完美地实现了不同方向上指示灯的协同工作,很好地模拟了实际情况。 另外,程序利用while循环以及移位寄存器实现连续运行。根据时间计数器的性质,每计时1000毫秒就会自动停止一次,所以本程序的设计中,每次循环里时间计数器只运行1000毫秒,通过不停地循环实现程序的连续运行。将移位寄存器赋以初始值1,而开始计时的时候n = 0。当二者不相等时,利用元件把此时移位寄存器的数值再次寄存并继续循环;当二者相等后,利用元件把移位寄存器此时的数值加1后寄存并继续循环,则二者又不相等了,元件就会把此时移位寄存器的数值再次寄存并继续循环。依此类推,则程序就会连续运行下去,不会终止。 程序设计方案: 当前循环已进行的时间t和已进行的循环次数n的获取: 加入一个时间计数器。由于时间单位是毫秒,而用户输入的时间单位是秒,因此需要转换单位:把计数的时间用“商与余数”元件除以1000取整数部分,即可将毫秒转化为秒。记此结果为t0,然后把t纵红、t纵黄和t纵绿用复合运算元件相加得到T,再用“商与余数”元件将t0除以T取余数即可得到当前循环已进行的时间t,取整数即为已进行的循环次数n。 机动车道指示灯部分:

基于VerilogHDL的交通灯控制器设计

目录 第一章设计原理 (1) 1.1设计要求 (1) 1.2设计思路和原理 (1) 1.3实现方法 (1) 第二章Verilog 程序设计 (2) 2.1整体设计 (2) 2.2 具体设计 (3) 第三章仿真 (7) 3.1 波形仿真 (7) 第四章设计总结 (9) 4.1 总结 (9) 4.2参考资料 (9) 程序清单 (10)

交通灯控制器设计 第一章 设计原理 1.1设计要求 设计一个交通控制器,用LED 显示灯表示交通状态,并以7段数码显示器显示当前状态剩余秒数 主干道绿灯亮时,支干道红灯亮;反之亦然,二者交替允许通行,主干道每次放行35s ,支干道每次放行25s 。每次由绿灯变为红灯的过程中,亮光的黄灯作为过渡,黄灯的时间为5s 。能进行特殊状态显示,特殊状态时东西、南北路口均显示红灯状态。用LED 灯显示倒计时,并且能实现总体清零功能,计数器由初始状态开始计数,对应状态的显示灯亮。 1.2设计思路和原理 本次设计是针对十字路口,进行南北和东西直行情况下交通灯控制。设定东西方向为主干道方向,根据交通灯的亮的规则,在初始状态下四个方向的都为红灯亮启,进入正常工作状态后,当主干道上绿灯亮时,支干道上红灯亮,持续35S 后,主干道和支干道上的黄灯都亮启,持续5S 后,主干道上红灯亮启,支干道上绿灯亮启持续25S ,之后主干道和支干道上的黄灯都亮启5s ,一个循环完成。循环往复的直行这个过程。其过程如下图所示: 0s 30s 25s 主干道方向 支干道方向 图1.交通灯点亮时间控制说明 1.3实现方法 本次采用文本编辑法,即利用Verilog 语言描述交通控制器,通过状态机计数法,实现设计所要求的交通灯控制及时间显示。设计中用两组红黄绿LED 模拟两个方向上的交通灯,用4个7段数码管分别显示两个方向上的交通灯剩余时间,控制时钟由试验箱上频率信号提供。

交通灯实验报告

学校代码:11460 南京晓庄学院本科生毕业综合设计 交通灯控制系统设计 traffic light control system design 院系:物理与电子工程学院 专业: 电子信息科学与技术 成员:郁艇妹(08409244) 周纬璐(08409247) 交通灯控制系统设计实验 一.设计目的 1. 通过本次课程设计进一步熟悉和掌握单片机的结构及工作原理,巩固和加深“单片 机原理与应用”课程的基本知识,掌握电子设计知识在实际中的简单应用。 2. 综合运用“单片机原理与应用”课程和先修课程的理论及生产实际知识去分析和解决 电子设计问题,进行电子设计的训练。 3. 学习电子设计的一般方法,掌握at89c52芯片以及简单电子设计过程和运行方式, 培养正确的设计思想和分析问题、解决问题的能力,特别是总体设计能力。 4. 通过计算和绘制原理图、布线图和流程图,学会运用标准、规范、手册、图册和查阅 有关技术资料等,培养电子设计的基本技能。 5. 通过完成一个包括电路设计和程序开发的完整过程,了解开发单片机应用系统全过程, 为今后从事的工作打基础。 二.设计要求 1.利用单片机的定时器定时,实现道路的红绿灯交替点亮和熄灭。 2.以at89c52单片机为核心,设计一个十字路口交通灯控制系统。用单片机控制led灯 模拟交通信号灯显示。假定东西、南北方向方向通行(绿灯)时间为25秒,缓冲(黄灯)时 间5秒,停止(红灯)时间35秒。 3.南北方向、东西方向车道除了有红、黄、绿灯指示外,每一种灯亮的时间都用显示器 进行显示(采用计时的方法)。 三.实验原理 1.基本原理 主体电路:交通灯自动控制模块。这部分电路主要由80c51单片机的i/o端口、定时计 数器、外部中断扩展等组成。 本设计先是从普通三色灯的指示开始进行设计,用p1口作为输出。程序的初始化是东西 南北方向的红灯全亮。然后南北方向红灯亮,东西方向绿灯亮,60秒后东西方向黄灯闪亮5 秒后南北方向绿灯亮,东西方向红灯亮。重复执行。倒计时用到定时器t0,用p2口作为led 的显示。二位一体的led重复执行60秒的倒计时。作为突发事件的处理,本设计主要用到外 部中断ex0。用一模拟开关作为中断信号。实际中可以接其它可以产生中断信号的信号源。 2.芯片at89c52 at89c52是一个低电压,高性能cmos 8位单片机,片内含8k bytes的可反复擦写 的flash只读程序存储器和256 bytes的随机存取数据存储器(ram),器件采用atmel 公司的高密度、非易失性存储技术生产,兼容标准mcs-51指令系统,片内置通用8位中央处 理器和flash存储单元,功能强大的at89c52单片机可为您提供许多较复杂系统控制应 用场合。 at89c52有40个引脚,32个外部双向输入/输出(i/o)端口,同时内含2个外中断口, 3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,at89c52可以按照常规

用verilog语言编写交通灯程序

交通灯 一、实验目的 写一个交通灯,要求: ①有东西南北四个方向,两组交通灯轮流交替变换,其中,红灯时间为30 个时间单位,绿灯时间为25个时间单位,黄灯时间为5个时间单位。最后用modelsim软件进行仿真。 ②要求设计是一个可综合设计。 二、实验原理 根据实验要求的逻辑功能描述,可以分析得出原理图如下: 根据实验要求画出控制器的状态转移图如下:

三、代码 1、源代码 (1)控制器模块 module traffic_lights(clk,rst,count,ew,sn); input clk,rst; input[5:0] count; output[2:0] ew,sn; reg[2:0] ew,sn; reg[3:0] state; parameter Idle=3'b000,s1=3'b001,s2=3'b010,s3=3'b011,s4=3'b100; always @(posedge clk) if(!rst) begin state<=Idle; end else casex(state) Idle: if(rst) begin state<=s1; end s1: if(count=='d25) begin state<=s2; end s2: if(count=='d30) begin state<=s3;

end s3: if(count=='d55) begin state<=s4; end s4: if(count=='d60) begin state<=s1; end endcase always @(posedge clk) begin if(!rst) begin ew<=3'b100; sn<=3'b100; end else casex(state) Idle: if(rst) begin ew<=3'b100; sn<=3'b001; end s1: if(count=='d25) begin ew<=3'b100; sn<=3'b010; end

红绿灯实验报告

微机原理与接口技术实 验报告 综合实验红绿灯仿真及实现 专业:电气工程及其自动化班级:电气1311 学号: 201301001206 姓名:龚玉辛 预习报告成绩:实验成绩: 实验日期及时间:(1) 2016年5月20日 (2) 2016年5月26日 (3) 机位号:

一实验一:在Proteus仿真实现交通信号灯系统。 (1)交通信号灯系统设计描述(实现内容) a)在DATAS 数据段内可以任意初始化红灯,绿灯,黄灯所要 显示的秒数,实现通用化。。 b)紧急情况下按下按钮,所有红灯亮,数显管全部显示0 c)紧急情况解除后,恢复正常,用另一个按钮(8259中断) (2)P roteus中实现原理图 所用元件:7SEG-BCD、74LS138、74LS373、8086、8253A、8255A、 8259、BUTTON、LED-GREEN、LED-YELLOW、LED-RED. (3)源程序清单 DATAS SEGMENT hong DB 55 lv dW 52 huang db 2h,1h,0h z=$-huang zt1 db? zt2 db?

ZT3 DB? DATAS ENDS STACK SEGMENT'STACK' SUR1 DB 1000 DUP(?) STACK ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS START: MOV AX,DATAS MOV DS,AX CLI PUSH DS mov al,80h mov dx,8006H OUT DX,AL MOV DX,0A006H MOV AL,00110001B OUT DX,AL MOV DX,0A000H MOV AL,00 OUT DX,AL MOV AL,10 OUT DX,AL MOV AX,0 MOV DS,AX MOV DI,4*60H MOV AX,OFFSET NEXT2 MOV [DI],AX MOV AX,SEG NEXT2 MOV [DI+2],AX mov ax,0 mov ds,ax MOV DI,4*61H MOV AX,OFFSET NEXT1 MOV [DI],AX MOV AX,SEG NEXT1 MOV [DI+2],AX

Verilog语言实现设计交通灯控制器

Verilog语言实现设计交通灯控制器 实验模块组成: (计数器+控制器)可以分开实现,最好一起实现避免接口对接时出错 译码器 实验要求: 1.在十字路口两个方向各设一组红、绿、黄灯,显示顺序为: 南北方向是绿、黄、红灯;东西方向是红、绿、黄灯。 2.要求红、绿、黄灯的持续时间分别为:10s、7s、3s,东西、南北方向各用一 个数码管显示倒计时时间。 3.当任意方向出现特殊情况时,应优先放行,即使各方向均亮红灯,倒计时停 止,且显示数字闪烁。经过规定时间之后,恢复正常运行状态。 //计数器+控制器 module ZTJ(clk,s,count1,count2,led); parameter s0=6'b010100,s1=6'b001100,s2=6'b100010,s3=6'b100001,s4=6'b100100; inputclk,s; output[3:0]count1; output[3:0]count2; output[5:0]led; reg[3:0]count1; reg[3:0]count2; reg[5:0]led; reg[5:0]st; reg[5:0]jicun; reg[3:0]i; always @(posedgeclk) if(s==0 & led==6'b000000) begin led<=s0; st<=s0; count1<=4'b0110; count2<=4'b1001; end else if(s==0 & led!=6'b000000) begin case(st) s0:if(count1!=4'b0000) begin led<=s0;count1<=count1-1;count2<=count2-1;end else begin count1<=4'b0010;st<=s1;end s1:if(count1!=4'b0000) begin led<=s1;count1<=count1-1;count2<=count2-1;end else begin

plc红绿灯实验报告

plc红绿灯实验报告 篇一:PLC交通灯实验报告 十字路口交通灯控制的模拟实验报告 一、实验目的 1、熟练使用各基本指令,定时器,计数器,内部指令等。 2、根据控制要求,掌握PLC的编程方法和程序调试方法。 3、掌握交通灯的实验设计与三菱PLC的连线方法。 二、实验要求 交通灯模拟控制实验区中,下框中的南北红、黄、绿灯R、Y、G分别接主机的输出点Y2、Y1、Y0,东西红、黄、绿灯R、Y、G分别接主机的输出点Y5、Y4、Y3,模拟南北向行驶车的灯接主机的输(本文来自:小草范文网:plc红绿灯实验报告)出点Y6,模拟东西向行驶车的灯接主机的输出点Y7;下框中的SD接主机的输入端X0。上框中的东西南北三组红绿黄三色发光二极管模拟十字路口的交通灯。 信号灯受一个启动开关控制,当启动开关接通时,信号灯系统开始空座,且先南北红灯亮,东西绿灯亮。当启动开关断开时,所有信号灯都熄灭。 南北红灯亮维持25秒,在南北红灯亮的同时东西绿灯也亮,并维持20秒。到20秒时,东西绿灯闪亮,闪亮3秒后熄灭。在东西绿灯熄灭时,东西黄灯亮,并维持2秒。到2秒时,东西黄灯熄灭,东西红灯亮,同时,南北红灯熄灭,

绿灯亮。 东西红灯亮维持30秒。南北绿灯亮维持25秒,然后闪亮3秒后熄灭。同时南北黄灯亮,维持2秒后熄灭,这时南北红灯亮,东西绿灯亮。周而复始。 1 三、程序设计步骤 1、过程分析: 过程一:东西向车行驶 2、设置定时器 当司机看到红灯变为绿灯的时候需要有时间反应,启动车辆等。因此在车子行驶和交通灯变化之间设置1s的间隔。 ②设置T22、T222、T221、T223的原因是: T2和T7只能控制交通灯的闪亮时间,并不能使其控制。 T22一个定时器并不能同时控制东西绿灯与南北绿灯的闪烁,要分别设置控制器,所以通过T22、T222的分别作用,使东西绿灯与南北绿灯分别在高、低电平交替的时候闪亮。 2 4、按照设置的I/O分配进行接线。 5、打开PLC实验箱和实验面板上的电源开关,将预先编好的实验程序写入计算机,再下载到PLC中。下载时,RUN/STOP开关拨到STOP位置。 6、下载完毕后,将RUN/STOP开关拨到RUN状态,若程序无逻辑错误则主机上的RUN运行指示灯亮,否则出错指示

Verilog交通灯

实验报告 班级:微电2班 组员:刘家豪门珺 学号:11180102

目录 一、概述 (4) 二、任务功能 (5) 三.系统设计 (5) 1.工作原理 (5) 2.系统设计方案 (6) 四、程序设计 (7) 1.verilog源程序 (7) 2.设备选择 (11) 3引脚绑定 (12) 五、结束语 (13)

一:概述 HDL(Hardware Description Language,硬件描述语言)是一种描述硬件所做工作的语言。目前,电子系统向集成化、大规模和高速度等方向发展,以硬件描述语言和逻辑综合为基础的自顶向下的电路设计方法在业界得到迅猛发展,HDL在这种形势下显示出了巨大的优势,展望将来HDL在硬件设计领域的地位将与C和C++在软件设计领域地位一样,在大规模数字系统的设计中,它将逐步取代传统的逻辑状态表和逻辑电路图等硬件描述方法而成为主要的硬件描述工具。 Verilog HDL是工业和学术界的硬件设计者所使用的两种主要的HDL之一,另一种是VHDL。现在它们都已成为IEEE标准。两者各有特点,但Verilog HDL 拥有更悠久的历史、更广泛的设计群体,资源也远比VHDL丰富,且非常容易学习掌握。 Quartus简介: Quartus II 是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL 以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。

verilog_HDL交通灯控制电路

青岛农业大学 理学与信息科学学院 电子设计自动化及专用集成电路课程设计 报告 设计题目__________ 用状态机设计交通灯控制器___________ 学生专业班级_____ 通信工程2008级1班 _______________ 学生姓名(学号)孙鹏飞(20082715)_____________ 扌旨导教师________________ 刘金梅_____________________ 完成时间2011-9-9 ________________________ 实习(设计)地点工程楼405 __________________ 2011年9月9日

、课程设计目的和任务 课程设计目的:本次课程设计是在学生学习完数字电路、模拟电路、电子设 计自动化的相关课程之后进行的。通过对数字集成电路或模拟集成电路的模拟与 仿真等,熟练使用相关软件设计具有较强功能的电路, 提高实际动手,为将来设 计大规模集成电路打下基础。 课程设计任务:设计一个交通控制器,用 LED 显示灯表示交通状态,并以 7 段数码显示器显示当前状态剩余秒数 主干道绿灯亮时,支干道红灯亮;反之亦 然,二者交替允许通行,主干道每次放行 35s ,支干道每次放行25s 。每次由绿 灯变为红灯的过程中,亮光的黄灯作为过渡,黄灯的时间为 5s o 能进行特殊状 态显示,特殊状态时东西、南北路口均显示红灯状态。用 LED 灯显示倒计时,并 且能实现总体清零功能,计数器由初始状态开始计数,对应状态的显示灯亮。 二、分析与设计 1、设计任务分析 本次设计是针对十字路口,进行南北和东西直行情况下交通灯控制。 设定东 西方向为主干道方向,根据交通灯的亮的规则,在初始状态下四个方向的都为红 灯亮启,进入正常工作状态后,当主干道上绿灯亮时,支干道上红灯亮,持续 35S 后,主干道和支干道上的黄灯都亮启,持续 5S 后,主干道上红灯亮启,支 干道上绿灯亮启持续25S ,之后主干道和支干道上的黄灯都亮启 5s ,一个循环完 成。循环往复的直行这个过程。其过程如下图所示: 图1?交通灯点亮时间控制说明 2、设计方案论证 主干道方向 支干道方向

相关文档
相关文档 最新文档