名称:出租车自动计费器Verilog代码Quartus仿真(文末获取)
软件:Quartus
语言:Verilog
代码功能:
出租车自动计费器
功能:1.里程:起步价16元(3Km内),大于3Km后,按照2.7元/Km的标准收费。
2.等候时间:1元/分钟计费。
3.行程结束,费用结算开始清零。
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
源代码
扫描文章末尾的公众号二维码