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

DE2-70开发板出租车计费器verilog计价器

05/22 15:03
604
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

1-23110412511JI.doc

共1个文件

名称:DE2-70开发板出租车计费器verilog计价器(代码在文末下载)

软件:Quartus II

语言:Verilog

代码功能:

一个出租车计价系统。

完成的功能是前3公里内收费10元,超过3公里按每公里2元收费。

同时记录等待时间,累计等待时间超过5分钟则加3元,以此类推。

若总公里数超过20公里,需加收10元空载返程费。

公里数、等待时间、费用均需显示在数码管上。

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

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

DE2-70.png

演示视频:

部分代码展示:

module taxi_fee(
input clk,//标准时钟,clock0=50M
input reset,//复位信号
input stop,//中途暂停
input start,//启动信号,行程开始,高有效 
//等待时间
output   [7:0] HEX0,//数码管-低亮
output   [7:0] HEX1,//数码管-低亮
//总路程,里程范围为HL=0~99(BCD码显示)
output   [7:0] HEX2,//数码管-低亮
output   [7:0] HEX3,//数码管-低亮
//合计费用 HML=xxx (BCD码显示)
output   [7:0] HEX4,//数码管-低亮
output   [7:0] HEX5,//数码管-低亮
output   [7:0] HEX6//数码管-低亮
);
wire one_kilometre;//1公里产生一次脉冲
wire [15:0] totel_money;
wire [7:0] mileage;
wire [7:0] minute;//等待时间
wire stop_negedge;
wire start_negedge;
//消抖模块
key_jitter i1_key_jitter(
. clkin(clk),    
. key_in(stop),//输入
. key_negedge(stop_negedge)//消抖后按键下降沿
);
//消抖模块
key_jitter i2_key_jitter(
. clkin(clk),    
. key_in(start),//输入
. key_negedge(start_negedge)//消抖后按键下降沿
);
speed_pulse U_speed_pulse(
. clk(clk),//标准时钟,50MHz
. reset(~reset),//复位信号,低有效 
. one_kilometre(one_kilometre)//1公里产生一次脉冲
);
taxi_state U_taxi_state(
. clk(clk),//标准时钟,50Mhz 
. reset(~reset),//复位信号
. stop(stop_negedge),//中途暂停
. start(start_negedge),//启动信号,行程开始,高有效 
. one_kilometre(one_kilometre),//1公里产生一次脉冲
. minute(minute),
. mileage_out(mileage),//里程
. totel_money_out(totel_money)//合计费用
);
display U_display(
. clk(clk),//标准时钟,50Mhz 
. totel_money(totel_money),//费用
. mileage(mileage),//里程
. minute(minute),
. HEX0(HEX0),//数码管-低亮
. HEX1(HEX1),//数码管-低亮
. HEX2(HEX2),//数码管-低亮
. HEX3(HEX3), //数码管-低亮
. HEX4(HEX4),//数码管-低亮
. HEX5(HEX5), //数码管-低亮
. HEX6(HEX6) //数码管-低亮
);
endmodule

设计文档:

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. 管脚分配

6. Testbench

7. 仿真图

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

  • 1-23110412511JI.doc
    下载

相关推荐