1、 1 1 CPLD 实现交通灯控制系统实现交通灯控制系统 2 2 一一. .预期功能预期功能 分别成东西走向和南北走向的主干道和支干道,其交通信号灯,分别实现一下状态: S0:支干道没有车辆行驶,支干道绿灯,支干道红灯 S1:支干道有车辆行驶,支干道绿灯,支干道红灯 S2:主干道黄灯,支干道绿灯 S3:主干道红灯,支干道绿灯 S4:主干道红灯,支干道黄灯 状态状态 亮灯亮灯 停留时间停留时间 S0 G2,R2 50 秒 S1 G2,R2 45 秒 S2 Y1,G2 5 秒 S3 R1,G2 25 秒 S4 R1,Y2 5 秒 二二. .原理框图原理框图 根据设计要求和系统所具有的功能,并参考相
2、关的文献资料,经行方案设计,可以画出如下 图所示的交通信号灯控制器的系统框图。 1kHZ 1kHZ 1HZ 支干道车辆检测 1kHZ 数码管及 LED 信号 时钟分频模块时钟分频模块 CLK 交通灯控制及计时模块交通灯控制及计时模块 扫描显示译码模块扫描显示译码模块 CAR LED 显示显示 数码管位码数码管位码 数码管段码数码管段码 3 3 根据以上设计思路,可以得到如下的顶层文件原理图根据以上设计思路,可以得到如下的顶层文件原理图 顶层文件的实体图:顶层文件的实体图: 三三. .单元模块设计与仿真单元模块设计与仿真 时钟分频模块时钟分频模块 系统的动态扫描需要 1HZ 的脉冲,而系统时钟计
3、时模块需要 1HZ 的脉冲。分频模块 主要为系统提供所需的时钟计时脉冲。该模块将 1kHZ 的脉冲信号进行分频,产生 1S 的方 波,作为系统时钟计时信号。其实体模块如下: 将 END TIME 改为 5S CLK 采用系统的 1KHZ 的时钟脉冲 4 4 仿真波形如下:仿真波形如下: 可以看到能够得到 1s 的时钟脉冲 交通灯控制及计时模块交通灯控制及计时模块 控制模块根据外部输入信号和计时模块产生的输出信号, 产生系统的状态机, 控制其他 部分协调工作。 计时模块用来设定主干道和支干道计时器的初值, 并为扫描显示译码模块提 供倒计时时间。 控制及计时模块采用状态机进行设计,可以定义出 5
4、种状态,分别为 S0:主干道绿灯,支干 道红灯且没有车辆行驶; S1:主干道绿灯, 支干道红灯或支干道有车辆驶入; S2:主干道黄灯, 支干道红灯;S3:主干道红灯,支干道绿灯;S4:主干道红灯,支干道黄灯。利用 CASE 语句 定义状态的转换方式及时间的变换方式,达到主干道绿灯亮 45 秒,支干道绿灯亮 25 秒,黄 灯亮 5 秒的设计要求。 其实体模块如下: CAR 为支干道车辆检测开关 在支干道有车的情况下,模块可以进行减计时 CLK1S 为 1S 的时钟脉冲 5 5 TIME1H、TIME1L、TIME2H、TIME2L 分别为主干道时钟高位、主干道时钟低位、支干道 时钟高位、支干道时
5、钟低位 LED 为 LED 灯发光情况,分别为主干道绿灯、主干道黄灯、主干道红灯、支干道绿灯、主 干道黄灯、主干道红灯 Count 的总的系统时间,用来改变系统的状态 仿真波形如下:仿真波形如下: 通过仿真可以看到: 当主干道绿灯,支干道红灯时,主干道倒计时高位置数 0100,低位置数 0101;支干道高位 置数 0101,低位置数 0000; 当主干道黄灯,支干道红灯时,主干道黄灯倒计时置数 0101;支干道继续刚才的减计数; 当主干道红灯,支干道绿灯时,主干道倒计时高位置数 0011,低位置数 0000;支干道高位 置数 0010,低位置数 0101; 当主干道红灯,支干道黄灯时,支干道黄
6、灯倒计时置数 0101;主干道继续刚才的减计数。 在 S4 状态结束后,自动跳回到 S0 状态,继续判断支干道是否有车行驶,若有车行驶,则 跳转到 S1 状态,给高、低位置数,继续进行减计时。 系统根据 COUNT 的变化自动在各状态下跳变, 当 count 为 45 时, 跳变到 S2 状态; 当 count 为 50 时,跳变到 S3 状态;当 count 为 75 时,跳变到 S4 状态;当 count 为 80 时,若支干 道没有车跳变到 S0 状态,有车则跳变到 S1 状态。 6 6 扫描显示译码模块扫描显示译码模块 扫描显示译码模块可以根据控制信号, 驱动交通信号灯以及倒计时数码管的显示, 其中数码 管的显示采用动态扫描显示。其实体模块如下: CLK 为 1KHZ 的系统时钟脉冲 CLK1S 为 1S 时钟脉冲 CAR 为支干道车辆检测开关 SEL 为数码管位码扫描 SEG 为数码管段码 TIME1H、TIME1L、TIME2H、TIME2L 为数码管计时的时间,由控制