【正文】
EN1111=ledout=1110001。 其他情況時(shí)燈滅 END CASE。 END ART。USE 。USE 。 2 Hz時(shí)鐘輸入信號(hào) UPIN:IN STD_LOGIC。 樓層下降請(qǐng)求鍵 ST_CH:IN STD_LOGIC。 提前關(guān)門輸入鍵 DELAY:IN STD_LOGIC。 電梯運(yùn)行的開關(guān)鍵 LAMP:OUT STD_LOGIC。 結(jié)合LAMP指示電梯運(yùn)行或等待時(shí)間 ST_OUT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)。 樓層選擇指示數(shù)碼管 END ENTITY DTKZQ。 上升或下降樓層請(qǐng)求寄存器SIGNAL DIR,LIFTOR: INTEGER RANGE 0 TO 15。 運(yùn)行或等待計(jì)數(shù)器SIGNAL DIVID,HAND,CLKIN:STD_LOGIC。 電梯運(yùn)行狀態(tài)變量SIGNAL CLOSEX,DELAYX:STD_LOGIC。 ST_OUT=CONV_STD_LOGIC_VECTOR(LIFTOR,4)+1。039。WAI_T。HAND=WAI_T(2)AND(NOT WAI_T(1)AND WAI_T(0))。DELAYX=DELAY AND(NOT LADD(1))。EVENT AND CLK=39。) THEN CLKIN=NOT CLKIN。END PROCESS P0。EVENT AND CLKIN=39。) THEN DIVID=NOT DIVID。 ELSE DIR=DIR+1。 END IF。樓層請(qǐng)求寄存器的置位與復(fù)位進(jìn)程P2:PROCESS(UR, DR, DIR, UPIN, DOWNIN, ST_CH, LIFTOR, WAI_T, RUN_STOP, HAND) VARIABLE NUM,T:INTEGER RANGE 0 TO 16 。 T:=DIR+1。139。139。139。139。139。139。139。139。139。139。139。139。139。139。139。139。139。139。139。 END CASE。139。039。039。039。039。039。039。039。039。039。039。039。039。039。039。039。039。 END CASE。選擇樓層小于當(dāng)前樓層或者有下降請(qǐng)求IF (((TNUM)AND (ST_CH=39。))OR(DOWNIN=39。)) THEN CASE T IS WHEN 1 = DR(1)=39。 WHEN 2 = DR(2)=39。 WHEN 3 = DR(3)=39。 WHEN 4 = DR(4)=39。 WHEN 5 = DR(5)=39。 WHEN 6 = DR(6)=39。 WHEN 7 = DR(7)=39。 WHEN 8 = DR(8)=39。 WHEN 9 = DR(9)=39。 WHEN 10 = DR(10)=39。 WHEN 11 = DR(11)=39。 WHEN 12 = DR(12)=39。 WHEN 13 = DR(13)=39。 WHEN 14 = DR(14)=39。 WHEN 15 = DR(15)=39。 WHEN 16 = DR(16)=39。 WHEN OTHERS=NULL。電梯運(yùn)行時(shí)間到 ELSIF (HAND=39。) THEN CASE NUM IS WHEN 1 = DR(1)=39。 WHEN 2 = DR(2)=39。 WHEN 3 = DR(3)=39。 WHEN 4 = DR(4)=39。 WHEN 5 = DR(5)=39。 WHEN 6 = DR(6)=39。 WHEN 7 = DR(7)=39。 WHEN 8 = DR(8)=39。 WHEN 9 = DR(9)=39。 WHEN 10 = DR(10)=39。 WHEN 11 = DR(11)=39。 WHEN 12 = DR(12)=39。 WHEN 13 = DR(13)=39。 WHEN 14 = DR(14)=39。 WHEN 15 = DR(15)=39。 WHEN 16 = DR(16)=39。 WHEN OTHERS=NULL。 END IF。 DR=0000000000000000。 END PROCESS P2。139。039。039。039。 上升狀態(tài) END IF。039。039。139。039。 上升狀態(tài) ELSE LADD=10。電梯在第三層 WHEN 2=IF ((UR(3) OR DR(3))39。) THEN LADD(1)=39。 ELSIF ((( LADD(0)=39。)AND ((UR(16 DOWNTO 4) OR DR(16 DOWNTO 4))0000000000000)) OR((UR(2 DOWNTO 1) OR DR(2 DOWNTO 1))=00)) THEN LADD=11。 END IF。039。039。139。 ELSE LADD=10。電梯在第五層 WHEN 4=IF ((UR(5) OR DR(5))39。) THEN LADD(1)=39。 ELSIF (((LADD(0)=39。)AND ((UR(16 DOWNTO 6) OR DR(16 DOWNTO 6))00000000000)) OR((UR(4 DOWNTO 1) OR DR(4 DOWNTO 1))=0000)) THEN LADD=11。 END IF。039。039。139。 ELSE LADD=10。電梯在第七層 WHEN 6=IF ((UR(7)