欢迎来到天天文库
浏览记录
ID:34386785
大小:49.00 KB
页数:6页
时间:2019-03-05
《主支方向倒计时控制模块》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、主支方向倒计时控制模块东西方向控制LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYcontralaISPORT(clk:INSTD_LOGIC;rst:INSTD_LOGIC;ra,ga,ya:OUTSTD_LOGIC;timeah,timeal:OUTSTD_LOGIC_VECTOR(3DOWNTO0));ENDcontrala;ARCHITECTUREbhvOFcontralaISTYPErgyIS(red,green,yel
2、low);—亮灯顺序BEGINPROCESS(clk)VARIABLEa:std_logic;--变量A用来控制信号灯转换VARIABLEth,tl:std_logic_vector(3DOWNTO0);VARIABLEstate:rgy;BEGINIF(rst='1')THENga<=’0’;ra<=’1’;ya<=’0’;ELSIFclk‘EVENTANDclk=’1’THENCASEstateISWHENgreen=>IFa=’0’THEN---绿灯控制模块th:=”0001”;——时间设置的十位tl:=”0101”;——时间
3、设置的个位a:=’1’;ga<=’1’;——绿灯点亮ra<=’0’;ya<=’0’;ELSEIFNOT(th=”0000”ANDtl=”0001”)THENIFtl=”0000”THEN——倒计时tl:=”1001”;th:=th-1;ELSEtl:=tl-1;ENDIF;ELSEth:=”0000”;tl:=”0000”;a:=’0’;state:=yellow;ENDIF;ENDIF;WHENred=>IFa=’0’THEN_红灯控制模块th:=”0011”;tl:=”0000”;a:=’1’;ra<=’1’;ya<=’0’;g
4、a<=’0’;ELSEIFNOT(th=”0000”ANDtl=”0001”)THENIFtl=”0000”THEN——倒计时tl:=”1001”;th:=th-1;ELSEtl:=tl-1;ENDIF;ELSEth:=”0000”;tl:=”0000”;a:=’0’;state:=green;ENDIF;ENDIF;WHENyellow=>IFa=’0’THEN---黄灯控制模块th:=”0000”;tl:=”0101”;a:=’1’;ya<=’1’;ga<=’0’;ra<=’0’;ELSEIFNOT(th=”0000”ANDtl
5、=”0001”)THENIFtl=”0000”THEN——倒计时tl:=”1001”;th:=th-1;ELSEtl:=tl-1;ENDIF;ELSEth:=”0000”;tl:=”0000”;a:=’0’;state:=red;ENDIF;ENDIF;ENDCASE;ENDIF;timeah<=th;timeal<=tl;ENDPROCESS;ENDbhv;南北方向控制LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYcontra
6、lbISPORT(clk:INSTD_LOGIC;rst:INSTD_LOGIC;rb,gb,yb:OUTSTD_LOGIC;timebh,timebl:OUTSTD_LOGIC_VECTOR(3DOWNTO0));ENDcontralb;ARCHITECTUREbhvOFcontralbISTYPErgyIS(green,yellow,red);—亮灯顺序BEGINPROCESS(clk)VARIABLEa:std_logic;--变量A用来控制信号灯转换VARIABLEth,tl:std_logic_vector(3DOWNTO
7、0);VARIABLEstate:rgy;BEGINIF(rst='1')THENgb<=’1’;rb<=’0’;yb<=’0’;ELSIFclk‘EVENTANDclk=’1’THENCASEstateISWHENgreen=>IFa=’0’THEN---绿灯控制模块th:=”0010”;——时间设置的十位tl:=”0101”;——时间设置的个位a:=’1’;gb<=’1’;——绿灯点亮rb<=’0’;yb<=’0’;ELSEIFNOT(th=”0000”ANDtl=”0001”)THENIFtl=”0000”THEN——倒计时t
8、l:=”1001”;th:=th-1;ELSEtl:=tl-1;ENDIF;ELSEth:=”0000”;tl:=”0000”;a:=’0’;state:=yellow;ENDIF;ENDIF;WHENred=>IFa=’0’THEN
此文档下载收益归作者所有