数字电路课程设计交通灯控制FPGA 纯硬件电路综述.docx

上传人:b****9 文档编号:29129091 上传时间:2023-07-20 格式:DOCX 页数:19 大小:191.67KB
下载 相关 举报
数字电路课程设计交通灯控制FPGA 纯硬件电路综述.docx_第1页
第1页 / 共19页
数字电路课程设计交通灯控制FPGA 纯硬件电路综述.docx_第2页
第2页 / 共19页
数字电路课程设计交通灯控制FPGA 纯硬件电路综述.docx_第3页
第3页 / 共19页
数字电路课程设计交通灯控制FPGA 纯硬件电路综述.docx_第4页
第4页 / 共19页
数字电路课程设计交通灯控制FPGA 纯硬件电路综述.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

数字电路课程设计交通灯控制FPGA 纯硬件电路综述.docx

《数字电路课程设计交通灯控制FPGA 纯硬件电路综述.docx》由会员分享,可在线阅读,更多相关《数字电路课程设计交通灯控制FPGA 纯硬件电路综述.docx(19页珍藏版)》请在冰豆网上搜索。

数字电路课程设计交通灯控制FPGA 纯硬件电路综述.docx

数字电路课程设计交通灯控制FPGA纯硬件电路综述

数电课内实验报告

 

课程名称:

数字电子技术基础

项目名称:

交通灯控制(实验箱+CPLD)

学院:

电子信息学院

专业:

电子信息工程

学号:

13061223

学生姓名:

罗飞

完成时间:

2015.6.20

 

1、实验目的

1、问题重述:

本实验为综合实验。

要求设计一个十字交叉路口的交通灯控制电路,使交通灯符合交通规则,保证路口交通通畅。

任务1:

交通灯控制器设计,设计一个十字交叉路口(分别为A,B通道)的交通灯控制电路。

设A,B通道各有红绿黄三种灯,交通灯显示情况为:

(1)A通道绿灯,B通道红灯;

(2)A通道黄灯,B通道红灯;

(3)A通道红灯,B通道绿灯;

(4)A通道红灯,B通道黄灯。

要求交通灯自动显示:

(1)—>

(2)—>(3)—>(4),其中

(1),(3)持续20秒,

(2),(4)持续4秒。

任务2:

设A,B通道各有红绿(包括直行和右转G1,左转G2)黄四种灯,交通灯显示情况为:

(1)A通道绿灯,G1持续20秒,然后G2持续20秒,B通道红灯,共40秒;

(2)A通道黄灯闪烁,闪烁频率1Hz,B通道红灯,共4秒;

(3)A通道红灯,B通道绿灯,G1持续20秒,然后G2持续20秒,共40秒;

(4)A通道红灯,B通道黄灯闪烁,闪烁频率1Hz。

要求交通灯自动显示:

(1)—>

(2)—>(3)—>(4),并且A,B通道有数码管进行倒计时计数。

提示:

数码管倒计时可以采用LPM参数库里面的计数器,也可以采用一般计数器结构模型。

2、问题剖析:

在这个实验中,分为两个任务:

按照任务要求实时控制A,B通道的红黄绿三种交通灯的亮灭;用数码管对AB通道进行倒计时计数。

 

二、项目构思

任务一:

其中,AG为A通道绿灯,AY为A通道黄灯,AR为A通道红灯,BG为B通道绿灯,BY为B通道黄灯,BR为B通道红灯。

①,采用DFF实现周期为1秒的时钟信号变成4秒的时钟分频电路。

②,采用74LS290或74LS160(注:

可以多块芯片)计数器实现计数分频电路(输入信号为CLK4S,输出为Y1和Y2)。

其中CLK4S,Y1,Y2的波形如下:

③,根据Y1和Y2信号及其A,B通道各个指示灯的时序,采用与非门实现AG,AY,AR,BG,BY,BR。

假设每个指示灯都为高电平时才亮。

④,A,B通道的黄灯应有闪烁功能,闪烁频率1Hz。

修改AY,BY的电路。

任务二:

方案一:

使用case语句实现

分为三个倒计时计数模块,模分别为24,20,4,在从中提取个位,十位信号输出数码管显示。

方案二:

使用74LS192逆序计数芯片实现

运用74192芯片搭建预置数分别为9,3,3的逆序计数(实际计数中对应的模分别为20,4,24)采用低电平置数LDN信号在计数到0时进行置数进入下一倒计时环节。

2、方案设计与仿真结果

1.系统简介:

该系统运用74LS161,74LS192等数字电路基本计数器芯片和quartusII软件的verilog语句设计了一个十字交叉路口的交通灯控制电路,并且对A,B通道有数码管进行倒计时计数。

2.各模块具体设计:

任务一:

①采用DFF实现周期为1秒的时钟信号变成4秒的时钟分频电路。

仿真结果:

②采用4LS161计数器实现计数分频电路(输入信号为CLK4S,输出为Y1和Y2)。

I.输出信号Y1电路原理图:

II.输出信号Y2电路原理图:

仿真结果:

 

③,根据Y1和Y2信号及其A,B通道各个指示灯的时序,采用与非门实现AG,AY,AR,BG,BY,BR。

假设每个指示灯都为高电平时才亮。

AG=Y1’Y2’AY=Y1Y2’AR=Y2

BG=Y1’Y2BY=Y1Y2BR=Y2’

实验原理图:

其中,黄灯闪烁是通过1s时钟信号和结果实现与运算的方法得到。

仿真结果:

 

任务二:

方案一:

case语句实现

通过两级宏模块实现:

1.顶层电路:

 

2.交通灯倒计时A通道模块

其中,DAOJISHI模块源程序为:

moduleDAOJISHI(A,Reg);

input[7:

0]A;

output[7:

0]Reg;

reg[7:

0]Reg;

always@(A,Reg)

case(A)

8'B01000101:

Reg<=8'B01000100;

8'B01000100:

Reg<=8'B01000011;

8'B01000011:

Reg<=8'B01000010;

8'B01000010:

Reg<=8'B00100000;

8'B00100000:

Reg<=8'B00011001;

8'B00011001:

Reg<=8'B00011000;

8'B00011000:

Reg<=8'B00010111;

8'B00010111:

Reg<=8'B00010110;

8'B00010110:

Reg<=8'B00010101;

8'B00010101:

Reg<=8'B00010100;

8'B00010100:

Reg<=8'B00010011;

8'B00010011:

Reg<=8'B00010010;

8'B00010010:

Reg<=8'B00010001;

8'B00010001:

Reg<=8'B00010000;

8'B00010000:

Reg<=8'B00001001;

8'B00001001:

Reg<=8'B00001000;

8'B00001000:

Reg<=8'B00000111;

8'B00000111:

Reg<=8'B00000110;

8'B00000110:

Reg<=8'B00000101;

8'B00000101:

Reg<=8'B00000100;

8'B00000100:

Reg<=8'B00000011;

8'B00000011:

Reg<=8'B00000010;

8'B00000010:

Reg<=8'B00000001;

8'B00000001:

Reg<=8'B11000100;

8'B11000100:

Reg<=8'B11000011;

8'B11000011:

Reg<=8'B11000010;

8'B11000010:

Reg<=8'B11000001;

8'B11000001:

Reg<=8'B10100100;

8'B10100100:

Reg<=8'B10100011;

8'B10100011:

Reg<=8'B10100010;

8'B10100010:

Reg<=8'B10100001;

8'B10100001:

Reg<=8'B10100000;

8'B10100000:

Reg<=8'B10011001;

8'B10011001:

Reg<=8'B10011000;

8'B10011000:

Reg<=8'B10010111;

8'B10010111:

Reg<=8'B10010110;

8'B10010110:

Reg<=8'B10010101;

8'B10010101:

Reg<=8'B10010100;

8'B10010100:

Reg<=8'B10010011;

8'B10010011:

Reg<=8'B10010010;

8'B10010010:

Reg<=8'B10010001;

8'B10010001:

Reg<=8'B10010000;

8'B10010000:

Reg<=8'B10001001;

8'B10001001:

Reg<=8'B10001000;

8'B10001000:

Reg<=8'B10000111;

8'B10000111:

Reg<=8'B10000110;

8'B10000110:

Reg<=8'B10000101;

8'B10000101:

Reg<=8'B10000100;

8'B10000100:

Reg<=8'B10000011;

8'B10000011:

Reg<=8'B10000010;

8'B10000010:

Reg<=8'B10000001;

8'B10000001:

Reg<=8'B00100000;

defaultReg<=8'B01000101;

endcase

endmodule

注:

其中A[7],A[6]位用来表示的交通灯的颜色,A[5..0]用来表示交通灯的倒计时显示数值B,作为系统的输出,其中A[5,4]输出十位数码管,A[3..0]输出个位数码管。

A[7]

A[6]

交通灯

0

0

AG

1

1

AY

1

0

AR

 

A[5..0]状态图为:

 

1

···

4

1

···

19

20

23

24

···

1

 

DFF8的电路图为:

 

3.交通灯倒计时B通道模块

原理图:

DAOJISHIB源程序:

moduleDAOJISHIB(B,RegB);

input[7:

0]B;

output[7:

0]RegB;

reg[7:

0]RegB;

always@(B,RegB)

case(B)

8'B01000101:

RegB<=8'B01000100;

8'B01000100:

RegB<=8'B01000011;

8'B01000011:

RegB<=8'B01000010;

8'B01000010:

RegB<=8'B10100100;

8'B10100100:

RegB<=8'B10100011;

8'B10100011:

RegB<=8'B10100010;

8'B10100010:

RegB<=8'B10100001;

8'B10100001:

RegB<=8'B10100000;

8'B10100000:

RegB<=8'B10011001;

8'B10011001:

RegB<=8'B10011000;

8'B10011000:

RegB<=8'B10010111;

8'B10010111:

RegB<=8'B10010110;

8'B10010110:

RegB<=8'B10010101;

8'B10010101:

RegB<=8'B10010100;

8'B10010100:

RegB<=8'B10010011;

8'B10010011:

RegB<=8'B10010010;

8'B10010010:

RegB<=8'B10010001;

8'B10010001:

RegB<=8'B10010000;

8'B10010000:

RegB<=8'B10001001;

8'B10001001:

RegB<=8'B10001000;

8'B10001000:

RegB<=8'B10000111;

8'B10000111:

RegB<=8'B10000110;

8'B10000110:

RegB<=8'B10000101;

8'B10000101:

RegB<=8'B10000100;

8'B10000100:

RegB<=8'B10000011;

8'B10000011:

RegB<=8'B10000010;

8'B10000010:

RegB<=8'B10000001;

8'B10000001:

RegB<=8'B00100000;

8'B00100000:

RegB<=8'B00011001;

8'B00011001:

RegB<=8'B00011000;

8'B00011000:

RegB<=8'B00010111;

8'B00010111:

RegB<=8'B00010110;

8'B00010110:

RegB<=8'B00010101;

8'B00010101:

RegB<=8'B00010100;

8'B00010100:

RegB<=8'B00010011;

8'B00010011:

RegB<=8'B00010010;

8'B00010010:

RegB<=8'B00010001;

8'B00010001:

RegB<=8'B00010000;

8'B00010000:

RegB<=8'B00001001;

8'B00001001:

RegB<=8'B00001000;

8'B00001000:

RegB<=8'B00000111;

8'B00000111:

RegB<=8'B00000110;

8'B00000110:

RegB<=8'B00000101;

8'B00000101:

RegB<=8'B00000100;

8'B00000100:

RegB<=8'B00000011;

8'B00000011:

RegB<=8'B00000010;

8'B00000010:

RegB<=8'B00000001;

8'B00000001:

RegB<=8'B11000100;

8'B11000100:

RegB<=8'B11000011;

8'B11000011:

RegB<=8'B11000010;

8'B11000010:

RegB<=8'B11000001;

8'B11000001:

RegB<=8'B10100100;

defaultRegB<=8'B01000101;

endcase

endmodule

状态转移图:

注:

其中B[7],B[6]位用来表示的交通灯的颜色,B[5..0]用来表示交通灯的倒计时显示数值B,作为系统的输出,其中B[5,4]输出十位数码管,B[3..0]输出个位数码管。

B[7]

B[6]

交通灯

0

0

BG

1

1

BY

1

0

BR

 

B[5..0]状态图为:

 

1

···

20

1

···

13

24

3

4

···

1

 

仿真结果:

其中,A1表示A通道十位数码管显示数值

A2表示A通道个位数码管显示数值

B1表示B通道十位数码管显示数值

B2表示B通道个位数码管显示数值

 

方案二:

在方案二中完全采用中规模数字电路器件,实现交通灯的倒计时显示,运用到74LS192逆序计数芯片。

电路设计:

A通道个位用一块74LS192实现模分别为20,4,24的逆序计数的计数器,用LDN脉冲序列作为置数信号每隔20,4,24秒产生一个低电平脉冲选通置数。

LDN选通置数信号产生电路(模为48的计数器):

个位显示仿真结果如下:

十位显示思路同个位,从略。

B通道逆序计数的模为24=>20=>4,原理同A,从略。

 

3、实验结果分析

任务一中,按照要求实现了十字交叉路口A,B两个通道的交通灯控制显示。

A通道绿灯持续亮20秒,然后黄灯闪烁4秒,然后红灯亮持续24秒。

B通道红灯持续亮24秒,然后绿灯持续亮20秒,然后黄灯闪烁4秒。

任务二中,方案一中通过verilog组建倒计时宏模块的方法实现了A,B两个通道的交通灯倒计时显示功能,并在数电实验箱和CPLD板上得到实现。

方案二采用74ls192逆序计数芯片实现。

A通道倒计时显示:

20—>···1—>4—>···—>1—>24—>···—>1

B通道倒计时显示:

24—>···1—>20—>···—>1—>4—>···—>1

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1