出租车计费系统-VHDL..doc

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
出租车计费系统-VHDL.

EDA课程设计: 出租车计费系统 学生姓名: 所在班级: 指导老师: 完成时间: 一、课程设计目的 1、综合运用EDA技术,独立完成一个课题的设计,考察运用所学知识,解决实际问题的能力; 2、结合理论知识,考察阅读参考资料、文献、手册的能力; 3、进一步熟悉EDA技术的开发流程,掌握文件编辑、编译、仿真、下载验证等环节的实现方法和应用技巧; 二、课程设计要求 实际中出租车的计费工作原理一般分成3个阶段: (1)车起步开始计费。首先显示起步价(本次设计起步费为7.00元),车在行驶3 km以内,只收起步价7.00元。 (2)车行驶超过3 km后,按每公里2.2元计费(在7.00元基础上每行驶1 km车费加2.2元),车费依次累加。 (3)行驶路程达到或超过9 km后(车费达到20元),每公里加收50%的车费,车费变成按每公里3.3元开始计费。车暂时停止(行驶中遇红灯或中途暂时停车)不计费,车费保持不变。若停止则车费清零,等待下一次计费的开始 三、基本设计思想 1、 根据出租车计费原理,将出租车计费部分由5个计数器来完成分别为counterA,counterB,counterC,counterD,counterE。①计数器A完成车费百位。②计数器B完成车费十位和个位。③计数器C完成车费角和分。④计数器D完成计数到30(完成车费的起步价)。⑤计数器E完成模拟实现车行驶100 m的功能。 2、行驶过程中车费附加50%的功能:由比较器实现。 3、车费的显示:由动态扫描电路来完成。用专用模块来实现,完成数据的输入即动态数据的显示。 4、通过分析可以设计出系统的顶层框图如图3.1所示: 四、出租车计费系统的实现 1、 系统的总体框图 2、 程序流程图 3、系统各功能模块的实现 (1)模块JIFEI的实现: 模块JIFEI见图4.3。输入端口START、STOP、PAUSE、JS分别为汽车起动、停止、暂停、加速按键。 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity jifei is port (clk,start,stop,pause,js:in std_logic; chefei,luc:out integer range 0 to 8000); end jifei; architecture rtl of jifei is begin process(clk,start,stop,pause,js) variable a,b:std_logic; variable aa:integer range 0 to 100; variable chf,lc:integer range 0 to 8000; variable num:integer range 0 to 9; begin if(clkevent and clk=1)then if(stop=0)then chf:=0; num:=0; b:=1; aa:=0; lc:=0; elsif(start=0)then b:=0; chf:=700; lc:=0; elsif(start=1 and js=1and pause=1)then if(b=0)then num:=num+1; end if; if(num=9)then lc:=lc+5; num:=0; aa:=aa+5; end if; elsif(start=1and js=0and pause=1)then lc:=lc+1; aa:=aa+1; end if; if(aa=100)then a:=1; aa:=0; else a:=0; end if; if(lc300)then null; elsif(chf2000 and a=1)then chf:=chf+220; elsif(chf=2000 and a=1)then chf:=chf+330; end if; end if; chefei=chf; luc=lc; end process; end rtl; (2)模块X的实现: 模块X见图4.4。该模块把车费和路程转化为4位十进制数,daclk的频率要比clk快得多 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity x is port

文档评论(0)

yxnz + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档