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

出租车计价系统设计Verilog代码Quartus DE2-115开发板

09/12 14:10
595
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-24101620332UH.doc

共1个文件

名称:出租车计价系统设计Verilog代码Quartus  DE2-115开发板

软件:Quartus

语言:Verilog

代码功能:一个出租车计价系统。完成的功能是前3公里内收费10元,超过3公里按每公里2元收费。同时记录等待时间,累计等待时间超过5分钟则加3元,以此类推。若总公里数超过20公里,需加收10元空载返程费。公里数、等待时间、费用均需显示在数码管上。

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

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

DE2-115开发板.png

演示视频:

设计文档:

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. 管脚分配

6. Testbench

7. 仿真图

部分代码展示:

module display(
input clk,//标准时钟,clock0=50M
input [15:0] totel_money,//费用
input [7:0] mileage,//里程
input [7:0] minute,//等待时间
//等待时间
output  reg [7:0] HEX0,//数码管-低亮
output  reg [7:0] HEX1,//数码管-低亮
//总路程,里程范围为HL=0~99(BCD码显示)
output  reg [7:0] HEX2,//数码管-低亮
output  reg [7:0] HEX3,//数码管-低亮
//合计费用 HML=xxx (BCD码显示)
output  reg [7:0] HEX4,//数码管-低亮
output  reg [7:0] HEX5,//数码管-低亮
output  reg [7:0] HEX6//数码管-低亮
);
wire [3:0]totel_money_100;//百位
wire [3:0]totel_money_10;//十位
wire [3:0]totel_money_1;//个位
assign totel_money_100=totel_money/100;//百位
assign totel_money_10=totel_money/10%10;//十位
assign totel_money_1=totel_money%10;//个位
wire [3:0]mileage_10;//十位
wire [3:0]mileage_1;//个位
assign mileage_10=mileage/10;//十位
assign mileage_1=mileage%10;//个位
wire [3:0]minute_10;//十位
wire [3:0]minute_1;//个位
assign minute_10=minute/10;
assign minute_1=minute%10;
////////////////////////////////////////////////////段选输出///////////////////////////////////////////
always @(posedge clk)
begin
case (minute_1)  //数字显示码
8'd0: HEX0<= 8'b1100_0000;
8'd1: HEX0<= 8'b1111_1001;
8'd2: HEX0<= 8'b1010_0100;
8'd3: HEX0<= 8'b1011_0000;
8'd4: HEX0<= 8'b1001_1001;
8'd5: HEX0<= 8'b1001_0010;
8'd6: HEX0<= 8'b1000_0010;
8'd7: HEX0<= 8'b1111_1000;
8'd8: HEX0<= 8'b1000_0000;
8'd9: HEX0<= 8'b1001_0000;
default:;
endcase
end
always @(posedge clk)
begin
case (minute_10)  //数字显示码
8'd0: HEX1<= 8'b1100_0000;
8'd1: HEX1<= 8'b1111_1001;
8'd2: HEX1<= 8'b1010_0100;
8'd3: HEX1<= 8'b1011_0000;
8'd4: HEX1<= 8'b1001_1001;
8'd5: HEX1<= 8'b1001_0010;
8'd6: HEX1<= 8'b1000_0010;
8'd7: HEX1<= 8'b1111_1000;
8'd8: HEX1<= 8'b1000_0000;
8'd9: HEX1<= 8'b1001_0000;
default:;
endcase
end
always @(posedge clk)
begin
case (mileage_1)  //数字显示码
8'd0: HEX2<= 8'b1100_0000;
8'd1: HEX2<= 8'b1111_1001;
8'd2: HEX2<= 8'b1010_0100;
8'd3: HEX2<= 8'b1011_0000;
8'd4: HEX2<= 8'b1001_1001;
8'd5: HEX2<= 8'b1001_0010;
8'd6: HEX2<= 8'b1000_0010;
8'd7: HEX2<= 8'b1111_1000;
8'd8: HEX2<= 8'b1000_0000;
8'd9: HEX2<= 8'b1001_0000;
default:;
endcase
end

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

  • 2-24101620332UH.doc
    下载

相关推荐