名称:出租车计价系统设计Verilog代码Quartus DE2-115开发板
软件:Quartus
语言:Verilog
代码功能:一个出租车计价系统。完成的功能是前3公里内收费10元,超过3公里按每公里2元收费。同时记录等待时间,累计等待时间超过5分钟则加3元,以此类推。若总公里数超过20公里,需加收10元空载返程费。公里数、等待时间、费用均需显示在数码管上。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在DE2-115开发板验证,DE2-115开发板如下,其他开发板可以修改管脚适配:
演示视频:
设计文档:
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
阅读全文
595