- 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. 能实现计费功能。车起步开始计费,首先显示起步价(本次设计起步费为
7.00 元),车在行驶 3 km 以内,只收起步价 7.00 元。车行驶超过 3 km 后,每公
里 2 元,车费依次累加。当总费用达到或超过 40 元时,每公里收费 4 元。当遇
到红灯或客户需要停车等待时,则按时间计费,计费单价为每 20S 收费 1 元。
2、实现预置功能:预置起步费、每公里收费、车行加费里程、计时收费。
3、实现模拟功能:模拟汽车行驶、停止、暂停等状态。
4、实现显示功能:将路程与车费显示出来,以十进制显示。
二、设计分析与设计思路
1.系统结构
整个系统按功能分为 speed、kilometers、kmmoney 和 time 进程。系统结构
图如下图所示。
(1)系统接收到 reset 信号后,总费用变为 7 元,同时其他计数器,寄存器等
全部清零。
(2)系统接收到 start 信号后,首先把部分寄存器赋值,总费用不变,单价
price 寄存器通过对总费用的判断后赋为 2 元。其他寄存器和计数器等继续保持
为 0.
(3)speed 进程:通过对速度信号 sp 的判断,决定变量 kinside 的值。kinside
即是行进 100m 所需要的时钟周期数,然后每行进 100m,则产生一个脉冲 clkout。
(4)kilometers 进程:由于一个clkout 信号代表行进 100m,故通过对 clkout
计数,可以获得共行进的距离 kmcount。
(5)time 进程:在汽车启动后,当遇到顾客等人或红灯时,出租车采用计时收
费的方式。通过对速度信号 sp 的判断决定是否开始记录时间。当 sp=0 时,开
始记录时间。当时间达到足够长时则产生 timecount 脉冲,并重新计时。一个
timecount 脉冲相当于等待的时间达到了时间计费的长度。这里选择系统时钟频
率为 500Hz,20s 即计数值为 1000。
(6)kmmoney 可分为 kmmoney1 和 kmmoney2 两个进程。
kmmoney1 进程:根据条件对 enable 和 price 赋值。当记录的距离达到 3 公
里后 enable 变为‘1’,开始进行每公里收费,当总费用大于 40 元后,则单价
price 由原来的2 元每公里变为 4 元每公里。
第 1 页
出租车计费器设计
kmmoney2 进程:在每个时钟周期判断 timecount 和 clkout 的值。当其为
‘1’时,则在总费用上加上相应的费用。
2.speed 模块
speed 进程首先根据 start 信号判断是否开始计费,然后根据输入的速度档
位 sp[2..0]的判断,确定行驶 100M 所需要的时钟数,每前进 100M,输出一个
clkout 信号。同时由cnt 对 clk 进行计数,当 cnt=kinside 时,把 clkout 信号
置‘1’,cnt 清 0。
3.kilometers 模块
此模块主要用于记录行进的距离。通过对 clkout 信号的计数,可以计算行
驶的距离 kmcount。一个 clkout 脉冲相当于行进 100m,所以只要记录 clkout 的
脉冲数目即可确定共行进的距离。kmcount1 为十分位,kmcount2 为个
位,kmcount3 为十位。分别为十进制数。
4.time 模块
第 2 页
出租车计费器设计
time 模块主要用于计时收费。记录计程车速度为 0 的时间(如等待红
灯)。通过对 sp 信号的判断,当 sp=0,开始记录时间。当时间达到足够长时,
产生 timecount 脉冲,并重新计时。
5.kmmoney 模块
kmmoney 可分为 kmmoney1 和 kmmoney2 两个模块。
kmmoney1 用于产生 enable 和 price 信号。当记录距离达到 3 公里后,enable 信号为
‘1’,开始进行每公里的收费。当总费用大于 40 元后,单价 price 由原来的2 元变为 4 元。
用
文档评论(0)