交通灯EDA课程设计

发布 2022-09-30 21:41:28 阅读 2155

eda交通灯设计。

学院:信息工程学院。

班级: 学号:

姓名: 目录。

第一章设计原理 1

第二章设计流程 2

第三章程序设计说明 3

3.1 程序设计流程图 3

3.2 分频模块 3

3.3 特殊功能及清零模块 4

3.4 交通灯运行模块 4

3.5 扫描显示模块 6

第四章**及调试 8

4.1调试步骤 8

第五章总程序设计 9

参考文献 15

摘要:verilog hdl作为一种规范的硬件描述语言,被广泛应用于电路的设计中。他的设计描述可被不同的工具所支持,可用不同器件来实现。

本设计选用了目前应用较为广泛的verilog hdl 硬件描述语言。

verilog hdl提供了简单实用的状态机语句,在设计时把它和实验箱结合起来控制扫描显示交通灯的运**况。其原理框图如图1:

图1通过外部时钟控制整个交通灯的运行,先将外部时钟经过分频电路变为周期1hz的时钟,以这个时钟来控制各个路口灯的亮灭及时间显示。即和计数器结合起来,每一秒钟计数器计一次数并传送给扫描模块显示输出。当计数器达到设定的最大值便清零,相应的灯的状态便改变,如此反复。

至于复位和特殊功能的实现皆是通过单独的时钟翻转来控制,本设计中采用置数的方法来实现。当需要的时候直接将对应的时钟置为高电平即可,再置为低电平时从一开始的状态显示。

当控制开关打开后,主干路和支干路的灯暂时不显示,等待初始化信号。待信号来临后,两路灯均开始显示。其中,主干路红灯和支干路绿灯先亮,待主干路红灯显示35秒后,绿灯开始显示,20s后黄灯显示,黄灯显示5s后红灯再一次点亮,如此循环。

支干路绿灯亮了30s后黄灯点亮,5s后红灯点亮,红灯显示25s后绿灯再一次点亮,如此循环。其流程图如下图2所示:

图2流程图如图3:

图3通过提供一个60hz的外部时钟wclk,经过分频得到一个1hz的时钟clk。其程序如下:

always @(posedge wclk)

beginif(enn)

beginclk=0;

endelse begin

if(dout==29)

beginclk=~clk;

dout<=0;

endelse dout<=dout+1;

endend

通过计数器计数,当计数器从零计到29时clk翻转,即clk每0.5秒翻转一次,产生一个周期为1秒的时钟。

通过外部赋予高电平将交通灯清零或者实现特殊功能,其程序如下:

always @(posedge clk)

beginif(rest)

beginstatea<=a;

atra<=0;

jt1<=3'b000;

endelse if(tclk)

beginstatea<=a;

jt1<=3'b001;

endend

当清零信号rest来临时交通灯全部灭掉,当特殊功能信号为高电平时交通灯黄灯亮,其余全灭。

利用分频得到的1hz时钟clk来控制交通灯的运行,当复位和特殊功能信号均为低电平时,通过en给系统复初值,而后en变为低电平。此时,当检测到clk上升时钟沿时,交通灯通过状态机的选择实现各个路口红、黄、绿灯的点亮以及计时。

always @(posedge clk)

begin

if(rest)

beginstateb<=d;

btra<=0;

jt2<=3'b000;

endelse if(tclk)

beginstateb<=d;

jt2<=3'b001;

endelse if(en)

beginbtra<=8'b00101001;

stateb<=d;

endelse case (stateb)

d:if(btra==0)

beginbtra<=8'b00000100;

stateb<=e;

jt2<=3'b010;

endelse begin

jt2<=3'b100;

if(btra[3:0]==0)

beginbtra[3:0]<=4'b1001;

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

endelse begin

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

endend

e:if(btra==0)

beginbtra<=8'b00100100;

stateb<=f;

jt2<=3'b001;

endelse begin

jt2<=3'b010;

if(btra[3:0]==0)

beginbtra[3:0]<=4'b1001;

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

endelse begin

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

endend

f:if(btra==0)

beginbtra<=8'b00101001;

stateb<=d;

jt2<=3'b100;

endelse begin

jt2<=3'b001;

if(btra[3:0]==0)

beginbtra[3:0]<=4'b1001;

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

endelse begin

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

endend

endcase

end用实验箱实现数字的扫描输出显示,sel0和 sel1为实验箱提供的数码管显示驱动,通过原理图法从外部引一个扫描时钟(本实验用15.6khz),与74161连接控制sel0和 sel1的分频。其中,sel0为2分频而sel1为4分频,从而在一个扫描周期内sel0和 sel1的值从00变化到10,再从10变化到00,即数码管逐个循环往复显示输出。

always @(sel0 or sel1)

begincase()

2'b00:begin a<=atra[3:0]; end

2'b01:begin a<=atra[7:4];end

2'b10:begin a<=btra[3:0]; end

2'b11:begin a<=btra[7:4];end

endcase

case(a)

4'b0000: led7s<=7'b0111111;

4'b0001: led7s <=7'b0000110 ;

4'b0010: led7s <=7'b1011011;

4'b0011: led7s <=7'b1001111;

4'b0100: led7s <=7'b1100110 ;

4'b0101: led7s <=7'b1101101;

4'b0110: led7s <=7'b1111101 ;

4'b0111: led7s <=7'b0000111 ;

4'b1000: led7s <=7'b1111111 ;

4'b1001: led7s <=7'b1101111 ;

endcase

end1. 建立工作库文件夹和编辑设计文件

菜单操作:file—new,在new窗口中,device design files—verilog hdl file产生。v文件。

在verilog hdl文本编辑器中输入源程序。

文件存盘:文件名应该与模块名一致。

2. 创建工程

菜单操作:file—new project wizard,根据实验箱提供的器件型号选择目标器件:epf10k10lc84-4,创建工程产生。gpf文件。

3. 全程编译

菜单操作:processing—start compilation 或

4. 画原理图

1) 用原理图新建顶层文件,并建立工程, file—new—block diagram/schematic file。

2)将转换成元件符号(元件文件的后缀为。bsf)

3).新建文件。

4).file—create/-update—create symbol files for current file,fx元件可以在高层次设计中调用。

5)在顶层原理**件中调用jtd元件,并完成设计。

5. 编译。

6. 时序**。

7. 引脚锁定

菜单操作:assignments—pins,并连接线。

8. 保存并编译。

9. 配置文件**

菜单操作:tools—programmer 或按弹出hardware setop窗口;按弹出add hardware窗口,按选择**接口,按 , 选中文件*.sof ,并使有效,按使文件*.

sof**到目标器件中。

module jtd (atra,jt1,btra,jt2,en,enn,a,led7s,clk,wclk,dout,tclk,rest,sel0,sel1);

output[7:0]atra,btra,dout;

output clk;

output[2:0] jt1,jt2;

output [6:0] led7s;

output [3:0]a;

input tclk,rest,wclk,en,enn;

input sel0,sel1;

reg clk;

reg[7:0]atra,btra,dout;

reg [6:0] led7s;

reg[2:0] jt1,jt2;

reg [3:0]a;

reg[3:0]statea,stateb;

parameter a=4'b0001,b=4'b0010,c=4'b0100,d=4'b1001,e=4'b1010,f=4'b1100;

always @(posedge wclk)

beginif(enn)

beginclk=0;

endelse begin

if(dout==29)

beginclk=~clk;

dout<=0;

endelse dout<=dout+1;

EDA课程设计 交通灯

交通信号灯控制电路设计。1 概述。城市道路交叉口是城市道路网络的基本节点,也是网络交通流的瓶颈。目前,大部分无控制交叉口都存在高峰小时车流混乱 车速缓慢 延误情况严重 事故多发 通行能力和服务水平低下等问题。特别是随着城市车流量的快速增长,城市无控制道路交叉口的交通压力越来越大。因此,做好基于eda...

EDA交通灯课程设计

学院 电气与信息工程学院。1.东西各设有一个绿 黄 红指示灯 一个2位7段数码管。1 南北和东西方向各有一组绿,黄,红灯,各自的持续时间分别为20s,5s,25s 2 当有特殊情况时,两个方向均为红灯,计时暂停,当特殊情况结束后,控制器恢复原来状态,继续正常工作。3 用两组数码管,以倒计时方式显示两...

EDA交通灯课程设计

1.简要说明。在十字路口,每一条道路各有一组红 黄 绿灯和倒计时显示器,用以指挥车辆和行人有序的通行。其中,红灯亮表示该道路禁止通行 黄灯表示停车 绿灯表示可以通行 倒计时显示器是用来显示允许通行或禁止通行的时间。交通灯控制器就是用于自动控制十字路口的交通灯和计时器,指挥各种车辆和行人安全通行。2....