欢迎来到天天文库
浏览记录
ID:22817467
大小:266.50 KB
页数:12页
时间:2018-10-31
《vhdl——出租车计价器》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、该系统利用VHDL语言、PLD设计出租车计费系统,以MAX+PLUSⅡ软件作为开发平台,设计了出租车计费器系统程序并进行了程序仿真。使其实现计费以及预置和模拟汽车启动、停止、暂停等功能,并动态扫描显示车费数目。关键词:出租车计费器;计数器;VHDL语言;MAX+PLUSⅡ;一、实验任务及要求1.能实现计费功能,计费标准为:按行驶里程收费,起步费为10.00元,并在车行3公里后再按2元/公里,当计费器计费达到或超过一定收费(如20元)时,每公里加收50%的车费,车停止不计费。2.实现预置功能:能预置起步费、每公里收费、车行加费里程。3.实现模拟功能:能模拟汽车启动、停止、暂停
2、、车速等状态。4.设计动态扫描电路:将车费显示出来,有两位小数。5.用VHDL语言设计符合上述功能要求的出租车计费器,并用层次化设计方法设计该电路。6.各计数器的计数状态用功能仿真的方法验证,并通过有关波形确认电路设计是否正确。7.完成电路全部设计后,通过系统实验箱下载验证设计的正确性。二、实验原理系统顶层框图:车速控制模块计费动态显示里程动态显示车速选择起/停开关基本速率Reset扫描时钟显示输出显示输出计费器按里程收费,每100米开始一次计费。各模块功能如下:(1)车速控制模块当起停键为启动状态时(高电平),模块根据车速选择和基本车速发出响应频率的脉冲驱动计费器和里程显
3、示模块进行计数;当处于停止状态时暂停发出脉冲,此时计费器和里程显示模块相应的停止计数。(2)里程动态显示模块其包括计数车速控制模块发出的脉冲以及将计数显示动态显示出来,每来一个脉冲里程值加0.1(控制器每发一个脉冲代表运行了0.1公里)。(3)计费动态显示模块其初值为10元,当里程超过3公里后才接受计数车速控制模块发出的脉冲的驱动,并且计数显示动态显示出来,每来一个脉冲(代表运行了0.5公里)其数值加1元,当收费超过20时数值加1.5元。三、出租车计费系统的实现3.1系统的总体模块图:3.2系统各功能模块的实现:(1)模块MS的实现模块MS,输入端口CK0、CK1为两个不同
4、的时钟信号,来模拟汽车的加速和匀速,JS加速按键。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYMSISPORT(CK0:INSTD_LOGIC;CK1:INSTD_LOGIC;JS:INSTD_LOGIC;CLK_OUT:OUTSTD_LOGIC);ENDMS;ARCHITECTUREONEOFMSISBEGINPROCESS(JS,CK0,CK1)BEGINIFJS='0'THENCLK_OUT<=CK0;ELSECLK_OUT<=CK1;ENDIF;ENDPROCESS;ENDONE;(2)模块SOUT的实现该模块实现车行状
5、态输出功能,其中clk为时钟信号,enable为启动使能信号,sto暂停信号,clr为清零信号,st为状态信号。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYSOUTISPORT(CLK:INSTD_LOGIC;ENABLE:INSTD_LOGIC;STO:INSTD_LOGIC;CLR:INSTD_LOGIC;ST:OUTSTD_LOGIC_VECTOR(1DOWNTO0));ENDSOUT;ARCHITECTUREONEOFSOUTISBEGINPROCESS(CL
6、K,ENABLE,STO,CLR)VARIABLECQI:STD_LOGIC_VECTOR(7DOWNTO0);VARIABLESTATE:STD_LOGIC_VECTOR(1DOWNTO0);BEGINIFCLR='0'THENCQI:=(OTHERS=>'0');ELSIFCLK'EVENTANDCLK='1'THENIFSTO='1'THENSTATE:="00";CQI:=CQI;ELSIFENABLE='1'THENCQI:=CQI+1;IFCQI<=30THENSTATE:="01";ELSIFCQI>30ANDCQI<=80THENSTATE:="10";EL
7、SESTATE:="11";ENDIF;ENDIF;ENDIF;ST<=STATE;ENDPROCESS;ENDONE;(3)模块PULSE的实现该模块实现将时钟信号5分频功能。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYPULSEISPORT(CLK0:INSTD_LOGIC;FOUT:OUTSTD_LOGIC);ENDPULSE;ARCHITECTUREONEOFPULSEISBEGINPROCESS(C
此文档下载收益归作者所有