- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
WORD 格式 整理
学习 参考 资料 分享
交通灯控制器
姓名__孔亮__ 学号__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的信号。
信号灯显示电路ARAGAYM
信号灯显示电路
AR
AG
AY
状态控制电路
状态控制电路
BRBG
BR
BG
BY
CLK
扫描显示电路LED1LED2LED3LED4计时电路CTR
扫描显示电路
LED1
LED2
LED3
LED4
计时电路
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
原创力文档


文档评论(0)