- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《122949张杏花12电子
交通灯系统设计
实验任务
设计十字路口交通控制器,A方向和B方向分别设置左拐L,绿G,黄Y,红R四盏灯,以及倒计时显示器,左转灯亮表示左转车辆可以通行,绿灯亮直行车辆可以通行,黄灯亮表示左转和直行即将禁止通行,红灯亮表示左转和直行车辆禁止通行,倒计时显示器用来显示允许通行或禁止通行的时间,A方向显示灯分别用AL;AY,AG,AR表示,B方向的显示灯用BL,BY,BG,BR表示。
实验要求
(1)在十字路口的A,B两个方向各设一组左拐,绿灯,黄灯,红灯,显示顺序:左拐-绿灯-黄灯-红灯
(2)在AB方向各设一组倒计时显示器,A方向左拐,绿灯,黄灯,红灯显示时间分别为15S,40S,5S,55S,B方向分别为15S,30S,5S,65S
(3)控制器有有5种工作方式,可通过方式开关的控制进行切换,前四种为特殊情况,第5中用于正常情况。
1,A左拐长亮,B红亮,允许A方向左转通过
2,A绿灯长亮,B红灯亮,允许A方向直行
3,B左拐长亮,A红灯亮,允许B左转车通过
4,B绿灯长亮,A红灯亮,允许B向车直行
(3)控制器设有工作方式状态显示
(4)系统设有总复位开关
3、实验过程
1、计时模块的设计
(1)【程序】
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity jtd_time is
port(clk,clr:in std_logic;
m,s:in std_logic_vector(2 downto 0);
at,bt:out std_logic_vector(7 downto 0));
end jtd_time;
architecture one of jtd_time is
signal ati,bti:std_logic_vector(7 downto 0);
signal art,agt,alt,abyt:std_logic_vector(7 downto 0);
signal brt,bgt,blt:std_logic_vector(7 downto 0);
begin
art=X55;
agt=X40;
alt=X15;
abyt=X05;
brt=X65;
bgt=X30;
blt=X15;
process(clk,clr,m,s)
begin
if clr=1 then ati=X01;bti=X01;
elsif(clkevent and clk=1)then
if m=000 then ati=X01;bti=X51;
end if;
if m=001 then ati=X01;bti=X06;
end if;
if m=010 then ati=X41;bti=X01;
end if;
if m=011 then ati=X06;bti=X01;
end if;
if m100then
if(ati=X01)or(bti=X01) then
case s is
when 000 =ati=alt;bti=brt;
when 001 =ati=abyt;
when 010 =ati=agt;
when 011 =ati=abyt;
when 100 =ati=art;bti=blt;
when 101 =bti=abyt;
when 110 =bti=bgt;
when 111 =bti=abyt;
when others =ati=ati;bti=bti;
end case;
end if;
if ati/=X01then
if ati(3 downto 0)=0000then
ati(3 downto 0)=1001;
ati(7 downto 4)=ati(7 downto 4)-1;
else ati(3 downto 0)=ati(3 downto 0)-1;
ati(7 downto 4)=ati(7 downto 4);
end if;
end if;
if bti/=X01 then
if bti(3 downto 0)=0000then
bti(3 downto 0)=1001;
bti(7 downto 4)=bti(7 downto 4)-1;
else bti(3 downto 0)=bti(3
文档评论(0)