基于CPLD的交通灯系统设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于CPLD 的交通灯系统设计

The Design of Traffic Light Based on CPLD

联系方式:jencharn@ QQ:327761220

摘 要 交通灯系统已成为现代社会中必不可少的控制系统,本文应用

CPLD 设计交通灯系统,其特点是速度快,精确高。 关键词 复杂可编程逻辑,交通灯

一、 交通灯系统介绍

在一个主次干道的十字路口,东西和南北方向各设置一个红,黄,绿三种颜色的交通灯。红灯亮表示禁止通行,绿灯亮表示可以通行。在绿灯变红灯时先要求黄灯亮5秒钟,以便让后来车辆准备停车。由于主干道车辆较多,次干道车辆较少,所以要求主干道处于通行状态的时间要长一些,为30秒;而次干道通行时间为20秒。

二、 设计思路

基于交通灯系统的情况,系统可以分为两大功能:红绿灯显示和相应时间显示,具体如下:

1. 主次干道交通灯对应时间关系图:

2.数码管显示时间为倒计时显示 主绿,次红 主黄,次红 主红,次绿 主红,次黄

三、 设计模型及模块

由模型可得程序可以分为三大模块:分频模块,控制模块,译码显示模块

四、程序设计算法

--交通灯系统

Y N

--jtd.vhd

--最后完成日期06/05/28

LIBRARY ieee;

USE ieee.std_logic_1164.ALL;

USE ieee.std_logic_unsigned.ALL;

ENTITY jtd IS

PORT( start, clk: IN std_logic;

digih,digil: OUT std_logic_vector(6 DOWNTO 0); --数码管高低位

led : OUT std_logic_vector(5 DOWNTO 0));--主红,绿,黄;次红,绿,黄

END jtd;

ARCHITECTURE rtl OF jtd IS

TYPE STATES IS (s1,s2,s3,s4);

SIGNAL state:STATES;

BEGIN

PROCESS(clk)

V ARIABLE en:std_logic_vector(1 downto 0); --状态控制信号

V ARIABLE dh:integer RANGE 0 to 3;

V ARIABLE dl:integer RANGE 0 to 9;

begin

IF start='0' THEN

dh:=3;dl:=0;en:="00";

ELSIF rising_edge(clk) THEN

IF state=s1 THEN --主绿,次红

IF dh=0 and dl=0 THEN

en:="01";dl:=5;

ELSIF dl=0 THEN

dl:=9;

dh:=dh-1;

ELSe dl:=dl-1;

END IF;

END IF;

IF state=s2 THEN --主黄,次红

IF dl=0 THEN

en:="10";dh:=2;

ELSe dl:=dl-1;

END IF;

END IF;

IF state=s3 THEN --主红,次绿

IF dh=0 and dl=0 THEN

en:="11";dl:=5;

ELSIF dl=0 THEN

dl:=9;

dh:=dh-1;

ELSe dl:=dl-1;

END IF;

END IF;

IF state=s4 THEN --主红,次黄

IF dl=0 THEN

en:="00";dh:=3;

ELSe dl:=dl-1;

END IF;

END IF;

END IF;

CASE dh IS --数码管高位译码WHEN 0=>digih<="0111111";

WHEN 1=>digih<="0000110";

WHEN 2=>digih<="1011011";

WHEN 3=>digih<="1001111";

WHEN OTHERS=>NULL;

END CASE;

CASE dl IS --数码管低位译码WHEN 0=>digil<="0111111";

WHEN 1=>digil<="0000110";

WHEN 2=>digil<="1011011";

WHEN 3=>digil<="1001111";

WHEN 4=>digil<="1100110";

WHEN 5=>digil<="1101101";

WHEN 6=>digil<="1111101";

WHEN 7=>digil<="0000111";

WHEN 8=>digil<="1111111";

WHEN 9=>digil<="1101111";

WHEN OTHERS=>NULL;

END CASE;

CASE en IS --交通灯状态控制

WHEN "00"=>state<=s1;led<="010100";

WHEN "01"=>state<=s2;led<="001100";

WHEN "10"=>state<=s3;led<="100010";

WHEN "11"=>state<=s4;led<="100001";

WHEN OTHERS=>NULL;

END CASE;

END PROCESS;

END rtl;

六、选择器件及使用情况

器件选择ALTER公司的AMAX7000S系列中的EPM7128SLC84-6:

Chip/ Input Output Bidir Shareable

POF Device Pins Pins Pins LCs Expanders % Utilized jtd EPM7128SLC84-6 2 20 0 80 66 62 %

七、仿真波形

相关文档
最新文档