名称:出租车计价器设计VHDL代码Quartus仿真
软件:Quartus
语言:VHDL
代码功能:
出租车计价器
1、使用quartusII软件设计出租车计费器
2、可以模拟出租车车速如停车、低速、中速、高速,不同车速下对应车轮脉冲频率不同
3、可以控制行程开始和结束
4、1.5公里内起步价3元,车行驶 1.5公里后按每公里 2元计费
5、停车等待时,按时间计费,计费单价为每 20s收费1 元
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 程序编译
4. 仿真图
4.1 整体仿真
4.2 显示模块
4.3 计时模块
4.4 速度脉冲模块
4.5 出租车计费模块
部分代码展示:
LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_unsigned.all; ENTITY display IS PORT ( clk : IN STD_LOGIC;--标准时钟,256hz reset : IN STD_LOGIC;--复位信号,低有效 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);--里程 Kmmoney_L : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);--合计费用 HML=xxx (BCD码显示) Kmmoney_M : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); Kmmoney_H : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); Kmcount_H : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);--总路程,里程范围为HL=0~99(BCD码显示) Kmcount_L : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); Kmtime_H : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);--总时间 Kmtime_L : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ); END display; ARCHITECTURE trans OF display IS --二进制转BCD码 COMPONENT b_to_bcd IS PORT ( clk : IN STD_LOGIC; rst_n : IN STD_LOGIC; binary : IN STD_LOGIC_VECTOR(15 DOWNTO 0); state_en : IN STD_LOGIC; BCD : OUT STD_LOGIC_VECTOR(15 DOWNTO 0) ); END COMPONENT; -- SIGNAL totel_money_100 : STD_LOGIC_VECTOR(3 DOWNTO 0); -- SIGNAL totel_money_10 : STD_LOGIC_VECTOR(3 DOWNTO 0); -- SIGNAL totel_money_1 : STD_LOGIC_VECTOR(3 DOWNTO 0); -- -- SIGNAL mileage_10 : STD_LOGIC_VECTOR(3 DOWNTO 0); -- SIGNAL mileage_1 : STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL BCD_mileage_out : STD_LOGIC_VECTOR(15 DOWNTO 0); SIGNAL BCD_totel_money_out : STD_LOGIC_VECTOR(15 DOWNTO 0); SIGNAL BCD_wait_time_out : STD_LOGIC_VECTOR(15 DOWNTO 0); SIGNAL mileage_exd : STD_LOGIC_VECTOR(15 DOWNTO 0); SIGNAL wait_time_exd : STD_LOGIC_VECTOR(15 DOWNTO 0); BEGIN mileage_exd<="00000000" & mileage; wait_time_exd<="00000000" & wait_time; --二进制转BCD码 BCD_mileage : b_to_bcd PORT MAP ( clk =>clk, rst_n =>reset, binary =>mileage_exd, state_en =>'1', BCD =>BCD_mileage_out ); --二进制转BCD码 BCD_totel_money : b_to_bcd PORT MAP ( clk =>clk, rst_n =>reset, binary =>totel_money, state_en =>'1', BCD =>BCD_totel_money_out ); --二进制转BCD码 BCD_wait_time : b_to_bcd PORT MAP ( clk =>clk, rst_n =>reset, binary =>wait_time_exd, state_en =>'1', BCD =>BCD_wait_time_out );
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1275
阅读全文
360