可编程逻辑器件可编程辑器件.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
可编程逻辑器件可编程辑器件

可编程逻辑器件报告 物理与机电工程学院 电气工程及其自动化 黄健 19920102203335 交通灯控制器 设计任务与要求 在十字路口,每条道路各有一组红、黄、绿灯和倒计时显示器,用以指挥车辆和行人有序地通行。其中,红灯(R)亮,表示该条道路禁止通行;黄灯(Y)亮,表示停车;绿灯(G)亮,表示可以通行。倒计时显示器是用来显示允许通行或禁止通行时间。交通灯控制器就是用来自动控制十字路口的交通灯和计时器,指挥各种车辆和行人安全通行。 (1)在十字路口的两个方向上各设一组红、绿、黄灯,显示顺序为其中一方向(东西方向)是绿灯、黄灯、红灯;另一方向(南北方向)是红灯、绿灯、黄灯。 (2)设置一组数码管,以倒计时的显示方式允许通行或禁止通行的时间,其中绿灯、黄灯、红灯的持续时间分别是20s、5s、和25s。 (3)当各条路上任意一条上出现特殊情况时,如当消防车、救护车或其他需要优先放行的车辆通过时,各方向上均是红灯亮,倒计时停止,显示数字在闪烁。当特殊运行状态结束后,控制器恢复原来状态,继续正常运行。 (4)用两组数码管实现双向倒计时显示。 交通灯控制器的核心范围是一个计数范围为0~49共(50秒)的计数器和一个根据计数值做出规定反映的控制器。另外,还需要输入CLK时钟信号。最后,要驱动七段数码管,显然还需要一个译码电路。 交通灯控制器原理图 设计方案 交通灯控制器的核心范围是一个计数范围为0~49共(50秒)的计数器和一个根据计数值做出规定反映的控制器。另外,作者所用的实验仪配备的晶振为20MHZ,因此还需要一个分频电路。最后,要驱动七段数码管,显然还需要一个译码电路。 交通灯控制器系统框图 设计实现与仿真结果 计数器的设计 这里需要的计数器的计数范围为0~49。计到49后,下一个时钟沿恢复到0,开始下一轮计数。此外,当检测到特殊情况(hold=1)发生时,计数器暂停计数,而系统恢复信号则使计数器异步清0。 计数器的程序 library ieee; use ieee.std_logic_1164.all; entity counter is port (clock:in std_logic; reset:in std_logic; hold:in std_logic; countnum: buffer integer range 0 to 49); end; architecture behavior of counter is begin process(reset,clock) begin if reset=1 then countnum=0; elsif rising_edge(clock) then if hold=1 then ——当出现紧急情况时,计数器暂停计数 countnum=countnum; else if countnum=49 then countnum=0; else countnum=countnum+1; end if; end if; end if; end process; end; 交通灯计数器波形图 交通灯计数器波形图 控制器的设计 控制器的作用是根据计数器控制发光二极管的亮、灭,以及输出倒计时数值给七段数译管的分位译码电路。此外,当检测到特殊情况时,无条件点亮红色的发光二极管。 由于控制器要对于数值进行判断,很容易想到用IF语句来实现。本设计采用利用时钟沿的下降沿读取前级计数器的计数植,然后做出反应。 控制器符号框图 library ieee; use ieee.std_logic_1164.all; entity controller is port (clock:in std_logic; hold:in std_logic; countnum:in integer range 0 to 49; ——前级计数器的计数值 numa,numb:out integer range 0 to 25; ——倒计时数值的计数值 reda,greena,yellowa:out std_logic; ——控制东西方向红黄绿灯的亮灭 redb,greenb,yellowb:out std_logic; ——控制南北方向红黄绿灯的亮灭 flash:out std_logic); ——用以指示七段数码管显示数字的闪烁 end; architecture be

您可能关注的文档

文档评论(0)

ganqludp + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档