出租车计价系统不同收费模式VHDL代码Quartus仿真

本文详细描述了一个出租车计价系统的VHDL代码实现,包括起步价、按公里计费、白天和夜晚以及交通拥堵的不同收费标准。使用Quartus进行仿真,展示了里程、费用计算和控制模块的部分代码结构。
摘要由CSDN通过智能技术生成

名称:出租车计价系统不同收费模式VHDL代码Quartus仿真(文末获取)

软件:Quartus

语言:VHDL

代码功能:

出租车计价系统不同收费模式

该系统能显示里程数和乘客应付的费用,出租车的计费标准为:

里程在3公里以内为起步价10元;

3公里以上时,每行驶1公里增加2.4元。

该系统同时具有白天和夜晚不同收费模式,

正常行驶和交通拥堵不同收费模式。

1. 工程文件

2. 程序文件

顶层电路图

代码

3. 程序编译

4. RTL图

5. 仿真文件

6. 仿真图

整体仿真图

显示模块仿真图

控制模块

速度脉冲模块

部分代码展示:

LIBRARY ieee;
   USE ieee.std_logic_1164.all;
   USE ieee.std_logic_unsigned.all;
--控制模块
ENTITY taxi_state IS
   PORT (
      clk              : IN STD_LOGIC;--标准时钟,10hz 
      reset            : IN STD_LOGIC;--复位信号,低有效 
      day_night        : IN STD_LOGIC;--day oe night ;1 for day ,0 for night
      stop             : IN STD_LOGIC;--本次行程结束,停止计费,高有效
      start            : IN STD_LOGIC;--启动信号,行程开始,高有效 
      Speed            : IN STD_LOGIC;--0:暂停等待;1:行驶
      one_kilometre    : IN STD_LOGIC;--1公里产生一次脉冲
      seconds_60   : IN STD_LOGIC;--暂停等待,60s产生一次脉冲
      wait_time_out    : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
      mileage_out      : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
      totel_money_out  : OUT STD_LOGIC_VECTOR(15 DOWNTO 0)--合计费用
   );
END taxi_state;
ARCHITECTURE trans OF taxi_state IS
   constant night_start:STD_LOGIC_VECTOR(15 DOWNTO 0) := "0000000010010110";--15.0--夜间起步价15元
   constant day_start:  STD_LOGIC_VECTOR(15 DOWNTO 0) := "0000000001100100";--10.0--白天起步价10元
   constant night_price:STD_LOGIC_VECTOR(15 DOWNTO 0) := "0000000000011110";--3.0--夜间每行驶1公里增加3.0元
   constant day_price:  STD_LOGIC_VECTOR(15 DOWNTO 0) := "0000000000011000";--2.4--白天每行驶1公里增加2.4元   
   constant night_time: STD_LOGIC_VECTOR(15 DOWNTO 0) := "0000000000000010";--0.2--夜间交通拥堵每分钟收费0.2元  
   constant day_time:   STD_LOGIC_VECTOR(15 DOWNTO 0) := "0000000000000001";--0.1--白天交通拥堵每分钟收费0.1元   
   SIGNAL start_fee:STD_LOGIC_VECTOR(15 DOWNTO 0) ;
   SIGNAL price_fee:STD_LOGIC_VECTOR(15 DOWNTO 0) ; 
   SIGNAL time_fee: STD_LOGIC_VECTOR(15 DOWNTO 0) ;
   
   SIGNAL state       : STD_LOGIC_VECTOR(2 DOWNTO 0) := "000";
   SIGNAL totel_money : STD_LOGIC_VECTOR(15 DOWNTO 0) := "0000000000000000";
   SIGNAL mileage     : STD_LOGIC_VECTOR(7 DOWNTO 0) := "00000000";
   SIGNAL wait_time     : STD_LOGIC_VECTOR(7 DOWNTO 0) := "00000000";
BEGIN
源代码

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值