VHDL交通灯控制器实验报告.doc_第1页
VHDL交通灯控制器实验报告.doc_第2页
VHDL交通灯控制器实验报告.doc_第3页
VHDL交通灯控制器实验报告.doc_第4页
VHDL交通灯控制器实验报告.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

一、设计要求-二、设计目的-三、设计方案-四、设计程序-五、管脚分配-六、硬件下载实现现象描述-七、体会、对设计工作的总结与展-一、设计要求: 在十字路口的两个方向上各设一组红、绿、黄灯,显示顺序为其中一方向(东西方向)是绿灯、黄灯、红灯;另一方向(南北方向)是红灯、绿灯、黄灯。 设置一组数码管,以倒计时的方式显示允许通行或禁止通行的时间,其中绿灯、黄灯、红灯的持续时间分别是20s、5s和25s。 当各条路上任意一条上出现特殊情况时,如当消防车、救护车或其他需要优先放行的车辆通过时,各方向上均是红灯亮,倒计时停止,且显示数字在闪烁。当特殊运行状态结束后,控制器恢复原来状态,继续正常运行。二、设计方案:计数器的计数值与交通灯亮灭的关系如图1所示。 图1 计数值与交通灯亮灭的关系 显然,本课题的核心是一个计数范围为049(共50 s )的计数器和一个根据计数值做出规定反应的控制器。另外,所用实验箱配备的晶振为20MH z,因此还需要一个分频电路。最后,要驱动七段数码管,显然还需要一个译码电路。 根据上面的分析,可以画出如图2所示的系统框图。 图2 交通灯控制器系统框图2、计数器的设计 这里需要的计数器的计数范围为049。计到49后,下一个时钟沿回复到0,开始下一轮计数。此外,当检测到特殊情况(Hold=1)发生时,计数器暂停计数,而系统复位信号Reset则使计数器异步清0。3、控制器的设计 控制器的作用是根据计数器的计数值控制发光二极管的亮、灭,以及输出倒计时数值给七段数译管的分位译码电路。此外,当检测倒特殊情况(Hold=1)发生时,无条件点亮红色的发光二级管。 由于控制器要对计数值进行判断,很容易想到用IF语句来实现。本控制器可以有两种设计方法,一种是利用时钟沿的下降沿读取前级计数器的计数值,然后做出反应;另一种则是将本模块设计成纯组合逻辑电路,不需要时钟驱动。这两种方法各有所长,必须根据所用器件的特性进行选择:比如有些FPGA有丰富的寄存器资源,而且可用于组合逻辑的资源则相对较少,那么使用第1种方法会比较节省资源;而有些CPLD的组合逻辑资源则相对较多,用第2种方法可能会更好。大家可尝试两种方法,比较一下哪种方法所用资源较少,然后在最后的方案中采用这个方法。4、分位译码电路的设计 因为控制器输出的倒计时数值可能是1位或者2位十进制数,所以在七段数码管的译码电路前要加上分位电路(即将其分为2个1位十进制数,如25分为2和5,7分为0和7)。 与控制器一样,分位电路同样可以由时钟驱动,也可以设计成纯组合逻辑电路。控制器中,引入了寄存器。三、 程序语言:-交通灯带有点阵显示-LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY jtd IS PORT(duan : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);- 数码管显示bcd码from 100 to 91hang,lie:out std_logic_vector(7 downto 0); -点阵行输出和列输出led,light_cs : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);- 数码管和灯扫描led 6 5 2 1 | light 66 67 68 69led_no: OUT STD_LOGIC_VECTOR(1 DOWNTO 0);- 4 3light : OUT STD_LOGIC_VECTOR(2 DOWNTO 0);-灯72 70 71B1eep : OUT STD_LOGIC; - 7clk,jinji : IN STD_LOGIC- 频率输入和紧急处理端-);END jtd;ARCHITECTURE one OF jtd ISSIGNAL clk_1k,clk_1 : STD_LOGIC;SIGNAL cnt4 : INTEGER RANGE 0 TO 3; -用于计数-SIGNAL num,num1,num2,num3,num4 : INTEGER RANGE 0 TO 9;SIGNAL L1,L2: STD_LOGIC_VECTOR(2 DOWNTO 0);-灯显示-SIGNAL time1,time2: INTEGER RANGE 0 TO 25;-时间显示- signal t:std_logic_vector(2 downto 0); -点阵信号传输signal q:std_logic_vector(1 downto 0);-点阵输出显示信号-BEGINled_no=11;-把数码管第三第四位屏蔽-1KHz频率输出 -process(clk) variable cnt1: integer range 0 to 250; variable cnt2: integer range 0 to 100; Begin if clkevent and clk=1 then if cnt1=250 then cnt1:=0; if cnt2=100 then cnt2:=0; clk_1k=not clk_1k; else cnt2:=cnt2+1; end if; else cnt1:=cnt1+1; end if; end if;end process;-点阵扫描-process(clk_1k)variable count:integer range 0 to 8;begin if clk_1kevent and clk_1k=1 thenif count hang=00000001;t hang=00000010;t hang=00000100;t hang=00001000;t hang=00010000;t hang=00100000;t hang=01000000;t hang=10000000;thang=00000000;t shu:=0;when 001 = shu:=1;-变量的赋值是立即发生的when 010 = shu:=2;when 011 = shu:=3;when 100 = shu:=4;when 101 = shu:=5;when 110 = shu:=6;when 111 = shu:=7;when others =null; end case; case q is-再根据相应的值送到列上去 when 01=case shu is when 0 = lie lie lie lie lie lie lie lieliecase shu is when 0 = lie lie lie lie lie lie lie lieliecase shu is when 0 = lie lie lie lie lie lie lie lielienull; end case; end process;-1s分频加计数-PROCESS(clk_1k)VARIABLE count_1k : INTEGER RANGE 0 TO 499;BEGINIF clk_1kEVENT AND clk_1k=1 THENIF cnt4=3 THENcnt4=0;ELSEcnt4=cnt4+1;END IF;IF count_1k=499 THENcount_1k:=0;clk_1 num1 num1 num1 num1=0;END CASE;num2 num3 num3 num3 num3=0;END CASE;num4led=1110; -动态扫描数码管(从右到左)-num=num1;light_cs=1110;lightled=1101;num=num2;light_cs=1101;lightled=1011;num=num3;light_cs=1011;lightled=0111;num=num4;light_cs=0111;lightled=1111;light_csduanduanduanduanduanduanduanduanduanduanduan time1=20; L1=001; B1eeptime1=5;L1=010;B1eeptime1=25;L1=100;B1eep=0; qtime1=24;END CASE;ELSEtime1time2=25;L2=100;B1eep=0;qtime2=20;L2=001;B1eeptime2=5;L2=010;B1eeptime2=24;END CASE;ELSEtime2=time2-1; END IF; else -出现紧急制动情况的表现- B1eep=1; time1=0; time2=0; q L1=100; L2 L1=000; L2=000; end case; end if;END IF;END PROCESS; END one; 四、管脚分配 五、硬件下载实现现象描述硬件上的实现是(1)、东西方向的绿灯,跟黄灯亮25s时,南北方向亮着红灯,当南北方向红灯亮到25s时,将变成绿灯,而在东西方向黄灯亮5s时蜂鸣器同时响5s,(2)、而与此同时,一组数码管,以倒计时的方式显示允许通行或禁止通行的时间,其中绿灯、黄灯、红灯的持续时间分别是20s、5s和25s。(3)、点阵也会显示出东西,南北方向通行是

温馨提示

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

评论

0/150

提交评论