基于VHDL的交通灯控制系统的设计 联系客服

发布时间 : 星期六 文章基于VHDL的交通灯控制系统的设计更新完毕开始阅读3718202de2bd960590c677f1

第4章 交通灯控制系统的设计

时钟输入端 时 钟 发 生 电 路 计数秒数选择电路 红绿灯信号控制电路 东西及南北 方向信号灯 系统复位端 倒计时控制电路 图4-2 交通信号灯系统结构图

东西及南北 方向倒计时

4.2 系统结构设计

由交通信号灯控制系统的功能可知,该系统由4个子电路组成,如图2所示,其中包括:

(1) 时钟发生电路; (2) 计数秒数选择电路; (3) 倒计时控制电路; (4) 红绿灯信号控制电路。

由图2可以看出系统大体的工作程序是:首先由时钟发生电路产生稳定的时钟信号,为下面三个子电路提供同步工作信号。接收到时钟信号的红绿灯信号控制电路开始工作,并将产生的重新计数的输出使能控制信号发送给计数秒数选择电路和倒计时控制电路,同时还会将目前电路产生的状态信号发送给前者。接收到重新计数的信号后计数秒数选择电路就会负责产生计数器所需要的计数值,并将这一数值发送给倒计时控制电路,由它利用发光二极管显示倒计时的状态。当

9

计数器计时完毕,倒计时控制器就会负责产生一个脉冲信号发送给红绿灯信号控制电路进入下一个状态,之后循环这一过程。

4.3 系统程序实现与仿真分析

4.3.1 时钟脉冲发生电路

在红绿灯交通信号系统中,大多数的情况是通过自动控制的方式指挥交通的。因此,为了避免意外事件的发生,电路必须给出一个稳定的时钟(clock)才能让 系统正常的工作。因此,hld1时钟发生电路(见图3)最主要的功能就是产生一些稳定的输出信号,并将其用做后面几个电路的使能控制与同步信号。

图4-3 时钟发生电路模块图

系统输入信号:

clk:由外部信号发生器提供1kHZ的时钟信号; reset:系统内部自复位信号。 系统输出信号:

ena_scan:将外部的时钟信号进行分频处理;

10

第4章 交通灯控制系统的设计

ena_1hz:产生每秒一个的脉冲信号; flash_1hz:产生每秒一个脉冲的时钟信号。 经仿真后得到的时序图(见图4、图5)

论文资料集中营

http://shop.paipai.com/15410938

图4-4 将clk经分频处理后得到的ena_scan信号

论文资料集中营

http://shop.paipai.com/15410938

图4-5 时钟发生电路时序图

从图4中可以看出,当外部信号发生器提供了1kHZ的时钟信号后,系统输出信号ena_scan就将时钟信号进行了4分频。从图5又可以看出,当加入1kHZ的时钟信号后,ena_1hz产生了周期为一秒的脉冲信号,flash_1hz产生了周期为一秒的脉冲时钟信号。

在这段程序的设计过程中最大的特点就是引用了参数化的概念,即使用了常数(constant)。常数的定义和设置主要是为了使程序更容易阅读和修改,只要改变

11

了常量的数值,使用到该常数的地方都会随着更新而使用新的常数值。这就使设计的灵活性增强了。例如程序中用到的:constant scan_bit:positive:=2;

signal clk_scan_ff:std_logic_vector(scan_bit-1 downto 0);第一句就是将scan_bit设为常数‘2’,这个数值是可以根据设计的需要任意设定的。第二句是定义一个信号,它的位数就是(scan_bit-1),因为之前scan_bit设定的值为2,所以信号的位数就是2位。如果想增减信号的位数,只需要改动常数的赋值就可以了。程序代码见附录1.时钟发生电路程序代码 4.3.2 计数秒数选择电路

当通过交通路口时,如果能在一个方向增添一个倒计时显示器对车辆、行人加以提示,可能会有更好的效果。因此,hld2计数秒数选择电路(见图6)最主要的功能就是负责输出显示器需要的数值(即倒数的秒数值),作为倒计时显示器电路的计数秒数。

图4-6 计数秒数选择电路模块图

系统输入信号:

clk:由外部信号发生器提供1kHZ的时钟信号;

12