【正文】
我們反復(fù)檢查程序后發(fā)現(xiàn)數(shù)碼管a~g的硬件引腳與軟件引腳接反了。FY1:費用的十位FY0:費用的個位DDSJ1:等待時間的十位DDSJ0:等待時間的個位LC1:路程的十位LC0:路程的個位(見附錄二)6.硬件電路設(shè)計與安裝圖(見附錄三):器件名稱及個數(shù)杜邦線若干根電阻200歐姆21個1K3個20腳底座3個插針若干個90123個發(fā)光二極管1個數(shù)碼管6個按鈕開關(guān)3個芯片F(xiàn)PGA導(dǎo)線若干根7.硬件電路安裝與調(diào)試(1)根據(jù)硬件電路圖在通用板上布線(2)檢查元器件的好壞,確保每一個元器件是好的才能進行焊接(焊接時要注意虛焊,短路等等)(3)焊好之后要根據(jù)安裝圖用萬用表進行測量,防止電路存在錯誤(注意焊接要仔細)(1)接入5伏電壓之后,開關(guān)模塊中有一個按鈕不能起作用,通過萬用表檢測,發(fā)現(xiàn)有一個點沒有連接上。、輸出信號說明輸入:DN:day OR night控制;SS:Start OR stop控制;WR:wait OR run控制;CLK:輸入時鐘信號,模擬時間和路程。u16:ymq port map(din=W,dout1=shuc1,dout0=shuc0)。u14:sel1 port map(clk1=j,s1=K)。u12:jf port map(ss=b,dn=a,lc=z,ddsj=y,lcjfbz=e,ddjfbz=f,fy=x)。u10:ddzt port map(clk=n,ss=b,ddbz=c,ddjfbz=f,ddsj=y)。u8:pulse port map(clk0=m,fout=n)。u6:pulse port map(clk0=i,fout=j)。u4:pulse port map(clk0=clk,fout=d)。u2:bz port map(aj=ss,bz=b)。 begindnpd=a。signal x,y,z,W:std_logic_vector(7 downto 0)。end ponent。ponent sel2port(sel2:in std_logic_vector(1 downto 0)。s1:out std_logic_vector(1 downto 0))。end ponent。sel:in std_logic_vector(1 downto 0)。end ponent。 dout1:out std_logic_vector(6 downto 0)。 end ponent。 DDJFBZ:IN STD_LOGIC。 DDSJ:IN STD_LOGIC_VECTOR(7 DOWNTO 0)。 DN:IN STD_LOGIC。 end ponent。 LC:IN STD_LOGIC_VECTOR(7 DOWNTO 0)。end ponent。ponent jcport(clks,SS,WR:in std_logic。 DDSJ:OUT STD_LOGIC_VECTOR(7 DOWNTO 0))。 DDBZ:IN STD_LOGIC。end ponent。ponent pulse PORT(CLK0:IN STD_LOGIC。 BZ:OUT STD_LOGIC)。end entity czc。 shuc1,shuc0:out std_logic_vector(6 downto 0)。entity czc isport(clk,wr,ss,dn:in std_logic。use 。:library ieee。,仿真結(jié)果及分析各模塊設(shè)計仿真實現(xiàn)后,可分別創(chuàng)建成元件符號。當片選信號是01時,輸出選擇記費輸出。end bbb_arc。end case。 when 10=s2=011。architecture bbb_arc of sel2 isbegin process(sel2)begincase sel2 is when 00=s2=110。 s2:out std_logic_vector(2 downto 0))。use 。end sel_arc。s1=t。 end if。 then IF t=10 then t:=00。event and clk1=39。architecture sel_arc of sel1 isbegin process(clk1) variable t:std_logic_vector(1 downto 0)。 s1:out std_logic_vector(1 downto 0))。use 。:(1)sel1模塊library ieee。end one。end case。 when 1001 =dout0=1111011。 when 0111 =dout0=1110000。 when 0101 =dout0=1011011。 when 0011 =dout0=1111001。 when 0001 =dout0=0110000。end case。 when 1001 =dout1=1111011。 when 0111 =dout1=1110000。 when 0101 =dout1=1011011。 when 0011 =dout1=1111001。 when 0001 =dout1=0110000。end entity YMQ。 dout1:out std_logic_vector(6 downto 0)。use 。use 。:白天模式黑夜模式從波形圖可以看出DN為高電平選擇白天模式進行計費,DN為低電平選擇黑夜模式進行計費。 END PROCESS。 一超過等待收費時間,就立即加收等待時的每個脈沖加1 END IF。 THEN 未到等待收費時間 FY1:=FY1。 ELSIF DDJFBZ=39。 FY1:=bcd_add8(FY1,DDSJ)。 THEN 未到等待收費時間 FY1:=FY1。 THEN 白天時 IF DDJFBZ=39。 IF DN=39。 FY1:=bcd_add8(FY1,LC)。 12 ELSE FY1:=bcd_add8(LC,LC)。)。 THEN 起始價 FY1(11 DOWNTO 5):=(OTHERS=39。 ELSIF LCJFBZ=39。 FY1:=bcd_add8(FY1,LC)。 9 FY1(3 DOWNTO 0):=1001。039。039。039。 THEN FY1:=000000000000。 BEGIN IF SS=39。 總費用END ENTITY JF。 路程計費標志 DDJFBZ:IN STD_LOGIC。 路程 DDSJ:IN STD_LOGIC_VECTOR(7 DOWNTO 0)。 開始/停止信號,低電平停止,高電平開始 DN:IN STD_LOGIC。USE 。use 。END。 RETURN SOUT。 SOUT(i*4+4 downto i*4):=SB(i)。 end if。) or (SA(i)(3 downto 0)9)) then SB(i) := SA(i) + 00110。 if ((SA(i)(4)=39。 BIN(i*4+3 downto i*4))+(0000 amp。039。 amp。 for i in 0 to 1 loop 01的循環(huán) SA(i) := (39。039。)。 BEGIN CI:=(others=39。 VARIABLE CI : std_logic_vector(4 downto 0)。描述函數(shù)體PACKAGE BODY PACKEXP1 IS FUNCTION bcd_add8(AIN,BIN : std_logic_vector) RETURN std_logic_vector IS type type_bcdx4 is array(3 downto 0) of std_logic_vector(4 downto 0)。定義函數(shù)名PACKAGE PACKEXP1 IS FUNCTION bcd_add8(AIN,BIN : in std_logic_vector) RETURN std_logic_vector。use 。當出租車啟動時,SS為高電平,用于將費用計數(shù)器復(fù)位為起步價10元;當車處于行駛狀態(tài)且滿3公里時,select_clk信號選擇distans_enable,此后路程每滿1公里,費用計數(shù)器加1元;當出租車處于停止等待狀態(tài)且時鐘滿2分鐘時,select_clk信號選擇time_enable信號,時間每滿1分鐘,費用計數(shù)器加1元。:從波形圖可以看出在clk的控制下當SS為高電平DDBZ為高電平的時候時間計數(shù)但是費用沒有計數(shù),DDJFBZ為低電平。