出租车计价器18500.docVIP

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一、设计目的 这次课程设计主要是培养我们的实际动手能力及对EDA这门课程的深入的理解,增强我们对EDA程序设计流程的掌握。 二、设计要求 设计一个出租车计价器,要求显示里程和金额。 1、出租车启动和停驶由司机控制; 2、行程小于基本里程时,显示起步价,基本里程设3公里,起步价设5元; 3、行程大于基本里程时,每多行一公里,在起步价上加2元; 4、当出租车等待时,由司机按下等候键,每等待一分钟加1元,不足一分钟的按一分钟计算; 5、此处用脉冲信号模拟轮胎的转数,设每计一个脉冲汽车前进1米,系统中所需脉冲均由实验箱的1.25MHz晶振分频提供。 6、附加功能:晚上行车起步价3公里内7元钱,行程大于3公里,没多一公里,在起步价上加2元。 三、总体设计方案 信号输入:各种控制信号经输入端给控制芯片。 控制芯片:采用的有CPLD或者FPGA等。 动态显示电路:采用的是数码管来实现功能的输出。 2.设计内容 1、硬件电路方案设计 以下为硬件电路的结构简图: 2、各模块的组成和原理: (1)时钟控制模块 此模块由实验箱时钟电路经分频后提供。 (2)开关模块:该模块的作用是用于电路的输入的信号。主要有三个开关。 (3)显示模块: 此模块由六个数码管和三个二极管所构成,三个二极管起到限制电流的作用,使得流到数码管的电流适当,防止数码管中的电流过大,而使得数码管损坏。数码管将计费、等待时间和里程动态的显示出来。 2、软件方案设计 1、以下为软件结构简图: 2、各模块的功能: 1)由实验箱时钟电路经分频后产生时钟信号并输入。 2)分频器:将时钟信号进行分频。 3)标志模块:将按钮产生的脉冲转化为一种标志信号。 4)计程模块:在等待信号未作用时,来一个时钟脉冲信号,里程值加1。该模块还包含一个路程计费标志的小模块,输出一个路程计费的信号。 5)等待状态模块:等待信号作用时,该模块可以记录等待的时间,并产生等待计费的信号。 6)车费计数模块:按行驶里程收费,分为白天和黑夜。白天收费标准:起步费为5元,超过3公里按2元/公里,车暂停按1元/分钟计算。黑夜收费标准:起步费为7元,超过3公里按2元/公里,车暂停按1元/分钟计算。 四、EDA设计及仿真(各个模块设计程序、原理框图及仿真波形图) 1分频器 (1)实物图 图1分频器的实体图 (2)分频器的VHDL设计 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY PULSE IS PORT(CLK0:IN STD_LOGIC; FOUT:OUT STD_LOGIC); END PULSE; ARCHITECTURE ONE OF PULSE IS SIGNAL FULL :STD_LOGIC; BEGIN PROCESS(CLK0) VARIABLE CNT:STD_LOGIC_VECTOR(10 DOWNTO 0); BEGIN IF CLK0EVENT AND CLK0=1 THEN IF CNT=10011100001 THEN CNT:=00000000000 ; FULL=1; ELSE CNT:=CNT+1; FULL=0; END IF; END IF; END PROCESS; PROCESS(FULL) VARIABLE FULL2 :STD_LOGIC; VARIABLE CNT0:STD_LOGIC_VECTOR(9 DOWNTO 0); BEGIN IF FULLEVENT AND FULL=1 THEN IF CNT0=1111101000 THEN CNT0:=0000000000 ; FULL2:=1; ELSE CNT0:=CNT0+1; FULL2:=0; END IF; END IF; FOUT=FULL2; END PROCESS; END ONE; 2. 标志模块 (1)实物图 图2标志模块的实体图 AJ:输入的按键信号 BZ:输出的标志信号 (2)标志模块的VHDL设计 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY BZ IS PORT(AJ:IN STD_LOGIC; BZ:OUT STD_LOGIC); END BZ; ARCHITEC

文档评论(0)

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

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

1亿VIP精品文档

相关文档