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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

实验五 交通灯实验.docx

1、实验五 交通灯实验南昌大学实验报告学生姓名: 学 号: 6100210173 专业班级: 中兴101班实验类型: 验证 综合 设计 创新 实验日期: 2012 实验五 十字路口交通灯控制器设计一、实验目的1) 熟悉状态机的使用; 2) 熟悉多进程程序设计; 3) 熟悉实验设备和软件,掌握实验操作。 二、实验内容和要求1、一条主干道,一条乡间公路。组成十字路口,要求优先保证主干道通行。有MR(主红)、MY(主黄)、MG(主绿)、BR(乡红)、BY(乡黄)、BG(乡绿)六盏交通灯需要控制;交通灯由绿红有5秒黄灯亮的间隔时间,由红绿没有间隔时间;系统有MRBY、MRBG、MYBR、MGBR四个状态;

2、2、乡间公路右侧埋有一个传感器,当有车辆通过乡间公路时,发出请求信号SB=1,余时间S=0;主干道也有一个,当有车经过的时候,发出请求信号SM=1;3、平时系统停留在MGBR(主干道通行)状态,一旦SB信号有效,经MYBR(黄灯状态)转入MRBG(乡间公路通行)状态,但要保证MGBR的状态不得短于45s;一旦SB信号无效,系统脱离MRBG状态。随即经MRBY(黄灯状态)进入MGBR状态,即使SB信号一直有效,MRBG状态也不得长于25秒钟。三、设计思想1、程序部共分为五大模块1、五秒倒计时2、二十五秒倒计时3、四十五秒倒计时4、状态机设计5、数码管选择并分配其中有一个问题,计时时钟和数码管选择

3、不能使用一个时钟,因为数码管选择需要很高频率的时钟,而计时时钟需要1HZ时钟,因此在结构体中还有一个进程,用于把CLKS数码管选择时钟分频后得到CLK,把它用于计时时钟。2、程序设计所要达到的效果 开始,SM=0、SB=0,处于主绿从红的状态,且这时数码管不计数。若SM=1(主有车)、SB=0(从无车),状态不变;若SM=0、SB=1,此时主干道由绿变黄再变红,而从干道待主干道变红时即变绿;若SM=1、SB=1,此时数码管进行45s倒计时后,转入主黄从红的状态,计时5s后转入主红从绿的状态,计时25s后,在转入主红从黄的状态,最后计时5s后又从新回到主绿从黄的状态。若在状态进行转换的时候SM、

4、SB的状态发生了变化,即按上述SM、SB如何变化进行状态转换。3、状态转移图如下 (仅当SM=1时) SB=0 C45s MGBR MYBR SB=1 5秒后 5秒后 C5 SB=1 C25四、试验程序实验总框图-1000分频程序 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY cou1 ISGENERIC(N: INTEGER :=4); -定义一个genericPORT(CLK:IN STD_LOGIC; CLK1:OUT STD_LOGIC); END cou1;ARCHITE

5、CTURE behav OF cou1 ISSIGNAL CNT :STD_LOGIC_VECTOR(9 DOWNTO 0) ;BEGINPROCESS(CLK) BEGIN IF CLKEVENT AND CLK = 1 THEN -产生一个占空比为50%的方波 IF CNT=N/2-1 THEN CLK1=1;CNT=CNT+1; IF CNT=N-1 THEN CLK1=0;CNT=0000000000; END IF; ELSE CLK1=0;CNTMR=0; MY=0; MG=1; -状态一:主绿从红 BR=1; BY=0; BG=0; IF(SB AND SM)=1 THEN -主

6、从干道都有车时进行45s倒 IF S=45 THEN -计时,计完后转入状态二 STATE=B; CLR:=0; EN:=0; ELSE STATE=A; CLR:=1; EN:=1; END IF; ELSIF(SB AND (NOT SM)=1 THEN -主干道无车,从干道有车转到状态二 STATE=B; CLR:=0; EN:=0; ELSE STATEMR=0; MY=1; MG=0; -状态二:主黄从红 BR=1; BY=0; BG=0; IF S=5 THEN -5s倒计时,计完转入状态三 STATE=C;CLR:=0; EN:=0; ELSE STATEMR=1; MY=0;

7、MG=0; -状态三:主红从绿 BR=0; BY=0; BG=1; IF(SM AND SB)=1 THEN -主从干道都有车,25s倒计时后转入 IF S=25 THEN -状态四 STATE=D; CLR:=0; EN:=0; ELSE STATE=C; CLR:=1; EN:=1; END IF;ELSIF SB=0 THEN -若从干道此时无车,直接转入状态四 STATE=D; CLR:=0; EN:=0; ELSE STATEMR=1; MY=0; MG=0; -状态四:主红从黄 BR=0; BY=1; BG=0; IF S=5 THEN -5s倒计时后转入状态一 STATE=A;C

8、LR:=0; EN:=0; ELSE STATE=D; CLR:=1; EN:=1; END IF; END CASE; END IF; END PROCESS CNT;END ARCHITECTURE ART;-45s延时-CNT45S.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT45S IS PORT(SB,CLK,EN45:IN STD_LOGIC; DOUT45M,DOUT45B:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END ENT

9、ITY CNT45S;ARCHITECTURE ART OF CNT45S IS SIGNAL CNT6B: STD_LOGIC_VECTOR(5 DOWNTO 0); BEGIN PROCESS(SB,CLK,EN45) IS BEGIN IF SB=0THEN CNT6B=CNT6B-CNT6B-1; -若从干道无车,不计时 ELSIF(CLKEVENT AND CLK= 1)THEN IF EN45=1THEN CNT6B=CNT6B+1;ELSIF EN45=0THEN CNT6BDOUT45M=01000101; DOUT45BDOUT45M=01000100; DOUT45BDOU

10、T45M=01000011; DOUT45BDOUT45M=01000010; DOUT45BDOUT45M=01000001; DOUT45BDOUT45M=01000000; DOUT45BDOUT45M=00111001; DOUT45BDOUT45M=00111000; DOUT45BDOUT45M=00110111; DOUT45BDOUT45M=00110110; DOUT45BDOUT45M=00110101;DOUT45BDOUT45M=00110100; DOUT45BDOUT45M=00110011; DOUT45BDOUT45M=00110010; DOUT45BDOUT

11、45M=00110001; DOUT45BDOUT45M=00110000; DOUT45BDOUT45M=00101001; DOUT45BDOUT45M=00101000; DOUT45BDOUT45M=00100111; DOUT45BDOUT45M=00100110; DOUT45BDOUT45M=00100101; DOUT45BDOUT45M=00100100; DOUT45BDOUT45M=00100011; DOUT45BDOUT45M=00100010; DOUT45BDOUT45M=00100001; DOUT45BDOUT45M=00100000; DOUT45BDOUT

12、45M=00011001; DOUT45BDOUT45M=00011000; DOUT45BDOUT45M=00010111; DOUT45BDOUT45M=00010110; DOUT45BDOUT45M=00010101; DOUT45BDOUT45M=00010100; DOUT45BDOUT45M=00010011; DOUT45BDOUT45M=00010010; DOUT45BDOUT45M=00010001; DOUT45BDOUT45M=00010000; DOUT45BDOUT45M=00001001; DOUT45BDOUT45M=00001000; DOUT45BDOUT

13、45M=00000111; DOUT45BDOUT45M=00000110; DOUT45BDOUT45M=00000101; DOUT45BDOUT45M=00000100; DOUT45BDOUT45M=00000011; DOUT45BDOUT45M=00000010; DOUT45BDOUT45M=00000001; DOUT45BDOUT45M=00000000; DOUT45B=00000000; END CASE; END PROCESS;END ARCHITECTURE ART;-25s延时 (与45s延时编程思想一样,这里不做说明了)-CNT25S.VHDLIBRARY IE

14、EE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT25S IS PORT(SB,SM,CLK,EN25:IN STD_LOGIC; DOUT25M,DOUT25B:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END ENTITY CNT25S;ARCHITECTURE ART OF CNT25S IS SIGNAL CNT5B: STD_LOGIC_VECTOR(4 DOWNTO 0); BEGIN PROCESS(SB,SM,CLK,EN25) IS BEGIN IF SB=

15、0 OR SM=0 THEN CNT5B=CNT5B-CNT5B-1;ELSIF(CLKEVENT AND CLK= 1)THEN IF EN25=1 THEN CNT5B=CNT5B+1; ELSIF EN25=0THEN CNT5BDOUT25B=00100101; DOUT25MDOUT25B=00100100; DOUT25MDOUT25B=00100011; DOUT25MDOUT25B=00100010; DOUT25MDOUT25B=00100001; DOUT25MDOUT25B=00100000; DOUT25MDOUT25B=00011001; DOUT25MDOUT25B

16、=00011000; DOUT25MDOUT25B=00010111; DOUT25MDOUT25B=00010110; DOUT25MDOUT25B=00010101; DOUT25MDOUT25B=00010100; DOUT25MDOUT25B=00010011; DOUT25MDOUT25B=00010010; DOUT25MDOUT25B=00010001; DOUT25MDOUT25B=00010000; DOUT25MDOUT25B=00001001; DOUT25MDOUT25B=00001000; DOUT25MDOUT25B=00000111; DOUT25MDOUT25B

17、=00000110; DOUT25MDOUT25B=00000101; DOUT25MDOUT25B=00000100; DOUT25MDOUT25B=00000011; DOUT25MDOUT25B=00000010; DOUT25MDOUT25B=00000001; DOUT25MDOUT25B=00000000; DOUT25M=00000000; END CASE; END PROCESS;END ARCHITECTURE ART;-5s延时 (与45s类似)-CNT05S.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD

18、_LOGIC_UNSIGNED.ALL;ENTITY CNT05S IS PORT(CLK,EN05M,EN05B:IN STD_LOGIC; DOUT5: OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END ENTITY CNT05S;ARCHITECTURE ART OF CNT05S IS SIGNAL CNT3B: STD_LOGIC_VECTOR(2 DOWNTO 0); BEGIN PROCESS(CLK,EN05M,EN05B) IS BEGIN IF(CLKEVENT AND CLK= 1)THEN IF EN05M=1 OR EN05B=1 THEN CNT3B=CNT3B+1; ELSE CNT3BDOUT5DOUT5DOUT5DOUT5DOUT5-DOUT5=00000000; END CASE; END PROCESS;END ARCHITECTURE ART;-数码管显示控制程序-XSKZ.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_11

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

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