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

出租车自动计费器Verilog代码Quartus仿真

06/30 09:19
518
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-240111153AJB.doc

共1个文件

名称:出租车自动计费器Verilog代码Quartus仿真

软件:Quartus

语言:Verilog

代码功能:

出租车自动计费器

功能:

1.里程:起步价16元(3Km内),大于3Km后,按照2.7元/Km的标准收费。

2.等候时间:1元/分钟计费。

3.行程结束,费用结算开始清零。

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

演示视频:

设计文档:

1. 工程文件

2. 程序文件

3. 程序编译

4. 仿真文件

5. 仿真图

部分代码展示:

//出租车计费器
module taxi_fee(
input clk,//时钟
input reset,//复位信号,低有效 
input stop,//本次行程结束,停止计费,高有效
input start,//启动信号,行程开始,高有效 
input Speed,//0:等待  1:行驶
input one_kilometre,//1公里产生一次
input one_minute,//1分钟产生一次
output reg [15:0] totel_money_out//合计费用
);
parameter s_idle=3'd0;
parameter s_starting_price=3'd1;//起步价
parameter s_mileage_price=3'd2;//按里程计费
parameter s_time_price=3'd3;//按时间计费
parameter s_stop=3'd4;
reg [2:0] state=3'd0;
reg [15:0] totel_money=16'd0;
reg [7:0] mileage=8'd0;//里程
always@(posedge clk)
if(reset==0)
mileage<=8'd0;
else
if(state==s_starting_price || state==s_mileage_price)
if(one_kilometre==1)
mileage<=mileage+8'd1;//一公里里程加1
else
mileage<=mileage;
else if(stop==1) 
mileage<=8'd0;//结束,费用清零
else
mileage<=mileage;
//定义计费方式,可修改
parameter start_price=15'd160;//起步价16.0元
parameter start_kilometres=8'd3;//3公里内起步价
parameter kilometres_price=15'd27;//2.7元每公里
parameter time_price=15'd10;//1.0元每1分钟
always@(posedge clk)
if(reset==0)begin
state<=s_idle;//reset
totel_money<=16'd0;
totel_money_out<=16'd0;
end

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

  • 2-240111153AJB.doc
    下载

相关推荐