出租车计费器VHDL代码Quartus仿真

名称:出租车计费器VHDL代码Quartus仿真(文末获取)

软件:Quartus

语言:VHDL

代码功能:

出租车计费器

1.能实现计要功能,计费标准:起步费7.0元,3公里后按2元/公里,总要用达到或超过40元时,按4元/公里收费,客户需要停车等待时,按时间收

费,1元/20秒。   

2.以十进制显示行驶里程和车费

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. 管脚分配

6. 仿真图

部分代码展示:

LIBRARY ieee;
   USE ieee.std_logic_1164.all;
ENTITY taxi_fee IS
   PORT (
      clk_in   : IN STD_LOGIC;--时钟1000Hz
      reset    : IN STD_LOGIC;--复位信号
      speedup  : IN STD_LOGIC;--档位控制
      stop_n   : IN STD_LOGIC;--中途暂停
      start_n  : IN STD_LOGIC;--启动信号,行程开始
      SEL      : OUT STD_LOGIC_VECTOR(2 DOWNTO 0);--数码管位选
      SEG      : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)--数码管段选 
   );
END taxi_fee;
ARCHITECTURE behave OF taxi_fee IS
--档位控制模块
   COMPONENT speed_pulse IS
      PORT (
         clk      : IN STD_LOGIC;
         reset_p  : IN STD_LOGIC;
         speedup  : IN STD_LOGIC;
         pulse_kilometre : OUT STD_LOGIC
      );
   END COMPONENT;
   --状态机控制模块
   COMPONENT taxi_state IS
      PORT (
         clk_in   : IN STD_LOGIC;
         reset_p  : IN STD_LOGIC;
         start_n  : IN STD_LOGIC;
         stop_n   : IN STD_LOGIC;
         pulse_kilometre : IN STD_LOGIC;
         mileage_out : OUT STD_LOGIC_VECTOR(15 DOWNTO 0);
         totel_money_out : OUT STD_LOGIC_VECTOR(15 DOWNTO 0)
      );
   END COMPONENT;
  --显示模块 
   COMPONENT display_num IS
      PORT (
         clk      : IN STD_LOGIC;
         mileage_out : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
         totel_money_out : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
         SEL      : OUT STD_LOGIC_VECTOR(2 DOWNTO 0);
         SEG      : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)
      );
   END COMPONENT;
   
   SIGNAL pulse_kilometre : STD_LOGIC;--1公里产生一次脉冲
   SIGNAL mileage_out     : STD_LOGIC_VECTOR(15 DOWNTO 0);--里程
   SIGNAL totel_money_out : STD_LOGIC_VECTOR(15 DOWNTO 0);--合计费用
BEGIN
   --档位控制模块
   i_speed_pulse : speed_pulse
      PORT MAP (
         clk              => clk_in,--时钟,1000Hz
         reset_p          => reset,--复位信号
         speedup          => speedup,--档位控制
         pulse_kilometre  => pulse_kilometre--1公里产生一次脉冲
      );
   
   
   --状态机控制模块
   i_taxi_state : taxi_state
      PORT MAP (
         clk_in           => clk_in,--时钟1000Hz
         reset_p          => reset,--复位信号
         start_n          => start_n,--启动信号,行程开始
         stop_n           => stop_n,--中途暂停
         pulse_kilometre  => pulse_kilometre,--1公里产生一次脉冲
         mileage_out      => mileage_out,--里程
         totel_money_out  => totel_money_out--合计费用
      );
   
   
   --显示模块
   i_display_num : display_num
      PORT MAP (
         clk              => clk_in,
         mileage_out      => mileage_out,--里程
         totel_money_out  => totel_money_out,--合计费用
         SEL              => SEL,--数码管位选
         SEG              => SEG--数码管段选 
      );
   
END behave;
源代码

 扫描文章末尾的公众号二维码

  • 28
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值