【正文】
EVENT AND CLK1K=39。 END IF。939。 顯示 39。 WHEN OTHERS=OU=X0。 ELSIF(CLK1K39。 USE 。 WHEN011=LT=00100001。 BEGIN PROCESS(CLR,S,M) BEGIN IF CLR=39。 END PROCESS。 END CASE。B 方向的計(jì)時器計(jì)時, A 方向的黃燈亮 END IF。BGT=“ 00110000” B 方向綠燈亮 BLT=X15。 計(jì)時模塊的源文件程序如下: LIBRARY IEEE。 IF M=001THEN Q=011。 ENTITY JTD_CTRL IS PORT( CLK,CLR:IN STD_LOGIC。 S:OUT STD_LOGIC_VECTOR(2 DOWNTO 0) )。 M:IN STD_LOGIC_VECTOR(2 DOWNTO 0)。程序原理圖如圖 31 所示 。 頂層文件的設(shè)計(jì) 頂層文件的原理圖可以依據(jù)系統(tǒng)的框圖進(jìn)行,由控制模塊 JTD_CTRL、計(jì)時模塊 JTD_TIME、譯碼驅(qū)動模塊 JTD_LIGHT、顯示模塊 JTD_DIS和分頻模塊 JTD_FQU五部分組成,其頂層原理圖文件如圖 31 所示。 AT,BT:IN STD_LOGIC_VECTOR(7 DOWNTO 0)。 END COMPONENT。 M:IN STD_LOGIC_VECTOR(2 DOWNTO 0)。 END IF。 USE 。BLT=“ 00010101” B 方向燈閃爍 PROCESS(CLR,CLK,M,S) BEGIN IF CLR=39。 IF M=011THEN AT1=X06。 END IF。 AT=AT1。139。 WHEN100=LT=01000001。 ENTITY JTD_DIS IS PORT( CLK1K,CLK,CLR:IN STD_LOGIC。EVENT AND CLK1K=39。 END CASE。439。 WHEN OTHERS=DS=00000000。 END PROCESS。139。 BEGIN PROCESS(CLK1K) BEGIN IF(CLK1K39。 ELSE DIS=DS。 顯示 39。 WHEN X4=DS=01100110。 WHEN101=OU=STH。THEN SL=000。 USE 。 WHEN010=LT=01000001。 ARCHITECTURE JTD_3 OF JTD_LIGHT IS SIGNAL LT:STD_LOGIC_VECTOR(7 DOWNTO 0)。 END IF。BT1=BT1。BT1=X01。BRT=“ 01100101” B 方向紅燈亮 BGT=X30。 當(dāng)正常計(jì)時開始后,需要進(jìn)行定時計(jì)數(shù)操作,由于東西和南北兩個方向上的時間顯示器是由兩個 LED 七段顯示數(shù)碼管組成的,因此需要產(chǎn)生兩個 2 位的計(jì)時信息: 2 個十位信號, 2 個個位信號,這個定時計(jì)數(shù)操作可以由一個定時計(jì)數(shù)器來完成,又因?yàn)榻煌舻臓顟B(tài)變化是在計(jì)時為 0 的情況下才能進(jìn)行的,因此需要一個計(jì)時電路來產(chǎn)生使能信號,因此定時計(jì)數(shù)的功能就是用來產(chǎn)生2 個 2 位計(jì)時信息和使能信號。 END IF。 USE 。 M:IN STD_LOGIC_VECTOR(2 DOWNTO 0)。 COMPONENT JTD_DIS IS 數(shù)碼顯示的元件例化 PORT( CLK1K,CLK,CLR:IN STD_LOGIC。經(jīng)過五個模塊的處理,使時間計(jì)數(shù)、紅綠燈顯示能夠正常運(yùn)行。 秒脈沖信號發(fā)生器 計(jì)數(shù)器 狀態(tài)寄存器 次態(tài)發(fā)生器 信號燈輸出信號 圖 41 交通燈頂層文件原理圖 頂層模塊的程序如下: LIBRARY IEEE。 LED:OUT STD_LOGIC_VECTOR(6 DOWNTO 0)。 SIGNAL CLK:STD_LOGIC。 用 M 來表示系統(tǒng)的8 種工作狀態(tài) AT,BT:IN STD_LOGIC_VECTOR(7 DOWNTO 0)。 IF M=010THEN Q=101。 USE 。139。BT1=X01。 IF AT1/=X01THEN IF AT1(3 DOWNTO 0)=0000THEN AT1(3 DOWNTO 0)=1001。 BT=BT1。THEN LT=00000000。 WHEN101=LT=00011000。 M:IN STD_LOGIC_VECTOR(2 DOWNTO 0)。139。 END PROCESS。 WHEN X5=D