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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

交通灯控制逻辑电路设计与总结报告.docx

1、交通灯控制逻辑电路设计与总结报告交通灯控制逻辑电路设计与总结报告 一、设计任务用CPLD设计路口交通灯控制器二、设计要求 1、满足一下时序要求:南北方向红灯亮,东西方向绿灯亮;南北方向绿灯亮,东西方向红灯亮;2、每一方向的红(绿)黄灯总共维持30秒;3、十字路口要有时间显示,具体为:当某一方向绿灯亮时,置显示器为30秒,然后以每秒减一技术方式工作,直至减到数为4秒时,红绿灯熄灭,黄灯开始间隙闪耀4秒,减到0时,红绿灯交换,一次工作循环结束,进入下一步另一方向的工作循环;4、红绿灯均采用发光二极管;5、设计由晶振电路产生1Hz标准秒信号的单元电路 (实际秒脉冲由开发箱提供);6、要求对整体电路进

2、行仿真,观察并记录下仿真波形;7、选作部分:a、手动调整和自动控制,夜间为黄灯闪耀;b、白天黄灯亮时,以2Hz的速度闪烁点亮四秒;c、红绿灯循环点亮时间可以自由修改。三、设计设备含有Quartus软件的电脑一台,可下载的试验台;四、设计方法使用VHDL语言进行程序的设计运行和仿真,以及波形的运行仿真,最后进行下载仿真;五、方案论证 方案1:把整个流程分成几个进程来做;方案2:每个进程都使用if和case语句实现功能的实现;方案3:使用状态机来实现状态间的转换; 方案论证:1、要实现整个流程,需要做的输出内容类型不同,如果放在一个进程里面就比较容易混淆,产生混乱。而采用分成几个进程来做的方式就明

3、确了每个模块的内容和分工,使其调理清晰,一目了然;2、if语句是条件语句,是VHDL语言中常用的基本语句。该流程中的变量比较繁多,而使用case语句分情况列出来,简洁明了。3、状态机的使用格式简洁,使用简单方便,特别是在进行状态的转换时候。并行的状态转换不易出错,可将状态转换、赋值、计数等多个功能封装在某一个状态中,并且更加便于为系统添加新的状态功能。方案选定:通过以上分析,确定用以上方案为本次设计的方案。六、工作原理先对所给时钟脉冲进行分频到标准时钟脉冲;设计两个时钟控制倒计时,倒计时的时间可自由修改,由输入决定;设计另一个时钟,用以控制白天与夜间模式的转换;在白天时,根据倒计时的数字进行红

4、绿灯的状态转换;夜间时,红绿灯状态改为夜间模式:黄灯闪烁。七、程序设计-交通灯控制系统所使用的库和包- library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all; -交通灯控制系统的实体-entity jt is port(clk,reset:in std_logic; -时钟脉冲clk由系统直接提供,需要进行分频;reset是启动键,当reset为1是,系统启动t0:integer range 0 to30; -红绿灯循环点亮的时间,根据输入的不同系统运行的不同r1,y1,g1,r2,y2,g2:out

5、std_logic; - r1为东西方向红灯, y1为东西方向黄灯,g1为东西方向绿灯;r2为南北方向红灯,y2为南北方向黄灯,g2为南北方向绿灯 ec0,ec1,nc0,nc1:out std_logic_vector(3 downto 0); - ec0,ec1分别为东西方向的倒计时间的个位和十位;nc0,nc1分别为南北方向的倒计时间的个位和十位end jt;-交通灯控制系统的结构体(5个进程)-architecture one of jt is type state_type is (s0,s1,s2,s3); -定义状态的类型signal state:state_type; -使用状

6、态机signal k:std_logic; -分频后的1Hz的标准时钟脉冲signal c1,c2:integer range 0 to 30; -定义东西、南北方向的两个倒计时的计数signal t1:integer range 0 to 3600; signal t2:integer range 0 to 24; -定义一个时钟,用以控制白天与夜间模式Begin-该进程用以分频-q0:process(clk) variable tt:std_logic_vector(9 downto 0); -中间变量 begin if clkevent and clk=1 then if tt=1111

7、101000 then -把所给1kHz分频成1Hz的脉冲k,10000分频,仿真值用“ 0000000100”八分频 tt:=(others=0); k=1; else tt:=tt+1;k=0; end if; end if;end process q0;-该进程用以设计时钟-q1:process(k,reset) begin if reset=1 then -启动开关为1时,系统开始运行t1=0;t2=0; -从0点开始elsif k=1 and kevent thenif t1=3599 then -一个t1循环是一个秒,仿真值用“35”if t2=23 then -一个t1循环是一个

8、小时,一天24小时t2=0; elset2=t2+1;end if;t1=0;elset1=5 and t2=22 then -白天模式5:00到22:00之间if reset=1 then -启动开关为1时,系统开始运行,进行状态转换r1=0;y1=0;g1=1; -东西方向绿灯亮r2=1;y2=0;g2=0; -南北方向红灯亮state=s0; -红绿灯处于初始状态s0c1=t0;c2-当处于第1状态时,讨论 if c1=5 then -由于进程内部的并列进行,当倒计时第4秒时,进入到第2状态s1 state=s1; c1=c1-1; c2=c2-1; -倒计时递减 elsif c2=0

9、then -倒计时减到0时,再从初始值开始 c1=t0; c2=t0; else -否则继续保持第1状态s0 state=s0; c1=c1-1; c2-当处于第2状态时,讨论 if c1=1 then-由于进程内部的并列进行,当倒计时第t0秒时,进入到第3状态s2 state=s2; c1=c1-1; c2=c2-1; else-否则继续保持第2状态 state=s1; c1=c1-1; c2-当处于第3状态时,讨论 if c2=5 then-由于进程内部的并列进行,当倒计时第4秒时,进入到第4状态s3 state=s3; c1=c1-1; c2=c2-1; elsif c1=0 then

10、-倒计时减到0时,再从初始值开始 c1=t0; c2=t0; else -否则继续保持第3状态 state=s2; c1=c1-1; c2-当处于第4状态时,讨论 if c2=1 then-由于进程内部的并列进行,当倒计时第t0秒时,进入到第1状态s0 state=s0; c1=c1-1; c2=c2-1; else-否则继续保持第4状态 state=s3; c1=c1-1; c2 state=s0; end case; if state=s0 then r1=0;y1=0;g1=1; r2=1;y2=0;g2=0; elsif state=s1 then r1=0;g1=0; r2=1;y2

11、=0;g2=0; if c1=4 or c1=2 then y1=1; else y1=0; end if; elsif state=s2 then r1=1;y1=0;g1=0; r2=0;y2=0;g2=1; elsif state=s3 then r1=1;y1=0;g1=0; r2=0;g2=0; if c2=4 or c2=2 then y2=1; else y2=0; end if; end if; -各个状态的红绿灯变量的赋值,1亮0熄end if;else -夜间模式22:00到次日5:00之间c2=0;c1=0;r1=0;r2=0;g1=0;g2=0;y1=k;y2ec0=0

12、000;ec1ec0=0001;ec1ec0=0010;ec1ec0=0011;ec1ec0=0100;ec1ec0=0101;ec1ec0=0110;ec1ec0=1000;ec1ec0=1001;ec1ec0=0000;ec1ec0=0001;ec1ec0=0010;ec1ec0=0011;ec1ec0=0100;ec1ec0=0101;ec1ec0=0110;ec1ec0=0111;ec1ec0=1000;ec1ec0=1001;ec1ec0=0000;ec1ec0=0001;ec1ec0=0010;ec1ec0=0011;ec1ec0=0100;ec1ec0=0101;ec1ec0=0

13、110;ec1ec0=0111;ec1ec0=1000;ec1ec0=1001;ec1ec0=0000;ec1ec0=0000;ec1nc0=0000;nc1nc0=0001;nc1nc0=0010;nc1nc0=0011;nc1nc0=0100;nc1nc0=0101;nc1nc0=0110;nc1nc0=0111;nc1nc0=1000;nc1nc0=1001;nc1nc0=0000;nc1nc0=0001;nc1nc0=0010;nc1nc0=0011;nc1nc0=0100;nc1nc0=0101;nc1nc0=0110;nc1nc0=0111;nc1nc0=1000;nc1nc0=1

14、001;nc1nc0=0000;nc1nc0=0001;nc1nc0=0010;nc1nc0=0011;nc1nc0=0100;nc1nc0=0101;nc1nc0=0110;nc1nc0=0111;nc1nc0=1000;nc1nc0=1001;nc1nc0=0000;nc1nc0=0000;nc1=0000;-否则,LED灯显示0 end case;end process q4;-end architecture one; -所有进程结束-八、仿真结果1、clk为输入脉冲;开始令reset为1,启动系统,系统正常工作后值为0; t0为红绿灯循环时间,可自由修改,如果输入值为0010000,则为16秒倒计时。如下图:系统从0点开始运行,处于夜间模式时,倒计时都为“00”,两个方向都为黄灯闪烁,红绿灯都熄灭。2、5:00之后,进入到白天模式:从第1状态(东西方向绿灯亮、南北方向红灯)开始,倒计时从16秒开始递减。倒计时第4秒后进入第2 状态(东西方向黄灯闪烁,南北方向红灯亮)。3、倒计时第0秒后进入第3 状态(东西方向红灯亮,南北方向绿灯亮),倒计时再从16秒开始递减;倒计时第4秒后进入第4 状态(东西方向红灯亮,南

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

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