1 / 23
文档名称:

vhdl——出租车计价器.doc

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

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

分享

预览

vhdl——出租车计价器.doc

上传人:916581885 2021/4/17 文件大小:2.39 MB

下载得到文件列表

vhdl——出租车计价器.doc

文档介绍

文档介绍:VHDL——出租车计价器
该系统利用VHDL语言、PLD设计出租车计费系统,以MAX+PLUSⅡ软件作为开发平台,设计了出租车计费器系统程序并进行了程序仿真。使其实现计费以及预置和模拟汽车启动、停止、暂停等功能,并动态扫描显示车费数目。
关键词: 出租车计费器;计数器;VHDL语言;MAX+PLUSⅡ;
一、实验任务及要求
1. 能实现计费功能,计费标准为:按行驶里程收费,,并在车行3公里后再按2元/公里,当计费器计费达到或超过一定收费(如20元)时,每公里加收50%的车费,车停止不计费。
2. 实现预置功能:能预置起步费、每公里收费、车行加费里程。
3. 实现模拟功能:能模拟汽车启动、停止、暂停、车速等状态。
4. 设计动态扫描电路:将车费显示出来,有两位小数。
5. 用VHDL语言设计符合上述功能要求的出租车计费器,并用层次化设计方法设计该电路。
6. 各计数器的计数状态用功能仿真的方法验证,并通过有关波形确认电路设计是否正确。
7. 完成电路全部设计后,通过系统实验箱下载验证设计的正确性。

二、实验原理
系统顶层框图:
车速
控制模块
计费动态显示
里程
动态显示
车速选择
起/停开关
基本速率
Reset
扫描时钟
显示输出 显示输出

(1)模块MS的实现
模块MS,输入端口CK0、CK1为两个不同的时钟信号,来模拟汽车的加速和匀速,JS加速按键。
LIBRARY IEEE;
USE ;
ENTITY MS IS
PORT(CK0:IN STD_LOGIC;
CK1:IN STD_LOGIC;
JS:IN STD_LOGIC;
CLK_OUT:OUT STD_LOGIC);
END MS;
ARCHITECTURE ONE OF MS IS
BEGIN
PROCESS(JS, CK0,CK1)
BEGIN
IF JS='0' THEN CLK_OUT<=CK0;
ELSE CLK_OUT<=CK1;
END IF;
END PROCESS;
END ONE;
(2)模块SOUT的实现
该模块实现车行状态输出功能,其中clk为时钟信号,enable 为启动使能信号,sto暂停信号, clr为清零信号,st为状态信号。
LIBRARY IEEE;
USE ;
USE ;
ENTITY SOUT IS
PORT(CLK:IN STD_LOGIC;
ENABLE:IN STD_LOGIC;
STO :IN STD_LOGIC;
CLR:IN STD_LOGIC;
ST:OUT STD_LOGIC_VECTOR(1 DOWNTO 0));
END SOUT;
ARCHITECTURE ONE OF SOUT IS
BEGIN
PROCESS(CLK,ENABLE ,STO,CLR)
VARIABLE CQI:STD_LOGIC_VECTOR(7 DOWNTO 0);
VARIABLE STATE:STD_LOGIC_VECTOR(1 DOWNTO 0);
BEGIN
IF CLR='0' THEN CQI:=(OTHERS=>'0');
ELSIF CLK'EVENT AND CLK='1' THEN
IF STO='1' THEN STATE:="00";CQI:=CQI;
ELSIF ENABLE ='1' THEN
CQI:=CQI+1;
IF CQI<=30 THEN STATE:="01";
ELSIF CQI>30 AND CQI<=80 THEN STATE:="10";
ELSE
STATE:="11";
END IF;
END IF