【正文】
ECTURE a OF ZDJF IS signal km:std_logic_vector(3 downto 0)。 BEGIN PROCESS(s_p,clk) BEGIN IF s_p=39。139。THEN km=0000。 jfout=start。 起步費(fèi)賦初值 elsif(clk39。event and clk=39。139。)then if km=1111then km=km。 else km=km+1。 end if。 if d_n=39。039。then if km=2 then 白天起步費(fèi) 2 公里內(nèi) 基于 FPGA 的出租車計(jì)費(fèi)器的設(shè)計(jì) 2 jfout=jfout。 elsif(km2 and km=12)then 白天 2 到 12 公里 jfout=jfout+D2。 else jfout=jfout+D3。 白天 12 公里之后 end if。 else if km=2 then 深夜起步費(fèi) 2 公里內(nèi) jfout=jfout。 elsif(km2 and km=12)then 深夜 2 到 12 公里 jfout=jfout+N2。 else jfout=jfout+N3。 深夜 12 公里之后 end if。 end if。 end if。 end process。 end a。 LIBRARY ieee。 USE 。 USE 。 ENTITY updown IS PORT ( clk:IN STD_LOGIC。 up,down:IN STD_LOGIC。 p:BUFFER STD_LOGIC_vector(7 downto 0) 變量輸出 )。 基于 FPGA 的出租車計(jì)費(fèi)器的設(shè)計(jì) 3 END updown。 ARCHITECTURE a OF updown IS BEGIN PROCESS(clk) BEGIN IF(clk39。EVENT AND clk=39。139。)THEN 自動(dòng)加減頻率 IF(up=39。139。and down=39。039。)THEN 加 1 if p=11001000then p=11001000。 else p=p+1。 end if。 ELSIF(up=39。039。and down=39。139。)THEN 減 1 if p=00000000then p=00000000。 else p=p1。 end if。 ELSE p=p。 END IF。51 END IF。 END PROCESS。 END a。 LIBRARY ieee。 USE 。 USE 。 ENTITY bijiao IS 基于 FPGA 的出租車計(jì)費(fèi)器的設(shè)計(jì) 4 PORT ( p:IN STD_LOGIC_vector(7 downto 0)。速度值 low,high:OUT STD_LOGIC )。 END bijiao。 ARCHITECTURE a OF bijiao IS BEGIN PROCESS(p) BEGIN IF p12 THEN低于 12km/h low=39。139。 high=39。039。 ELSIF p180 THEN高于 180km/h low=39。039。 high=39。139。 ELSE low=39。039。 high=39。039。 END IF。 END PROCESS。 END a。 LIBRARY ieee。 USE 。 USE 。 ENTITY daynight IS PORT ( 基于 FPGA 的出租車計(jì)費(fèi)器的設(shè)計(jì) 5 s,g:IN STD_LOGIC_vector(3 downto 0)。 p:OUT STD_LOGIC)。 END daynight。 ARCHITECTURE a OF daynight IS BEGIN PROCESS(s,g) BEGIN IF(samp。g=00100010or samp。g00000101)then大于 22 小時(shí),小于 5 小時(shí) p=39。139。 else p=39。039。 end if。 END PROCESS。 END a。 LIBRARY ieee。 USE 。 USE 。 ENTITY jishi IS PORT ( clk:IN STD_LOGIC。 clr:IN STD_LOGIC。 time:IN std_logic_vector(2 downto 0)。 等待時(shí)間 js:OUT STD_LOGIC 輸出計(jì)為 1km )。 END jishi。 ARCHITECTURE a OF jishi IS signal q:STD_LOGIC_vector(8 downto 0)。 基于 FPGA 的出租車計(jì)費(fèi)器的設(shè)計(jì) 6 signal p:STD_LOGIC_vector(8 downto 0)。 BEGIN T_process:process begin case time is when000=p=000000000。 when001=p=000111100。 when010=p=001111000。 when011=p=010110100。 when100=p=011110000。 when101=p=100101100。 when110=p=101101000。 when others=p=110100100。 end case。 end process。 clk_PROCESS:process(clk,clr) BEGIN IF clr=39。139。then q=000000000。 ELSIF(clk39。EVENT AND clk=39。139。)THEN if q=p then累計(jì)到與設(shè)定 相同時(shí)輸出 q=000000000。 js=39。139。 else q=q+1。 js=39。039。 end if。55 END IF。 END PROCESS。 END a。 基于 FPGA 的出租車計(jì)費(fèi)器的設(shè)計(jì) 7 LIBRARY ieee。 USE 。 USE 。 ENTITY jichen IS PORT (p:in std_logic_vector(14 downto 0)。 clk:IN STD_LOGIC。 clr:IN STD_LOGIC。 jc:OUT STD_LOGIC )。 END jichen。 ARCHITECTURE a OF jichen IS signal q:STD_LOGIC_vector(14 downto 0)。 BEGIN PROCESS(clk,clr) BEGIN IF clr=39。139。then q=000000000000000。 ELSIF(clk39。EVENT AND clk=39。139。)THEN if q=p then q=000000000000000。 jc=39。139。 else q=q+1。 jc=39。039。56 end if。 END IF。 END PROCESS。 END a。 基于 FPGA 的出租車計(jì)費(fèi)器的設(shè)計(jì) 8 LIBRARY ieee。 USE 。 USE 。 ENTITY jcjsout IS PORT ( chen,shi:IN STD_LOGIC。 clr:IN STD_LOGIC。 ca,cb,cc:buffer std_logic_vector(3 downto 0)。 sa,sb:buffer std_logic_vector(3 downto 0) )。 END jcjsout。 ARCHITECTURE a OF jcjsout IS BEGIN js_PROCESS:process(shi,clr) 計(jì)時(shí)部分 BEGIN IF clr=39。139。then sa=0000。 sb=0000。 ELSIF(shi39。EVENT AND shi=39。139。)THEN if sa=9 then sa=0000。 if sb=9 then sb=0000。 else sb=sb+1。57 end if。 else sa=sa+1。 基于 FPGA 的出租車計(jì)費(fèi)器的設(shè)計(jì) 9 end if。 END IF。 end process。 jc_PROCESS:process(chen,clr) 計(jì)程部分 BEGIN IF clr=39。139。then ca=0000。 cb=0000。 cc=0000。 ELSIF(chen39。EVENT AND chen=39。139。)THEN if ca=9 then ca=0000。 if cb=9 then cb=0000。 if cc=9 then cc=0000。 else cc=cc+1。 end if。 else cb=cb+1。 end if。 else ca=ca+1。 end if。 END IF。 end process。 END a。 LIBRARY ieee。 基于 FPGA 的出租車計(jì)費(fèi)器的設(shè)計(jì) 10 USE 。 USE 。59 ENTITY stopmux IS PORT ( sel:IN STD_LOGIC。 p:IN STD_LOGIC_vector(31 downto 0)。 pout1,pout2,pout3,pout4:out STD_LOGIC_vector(7 downto 0) )。 END stopmux。 ARCHITECTURE a OF stopmux IS BEGIN PROCESS BEGIN IF sel=39。039。THEN pout1=01010011。 pout2=01010100。 pout3=01001111。 pout4=01010000。 else pout1=p(31 downto 24)。 pout2=p(23 downto 16)。 pout3=p(15 downto 8)。 pout4=p(7 downto 0)。 END IF。 END PROCESS。 END a。 LIBRARY ieee。 USE 。 基于 FPGA 的出租車計(jì)費(fèi)器的設(shè)計(jì) 11 USE 。 ENTITY setmux IS PORT (60 sel:IN STD_LOGIC_VECTOR(2 downto 0)。 u,d:IN STD_LOGIC。 u0,d0,u1,d1,u2,d2,u3,d3,u4,d4,u5,d5,u6,d6,u7,d7:OUT STD_LOGIC )。 END setmux。 ARCHITECTURE a OF setmux IS BEGIN PROCESS BEGIN case sel is when000=u0=u。d0=d。 when001=u1=u。d1=d。 when010=u2=u。d2=d。 when011=u3=u。d3=d。 when100=u4=u。d4=d。 when101=u5=u。d5=d。 when110=u6=u。d6=d。 when others=u7=u。d7=d。 end case。 END PROCESS。 END a。 LIBRARY ieee。 USE 。 USE 。 ENTITY password IS 基于 FPGA 的出租車計(jì)費(fèi)器的設(shè)計(jì) 12 PORT ( clk,up,down:IN STD_LOGIC。 word:BUFFER STD_LOGIC_vector(9 downto 0)。 passout:out std_logic )。61 END password。 ARCHITECTURE a OF password IS BEGIN PROCESS(clk) BEGIN IF(clk39。EVENT AND clk=39。139。)THEN IF(up=39。139。and down=39。039。)THEN if word=999 then word=1111100111。 else word=word+1。 end if。 ELSIF(up=39。039。and down=39。139。)THEN if word=0 then word=0000000000。 else word=word1。 end if。 ELSE word=word。 END IF。 if word=102 then密碼預(yù)設(shè)值 00102 passout=39。1