• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

出租车计价器设计VHDL代码Quartus仿真

09/24 08:33
360
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-24102R03232631.doc

共1个文件

名称:出租车计价器设计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

  • 2-24102R03232631.doc
    下载

相关推荐