名称:出租车计费设计VHDL代码Quartus仿真(文末获取)
软件:Quartus
语言:VHDL
代码功能:
出租车计费
1、可以控制行程开始和停止
2、通过车轮脉冲判断车行驶里程
3、显示总费用和里程
4、3.0公里以内起步价5.0元,大于3.0公里按0.2元/0.1公里计费
5、停车按时间计费,每1分钟1元
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;
源代码
点击下方的公众号卡片获取