【文章內(nèi)容簡(jiǎn)介】
1001。南北紅燈,且禁止左轉(zhuǎn) LIGHT2=1001。東西紅燈,且禁止左轉(zhuǎn) END CASE。END PROCESS。END LIGHTSHOW。l LIBRARY IEEE。USE 。USE 。USE 。ENTITY COUNTDOWN IS PORT( COUNT:IN STD_LOGIC_VECTOR(5 DOWNTO 0)。計(jì)數(shù)器輸入信號(hào) CLK:IN STD_LOGIC。時(shí)鐘信號(hào) NUMIN:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)。輸出7段數(shù)碼管顯示數(shù)字信號(hào),輸出到譯碼模塊 CAT_TEMP:OUT STD_LOGIC_VECTOR(5 DOWNTO 0)。7端數(shù)碼管共陰極輸出控制信號(hào) NUMIN1:OUT STD_LOGIC_VECTOR (3 DOWNTO 0)輸出7段數(shù)碼管顯示數(shù)字信號(hào)(波形圖觀察) )。END COUNTDOWN。ARCHITECTURE COUNTSHOW OF COUNTDOWN ISSIGNAL TEMP:INTEGER RANGE 0 TO 3。SIGNAL COUNTER:INTEGER RANGE 1 TO 50。SIGNAL CAT:STD_LOGIC_VECTOR(5 DOWNTO 0):=011111。SIGNAL NUM_IN:STD_LOGIC_VECTOR(3 DOWNTO 0)。BEGINP1:PROCESS(CLK)內(nèi)部時(shí)鐘,控制7段數(shù)碼管顯示掃描內(nèi)容 BEGIN COUNTER=CONV_INTEGER(COUNT)。 IF(CLK39。EVENT AND CLK=39。139。)THEN IF(TEMP=3)THEN TEMP=0。 ELSE TEMP=TEMP+1。 END IF。 END IF。END PROCESS P1。P2:PROCESS(COUNTER,TEMP) BEGIN COUNTER=CONV_INTEGER(COUNT)。 CASE COUNTER IS通過計(jì)數(shù)器輸入信號(hào)控制狀態(tài) WHEN 1=CASE TEMP IS在每個(gè)狀態(tài)內(nèi)部設(shè)置數(shù)碼管掃描過程,由于COUNTER和掃描時(shí)鐘不同 則可在數(shù)碼管上同時(shí)顯示4個(gè)數(shù)字,以狀態(tài)1(COUNTER=1)為例 顯示“1924”,并在共陰極上掃描,以下同 共標(biāo)記50種狀態(tài) WHEN 0=NUM_IN=0001。CAT=011111。 WHEN 1=NUM_IN=1001。CAT=101111。 WHEN 2=NUM_IN=0010。CAT=111101。 WHEN 3=NUM_IN=0100。CAT=111110。 END CASE。 WHEN 2=CASE TEMP IS WHEN 0=NUM_IN=0001。CAT=011111。 WHEN 1=NUM_IN=1000。CAT=101111。 WHEN 2=NUM_IN=0010。CAT=111101。 WHEN 3=NUM_IN=0011。CAT=111110。 END CASE。 WHEN 3=CASE TEMP IS WHEN 0=NUM_IN=0001。CAT=011111。 WHEN 1=NUM_IN=0111。CAT=101111。 WHEN 2=NUM_IN=0010。CAT=111101。 WHEN 3=NUM_IN=0010。CAT=111110。 END CASE。 WHEN 4=CASE TEMP IS WHEN 0=NUM_IN=0001。CAT=011111。 WHEN 1=NUM_IN=0110。CAT=101111。 WHEN 2=NUM_IN=0010。CAT=111101。 WHEN 3=NUM_IN=0001。CAT=111110。 END CASE。 WHEN 5=CASE TEMP IS WHEN 0=NUM_IN=0001。CAT=011111。 WHEN 1=NUM_IN=0101。CAT=101111。 WHEN 2=NUM_IN=0010。CAT=111101。 WHEN 3=NUM_IN=0000。CAT=111110。 END CASE。 WHEN 6=CASE TEMP IS WHEN 0=NUM_IN=0001。CAT=011111。 WHEN 1=NUM_IN=0100。CAT=101111。 WHEN 2=NUM_IN=0001。CAT=111101。 WHEN 3=NUM_IN=1001。CAT=111110。 END CASE。 WHEN 7=CASE TEMP IS WHEN 0=NUM_IN=0001。CAT=011111。 WHEN 1=NUM_IN=0011。CAT=101111。 WHEN 2=NUM_IN=0001。CAT=111101。 WHEN 3=NUM_IN=1000。CAT=111110。 END CASE。 WHEN 8=CASE TEMP IS WHEN 0=NUM_IN=0001。CAT=011111。 WHEN 1=NUM_IN=0010。CAT=101111。 WHEN 2=NUM_IN=0001。CAT=111101。 WHEN 3=NUM_IN=0111。CAT=111110。 END CASE。 WHEN 9=CASE TEMP IS WHEN 0=NUM_IN=0001。CAT=011111。 WHEN 1=NUM_IN=0001。CAT=101111。 WHEN 2=NUM_IN=0001。CAT=111101。 WHEN 3=NUM_IN=0110。CAT=111110。 END CASE。 WHEN 10=CASE TEMP IS WHEN 0=NUM_IN=0001。CAT=011111。 WHEN 1=NUM_IN=0000。CAT=101111。 WHEN 2=NUM_IN=0001。CAT=111101。 WHEN 3=NUM_IN=0101。CAT=111110。 END CASE。 WHEN 11=CASE TEMP IS WHEN 0=NUM_IN=0000。CAT=011111。 WHEN 1=NUM_IN=1001。CAT=101111。 WHEN 2=NUM_IN=0001。CAT=111101。 WHEN 3=NUM_IN=0100。CAT=111110。 END CASE。 WHEN 12=CASE TEMP IS WHEN 0=NUM_IN=0000。CAT=011111。 WHEN 1=NUM_IN=1000。CAT=101111。 WHEN 2=NUM_IN=0001。CAT=111101。 WHEN 3=NUM_IN=0011。CAT=111110。 END CASE。 WHEN 13=CASE TEMP IS WHEN 0=NUM_IN=0000。CAT=011111。 WHEN 1=NUM_IN=0111。CAT=101111。 WHEN 2=NUM_IN=0001。CAT=111101。 WHEN 3=NUM_IN=0010。CAT=111110。 END CASE。 WHEN 14=CASE TEMP IS WHEN 0=NUM_IN=0000。CAT=011111。 WHEN 1=NUM_IN=0110。CAT=101111。 WHEN 2=NUM_IN=0001。CAT=111101。 WHEN 3=NUM_IN=0001。CAT=111110。 END CASE。 WHEN 15=CASE TEMP IS WHEN 0=NUM_IN=0000。CAT=011111。 WHEN 1=NUM_IN=0101。CAT=101111。 WHEN 2=NUM_IN=0001。CAT=111101。 WHEN 3=NUM_IN=0000。CAT=111110。 END CASE。 WHEN 16=CASE TEMP IS WHEN 0=NUM_IN=0000。CAT=011111。 WHEN 1=NUM_IN=0100。CAT=101111。 WHEN 2=NUM_IN=0000。CAT=111101。 WHEN 3=NUM_IN=1001。CAT=111110。 END CASE。 WHEN 17=CASE TEMP IS WHEN 0=NUM_IN=0000。CAT=011111。 WHEN 1=NUM_IN=0011。CAT=101111。 WHEN 2=NUM_IN=0000。CAT=111101。 WHEN 3=NUM_IN=1000。CAT=111110。 END CASE。 WHEN 18=CASE TEMP IS WHEN 0=NUM_IN=0000。CAT=011111。 WHEN 1=NUM_IN=0010。CAT=101111。 WHEN 2=NUM_IN=0000。CAT=111101。