ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:45.97KB ,
资源ID:9357076      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9357076.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(eda课程实训设计交通信号灯设计实现doc.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

eda课程实训设计交通信号灯设计实现doc.docx

1、eda课程实训设计交通信号灯设计实现doc交通灯的设计与实现一、实训目的提高学生动手编程能力和对EDA可编程逻辑器件课程在实际生活中的应用的能力。2、实训内容及要求在EDA实验箱上完成十字路口交通灯的设计与实现。要求将实验箱上的8个LED灯中的6个表示东西方向和南北方向的红黄绿交通灯。同时在数码管上显示等待时间,并在数秒后进行红绿灯的转换,可增加扩展功能。3、实训软硬件简介1. Quartus II 8.0Quartus II 8.0是著名可编程逻辑器件生产商Altera的综合性开发软件,在21世纪推出,可以在XP,linux,unix上使用,已取代MAX+PLUS,它提供了一种与结构无关的设

2、计与环境,使设计者能方便地进行设计输入、快速处理和器件编程。其便于其支持的硬件描述语言有VHDL、Verilog等,解决了原理图与HDL混合输入设计的问题。编译仿真检测无误后,便可以下载信息通过编程器下载至目标器件中了。2. EDA综合实验箱综合实验箱可分为实验主板和可编程逻辑器件核心两部分,可编程逻辑器件核心板可以按需更换,以满足不同要求。实验箱主要具有以下几个特点:实验箱电路动态可重组:可按需配置成不同连接,以满足不同实验项目的需要可独立支持MCS51单片机实验:具有仿真功能,不需要额外配备昂贵的仿真器。可独立完成可编程逻辑器件实验:可按需更换不同芯片模板,满足不同实验需要;提供了扩展接口

3、:让学生可以设计自己的电路连接到试验箱;灵活支撑综合性、创造性实验:有利于训练学生综合创新能力。综合实验箱采用模式化结构,可以通过不同的模式选择是进行单片机实验还是可编程实验。通过主控电路选择左侧的单片机或者是下侧的可编程器件,选择需要的外围资源。主要硬件资源由三个部分构成:单片机资源、可编程逻辑器件资源、以及一些常用外设资源。4、实训设计思想1. 设计效果将实训要求和实际生活中的交通信号灯状态相结合,本系统设计实现数码管实时显示东西和南北两个方向的交通信号灯的通行和等待的剩余时间,在实验箱的LED灯中选取6个灯分别代表两个方向的红绿黄灯同时与数码管显示的时间相对应,为了防止出现交通灯出现临时

4、性错误,设计一个复位键,以能够及时恢复至正常状态。因深夜时车辆较少,故而设计一个按键在深夜时将交通灯全部变为黄灯闪烁,提醒车辆减速行驶。2. 程序代码设计思想经过分析,交通信号灯在正常情况下分为6个状态,同时增加两种特殊情况下出现的两种状态;本系统运用状态机,将系统频率clk通过分频器分频,实现了LED灯的闪烁和数码管的显示功能,同时增加了两个额外特殊情况处理功能,成功模拟了现实生活中的交通信号灯的运作状况。(1)分频设计因数码管和LED灯的显示频率不同,故需要对系统clk进行分频,分频器实现的是将高频时钟信号转换成低频的时钟信号,用于触发控制器、计数器和扫描显示电路。该分频器实现的是一千分频

5、,将一千赫兹的时钟信号分频成一赫兹的时钟信号。图1 分频器部分原理图(2)状态机设计根据要实现的功能及各状态之间的转换经分析,正常状态下交通信号灯可以分为4个状态分别为表一中的S1、S2、S3、S4,在出现特殊情况或者在深夜时,状态转移分别是S5、S6,各状态之间持续时间详见表一,状态转移图详见图2.。表1 交通信号各灯状态详细表交通灯东西方向南北方向持续时间状态红(led7)黄(led6)绿(led5)红(led2)黄(led1)绿(led0)S110000112S21000104S300110012S40101004S5100100/S6010010/(3)显示模块设计串行连接,即每个数码

6、管对应的引脚都连接在一起,通过控制公共端为高电平控制相应数码管的亮,灭(共阴极数码管的公共端为高电平时,LED不亮;共阳极的公共端为低电平时,LED不亮)5、实训步骤及仿真结果1. 实训步骤设计输入:使用原理图、硬件描述语言(VHDL、AHDL、VerilogHDL)等设计文件对待设计的功能做设计图。综合:将硬件描述语言翻译成由逻辑门、触发器、寄存器等组成的电路结构。布局布线:利用综合后的网表文件,将逻辑和时序要求映射到目标器件中,进行目标器件逻辑资源的分配、布线、互联等。仿真:利用软件,验证设计的正确性。仿真分为功能仿真和时序仿真,功能仿真仅验证逻辑功能,不包含时延信息。时序分析:观察和报告

7、时序信息,并可进行时序约束。主要参数有:建立时间(tsu)、保持时间(th)、时钟至输出延时(tco)、引脚至引脚延时(tpd)、最大时钟频率(fmax)等.编程和配置:设计流程的最后一步,将软件产生的配置文件下载到目标器件中,进行硬件的实现和验证。2. 时序仿真3. 硬件仿真在完成设计输入及成功编译、仿真后经编译无错后,设置pins锁定引脚,(详见管脚分配表2),经过硬件检验,可以实现如下功能:1) 在交通信号灯开始工作前,等待系统指令。2) 按下key0键,系统切换至正常工作,交通信号灯在正常的顺序下开始闪烁,同时数码管可以实时显示剩余等待时间。3) 按下key1键,系统切换至红灯状态,目

8、的为了在交通事故出现后及时进行事故处理。4) 按下key2键,系统切换至深夜工作状态,全部亮黄灯提醒,过往车辆慢速行驶。表2 管脚分配表原理图Mode5EP3C10E144原理图Mode5EP3C10E144PIO0CLK1PIN38PIO26SEG3PIN74/SW0PIN86PIO27SEG4PIN75PIO15LED0PIN60PIO28SEG5PIN76PIO16LED1PIN64PIO29SEG6PIN77PIO17LED2PIN65PIO30SEG7PIN79PIO18LED3PIN66PIO31DIG0PIN80PIO19LED4PIN67PIO32DIG1PIN83PIO20L

9、ED5PIN68PIO33DIG2PIN84PIO21LED6PIN69PIO34DIG3PIN85PIO22LED7PIN70PIO35DIG4PIN4PIO23SEG0PIN71PIO36DIG5PIN3PIO24SEG1PIN72PIO37DIG6PIN2PIO25SEG2PIN73PIO38DIG7PIN16、实训总结在这次EDA实训中,我们充分运用了上学期学习的知识,将分频器和状态机等知识融入其中,实现了更加智能化的交通灯系统设计,程序代码更易扩展。通过一个星期的实训,我们对于交通灯的控制原理有了清晰的了解,进一步加深了EDA程序设计的熟练程度。对Quartus II 8.0 仿真工

10、具使用更加得心应手。这次实训,我们分工明确,积极配合,体现了团队协作的精神,圆满完成了实训任务。附录(十字路口交通灯程序代码)library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity jtd is port( clock : in std_logic; reset,reset1,reset2 : in std_logic; seg_out : out std_logic_vector(7 downto 0); q_out : out s

11、td_logic_vector(7 downto 0); w:out std_logic_vector(7 downto 0) );end ;architecture bhv of jtd iscomponent qhz_any port( clk: in std_logic; Q: out std_logic ); end component;component qhz_any1 port( clk: in std_logic; Q: out std_logic ); end component;component jsq0123 port( clk: in std_logic; Q: ou

12、t std_logic_vector(1 downto 0);end component;component mux21a port( s : in std_logic_vector(1 downto 0); a,b,c,d : in std_logic_vector(7 downto 0); y : out std_logic_vector(7 downto 0); w1:out std_logic_vector(7 downto 0) ); end component;component traffic port( clk : in std_logic; rst,rst1 ,rst2: i

13、n std_logic; times : out integer range 0 to 100; q : out std_logic_vector(7 downto 0); shi0,shi1: out std_logic_vector(7 downto 0); ge0,ge1: out std_logic_vector(7 downto 0) ); end component; signal m1 : std_logic;signal m2 : std_logic;signal m3 : integer range 0 to 100;signal m4 : std_logic_vector(

14、7 downto 0);signal m5 : std_logic_vector(7 downto 0);signal m6 : std_logic_vector(1 downto 0);signal m7 : std_logic_vector(7 downto 0);signal m8 : std_logic_vector(7 downto 0); begin u1 : qhz_any port map(clk=clock,Q=m1); u2 : qhz_any1 port map(clk=clock,Q=m2); u3 : jsq0123 port map(clk=m2,Q=m6); u4

15、 : traffic port map(clk=m1,q=q_out,rst=reset,rst1=reset1,rst2=reset2,ge0=m4,shi0=m5,ge1=m7,shi1=m8); u5 : mux21a port map(a=m4,b=m5,c=m7,d=m8,y=seg_out,s=m6,w1=w); end bhv; -miao fenpin- library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity qhz_any is generic(n:integer:=200

16、00); port( clk: in std_logic; Q: out std_logic);end qhz_any;architecture bhv of qhz_any is begin process(clk) variable cout:integer:=0; begin if clkevent and clk=1 then if cout(n/2) then Q=1; cout:=cout+1; elsif cout(n-1) then Q=0; cout:=cout+1; else cout:=0; end if; end if; end process; end bhv; -j

17、ishuqi0123- library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jsq0123 is port( clk: in std_logic; Q: out std_logic_vector(1 downto 0);end jsq0123;architecture bhv of jsq0123 is signal cqi:std_logic_vector(1 downto 0); begin process(clk) begin if clkevent and clk=1 then

18、cqi=cqi+1; end if; end process; Q=cqi; end bhv; -scan fenpin- library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity qhz_any1 is generic(n:integer:=20); port( clk: in std_logic; Q: out std_logic);end qhz_any1;architecture bhv of qhz_any1 is begin process(clk) variable cout:i

19、nteger:=0; begin if clkevent and clk=1 then if cout(n/2) then Q=1; cout:=cout+1; elsif cout(n-1) then Q=0; cout:=cout+1; else cout:=0; end if; end if; end process; end bhv; -traffic-library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity traff

20、ic is port( clk : in std_logic; rst ,rst1,rst2: in std_logic; times : out integer range 0 to 100; q : out std_logic_vector(7 downto 0); shi0,ge0,ge1,shi1:out std_logic_vector(7 downto 0);end traffic;architecture bhv of traffic is signal cnt0,cnt1 : integer range 0 to 100; signal l10,l20,l11,l21:inte

21、ger range 0 to 9; type state_value is (s1,s2,s3,s4,s5,s6); signal state : state_value; begin process(clk,rst,rst1,rst2) begin if rst=0 then state=s1; -S,N travel E,W stop cnt0=11; cnt1=7; q=10000001; elsif rst1=0 then state=s5; cnt1=00; cnt0=00; q=10001000; elsif rst2=0 then state=s6; cnt1=00; cnt0=

22、00; q -s1 if cnt1=0 then state=s2; q=10000010; cnt0=3; cnt1=3; else state=s1; cnt0=cnt0-1; cnt1 -s2 if cnt1=0 then state=s3; q=00100100; cnt1=11; cnt0=7; else state=s2; cnt1=cnt1-1; cnt0 -s3 if cnt1=4 then state=s4; q=01000100; cnt0=3; cnt1=3; else state=s3; cnt1=cnt1-1; cnt0 -s4 if cnt1=0 then stat

23、e=s1; cnt0=11; cnt1=7; q=10000001; else state=s4; cnt0=cnt0-1; cnt1 -s4 state=s5; cnt0=00; cnt1 -s4 state=s6; cnt0=00; cnt1=00; end case; -end if; end if; end process;l10=cnt0/10; l20=cnt0 rem 10;- JI SUAN SHI WEI ; GE WEIl11=cnt1/10; l21shi0shi0shi0shi0shi0shi0shi0shi0shi0shi0ge0ge0ge0ge0ge0ge0ge0ge0ge0ge0shi1shi1shi1shi1shi1shi1shi1shi1shi1shi1ge1ge1ge1ge1ge1ge1ge1ge1ge1ge1=01101111; -9 end case; end process;end bhv; -2 xuan 1- library ieee;use ieee.std_logic_1164.all;entity mux

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1