出租车计价器设计Verilog代码Quartus SOPCEDA实验箱

名称:出租车计价器设计Verilog代码Quartus  SOPCEDA实验箱

软件:Quartus

语言:Verilog

代码功能:

功能描述

1、 起步价为13元起步公里为3公里。

2、 超过3公里每公里按2元收费。

3、 要求用数码管显示里程、等候时间和计费;用按钮实现启动、等候、结束等功能。

4、 单程行驶里程超过15公里,每公里租价加收50%

5、 等候时间累积5分钟加收1元。

6、 自定义其它功能

 

预计模块划分:

1、 公里脉冲模块,用于产生1公里脉冲信号,用于公里计费。使用计数器实现信号的产生。

2、 控制模块,使用状态机控制实现出租车计费器的主要功能,包括起步价、安公里计费。时间计费等。

3、 数码管显示模块,用数码管显示里程、等候时间和计费,将控制模块输出的里程、等候时间和费用通过译码器显示为数码管上的数字。


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

本代码已在SOPCEDA实验箱验证,SOPCEDA实验箱如下,其他开发板可以修改管脚适配:SOPCEDA实验箱.jpg

演示视频:

设计文档:

设计文档.doc

1. 工程文件


2. 程序文件



3. 程序编译


4. RTL图


5. 管脚分配


6. 仿真图

顶层模块


公里及时间产生模块


控制模块



显示模块



部分代码展示:

//顶层模块
module taxi_fee_220721_14(
input clk,//标准时钟,1024hz 
input reset,//复位信号,低有效 
input stop_in,//本次行程结束,停止计费,高有效
input start_in,//启动信号,行程开始,高有效 
input [1:0] Speed,//00:暂停等待;01:低速;10:中;11:高速
output [7:0] bit_select,//数码管位选
output [7:0] seg_select//数码管段选
);
//信号定义
wire one_kilometre;//1公里产生一次脉冲
wire time_wait_en;//暂停等待,5min产生一次脉冲
wire [15:0] totel_money;
wire [7:0] mileage;
wire [7:0] wait_time;//时间
wire clk_1KHz;
//分频模块,分频到1000Hz
fenping i_fenping(
. clk_in(clk),
. clk_1000Hz(clk_1KHz)
);
//模块例化
speed_pulse_220721_14 U_speed_pulse(
. clk(clk_1KHz),//标准时钟
. reset(reset),//复位信号,低有效 
. Speed(Speed),//00:暂停等待;01:低速;10:中;,11:高速
. wait_time(wait_time),
. one_kilometre(one_kilometre),//1公里产生一次脉冲
. time_wait_en(time_wait_en)//暂停等待,20s产生一次脉冲
);
//模块例化
taxi_state_220721_14 U_taxi_state(
. clk(clk_1KHz),//标准时钟
. reset(reset),//复位信号,低有效 
. stop_in(stop_in),//本次行程结束,停止计费,高有效
. start_in(start_in),//启动信号,行程开始,高有效 
. Speed(Speed),//00:暂停等待;01:低速;10:中;,11:高速
. one_kilometre(one_kilometre),//1公里产生一次脉冲
. time_wait_en(time_wait_en),//暂停等待,20s产生一次脉冲
. mileage_out(mileage),
. totel_money_out(totel_money)//合计费用
);

代码文件(付费下载):



1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 出租车计价器设计Verilog代码Quartus SOPCEDA实验箱

注册为本站会员,充值100得150,详情咨询客服

目前为止共有 *** 位优秀的会员加入! 立刻加入会员