- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
出租车计时器设计
出租车自动计费器设计
一.设计要求
1、 设计一个出租车自动计费器,具有行车里程计费、等候时间计费、及起价三 部分,用四位数码管显示总金额,最大值为 99。99元;
2、 行车里程单价1元/公里,等候时间单价00 5元/10分钟,起价3元(3公里 起价)均能通过人工输入。
3、 行车里程的计费电路将汽车行驶的里程数转换成与之成正比的脉冲数, 然后 由计数译码电路转换成收费金额,实验中以一个脉冲模拟汽车前进十米,则
每100个脉冲表示1公里,然后用BCD码比例乘法器将里程脉冲乘以每公 里单价的比例系数,比例系数可由开关预置。例如单价是 1o 0元/公里,则
脉冲当量为00 01元/脉冲。
4、 用LED显示行驶公里数,两个数码管显示收费金额。
二?原理描述
利用层次化设计理论,将设计问题自顶向下可分为分频模块,控制模块,
计量模块和显示模块。系统框图如下图 1:
ENij.-EHlC3-C0计时4分频器F 1计费?显 示4等待信号stop*计费復位start系统时钟elk-公里脉冲fill计程CHAiCHAI.CHAOLumn
ENij.-EHl
C3-C0
计时4
分频器
F 1
计费?
显 示4
等待信号stop*
计费復位start
系统时钟elk-
公里脉冲fill
计程
CHAi
CHAI.
CHAO
Lum
n
WTO
KM1
KW)
图1
2.1分频模块
分频模块对频率为 240Hz的输入脉冲进行分频,得到 15Hz, 16Hz, 1Hz
的3种频率,该模块产生频率信号用于计费
2.2计量控制模块
计量控制模块是出租车自动计费器系统的主体部分,该模块主要完成等待
计时功能,计价功能和计程功能。
计时功能的主要任务是计算乘客的等待累计时间,计时器的量程为 59分,满量
程自动清零。计程功能的主要任务是计算乘客所行使的公里数,计程器的量程 为99公里,满量程自动归零。
三?实验程序
3.1出租车计价器VHDL程序
通过VHDL语言的顺序语句根据一个或者一组条件选择某一特定的执行通 道,生成计费数据,计时数据和里程数据。
1.出租车计价器VHDL程序
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity taxi is port ( clk_240 :in std」ogic;
的时钟
start :in std_logic; stop:in std」o gic; fin:in std」o gic;
--频率为240Hz
--计价使能信号
--等待信号
--公里脉冲信号
cha3,cha2,cha1,cha0:out std」o gic_vector(3 downto 0)费用数据
km1,km0:out std」o gic_vector(3 downto 0); min1,min0: out std」o gic_vector(3 downto 0)); end taxi;
--公里数据
--等待时间
--频率为 15Hz ,16Hz
--频率为 15Hz ,16Hz,
--分频器
--分频器
--分频器
--秒计数器
--制费用计数器
--公里计数器
--分的十位计数器
--分的个位计数器
signal f_15,f_16,f_1:std」o gic;
1Hz的信号 一 一 一
signal q_15:integer range 0 to 15;
signal q_16:integer range 0 to 14;
signal q_1:integer range 0 to 239;
signal w:integer range 0 to 59;
signal c3,c2,c1,c0:std_logic_vector(3 downto 0);
signal k1,k0:std」o gic_vector(3 downto 0);
signal m1:std」o gic_vector(2 downto 0);
signal m0:std」o gic_vector(3 downto 0);
signal en1,en0,f:std_logic;
--使能信号
begin
feipin:process(clk_240,start)
begin
if clk_240event and clk_240=1 then
if start=0 then q_15v=0;q_16v=0;f_15v=0;f_16v=0;f_lv=0;fv=0;
elseif q_15=15 then q_15v=0;f_15v=1; 号else q_15v=q_15
文档评论(0)