【文章內(nèi)容簡(jiǎn)介】
9。 THEN IF CNT8=11111111 THEN CNT8:=00000000。 當(dāng)CNT8計(jì)數(shù)計(jì)滿時(shí),給計(jì)數(shù)器CNT8預(yù)置數(shù) FULL=39。139。 同時(shí)使溢出標(biāo)志信號(hào)FULL輸出為高電平 ELSE CNT8:=CNT8+1。 否則繼續(xù)作加1計(jì)數(shù) FULL=39。039。 且輸出溢出標(biāo)志信號(hào)FULL為低電平 END IF。 END IF。 END PROCESS。 PROCESS(FULL)VARIABLE CNT2: STD_LOGIC。BEGIN IF FULL39。EVENT AND FULL=39。139。THEN CNT2:=NOT CNT2。 IF CNT2=39。139。 THEN FOUT=39。139。 ELSE FOUT=39。039。END IF。END IF。END PROCESS。FOUT輸出是時(shí)鐘信號(hào) PROCESS(FOUT) 計(jì)數(shù)模塊。此模塊定義一個(gè)變量time,當(dāng)其值不超過63時(shí)實(shí)現(xiàn)循環(huán)加1功能,超過63則time值歸零。 IF FOUT39。EVENT AND FOUT=39。139。THEN IF TIME67 THEN TIME=TIME+1。 ELSE TIME=0000000。 END IF。 END IF。 END PROCESS。 PROCESS(FOUT,ST0,TIME) 狀態(tài)轉(zhuǎn)換模塊。此模塊利用狀態(tài)機(jī)得設(shè)計(jì)方法,實(shí)現(xiàn)主干道和支干道交通信號(hào)燈不同狀態(tài)之間的轉(zhuǎn)變,信號(hào)燈狀態(tài)用實(shí)驗(yàn)箱上的發(fā)光二極管顯示,主干道和支干道在一個(gè)狀態(tài)內(nèi)的剩余時(shí)間由實(shí)驗(yàn)箱上兩個(gè)個(gè)七段顯示數(shù)碼管顯示 CASE ST0 IS WHEN STA=IF TIME=39 THEN ST1=STB。 ELSE ST1=STA。 END IF。 LIGHT=001100。TIME_LEFT=39TIME。 WHEN STB=IF TIME=43 THEN ST1=STC。 ELSE ST1=STB。 END IF。 LIGHT=010100。TIME_LEFT=43TIME。 WHEN STC=IF TIME=63 THEN ST1=STE。 ELSE ST1=STC。 END