名称:出租车计价系统不同收费模式VHDL代码Quartus仿真(文末获取)
软件:Quartus
语言:VHDL
代码功能:
出租车计价系统不同收费模式
该系统能显示里程数和乘客应付的费用,出租车的计费标准为:
里程在3公里以内为起步价10元;
3公里以上时,每行驶1公里增加2.4元。
该系统同时具有白天和夜晚不同收费模式,
正常行驶和交通拥堵不同收费模式。
1. 工程文件
2. 程序文件
顶层电路图
代码
3. 程序编译
4. RTL图
5. 仿真文件
6. 仿真图
整体仿真图
显示模块仿真图
控制模块
速度脉冲模块
部分代码展示:
LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_unsigned.all; --控制模块 ENTITY taxi_state IS PORT ( clk : IN STD_LOGIC;--标准时钟,10hz reset : IN STD_LOGIC;--复位信号,低有效 day_night : IN STD_LOGIC;--day oe night ;1 for day ,0 for night stop : IN STD_LOGIC;--本次行程结束,停止计费,高有效 start : IN STD_LOGIC;--启动信号,行程开始,高有效 Speed : IN STD_LOGIC;--0:暂停等待;1:行驶 one_kilometre : IN STD_LOGIC;--1公里产生一次脉冲 seconds_60 : IN STD_LOGIC;--暂停等待,60s产生一次脉冲 wait_time_out : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); mileage_out : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); totel_money_out : OUT STD_LOGIC_VECTOR(15 DOWNTO 0)--合计费用 ); END taxi_state; ARCHITECTURE trans OF taxi_state IS constant night_start:STD_LOGIC_VECTOR(15 DOWNTO 0) := "0000000010010110";--15.0--夜间起步价15元 constant day_start: STD_LOGIC_VECTOR(15 DOWNTO 0) := "0000000001100100";--10.0--白天起步价10元 constant night_price:STD_LOGIC_VECTOR(15 DOWNTO 0) := "0000000000011110";--3.0--夜间每行驶1公里增加3.0元 constant day_price: STD_LOGIC_VECTOR(15 DOWNTO 0) := "0000000000011000";--2.4--白天每行驶1公里增加2.4元 constant night_time: STD_LOGIC_VECTOR(15 DOWNTO 0) := "0000000000000010";--0.2--夜间交通拥堵每分钟收费0.2元 constant day_time: STD_LOGIC_VECTOR(15 DOWNTO 0) := "0000000000000001";--0.1--白天交通拥堵每分钟收费0.1元 SIGNAL start_fee:STD_LOGIC_VECTOR(15 DOWNTO 0) ; SIGNAL price_fee:STD_LOGIC_VECTOR(15 DOWNTO 0) ; SIGNAL time_fee: STD_LOGIC_VECTOR(15 DOWNTO 0) ; SIGNAL state : STD_LOGIC_VECTOR(2 DOWNTO 0) := "000"; SIGNAL totel_money : STD_LOGIC_VECTOR(15 DOWNTO 0) := "0000000000000000"; SIGNAL mileage : STD_LOGIC_VECTOR(7 DOWNTO 0) := "00000000"; SIGNAL wait_time : STD_LOGIC_VECTOR(7 DOWNTO 0) := "00000000"; BEGIN
源代码
扫描文章末尾的公众号二维码