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

出租车计价器设计VHDL代码Quartus DE2-115开发板

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

2-241016204549132.doc

共1个文件

名称:出租车计价器设计VHDL代码Quartus  DE2-115开发板

软件:Quartus

语言:VHDL

代码功能:

出租车计价器设计

完成简易出租车计价器设计,选做停车等待计价功能。

基本功能:

(1)起步8元/3公里,此后2元/公里;

(2)里程指示信号为每前进50米一个高电平脉冲,上升沿有效;显示行公里数,精确到0.1公里。(模拟时速40KM/h);

(3)前进里程开始之前显示价钱,精确到0.1元;

(4)用两个按键分别表示开始行程和结束行程。

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

本代码已在DE2-115开发板验证,DE2-115开发板如下,其他开发板可以修改管脚适配:

DE2-115开发板.png

演示视频:

设计文档:

1. 工程文件

2. 程序文件

原理图

代码

3. 程序编译

4. RTL图

5. 管脚分配

6. 仿真图

整体仿真图

脉冲产生模块

计费模块

显示模块

部分代码展示:

LIBRARY ieee;
   USE ieee.std_logic_1164.all;
--(1)起步8元/3公里,此后2元/公里;
--(2)里程指示信号为每前进50米一个高电平脉冲,上升沿有效;显示行公里数,精确到0.1公里。(模拟时
--速40KM/h)
--(3)前进里程开始之前显示价钱,精确到0.1元;
--(4)用两个按键分别表示开始行程和结束行程。
--出租车计费
ENTITY taxi_fee IS
   PORT (
      clk        : IN STD_LOGIC;--时钟
      reset      : IN STD_LOGIC;--复位信号,低有效 
      stop       : IN STD_LOGIC;--本次行程结束,停止计费,高有效
      start      : IN STD_LOGIC;--启动信号,行程开始,高有效 
      --6个数码管
      HEX0   : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);
      HEX1   : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);
      HEX2   : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);
      HEX3   : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);
      HEX4   : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);
      HEX5   : OUT STD_LOGIC_VECTOR(6 DOWNTO 0)
   );
END taxi_fee;
ARCHITECTURE trans OF taxi_fee IS
--模块例化
   COMPONENT display IS
      PORT (
         clk        : IN STD_LOGIC;
         reset      : IN STD_LOGIC;
         totel_money : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
         mileage    : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
         --6个数码管
         HEX0   : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);
         HEX1   : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);
         HEX2   : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);
         HEX3   : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);
         HEX4   : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);
         HEX5   : OUT STD_LOGIC_VECTOR(6 DOWNTO 0)
      );
   END COMPONENT;
--模块例化   
   COMPONENT speed_pulse IS
      PORT (
         clk        : IN STD_LOGIC;
         reset      : IN STD_LOGIC;
         one_pulse : OUT STD_LOGIC
      );
   END COMPONENT;
--模块例化
COMPONENT taxi_state IS
   PORT (
      clk              : IN STD_LOGIC;
      reset            : IN STD_LOGIC;      
      stop             : IN STD_LOGIC;
      start            : IN STD_LOGIC;
      one_pulse    : IN STD_LOGIC;
      mileage_out      : OUT STD_LOGIC_VECTOR(15 DOWNTO 0);
      totel_money_out  : OUT STD_LOGIC_VECTOR(15 DOWNTO 0)
   );
   END COMPONENT;
   
--信号定义
   SIGNAL one_pulse   : STD_LOGIC;
   SIGNAL totel_money     : STD_LOGIC_VECTOR(15 DOWNTO 0);
   SIGNAL mileage         : STD_LOGIC_VECTOR(15 DOWNTO 0);
BEGIN
   --速度脉冲产生模块
   U_speed_pulse : speed_pulse
      PORT MAP (
         clk             => clk,--标准时钟
         reset           => reset,--复位信号,低有效 
         one_pulse   => one_pulse----50米一个高电平脉冲
      );
   
   
   --计费模块
   U_taxi_state : taxi_state
      PORT MAP (
         clk              => clk,--标准时钟
         reset            => reset,--复位信号,低有效 
         stop             => stop,--本次行程结束,停止计费,高有效
         start            => start,--启动信号,行程开始,高有效 
         one_pulse    => one_pulse,----50米一个高电平脉冲
         mileage_out      => mileage,
         totel_money_out  => totel_money--合计费用
      );

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1209

  • 2-241016204549132.doc
    下载

相关推荐