news 2026/3/5 1:56:57

出租车计费系统的设计

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
出租车计费系统的设计

2 出租车计费系统的设计
2.1 出租车计费设计
实际中出租车的计费工作原理一般分成3个阶段:
(1)车起步开始计费。首先显示起步价(本次设计起步费为7.00元),车在行驶3 km以内,只收起步价7.00元。
(2)车行驶超过3 km后,按每公里2.2元计费(在7.00元基础上每行驶1 km车费加2.2元),车费依次累加。
(3)行驶路程达到或超过9 km后(车费达到20元),每公里加收50%的车费,车费变成按每公里3.3元开始计费。车暂时停止(行驶中遇红灯或中途暂时停车)不计费,车费保持不变。若停止则车费清零,等待下一次计费的开始

2.2 基本设计思想
(1) 根据出租车计费原理,将出租车计费部分由5个计数器来完成分别为counterA,counterB,counterC,counterD,counterE。①计数器A完成车费百位。②计数器B完成车费十位和个位。③计数器C完成车费角和分。④计数器D完成计数到30(完成车费的起步价)。⑤计数器E完成模拟实现车行驶100 m的功能。
(2)行驶过程中车费附加50%的功能:由比较器实现。
(3)车费的显示:由动态扫描电路来完成。用专用模块来实现,完成数据的输入即动态数据的显示。
(4)通过分析可以设计出系统的顶层框图如图2.1所示:

3 出租车计费系统的实现
3.1 系统的总体框图


3.3 系统各功能模块的实现
3.3.1 模块JIFEI的实现

模块JIFEI见图3.2。输入端口START、STOP、PAUSE、JS分别为汽车起动、停止、暂停、加速按键。
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity jifei is
port (clk,start,stop,pause,js:in std_logic;
chefei,luc:out integer range 0 to 8000);
end jifei;
architecture rtl of jifei is
begin
process(clk,start,stop,pause,js)
variable a,b:std_logic;
variable aa:integer range 0 to 100;
variable chf,lc:integer range 0 to 8000;
variable num:integer range 0 to 9;
begin
if(clk’event and clk=‘1’)then
if(stop=‘0’)then
chf:=0;
num:=0;
b:=‘1’;
aa:=0;
lc:=0;
elsif(start=‘0’)then
b:=‘0’;
chf:=700;
lc:=0;
elsif(start=‘1’ and js='1’and pause=‘1’)then
if(b=‘0’)then
num:=num+1;
end if;
if(num=9)then
lc:=lc+5;
num:=0;
aa:=aa+5;
end if;
elsif(start='1’and js='0’and pause=‘1’)then
lc:=lc+1;
aa:=aa+1;
end if;
if(aa>=100)then
a:=‘1’;
aa:=0;
else
a:=‘0’;
end if;
if(lc<300)then
null;
elsif(chf<2000 and a=‘1’)then
chf:=chf+220;
elsif(chf>=2000 and a=‘1’)then
chf:=chf+330;
end if;
end if;
chefei<=chf;
luc<=lc;
end process;
end rtl;
3.3.2 模块X的实现
模块X见图3.3。该模块把车费和路程转化为4位十进制数,daclk的频率要比clk快得多

4 系统仿真
4.1 模块X的仿真结果
将车费和路程转换成4位的十进制如图4.1所示:
输入端为:Daclk, ascore, bscore
输出端为:Age, ashi, aqian, abai, bge, bshi, bqian, bbai;

图4.1 模块X仿真波形图

4.2 模块JIFEI的仿真结果
该模块是模拟汽车的启动、停止、暂停、加速按键,如图4.2所示:
输入端口为:stop, start, pause, js;
输出端口为:clk, b;

4.3 模块XXX1的仿真结果
该模块是将车费和路程显示出来如图4.3所示
输入端为:c, a1,a2,a3,a4,b1,b2,b3,b4;
输出端为:dp,d;

图4.3 模块XXX1仿真波形图
4.4模块SE的结果验证
模块SE仿真如图4.4所示:
输入端为:clk
输出端为:a

图4.4 模块SE仿真波形图
4.5模块DI的结果验证
模块DI仿真的结果如图4.5所示
输入端为:d
输出端为:q

图4.5 模块DI仿真波形图

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/1 12:04:55

Python的PIL如何转Base64字符串:完整指南

在Web开发、图像处理或API交互中&#xff0c;我们经常需要将图像转换为Base64字符串以便传输或存储。本文将详细介绍如何使用Python的PIL&#xff08;Pillow&#xff09;库将图像转换为Base64编码字符串&#xff0c;并提供多种实用场景的示例代码。 一、Base64编码简介 Base64是…

作者头像 李华
网站建设 2026/2/27 9:43:24

前沿AI论文工具排行榜:10款支持降重与自动写作的AIGC应用

工具名称核心优势适用场景aicheck快速降AIGC率至个位数AIGC优化、重复率降低aibiye智能生成论文大纲论文结构与内容生成askpaper文献高效整合开题报告与文献综述秒篇降重效果显著重复率大幅降低一站式论文查重降重查重改写一站式完整论文优化深度AI降重深度改写保留原意文本结构…

作者头像 李华
网站建设 2026/2/26 17:47:28

互联网的神经网络:OSI七层分层模型深度讲解

本文深入探讨计算机网络体系结构的基础理论&#xff0c;通过详细分析OSI七层模型的每一层功能、协议、数据流向以及实际应用场景&#xff0c;帮助技术人员建立对网络通信的全面理解。 第一部分&#xff1a;从混乱到秩序——为什么需要分层 当人们第一次接触计算机网络时&#…

作者头像 李华