名称:出租车计费设计VHDL代码Quartus仿真
软件:Quartus
语言:VHDL
代码功能:
出租车计费
1、可以控制行程开始和停止
2、通过车轮脉冲判断车行驶里程
3、显示总费用和里程
4、3.0公里以内起步价5.0元,大于3.0公里按0.2元/0.1公里计费
5、停车按时间计费,每1分钟1元
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. Testbench
6. 仿真图
整体仿真图
速度及判断模块
控制模块
里程计算模块
时间计算模块
显示模块
部分代码展示:
LIBRARY?ieee; ???USE?ieee.std_logic_1164.all; ENTITY?taxi_fee?IS ???PORT?( ??????clk????????:?IN?STD_LOGIC;--50MHz基准频率CLOCK0 ??????reset??????:?IN?STD_LOGIC;--复位信号,低有效? ?????? ??????stop???????:?IN?STD_LOGIC;--本次行程结束,停止计费,高有效 ??????start??????:?IN?STD_LOGIC;--启动信号,行程开始,高有效? ?????? ??????Wheel_pulse?????:?IN?STD_LOGIC;--车轮脉冲 ?????? --3位数码管显示费用 ??????Kmmoney_L_HEX????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0);--合计费用?HML=xxx?(BCD码显示) ??????Kmmoney_M_HEX????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0); ??????Kmmoney_H_HEX????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0); ??????--里程和时间切换显示 ??????Kmcount_H_HEX????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0);--总路程,里程范围为HL=0~99.9(BCD码显示) ??????Kmcount_M_HEX????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0); ??????Kmcount_L_HEX????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0) ???); END?taxi_fee; ARCHITECTURE?trans?OF?taxi_fee?IS --速度计算及判断模块 COMPONENT?speed_pulse?IS ???PORT?( ??????clk?????????????:?IN?STD_LOGIC;--标准时钟,10hz? ??????reset???????????:?IN?STD_LOGIC;--复位信号,低有效? ??Wheel_pulse?????:?IN?STD_LOGIC;--车轮脉冲 ??????Speed???????????:?OUT?STD_LOGIC;--0:暂停等待;1:行驶 ??????kilometre_01???:?OUT?STD_LOGIC;--0.1公里产生一次 ??????minute_en??:?OUT?STD_LOGIC--暂停等待,2min产生一次脉冲 ???); END?COMPONENT; --模块例化 ???COMPONENT?display?IS ??????PORT?( ?????????clk????????:?IN?STD_LOGIC; ?????????reset??????:?IN?STD_LOGIC; Speed????????????:?IN?STD_LOGIC;--0:暂停等待;1:行驶 ?????????wait_time????:?IN?STD_LOGIC_VECTOR(7?DOWNTO?0); ?????????totel_money?:?IN?STD_LOGIC_VECTOR(15?DOWNTO?0); ?????????mileage????:?IN?STD_LOGIC_VECTOR(7?DOWNTO?0); ?????????Kmmoney_L_HEX??:?OUT?STD_LOGIC_VECTOR(6?DOWNTO?0); ?????????Kmmoney_M_HEX??:?OUT?STD_LOGIC_VECTOR(6?DOWNTO?0); ?????????Kmmoney_H_HEX??:?OUT?STD_LOGIC_VECTOR(6?DOWNTO?0); ?????????Kmcount_H_HEX??:?OUT?STD_LOGIC_VECTOR(6?DOWNTO?0); ?????????Kmcount_M_HEX????:?OUT?STD_LOGIC_VECTOR(6?DOWNTO?0); ?????????Kmcount_L_HEX??:?OUT?STD_LOGIC_VECTOR(6?DOWNTO?0) ??????); ???END?COMPONENT;
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1320
阅读全文