EDA课程设计报告交通灯.doc
《EDA课程设计报告交通灯.doc》由会员分享,可在线阅读,更多相关《EDA课程设计报告交通灯.doc(22页珍藏版)》请在三一办公上搜索。
1、目录(ECJTU2008)一、方案分析与对比21.1方案分析21.2方案对比2二、整体设计论述4三、单元模块设计与仿真6 3.1时钟分频模块6 3.2交通灯控制及计时模块7 3.3扫描显示译码模块83.4顶层文件的编写及波形仿真10四、硬件实验方案及实验结果13 4.1硬件实验方案13 4.2实验结果14五、收获和体会15六、程序代码16一、 方案分析与对比1.1方案分析 通过分析课程设计的要求可以知道,所要设计的交通信号灯控制电路要能够适用于由一条主干道和一条支干道的汇合点形成的十字交叉路口,其主要功能是:主干道处于常允许通行的状态,支干道有车来时才允许通行;当支干道没有车通行时,主干道亮绿
2、灯,而支干道亮红灯,主、支干道的倒计时数码管不显示数字;当支干道有车通行时,进入了主干道和支干道交替通行的情况。 当进入到交替通行时,主干道每次放行45秒,支干道每次放行25秒。首先主干道通行45秒,并且主干道显示45秒的倒计时,此45秒内主干道亮绿灯,当45秒计时结束,主干道亮黄灯5秒,而且显示5秒倒计时,用于绿灯转为红灯作为过渡,使行驶中的车辆有时间停到禁行线外,在主干道亮绿灯和黄灯的50秒内,支干道亮红灯50秒,而且支干道显示50秒的倒计时。然后,当支干道亮红灯50秒结束时,主干道由黄灯转为红灯,并且主干道的红灯亮30秒,显示30秒的倒计时,在此过程中,支干道先亮绿灯25秒,显示25秒的
3、倒计时,25秒过后绿灯转为黄灯,而且黄灯亮5秒,显示5秒倒计时,用于绿灯转为红灯作为过渡,使行驶中的车辆有时间停到禁行线外。支干道通行结束后,主干道通行,以此交替。1.2方案对比方案一、用纯数字系统方式控制实现当支干道没有车通行时,只需要点亮主干道的绿灯和支干道的红灯,而且主、支干道的数码管不需要显示,则很容易实现。当支干道有车通行时,则进入交替通行的情况,交替通行一次所需要的时间是80秒,所以需要一个0到79循环计数的计时器,在不同的计数时间段里实现相应的功能。主干道:0到44秒亮绿灯,数码管从44倒计时到00;45到49秒亮黄灯,数码管从04倒计时到00;50到79秒亮红灯,数码管从29倒
4、计时到00。支干道:0到49秒,亮红灯,数码管从49倒计时到00;50到74秒,亮绿灯,数码管从24倒计时到00;75到79秒,亮黄灯,数码管从04倒计时到00。所以要根据0到79循环计数器的计数情况来控制主、支干道的红绿黄灯和50秒、45秒、30秒、25秒和5秒倒计时计数器的计数。方案二、用状态机控制交通灯的工作明显可以分成5个状态,如下表支干道是否有车状态实现功能支干道没车St0支干道亮红灯,主干道亮绿灯,数码管不显示。支干道有车St1主干道亮绿灯45秒,数码管显示45秒倒计时;支干道亮红灯,数码管显示从49秒倒计时到05秒。St2主干道亮黄灯5秒,数码管显示5秒倒计时;支干道亮红灯,数码
5、管显示从04秒倒计时到00秒。St3支干道亮绿灯25秒,数码管显示25秒倒计时;主干道亮红灯,数码管显示从29秒倒计时到05秒。St4支干道亮黄灯5秒,数码管显示5秒倒计时;主干道亮红灯,数码管显示从04秒倒计时到00秒。 把交通灯的工作分成五个状态,则写程序的时候思路就比较清晰,只要在相应的状态里完成相应的工作,控制好黄绿红灯和数码管的倒计时显示,而且把握好五个状态转换的条件。通过对比可以知道选用状态机能方便地实现,而方案一显得有些麻烦。二、整体设计论述根据题目要求的功能,可以把整体设计分为三个模块:分频模块,把2kHz的频率分成1Hz,1Hz用于倒计时计数的时钟信号,而2kHz则可以用于数
6、码管扫描显示的片选时钟信号;交通灯控制及倒计时(五个状态的控制)模块;数码管译码扫描显示模块。整体的系统框图如下:分频2kHz交通灯控制及倒计时主支干道红黄绿灯数码管倒计时显示支干道是否有车 七段译码 1Hz 位选 图2-1系统框架图分频模块就是把输入的2kHz时钟频率2000分频得到1Hz的频率用于数码管倒计时的时钟信号,其原理就是设计一个0到999循环计数的的计数器,当计数溢出,即计数到999时使输出量取反,则输出为0.5秒的高电平和0.5秒的低电平交替出现,就得到了1Hz的方波,作为秒倒计时的时钟信号。交通灯控制及倒计时模块就是五个状态的转换模块,是整个系统的核心模块,其五个状态分别st
7、0、st1、st2、st3、st4。其中st0是当支干道没有车通行的状态,st1是主干道绿灯亮45秒的状态,st2是主干道亮黄灯5秒的状态,st3是支干道亮绿灯25秒的状态,st4是支干道亮黄灯5秒的状态。当主干道亮绿灯和黄灯时,支干道都是亮红灯,当支干道亮绿灯和黄灯时,主干道都是亮红灯,并且主、支干道都会显示亮灯的倒计时时间,主、支干道的红黄绿灯用六个LED发光二极管代替。五个状态图如下:St1St2St4St3St0 Car为1且主干道绿灯倒计时结束 Car为0 Car为1 car为0 Car为0 car为1且主干道 Car为1 且支干道 黄灯倒计时结束 黄灯倒计时结束 Car为0 car
8、为0 Car为1且支干道绿灯倒计时结束图2-2状态图 数码管倒计时显示,是用四个一体的数码管,分别表示主干道和支干道的秒倒计时,所以是动态扫描显示,扫描的频率直接用2KHz的输入时钟频率。根据上面的思路分析最终得到的顶层文件原理图如下:图2-3顶层文件原理图三、单元模块设计与仿真3.1时钟分频模块时钟分频模块就是把输入的2kHz时钟频率2000分频得到1Hz的频率用于数码管倒计时的时钟信号,其原理就是设计一个0到999循环计数的的计数器,当计数溢出,即计数到999时使输出量取反,则输出为0.5秒的高电平和0.5秒的低电平交替出现,就得到了1Hz的方波,作为秒倒计时的时钟信号。时钟分频模块生成的
9、元件符号如下: clk2khz是频率为为2khz的输入时钟信号,clk1hz是经过2000分频后得到的频率为1hz方波的输出信号。图3-1 时钟分频模块仿真波形图如下:设置的end time是3s,输入clk2kHz是频率为2kHz的方波。T=1s图3-2 分频模块仿真波形图波形分析:开始时clk1hz为低电平,当计数器第一次计满时,clk1hz由低电平转为高电平,当计数器第二次计满时,clk1hz转为低电平。在这一过程中,clk1hz先后经历了500ms的低电平和高电平,恰好为一个周期1s,之后依次高低交替,得到频率为1Hz的方波。3.2交通灯控制及计时模块 此模块是整个系统的核心部分,主要
10、功能是完成五个状态的转换,并且在每个状态里完成相应的控制作用,即控制主干道和支干道的红黄绿灯的点亮和各自数码管倒计时显示。编程时主要是用一个进程语句,其敏感信号是时钟分频模块产生的1Hz时钟信号,进程里主要用case语句完成五个状态的控制,在每个状态里要控制主干道和支干道的红黄绿灯的点亮,而且要控制各自数码管倒计时的显示,并为扫描显示译码模块提供倒计时时间,同时要使每个状态结束时能顺利进入下一个状态。五个状态及相应的功能是:St0,支干道亮红灯,主干道亮绿灯,数码管不显示;St1,主干道亮绿灯45秒,数码管显示45秒倒计时;支干道亮红灯,数码管显示从49秒倒计时到05秒;St2,主干道亮黄灯5
11、秒,数码管显示5秒倒计时;支干道亮红灯,数码管显示从04秒倒计时到00秒;St3,支干道亮绿灯25秒,数码管显示25秒倒计时;主干道亮红灯,数码管显示从29秒倒计时到05秒;St4,支干道亮黄灯5秒,数码管显示5秒倒计时;主干道亮红灯,数码管显示从04秒倒计时到00秒。状态转换条件参照图2-2。此模块生成的元件符号如下:图3-3 交通灯控制及计时模块clk1hz是分频模块输出的1Hz的时钟信号,car是支干道是否有车的判断信号,one1、ten1、one2、ten2分别是主干道倒计时的个位和十位,支干道倒计时的个位和十位。r_a、g_a、y_a、r_b、g_b、y_b分别是主干道和支干道的红、
12、绿、黄灯控制信号。仿真波形如下:设置的end time为100ms,clk1hz为周期是1ms的方波(把周期缩小为的是可以缩小仿真的时间,方便波形的仿真)。 放大之后图34 交通灯控制及倒计时模块仿真波形图波形分析:当car为0时,状态为st0,此状态中主干道亮绿灯,支干道亮红灯,当car为1不变时,变为状态st1,之后进入st1-st2-st3-st4-st1的循环状态,在相应的状态里面也能正确地控制红黄绿灯点亮。将上图中下面太密的地方放大一段后,可以清楚地看到,在状态st1中,主干道进行着45秒的倒计时,而支干道进行着50秒的倒计时,两个倒计时在st0的状态中始终相差5秒。3.3扫描显示译
13、码模块此模块中含有七段数码管译码和扫描显示两个部分。七段译码可以使用case语句,将数码管要显示的数译成对应的七位二进制数,用来控制数码管的a、b、c、d、e、f、g的导通。主干道和支干道倒计时要用到4个数码管,且是四位一体的,则要使用扫描显示的方法:设计一个00到11循环计数的计数器,而且计数的时钟要比较大,选用输入的2KHz的时钟信号;当计数器计数为00时,选通第一个数码管,给它主干道倒计时个位的七段译码,当计数器计数为01时,选通第二个数码管,给它主干道倒计时十位的七段译码,当计数器计数为10时,选通第三个数码管,给它支干道倒计时个位的七段译码,当计数器计数为11时,选通第四个数码管,给
14、它支干道倒计时十位的七段译码,并以此循环扫描显示,达到人眼看上去四个数码管全显示的效果。此模块生成的元件符号如下:图3-5 扫描显示译码模块元件符号其中clk2khz是输入的扫描时钟信号。one1、ten1分别是主干道倒计时的个位和十位,one2、ten2分别是支干道倒计时的个位和十位,这四个信号都是有交通灯控制及倒计时模块输出的。Scan是四个数码管的片选信号,seg_7是七段译码输出信号。仿真波形如下:方便仿真设设置的end time为6ms,clk2khz周期为500us 当one和ten为10时对应的七段译码是0000000,使数码管不显示,用于支干道没有车的情况!图3-6 扫描显示译
15、码模块的波形仿真图波形仿真说明:为方便观察one1、ten1、one2、ten2及scan用的是无符号十进制数,当scan=0时显示one1,当scan=1时显示ten1,当scan=2时显示one2,当scan=3时显示ten2。Seg_7的从高到低七位分别对应数码管gfedcba七段。3.4顶层文件的编写及波形仿真 顶层文件就是将上述的三个模块进行例化,把它们连接起来组成一个整体。元件例化语句由两部分组成,第一部分是将一个现成的设计实体定义为一个元件,它的最简单表达式如下: component 元件名 is port (端口名表); end component 文件名;元件例化语句的第二部
16、分是此元件与当前设计实体中元件间及端口的连接说明,语句的表达式如下: 例化名:元件名 port map (端口名=连接端口名,.); 由顶层文件生成的元件符号如下:图3-7顶层文件生成元件符号clk_2k是外部输入的频率为2khz的时钟信号,car是判断支干道是否有车的输入信号。scan1.0是四位一体数码管的片选输出信号,seg_76.0是数码管的七段译码输出信号,ra、ga、ya、rb、gb、yb分别是主干道和支干道红、绿、黄灯的输出控制信号。顶层文件的波形仿真图如下:为了方便波形仿真,设置end time为1.2s,clk_2k是周期为5us的方波。图3-8 顶层文件波形仿真图仿真波形分
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 课程设计 报告 交通灯
链接地址:https://www.31ppt.com/p-4144056.html