基于某VHDL的交通信号灯设计.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
交通灯控制器 姓名__孔亮__ 学号__0928401116__ 专业__电子信息工程__ 一、设计要求: 1、能显示十字路口东西、南北两个方向的红、黄、绿灯的指示状态,用两组发光管表示两个方向的红、黄、绿灯。 2、能实现正常的倒计时功能。 用两个数码管LED作为东西、南北方向的时间显示,时间为红灯45秒,绿灯40秒,黄灯5秒。 3、能实现特殊状态的功能。 按键1按下后能实现: (1)、计数器停止计数并保持在原来的状态。 (2)、东西南北路口均显示红灯状态。 (3)、特殊状态解除后能继续计数。 4、能实现总体清零功能 按键2按下后系统实现总清零,计数器由初始状态计数,对应状态的指示灯亮。 二、设计过程: 1、总体设计概要: 根据交通灯控制器的功能与要求,将其总体电路分为状态控制,倒计时,数码管显示,信号灯显示模块(jtd_ctrl,jtd_time,jtd_xs,jtd_light),jtd_ctrl实现逻辑与时序控制,外部两路脉冲振荡器的频率选为1kHz和1Hz的信号。 M CTR CLK CTR M CLK CLK1K 图1 设计框图 2、交通灯原理分析 当M =‘1’时,进入紧急状态,ABL输出为B“100100”,即南北、东西方向均为红灯亮。 当M=‘1’跳变到M=‘0’时,数码管继续计时,恢复正常工作状态。 当CTR=‘1’时,系统清零,交通灯从初始状态(即ABL输出为“100010”)开始工作。 当M=‘0’且CTR=‘0’时,交通灯即开始正常工作。经过40秒,ABL由B“100010”变为B“100001”,再经过5秒,ABL变为B“010100”,再经过40秒,S变为B“001100”,再经过5秒,ABL变为B“100010” ……如此循环下去。 南北、东西方向的红绿灯按表一表二变化。 表一 交通灯状态转换表 东西(A)方向 红灯 绿灯 黄灯 45秒 40秒 5秒 南北(B)方向 绿灯 黄灯 红灯 40秒 5秒 45秒 表二 交通灯状态转换表 CTR M ABL 备注 0 1 100100 长时间亮红灯 1 0 100010 初始状态 0 0 状态1: 100010 持续40秒,转到状态2 状态2: 100001 持续5秒,转到状态3 状态3: 010100 持续40秒,转到状态4 状态4: 001100 持续5秒,转到状态1 注:S的六位分别对应东西(A)方向的红绿黄和南北(B)方向的红绿黄,’1’表示亮,’0’表示灭。 三、模块设计及仿真 1、顶层文件的设计 顶层原理图设计可以依据系统框图进行,由反馈控制,倒计时,数码管显示,信号灯显示模块(jtd_ctrl,jtd_time,jtd_xs,jtd_light)五部分组成。其顶层原理图如图2所示。 图2 顶层原理图 顶层文件的仿真波形图如图3所示: 图3 顶层文件的仿真波形 2、状态控制模块(jtd_ctrl)的设计 状态控制模块根据倒计时模块(jtd_time)的输出信号和1Hz的时钟信号,产生系统的状态机,控制其他部分的协调工作。该模块的源文件程序如下: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY JTD_CTRL IS PORT(CLK:IN STD_LOGIC; CTR: IN STD_LOGIC; AT,BT:IN STD_LOGIC_VECTOR(7 DOWNTO 0); S:OUT STD_LOGIC_VECTOR(1 DOWNTO 0)); END JTD_CTRL; ARCHITECTURE JTD OF JTD_CTRL IS SIGNAL Q:STD_LOGIC_VECTOR(1 DOWNTO 0); BEGIN PROCESS(CLK,AT,BT,CTR) BEGIN IF CTR=1 THEN Q=00; ELSE IF CLKEVENT AND CLK =1 THEN IF(AT = X01)OR(BT = X01) THEN Q=Q+1; ELSE Q=Q; END IF; END IF; END IF; END PROCESS; S=Q; END JTD; 状态控制模块的仿真波形如图4所示: 图4 状态控制模块的仿真波形图 3、倒计时模块(jtd_time)的设计 倒计时模块用来设定A和B两个方向计时器的初值,并为数码管显示模块提供倒计时时间。倒计时模块源文件程序如下: LIBRARY IEEE; USE IEEE.STD_LOG

文档评论(0)

linlin921 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档