简易交通灯控制电路_第1页
简易交通灯控制电路_第2页
简易交通灯控制电路_第3页
简易交通灯控制电路_第4页
简易交通灯控制电路_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、简易交通灯控制电路 12电信2班 刘超凡 李 莹设计要求设计思路及步骤仿真波形预期结果设计要求完成简单十字路口直行的交通灯控制电路设计。 (1)十字路口,南北方向红:黄:绿为20s:5s:40s且可调;(2)工作时钟10hz;(3)各个方向的红黄绿等可用3个单色灯替代;(4)选做黄灯1hz闪烁;(5)完成全部流程:设计规范文档、模块设计、代码输入、功能仿真、约束与综合、布局布线、时序仿真、下载验证等。设计思路基本原理基本原理用Verilog实现十字路口简易交通灯控制原理。南北向红黄绿为20s:5s:40s 工作时钟10hz 黄灯1hz闪烁。Verilog语言被广泛的应用在电路设计中。它的设计描

2、述可被不同的工具支持和实现。利用其自顶向下的设计方法来实现交通灯控制原理,使道路交通正常运转。程序总体设计 首先,输入的10Hz 的系统时钟和全局控制端reset ,输出为个位数字的七段 译码,十位数字七段译码以及各个灯最后状态。 然后由于系统时钟频率大,第一要进行分频,使其成为1Hz 的时钟信号,第 二利用分频后的时钟信号对电路进行控制,开始先对状态跳转进行控制,用 case 语句控制三灯亮与灭,紧跟着进行倒计时的过程。 第三输出个位和 十位上的数即可,要显示倒计时是很容易实现的,直接用两个七段译码即可。 最后要控制黄灯的闪烁,还是要先产生分频时钟,作为控制端,控制模块各灯 亮与灭作为输入,

3、即可产生黄灯闪烁的效果。 另外,作为全局控制端,reset 信号是清零用的,在有时钟信号的地方就有 reset 。时序图 假设在 0 时刻,加上系统时钟,首先要进行 reset 清零,这时在控制模块的 计数器会清零,三个灯都是灭的状态,控制状态跳转的使能端enable 等于0,等待 着清零结束,开始工作;七段译码也不会显示。 在 reset 变低之后,系统开始正常工作。首先是分频时钟开始工作,在计数 器达到第一个25000000 之前,分频时钟都是低电位,到25000000 的时候分频时钟 的第一个上升沿来临,此时状态控制开始运转,先工作的是绿灯,它会经过从 39 到0 的倒计时过程,同时译码

4、模块也开始工作,颜色控制colour 是100,表征绿灯的点亮,经七段译码,这个倒计时数字也会同步显示出来经过 40s(也就是经过 40*10 个系统时钟上升沿之后)绿灯亮的时间到,会自动转到黄灯状态,黄灯是5 到0 的倒计时过程,译码的显示跟绿灯一样,只是黄灯的亮会加一个1Hz 的时钟控 - 4 - 制端,1 秒内只有半秒,黄灯是亮的,从 5秒到4.5 秒之间黄灯是亮的,然后 4.5 到 3 是灭的,如此继续下去,直到5 秒结束。又经过 5(5*10 个系统时钟上 升沿),状态转移到红灯,然后显示及七段译码过程与绿灯相似。至此一个周期已 经完成,接下来就是循环执行以上步骤的过程,直到有res

5、et 清零端打断其正常工 作。总体上分为三个大模块,即:顶层模块、控制模块、译码模块(包括显示模块)。输入: sysclk 10Hz (全局时钟信号) Reset (全局复位端,高电平有效)输出:color (最终各灯状态亮或闪) led_ctrl_1s (个位七段译码) led_ctrl_10s(十位七段译码时序说明:加上时钟信号之后,首先用 reset 清零,然后控制模块会分频产 生分频时钟,根据分频时钟的高与低,会控制各个状态之间的跳转,译码模块会同 步通过数码管来显示倒计时数,并且会根据译码模块黄灯闪亮控制端来输出各灯的具体状态。1)顶层模块: 此模块只做例化,即对底层的控制模块和译码

6、模块进行例化,而不做逻辑设计。2)控制模块: 此模块是本程序的主体,主要是控制各个灯颜色(此模块并不控制黄灯的闪烁) 的转换,以及倒计时时间输出输入:sysclk_10Hz 全局时钟信号,10Hz Reset 全局复位端,高电平有效 输出:dout_1s 倒计时个位上数字 dout_10s 倒计时十位上数字 light_select 各个灯状态 light_select(只是控制亮与灭,不 管黄灯闪烁) 时序说明:首先还是加上系统时钟之后,用 reset 清零,则计数器清零、所 有灯都不亮。但reset 为1 之后模块开始工作,首先是计数器开始计数,随之分频 时钟会根据计数器的变化而周期变化,

7、绿灯会先亮 40 秒,之后黄灯也会亮(闪烁 在译码模块实现)5 秒,然后就是红灯亮20 秒,以后就是循环以上步骤的过程, 同时在循环过程中,倒计数的数会同步输出,各灯亮与灭状态也会同步输出。3) 译码模块: 此模块主要有两个作用,控制黄灯闪烁以及对倒计时时间进行译码输出。输入端口: sysclk_10Hz 全局时钟信号,10Hz reset 全局复位端,高电平有效 din_1s 显示器个位数据,由控制模块输入 din_10s 显示器十位数据,由控制模块输入 light_sel 选择那盏灯亮,由控制模块的输入 输出端口: colour 最终显示哪盏灯亮,可与硬件相连led_data_1s 显示器

8、个位数据的译码 led_data_10s 显示器十位数据的译码时序说明: 此模块接受(系统时钟)sysclk_10Hz 和(全局复位)reset 的控制,均为上升沿触发,当 reset 为高电平时,电路复位,重新开始工作。当reset 为低电 平时,电路正常工作。 时钟上升沿触发,对3:0din_1s (显示器个位数据)进行译码,输出到 6:0led_data_1s(显示器个位数据的译码);对 3:0din_10s (显示器十位数据) 进行译码,输出到 6:0led_data_10s (显示器十位数据的译码) 。这两个译码输出端口最终连接到硬件上去,实现7 段LED 数码管的显示。 时钟上升沿

9、触发,对哪个灯亮进行译码输出,light_sel2将高电平传入到 colour2中,红灯开始亮,light_sel0将高电平传入到 colour0中,绿灯开始亮。黄灯的闪烁在顶层模块说明。仿真sysclk_10Hz 系统时钟, 10Hz 为了方便,这里取2ns color 最终三灯状态 包括绿红灯亮,黄灯闪烁light_selected 控制模块灯亮的标志 只控制亮与不亮,不闪 led_ctrl_1s 倒计时个位七段译码 系统时钟 led_ctrl_10s 倒计时十位七段译码 系统输出 dout_1s 倒计时个位上的数字 控制模块的输出 dout_10s 倒计时十位上的数字 控制模块的输出 y

10、_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_1

11、0s)和和个 位(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 对比可以发现,它实现了黄灯闪烁的功能(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论