【文章內(nèi)容簡介】
和 B 兩個(gè)方向計(jì)時(shí)器的初值,并為數(shù)碼管顯示模塊提供倒計(jì)時(shí)時(shí)間。倒計(jì)時(shí)模塊源文件程序如下: LIBRARY IEEE。 USE 。 USE 。 ENTITY JTD_TIME IS 圖 4 狀態(tài)控制模塊的仿真波形圖 PORT( CLK : IN STD_LOGIC。 M : IN STD_LOGIC。 S :IN STD_LOGIC_VECTOR(1 DOWNTO 0)。 AT,BT :OUT STD_LOGIC_VECTOR(7 DOWNTO 0))。 END JTD_TIME。 ARCHITECTURE JTD_1 OF JTD_TIME IS SIGNAL ATI : STD_LOGIC_VECTOR(7 DOWNTO 0):=X01。 SIGNAL BTI : STD_LOGIC_VECTOR(7 DOWNTO 0):=X01。 SIGNAL ART,AGT,AYT : STD_LOGIC_VECTOR(7 DOWNTO 0)。 SIGNAL BRT,BGT,BYT : STD_LOGIC_VECTOR(7 DOWNTO 0)。 shared variable bf:std_logic:=39。039。 BEGIN —— 設(shè)定各個(gè)紅綠黃的工作時(shí)間 ART=X45。 AGT=X40。 AYT=X05。 BRT=X45。 BGT=X40。 BYT=X05。 process begin wait until clk39。event and clk=39。139。 if M=39。139。then AT=ATI。 BT=BTI。 elsif (M=39。039。 and bf=39。039。) then AT=11111111。 BT=11111111。 bf:=not bf。 elsif (M=39。039。 and bf=39。139。) then AT=ATI。 BT=BTI。 bf:=not bf。 end if。 end process。 PROCESS (CLK,M,S) BEGIN IF M = 39。139。 THEN ATI=ATI。 BTI=BTI。 ELSE IF CLK39。EVENT AND CLK=39。139。 THEN IF (ATI=X01) OR (BTI=X01) THEN CASE S IS —— 通過 S的變化控制各個(gè)狀態(tài),給倒計(jì)時(shí)顯示燈賦值 WHEN 00=ATI=ART。 BTI=BGT。 WHEN 01=BTI=BYT。 WHEN 10=ATI=AGT。 BTI=BRT。 WHEN 11=ATI=AYT。 END CASE。 END IF。 IF ATI/=X01 THEN —— A方向(東西方向)倒計(jì)時(shí) IF ATI(3 DOWNTO