【文章內(nèi)容簡(jiǎn)介】
END IF。 END IF。 END IF。 END PROCESS。 S=Q。 M 的控制端轉(zhuǎn)向控制口 S END JTD_1。 該模塊的時(shí)序仿真和功能仿真波形圖如圖 42 圖 42 功能仿真 計(jì)時(shí)模塊 JTD_TIME 的設(shè)計(jì) 計(jì)時(shí)模塊用來(lái)設(shè)定 A 和 B 兩個(gè)方向計(jì)時(shí)器的初值,并為顯示模塊 JTD_DIS提供倒計(jì)時(shí)時(shí)間。 當(dāng)正常計(jì)時(shí)開(kāi)始后,需要進(jìn)行定時(shí)計(jì)數(shù)操作,由于東西和南北兩個(gè)方向上的時(shí)間顯示器是由兩個(gè) LED 七段顯示數(shù)碼管組成的,因此需要產(chǎn)生兩個(gè) 2 位的計(jì)時(shí)信息: 2 個(gè)十位信號(hào), 2 個(gè)個(gè)位信號(hào),這個(gè)定時(shí)計(jì)數(shù)操作可以由一個(gè)定時(shí)計(jì)數(shù)器來(lái)完成,又因?yàn)榻煌舻臓顟B(tài)變化是在計(jì)時(shí)為 0 的情況下才能進(jìn)行的,因此需要一個(gè)計(jì)時(shí)電路來(lái)產(chǎn)生使能信號(hào),因此定時(shí)計(jì)數(shù)的功能就是用來(lái)產(chǎn)生2 個(gè) 2 位計(jì)時(shí)信息和使能信號(hào)。 計(jì)時(shí)模塊的源文件程序如下: LIBRARY IEEE。 USE 。 USE 。 ENTITY JTD_TIME IS PORT( CLK,CLR:IN STD_LOGIC。 M,S:IN STD_LOGIC_VECTOR(2 DOWNTO 0)。 AT,BT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0) )。 END JTD_TIME。 ARCHITECTURE JTD_2 OF JTD_TIME IS SIGNAL AT1,BT1:STD_LOGIC_VECTOR(7 DOWNTO 0)。 SIGNAL ART,AGT,ALT,ABYT:STD_LOGIC_VECTOR(7 DOWNTO 0)。 SIGNAL BRT,BGT,BLT:STD_LOGIC_VECTOR(7 DOWNTO 0)。 BEGIN ART=X55。 ART=“ 01010101” A 方向紅燈亮 AGT=X40。 AGT=“ 01000000” A 方向綠燈亮 ALT=X15。 ALT=“ 00010101”燈間歇閃爍 ABYT=X05。ABYT=“ 00000101” AB 兩方向黃燈亮 BRT=X65。BRT=“ 01100101” B 方向紅燈亮 BGT=X30。BGT=“ 00110000” B 方向綠燈亮 BLT=X15。BLT=“ 00010101” B 方向燈閃爍 PROCESS(CLR,CLK,M,S) BEGIN IF CLR=39。139。THEN AT1=X01。BT1=X01。 ELSIF (CLK39。EVENT AND CLK=39。139。)THEN IF M=000THEN AT1=X01。BT1=X51。M=0 時(shí), A 方向的計(jì)時(shí)器計(jì)時(shí), B 方向的紅燈亮 END IF。 IF M=001THEN AT1=X01。BT1=X06。M=1 時(shí), A 方向的計(jì)時(shí)器計(jì)時(shí), B 方向綠燈亮 END IF。 IF M=010THEN AT1=X41。BT1=X01。B 方向的計(jì)時(shí)器計(jì)時(shí), A 方向的黃燈亮 END IF。 IF M=011THEN AT1=X06。BT1=X01。B 方向的計(jì)時(shí)器計(jì)時(shí), A 方向的紅燈亮 END IF。 IF M=100THEN IF(AT1=X01)OR(BT1=X01)THEN CASE S IS WHEN000=AT1=ALT。BT1=BRT。當(dāng) S=0 時(shí), AB 兩方向的計(jì)時(shí)器計(jì)時(shí), A 方向車左轉(zhuǎn), B 方向的紅燈亮 WHEN001=AT1=ABYT。當(dāng) S=1 時(shí), A 方向計(jì)時(shí)器計(jì)時(shí), A 方向黃燈亮 WHEN010=AT1=AGT。當(dāng) S=2 時(shí), A 方向計(jì)時(shí)器計(jì)時(shí), A 方向綠燈亮 WHEN011=AT1=ABYT。當(dāng) S=3 時(shí), AB 兩方向黃燈亮, A 方向計(jì)時(shí)器計(jì)時(shí) WHEN100=AT1=ART。BT1=BLT。當(dāng) S=4 時(shí), A 方向計(jì)時(shí),紅燈亮, B 方向車左轉(zhuǎn), B 方向計(jì)時(shí)器計(jì)時(shí) WHEN101=BT1=ABYT。當(dāng) S=5 時(shí), B 方向計(jì)時(shí)器計(jì)時(shí), AB 兩方向黃燈亮 WHEN110=BT1=BGT。當(dāng) S=6 時(shí), B 方向計(jì)時(shí)器計(jì)時(shí), B 方向綠燈亮 WHEN111=BT1=ABYT。當(dāng) S=7 時(shí), B 方向計(jì)時(shí)器計(jì)時(shí), AB 兩方向車右轉(zhuǎn) WHEN OTHERS=AT1=AT1。BT1=BT1。 END CASE。 END IF。 IF AT1/=X01THEN