1 / 21
文档名称:

出租车计价器.doc

格式:doc   大小:2,877KB   页数:21页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

出租车计价器.doc

上传人:花开一叶 2018/9/25 文件大小:2.81 MB

下载得到文件列表

出租车计价器.doc

相关文档

文档介绍

文档介绍:一、设计目的
这次课程设计主要是培养我们的实际动手能力及对EDA这门课程的深入的理解,增强我们对EDA程序设计流程的掌握。
二、设计要求
设计一个出租车计价器,要求显示里程和金额。
1、出租车启动和停驶由司机控制;
2、行程小于基本里程时,显示起步价,基本里程设3公里,起步价设5元;
3、行程大于基本里程时,每多行一公里,在起步价上加2元;
4、当出租车等待时,由司机按下等候键,每等待一分钟加1元,不足一分钟的按一分钟计算;
5、此处用脉冲信号模拟轮胎的转数,设每计一个脉冲汽车前进1米,。
6、附加功能:晚上行车起步价3公里内7元钱,行程大于3公里,没多一公里,在起步价上加2元。
三、总体设计方案要求

系统的顶层框图:
显示模块
控制
芯片
信号输入

信号输入:各种控制信号经输入端给控制芯片。
控制芯片:采用的有CPLD或者FPGA等。
动态显示电路:采用的是数码管来实现功能的输出。

1、硬件电路方案设计
以下为硬件电路的结构简图:
CPLD
模块
显示电路
时钟控制模块




2、各模块的组成和原理:
(1)时钟控制模块
此模块由实验箱时钟电路经分频后提供。
(2)开关模块:该模块的作用是用于电路的输入的信号。主要有三个开关。
(3)显示模块:
此模块由六个数码管和三个二极管所构成,三个二极管起到限制电流的作用,使得流到数码管的电流适当,防止数码管中的电流过大,而使得数码管损坏。数码管将计费、等待时间和里程动态的显示出来。
2、软件方案设计
1、以下为软件结构简图:
输入信号
分频器
里程计数模块
车费计数模块
车行驶状态




2、各模块的功能:
1)由实验箱时钟电路经分频后产生时钟信号并输入。
2)分频器:将时钟信号进行分频。
3)标志模块:将按钮产生的脉冲转化为一种标志信号。
4)计程模块:在等待信号未作用时,来一个时钟脉冲信号,里程值加1。该模块还包含一个路程计费标志的小模块,输出一个路程计费的信号。
5)等待状态模块:等待信号作用时,该模块可以记录等待的时间,并产生等待计费的信号。
6)车费计数模块:按行驶里程收费,分为白天和黑夜。白天收费标准:起步费为5元,超过3公里按2元/公里,车暂停按1元/分钟计算。黑夜收费标准:起步费为7元,超过3公里按2元/公里,车暂停按1元/分钟计算。
四、EDA设计及仿真(各个模块设计程序、原理框图及仿真波形图)
1分频器
(1)实物图
图1分频器的实体图
(2)分频器的VHDL设计
LIBRARY IEEE;
USE ;
USE ;
ENTITY PULSE IS
PORT(CLK0:IN STD_LOGIC;
FOUT:OUT STD_LOGIC);
END PULSE;
ARCHITECTURE ONE OF PULSE IS
SIGNAL FULL :STD_LOGIC;
BEGIN
PROCESS(CLK0)
T:STD_LOGIC_VECTOR(10 DOWNTO 0);
BEGIN
IF CLK0'EVENT AND CLK0='1' THEN
T="**********" THEN
CNT:="00000000000" ;
FULL<='1';
ELSE
CNT:=CNT+1;
FULL<='0';
END IF;
END IF;
END PROCESS;
PROCESS(FULL)
VARIABLE FULL2 :STD_LOGIC;
T0:STD_LOGIC_VECTOR(9 DOWNTO 0);
BEGIN
IF FULL'EVENT AND FULL='1' THEN
T0="1111101000" THEN
CNT0:="0000000000" ;
FULL2:='1';
ELSE
CNT0:=CNT0+1;
FULL2:='0';
END IF;
END IF;
FOUT<=FULL2;
END PROCESS;
END ONE;
2. 标志模块
(1)实物图
图2标志模块的实体图
AJ:输入的按键信号
BZ:输出的标志信号
(2)标志模块的VHDL设计
LIBRARY IEEE;
USE ;
USE