名称:出租车计价系统设计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
阅读全文
269