• 方案介紹
  • 附件下載
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

Quartus出租車自動計價器設(shè)計VHDL代碼仿真

8小時前
319
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

2-231222155405b4.doc

共1個文件

名稱:Quartus出租車自動計價器設(shè)計VHDL代碼仿真

軟件:Quartus

語言:VHDL

代碼功能:

出租車自動計價器設(shè)計

設(shè)計一個杭州市臨安區(qū)出租車計價器。

該計價器的計費系統(tǒng):行程4公里內(nèi),且等待累計時間1分鐘內(nèi),起步費為10元;4公里外以每公里2.5元計費,等待累計時間2分鐘外以每分鐘以2.5元計費,并能顯示行駛公里數(shù)、等待累計時間、總費用。

主要技術(shù)指標

①計價范圍:0~999.9元計價分辨率:0.1元

②計程范圍:0~99公里計程分辨率:1公里

③計時范圍:0~59分? ? 計時分辨率:分

FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com

設(shè)計文檔:

1. 工程文件

2. 程序文件

3. 程序編譯

4. RTL圖

5. 仿真圖

整體仿真圖

速度及判斷模塊

計費控制模塊

里程計算模塊

時間計算模塊

顯示模塊

部分代碼展示:

LIBRARY?ieee;
???USE?ieee.std_logic_1164.all;
--出租車計價
ENTITY?taxi_fee?IS
???PORT?(
??????clk????????:?IN?STD_LOGIC;--50MHz基準頻率CLOCK0
??????reset??????:?IN?STD_LOGIC;--復位信號,低有效?
??????
??????stop???????:?IN?STD_LOGIC;--本次行程結(jié)束,停止計費,高有效
??????start??????:?IN?STD_LOGIC;--啟動信號,行程開始,高有效?
??????
??????Wheel_pulse?????:?IN?STD_LOGIC;--車輪脈沖
??????
--4位數(shù)碼管顯示費用
??????Kmmoney_L_HEX????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0);--合計費用?HML=xxx?(BCD碼顯示)
??????Kmmoney_M_HEX????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0);
??????Kmmoney_H_HEX????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0);
Kmmoney_K_HEX????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0);
??????--里程顯示
??????Kmcount_H_HEX????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0);--總路程
??????Kmcount_L_HEX????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0);
??????--時間顯示
??????time_H_HEX????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0);--總時間
??????time_L_HEX????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0)
???);
END?taxi_fee;
ARCHITECTURE?trans?OF?taxi_fee?IS
--速度計算及判斷模塊
COMPONENT?speed_pulse?IS
???PORT?(
??????clk?????????????:?IN?STD_LOGIC;--標準時鐘,10hz?
??????reset???????????:?IN?STD_LOGIC;--復位信號,低有效?
???Wheel_pulse?????:?IN?STD_LOGIC;--車輪脈沖
??????Speed???????????:?OUT?STD_LOGIC;--0:暫停等待;1:行駛
??????kilometre_01???:?OUT?STD_LOGIC;--1公里產(chǎn)生一次
??????minute_en??:?OUT?STD_LOGIC--暫停等待,1min產(chǎn)生一次脈沖
???);
END?COMPONENT;
--模塊例化
???COMPONENT?display?IS
??????PORT?(
?????????clk????????:?IN?STD_LOGIC;
?????????reset??????:?IN?STD_LOGIC;
Speed????????????:?IN?STD_LOGIC;--0:暫停等待;1:行駛
?????????wait_time????:?IN?STD_LOGIC_VECTOR(7?DOWNTO?0);
?????????totel_money?:?IN?STD_LOGIC_VECTOR(15?DOWNTO?0);
?????????mileage????:?IN?STD_LOGIC_VECTOR(7?DOWNTO?0);
--4位數(shù)碼管顯示費用
??????Kmmoney_L_HEX????:?OUT?STD_LOGIC_VECTOR(6?DOWNTO?0);--合計費用?HML=xxx?(BCD碼顯示)
??????Kmmoney_M_HEX????:?OUT?STD_LOGIC_VECTOR(6?DOWNTO?0);
??????Kmmoney_H_HEX????:?OUT?STD_LOGIC_VECTOR(6?DOWNTO?0);
Kmmoney_K_HEX????:?OUT?STD_LOGIC_VECTOR(6?DOWNTO?0);
??????--里程顯示6
??????Kmcount_H_HEX????:?OUT?STD_LOGIC_VECTOR(6?DOWNTO?0);--總路程
??????Kmcount_L_HEX????:?OUT?STD_LOGIC_VECTOR(6?DOWNTO?0);
??????--時間顯示
??????time_H_HEX????:?OUT?STD_LOGIC_VECTOR(6?DOWNTO?0);--總時間
??????time_L_HEX????:?OUT?STD_LOGIC_VECTOR(6?DOWNTO?0)
??????);
???END?COMPONENT;
--模塊例化
--計費模塊
COMPONENT?taxi_state?IS
???PORT?(
??????clk??????????????:?IN?STD_LOGIC;--標準時鐘,10hz?
??????reset????????????:?IN?STD_LOGIC;--復位信號,低有效?
??????stop?????????????:?IN?STD_LOGIC;--本次行程結(jié)束,停止計費,高有效
??????start????????????:?IN?STD_LOGIC;--啟動信號,行程開始,高有效?
??????Speed????????????:?IN?STD_LOGIC;--0:暫停等待;1:行駛
??????kilometre_01????:?IN?STD_LOGIC;--1公里產(chǎn)生一次脈沖
??????minute_en???:?IN?STD_LOGIC;--暫停等待,1min產(chǎn)生一次脈沖
??state_out???:?OUT?STD_LOGIC_VECTOR(2?DOWNTO?0);
??????wait_time????:?IN?STD_LOGIC_VECTOR(7?DOWNTO?0);
??????mileage??????:?IN?STD_LOGIC_VECTOR(7?DOWNTO?0);--里程
??????totel_money_out??:?OUT?STD_LOGIC_VECTOR(15?DOWNTO?0)--合計費用
???);
END?COMPONENT;
--計費模塊
COMPONENT?mileage_ctrl?IS
???PORT?(
??????clk??????????????:?IN?STD_LOGIC;--標準時鐘,10hz?
??????reset????????????:?IN?STD_LOGIC;--復位信號,低有效?
??????kilometre_01????:?IN?STD_LOGIC;--1公里產(chǎn)生一次脈沖
??state???:?IN?STD_LOGIC_VECTOR(2?DOWNTO?0);
??????mileage_out??????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0)
???);
END?COMPONENT;
--計時模塊
COMPONENT?time_ctrl?IS
???PORT?(
??????clk??????????????:?IN?STD_LOGIC;--標準時鐘,10hz?
??????reset????????????:?IN?STD_LOGIC;--復位信號,低有效?
??????minute_en???:?IN?STD_LOGIC;--暫停等待,1min產(chǎn)生一次脈沖
??state???:?IN?STD_LOGIC_VECTOR(2?DOWNTO?0);
??????wait_time_out????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0)--計時
???);
END?COMPONENT;
???
--信號定義
???SIGNAL?Speed?:?STD_LOGIC;--0:暫停等待;1:行駛
???SIGNAL?kilometre_01???:?STD_LOGIC;
???SIGNAL?minute_en??:?STD_LOGIC;
???SIGNAL?totel_money?????:?STD_LOGIC_VECTOR(15?DOWNTO?0);
???SIGNAL?mileage?????????:?STD_LOGIC_VECTOR(7?DOWNTO?0);
???SIGNAL?wait_time?????????:?STD_LOGIC_VECTOR(7?DOWNTO?0);
???SIGNAL?state???:??STD_LOGIC_VECTOR(2?DOWNTO?0);
BEGIN?
--3位數(shù)碼管顯示費用
??????Kmmoney_L_HEX(7)<='1';--合計費用?HML=xxx?(BCD碼顯示)
??????Kmmoney_M_HEX(7)<='0';--顯示小數(shù)點
??????Kmmoney_H_HEX(7)<='1';
Kmmoney_K_HEX(7)<='1';
??????--里程顯示
??????Kmcount_H_HEX(7)<='1';
??????Kmcount_L_HEX(7)<='1';
??????--時間顯示
??????time_H_HEX(7)<='1';
??????time_L_HEX(7)<='1';
--速度計算及判斷模塊
???U_speed_pulse?:?speed_pulse
??????PORT?MAP?(
?????????clk?????????????=>?clk,--標準時鐘,256hz?
?????????reset???????????=>?reset,--復位信號,低有效?
?Wheel_pulse?????=>Wheel_pulse,
?????????Speed???????????=>?Speed,----0:暫停等待;1:行駛
?????????kilometre_01???=>?kilometre_01,--1公里產(chǎn)生一次脈沖
?????????minute_en??=>?minute_en--暫停等待,1min產(chǎn)生一次脈沖
??????);
???--控制模塊
???U_taxi_state?:?taxi_state
??????PORT?MAP?(
?????????clk??????????????=>?clk,--標準時鐘,256hz?
?????????reset????????????=>?reset,--復位信號,低有效?
?????????
?????????stop?????????????=>?stop,--本次行程結(jié)束,停止計費,高有效
?????????start????????????=>?start,--啟動信號,行程開始,高有效?
?????????
?????????speed????????????=>?Speed,----0:暫停等待;1:行駛
?????????
?????????kilometre_01????=>?kilometre_01,----1公里產(chǎn)生一次脈沖
?????????minute_en???=>?minute_en,--暫停等待,1mins產(chǎn)生一次脈沖
?state_out=>state,
?????????wait_time????=>?wait_time,
?????????mileage??????=>?mileage,
?????????totel_money_out??=>?totel_money--合計費用
??????);?
??
--計里程模塊
U_mileage_ctrl:?mileage_ctrl
???PORT?MAP(
??????clk???????????????=>?clk,--標準時鐘
??????reset????????????=>?reset,--復位信號,低有效?
??????kilometre_01???=>?kilometre_01,----1公里產(chǎn)生一次脈沖
??state??=>state,
??????mileage_out???=>??mileage
???);
--計時模塊
U_time_ctrl?:?time_ctrl
???PORT?MAP(
??????clk????=>?clk,--標準時鐘
??????reset??=>?reset,--復位信號,低有效?
???????minute_en???=>?minute_en,--暫停等待,1min產(chǎn)生一次脈沖
??state??=>state,
??????wait_time_out???=>wait_time
???);
???--顯示模塊
???U_display?:?display
??????PORT?MAP?(
?????????clk??????????=>?clk,--標準時鐘
?????????reset????????=>?reset,--復位信號,低有效?
?????????speed????????????=>?Speed,----0:暫停等待;1:行駛
?????????totel_money??=>?totel_money,--費用
?????????mileage??????=>?mileage,--里程
?????????wait_time????=>?wait_time,--累計等待時間
???--4位數(shù)碼管顯示費用
?????????Kmmoney_L_HEX????=>?Kmmoney_L_HEX(6?DOWNTO?0),--合計費用?HML=xxx?(BCD碼顯示)
?????????Kmmoney_M_HEX????=>?Kmmoney_M_HEX(6?DOWNTO?0),
?????????Kmmoney_H_HEX????=>?Kmmoney_H_HEX(6?DOWNTO?0),
???Kmmoney_K_HEX????=>?Kmmoney_K_HEX(6?DOWNTO?0),
?????????--里程顯示
?????????Kmcount_H_HEX???=>?Kmcount_H_HEX(6?DOWNTO?0),--總路程
?????????Kmcount_L_HEX???=>?Kmcount_L_HEX(6?DOWNTO?0),
?????????--時間顯示
?????????time_H_HEX????=>?time_H_HEX(6?DOWNTO?0),--總時間
?????????time_L_HEX????=>?time_L_HEX(6?DOWNTO?0)
??????);
???
END?trans;

點擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=398

  • 2-231222155405b4.doc
    下載

相關(guān)推薦