数字电路(出租车计费器).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文档。上传文档
查看更多
数字电路(出租车计费器)

课题要求 技术要求 1.掌握较复杂逻辑的设计、调试。 2. 进一步掌握用VHDL语言设计数字逻辑电路。 3.掌握用quartusII6.0软件进行编程设计。 功能要求 1.能实现计费功能,计费标准为: 按行驶里程收费,起步费为7.00元,并在车行3公里后再按2.2元/公里,当计费器达到或超过一定收费(如20元)。每公里加收50%的车费,车停止不计费 2 .实现预置功能、每公里收费、车行驶加费里程。 3.实现模拟功能: 能模拟汽车启动、停止、暂停、车速等状态。 4. 设计动态扫描电路 将车费显示出来。有两位小数。 5. 用VHDL语言设计符合上述功能要求的出租车计费器。并用层次化设计方法设计该电路。 6 .各计数器的技术状态用功能的方法验证,并用有关波形确认电路设计是否正确 7. 完成电路全部设计后,通过系统试验箱下载验证设计课题的正确性。 二 本人工作: 本人主要负责软件和硬件电路方面的设计,并进行引脚设定,以及与软硬件之间的调试运行,及时修改程序,帮助查找和分析问题,确保能够成功完成出租车计费器的设计。 三 设计方案: 3.1 主要中心组成 3.2 FPGA芯片内部主要程序: 3.3 工作原理: 基于CPLD/FPGA的出租车计费器的组成如图1所示。各部分主要功能如下:(1)A计数器对车轮传感器送来的脉冲信号进行计数(每转一圈送一个脉冲)。不同车型的车轮直径可能不一样,通过“设置1”对车型做出选择,以实现对不同车轮直径的车进行调整。(2)B计数器对百米脉冲进行累加,并输出实际公里数的BCD码给译码动态扫描模块。每计满500送出一个脉冲给C计数器。“设置2”实现起步公里数预制。(3)C计数器实现步长可变(即单价可调)的累加计数,每500米计费一次。“设置3”用来完成超价加费、起步价预制等。(4)译码/动态扫描将路程与费用的数值译码后用动态扫描的方式驱动数码管。(5)数码管显示将公里数和计费金额均用四位LED数码管显示(2位整数,2位小数)。 3.4功能模块设计 出租车计费器由车型调整模块、计程模块、计费模块、译码动态及扫描等模块组成,整个系统采用模块化设计,首先用VHDL编写功能模块,然后用顶层原理图将各功能模块连接起来。 四 单元模块设计: 首先出租车计费器的设计需要分频,所以需要设计了两个频率: 4.1 oneMHZ:由于给定的50MHZ太大,这个程序完成5000分频,实现第一次分频,确保实现动态计数,并且保证频率在驱动范围之内。 library ieee; use ieee.std_logic_1164.all; entity oneMHZ is port( daclk:in std_logic; clkout:out std_logic); end oneMHZ; architecture one of oneMHZ is signal data:integer range 0 to 5000; signal Q:std_logic; begin process(daclk) begin if daclkevent and daclk=1 then if(data=5000) then data=0; Q=not Q; else data=data+1; end if; end if; clkout=Q; end process; end one; 4.2 twoMHZ:这个程序完成2500分频,实现第二次分频,确保最后数码管显示频率在合适范围 library ieee; use ieee.std_logic_1164.all; entity twoMHZ is port( daclk:in std_logic; clkout:out std_logic); end twoMHZ; architecture one of twoMHZ is signal data:integer range 0 to 2500; signal Q:std_logic; begin process(daclk) begin if daclkevent and daclk=1 then if(data=2500) then data=0; Q=not Q; else data=data+1; end if; end if; clkout=Q; end process; end one; 4.3 Charge:实现计费功能,按行驶里程收费,起步费

文档评论(0)

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

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

1亿VIP精品文档

相关文档