基于FPGA出租车计价器课设.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于FPGA的出租车计费器课程设计程序 设计题目:出租车计费器 一、设计实验条件 QuartusII7.2 二、设计目标 1. 实现计费功能。按行驶里程计费,起步价为6.00元,并在车行驶3km后按1.2元/km计费,当计费器达到或超过20元时,每千米加收50%的车费,车停止和暂停时不计费; 2. 现场模拟汽车的起动、停止、暂停和换挡等状态; 3. 设计数码管动态扫描电路,将车费和路程显示出来,各有两位小数。 三、设计报告的内容 1. 前言 伴随中国经济的腾飞,城市化的进程也随之加快。虽然人们出行的选择趋于多样化,但是出租车作为一种重要的交通工具,也为很多人作为出行的选择。大城市里出租车已经相当普及,但是在中小城市出租车依然处于快速发展的阶段。 出租车的计费方式也在发生变化,由只能显示里程的方式变为现在的自主计费和打印发票及语音提示的智能化方式;根据出租车行业的发展需求,国内许多生产厂商也制造出不同类型的计价器,传统的出租车计费器经过十几年的使用,在稳定性,成本等方面都具有一定的优势。 利用FPGA设计出满足出租车不同计费需求的计费器,去满足当地出租车的计费需求。这个课题在实现计费功能的同时,也解决了传统出租车计费器系统的不足。出租车的需求不断的增大,因此,出租车计费器的需求也将不断增大,计程车的服务也显得越来越重要,因此出租车计费器也就应运而生了。 2. 设计主体 (1)设计原理:假设出租车有启动键、停止键、暂停键和档位键。启动键为脉冲触发信号,当它为一个脉冲是,表示汽车已启动,并根据车速的选择和基本车速发出相应频率的脉冲(计费脉冲)实现车费和路程的计数,同时车费显示起步价;当停止键为高电平时,表示汽车熄火,同时停止发出脉冲,此时车费和路程计数清零;当暂停键为高电平时,表示汽车暂停并停止发出脉冲,此时车费和 路程计数暂停;档位键用来改变车速,不同档位对应着不同的车速,同时路程计数的速度也不同。 出租车计费器可分为两大模块,即控制模块和译码显示模块,系统框图如图1所示,控制模块实现了计费和路程的技术,并且通过不同的档位控制车速。译码显示模块实现了十进制到4位十进制的转换,以及车费和路程的显示。 图1 出租车计费器系统框图 (2)步骤: ① 首先设计taxi计费模块,实现计费功能。起步价为6.00元,并在车行驶3km后按1.2元/km计费,当计费器达到或超过20元时,每千米加收50%的车费,车停止和暂停时不计费。taxi模块程序如下: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity taxi is port(clk:in std_logic;----计费时钟 start:in std_logic;----汽车起动 stop:in std_logic;----汽车停止 pause:in std_logic;----汽车暂停 speedup:in std_logic_vector(1 downto 0);----档位(4个档位) money:out integer range 0 to 8000;----车费 distance:out integer range 0 to 8000);----路程 end; architecture one of taxi is begin process(clk,start,stop,pause,speedup) variable money_reg,distance_reg:integer range 0 to 8000;----车费和路程的寄存器 variable num:integer range 0 to 9;----控制车速的计数器 variable dis:integer range 0 to 100;----千米计数器 variable d:std_logic;----千米标志位 begin if stop=1then-----汽车停止,计费和路程清零 money_reg:=0; distance_reg:=0; dis:=0; num:=0; elsif start=1then-----汽车起动后,起步价为6元 money_reg:=600; distance_reg:=0; dis:=0; num:=0; elsif clkevent and clk=1then if start=0and speedup=00and pause=0 and stop=0then---1档 if num=9 then num:=0; distance_reg:=distance_reg+1; dis:=dis+1; else num:=num+1; end if; elsif st

文档评论(0)

***** + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档