简易交通灯控制电路(PPT32页)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

简易交通灯控制电路12电信2班刘超凡李莹设计要求设计思路及步骤仿真波形预期结果设计要求完成简单十字路口直行的交通灯控制电路设计。(1)十字路口,南北方向红:黄:绿为20s:5s:40s且可调;(2)工作时钟10hz;(3)各个方向的红黄绿等可用3个单色灯替代;(4)选做黄灯1hz闪烁;(5)完成全部流程:设计规范文档、模块设计、代码输入、功能仿真、约束与综合、布局布线、时序仿真、下载验证等。设计思路基本原理用Verilog实现十字路口简易交通灯控制原理。南北向红黄绿为20s:5s:40s工作时钟10hz黄灯1hz闪烁。Verilog语言被广泛的应用在电路设计中。它的设计描述可被不同的工具支持和实现。利用其自顶向下的设计方法来实现交通灯控制原理,使道路交通正常运转。程序总体设计系统时钟信号1hz时钟各个状态转变七段译码七段译码黄灯闪烁控制绿红亮65s黄闪5s分频时钟全局控制信号reset分频控制个位十位分频首先,输入的10Hz的系统时钟和全局控制端reset,输出为个位数字的七段译码,十位数字七段译码以及各个灯最后状态。然后由于系统时钟频率大,第一要进行分频,使其成为1Hz的时钟信号,第二利用分频后的时钟信号对电路进行控制,开始先对状态跳转进行控制,,用case语句控制三灯亮与灭,紧跟着进行倒计时的过程。第三输出个位和十位上的数即可,要显示倒计时是很容易实现的,直接用两个七段译码即可。最后要控制黄灯的闪烁,还是要先产生分频时钟,作为控制端,控制模块各灯亮与灭作为输入,即可产生黄灯闪烁的效果。另外,作为全局控制端,reset信号是清零用的,在有时钟信号的地方就有reset。时序图Enable=0,Status=1Enable=1Enable=1Enable=0,Status=1Enable=0,Status=1初始状态black第一个状态Green第三个状态Red第二个状态Yellow清零端为低Enable=1假设在0时刻,加上系统时钟,首先要进行reset清零,这时在控制模块的计数器会清零,三个灯都是灭的状态,控制状态跳转的使能端enable等于0,等待着清零结束,开始工作;七段译码也不会显示。在reset变低之后,系统开始正常工作。首先是分频时钟开始工作,在计数器达到第一个25000000之前,分频时钟都是低电位,到25000000的时候分频时钟的第一个上升沿来临,此时状态控制开始运转,先工作的是绿灯,它会经过从39到0的倒计时过程,同时译码模块也开始工作,颜色控制colour是100,表征绿灯的点亮,经七段译码,这个倒计时数字也会同步显示出来经过40s(也就是经过40*10个系统时钟上升沿之后)绿灯亮的时间到,会自动转到黄灯状态,黄灯是5到0的倒计时过程,译码的显示跟绿灯一样,只是黄灯的亮会加一个1Hz的时钟控-4-制端,1秒内只有半秒,黄灯是亮的,从5秒到4.5秒之间黄灯是亮的,然后4.5到3是灭的,如此继续下去,直到5秒结束。又经过5(5*10个系统时钟上升沿),状态转移到红灯,然后显示及七段译码过程与绿灯相似。至此一个周期已经完成,接下来就是循环执行以上步骤的过程,直到有reset清零端打断其正常工作。总体上分为三个大模块,即:顶层模块、控制模块、译码模块(包括显示模块)。顶层模块控制模块译码模块输入:sysclk10Hz(全局时钟信号)Reset(全局复位端,高电平有效)输出:color(最终各灯状态亮或闪)led_ctrl_1s(个位七段译码)led_ctrl_10s(十位七段译码时序说明:加上时钟信号之后,首先用reset清零,然后控制模块会分频产生分频时钟,根据分频时钟的高与低,会控制各个状态之间的跳转,译码模块会同步通过数码管来显示倒计时数,并且会根据译码模块黄灯闪亮控制端来输出各灯的具体状态。1)顶层模块:此模块只做例化,即对底层的控制模块和译码模块进行例化,而不做逻辑设计。2)控制模块:此模块是本程序的主体,主要是控制各个灯颜色(此模块并不控制黄灯的闪烁)的转换,以及倒计时时间输出输出分频系统时钟sysclk_10Hz分频时钟sub_clk_1Hz控制三个灯亮与灭倒计时各位倒计时十位Blackgreenredyellow控制输出输出Reset=040s之后5s之后20s之后输入:sysclk_10Hz全局时钟信号,10HzReset全局复位端,高电平有效输出:dout_1s倒计时个位上数字dout_10s倒计时十位上数字light_select各个灯状态light_select(只是控制亮与灭,不管黄灯闪烁)时序说明:首先还是加上系统时钟之后,用reset清零,则计数器清零、所有灯都不亮。但reset为1之后模块开始工作,首先是计数器开始计数,随之分频时钟会根据计数器的变化而周期变化,绿灯会先亮40秒,之后黄灯也会亮(闪烁在译码模块实现)5秒,然后就是红灯亮20秒,以后就是循环以上步骤的过程,同时在循环过程中,倒计数的数会同步输出,各灯亮与灭状态也会同步输出。3)译码模块:此模块主要有两个作用,控制黄灯闪烁以及对倒计时时间进行译码输出。输入输入输入产生控制系统时钟分频1Hz黄灯闪烁控制端绿灯黄灯红灯各灯状态倒计时个位,由控制模块输入倒计时十位,由控制模块输入七段译码器点亮对应数码管点亮对应数码管亮40s闪5s亮20s输入端口:sysclk_10Hz全局时钟信号,10Hzreset全局复位端,高电平有效din_1s显示器个位数据,由控制模块输入din_10s显示器十位数据,由控制模块输入light_sel选择那盏灯亮,由控制模块的输入输出端口:colour最终显示哪盏灯亮,可与硬件相连led_data_1s显示器个位数据的译码led_data_10s显示器十位数据的译码时序说明:此模块接受(系统时钟)sysclk_10Hz和(全局复位)reset的控制,均为上升沿触发,当reset为高电平时,电路复位,重新开始工作。当reset为低电平时,电路正常工作。时钟上升沿触发,对[3:0]din_1s(显示器个位数据)进行译码,输出到[6:0]led_data_1s(显示器个位数据的译码);对[3:0]din_10s(显示器十位数据)进行译码,输出到[6:0]led_data_10s(显示器十位数据的译码)。这两个译码输出端口最终连接到硬件上去,实现7段LED数码管的显示。时钟上升沿触发,对哪个灯亮进行译码输出,light_sel[2]将高电平传入到colour[2]中,红灯开始亮,light_sel[0]将高电平传入到colour[0]中,绿灯开始亮。黄灯的闪烁在顶层模块说明。仿真sysclk_10Hz系统时钟,10Hz为了方便,这里取2nscolor最终三灯状态包括绿红灯亮,黄灯闪烁light_selected控制模块灯亮的标志只控制亮与不亮,不闪led_ctrl_1s倒计时个位七段译码系统时钟led_ctrl_10s倒计时十位七段译码系统输出dout_1s倒计时个位上的数字控制模块的输出dout_10s倒计时十位上的数字控制模块的输出y_flicker黄灯闪烁控制端高电平有效图7展示的是绿灯倒计时的某一瞬间,竖线所在的位置是56s,这时候color和light_selected是100,表示此时绿灯亮,而led_ctrl_1s是0010000,对照译码表可以发现它显示的数字6,led_ctrl_10s是0010100,对照译码表可以发现它显示的数字5,十位和个位合起来就是数字56,正好与dout_10s(5)和dout_1s(6)结果相对应。图8展示的黄灯倒计时的某一瞬间,竖线显示的地方,此时color和light_selected都是010,表示此时是黄灯在亮,倒计时十位(dout_10s)和和个位(dout_1s)合起来是05,而七段译码led_ctrl_10s是0001000,对照译码表可以发现它显示的数字0,led_ctrl_1s是0000000,对照译码表可以发现它显示的数字8,也与输出结果吻合,最后一个y_flicker为1,也表示此时黄灯可以亮。图9也是展示的黄灯在倒计时08s时结果,与图8不同的是在color和y_flicker,图9的light_selected也是010,表示此时输入信号时黄灯在亮,然而闪烁控制端y_flicker为0,表示此时输出的黄灯应该是灭的,实际上通过图8和图9对比可以发现,它实现了黄灯闪烁的功能(05s的前半秒黄灯是亮的,后半秒是灭的)。图10展示的是红灯倒计时的某一刻,此时color和light_selected是100,表示此时红灯亮,而七段译码结果合起来是37,正好与下面的十位和个位输出结果一致。实验调试结果通过运用分频器、状态机、译码器、计数器等硬件,最终完成直行交通灯的实现,绿灯亮40s黄灯闪烁5s红灯亮20s。

1 / 32
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功