begin if(ch='1')then state<=s5; -------6 个正常状态和 1 个紧急情况状态 elsif(count>=45)then state<=s1; elsif(count<45 and count>=30)then state<=s6; elsif(count<30 and count>=25)then state<=s2; elsif(count<2
5 and count>=20) then state<=s3; elsif(count<20 and count>=5) then state<=s7; else state<=s4; end if; case state is when s1=>lights<="10100001"; when s6=>lights<="00100001"; when s2=>lights<="00100010"; when s3=>lights<="01001100"; when s7=>lights<="00001100"; when s4=>lights<="00010100"; when s5=>lights<="00100100"; end case; end process; ---- 交通灯状态,用 LED 发光管模拟交通灯 南北绿,东西红 南北可左转 南北绿,东西红 南北不可左转 南北黄,东西红 南北不可左转 南北红,东西绿 东西可左转 南北红,东西绿 东西不可左转 南北红,东西黄 东西不可左转 南北红,东西红 紧急状态
u4:process(ch,count)----倒计时技计数 begin if count = 50 then 从 50 开始计数 递减 num1<=2;num2<=5;num3<=2;num4<=0; elsif count >=45 and count <50 then num1<=2;num2<=count-45;num3<=1;num4<=count-40; elsif (count<45 and count>=40) then num1<=1;num2<=count-35;num3<=1;num4<=count-40; elsif (count<40 and count>=35) then num1<=1;num2<=count-35;num3<=0;num4<=count-30; elsif (count<35 and count>=30) then num1<=0;num2<=count-25;num3<=0;num4<=count-30; elsif (count<30 and count>=25) then num1<=0;num2<=count-25;num3<=0;num4<=count-25; elsif (count<25 and count>=20) then num1<=1;num2<=count-15;num3<=2;num4<=count-20; elsif (count<20 and count>=15) then num1<=1;num2<=count-15;num3<=1;num4<=count-10; elsif (count<15 and count>=10) then num1<=0;num2<=count-5;num3<=1;num4<=count-10; elsif (count<10 and count>=5) then num1<=0;num2<=count-5;num3<=0;num4<=count; else num1<=0;num2<=count;num3<=0;num4<=count;