文档详情

交通燈VHDL程序设计.doc

发布:2017-01-09约1.08万字共11页下载文档
文本预览下载声明
library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity div is port(clk3:IN std_logic; clkout1,clkout2:OUT std_logic); end div; architecture one of div is begin process(clk3) variable cnt:integer range 0 to variable tmp:std_logic; begin if(clk3event and clk3=1)then if cntthen --1s分频 cnt:=0; tmp:=not tmp; else cnt:=cnt+1; end if; end if; clkout1=tmp; end process; process(clk3) variable cnt:integer range 0 to 100000; variable tmp:std_logic; begin if(clk3event and clk3=1)then --1ms分频 if cnt=25000 then cnt:=0; tmp:=not tmp; else cnt:=cnt+1; end if; end if; clkout2=tmp; end process; end one; LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY KZ IS PORT(CLK,dtufa:IN STD_LOGIC; Gn,Yn,Rn,L1,L2, Gd,Yd,Rd :OUT STD_LOGIC); END; ARCHITECTURE ART OF KZ IS BEGIN PROCESS(CLK,dtufa) IS VARIABLE S,y:INTEGER RANGE 0 TO 124; BEGIN if dtufa=1then Gn=1; --南北向绿灯亮 Yn=1; Rn=0; L1=1; Gd=1; Yd=1; Rd=0; --东西向红灯亮 L2=1; elsIF(CLKEVENT AND CLK=1)THEN IF S98 THEN S:=0; else S:=S+1; end if; IF 0=s and S33 THEN --40s内 Gn=0; --南北向绿灯亮 Yn=1; Rn=1; L1=1; Gd=1; Yd=1; Rd=0; --东西向红灯亮 L2=1; ELSIF s=33 THEN --南北向绿灯闪烁的第1秒 Gn=1; Yn=1; Rn=1; L1=1; Gd=1; Yd=1; Rd=0; L2=1; ELSIF s=34 THEN --南北向绿灯闪烁的第2秒 Gn=0; Yn=1; Rn=1; L1=1; Gd=1; Yd=1; Rd=0; L2=1; ELSIF s=35 THEN --南北向绿灯闪烁的第3秒 Gn=1; Yn=1; Rn=1; L1=1; Gd=1; Yd=1; Rd=0; L2=1; ELSIF s=36 THEN --南北向绿灯闪烁的第4秒 Gn=0; Yn=1; Rn=1; L1=1; Gd=1; Yd=1; Rd=0;
显示全部
相似文档