为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

实验五 交通灯控制器

2019-09-02 9页 doc 24KB 16阅读

用户头像

is_637320

暂无简介

举报
实验五 交通灯控制器实验五 交通灯信号控制器的设计 一、实验目的 1.掌握VHDL语言的基本结构。 2.掌握VHDL层次化的设计方法。 3.掌握VHDL基本逻辑电路的综合设计应用。 二、实验原理 交通灯信号控制器主要用于主干道与支干道公路的交叉路口,要求是优先保证主干道的畅通。因此,平时处于“主干道绿灯,支道红灯”状态,只有在支道有车辆要穿行主干道时,才将交通灯切向“主干道红灯,支道绿灯”,一旦支道无车辆通过路口,交通灯又回到“主干道绿灯,支道红灯”的状态。 图1 交通灯控制器的内部电路逻辑图 图1是交通灯信号控制器的内部电路逻辑图,整个系统...
实验五 交通灯控制器
实验五 交通灯信号控制器的设计 一、实验目的 1.掌握VHDL语言的基本结构。 2.掌握VHDL层次化的设计方法。 3.掌握VHDL基本逻辑电路的综合设计应用。 二、实验原理 交通灯信号控制器主要用于主干道与支干道公路的交叉路口,要求是优先保证主干道的畅通。因此,平时处于“主干道绿灯,支道红灯”状态,只有在支道有车辆要穿行主干道时,才将交通灯切向“主干道红灯,支道绿灯”,一旦支道无车辆通过路口,交通灯又回到“主干道绿灯,支道红灯”的状态。 图1 交通灯控制器的内部电路逻辑图 图1是交通灯信号控制器的内部电路逻辑图,整个系统由5个单元电路组成。其中,交通灯控制器JTDKZ模块:根据主、支干道传感器信号SM、SB以及来自时基发生电路的时钟信号CLK,发出主、支干道指示灯的控制信号,同时向各定时单元、显示控制单元发出使能控制信号EN1、EN2、EN3、EN4; 45S定时单元CNT45S、25S定时单元CNT25S、5S定时单元CNT05S:根据SM、SB、CLK及JTDKZ发出的有关使能控制信号EN1、EN2、EN3、EN4,按要求进行定时,并将其输出传送至显示控制单元;显示控制单元XSKZ:根据JTDKZ发出的有关使能控制信号EN1、EN2、EN3、EN4选择定时单元CNT45S、CNT25S、CNT05S的输出传送至各显示译码器。 三、实验设备 计算机软件:Quartus II EDA实验箱。主芯片:EPM7128SLC84-15或EP1K100QC208-3。电缆,导线等。 四、实验内容及步骤 设计并调试好一个由一条主干道和一条支干道的汇合点形成的十字交叉路口的交通灯控制器,具体要求如下: 1.主、支干道各设一个绿、黄、红指示灯,两个显示数码管。 2.主干道处于常允许通行状态,而支干道有车来时才允许通行。当主干道允许通行亮绿灯时,支干道亮红灯。而支干道允许通行亮绿灯时,主干道亮红灯。 3.当主、支干道均有车时,两者交替允许通行,主干道每次放行45S,支干道每次放行25S,在每次由亮绿灯变成亮红灯的转换过程中,要亮5S的黄灯作为过渡,并进行减计时显示。 要求编写交通灯控制器电路逻辑图中的各个模块的VHDL语言程序,并完成交通灯控制器的顶层设计,然后利用开发工具软件对其进行编译和仿真,最后要通过实验开发系统对其进行硬件验证。 (一)编写交通灯控制器JTDKZ模块的VHDL程序,并对其进行编译和仿真,初步验证设计的正确性。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY JTDKZ IS PORT(CLK, SM, SB: IN STD_LOGIC; MR, MY, MG, BR, BY, BG: OUT STD_LOGIC); END ENTITY JTDKZ; ARCHITECTURE ART OF JTDKZ IS TYPE STATE_TYPE IS(A, B, C, D); SIGNAL STATE: STATE_TYPE; signal cnt:integer range 0 to 45; BEGIN PROCESS(CLK) IS BEGIN IF(CLK'EVENT AND CLK='1')THEN CASE STATE IS WHEN A=> IF(SB AND SM)='1' THEN  //主干道、支干道都有车,则主干道绿灯45s IF CNT=44 THEN CNT<=0; STATE<=B; ELSE CNT<=CNT+1;STATE<=A; END IF; ELSIF(SB AND (NOT SM))='1' THEN //支干道有车主干道没车,则主干道进入B状态 STATE<=B;  CNT<=0; ELSE  STATE<=A;  CNT<=0; //否则,保持在A状态 END IF; WHEN B=> IF CNT=4 THEN //黄灯时间5s结束 CNT<=0;STATE<=C;  ELSE CNT<=CNT+1;STATE<=B;  END IF; WHEN C=> IF(SM AND SB)='1' THEN //主干道、支干道都有车,则支干道绿灯25s IF CNT=24 THEN CNT<=0; STATE<=D;  ELSE CNT<=CNT+1;STATE<=C; END IF; ELSIF SB='0' THEN  //支干道无车,则立即进入D状态 STATE<=D; CNT<=0; ELSE STATE<=C; CNT<=0;  // END IF; WHEN D=> IF CNT=4 THEN CNT<=0; STATE<=A;  ELSE CNT<=CNT+1;STATE<=D;  END IF; END CASE; END IF; END PROCESS ; RGY:PROCESS(STATE) IS BEGIN CASE STATE IS WHEN A=> MR<='0'; MY<='0'; MG<='1'; BR<='1'; BY<='0'; BG<='0'; WHEN B=> MR<='0'; MY<='1'; MG<='0'; BR<='1'; BY<='0'; BG<='0'; WHEN C=> MR<='1'; MY<='0'; MG<='0'; BR<='0'; BY<='0'; BG<='1'; WHEN D=> MR<='1'; MY<='0'; MG<='0'; BR<='0'; BY<='1'; BG<='0'; END CASE; END PROCESS RGY; END ARCHITECTURE ART; (二)编写45S定时单元CNT45S模块的VHDL程序,并对其进行编译和仿真,初步验证设计的正确性。 --45s定时模块源程序CNT45S.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY time_45s IS PORT(SB,SM, CLK, EN45: IN STD_LOGIC; DOUT45M, DOUT45B: OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END ENTITY time_45s ; ARCHITECTURE ART OF time_45s  IS SIGNAL CNT6B: STD_LOGIC_VECTOR(5 DOWNTO 0); BEGIN PROCESS(SB, SM, CLK, EN45) IS BEGIN IF(CLK'EVENT AND CLK= '1')THEN IF SB='1' AND SM='1' THEN IF EN45='1'THEN CNT6B<=CNT6B+1; ELSE  CNT6B<="000000"; END IF; ELSE CNT6B<="000000";    END IF; END IF; END PROCESS; PROCESS(CNT6B) IS BEGIN CASE CNT6B IS WHEN "000000"=>DOUT45M<="01000101"; DOUT45B<="01010000";  --BCD数45, 50 WHEN "000001"=>DOUT45M<="01000100"; DOUT45B<="01001001";  --BCD数44, 49 WHEN "000010"=>DOUT45M<="01000011"; DOUT45B<="01001000";  --BCD数43, 48 WHEN "000011"=>DOUT45M<="01000010"; DOUT45B<="01000111";  --BCD数42, 48 WHEN "000100"=>DOUT45M<="01000001"; DOUT45B<="01000110";  --BCD数41, 50 WHEN "000101"=>DOUT45M<="01000000"; DOUT45B<="01000101";  --BCD数40, 49 WHEN "000110"=>DOUT45M<="00111001"; DOUT45B<="01000100";  --BCD数39, 48 WHEN "000111"=>DOUT45M<="00111000"; DOUT45B<="01000011";  --BCD数38, 48 WHEN "001000"=>DOUT45M<="00110111"; DOUT45B<="01000010";  --BCD数37, 50 WHEN "001001"=>DOUT45M<="00110110"; DOUT45B<="01000001";  --BCD数36, 49 WHEN "001010"=>DOUT45M<="00110101"; DOUT45B<="01000000";  --BCD数35, 48 WHEN "001011"=>DOUT45M<="00110100"; DOUT45B<="00111001";  --BCD数34, 48
/
本文档为【实验五 交通灯控制器】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索