出租车计费系统 EDA课程设计报告.doc_第1页
出租车计费系统 EDA课程设计报告.doc_第2页
出租车计费系统 EDA课程设计报告.doc_第3页
出租车计费系统 EDA课程设计报告.doc_第4页
出租车计费系统 EDA课程设计报告.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

EDA课程设计实验报告题 目:出租车计费系统姓 名:张超峰学 号:2008550531班 级:2008级电子信息工程二班联系方式导老师:姚志强完成日期:2011年4月8日一、课程设计目的1、综合运用EDA技术,独立完成一个课题的设计,考察运用所学知识,解决实际问题的能力;2、结合理论知识,考察阅读参考资料、文献、手册的能力;3、进一步熟悉EDA技术的开发流程,掌握文件编辑、编译、仿真、下载验证等环节的实现方法和应用技巧;二、课程设计要求1、 计费部分a、 起步价设置为6元;b、 设置等待计时计费,当车速小于某值时,系统自动进入等待计时,并在一定条件下进行等待计费,计费单价为1.3元/分钟;c、 设置超路程计费。当行驶距离超过3km后,系统进入超公里数计费,单价按1.0元/km计费;d、 计费公式为s=6+1.3*等待时间+1.0*(行驶距离-3km)。2、 显示部分a、 公里计数,记录汽车行驶距离;b、 等待计时,记录等待时间;c、 计费显示,实时显示系统总费用。三、设计思路(一)、基本原理根据设计要求,系统的输入信号有:系统时钟信号CLK,计价开始信号START,车速控制信号MA。系统的输出信号有:总费用数CHA0-CHA3,行驶距离(数)KM0-KM1和等待时间MIN0-MIN1等。通过系统对车速的检测进入相应的计费系统。(二)、设计框图时钟信号计费信号速度控制信号分频器控制部分计时计费速度产生显示计程(三)实现方法1、系统时钟clk+计费启动信号start+等待计时信号stop+外部里程脉冲fin实现。 1系统实现原理:当外部里程脉冲累计k1&k0=程序分析LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY zcftaxi ISPORT( CLK: IN STD_LOGIC; -系统时钟 START: IN STD_LOGIC; -计费开始信号 STOP: IN STD_LOGIC; -中途等待停止信号 FIN: IN STD_LOGIC; -1KM脉冲信号 RST: IN STD_LOGIC; CHA3,CHA2,CHA1,CHA0: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); -计费输出信号 KM1,KM0: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); -行驶公里数 MEN1,MEN0: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); -等待时间输出END ENTITY zcftaxi ;ARCHITECTURE BEHAVE OF zcftaxi IS SIGNAL X_1: INTEGER RANGE 0 TO 49; -数码管扫苗显示脉冲 SIGNAL W: INTEGER RANGE 0 TO 59; -等待计数分钟走动产生信号SIGNAL C3,C2,C1,C0: STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL K1,K0: STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL M1: STD_LOGIC_VECTOR(2 DOWNTO 0); SIGNAL M0: STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL TEMP0,TEMP1: STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL F_1: STD_LOGIC; SIGNAL EN0,EN1: STD_LOGIC;BEGINFEIPIN:PROCESS(CLK,START)BEGIN IF CLKEVENT AND CLK=1 THEN IF START=0 THEN F_1 =0; X_1 =0; ELSE IF X_1=49 THEN X_1=0; F_1=1; ELSE X_1=X_1+1; F_1=0; END IF; END IF; END IF;END PROCESS;PROCESS(FIN) -公里脉冲计数BEGIN IF FINEVENT AND FIN=1 THEN IF START=0 THEN K1=0000; K0=0000; ELSIF STOP=0 THEN IF K0=1001 THEN K0=0000; IF K1=1001 THEN K1=0000; ELSE K1=K1+1; END IF; ELSE K0=K0+1; END IF; END IF; END IF;END PROCESS; PROCESS(clk) -等待时间显示BEGIN IF clkEVENT AND clk=1 THEN IF START=0 THEN W=0; M1=000; M0=0000; ELSIF STOP=1 THEN IF W=49 THEN W=0; IF M0=1001 THEN M0=0000; IF M1=101 THEN M1=000; ELSE M1=M1+1; END IF; ELSE M0=M0+1; END IF; ELSE W=W+1; END IF; END IF; END IF;END PROCESS;PROCESS(CLK)BEGIN IF CLKEVENT AND CLK=1 THEN IF START=0 THEN EN0=0; EN1=0; ELSIF STOP=0 THEN EN100000011 THEN EN0=1; -超公里数计费使能信号产生 ELSE EN0=0; END IF; ELSIF STOP=1 THEN EN00000010 THEN EN1=1; -超等待时间使能信号产生 ELSE EN1=0; END IF; END IF; END IF;END PROCESS;PROCESS(CLK,START)VARIABLE C13,C15 : INTEGER;BEGIN IF START=0 THEN C3=0000; C2=0000; C1=0101; C0=0000; C13:=0; C15:=0; TEMP0=0000; TEMP1=0000; ELSIF CLKEVENT AND CLK=1 THEN IF(EN0=1)THEN IF(C1313)THEN C13:=C13+1; -13分频超公里数计费 IF(C13=1)THEN TEMP0=K0; END IF; IF C0=1001 THEN C0=0000; IF C1=1001 THEN C1=0000; IF C2=1001 THEN C2=0000; IF C3=1001 THEN C3=0000; ELSE C3=C3+1; END IF; ELSE C2=C2+1; END IF; ELSE C1=C1+1; END IF; ELSE C0=C0+1; END IF; ELSIF(K0/=TEMP0)THEN C13:=0; END IF; ELSIF(EN1=1)THEN IF(C1515)THEN C15:=C15+1; -15分频超公里数计费 IF(C15=1)THEN TEMP1=M0; END IF; IF C0=1001 THEN C0=0000; IF C1=1001 THEN C1=0000; IF C2=1001 THEN C2=0000; IF C3=1001 THEN C3=0000; ELSE C3=C3+1; END IF; ELSE C2=C2+1; END IF; ELSE C1=C1+1; END IF; ELSE C0=C0+1; END IF; ELSIF(M0/=TEMP1)THEN C15:=0; END IF; END IF; END IF;END PROCESS;PROCESS(F_1) -信号显示输出部分BEGIN IF F_1EVENT AND F_1=1THEN IF START=0 OR RST=1 THEN MEN1=0000;MEN0=0000; KM1=0000; KM0=0000;CHA3=0000;CHA2=0000; CHA1=0000;CHA0 =0000; ELSE MEN1=0&M1;MEN0=M0; KM1=K1; KM0=K0;CHA3=C3;CHA2=C2; CHA1=C1;CHA0时序图分析从上述时序图可以看出,当k1&k0= 系统实现原理:当外部里程脉冲累计k1&k0= 程序分析速度监控部分:(其他参考方法一)PROCESS(CLK)VARIABLE tim,sudu : INTEGER;BEGIN IF CLKEVENT AND CLK=1 THEN tim:=tim+1; sudu:=(k1&k0)*1024/tim; IF sudu10 then EN0=0; EN1=1;-超等待时间使能信号产生 STOP=1; ELSE EN0=1;-超公里数计费使能信号产生 EN1=0; STOP系统实现原理:当外部里程脉冲累计k1&k0=程序分析LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY zcftaxi ISPORT( CLK: IN STD_LOGIC; -系统时钟 START: IN STD_LOGIC; -计费开始信号 MA: IN STD_LOGIC_VECTOR(2 DOWNTO 0); -档位控制信号CHA3,CHA2,CHA1,CHA0: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); -计费输出信号 KM1,KM0: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); -行驶公里数 MEN1,MEN0: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); -等待时间输出END ENTITY zcftaxi ;ARCHITECTURE BEHAVE OF zcftaxi IS SIGNAL X_1: INTEGER RANGE 0 TO 2; -数码管扫苗显示脉冲 SIGNAL W: INTEGER RANGE 0 TO 15; -等待计数分钟分频信号 SIGNAL Q0,Q: INTEGER RANGE 0 TO 69; -速度分频 SIGNAL FIN: STD_LOGIC; -速度产生信号 SIGNAL STOP: STD_LOGIC; -中途等待信号 SIGNAL EN: STD_LOGIC; -超公里数计费使能信号 SIGNAL GFP: INTEGER RANGE 0 TO 50; -超公里数计费分频信号SIGNAL C3,C2,C1,C0: STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL K1,K0: STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL M1: STD_LOGIC_VECTOR(2 DOWNTO 0); SIGNAL M0: STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL TEMP0,TEMP1: STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL F_1: STD_LOGIC;BEGINFEIPIN:PROCESS(CLK,START)BEGIN IF CLKEVENT AND CLK=1 THEN IF START=0 THEN F_1 =0; X_1 =0; ELSE IF X_1=2 THEN X_1=0; F_1=1; ELSE X_1=X_1+1; F_1 Q0 Q0 Q0 Q0 Q0NULL; END CASE; IF Q039 THEN STOP=1; ELSE STOP=0; END IF; IF START=0 THEN Q0=0; FIN=0; ELSE IF Q=Q0 THEN Q=0; FIN=1; ELSE Q=Q+1; FIN=0; END IF; END IF;END IF;END PROCESS; PROCESS(FIN) -公里脉冲计数BEGIN IF FINEVENT AND FIN=1 THEN IF START=0 THEN K1=0000; K0=0000; ELSIF K0=1001 THEN K0=0000; IF K1=1001 THEN K1=0000; ELSE K1=K1+1; END IF; ELSE K0=K0+1; END IF; END IF;END PROCESS; PROCESS(clk) -等待时间显示BEGIN IF clkEVENT AND clk=1 THEN IF START=0 THEN W=0; M1=000; M0=0000; ELSIF STOP=1 THEN IF W=15 THEN W=0; IF M0=1001 THEN M0=0000; IF M1=101 THEN M1=000; ELSE M1=M1+1; END IF; ELSE M0=M0+1; END IF; ELSE W=W+1; END IF; END IF; END IF;END PROCESS;PROCESS(CLK,START)BEGIN IF CLKEVENT AND CLK=1 THEN IF START=0 THEN EN00000011 THEN EN=1; -超公里数计费使能信号产生 ELSE EN=0; END IF; END IF; END IF;END PROCESS;PROCESS(CLK,START)VARIABLE C10,C13 : INTEGER;BEGIN IF START=0 THEN C3=0000; C2=0000; C1=0110; C0=0000; -起步价 C10:=0; C13:=0; TEMP0=0000; TEMP1(Q0/10-1) THEN GFP=0; IF(C1010)THEN C10:=C10+1; -10分频超公里数计费 IF(C10=1)THEN TEMP0=K0; END IF; IF C0=1001 THEN C0=0000; IF C1=1001 THEN C1=0000; IF C2=1001 THEN C2=0000; IF C3=1001 THEN C3=0000; ELSE C3=C3+1; END IF; ELSE C2=C2+1; END IF; ELSE C1=C1+1; END IF; ELSE C0=C0+1; END IF; ELSIF(K0/=TEMP0)THEN C10:=0; END IF; ELSE GFP00000011) THEN IF(C1313)THEN C13:=C13+1; -13分频超时计费 IF(C13=1)THEN TEMP1=M0; END IF; IF C0=1001 THEN C0=0000; IF C1=1001 THEN C1=0000; IF C2=1001 THEN C2=0000; IF C3=1001 THEN C3=0000; ELSE C3=C3+1; END IF; ELSE C2=C2+1; END IF; ELSE C1=C1+1; END IF; ELSE C0=C0+1; END IF; ELSIF(M0/=TEMP1)THEN C13:=0; END IF; END IF; END IF;END PROCESS;PROCESS(F_1) -信号显示输出部分BEGIN IF F_1EVENT AND F_1=1THEN IF START=0THEN MEN1=0000;MEN0=0000; KM1=0000; KM0=0000;CHA3=0000;CHA2=0000; CHA1=0000;CHA0 =0000; ELSE MEN1=0&M1;MEN0=M0; KM1=K1; KM0=K0;CHA3=C3;CHA2=C2; CHA1=C1;CHA0时序图分析从上时序图可看出,当系统选择速度为V1时,速度较大,当行驶距离大于3km时,系统进入超公里数计费,本次仿真采用起步价6元,超公里计费单价为1.0元/km。如当k1&k0=7km时,系统总计费为:6+4*1=10元。从上时序图可看出,当系统选择速度为V5时,速度较大,当行驶距离大于3km时,系统进入等待计费,本次仿真采用起步价6元,等待计费单价为1.3元/分钟。如当k1&k03km,men1&men012分时,等待时间显示加一,计费输出显示加1.3元,如等待计时时间显示为15分钟的下一分钟系统总计费显示为:6+(16-12+1)*1.3=12.5元。四、三种思路的优缺点比较可以看到思路一、二采用的是外部里程脉冲输入的方法,与实际相比较差距过大;而

温馨提示

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

评论

0/150

提交评论