简易出租车里程计费器

合集下载

出租车自动计费器的设计原理及优化方案

出租车自动计费器的设计原理及优化方案

出租车自动计费器的设计原理及优化方案引言:出租车自动计费器是现代出租车运营中必不可少的一个装置,它能够准确地计算乘客应付的费用,并提供便利的支付方式。

本文将通过介绍出租车自动计费器的设计原理以及优化方案,帮助读者更好地了解该装置并思考如何提高其功能和效率。

一、出租车自动计费器的设计原理1. 准确测量里程出租车自动计费器通常利用车辆上安装的里程传感器测量车辆行驶的里程,包括实时行驶距离和行驶时间。

2. 考虑计费标准出租车自动计费器会根据城市或地区的计费标准计算乘客的费用。

计费标准通常包括起步价、里程费和时间费等多个维度。

3. 考虑附加费用出租车自动计费器还会考虑一些额外的费用,如过路费、停车费和燃油附加费等。

这些附加费用通常会根据车辆行驶路径和实际发生的情况自动计算。

4. 提供支付方式现代出租车计费器通常支持多种支付方式,如现金支付、刷卡和移动支付等。

根据乘客的选择,计费器能够提供相应的支付方式,并记录支付信息。

二、出租车自动计费器的优化方案1. 提升计费的准确性为了提高计费的准确性,可以在出租车自动计费器中使用更为精准的里程传感器,并结合卫星定位系统(GPS)来实时监测车辆的位置和行驶路径。

这样可以避免计费器在复杂道路环境下的误差,并提供更准确的里程计算。

2. 优化计费标准考虑到不同地区和不同时间段的交通状况和需求,可以针对性地优化出租车计费标准。

例如,可以根据交通拥堵情况来调整时间费的计算标准,或者根据车辆类型和燃油消耗来调整里程费的计算标准,使得计费更加公平和合理。

3. 加强附加费用的计算和记录出租车自动计费器可以与城市交通管理部门的数据库相连接,实时获取过路费和停车费等附加费用的信息,并根据车辆行驶路径和实际发生情况自动计算。

同时,计费器应具备记录附加费用信息的功能,方便车主和乘客核查相关费用。

4. 引入更多支付方式随着电子支付的普及,出租车自动计费器可以引入更多的支付方式,如支付宝、微信等移动支付,并且支持二维码扫描或NFC技术进行支付。

课程设计-简单出租车计费器课程系统设计

课程设计-简单出租车计费器课程系统设计

摘要随着出租车行业的发展,对出租车计费器的要求也越来越高。

该系统主要是使用Multisim10进行设计,运用计数器、加法器等进行电路设计与仿真。

论文内容介绍了出租车计费器系统的组成及工作原理,简述了用数字电子器件构成该数字系统的设计思想和实现过程。

Along with the development of the taxi industry, the requirements of the message accounting device becoming higher than ever before. The system is mainly used Multisim10 design, using the counter, adding machines of circuit design and simulation. The essay introduces the message accounting device taxi system composition and working principle, the paper with digital electronic components of the digital system design idea and the implementation process.关键词:Multisim10 计数器出租车计费器目录Cotent第1章设计指标 (3)1.1设计目的和意义 (3)1.1.1目的 (3)1.1.2意义 (3)第2章总体框图 (3)2.1总体框图 (3)第3章各单元电路设计 (4)3.1里程计费电路设计 (4)3.2等候时间计费电路 (5)3.3计数、锁存、显示电路 (5)3.4时钟电路 (7)3.5置位电路和脉冲产生电路的设计 (7)第4章器件选择及部分功能简介 (9)4.1器件选择 (9)4.2部分功能简介 (9)4.2.1 555定时器 (9)4.2.2 74LS160 (11)第5章总结 (11)5.1结论 (11)5.2优点与不足 (12)5.3心得与体会 (12)第6章参考文献 (12)第1章设计指标1.1设计目的和意义1.1.1目的1. 自动计费器具有行车里程计费、等候时间计费和起步费三部分,三项计费统一用4位数码管显示,最大金额为99.99元。

出租车计费器

出租车计费器

电子课程设计——出租车计费器学院:电子信息工程学院专业、班级:姓名:学号:指导老师:2014年12月出租车计费器设计任务与要求设计一个出租车计费器,能按路程计费,具体要求如下:1、实现计费功能:计费标准为:按行驶里程计费,起步价为6.00元,并在3km后按1.20元/km计费,当计费达到或超过20元时,每公里加收50%的车费,车停止和暂停时不计费。

2、设计动态扫描电路,将车费和里程显示出来。

方案一一、总体框图方案一总体框图如图1-1所示。

路程信号采集模块里程显示模块计费显示模块图1-1 方案一总体框图1、路程信号采集模块此模块的主要功能为传感器采集出租车的行车信息,在此次的设计中,出租车行驶的公里数用脉冲来替代,出租车每行驶0.1公里,路程信号采集模块检测到一个脉冲。

2、里程显示模块此模块的功能主要为显示出租车行驶的里程数,在此次的设计中,采用数码管进行显示。

此模块中运用十进制计数器74LS160组成的组合电路对路程信号采集模块采集到的脉冲进行累计,并将累加结果作为出租车当前行驶里程数并通过数码管显示出来。

3、计费显示模块此模块的功能主要为显示出租车当前行驶里程下对应的车费,通过数码管显示出来。

在这一模块中,仍然采用十进制的计数器对价钱进行累加,根据设计要求,由于不同的行驶里程下所对应的计价方式不同,考虑到计价的准确性,此处采用累计与里程数脉冲频率成一定比例的脉冲的数量作为车费通过数码管显示出来。

例如,显示里程数的脉冲频率为100HZ,在行驶至三公里以后,计费部分的脉冲换为120HZ,这样相当于出租车每行驶一公里,价钱累加1.2元,当计价超过或达到20元时,计费部分的脉冲换做180HZ,这样相当于出租车每行驶一公里,价钱累加1.8元。

二、选择器件器件逻辑符号分别如图1-2、1-3、1-4、1-5、1-6、1-7所示,器件对应真值表与特性表分别如表1-1、1-2、2-3、1-4、1-5、1-6所示。

EDA简易出租车计价器设计

EDA简易出租车计价器设计

程后自动归零。
(4) 译码显示模块
Page 4
该模块经过8选1选择器将计费数据(4位BCD码)、
计时数据(2位BCD码)、计程数据(2位BCD码)动态
显示输出。其中计费数据jifei4~jifei1送入显示译码模块进
行译码,最后送至以百元、十元、元、角为单位对应的数
码管上显示,最大显示为999.9元;计时数据送入显示译
码模块进行译码,最后送至以分为单位对应的数码管上显
示,最大显示为59分;计程数据送入显示译码模块进行译
码,最后送至以公里为单位的数码管上显示,最大显示为
99公里。其系统组成框图如图2.1所示。
Page 5
时钟信 分频器 计费


等待信


计时
公里脉




计费/
计程
复位
Page 6
3 出租车计费器的层次化设计方案
(1) 分频模块 分频模块对频率为240Hz的输入脉冲进行分频,产生频率为16Hz、 15Hz、1Hz的3种频率。该模块产生频率信号用于计费,每个1Hz脉 冲为0.1元计费控制,15Hz为1.5元的计费控制,16Hz信号1.6元计费 控制。 (2) 控制模块 计价器控制模块主要完成对计价器状态的控制。
Page 3
(3) 计量模块
计量模块完成计价、计时和计程功能。
计价部分:行程在3公里内,而且等待累计时间小于2分钟,起步费为
10元;3公里外以每公里按1.6元计费,等待累计时间超过2分钟按每分钟1.5
元计费。
计时部分:计算乘客的等待累计时间。计时器的量程为59分钟,满量
程后自动归零。
计程部分:计算乘客所行驶的公里数。计程器的量程为99千米, 满量

任务书及报告模板--出租车简易计费器设计VHDL语言

任务书及报告模板--出租车简易计费器设计VHDL语言

课程设计报告书题目出租车简易计费器设计课程设计任务书课题题目摘要----------------jifei---------------library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jifei isport ( clk,rst,en,en1:in std_logic;lc0,lc1,lc2,lc3:out std_logic_vector(3 downto 0);jj0,jj1,jj2,jj3:out std_logic_vector(3 downto 0));end jifei;architecture lab10_4 of jifei issignal Q00:std_logic_VECTOR(3 DOWNTO 0);--jifei0 signal Q01:std_logic_VECTOR(3 DOWNTO 0);--jifei1 signal Q02:std_logic_VECTOR(3 DOWNTO 0);--jifei2 signal Q03:std_logic_VECTOR(3 DOWNTO 0);--jifei3 signal Q1:integer range 0 to 10000;--JIZONGLUCHENG signal Q10:std_logic_VECTOR(3 DOWNTO 0);--lc0 signal Q11:std_logic_VECTOR(3 DOWNTO 0);--lc1 signal Q12:std_logic_VECTOR(3 DOWNTO 0);--lc2 signal Q13:std_logic_VECTOR(3 DOWNTO 0);--lc3 signal Q2:integer range 0 to 10000;--jidengdaishijianbeginprocess ( clk, rst)beginif clk'event and clk='1' thenif en='1' thenif en1='1' then --JILUCHENGQ1<=Q1+1;if Q10= "1001" THENQ10<="0000" ;IF Q11="1001" THENQ11<="0000";if Q12= "1001" THENQ12<="0000" ;IF Q13="1001"THENQ13<="0000";ELSEQ13<=Q13+1;END IF;ELSEQ12<=Q12+1;END IF;ELSEQ11<=Q11+1;END IF;ELSEQ10<=Q10+1;END IF; --JILUCHENGJIESUIF Q1<=3 THEN --JISUANLUCHENGFEIYONGQ00<="0101";ELSEif Q00= "1001" THENQ00<="0000" ;IF Q01="1001" THENQ01<="0000";if Q02= "1001" THENQ02<="0000" ;IF Q03="1001"THENQ03<="0000";ELSEQ03<=Q03+1;END IF;ELSEQ02<=Q02+1;END IF;ELSEQ01<=Q01+1;END IF;ELSEQ00<=Q00+1;END IF; --LUCHENG FEIYONG JISUANJIESUEND IF;ELSEQ2<=Q2+1;IF Q2>5 THEN --JISUANDENGDAISHIJANDFEIYONGif Q00= "1001" THENQ00<="0000" ;IF Q01="1001" THENQ01<="0000";if Q02= "1001" THENQ02<="0000" ;IF Q03="1001"THENQ03<="0000";ELSEQ03<=Q03+1;END IF;ELSEQ02<=Q02+1;END IF;ELSEQ01<=Q01+1;END IF;ELSEQ00<=Q00+1;END IF;END IF;END IF;END IF;END IF;IF RST='0' THENQ00<="0000";Q01<="0000";Q02<="0000";Q03<="0000";Q1<=0;Q2<=0;Q10<="0000";Q11<="0000";Q12<="0000";Q13<="0000";END IF;LC0<=Q10;LC1<=Q11;LC2<=Q12;LC3<=Q13;JJ0<=Q00;JJ1<=Q01;JJ2<=Q02;JJ3<=Q03;end process;end lab10_4;首行空两个中文字符;文字采用小四、宋体;行间距:多倍行距1.3;字数:200-400字左右关键词课题相关关键词,以分号间隔目录课程设计任务书............................................. 错误!未定义书签。

出租车计价器程序

出租车计价器程序

出租车计价器程序出租车计价器程序是一种计算出租车费用的工具,它可以帮助乘客和司机准确地计算乘车费用。

该程序能够根据乘车里程和时长等因素,自动计算出乘车费用,并在出租车上显示给乘客。

这种程序的使用方便快捷,能够有效避免因计算错误而产生的纠纷。

下面我将介绍一下出租车计价器程序的一些功能和使用方法。

首先,出租车计价器程序可以根据乘车起步价和每公里价格来计算乘车费用。

乘客只需在程序中输入乘车里程和时长,程序就会自动根据这些参数进行计算,并显示出相应的费用。

这样既可以保证计价的准确性,也可以让乘客了解到自己所需支付的费用。

同时,该程序还能够根据不同的时间段和地区设置不同的计价规则,从而更准确地反映出车费的实际情况。

其次,出租车计价器程序还具有一些附加功能,如计算等候费和额外费用等。

在实际乘车过程中,可能会因为路况拥堵或乘客要求临时停车等原因产生等候费用。

该程序可以通过自动计时和定位等功能,准确地计算出等候费用,并显示给乘客。

此外,如果乘客有特殊需求,如携带大量行李或乘坐的是高级车型等,出租车计价器程序还可以根据这些要求计算出额外费用,从而更全面地反映出实际乘车费用。

出租车计价器程序还可以记录乘客的乘车历史和付款记录。

通过记录每一次乘车信息,程序可以帮助乘客掌握自己的乘车情况,方便对账和管理个人财务。

同时,出租车计价器程序还可以提供电子支付的功能,乘客可以通过程序直接进行付款,避免了现金交易的麻烦和安全隐患。

除了以上功能,出租车计价器程序还可以提供一些实用的辅助功能。

比如,程序可以提供实时的交通信息和路线规划,让乘客能够选择最佳的行驶路线。

同时,程序还可以提供天气预报和景点推荐等信息,为乘客提供更好的出行体验。

这些功能的提供不仅可以增加乘客的满意度,还能够提高司机的服务质量。

总的来说,出租车计价器程序是一种十分实用的工具,它可以帮助乘客和司机准确地计算乘车费用,避免了因计算错误而产生的纠纷。

该程序具有计算准确、功能丰富和使用方便等优点,并且能够提供一些附加的实用功能。

简易出租车计价器设计

简易出租车计价器设计

简易出租车计价器设计一、任务设计并制作出租车行驶里程及计价的装置。

二、要求1.基本要求(1)里程部分:能测量光电码盘输出的计数脉冲信号,并折算成相应里程数,传给显示单元,误差≤1%;计价部分:起步价10元,当汽车里程行驶未满10m时,均按起步价计算,超过10m后,单价为1.8/m元来计算车费。

(2)能够显示行驶距离、车费等,每项要求至少4位有效数字。

2.发挥部分在完成基本要求任务的基础上,增加如下功能:(1)起步价可调,调整范围±5元,步进为1元;(2)起步价对应初始里程数可调,调整范围±10m,步进为1元;;(3)每米单价数可调,调整范围±5.0元,步进为0.1元,步进可调;(4)可以记忆5个历史测量数据,能够调用查看;断电重新开机以后存储的数据不丢失;(5)票据打印部分;(6)其他创新。

三、说明(1)建议使用MSP-EXP430G2开发板,不做强行要求,光电码盘及其输出可用信号发生器代替。

(2)设计报告正文中应包括系统总体框图、单元模块电路原理图、主要程序流程图、主要的测试数据。

完整的电路原理图、源程序和测试结果可用附件给出。

电子温度计设计一、任务设计制作一个电子温度计。

二、要求1、基本要求(1)温度测量范围:0℃~100℃;(2)显示精度:测量温度与实际温度间误差小于2.0℃;(3)显示位数:要求有效位数共4位,其中小数点后1位;2、发挥部分在完成基本要求任务的基础上,增加如下功能:(1)当测量到温度超过35℃上限或低于15℃下限时,声光报警;(2)可更改报警的上下限温度值,步进1℃;(3)测量温度高于上限值10℃以上,低于下限值10℃以上,温度显示闪烁,要求亮灭间隔1s,间隔可调;(4)其他创新;三、说明(1)建议使用MSP-EXP430G2开发板,不做强行要求,温度传感器必须采用PT100,否则不予评测。

(2)设计报告正文中应包括系统总体框图、核心电路原理图、主要程序流程图、主要的测试结果。

出租车自动计价器设计简介

出租车自动计价器设计简介


cha3,cha2,cha1,cha0:out std_logic_vector (3 down to 0) ;
-- 费用数据

km1,km0:out std_logic_vector (3 down to 0) ;
--公里数据

min1,min0: out std_logic_vector (3 down to 0)) ;
end if ;

e l s e m0<=m0+1;

end if ;

i f m1&m0>"0000001"then en1<="1" ; --此IF语句得到en1使能信号

else en1<="0" ;

end if ;

else w<=w+1;en1<="0" ;

end if ;
--分频器
■ signal q_ 1:integer range 0 to 239;
--分频器
■ signal w : integer range 0 to 59;
--秒计数器
■ signal c3,c2,c1,c0:std_logic_vector (3 down to 0) ;--制费用计数器
■ signal k1,k0:std_logic_vector (3 downto 0) ; --公里计数器
系统组成
■ FPGA
时钟信号
分频器
计费
等待信号 公里脉冲
计费/复位
控制器
计时
译码
显示
计程

课程设计报告 简易出租车计费器

课程设计报告  简易出租车计费器

徐州师范大学物电学院课程设计报告课程名称:电子线路课程实训题目:简易出租车计费器专业班级:学生姓名:学生学号:日期:2010.06.26指导教师:物电学院教务部印制指导教师签字:年月日目录摘要 (02)Abstract (02)一、课题概绪论 (03)1.1 课程设计目的 (03)1.2 课程设计要求................................ (03)二、方案简述 (03)三、详细设计 (03)3.1 74LS192参数 (03)3.2 74LS48参数 (05)3.3 555芯片介绍 (06)四、设计结果及分析 (08)结果(仿真电路) (08)五、总结 (09)参考文献 (09)摘要在当今电子与信息技术发展的科技时代,我们不难发现电子信息技术的应用越来越广泛。

从电子管到晶体管,从小规模集成电路到庞大的系统集成,在我国欣欣向荣的航空航天事业无一不和电子信息技术息息相关。

在人类的生产生活领域中更脱离不开电子信息技术。

为了能够更好的掌握这门技术使它能够为人类造福,我们不但要利用好前辈的科技成果而且还要善于总结,不断的开拓创新。

为了能更好的利用已开发成果,人们把那些典型的、通用的复杂电路,甚至小系统集成在专用芯片中,为设计更新更复杂的系统奠定了坚实的基础。

AbstractIn today's electronic and information technology development in the technological age, we can easily find the application of electronic information technology more widely. From the tubes to transistors, from small to large scale integrated circuit system integration, in China's booming aviation and aerospace industries without exception, and electronic information technology are closely related. In the field of human life, even more off the production of electronic information technology can not be separated.In order to better master this technology to enable it to benefit humanity, we should not only make good use of the older generation of scientific and technological achievements but also good at summing up, constant innovation. In order to better use of the results has been developed, one of those typical, generic complex circuits, even a small system integrated in dedicated chip, for the design of newer and more complex the system laid a solid foundation.一、课题绪论1.1课程设计目的1.1.1有利于基础知识的理解通过对数电和模电的学习,使我掌握了一些信息时代生存与发展必需的信息技术基础知识和基本技能,具备了在日常生活与学习中应用电子技术解决问题的基本态度与基本能力。

出租车计价器使用说明

出租车计价器使用说明

出租车计价器使用说明一、基本组成1.显示屏:用于显示乘车费用和相关信息。

2.按键:用于输入乘车起始地和目的地等相关信息。

3.读卡器:用于读取乘客的乘车卡信息。

4.打印机:用于打印乘车票据。

5.清零按钮:用于将计价器的费用清零。

二、基本操作1.乘车起始地和目的地输入:乘客通过按键输入起始地和目的地的信息,通常可以选择输入具体地址或者选择预设的常用地点。

2.乘车方式选择:根据乘客的选择,计价器可根据不同的计费标准计算费用。

例如,按距离计费或按时间计费等。

3.读取乘车卡:乘客可以将乘车卡插入计价器的读卡器中,通过读取乘车卡上的信息,可以方便快捷地计算费用,同时也方便保存乘车记录。

4.计价器工作状态显示:计价器会显示乘车费用、行驶距离、行驶时间、空驶距离等信息,乘客可以实时了解乘车情况。

5.打印乘车票据:乘车结束后,计价器可以打印乘车票据,包括起始地、目的地、行驶距离、行驶时间、乘车费用等信息,方便乘客核对和保存。

三、计费规则1.基本费用:通常包括起步价,即乘客上车后的初始费用。

2.里程费用:根据乘客的行驶距离计算,一般以每公里为单位计费。

3.时间费用:如果车辆在等待或者拥堵的情况下,可以按照一定的时间计费。

4.夜间费用:在夜间或者特定时段行驶的车辆可以加收一定的夜间费用。

5.额外费用:在特定情况下,例如行李超出车辆限制或者需要使用高速公路等,可能会额外收取费用。

四、注意事项1.乘客在乘坐出租车前应先确认计价器的工作状态,确保可以正常使用。

2.在输入起始地和目的地信息时,应尽量准确选择、输入,以避免计算费用时出现错误。

3.在乘车过程中,要注意观察计价器的显示,确保费用的计算准确。

4.断电情况下或计价器有故障时,出租车司机可能会采用备用计费方式,乘客需要与司机协商确定费用计算方式。

5.在乘车结束后,可以要求打印乘车票据进行核对和保存。

总结:。

出租车计价器原理

出租车计价器原理

出租车计价器原理
出租车计价器是一种用于计算乘车费用的设备,它能够根据乘车的里程和时间来准确计算费用。

下面将介绍出租车计价器的工作原理。

出租车计价器通常由以下几个主要组件组成:
1. 里程传感器:里程传感器通常安装在车辆的车轮上,它能够检测车辆行驶的里程数。

传感器会将行驶的里程数传输给计价器。

2. 时间传感器:时间传感器用于检测车辆从开始计费到结束计费的时间。

它可以精确测量车辆行驶的时间,以便计算费用。

3. 计算器:计算器是整个计价器的核心部分,它用来执行费用计算算法。

根据传感器传输的里程和时间数据,计算器可以准确计算出乘客需要支付的费用。

计算器通常还会考虑一些其他因素,如夜间加价、堵车费等。

4. 显示屏:显示屏用于显示乘车费用。

计算器计算出的费用会在显示屏上实时显示,方便乘客查看。

出租车计价器的工作原理如下:
1. 当乘客上车时,计价器开始计费。

时间传感器记录下开始计费时的时间。

2. 当车辆行驶时,里程传感器记录下行驶的里程数,并将该数据传输给计算器。

3. 计算器根据里程数和行驶时间数据进行费用计算。

计算器根据事先设定的计费标准,如每公里多少钱、每分钟多少钱等,进行相应的计算。

4. 计算器将计算结果显示在显示屏上,供乘客查看。

5. 当乘客到达目的地后,乘客支付相应费用给司机,乘车结束。

总结起来,出租车计价器通过里程传感器和时间传感器获取车辆行驶的里程和时间数据,然后通过计算器进行费用计算,并将结果显示在显示屏上。

这样,乘客就可以根据计价器提供的信息支付相应的费用。

出租车计价器收费方法的算法设

出租车计价器收费方法的算法设

出租车计价器收费方法的算法设
1.起步价:在乘客上车时,计价器会自动开始计费。

起步价是一个固定金额,表示出租车开始行驶的费用。

2.里程费用:里程费是根据乘客的乘车距离来计算的费用,一般以每公里为单位。

起步价通常包含了一定的里程费用,超出起步价后的里程费用会单独计算。

3.时间费用:如果乘客在乘车过程中发生了等待时间,例如堵车、红灯或者其他原因导致出租车停车等待,计价器会根据等待时间计算时间费用。

时间费用通常以每分钟为单位。

4.夜间费用:夜间费用是指在特定时间段内乘坐出租车时需要额外支付的费用。

夜间费用一般会在晚上特定时间开始生效,并持续到早上特定时间。

夜间费用可以是里程费用或者时间费用的额外费用。

5.高峰时段费用:在高峰时段,出租车的需求量较大,计价器可以根据当前时间和地区的高峰时段规定额外收费。

高峰时段费用可以是里程费用或者时间费用的额外费用。

6.长途费用:如果乘客的乘车距离超过了一定的阈值,计价器可以根据超过的里程数额外收费。

长途费用一般以每公里为单位。

以上是出租车计价器收费方法的基本算法设定。

实际的算法设定可能还会根据不同地区或者城市的规定进行调整。

同时,基于透明度和公正性的原则,出租车计价器收费算法设定应该能够使乘客清楚地了解费用的计算方式,并且能够进行合理的申诉和监督。

出租车计价器工作原理

出租车计价器工作原理

出租车计价器工作原理
出租车计价器是一种专门用于计算出租车费用的设备。

它通过收集出租车行驶的里程和时间来计算乘客应支付的费用。

以下是出租车计价器的工作原理:
1.里程检测:出租车计价器通常配备了传感器,可检测和记录
车辆行驶的里程。

这些传感器通常安装在车辆的传动系统中,可以追踪轮胎旋转的次数或车轮的转速,从而计算出行驶的里程。

这些里程数据将被计价器用于后续计算。

2.时间检测:出租车计价器还具备计时功能,以记录车辆行驶
的时间。

计价器通常内置了时钟,在车辆发动后开始计时。

计价器会以特定的时间间隔进行更新,并记录行驶的总时间。

这些时间数据也将被用于后续费用计算。

3.费率计算:计价器通常包含一个费率表,其中记录了与行驶
里程和时间对应的费率。

费率表根据所在地区和相关规定而有所不同。

当车辆行驶一定距离或经过一定时间后,计价器会根据费率表进行费用的计算和更新。

费用通常会显示在计价器的显示屏上。

4.停车和等待费用:有些计价器也会计算车辆的停车和等待费用。

当车辆在交通拥堵或等待乘客时,计价器会根据一定的费率计算相应的费用,并加入总费用中。

5.其他功能:一些高级的计价器可能具有其他功能,例如支付
功能、导航功能等。

这些功能可以使计价器更加智能化和便利。

综上所述,出租车计价器通过收集和计算车辆行驶里程和时间,并根据费率表进行费用计算,从而实现对乘客应支付费用的准确计算。

这样可以确保出租车计费的公平和透明。

EDA课程设计-简易出租车计价器设计

EDA课程设计-简易出租车计价器设计

EDA 课程设计[RTX于2012/2/22]简易出租车计价器设计要求:●计价器按1.2元/公里计费,超过10公里后,则按1.8元/公里收费。

●起步价6元(3公里),超过3公里后,计价累加0.6元,10公里内以后每过0.5公里累加0.6元。

●过10公里后, 计价累加0.9元, 以后每过0.5公里累加0.9元。

●公里数4位数字显示,精确到0.1公里; 出租车计价4位数字显示,精确到0.1元。

●即:一.设计方案二.硬件部分:(1)硬件环境: 东南大学SE-5型EDA试验箱,其中核心元件是Altera公司的EPF10K10LC84-4):三.软件部分:(1)软件环境: Altera公司的MAX+plusII(2)程序源代码:1.顶层设计:2.各元件源代码:元件kms2money--kms2money.vhdlibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;--0.1公里表示为1, 0.1元表示为1entity kms2money isport( rst, clk, enf, dispclk :in std_logic;data4 :out std_logic_vector(3 downto 0);ctl8 :out std_logic_vector(7 downto 0));--data4 :按dispclk的上升沿周期性的依次输出kms3,kms2,kms1,kms0,mon3,mon2,mon1,mon0--ctl8 :分别为控制动态扫描显示的8个LED的使能端,高电平使能end kms2money;architecture art_kms2money of kms2money issignal kms3,kms2,kms1,kms0:std_logic_vector(3 downto 0);--公里百位,十位,个位,十分位signal mon3,mon2,mon1,mon0:std_logic_vector(3 downto 0);--金额百位,十位,个位,十分位begin------------------------------------------------------------------------------------------------------ dynctl:process(dispclk,kms3,kms2,kms1,kms0,mon3,mon2,mon1,mon0) --动态显示--dispclk上升沿依次来临时data4依次为kms3,kms2,kms1,kms0,mon3,mon2,mon1,mon0,周而复始variable times:std_logic_vector(2 downto 0); --3位可表征8种状态,非'0'且非'1'除外beginif dispclk'event and dispclk='1' thentimes:=times+1;case times iswhen "000"=> data4<=kms3; ctl8<="10000000";--使能左起第1位LEDwhen "001"=> data4<=kms2; ctl8<="01000000";--使能左起第2位LEDwhen "010"=> data4<=kms1; ctl8<="00100000";--使能左起第3位LEDwhen "011"=> data4<=kms0; ctl8<="00010000";--使能左起第4位LEDwhen "100"=> data4<=mon3; ctl8<="00001000";--使能左起第5位LEDwhen "101"=> data4<=mon2; ctl8<="00000100";--使能左起第6位LEDwhen "110"=> data4<=mon1; ctl8<="00000010";--使能左起第7位LEDwhen "111"=> data4<=mon0; ctl8<="00000001";--使能左起第8位LEDwhen others=> data4<="ZZZZ";ctl8<="00000000";--无效为高阻都不选中end case;end if;end process;------------------------------------------------------------------------------------------------------ kmsdisp:process(rst,clk) --clk每来一次上升沿认为公里数加0.1公里,即加1beginif rst='1' then kms3<="0000";kms2<="0000";kms1<="0000";kms0<="0000";--初始数据elsif clk'event and clk='1' thenif enf='1' thenif kms0="1001" then --按十进制相加规律加1kms0<="0000";if kms1="1001" thenkms1<="0000";if kms2="1001" thenkms2<="0000";if kms3="1001" then kms3<="0000";else kms3<=kms3+1;end if;else kms2<=kms2+1;end if;else kms1<=kms1+1;end if;else kms0<=kms0+1;end if;end if;end if;end process;------------------------------------------------------------------------------------------------------ mondisp:process(rst,clk)variable kms: std_logic_vector(15 downto 0); --公里数的十六进制值或二进制值variable times:std_logic_vector(2 downto 0);--记录clk上升沿的次数,即有几个0.1公里beginif rst='1'then mon3<="0000";mon2<="0000";mon1<="0110";mon0<="0000";kms:=(others=>'0');times:="000";elsif clk'event and clk='1' thenif enf='1' thentimes:=times+1;if times=1 thenkms:=kms+5; --kms可能为0,5,10,..,6,65,...(5的倍数)--kms+1(0.1公里)与kms+5在价格的角度上看是等价的--XXX.1-XXX.5公里均按XXX.5公里看待,XXX.6-XXX.9公里均按(XXX.9+0.1)看待If kms<=30 then mon3<="0000";mon2<="0000";mon1<="0110";mon0<="0000";--不超过3公里,收起步价6.0元elsif kms<=100 then --超过3公里不超过10公里,每0.5公里金额加0.6元;--------------------------------------------------------if mon0>3 then --按十进制相加规律加6mon0<=mon0-4; --XXX4-XXX9加6后为YZW0-YZW5if mon1="1001" thenmon1<="0000";if mon2="1001" thenmon2<="0000";if mon3="1001" then mon3<="0000";else mon3<=mon3+1;end if;else mon2<=mon2+1;end if;else mon1<=mon1+1;end if;else mon0<=mon0+6; --XXX0-XXX3加6后为XXX6-XXX9end if;--------------------------------------------------------else --超过10公里,每0.5公里金额加0.9元;--------------------------------------------------------if mon0>0 then --按十进制相加规律加9mon0<=mon0-1; --XXX1-XXX9加9后为YZW0-YZW8if mon1="1001" thenmon1<="0000";if mon2="1001" thenmon2<="0000";if mon3="1001" then mon3<="0000";else mon3<=mon3+1;end if;else mon2<=mon2+1;end if;else mon1<=mon1+1;end if;else mon0<=mon0+9; --XXX0加9后为XXX9end if;--------------------------------------------------------end if;elsif times=5 then times:="000";--每计数5次clk就重新计数以便下次"循环"使用--times=0,2,3,4时参数不变,而只在times=1时一笔带过,被包含了.times=0与times=5是等效的end if;end if;end if;end process;------------------------------------------------------------------------------------------------------end art_kms2money;3.元件seg7bcd--seg7bcd.vhdlibrary ieee;use ieee.std_logic_1164.all;entity seg7BCD isport( turn_on :in std_logic;x :in std_logic_vector(3 downto 0);y :out std_logic_vector(6 downto 0));--声明:-- 共阴极7段显示-- turn_on :显示使能开关,高电平有效-- x :4位BCD码,x(3)为最高位,x(0)为最低位-- y :7段显示码,y(6)..y(0)对应g f e d c b aend seg7BCD;architecture art_seg7BCD of seg7BCD isbeginprocess(x,turn_on)beginif turn_on='1' thencase x is --"gfedcba"when "0000"=>y<="0111111";--0when "0001"=>y<="0000110";--1when "0010"=>y<="1011011";--2when "0011"=>y<="1001111";--3when "0100"=>y<="1100110";--4when "0101"=>y<="1101101";--5when "0110"=>y<="1111101";--6when "0111"=>y<="0000111";--7when "1000"=>y<="1111111";--8when "1001"=>y<="1101111";--9when others=>y<="ZZZZZZZ";--无效end case;else y<="0000000";--熄灭end if;end process;end art_seg7BCD;3.仿真结果4.管脚绑定Port Num Name---------------------------------------- [+]LedEN[7..0]LedEN7 80LedEN6 81LedEN5 83LedEN4 3LedEN3 72LedEN2 73LedEN1 78LedEN0 79---------------------------------------- [+]g2a[6..0]g2a6 6 gg2a5 7 fg2a4 8 eg2a3 9 dg2a2 10 cg2a1 11 bg2a0 16 a---------------------------------------- [+]inputCLK 1 CP1dispCLK 43 CP2RST 28 K1nPause 29 K25.下载程序---------------------------------------------------------------------------------------------------------------------- 本程序十分简易,仅供交流与学习。

出租车计费器

出租车计费器

AT89S52 ST150 LED TS_12864AT89S52 ST150 DS18B201.11-11-11.212PWM41.3AT89S52 ST150 LED TS_12864 DS18B203 /INT0 Km/h (Km) 641 3 ( ) 1—2 5 2—3 8 1.4 3 1.4 1 1//------------- lc1----- fee 10 ----------------switch (lc1){case0:f ee=30;break;//1 3case1:fee=50;break;//1—2 5case2:fee=80;break;//2—3 8default: fee=(lc1-2)*14+80 ; break; // 1.4 }fee=fee+r_wait/3*14;// 3 1.43.1A T89S52 9V 5V LED ST150 TS128643.2, 0 0 1Keil C3-2-13-2-24.14.21 1 3 1—2 5 2—3 81.43 1.4 1 164 70 64Km/h138 160 156 146 148 Km 0.3 1.0 1.5 2.0 2.5 3.0 5.0 6.03.0 5.0 5.0 8.0 8.0 9.4 12.2 13.63.0 5.0 5.0 8.0 8.0 9.4 12.2 13.64-2-1Km 6.0 6.0 6.0 6.0 6.0 7.0 01 02 03 04 06 06 13.6 13.6 15.0 15.0 16.4 17.813.6 13.6 15.0 15.0 16.4 17.84-2-221 1 3.0(Km) ( )7.006 17.80.0 01 3.0DS18B20 00.00 99.994.31.D32. 1 53. 14. P3.6AT89S52 ST150 16// 2009-05-19//T0//T1//INT0// TS_12864// DS18B20// ST150#include <reg52.h>#include<DS18B20.h>// DS18B20#include<yejing.h>// TS12864#define uchar unsigned charchar tim=0,sec=0, min=0,hour=0;//uchar te=0x80,tc=0,djkey=0,rs_deng=0,r_wait=1; //char f_hl=0,f_gd=0,f_sxq=0,st=1;//uchar d isp0=0,disp1=0, disp2=0,disp3=0; //unsigned long lc=0,lc0,lc1,kshu0=0,zshu=0; //unsigned long fei=0;//sbit LED_R=P1^2 ;sbit LED_G=P1^1 ;sbit K1=P2^0;sbit K2=P2^1;sbit K3=P2^2;sbit K4=P2^3;sbit K5=P3^4;sbit K6=P3^5;sbit K7=P3^6;sbit K8=P3^7;//char code TAB1[64]={" ... . "};char code TAB2[64]={" .. Km/h . Km . "};char code TAB3[64]={" .. . "};void tim_jin() ;void zhuandong(void) ;void key();void yjzm();void jifei();void key_delay( );//void hongwai0() interrupt 0{kshu0+=1;lc+=1;}// 0 --void timer0() interrupt 1{TH0=0x3C;TL0=0XB0;tim+=1;if(tim==4||tim==8||tim==12||tim==16||tim==20) { key(); tim_jin();} if(tim>20){tim=0;sec++;if(sec>=60) { min++; sec=0;}tc+=1;if(tc==3){t c=0;zshu=kshu0*2; kshu0=0;}if(LED_R==0) rs_deng++;if(rs_deng>=60){r_wait++;r s_deng=0;}}}// 1 --void dianji() interrupt 3{if (f_gd==0) { TH1=0x01; TL1=0X00;}else { TH1=0x8f; TL1=0X00;}zhuandong();}void zhuandong(void){char s;s=P1&0x0F;P1=te|s;te=te>>1;if (te==0x08) te=0x80;}//void key(){if(K1==0) { key_delay(); if(K1==0) f_hl=~f_hl;}if(K2==0){ key_delay(); if(K2==0) f_gd=~f_gd; }if(K3==0) {key_delay(); if(K3==0) f_sxq=~f_sxq; }if(K4==0){ key_delay(); if(K4==0) st=1;}if(K5==0) { key_delay(); if(K5==0) {hour+=1; st=0;} }if(K6==0) { key_delay(); if(K6==0) {hour-=1; st=0;} }if(K7==0) { key_delay(); if(K7==0) {min+=1; st=0;} } if(K8==0) { key_delay(); if(K8==0) {min-=1; st=0;} }}//void tim_jin(){if(st==0){if(min==60) min=0;if(min<0) min=59;if(hour==24) hour=0;if(hour<0) hour=23;}if(st==1){ if(min>=60){ min=0;hour++;}if(hour>=24) hour=0;}}void main(void){TMOD=0x11;IE=0x8B;IP=0x02;TH0=0x3C;TL0=0xB0;TH1=0x00;TL1=0x00;IT0=1;TR0=1;TR1=0;INIT();LED_G=0;while(1){ K7=1;if (f_sxq!=0){ TR1=1; }else{TR1=0;lc0=0;lc=0;fei=0;rs_deng=0;r_wait=1;} //if(f_hl==0){TR1=1;LED_G=0; LED_R=1; }else{TR1=0;LED_R=0;LED_G=1;}//readtemp(); //lc0=lc/64;jifei(); //yjzm();Display(); //}}void yjzm(){ char i;if (f_sxq==0){ TR1=0;lc=0;lc0=0;fei=0;for (i=0;i<64;i++)TAB[i]= TAB1[i];TAB[53]=hour/10+0x30;TAB[54]=hour%10+0x30;TAB[55]=0x3A;TAB[56]=min/10+0x30;TAB[57]=min%10+0x30;TAB[58]=0x3A;TAB[59]=sec/10+0x30;TAB[60]=sec%10+0x30;TAB[37]=disp0+0x30;TAB[38]=disp1+0x30;TAB[40]=disp2+0x30;TAB[41]=disp3+0x30;TR1=0;lc0=0;fei=0;rs_deng=0;r_wait=1;}else if(LED_G==0){ for (i=0;i<64;i++)TAB[i]= TAB2[i];TAB[21]=zshu/100+0x30;TAB[22]=zshu%100/10+0x30;TAB[23]=zshu%100%10+0x30;TAB[37]=lc0/1000+0x30;TAB[38]=lc0%1000/100+0x30;TAB[39]=lc0%1000%100/10+0x30; TAB[41]=lc0%1000%100%10+0x30; TAB[53]=fei/1000+0x30;TAB[54]=fei%1000/100+0x30;TAB[55]=fei%1000%100/10+0x30; TAB[57]=fei%1000%100%10+0x30;}else if(LED_R==0){ for (i=0;i<64;i++)TAB[i]= TAB3[i];TAB[37]=hour/10+0x30;TAB[38]=hour%10+0x30;TAB[39]=0x3A;TAB[40]=min/10+0x30;TAB[41]=min%10+0x30;TAB[42]=0x3A;TAB[43]=sec/10+0x30;TAB[44]=sec%10+0x30;TAB[23]=r_wait/10+0x30;TAB[24]=r_wait%10+0x30;TAB[53]=fei/1000+0x30;TAB[54]=fei%1000/100+0x30;TAB[55]=fei%1000%100/10+0x30; TAB[57]=fei%1000%100%10+0x30; TR1=0;}}//void jifei(){ lc1=lc0/10;switch (lc1){case0:fei=30;break;case 1 :fei=50;break;case 2 :fei=80;break;default:fei=(lc1-2)*14+80 ; break ;}fei=fei+r_wait/3*14;}//void key_delay( ){char i,j;for(i=0;i<8;i++)for(j=0;j<20;j++);}//*************************************************************** // DS18B20#include<math.h>#define uchar unsigned charsbit DQ= P3^6;int fla;uchar disp0,disp1, disp2,disp3;void delay_18b20(int us){ uchar s;for ( s=0; s<us; s++);}//void rst(void){DQ = 1;delay_18b20(2);DQ = 0;delay_18b20(30); // 480~960usDQ = 1;delay_18b20(1);if(DQ==0){fla=1; }delay_18b20(30);DQ = 1;}unsigned int read(void) {uchar i=0;unsigned int u=0;for (i=0;i<16;i++){ DQ=0;u>>=1;DQ=1;if(DQ)u|=0x8000;delay_18b20(4); } return (u);}void write(uchar ku){int i=0;for (i=0;i<8;i++){DQ=0;DQ =ku&0x01;delay_18b20(3);DQ=1;ku>>=1;}}void readtemp(void){int t1,t2, t0;unsigned int tp; unsigned int lsb;rst();if(fla==1){write(0xCC);write(0x44);rst();write(0xCC);write(0xBE);tp=read();// disp0_disp1--disp2_disp3lsb=(unsigned int)(tp*6.25);t0=lsb/1000;disp0 = t0; //if(!t0) disp0 = 0xff;t2= lsb%1000;t1=t2/100;disp1=t1;t1=t2%100;t2=t1/10;disp2=t2; //disp3=t1%10;//}}//*** ************************************************************ // TS12864#define uchar unsigned char#define DB P0sbit RS=P2^4;sbit RW=P2^5;sbit EN=P2^6;sbit RST=P2^7;void INIT();void WR_INST(int A);void check_BF();void WR_String();void WR_DATA(char k);void Display();void Delay(int t);char TAB[64]={" "};//void INIT(){RST=0;Delay(80);RST=1;WR_INST(0x30);WR_INST(0x0c);WR_INST(0x01);WR_INST(0x06);}void WR_INST(int A){check_BF();RS=0;RW=0;EN=1;DB=A;EN=0;}//void check_BF(){int B,BF;RS=0;RW=1;EN=1;B=DB;EN=0;BF=B>>7;while(BF==1){RS=0;RW=1;EN=1;B=DB;EN=0;BF=B>>7;}Delay(6);}void WR_String(){char k;uchar i;uchar ADDR[4]={0x80,0x90,0x88,0x98} ;for(i=0;i<4;i++){WR_INST(ADDR[i]);for(k=0;k<16;k++){ WR_DATA(k+16*i);//Delay(80);}}}void WR_DATA(char n){check_BF();RS=1;RW=0;EN=1;DB=TAB[n];EN=0;}void Display(){WR_INST(128);WR_String();}void Delay(int t){int i,j;for(i=0;i<t;i++)for(j=0;j<120;j++);}0602 + 07022009.05.20。

简易出租车里程计费器

简易出租车里程计费器

测控08级综合课程设计题目:简易出租车里程计费器摘要:本系统以STC89C52RC单片机为控制核心,辅以键盘调节、12864显示、蜂鸣器报警、车速模拟、车速检测及信息存储电路,实现了出租车计价器的行车里程和车速的实时检测与显示、计价金额显示以及价格预置等功能,满足了题目中基本部分及发挥部分的要求。

在此基础上,还增加了断电保护、蜂鸣器警示、行驶里程等功能。

该系统功能齐全,实用性强。

经测试,计价器的各项显示指标均满足题目要求。

关键词:出租车里程计费器;STC89C52RC+;MOC70T2;;掉电保护;Abstract: This system uses STC89C52 microcontroller as control core. With the keyboard control circuit, digital display circuit, beep alarm circuit, speed measureement circuit, speed detection circuit and information storage circuit,this system realizes function of the meter taxi driving mileage ,display and detection of real-time speed, valuation display and price set in advance, it meets all essential and additional requirement. Additional function such as power-off protection , beep alarm the print of mileage and consumption is added. This system is fully functioned and easy to implement. The measurement results show that all indicators of this taxi meter meet the requirement.Key words: Taxi Meter; STC89C52; Price Set in Advance; Power-off Protection目录第一章出租车里程计费器的设计要求与设计方案 (1)1.1 出租车计价器系统组成 (1)图1-1 系统功能图 (1)1.2 系统主要功能 (1)1.3 方案论证与比较 (1)第二章出租车里程计费器的硬件设计 (2)2.1 出租车的硬件框图 (2)2.2 主控制器STC89C52RC+ (2)2.3 按键扫描模块 (2)2.4 显示模块 (3)2.5 掉电保护 (3)2.6 车速模拟和检测模块 (4)第三章出车里程计费器的软件设计 (5)3.1 系统主程序流程图 (5)3.2 里程和费率计算程序流程图 (5)第四章设计体会与小结 (6)参考文献 (6)附录 (7)一.源程序 (7)二.12864驱动程序 (12)第一章出租车里程计费器的设计要求与设计方案1.1出租车计价器系统组成此出租车计费系统以单片机为系统核心,利用STC89C52RC单片机配合12864液晶屏的显示模块及键盘模块等,实现基本的出租车计价器功能。

eda课程设计vhdl语言的简易出租车计费器设计

eda课程设计vhdl语言的简易出租车计费器设计

唐山学院《EDA技术》课程设计题目简易出租车计费器设计系(部) 信息工程系班级12电本班姓名学号4120208XXX指导教师郭耀华周剑利吕宏丽2015 年7 月 6 日至7 月12 日共1 周2015年7 月8 日课程设计成绩评定表目录1 引言 02 计费器的设计 (1)2.1 设计内容 (1)2.2设计要求 (2)2.3 设计原理 (2)2.4 各模块的设计 (3)2.4.1 分频模块 (3)2.4.2 计程模块 (4)2.4.3 计费模块 (4)2.4.4 顶层模块 (5)3 仿真 (6)4 引脚的锁定 (7)5总结 (8)参考文献 (10)附录 (11)1 引言出租车计费器是出租车营运收费的智能化仪表,是使出租车市场规范化、标准化的重要设备。

一种功能完备,简单易用,计量准确的出租车计价器是加强出租车行业管理,提高服务质量的必需品。

在科技高度发展的今天,集成电路和计算机应用得到了高速发展。

本设计就采用VHDL描述语言,设计出租车计价系统的软件结构,通过QuartusⅡ9.0软件下进行仿真,再在试验箱进行硬件仿真,实现了模拟的简易的出租车计费器。

编写程序所用的VHDL语言全名为Very-High-Speed Integrated Circuit Hardware Description Language,诞生于1982年。

1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。

自IEEE-1076(简称87版)之后,各EDA公司相继推出自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。

1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,简称93版。

VHDL 和Verilog作为IEEE的工业标准硬件描述语言,得到众多EDA公司支持,在电子工程领域,已成为事实上的通用硬件描述语言。

出租车费计算器

出租车费计算器

出租车费计算器简介出租车费计算器是一种用于帮助乘客估算出租车费用的工具。

它通过输入起始地点和目的地以及其他相关因素,计算出行的费用。

本文档将介绍出租车费计算器的使用方法,以及其背后的计算原理。

使用方法1.打开出租车费计算器应用程序。

2.在起始地点输入框中输入您的出发地点。

3.在目的地输入框中输入您的目的地。

4.选择适用的计费方式(如按里程计费或按时间计费)。

5.输入其他相关因素,如行驶的距离(单位:公里)或行程的时间(单位:分钟)。

6.点击“计算费用”按钮。

示例•假设您的起始地点为A地,目的地为B地,计费方式为按里程计费。

•输入起始地点为“A地”。

•输入目的地为“B地”。

•选择计费方式为“按里程计费”。

•输入行驶的距离为10公里。

•点击“计算费用”按钮。

•出租车费计算器将显示出行费用为50元。

计费方式出租车费计算器支持多种计费方式,常见的有按里程计费和按时间计费。

以下是这两种计费方式的说明:按里程计费•按里程计费是根据行驶的距离来计算费用的方式。

•当选择按里程计费时,用户需要输入行驶的距离(单位:公里)。

•出租车费计算器将根据每公里的价格来计算出行费用。

按时间计费•按时间计费是根据行程的时间来计算费用的方式。

•当选择按时间计费时,用户需要输入行程的时间(单位:分钟)。

•出租车费计算器将根据每分钟的价格来计算出行费用。

费用计算费用计算是出租车费计算器的核心功能之一。

它根据用户输入的起始地点、目的地和其他相关因素来计算出行的费用。

计算公式•按里程计费的公式如下:总费用 = 行驶的距离(公里) × 每公里的价格•按时间计费的公式如下:总费用 = 行程的时间(分钟) × 每分钟的价格价格设置出租车费计算器的价格设置通常由当地的出租车公司或政府部门确定。

用户在使用时应根据实际情况进行设置。

注意事项•出租车费计算器仅作为费用估算工具,实际费用可能因交通状况、折扣等因素有所变动。

•当地的法律法规和出租车公司的规定可能会影响费用计算方式。

出租车计价器方案

出租车计价器方案

出租车计价器方案1. 引言出租车计价器是出租车行业中必不可少的设备,用于自动计算乘客乘坐出租车的费用。

一个好的计价器方案应该能够确保计价精确、公正,并且方便乘客和司机使用。

本文将介绍一种出租车计价器的方案,旨在满足上述要求。

2. 计费方式在设计出租车计价器方案时,需要确定计费方式。

一种常见的计费方式是按照里程和时间进行计费。

具体的计费规则可以根据当地的出租车行业规定进行制定。

下面是一个示例的计费方式:•起步价:10元•里程费:每公里2元•时间费:每分钟0.2元3. 计价器硬件设计出租车计价器方案需要设计相应的硬件来实现计价和显示功能。

计价器硬件设计主要包括以下几个方面:3.1 显示屏计价器的显示屏用于显示计价结果和其他相关信息。

可以选择使用液晶显示屏或者LED显示屏,具体选择取决于需求和成本考虑。

3.2 按键计价器需要配备一些按键,以便乘客和司机可以方便地进行操作。

常见的按键包括起步、停车、调整里程和时间等。

3.3 传感器出租车计价器需要使用相应的传感器来检测车辆行驶的里程和时间。

常见的传感器包括里程传感器和时间传感器。

里程传感器可以通过车辆的里程表获取,时间传感器可以通过计算机内部时钟来获取。

3.4 控制器计价器需要配备一个控制器,用于处理计价逻辑和控制硬件的操作。

可以选择使用单片机或者微处理器作为控制器,具体选择取决于需求和成本考虑。

4. 计价算法计价器的计价算法需要能够根据里程和时间的变化自动计算费用。

一个简单的计价算法可以按照以下步骤进行:1.获取里程和时间数据;2.根据计费方式进行计算:里程费 = 里程 * 每公里费用,时间费 = 时间 * 每分钟费用;3.计算总费用:总费用 = 起步价 + 里程费 + 时间费。

5. 功能拓展除了基本的计费功能外,出租车计价器还可以拓展其他的功能,以提升用户体验和服务质量。

以下是一些可能的功能拓展:•多种计费方式的选择,以适应不同地区和不同出租车公司的需求;•支持优惠和折扣的计算,如打车平台的优惠券和会员折扣等;•支持支付功能,可以通过计价器直接完成乘车费用的支付。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

测控08级综合课程设计题目:简易出租车里程计费器摘要:本系统以STC89C52RC单片机为控制核心,辅以键盘调节、12864显示、蜂鸣器报警、车速模拟、车速检测及信息存储电路,实现了出租车计价器的行车里程和车速的实时检测与显示、计价金额显示以及价格预置等功能,满足了题目中基本部分及发挥部分的要求。

在此基础上,还增加了断电保护、蜂鸣器警示、行驶里程等功能。

该系统功能齐全,实用性强。

经测试,计价器的各项显示指标均满足题目要求。

关键词:出租车里程计费器;STC89C52RC+;MOC70T2;;掉电保护;Abstract: This system uses STC89C52 microcontroller as control core. With the keyboard control circuit, digital display circuit, beep alarm circuit, speed measureement circuit, speed detection circuit and information storage circuit,this system realizes function of the meter taxi driving mileage ,display and detection of real-time speed, valuation display and price set in advance, it meets all essential and additional requirement. Additional function such as power-off protection , beep alarm the print of mileage and consumption is added. This system is fully functioned and easy to implement. The measurement results show that all indicators of this taxi meter meet the requirement.Key words: Taxi Meter; STC89C52; Price Set in Advance; Power-off Protection目录第一章出租车里程计费器的设计要求与设计方案 (1)1.1 出租车计价器系统组成 (1)图1-1 系统功能图 (1)1.2 系统主要功能 (1)1.3 方案论证与比较 (1)第二章出租车里程计费器的硬件设计 (2)2.1 出租车的硬件框图 (2)2.2 主控制器STC89C52RC+ (2)2.3 按键扫描模块 (2)2.4 显示模块 (3)2.5 掉电保护 (3)2.6 车速模拟和检测模块 (4)第三章出车里程计费器的软件设计 (5)3.1 系统主程序流程图 (5)3.2 里程和费率计算程序流程图 (5)第四章设计体会与小结 (6)参考文献 (6)附录 (7)一.源程序 (7)二.12864驱动程序 (12)第一章出租车里程计费器的设计要求与设计方案1.1出租车计价器系统组成此出租车计费系统以单片机为系统核心,利用STC89C52RC单片机配合12864液晶屏的显示模块及键盘模块等,实现基本的出租车计价器功能。

本系统是由STC89C52RC+单片机、12864液晶显示模块、模拟出租车、复位电路及键盘等模块组成。

系统框图如图1-1所示:图1-1 系统功能图1.2系统主要功能本课程设计所设计的出租车计价器的主要功能有:里程计量及费用计算功能、车速测量、按键功能。

1.3方案论证与比较1.3.1方案一:采用数字电路控制。

采用传感器件,输出脉冲信号过放大整形作为移位寄存器的脉冲,实现计价,但是考虑到这种电路过于简单,性能不稳定,而且不能调节单价,也不能根据需要调节计费标准,电路不够实用。

1.3.2方案二:采用单片机控制。

利用单片机丰富的I/O端口,及其控制的灵活性,实现基本的里程计价功能,车速测量和价格调节、液晶显示功能。

通过比较以上两种方案,单片机方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,所以我们采用后一种方案。

1第二章出租车里程计费器的硬件设计2.1出租车的硬件框图图2-2 单片机控制方案2.2主控制器STC89C52RC+STC89C52RC是一种带8K FLASH程序存储器,512B SRAM,4K EEPROM,高性能CMOS 8位微处理器,俗称单片机。

主要特性:与MCS-51兼容、8K字节可编程闪烁存储器、512字节的SRAM 最高工作频率:80MHz、4K字节EEPROM、32可编程I/O线、三个16位定时器/计数器、8个中断源、内置硬件看门狗、在线可编程和在系统可编程、可编程串行通道、低功耗的闲置和掉电模式、片内振荡器和时钟电路。

2.3按键扫描模块(1)按键扫描模块电路图及说明:整个系统有四个按键,四个功能调整按键;本模块功能:扫描按键功能,返回扫描。

图2-32.4显示模块本设计是用12864液晶屏来实现计价的显示。

原理图如图2-4所示。

图2-4 12864液晶屏显示模块2.5掉电保护掉电保护功能采用了STC89C52RC+单片机内部EEPROM来实现。

掉电存储单元的作用是在电源断开的时候,存储当前设定的单价信息。

STC89C52内部自带了4K大小的EEPROM,地址是从2000H~2FFFH。

写操作主要是编程和擦除。

2.6车速模拟和检测模块以电机为驱动,将电机的转子与码盘连接在一起,用码盘的转动模拟出租车车轮的转动,码盘的转速即为出租车的车速。

采用MOC70T2凹槽光电开关作为车速检测器。

MOC70T2凹槽光电开关灵敏度高、实用性强、安装方便。

MOC70T2凹槽光电开关检测码盘转动的圈数,将检测得到的信号送至单片机外部中断引脚,单片机运用算法处理接收到的信号,从而得到出租车的实时车速。

MOC70T2凹槽光电开关的电路图如图2-6所示。

图2-6 车速模拟和检测模块第三章出车里程计费器的软件设计3.1系统主程序流程图3.2里程和费率计算程序流程图第四章设计体会与小结经过这次出租车计价器的课程设计,我收益非浅,从中我学到了很多东西.课程设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。

通过这次设计使我明白了自己原来知识还比较欠缺。

自己要学习的东西还太多,以前老是觉得自己什么东西都会,什么东西都懂,有点眼高手低。

通过这次课程设计,我才明白学习是一个长期积累的过程,另外,还学会了在网络上查找有关本设计的各硬件的资源,其中包括:STC89C52单片机及其引脚说明,为本次课程设计提供了一定的资料。

在这次课程设计中也使我们的同学关系更进一步了,同学之间互相帮助,有什么不懂的大家在一起商量,听听不同的看法对我们更好的理解知识,所以在这里非常感谢帮助我的同学。

总之,不管学会的还是学不会的的确觉得困难比较多,真是万事开头难,不知道如何入手。

最后终于做完了有种如释重负的感觉。

此外,还得出一个结论:知识必须通过应用才能实现其价值!有些东西以为学会了,但真正到用的时候才发现是两回事,所以我认为只有到真正会用的时候才是真的学会了。

经过这次的课程设计,也为我们以后毕业设计的制作奠定了一定的基础。

参考文献1.丁跃军.单片机基础教程.北京:北航大学出版社,20042.张鑫、华臻、陈书谦.《单片机原理及应用》[M].电子工业出版社,20053.李群芳,肖看.单片机原理接口与应用.北京:清华大学出版社,20054.朱承高.电工及电子技术手册[M].北京:高等教育出版社,19905.高峰.单片微型应用系统设计及实用技术.北京:机械工业出版社,20046.廖常初.现场总线概述[J].电工技术,19997.丁元杰、吴大伟.《单片微机实题集与实验指导书》[M].机械工业出版社,2004附录一.源程#include<reg52.h>#include"12864.h"#include"eeprom.h"sbit beep=P2^0;uchar Trg,Cont;uchar StartPrice,PerPrice;uchar DisplayC;uchar code num[]="0123456789"; uchar flag,f;uint speed_count,speed_c;uchar c;uint speed;uchar beep_count;unsigned long Val;void ScanKey(void);void delay5s(void);void main(void){uint distance;uint TotalPrice;uchar price[]="元";beep=1;lcd_init();display(0,0," Welcom to you !");display(1,0,"出租车里程计费器");display(2,0," Designed by");display(3,0," 唐杰王家佳");delay5s();lcd_init();StartPrice=byte_read(0x2000);PerPrice=byte_read(0x2200);EX0=1;EA=1;IT0=1;RCAP2L=TL2=0x3C;RCAP2H=TH2=0xB0;ET2=1;TMOD = 0x01;TH0 = 0x0B1;TL0 = 0x0E0;TR0 = 1;TR2=1;while(1){ScanKey();if(f==0){display(0,0,"起步价:");if(flag==0){lcd_wdat(num[StartPrice/10]);lcd_wdat('.');lcd_wdat(num[StartPrice%10]);}if(flag==1){if(DisplayC<30){lcd_wdat(num[StartPrice/10]);lcd_wdat('.');lcd_wdat(num[StartPrice%10]);}if((30<DisplayC)&&(DisplayC<40)){lcd_wdat(' ');lcd_wdat(' ');lcd_wdat(' ');}}display(0,5,"元");display(1,0,"每公里:");if(flag==0){lcd_wdat(num[PerPrice/10]);lcd_wdat('.');lcd_wdat(num[PerPrice%10]);}if(flag==2){display(0,0,"起步价:");lcd_wdat(num[StartPrice/10]);lcd_wdat(num[StartPrice%10]);display(1,0,"每公里:");if(DisplayC<30){lcd_wdat(num[PerPrice/10]);lcd_wdat('.');lcd_wdat(num[PerPrice%10]);}if((30<DisplayC)&&(DisplayC<40)){lcd_wdat(' ');lcd_wdat(' ');lcd_wdat(' ');}}if(DisplayC>40)DisplayC=0;display(1,5,"元");}else if(f==1){speed=speed_c*36;display(1,0,"速度:");if(speed/1000!=0)lcd_wdat(num[speed/1000]);lcd_wdat(num[speed%1000/100]);lcd_wdat(num[speed%100/10]);lcd_wdat('k');lcd_wdat('m');lcd_wdat('/');lcd_wdat('h');}display(2,0,"行驶里程:");lcd_wdat(num[distance/1000]);lcd_wdat(num[distance%1000/100]);lcd_wdat(num[distance%100/10]);lcd_wdat('.');lcd_wdat(num[distance%10]);display(2,7,"km");distance=Val/100;TotalPrice=distance*PerPrice/10+StartPrice;display(3,0,"总费用:");if(TotalPrice/1000!=0)lcd_wdat(num[TotalPrice/1000]);else lcd_wdat(' ');if(TotalPrice%1000/100!=0)lcd_wdat(num[TotalPrice%1000/100]);lcd_wdat(num[TotalPrice%100/10]);lcd_wdat('.');lcd_wdat(num[TotalPrice%10]);lcd_wdat(price[0]);lcd_wdat(price[1]);}}void ScanKey(void){unsigned char ReadData;static char Ctemp;if(TF0==1){TF0=0;TH0 = 0x0B1;TL0 = 0x0E0;beep_count++;if(beep_count>=5){beep_count=0;beep=1;}DisplayC++;ReadData=P3^0xFF;Trg=ReadData&(ReadData^Cont);Cont=ReadData;if(f==0){if((Cont&(1<<7))&&(flag==0)){Ctemp++;if(Ctemp>=50){Ctemp=0;flag=1;beep=0;}}if((Trg&(1<<7))&&(flag!=0)){flag++;beep=0;}if(flag>=3){flag=0;sector_erase(0x2000);byte_program(0x2000,StartPrice);sector_erase(0x2200);byte_program(0x2200,PerPrice);}if((Trg&(1<<6))&&(flag==1)){StartPrice--;beep=0;}if((Trg&(1<<6))&&(flag==2)){PerPrice--;beep=0;}if((Trg&(1<<5))&&(flag==1)){StartPrice++;beep=0;}if((Trg&(1<<5))&&(flag==2)){PerPrice++;beep=0;}}if((Trg&(1<<4))&&(flag==0)){lcd_init();beep=0;f=!f;}}}void Count() interrupt 0{Val+=2;speed_count++;}void Timer2() interrupt 5{TF2=0;c++;if(c>=40){c=0;speed_c=speed_count;speed_count=0;}}void delay5s(void) //误差 0us{unsigned char a,b,c;for(c=165;c>0;c--)for(b=100;b>0;b--)for(a=150;a>0;a--);}二.12864驱动程序#ifndef _12864_H_#define _12864_H_#include <reg52.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned int/*TS12864A-3 端口定义*/#define LCD_data P0 //数据口sbit LCD_RS = P1^0; //寄存器选择输入sbit LCD_RW = P1^1; //液晶读/写控制sbit LCD_E = P1^2; //液晶并行使能控制sbit LCD_PSB = P2^7; //串/并方式控制#define delayNOP(); {_nop_();_nop_();_nop_();};void delay(int ms){while(ms--){uchar i;for(i=0;i<250;i++) //0.5ms{_nop_();_nop_();// _nop_();// _nop_();}}}/*写指令数据到LCD RS=L,RW=L,E=脉冲,D0-D7=指令码。

相关文档
最新文档