名称:出租车计费器VHDL代码Quartus仿真(文末获取)
软件:Quartus
语言:VHDL
代码功能:
出租车计费器
1.能实现计要功能,计费标准:起步费7.0元,3公里后按2元/公里,总要用达到或超过40元时,按4元/公里收费,客户需要停车等待时,按时间收
费,1元/20秒。
2.以十进制显示行驶里程和车费
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. 管脚分配
6. 仿真图
部分代码展示:
LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY taxi_fee IS PORT ( clk_in : IN STD_LOGIC;--时钟1000Hz reset : IN STD_LOGIC;--复位信号 speedup : IN STD_LOGIC;--档位控制 stop_n : IN STD_LOGIC;--中途暂停 start_n : IN STD_LOGIC;--启动信号,行程开始 SEL : OUT STD_LOGIC_VECTOR(2 DOWNTO 0);--数码管位选 SEG : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)--数码管段选 ); END taxi_fee; ARCHITECTURE behave OF taxi_fee IS --档位控制模块 COMPONENT speed_pulse IS PORT ( clk : IN STD_LOGIC; reset_p : IN STD_LOGIC; speedup : IN STD_LOGIC; pulse_kilometre : OUT STD_LOGIC ); END COMPONENT; --状态机控制模块 COMPONENT taxi_state IS PORT ( clk_in : IN STD_LOGIC; reset_p : IN STD_LOGIC; start_n : IN STD_LOGIC; stop_n : IN STD_LOGIC; pulse_kilometre : IN STD_LOGIC; mileage_out : OUT STD_LOGIC_VECTOR(15 DOWNTO 0); totel_money_out : OUT STD_LOGIC_VECTOR(15 DOWNTO 0) ); END COMPONENT; --显示模块 COMPONENT display_num IS PORT ( clk : IN STD_LOGIC; mileage_out : IN STD_LOGIC_VECTOR(15 DOWNTO 0); totel_money_out : IN STD_LOGIC_VECTOR(15 DOWNTO 0); SEL : OUT STD_LOGIC_VECTOR(2 DOWNTO 0); SEG : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) ); END COMPONENT; SIGNAL pulse_kilometre : STD_LOGIC;--1公里产生一次脉冲 SIGNAL mileage_out : STD_LOGIC_VECTOR(15 DOWNTO 0);--里程 SIGNAL totel_money_out : STD_LOGIC_VECTOR(15 DOWNTO 0);--合计费用 BEGIN --档位控制模块 i_speed_pulse : speed_pulse PORT MAP ( clk => clk_in,--时钟,1000Hz reset_p => reset,--复位信号 speedup => speedup,--档位控制 pulse_kilometre => pulse_kilometre--1公里产生一次脉冲 ); --状态机控制模块 i_taxi_state : taxi_state PORT MAP ( clk_in => clk_in,--时钟1000Hz reset_p => reset,--复位信号 start_n => start_n,--启动信号,行程开始 stop_n => stop_n,--中途暂停 pulse_kilometre => pulse_kilometre,--1公里产生一次脉冲 mileage_out => mileage_out,--里程 totel_money_out => totel_money_out--合计费用 ); --显示模块 i_display_num : display_num PORT MAP ( clk => clk_in, mileage_out => mileage_out,--里程 totel_money_out => totel_money_out,--合计费用 SEL => SEL,--数码管位选 SEG => SEG--数码管段选 ); END behave;
源代码
扫描文章末尾的公众号二维码