名称:出租车自动计费器设计Verilog代码vivado Nexys4开发板(文末获取)
软件:vivado
语言:Verilog
代码功能:
出租车自动计费器设计要求
设计一个出租车自动计费器,具有行车里程计费等候时间计费丶及起价三部分,用四位数码管显示总金额,最大值为999.9元
行车里程单价2元/公里,等候时间单价0.5元/10秒,起价10元(1公里起价)
行车里程的计费电路将汽车行驶的里程数转换成与之成正比的脉冲数,然后由计数译码电路转换成收费金额,实验中以一个脉冲模拟汽车前进100米,收费0.2元;用两个数码管显示行驶公里数
本代码已在Nexys4开发板验证,Nexys4开发板如下,其他开发板可以修改管脚适配:
1. 工程文件
2. 程序文件
3. 程序编译
4. 程序RTL图
5. 管脚约束
6. Testbench
7. 仿真图
整体仿真
wheel_second_pluse模块
taxi_state模块
Display模块
部分代码展示:文章来源:https://www.toymoban.com/news/detail-778850.html
module taxi_fee( input clk,//标准时钟,100M input reset,//复位信号,低有效 input stop,//本次行程结束,停止计费,高有效--按键 input start,//启动信号,行程开始,高有效 --按键 input Speed,//0:等待 1:行驶--开关 output led_wheel,//车轮脉冲指示灯 output [7:0] bit_select,//数码管位选 output [7:0] seg_select//数码管段选 ); wire wheel_pulse; wire second_pulse; wire one_kilometre;//0.1公里产生一次 wire [15:0] totel_money; wire [15:0] mileage; wire [2:0] state; //模块例化 //车轮脉冲产生及秒脉冲产生模块 wheel_second_pluse U_wheel_second_pluse( . clk(clk),//标准时钟,100MHz . reset(reset),//复位信号,低有效 . Speed(Speed),//0:等待 1:行驶 . state(state), . led_wheel(led_wheel), . wheel_pulse(wheel_pulse), // 车轮脉冲,10个1公里,100米一次 . second_pulse(second_pulse) 10秒脉冲 ); taxi_state U_taxi_state( . clk(clk),//标准时钟,100M . reset(reset),//复位信号,低有效 . stop(stop),//本次行程结束,停止计费,高有效 . start(start),//启动信号,行程开始,高有效 . Speed(Speed),//0:等待 1:行驶 . one_kilometre(wheel_pulse),//0.1公里产生一次 . second_pulse(second_pulse),10秒脉冲 . state_out(state), . mileage_out(mileage), . totel_money_out(totel_money)//合计费用 ); display U_display( . clk(clk),//标准时钟,100M . totel_money(totel_money),//费用 . mileage(mileage),//里程 . bit_select(bit_select),//数码管位选 . seg_select(seg_select)//数码管段选 ); endmodule
源代码
扫描文章末尾的公众号二维码文章来源地址https://www.toymoban.com/news/detail-778850.html
到了这里,关于出租车自动计费器设计Verilog代码vivado Nexys4开发板的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!