VHDL-出租车计价器_第1页
VHDL-出租车计价器_第2页
VHDL-出租车计价器_第3页
VHDL-出租车计价器_第4页
VHDL-出租车计价器_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

该系统利用VHDL语言、PLD设计出租车计费系统,以MAX+PLUSⅡ软件作为开发平台,设计了出租车计费器系统程序并进行了程序仿真。使其实现计费以及预置和模拟汽车启动、停止、暂停等功能,并动态扫描显示车费数目。关键词:出租车计费器;计数器;VHDL语言;MAX+PLUSⅡ;一、实验任务及要求1.能实现计费功能,计费标准为:按行驶里程收费,起步费为10.00元,并在车行3公里后再按2元/公里,当计费器计费到达或超过一定收费(如20元)时,每公里加收50%的车费,车停止不计费。2.实现预置功能:能预置起步费、每公里收费、车行加费里程。3.实现模拟功能:能模拟汽车启动、停止、暂停、车速等状态。4.设计动态扫描电路:将车费显示出来,有两位小数。5.用VHDL语言设计符合上述功能要求的出租车计费器,并用层次化设计方法设计该电路。6.各计数器的计数状态用功能仿真的方法验证,并通过有关波形确认电路设计是否正确。7.完成电路全部设计后,通过系统实验箱下载验证设计的正确性。二、实验原理系统顶层框图:车速控制模块车速控制模块计费动态显示里程动态显示起/停开关根本速率Reset扫描时钟显示输出显示输出计费器按里程收费,每100米开始一次计费。各模块功能如下:(1)车速控制模块当起停键为启动状态时〔高电平〕,模块根据车速选择和根本车速发出响应频率的脉冲驱动计费器和里程显示模块进行计数;当处于停止状态时暂停发出脉冲,此时计费器和里程显示模块相应的停止计数。(2)里程动态显示模块其包括计数车速控制模块发出的脉冲以及将计数显示动态显示出来,每来一个脉冲里程值加0.1〔控制器每发一个脉冲代表运行了0.1公里〕。(3)计费动态显示模块其初值为10元,当里程超过3公里后才接受计数车速控制模块发出的脉冲的驱动,并且计数显示动态显示出来,每来一个脉冲〔代表运行了0.5公里〕其数值加1元,当收费超过20时数值加1.5元。三、出租车计费系统的实现3.1系统的总体模块图:3.2系统各功能模块的实现:〔1〕模块MS的实现模块MS,输入端口CK0、CK1为两个不同的时钟信号,来模拟汽车的加速和匀速,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的实现该模块实现车行状态输出功能,其中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(CLK,ENABLE,STO,CLR)VARIABLECQI:STD_LOGIC_VECTOR(7DOWNTO0);VARIABLEBEGINIFCLR='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";ELSESTATE:="11";ENDIF;ENDIF;ENDIF;ST<=STATE;ENDPROCESS;ENDONE;〔3〕模块PULSE的实现该模块实现将时钟信号5分频功能。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;D.ALL;ENTITYPULSEISPORT(CLK0:INSTD_LOGIC;FOUT:OUTSTD_LOGIC);ENDPULSE;ARCHITECTUREONEOFPULSEISBEGINPROCESS(CLK0)VARIABLECNT:STD_LOGIC_VECTOR(2DOWNTO0);VARIABLEFULL:STD_LOGIC;BEGINIFCLK0'EVENTANDCLK0='1'THENIFCNT="100"THENCNT:="000";FULL:='1';ELSECNT:=CNT+1;FULL:='0';ENDIF;ENDIF;FOUT<=FULL;ENDPROCESS;ENDONE;〔4〕模块COUNTER的实现实现汽车模拟计费功能。clr1为清零信号,si为状态信号,c1,c2,c3分别为费用的三为显示。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCOUNTERISPORT(CLK_DIV:INSTD_LOGIC;CLR1:INSTD_LOGIC;SI:INSTD_LOGIC_VECTOR(1DOWNTO0);C1:OUTSTD_LOGIC_VECTOR(3DOWNTO0);C2:OUTSTD_LOGIC_VECTOR(3DOWNTO0);C3:OUTSTD_LOGIC_VECTOR(3DOWNTO0));ENDCOUNTER;ARCHITECTUREONEOFCOUNTERISBEGINPROCESS(CLK_DIV,CLR1,SI)VARIABLEQ1:STD_LOGIC_VECTOR(3DOWNTO0);VARIABLEQ2:STD_LOGIC_VECTOR(3DOWNTO0);VARIABLEQ3:STD_LOGIC_VECTOR(3DOWNTO0);BEGINIFCLR1='0'THENQ1:="0000";Q2:="0000";Q3:="0000";ELSIFCLK_DIV'EVENTANDCLK_DIV='1'THENCASESIISWHEN"00"=>Q1:=Q1;Q2:=Q2;Q3:=Q3;WHEN"01"=>Q1:="0000";Q2:="0000";Q3:="0001";WHEN"10"=>IFQ2<"1001"THENQ2:=Q2+1;ELSEQ2:="0000";IFQ3<"1001"THENQ3:=Q3+1;ENDIF;ENDIF;Q1:="0000";WHEN"11"=>IFQ1<"0101"THENQ1:=Q1+5;ELSEQ1:="0000";ENDIF;IFQ1="0101"THENIFQ2<"1001"THENQ2:=Q2+1;ELSEQ2:="0000";IFQ3<"1001"THENQ3:=Q3+1;ENDIF;ENDIF;ELSEIFQ2<"1001"THENQ2:=Q2+2;ELSEQ2:="0001";IFQ3<"1001"THENQ3:=Q3+1;ENDIF;ENDIF;ENDIF;WHENOTHERS=>NULL;ENDCASE;ENDIF;C1<=Q1;C2<=Q2;C3<=Q3;ENDPROCESS;ENDONE;〔5〕模块SCAN_LED的实现该模块实现显示车费功能。BT为选位信号,SG译码信号。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYSCAN_LEDISPORT(DI1:INSTD_LOGIC_VECTOR(3DOWNTO0);DI2:INSTD_LOGIC_VECTOR(3DOWNTO0);DI3:INSTD_LOGIC_VECTOR(3DOWNTO0);CLK2:INSTD_LOGIC;SG:OUTSTD_LOGIC_VECTOR(6DOWNTO0);BT:OUTSTD_LOGIC_VECTOR(2DOWNTO0));ENDSCAN_LED;ARCHITECTUREONEOFSCAN_LEDISSIGNALCNT4:STD_LOGIC_VECTOR(1DOWNTO0);SIGNALA:STD_LOGIC_VECTOR(3DOWNTO0);BEGINP1:PROCESS(CLK2)VARIABLESQ:STD_LOGIC_VECTOR(1DOWNTO0);BEGINIFCLK2'EVENTANDCLK2='1'THENIFSQ="10"THENSQ:="00";ELSESQ:=SQ+1;ENDIF;ENDIF;CNT4<=SQ;ENDPROCESSP1;P2:PROCESS(CNT4)BEGINCASECNT4ISWHEN"00"=>BT<="001";A<=DI1;WHEN"01"=>BT<="010";A<=DI2;WHEN"10"=>BT<="100";A<=DI3;WHEN"11"=>BT<="100";A<="1111";WHENOTHERS=>NULL;ENDCASE;ENDPROCESSP2;P3:PROCESS(A)BEGINCASEAISWHEN"0000"=>SG<="0111111";WHEN"0001"=>SG<="0000110";WHEN"0010"=>SG<="1011011";WHEN"0011"=>SG<="1001111";WHEN"0100"=>SG<="1100110";WHEN"0101"=>SG<="1101101";WHEN"0110"=>SG<="1111101";WHEN"0111"=>SG<="0000111";WHEN"1000"=>SG<="1111111";WHEN"1001"=>SG<="1101111";WHENOTHERS=>NULL;ENDCASE;ENDPROCESSP3;ENDONE;〔6〕模块TAXI的实现该模块为最终的顶层模块。LIBRARYIEEE;LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYTAXIISPORT(T_CLK0:INSTD_LOGIC;T_CLK1:INSTD_LOGIC;T_CLK2:INSTD_LOGIC;T_JS:INSTD_LOGIC;T_ENABLE:INSTD_LOGIC;T_CLR:INSTD_LOGIC;T_STO:INSTD_LOGIC;T_BT:OUTSTD_LOGIC_VECTOR(2DOWNTO0);T_SG:OUTSTD_LOGIC_VECTOR(6DOWNTO0));ENDTAXI;ARCHITECTURESTRUCOFTAXIISCOMPONENTMSPORT(CK0:INSTD_LOGIC;CK1:INSTD_LOGIC;JS:INSTD_LOGIC;CLK_OUT:OUTSTD_LOGIC);ENDCOMPONENT;COMPONENTSOUTPORT(CLK:INSTD_LOGIC;ENABLE:INSTD_LOGIC;STO:INSTD_LOGIC;CLR:INSTD_LOGIC;ST:OUTSTD_LOGIC_VECTOR(1DOWNTO0));ENDCOMPONENT;COMPONENTPULSEPORT(CLK0:INSTD_LOGIC;FOUT:OUTSTD_LOGIC);ENDCOMPONENT;COMPONENTCOUNTERPORT(CLK_DIV:INSTD_LOGIC;CLR1:INSTD_LOGIC;SI:INSTD_LOGIC_VECTOR(1DOWNTO0);C1:OUTSTD_LOGIC_VECTOR(3DOWNTO0);C2:OUTSTD_LOGIC_VECTOR(3DOWNTO0);C3:OUTSTD_LOGIC_VECTOR(3DOWNTO0));ENDCOMPONENT;COMPONENTSCAN_LEDPORT(DI1:INSTD_LOGIC_VECTOR(3DOWNTO0);DI2:INSTD_LOGIC_VECTOR(3DOWNTO0);DI3:INSTD_LOGIC_VECTOR(3DOWNTO0);CLK2:INSTD_LOGIC;SG:OUTSTD_LOGIC_VECTOR(6DOWNTO0);BT:OUTSTD_LOGIC_VECTOR(2DOWNTO0));ENDCOMPONENT;SIGNALL_CLK:STD_LOGIC;SIGNALL_FOUT:STD_LOGIC;SIGNALL_ST:STD_LOGIC_VECTOR(1DOWNTO0);SIGNALL_C1:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALL_C2:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALL_C3:STD_LOGIC_VECTOR(3DOWNTO0);BEGINU0:MSPORTMAP(CK0=>T_CLK0,CK1=>T_CLK1,JS=>T_JS,CLK_OUT=>L_CLK);U1:SOUTU2:PULSEU3:COUNTERPORTMAP(CLR1=>T_CLR,SI=>L_ST,CLK_DIV=>

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论