交通灯控制电路数电课程设计.docx

上传人:b****1 文档编号:10766108 上传时间:2023-05-27 格式:DOCX 页数:20 大小:649.91KB
下载 相关 举报
交通灯控制电路数电课程设计.docx_第1页
第1页 / 共20页
交通灯控制电路数电课程设计.docx_第2页
第2页 / 共20页
交通灯控制电路数电课程设计.docx_第3页
第3页 / 共20页
交通灯控制电路数电课程设计.docx_第4页
第4页 / 共20页
交通灯控制电路数电课程设计.docx_第5页
第5页 / 共20页
交通灯控制电路数电课程设计.docx_第6页
第6页 / 共20页
交通灯控制电路数电课程设计.docx_第7页
第7页 / 共20页
交通灯控制电路数电课程设计.docx_第8页
第8页 / 共20页
交通灯控制电路数电课程设计.docx_第9页
第9页 / 共20页
交通灯控制电路数电课程设计.docx_第10页
第10页 / 共20页
交通灯控制电路数电课程设计.docx_第11页
第11页 / 共20页
交通灯控制电路数电课程设计.docx_第12页
第12页 / 共20页
交通灯控制电路数电课程设计.docx_第13页
第13页 / 共20页
交通灯控制电路数电课程设计.docx_第14页
第14页 / 共20页
交通灯控制电路数电课程设计.docx_第15页
第15页 / 共20页
交通灯控制电路数电课程设计.docx_第16页
第16页 / 共20页
交通灯控制电路数电课程设计.docx_第17页
第17页 / 共20页
交通灯控制电路数电课程设计.docx_第18页
第18页 / 共20页
交通灯控制电路数电课程设计.docx_第19页
第19页 / 共20页
交通灯控制电路数电课程设计.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

交通灯控制电路数电课程设计.docx

《交通灯控制电路数电课程设计.docx》由会员分享,可在线阅读,更多相关《交通灯控制电路数电课程设计.docx(20页珍藏版)》请在冰点文库上搜索。

交通灯控制电路数电课程设计.docx

交通灯控制电路数电课程设计

第一章设计指标……………………………………....2

设计指标……………………………………………………………

第二章系统概述……………………………………..

2.1设计思想…………………………………………………………..

2.2可行性论证…………………………………………….

2.3各功能的组成………………………………………………………

2.4总体工作过程………………………………………………………

第三章单元电路设计与分析……………………………

3.1各单元电路的选择………………………………………………

3.2设计及工作原理分析………………………………………………

第四章电路的组构与调试…………………………………...

4.1遇到的主要问题…………………………………………………..

4.2现象记录及原因分析…………………………………………….

4.3解决措施及效果…………………………………………………

4.4功能的测试方法、步骤、设备、记录的数据……………………

第五章结束语……………………………………………………

5.1对设计题目的结论性意见及进一步改进的意向说明…………..

5.2总结设计的收获与体会………………………………………….

附图(电路总图)………………………………………………………

参考文献……………………………………………………………

 

第一章设计指标:

时序逻辑电路具有记忆功能,含有有限状态的时序电路被称为“状态机”,其特点是电路状态按一定的规律周期性循环变化。

交通灯控制电路是一个典型的有限状态机控制电路,交通干路道口的红、绿、黄三色灯根据不同的控制要求有规律周期性亮灭变化,各灯的亮灭持续时间也因干道的繁忙程度有所不相同。

所以交通灯控制电路必须对状态变化规律和状态持续。

设计一个十字路口交通灯控制电路,要求东西、南北两条干道的红、绿、黄三色的交通灯按如下表的要求循环变化,并以倒计时的方式指示干道通行(或禁行)的维持时间。

设计的控制部分以FPGA实现,用6个发光二极管模拟东西、南北两个方向的红、绿、黄交通灯。

用2个七段数码显示器显示干道的通行(禁行)时间。

表一交通灯控制要求

东西(I)

绿灯亮

绿灯闪

黄灯亮

红灯亮

红、黄灯亮

南北(J)

红灯亮

红、黄灯亮

绿灯亮

绿灯闪

黄灯亮

时间/s

16

3

3

10

3

3

附加实验:

在原有基本实验的基础上,增加东西转弯、南北转弯的红、绿、黄三色的交通灯,其逻辑如下表所示,按照下表的要求循环变化。

设计的控制部分以FPGA实现,用12个发光二极管模拟东西、南北、东西转弯、南北转弯的红、绿、黄交通灯。

用2个七段数码显示器显示干道的通行(禁行)时间。

表二转弯灯控制要求

东西(I)

绿灯亮

绿灯闪

黄灯亮

绿转弯灯亮

黄转弯灯亮

红灯亮

红黄灯亮

红灯亮

红灯亮

南北(J)

红灯亮

红黄灯亮

红灯亮

红灯亮

绿灯亮

绿灯闪

黄灯亮

绿转弯灯亮

黄转弯灯亮

时间/s

16

3

3

7

3

10

3

3

7

3

 

第二章系统概述

2.1设计思想

基于FPGA的交通灯系统控制设计包括4大模块,分别为脉冲发生、状态定时、交通灯闪烁的控制、闪烁时间的控制,基本原理如图1所示。

2.2可行性论证

该设计的交通灯控制分为6个状态。

由于各状态持续时间不同,所以电路的核心控制部分是状态机和定时器,状态机在定时器触发下周期性循环,状态码控制6个灯以一定的规律变化。

变化情况如图2所示。

   

系统脉冲由FPGA开发板晶振经过分频电路实现。

状态定时由74190可逆十进制计数器和T’触发器实现,只要置数合理,翻转信号到位,就可以使电路在东西(I)、南北(J)两个控制状态间翻转。

红、黄、绿灯的闪烁由7485数字比较器和组合逻辑控制,其中7485数字比较器用于比较计数器当前持续状态和所需要的状态全部时间,并做出相应的变化。

组合逻辑控制由AHDL文件编写真值表实现。

时间显示由AHDL文件编写真值表实现,输入正确的逻辑,七段译码电路即能得到正确的时间显示。

2.3各功能的组成

整个电路可以分为4大部分,包括脉冲发生、状态定时、时间显示和数字比较一组合逻辑控制。

2.3.1脉冲发生

脉冲发生器为整个系统提供驱动,将输入端分配给FPGA实验板的PIN55引脚,则会由实验板上产生频率为10MHz的输入脉冲,用7片7490,每一级都构成10分频电路产生1MHZ,100KHZ,10KHZ,1KHZ,100HZ,10HZ,1HZ7种占空比为50%的脉冲信号,根据不同的需要连接不同的频率。

2.3.2状态定时

状态定时可由预置BCD码初值的74190级联实现,构成减计数器。

级联原则是:

低位计数器从全0状态变为最大码值状态时可使高位计数器减1。

级联方式分为异步和同步两种,本文采取的是异步级联方式,即低位计数器溢出信号控制高位计数器的记数脉冲输入端。

可根据计数器的时钟触发方式,在低位计数器状态码从全“0”变为最大码值的瞬间,为高位计数器提供有效的计数脉冲边沿。

具体做法是将低片位的溢出信号RCON端口接到高片位的计数脉冲CLK,实现两位BCD码的置数、翻转和借位,使系统表示的数字能在22~16之间循环。

74190功能说明:

(1)GN为计数器使能控制端,低电平有效。

当GN为高电平时,禁止计数。

(2)DNUP为计数方式控制,接高电平为减计数,接低电平为加计数。

(3)LDN为异步预置数控制。

当LDN为低电平时,计数器状态QD,QC,QB,QA分别等于D,C,B,A。

(4)计数器位序由高至低顺序为QD,QC,QB,QA。

QD为最高位MSB,QA为最低位LSB。

(5)计数脉冲CLK上升沿有效。

(6)当计数器输出QDQCQBQA为十进制加计数的最大状态码“1001”或为减计数的最小状态码全“0”时,极值状态码指示MAX/MIN输出为高电平。

(7)当极值状态码指示MAX/MIN为高电平且CLK为低电平时,溢出信号RCON为低电平,即RCON与计数脉冲同步。

2.3.3时间显示

时间显示模块主要运用的是动态扫描显示技术。

动态扫描显示主要用到的模块有数据选择,分频器,计数器以及七段显示译码。

本实验中数据选择用的是74153M选择器,分频器是本实验开头设计的多分频模块。

74153M:

GN为使能端,C0,C1,C2,C3为四个输入端,A,B为地址控制端,Y输出的为C0C1C2C3中的其中一个,A,B端与分配器相连接。

2.3.4数字比较器

该模块将状态定时模块输出的时间与时间节点进行比较,从而确定电路处于22s或者16s的具体的某个状态。

由表1可知,东西(I)或南北(J)的控制状态都有3个阶段的控制逻辑,分别对应3个时间段:

1~3s,4~6s和大于6s,因此,采用数字比较器进行比较,确定定时值小于4s或大于6s,方法如图3所示,采用4片7485数字比较器,两两级联,其中一个由状态定时模块的输出与4即二进制0100比较;另一个由状态定时模块的输出与6即二进制0110比较。

图3

4总体工作状态

系统脉冲由FPGA开发板晶振经过分频电路实现。

状态定时由74190可逆十进制计数器和T’触发器实现,置数合理,翻转信号到位,电路在东西(I)、南北(J)两个控制状态间翻转。

红、黄、绿灯的闪烁由7485数字比较器和组合逻辑控制,其中7485数字比较器用于比较计数器当前持续状态和所需要的状态全部时间,并做出相应的变化。

组合逻辑控制由AHDL文件编写真值表实现。

时间显示由AHDL文件编写真值表实现,输入正确的逻辑,七段译码电路得到正确的时间显示。

第三章单元电路设计与分析

3.1脉冲发生

电路的选择:

7490的介绍:

7490是二-五-十进制加数器,片上有一个二进制计数器和一个异步五进制计数器,其器件符号如图4所示。

图中QA是二进制计数器的输出,QB~QD为五进制计数器输出,位序从高到低是D、C、B。

 

图4

图5

设计原理及分析:

CLKA和CLKB分别是两个计数器的脉冲输入端,下降沿触发有效。

CLRA和CLRB是两个计数器的复位清零端,同为高电平有效;SET9A和SET9B分别是两个计数器的置9控制端,当同为高电平时,QD、QC、QB、QA被预置为“1001”。

74LS90逻辑功能表如图5所示。

十分频的线路连接:

根据7490的逻辑功能表,我们按照图6所示连接线路,即可实现倍率为10,占空比为50%的脉冲信号。

图6

用QuartusII仿真波形如图7所示

图7

 

多状态分频器的实现:

将图6的十分频线路用QuartusII打包做成一个模块,通过级联能够分别形成1HZ,10HZ,100HZ,1KHZ,10KHZ,100KHZ,1MHZ,10MHZ共8种脉冲信号。

具体在QuartusII的线路连接如图8所示

图8

3.2状态定时

电路的选择:

 

图9

 

图10

利用QuartusII仿真1622计数器后的波形如图10所示:

运用2片74190级联,一个接1HZ的时钟脉冲,用两片74190的溢出信号MAX/MIN来控制2个芯片的LDN端,利用高位的MAX/MIN端充当T’触发器的时钟脉冲信号,用触发器的输出S来控制要预置的数的BCD码,实现跳跃。

T’触发器用T触发器来实现,T触发器的特征方程为:

Q(N+1)=TQ’(N)+T’Q(N).只需要在T端上链接一个VCC高电平,就能做成一个T’触发器。

1.下片的74190代表的是高4位,MX/MN输出经过反相器,再经过T触发器,分别到高位的B,A和低位的C,当S为0时,预置的是22,计数的是16;当S为1时,预置的是16,计数的是22.

2.两片74190都接高电位VCC,表明是减计数。

3.高低片的MX/MN端的与非门输出作为LDN的控制信号时,只有到2个74190的MX/MN端都是1时才有效,实现异步预置数。

设计原理及分析:

系统记数脉冲为1Hz时,如表2所示,当I状态(东西控制状态)的定时时间为22s,计数器应该先预置22的BCD码;同理,J状态(南北控制状态)之前应该预置16的BCD码。

状态计时电路由两片74190级联而成,构成22和16自翻转的电路。

其要解决的核心问题包括置数,翻转和借位。

根据74190芯片的特点,可分析其实现原理如图4所示,通过溢出信号RCON的上升沿实现借位,使得数字能够从20到19,个位向十位借位,顺利过渡。

置数和翻转之间有先后关系,即须先置数后翻转。

如表3所示,分析两个BCD码各位特点,可知两者D7D6D3D0位均为1,D1位均为0,而D5D4D2位不同,如图5,D5D4D2位由状态电平S来控制,当为I状态时,计数器的预置的数为D5=0,D4=D2=1,而为J状态时,计数器的预置的数为D5=1,D4=D2=0,根据74190的功能,将2片74190的MAX/MIN引出,通过与非门,分别连在高位和低位的LDN置数端,通过分析可知,当计数器从01减到00时候,高低位的MAX/MIN均为高电平,经过与非门以后为低电平,74190被置数,其置数值由状态S来决定,S是由LDN端信号经过一个T’触发器决定的,即LDN信号每置数一次,S翻转1次,从而区分16和22状态。

按这个结构,可分别置数16和22,使其实现自翻转。

3.3时间显示

电路的选择:

 

设计原理及分析:

从图11中可以看到,输入的10MHZ经过分频器之后输送到4个74153M的A端,B端和接地端接GND,8个0,1输入来控制输入的数据大学,7448译码器的ABCD端将得到“0000,0001,0010,0011,0100,0101,0110,0111,1000,1001,1010,1011,1100,1101,1110,1111”这16个状态,而因为本实验只需要0000到1001这10个数字灯状态码,所以只需要讲这10个状态码经过7448译码器,输入到FPGA上已经设置好的芯片接脚即可。

3.4数字比较一组合逻辑控制

电路的选择:

 

设计原理及分析:

该模块讲状态定时模块输出的时间与时间节点进行比较,从而确定电路出于22s或者16s的具体的某个状态。

如图1所示,东西(I)或者南北(J)的控制状态都有3个阶段的控制逻辑,分别对应3个时间段:

1~3s,4~6s已经大于6s的,因此,采用数字比较器进行比较,确定比较数分别为4和6。

因出现大于10的数,所以采用的是两位BCD码的状态码,即8位二进制码,采用四位4位数字比较器7485级联进行比较。

此实验中,因为需要比较的是4和6,所以高位的4位全置为“0”,低位分别置为4的BCD码(0100)和6的BCD码(0110)。

输出译码器的编译:

输出编码器的功能是将状态码译为6个开关量信号控制两个干道的6个交通灯。

当状态码按六进制加计数码分配时,译码电路应实现如下图的3输入、6输出的组合逻辑函数,当采用6个触发器实现一对一码(单位码、独热吗)状态机时,可由各位状态码输出直接综合实现6个灯的控制。

根据实验要求,分别取ER,EY,EG,SR,SY,SG代表I红,I黄,I绿,J红,J黄,J绿。

编写组合逻辑真值表,讲状态信号S,两个数字比较器的输出Y1,Y2和1HZ,脉冲作为输入,各灯的状态作为输出。

从逻辑关系得出对应时间电路的状态,控制红、黄、绿灯处于不同的状态。

S判断电路处于22S状态还是16s状态,Y1,Y2区分东西、南北六个阶段,1HZ时间绿灯的闪烁。

利用CLK来控制灯的闪烁。

逻辑真值表如下

SUBDESIGNRGY

data_in[3..0]:

INPUT;

ER,EY,EG,SR,SY,SG:

OUTPUT;

BEGIN

TABLE

data_in[3..0]=>ER,EY,EG,SR,SY,SG;

b"0011"=>0,0,1,1,0,0;

b"1011"=>0,0,1,1,0,0;

b"0001"=>0,0,0,1,0,0;

b"1001"=>0,0,1,1,0,0;

b"0101"=>0,1,0,1,1,0;

b"1101"=>0,1,0,1,1,0;

b"0010"=>1,0,0,0,0,1;

b"1010"=>1,0,0,0,0,1;

b"0000"=>1,0,0,0,0,0;

b"1000"=>1,0,0,0,0,1;

b"0100"=>1,1,0,0,1,0;

b"1100"=>1,1,0,0,1,0;

ENDTABLE;

END;

第四章电路的组构与调试

4.1遇到的主要问题

1在使用7490器件连线制作十分频时,在进行仿真的时候,没有波形输出。

2在使用多个十分频器件制作分频器时,8个脉冲输出在打包完的器件上不是按从大到小的顺序依次排列的。

3不知道如何使16—22计数器自动翻转。

4在仿真16—22计数器的时候发现,波形没有进行16—22的翻转,一直维持在16.

5在最后下载好之后,进行检查发现有几个发光二级管都不亮。

6七段共阴显示器上的时间的倒数计时,从22,21,20,19,18…变成了22,21,20,12,11..仔细观察了之后发现,所有应该显示9的都显示2,8变成了1,而其他的数都是正确的。

7采用AHDL的真值表方式设计一个输出译码逻辑,仿真不成功。

4.2现象记录及原因分析

1问题:

在使用7490器件连线制作十分频时,在进行仿真的时候,没有波形输出。

原因分析:

在重新复习了数电书及有关7490的知识后,我发现是自己搞错了哪个是二进制计数器的输出,哪些是五进制计数器的输出,将脉冲输入端CLKB连接到了输出端QA上。

2问题:

在使用多个十分频器件制作分频器时,8个脉冲输出在打包完的器件上不是按从大到小的顺序依次排列的。

原因分析:

输出端的排序不是按照大小排序的,而是按照电路图上的输出端的物理位置的高低排序的。

3问题:

不知道如何使16—22计数器自动翻转。

原因分析:

在仔细看了实验书P123页的图3-2-4后发现T’触发器能使计数器不断翻转。

4问题:

在仿真16—22计数器的时候发现,波形没有进行16—22的翻转,一直维持在16.

原因分析:

计数器的预制操作必须先于触发器的状态转换,我设计是没有注意两者的时序问题。

5问题:

在最后下载好之后,进行检查发现有几个发光二级管都不亮。

原因分析:

我发现有反应的发光二极管都是对的,那么我的设计思路大致是没问题,连线也因准确的。

再仔细检查之后发现,和总线相连的几个引线的[括号打成了{,没有注意。

6原因:

七段共阴显示器上的时间的倒数计时,从22,21,20,19,18…变成了22,21,20,12,11..仔细观察了之后发现,所有应该显示9的都显示2,8变成了1,而其他的数都是正确的。

原因分析:

在检查了16-22计数器后发现,将定时器的两条引脚搞反

7问题:

采用AHDL的真值表方式设计一个输出译码逻辑,编译错误。

原因分析:

编写ADHL时候,编写的文件名要和里面的命名一样,不然会出现编译错误。

4.3解决措施及效果

1在使用7490器件连线制作十分频时,在进行仿真的时候,没有波形输出。

解决措施:

将7490的五进制计数器的位序最高端输出连接到计时器的脉冲输出端CLKB上。

CLKA为输入,QA为输出。

效果:

仿真时果真形成了倍率为10,占空比为50%的脉冲信号。

2在使用多个十分频器件制作分频器时,8个脉冲输出在打包完的器件上不是按从大到小的顺序依次排列的。

解决措施:

将分别标有1HZ,10HZ,100HZ,1KHZ,10KHZ,100KHZ,1MHZ,10MHZ的脉冲输入端在电路图上按照大小,大的放在上面,小的在下面。

效果:

打包完的分频器果然按照大小顺序输出。

3不知道如何使16—22计数器自动翻转。

解决措施:

S由LDN端信号经过一个T’触发器决定的,即LDN信号每置数一次,S翻转一次,从而区分16和22两个数。

按这个结构,可分别置数16和22,而且能够自动翻转切换。

4在仿真16—22计数器的时候发现,波形没有进行16—22的翻转,一直维持在16.

解决措施:

7490置数和翻转之间有先后关系,即须先置数后翻转。

分析后可知,两者D7D6D3D0位均为1,D1位均为0,只有D5D4D2不同。

D5D4D2位由状态电平S来控制,当为I状态时,计数器的预置数为D5=0,D4=D2=1,而当为J状态时,计数器的预置数为D5=1,D4=D2=0,根据74190的功能,将2片74190的MAX/MIN引出,通过与非门,分别连在高低位的LDN置数端,通过分析可知,当计数器从01见到00时候,高低点位的MAX/MIN均为高电平,经过与非门以后是低电平,74190被置数,其置数值由状态S来决定,S是由LDN端信号经过一个T’触发器决定的,即LDN信号每置数一次,S翻转一次,从而区分16和22两个数。

按这个结构,可分别置数16和22,而且能够自动翻转切换。

5在最后下载好之后,进行检查发现有几个发光二级管都不亮。

解决措施:

将和总线相连的引脚上标的字母仔细检查一下。

6七段共阴显示器上的时间的倒数计时,从22,21,20,19,18…变成了22,21,20,12,11..仔细观察了之后发现,所有应该显示9的都显示2,8变成了1,而其他的数都是正确的。

解决措施:

搞清楚定时器的输出端QA~QD哪个是高位,哪个是低位。

7问题:

采用AHDL的真值表方式设计一个输出译码逻辑,仿真不成功。

解决措施:

编写ADHL时候,编写的文件名和里面的命名一样

4.4功能的测试方法、步骤、设备、记录的数据

第五章结束语

总结设计的收获与体会

这次课程设计历时整整一个星期。

通过这一个星期的课程设计,我发现了自己的很多不足,自己知识的很多漏洞,看到了自己的实践经验还是比较缺乏,理论联系实际的能力还急需提高。

其次,我感到自己对知识的一知半解或者说不够细致,对于器件的输出的高低位序,不够了解,总是要查阅书本,在设计电路图的时候大大减慢了速度。

第三,此需要了解多个芯片的功能,各引脚的连接方法.不同的芯片起到不同的功能,但是更要注意,将芯片改装连接,会有不同的功能。

附图(电路总图)

 

附加试验转弯灯

第一章设计指标

在原有基本实验的基础上,增加东西转弯、南北转弯的红、绿、黄三色的交通灯,其逻辑如下表所示,按照下表的要求循环变化。

设计的控制部分以FPGA实现,用12个发光二极管模拟东西、南北、东西转弯、南北转弯的红、绿、黄交通灯。

用2个七段数码显示器显示干道的通行(禁行)时间。

表二转弯灯控制要求

东西(I)

绿灯亮

绿灯闪

黄灯亮

绿转弯灯亮

黄转弯灯亮

红灯亮

红黄灯亮

红灯亮

红灯亮

南北(J)

红灯亮

红黄灯亮

红灯亮

红灯亮

绿灯亮

绿灯闪

黄灯亮

绿转弯灯亮

黄转弯灯亮

时间/s

16

3

3

7

3

10

3

3

7

3

第二章设计概述

2.1设计思想同上

2.2可行性论证

该设计的交通灯控制分为8个状态。

由于各状态持续时间不同,所以电路的核心控制部分是状态机和定时器,状态机在定时器触发下周期性循环,状态码控制6个灯以一定的规律变化。

变化情况如图2所示。

   

系统脉冲由FPGA开发板晶振经过分频电路实现。

状态定时由74190可逆十进制计数器和T’触发器实现,只要置数合理,翻转信号到位,就可以使电路在东西(I)、南北(J)两个控制状态间翻转。

红、黄、绿灯的闪烁由7485数字比较器和组合逻辑控制,其中7485数字比较器用于比较计数器当前持续状态和所需要的状态全部时间,并做出相应的变化。

组合逻辑控制由AHDL文件编写真值表实现。

时间显示由AHDL文件编写真值表实现,输入正确的逻辑,七段译码电路即能得到正确的时间显示。

.

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

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2