毕业论文-基于fpga的出租车计费器课程设计程序说明书_精品.doc
文本预览下载声明
设计题目:
一、设计实验条件
Q
二、设计
实现计费功能。按行驶里程计费,起步价为6.00元,并在车行驶3km后按1.2元/km计费,当计费器达到或超过20元时,每千米加收50%的车费,车停止和暂停时不计费;
;
三、设计报告的内容前言伴随中国经济的腾飞,城市化的进程也随之加快。虽然人们出行的选择趋于多样化,但是出租车作为一种重要的交通工具,也为很多人作为出行的选择。大城市里出租车已经相当普及,但是在中小城市出租车依然处于快速发展的阶段。出租车的计费方式也在发生变化,由只能显示里程的方式变为现在的自主计费和打印发票及语音提示的智能化方式;根据出租车行业的发展需求,国内许多生产厂商也制造出不同类型的计价器,传统的出租车计费器经过十几年的使用,在稳定性,成本等方面都具有一定的优势。利用FPGA设计出满足出租车不同计费需求的计费器,去满足当地出租车的计费需求。这个课题在实现计费功能的同时,也解决了传统出租车计费器系统的不足。出租车的需求不断的增大,因此,出租车计费器的需求也将不断增大,计程车的服务也显得越来越重要,因此出租车计费器也就应运而生了。
设计主体
出租车计费器可分为两大模块,即控制模块和译码显示模块,系统框图如图1所示,控制模块实现了计费和路程的技术,并且通过不同的档位控制车速。译码显示模块实现了十进制到4位十进制的转换,以及车费和路程的显示。
计费时钟
档位
起动
暂停
停止 图1 出租车计费器系统框图
(2)步骤:
首先设计taxi计费模块,实现计费功能。起步价为6.00元,并在车行驶3km后按1.2元/km计费,当计费器达到或超过20元时,每千米加收50%的车费,车停止和暂停时不计费。taxi模块程序如下:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity taxi is
port(clk:in std_logic;----计费时钟
start:in std_logic;----汽车起动
stop:in std_logic;----汽车停止
pause:in std_logic;----汽车暂停
speedup:in std_logic_vector(1 downto 0);----档位(4个档位)
money:out integer range 0 to 8000;----车费
distance:out integer range 0 to 8000);----路程
end;
architecture one of taxi is
begin
process(clk,start,stop,pause,speedup)
variable money_reg,distance_reg:integer range 0 to 8000;----车费和路程的寄存器
variable num:integer range 0 to 9;----控制车速的计数器
variable dis:integer range 0 to 100;----千米计数器
variable d:std_logic;----千米标志位
begin
if stop=1then-----汽车停止,计费和路程清零
money_reg:=0;
distance_reg:=0;
dis:=0;
num:=0;
elsif start=1then-----汽车起动后,起步价为6元
money_reg:=600;
distance_reg:=0;
dis:=0;
num:=0;
elsif clkevent and clk=1then
if start=0and speedup=00and pause=0 and stop=0then---1档
if num=9 then
num:=0;
distance_reg:=distance_reg+1;
dis:=dis+1;
else num:=num+1;
end if;
elsif start=0and speedup=01and pause=0 and stop=0then---2档
if num=9 then
显示全部