【正文】
END IF。END PROCESS。附錄3:模塊PULSE// 程序名稱:PULSE// 程序功能:該模塊實現(xiàn)將時鐘信號5分頻功能。USE 。ENTITY PULSE IS PORT(CLK0:IN STD_LOGIC。END PULSE。 VARIABLE FULL :STD_LOGIC。EVENT AND CLK0=39。 THEN IF CNT=100 THEN //CNT計數(shù)到5(“100”) CNT:=000 。139。 //否則計數(shù)CNT加1 FULL:=39。 //FULL賦低電平 END IF。FOUT=FULL。END ONE。clr1為清零信號,si為狀態(tài)信號,c1,c2,c3分別為費用的三為顯示。USE 。ENTITY COUNTER IS PORT(CLK_DIV:IN STD_LOGIC。 SI:IN STD_LOGIC_VECTOR(1 DOWNTO 0)。 C2:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)。END COUNTER。 VARIABLE Q2: STD_LOGIC_VECTOR(3 DOWNTO 0)。 BEGIN IF CLR1=39。 THEN Q1:=0000。Q3:=0000。EVENT AND CLK_DIV=39。 THEN //CLK_DIV上升沿觸發(fā) CASE SI IS //SI:“00”表示計費值停止,“01”計費清零,設(shè)置為起步價10元,“10” 正常計費,每公里1元,“11”超過20元后,; WHEN 00 =Q1:=Q1。Q3:=Q3。Q2:=0000。 //起步價10元 WHEN 10= IF Q21001 THEN Q2:=Q2+1。 IF Q31001 THEN Q3:=Q3+1。 END IF。 WHEN 11= IF Q10101 THEN Q1:=Q1+5。 END IF。 ELSE Q2:=0000。 END IF。 ELSE IF Q21001 THEN Q2:=Q2+2。 IF Q31001 THEN Q3:=Q3+1。 END IF。 WHEN OTHERS=NULL。END IF。C2=Q2。END PROCESS。附錄5:模塊SCAN_LED的實現(xiàn)// 程序名稱:SCAN_LED// 程序功能:該模塊實現(xiàn)顯示車費功能。// 程序作者:金人佼// 最后修改日期:LIBRARY IEEE。USE 。 DI2:IN STD_LOGIC_VECTOR(3 DOWNTO 0)。 CLK2:IN STD_LOGIC。 BT:OUT STD_LOGIC_VECTOR(2 DOWNTO 0))。ARCHITECTURE ONE OF SCAN_LED IS SIGNAL CNT4 :STD_LOGIC_VECTOR(1 DOWNTO 0)。BEGINP1:PROCESS(CLK2)VARIABLE SQ :STD_LOGIC_VECTOR(1 DOWNTO 0)。EVENT AND CLK2=39。 THEN IF SQ=10 THEN SQ:=00。 END IF。 CNT4=SQ。P2: PROCESS (CNT4) BEGIN CASE CNT4 IS WHEN 00 =BT=001。 WHEN 01=BT=010。 WHEN 10=BT=100。 WHEN 11=BT=100。 WHEN OTHERS =NULL。END PROCESS P2。 //數(shù)碼管顯示數(shù)字0 WHEN 0001=SG=0000110。 //數(shù)碼管顯示數(shù)字2 WHEN 0011=SG=1001111。 //顯示數(shù)字4 WHEN 0101=SG=1101101。 //顯示數(shù)字6 WHEN 0111=SG=0000111。 //顯示數(shù)字8 WHEN 1001=SG=1101111。 END CASE。END ONE 。// 程序作者:金人佼// 最后修改日期:LIBRARY IEEE。USE 。 T_CLK1:IN STD_LOGIC。 T_JS :IN STD_LOGIC。 T_CLR:IN STD_LOGIC。 T_BT: OUT STD_LOGIC_VECTOR(2 DOWNTO 0)。END TAXI。 CK1:IN STD_LOGIC。 CLK_OUT:OUT STD_LOGIC)。COMPONENT SOUTPORT(CLK:IN STD_LOGIC。 STO :IN STD_LOGIC。 ST:OUT STD_LOGIC_VECTOR(1 DOWNTO 0))。COMPONENT PULSEPORT(CLK0:IN STD_LOGIC。END COMPONENT。 CLR1:IN STD_LOGIC。 C1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)。 C3:OUT STD_LOGIC_VECTOR(3 DOWNTO 0))。COMPONENT SCAN_LED PORT(DI1:IN STD_LOGIC_VECTOR(3 DOWNTO 0)。 DI3:IN STD_LOGIC_VECTOR(3 DOWNTO 0)。 SG:OUT STD_LOGIC_VECTOR(6 DOWNTO 0)。END COMPONENT。SIGNAL L_FOUT:STD_LOGIC。SIGNAL L_C1:STD_LOGIC_VECTOR(3 DOWNTO 0)。SIGNAL L_C3:STD_LOGIC_VECTOR(3 DOWNTO 0)。 U1:SOUT PORT MAP(CLK=L_CLK,ENABLE=T_ENABLE,CLR=T_CLR,STO=T_STO,ST=L_ST)。 U3:COUNTER PORT MAP(CLR1=T_CLR,SI=L_ST,CLK_DIV=L_FOUT,C3=L_C3,C2=L_C2,C1=L_C1)。END STRUC