帮忙设计一个现代交通灯控制系统的程序---(用VHDL语言)
程序要求是:1)能显示十字路口东西、南北两个方向的红、黄、绿的指示状态;用两组红、黄、绿三色灯作为两个方向的红、黄、绿灯。2)能实现正常的倒计时功能;用两组数码管作为东西...
程序要求是:1)能显示十字路口东西、南北两个方向的红、黄、绿的指示状态;
用两组红、黄、绿三色灯作为两个方向的红、黄、绿灯。
2)能实现正常的倒计时功能;
用两组数码管作为东西、南北方向的倒计时显示,显示时间为红灯35秒,绿灯50秒,黄灯5秒。
3)能实现特殊状态的功能。按s1键后,能实现特殊状态功能:
(1)显示倒计时的两组数码管闪烁;
(2)计数器停止计数并保持在原来的状态;
(3)东西、南北路口均显示红灯状态;
(4)特殊状态解除后能继续计数
4)能实现总体清零功能。
按下sb键后,系统实现总体清零,计数器由初状态计数,对应状态的指示灯亮。
5)用vhdl语言设计上述功能的交通灯控制器,并用层次化设计方法该电路。
6)完成电路全部设计后,通过系统实验箱下载验证设计课题的正确性。
~~我没有悬赏分。。。希望哪位乐于助人的朋友帮一下忙哈 展开
用两组红、黄、绿三色灯作为两个方向的红、黄、绿灯。
2)能实现正常的倒计时功能;
用两组数码管作为东西、南北方向的倒计时显示,显示时间为红灯35秒,绿灯50秒,黄灯5秒。
3)能实现特殊状态的功能。按s1键后,能实现特殊状态功能:
(1)显示倒计时的两组数码管闪烁;
(2)计数器停止计数并保持在原来的状态;
(3)东西、南北路口均显示红灯状态;
(4)特殊状态解除后能继续计数
4)能实现总体清零功能。
按下sb键后,系统实现总体清零,计数器由初状态计数,对应状态的指示灯亮。
5)用vhdl语言设计上述功能的交通灯控制器,并用层次化设计方法该电路。
6)完成电路全部设计后,通过系统实验箱下载验证设计课题的正确性。
~~我没有悬赏分。。。希望哪位乐于助人的朋友帮一下忙哈 展开
展开全部
给你一个例子参考参考!把程序中的“;”改一下我做PPT时用成中文的:好了。
1. 设计思路
设交通灯信号控制器用于主干道与支道公路的交叉路口,要求是优先保证主干道的畅通。因此,平时处于“主干道绿灯,支道红灯”状态,只有在支道有车辆要穿行主干道时,才将交通灯切向“主干道红灯,支道绿灯”,一旦支道无车辆通过路口,交通灯又回到“主干道绿灯,支道红灯”的状态。此外,主干道和支道每次通行的时间不得短于30 s,而在两个状态交换过程出现的“主黄,支红”和“主红,支黄”状态,持续时间都为4 s。
2. VHDL源程序
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY JTDKZ IS
PORT(CLK,SM,SB;IN BIT;--这里要求CLK为1 kHz
MR,MY,MG,BR,BY,BG:OUT BIT);
END JTDKZ;
ARCHITECTURE ART OF JTDKZ IS
TYPE STATE_TYPE IS (A,B,C,D);
SIGNAL STATE:STATE_TYPE;
BEGIN
CNT:PROCESS(CLK)
VARIABLE S:INTEGER RANGE 0 TO 29;
VARIABLE CLR,EN:BIT;
BEGIN
IF (CLK'EVENT AND CLK='1') THEN
IF CLR = '0' THEN S:=0;
ELSIF EN = '0' THEN S:=S;
ELSE S:=S+1;
END IF;
CASE STATE IS
WHEN A=>MR<='0';MY<='0';MG<='1';
BR<= '1';BY<= '0';BG<= '0';
IF (SB AND SM)= '1' THEN
IF S=29 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
STATE<=A;CLR:='1';EN:='1';
END IF;
WHEN B =>MR<= '0';MY<= '1';MG<= '0';
BR<= '1';BY<= '0';BG<= '0';
IF S=3 THEN
STATE <=C;CLR:='0';EN:='0';
ELSE
STATE<=B;CLR:='1';EN:='1';
ENDIF;
WHEN C =>MR<= '1';MY<= '0';MG<= '0';
BR<= '0';BY<= '0';BG <= '1';
IF (SM AND SB) = ' 1' THEN
IF S=29 THEN
STATE<=D;CLR:='0';EN:='0';
ELSE
STATE<=C;CLR:= '1';EN:='1';
ELSIF SB = '0' THEN
STATE <=D;CLR:= '0';EN:='0';
ELSE
STATE<=C;CLR:='1';EN:='1';
END IF ;
WHEN D=>MR<= '1';MY<='0';MG<='0';
BR<='0';BY<='1';BG<= '0';
IF S =3 THEN
STATE<=A;CLR:='0';EN:='0';
ELSE
STATE<=D;CLR:='1';EN:='1';
END IF ;
END CASE;
END IF;
END PROCESS CNT;
END ART;
1. 设计思路
设交通灯信号控制器用于主干道与支道公路的交叉路口,要求是优先保证主干道的畅通。因此,平时处于“主干道绿灯,支道红灯”状态,只有在支道有车辆要穿行主干道时,才将交通灯切向“主干道红灯,支道绿灯”,一旦支道无车辆通过路口,交通灯又回到“主干道绿灯,支道红灯”的状态。此外,主干道和支道每次通行的时间不得短于30 s,而在两个状态交换过程出现的“主黄,支红”和“主红,支黄”状态,持续时间都为4 s。
2. VHDL源程序
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY JTDKZ IS
PORT(CLK,SM,SB;IN BIT;--这里要求CLK为1 kHz
MR,MY,MG,BR,BY,BG:OUT BIT);
END JTDKZ;
ARCHITECTURE ART OF JTDKZ IS
TYPE STATE_TYPE IS (A,B,C,D);
SIGNAL STATE:STATE_TYPE;
BEGIN
CNT:PROCESS(CLK)
VARIABLE S:INTEGER RANGE 0 TO 29;
VARIABLE CLR,EN:BIT;
BEGIN
IF (CLK'EVENT AND CLK='1') THEN
IF CLR = '0' THEN S:=0;
ELSIF EN = '0' THEN S:=S;
ELSE S:=S+1;
END IF;
CASE STATE IS
WHEN A=>MR<='0';MY<='0';MG<='1';
BR<= '1';BY<= '0';BG<= '0';
IF (SB AND SM)= '1' THEN
IF S=29 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
STATE<=A;CLR:='1';EN:='1';
END IF;
WHEN B =>MR<= '0';MY<= '1';MG<= '0';
BR<= '1';BY<= '0';BG<= '0';
IF S=3 THEN
STATE <=C;CLR:='0';EN:='0';
ELSE
STATE<=B;CLR:='1';EN:='1';
ENDIF;
WHEN C =>MR<= '1';MY<= '0';MG<= '0';
BR<= '0';BY<= '0';BG <= '1';
IF (SM AND SB) = ' 1' THEN
IF S=29 THEN
STATE<=D;CLR:='0';EN:='0';
ELSE
STATE<=C;CLR:= '1';EN:='1';
ELSIF SB = '0' THEN
STATE <=D;CLR:= '0';EN:='0';
ELSE
STATE<=C;CLR:='1';EN:='1';
END IF ;
WHEN D=>MR<= '1';MY<='0';MG<='0';
BR<='0';BY<='1';BG<= '0';
IF S =3 THEN
STATE<=A;CLR:='0';EN:='0';
ELSE
STATE<=D;CLR:='1';EN:='1';
END IF ;
END CASE;
END IF;
END PROCESS CNT;
END ART;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询