出租车计费系统.docx
- 文档编号:5682103
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:29
- 大小:363.97KB
出租车计费系统.docx
《出租车计费系统.docx》由会员分享,可在线阅读,更多相关《出租车计费系统.docx(29页珍藏版)》请在冰豆网上搜索。
出租车计费系统
摘要
现在各大中城市出租车行业都已普及自动计费系统,所以计费系统技术的发展已成定局。
而部分小城市尚未普及,但随着城市建设日益加快,象征着城市面貌的出租车行业也将加速发展,计费系统的普及也是毫无疑问的,所以未来汽车计费系统的市场还是十分有潜力的。
本人在本次设计中主要负责硬件工作。
本电路以AT89S51单片机为中心,附加A44E霍尔传感器测距(本电路中用模拟开关替代),实现对出租车计价,输出采用12864液晶显示,显示行驶总里程和总金额。
模拟出租车计费系统设计:
进行里程显示,预设起步价和起步公里数;行程按全程收费,有复位功能和启动功能,启动后,开始计价。
我们采用单片机进行设计,可以用较少的硬件和适当的软件相互配合来实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能,应用前景广阔。
关键字:
出租车计费系统,AT89S51单片机,光电开关,12864液晶显示
Abstract
Nowtheautomaticmileagefaremeterispopularizedineachbigormedia-sizedcitiestaxiprofession,thereforethedevelopmentofmileagefaremetertechnologyhasbeenaforegoneconclusion.Whileinpartsmallcitiesit’sunderused,butspeedingupdaybydayalongwiththeurbanconstruction,whichwillsymbolizetheurbanappearancetaxiprofessionthatwillacceleratetodeveloptoo.Andmileagefaremeter'spopularizationwillalsobewithoutadoubt;thereforethefutureautomobilemileagefaremeter'smarketwillhavethegreatpotential.
Inthisdesign,Iamresponsibleforthepartofhardware.ThiselectriccircuittakesAT89S51monolithicintegratedcircuitasacenterandthatoptoelectronicswitch(inthiselectriccircuittoreplacewithanalogswitch),whichrealizestherentalcarvaluation.Theoutputuses8sectionsofdigitaldisplaytubes,demonstratingthatgoesthetotalcourseandtheaggregateamount.Thedesignofsimulatedrentalcarmileagefaremeter:
thefaremetercandemonstratethecourseofrode,preinstallstartpriceandstartdistanceinkilometer.Thetravelingschedulerealizeschargeaccordingtotheentirejourney,attachingtheresetfunctionandthestartfunction.Thefaremeterstartsthevaluationafterthebeginning.Weusethemonolithicintegratedcircuittocarryonthedesignandusethelittlehardwareandthesuitablesoftwarecoordinationtorealizethedesignmutuallyandflexibly,furthermorewecancompletethemoreadditionalfunctionsthroughthesoftwareprogramsandtheapplicationprospectispromising.
Keywords:
Taximeter,Single-chipAT89S51,PowerPreservation,12864Display
第1章绪论
1.1引言
随着出租车行业的发展,出租车已经是城市交通的重要组成部分,从加强行业管理以及减少司机与乘客的纠纷出发,具有良好性能的计费系统对出租车司机和乘客来说都是很必要的。
我们知道,只要乘坐的出租车启动,随着行驶里程的增加,就会看到司机旁边的计费系统里程数字显示的读数从零逐渐增大,而当行驶到某一值时(如2KM)计费数字显示开始从起步价(如4元)增加。
当乘客到站时,按下停止按键,计费数字显示总里程和总金额,它可以很直观的反映用户使用情况。
1.2设计目的与要求
1.2.1设计目的
课程设计是将理论与实践相结合的教学环节,通过综合运用教材及其他资料,使所学知识得到进一步加深和扩展。
同时还培养设计能力和解决实际问题能力,进行基本技能的训练,进一步熟练AltiumDisegnerDXP,keilC等软件的操作。
本设计的目的是在学习51系列单片机的基础上,设计出符合要求的电路,从而实现设计产品的计价功能。
1.2.2主要设计内容及基本要求
利用AT89S51单片机,设计简单的出租车计费系统。
在出租车计费系统的总体设计中,本人主要负责出租车计费系统硬件设计。
其中主要的外围功能电路有:
电机驱动电路,按键控制电路,车轮圈数检测电路,时钟部分,12864液晶显示电路等。
通过对以上各功能的设计,制作出的出租车计费系统应具有以下功能:
上电时显示费率,通过按下启动按键来开始计价,12864液晶开始显示起步价和起步金额;直流电机转动,经光电传感器产生脉冲信号,模拟行驶的里程;12864液晶开始显示所走里程和所应付的金额,并逐渐增加;按下停止按键,停止计价,12864液晶显示所走总里程和用户所需付总金额,按下清零按键,12864液晶全显示零,以备下次计价。
1.3方案论证与比较
方案一:
采用模拟电路和数字电路设计的计费系统整体电路的规模较大,用到的器件多,造成故障率高,难调试。
采用数字电路控制,采用传感器件,输出脉冲信号,经过放大整形作为移位寄存器的脉冲,实现计价。
考虑到这种电路设计过于复杂,对于模式的切换需要用到机械开关,机械开关时间久了会造成接触不良,功能不易实现;性能不够稳定,电路也不实用。
方案二:
采用单片机进行的设计,相对来说功能强大,用较少的硬件和适当的软件相互配合可以很容易地实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能。
设计采用AT89S51单片机为主控器,以光电开关测距,实现对出租车的基本的计价设计,输出采用8段数码显示管。
利用单片机丰富的I/O端口,及其控制的灵活性,实现基本的计价功能。
系统结构图如下:
图1.1系统结构
通过比较以上两种方案,本人采用方案二实现出租车计费系统的功能。
本电路设计的计费系统能实现基本的计价功能,单片机计算总价的公式为:
总价=起步价+单价*(总里程-起步里程)。
AT89S51作为一个单片微型计算系统,灵活性高,其强大的控制处理功能和可扩展功能设计电路提供了很好的选择。
第2章系统硬件设计
2.1硬件设计说明
单片机是单片微型计算机的简称,单片机以其卓越的性能,得到广泛的应用,已经深入到各个领域。
在这次设计中,我们用到P0口和P2口,P0口为8位三态I/O口,此口为地址总线及数据总线分时复用;P2口为8位准双向口,与地址总线高八位复用;P0口和P2口都有一定的驱动能力,P0口的驱动能力较强。
设计电路时,考虑到用里程(霍尔)传感器价格昂贵,且不便于试验检测,在设计中采用一个光电开关来代替。
光电开关一端接在P3.2口,另一端接地,通过来回高低电平的变化,每按两次,对应的里程数加一。
通过在程序中设置的里程和金额的信息,在加上驱动电路的设计,就可以在12864液晶上分别显示总金额和总里程。
在显示方面,可以用数码管显示,也可以用12864液晶进行显示。
由于在这次设计中只需要显示里程和金额信息,我们采用12864液晶进行显示。
为了布线方便,我们选用了串口控制方式。
我们还设计了控制按键,能够很好的对出租车计费系统控制,如启动/停止按键,设置按键等。
2.2AT89S51单片机简介
AT89S51具有如下特点:
40个引脚,4kBytesFlash片内程序存储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
P0口有二个功能:
1、外部扩展存储器时,当做数据/地址总线。
2、不扩展时,可做一般的I/O使用,但内部无上拉电阻,作为输入或输出时应在外部接上拉电阻。
P1口只做I/O口使用:
其内部有上拉电阻。
P2口有两个功能:
1、扩展外部存储器时,当作地址总线使用。
2、做一般I/O口使用,其内部有上拉电阻。
P3口有两个功能:
除了作为I/O使用外(其内部有上拉电阻),还有一些特殊功能,由特殊寄存器来设置。
图2.1AT89S51引脚图图2.2AT89S51封装图
设计中用到的单片机各管脚(图2.1)功能介绍如下:
VCC:
接+5V电源。
VSS:
接地。
时钟引脚:
XTAL1和XTAL2两端接晶振和30PF的电容,构成时钟电路。
它可以使单片机稳定可靠的运行。
RST:
复位信号输入端,高电平有效。
当在此引脚加两个机器周期的高电平时,就可以完成复位操作。
P2.0:
接设置按键,控制计价。
P2.1:
接减小键。
P2.3:
接增加键。
P2.4:
接启动/停止按键
P2.6:
接12864液晶数据端。
P2.7:
接12864液晶时钟端。
P3.4(T0):
接光电传感器输出端。
2.3硬件电路设计
按下计价按键时,显示起步价和起步里程范围,这些在程序中设置;当等于或超过两公里后,按计算总价的公式为:
总价=起步价+单价*(总里程-起步里程)+1进行计价。
本设计中,默认起步价为7元,里程单价为3元/公里,当然这些数据可以在按键中改写,以满足不同时期价格调整的需要。
下图是通过在KeilC中编译通过,并生成Hex文件,AltiumDisegnerDXP中整体硬件原理图:
图2.3硬件原理图
2.4硬件组成
硬件组成主要包括:
车轮模拟电路、显示电路、复位电路、路程计数电路、时钟电路、按键电路。
2.4.1车轮模拟电路
车轮模拟电路是用一个直流电机来模拟车轮,滑动变阻器可以调节电机转动的快慢。
图2.4车轮模拟电路
2.4.2显示电路
显示电路可以用数码管或液晶显示,液晶显示可以显示得更全面,更美观,是以后显示的发展方向,所以在这里用12864液晶来显示,12864液晶有并口和串口控制两种方式,串口可以只用两根线就能控制12864液晶的显示,非常的方便,在这里为了布线方便,所以采取了串口控制方式。
电路如下图所示。
图2.612864显示电路
2.4.3复位电路
单片机的复位是由外部的复位电路实现的,复位电路通常采用上电自动复位和按钮复位两种方式。
上电自动复位是通过外部复位电路的电容充电来实现的。
除了上电复位外还需要按键手动复位(图2.8)。
按键手动复位有电平方式和脉冲方式两种。
其中电平复位是通过RST端经电阻与电源VCC接通而实现的。
单片机的复位速度比外围I/O接口电路为
能够保证系统可靠的复位,在初始化程序中应安排一定的复位延迟时间。
图2.7复位电路
2.4.5时钟电路
MCS-51单片机的各功能部件都是以时钟控制信号为基准,内部电路在时钟信号的控制下,严格地按时序执行指令进行工作,单片机本身如同一个复杂的同步时序电路,为了保证其各个部分同步工作,电路要在唯一的时钟信号控制下,严格地按照时序进行工作。
其实只需在时钟引脚连接上外围的定时控制元件,就可以构成一个稳定的自激振荡器。
为更好地保证振荡器稳定可靠地工作,谐振器和电容应尽可能安装得与单片机芯片靠近。
本设计中使用的振荡电路,由12MHZ晶体振荡器和两个约30PF的电容组成,在XTAL1和XTAL2两端跨接晶体,电容的大小不会影响振荡频率的高低。
在整个系统中为系统各个部分提供基准频率,以防因其工作频率不稳定而造成相关设备的工作频率不稳定,晶振可以在电路中产生振荡电流,发出时钟信号。
如图2.11所示。
图2.8时钟电路
2.4.6按键电路
按键控制电路中,设置按键接单片机的P2.0管脚,按下设置按键,P2.0为低电平,调用设置子程序,用于将费率的设置。
另外P2.21、P2.2为加减按键,控制行车单价、等车单价,起步价等的调整。
单片机的P2.3管脚接启动/停止按键,通过软件编程,当按下按键计数器开始工作,开始计价,再按一次为停止计价,再按一次重新计价。
图2.9按键电路
2.4.6光电开关电路
光电开关电路中,使用lm358作开环比较器,当光电开关红外头照射到黑线时,红外线被吸收,红外接收头等效电阻较大,与电阻分到的电压交大输出为0,否则输出为1,从而实现对中断的触发(本设计使用电机来模拟出租车的轮子,用光电开关检测接在电机轴上的纸片)。
图2.10光电传感器电路
第3章系统软件设计
3.1软件总体设计
51单片机的程序设计语言主要有两种:
一是汇编程序设计;二是C语言编程设计。
两种程序设计语言都有各自的优点。
用汇编语言编写和高级语言(C语言)比较起来节省空间,这样对于存储空间仅4Kb的芯片来说是极之有利的,51单片机能更高速的运行。
C语言编写的程序,虽然不象汇编那样速度快、但程序简单易行、并且需要较小的存储空间。
C语言作为一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。
此外,C语言程序还具有完善的模块程序结构,从而为软件开发中采用模块化程序设计方法提供了有力的保障。
因此,使用C语言进行程序设计已成为软件开发的主流。
本设计就是采用C语言编写的,由于采用模块化操作,使得程序在修改,执行的时候显得方便易行。
3.2系统程序设计
本设计中,软件设计采用模块化操作,利用各个模块之间的相互联系,在设计中采用主程序调用各个子程序的方法,使程序通俗易懂,我们设计了整体程序流程图。
在main函数编写开始,要进行初始化,包括对系统初始化和对存储器初始化,要对硬件设备进行初始化,并使硬件处于就绪状态。
通过判断是否计费,调价,清零等状态,来分别调用不同的子程序,使程序在设计之前,就有了很强的逻辑关系。
这些对应于硬件就是通过按下各个控制开关,来分别进行不同的动作,最后12864液晶根据输入的信息,来显示不同的数据信息,这就达到了软件控制硬件,同时输入信息控制输出信息的目的。
整个程序的流程图如下:
图3.1系统程序流程图
第4章系统调试
系统调试包括软件调试和硬件调试。
硬件调试的任务是排除所焊接电路故障。
软件调试是利用开发工具进行在线仿真调试。
调试的一般过程如图4.1所示:
图4.1系统调试流程图
系统调试的一般过程是上电运行后观察其运行状态,12864液晶是否显示正常等。
软件调试先是各个模块、各个子程序分别调试,最后进行系统联机调试。
4.1软件调试
4.1.1编程工具—C51语言
8051单片机的应用程序设计,使用C51语言进行程序设计虽然相对于汇编语言代码效率有所下降,但可以方便地实现程序设计模块化,代码结构清晰、可读性强,易于维护、更新和移植,适合较大规模的单片机程序设计。
近年来,随着C51语言的编译器性能的不断提高,在绝大多数应用环境下,C51程序的执行效率已经非常接近汇编语言,因此,使用C51进行单片机程序设计已经成为单片机程序设计的主流选择之一。
4.1.2程序调试工具—KEIL
本设计的软件都是在KeilμVision7.5上进行编写,编译,调试以及运行操作。
4.2硬件电路
设计的目的是做出实用的实物,把所用的元器件焊接成能正常工作的实物。
4.2.1电路元件检测
在焊接电路前,首先要进行元器件的检测。
检测主要是测出各个元器件的型号。
对于12864液晶的检测在显示电路中已介绍。
识别电阻时可根据各环的数量级和色码表,判断电阻的阻值。
排阻是将多个电阻集中封装在一起,组合制成的。
排阻具有装配方便、安装密度高等优点。
常用排阻有A型和B型。
A型排阻的引脚总是奇数的。
它的左端有一个公共端(用白色的圆点表示),常见的排阻有4、7、8个电阻,所以引脚共有5或8或9个。
B型排阻的引脚总是偶数的。
它没有公共端,常见的排阻有4个电阻,所以引脚共有8个。
排阻的阻值读法如下:
“103”表示:
10kΩ,“510”表示:
51Ω。
以此类推。
对于集成芯片的检测,就是根据它的管脚图,来识别各个引脚,以方便焊接。
4.2.2元件的焊接方法
手工焊接是传统的的焊接方法,虽然批量电子产品生产已较少采用手工焊接了,但在电子产品的维修、调试中不可避免地还会用到手工焊接。
焊接质量的好坏直接影响到维修效果。
手工焊接是一项实践性很强的技能,在了解一般方法后,要多练;多实践,才能有较好的焊接质量。
手工焊接握电烙铁的方法,有正握、反握及握笔式三种。
焊接元器件及维修电路板时以握笔式较为方便。
一、手工焊接一般分四步骤进行
①准备焊接:
清洁被焊元件处的积尘及油污,再将被焊元器件周围的元器件左右掰一掰,让电烙铁头可以触到被焊元器件的焊锡处,以免烙铁头伸向焊接处时烫坏其他元器件。
焊接新的元器件时,应对元器件的引线镀锡。
②加热焊接:
将沾有少许焊锡和松香的电烙铁头接触被焊元器件约几秒钟。
若是要拆下印刷板上的元器件,则待烙铁头加热后,用手或镊子轻轻拉动元器件,看是否可以取下。
③清理焊接面:
若所焊部位焊锡过多,可将烙铁头上的焊锡甩掉(注意不要烫伤皮肤,也不要甩到印刷电路板上!
),用光烙锡头沾些焊锡出来。
若焊点焊锡过少、不圆滑时,可以用电烙铁头"蘸"些焊锡对焊点进行补焊。
④检查焊点:
看焊点是否圆润、光亮、牢固,是否有与周围元器件连焊的现象。
二、焊接质量不高的原因
手工焊接对焊点的要求是:
①电连接性能良好;②有一定的机械强度;③光滑圆润。
造成焊接质量不高的常见原因是:
①焊锡用量过多,形成焊点的锡堆积;焊锡过少,不足以包裹焊点。
②冷焊。
焊接时烙铁温度过低或加热时间不足,焊锡未完全熔化、浸润、焊锡表面不光亮(不光滑),有细小裂纹(如同豆腐渣一样!
)。
③夹松香焊接,焊锡与元器件或印刷板之间夹杂着一层松香,造成电连接不良。
若夹杂加热不足的松香,则焊点下有一层黄褐色松香膜;若加热温度太高,则焊点下有一层碳化松香的黑色膜。
对于有加热不足的松香膜的情况,可以用烙铁进行补焊。
对于已形成黑膜的,则要"吃"净焊锡,清洁被焊元器件或印刷板表面,重新进行焊接才行。
④焊锡连桥。
指焊锡量过多,造成元器件的焊点之间短路。
这在对超小元器件及细小印刷电路板进行焊接时要尤为注意。
⑤焊剂过量,焊点周围松香残渣很多。
当少量松香残留时,可以用电烙铁再轻轻加热一下,让松香挥发掉,也可以用蘸有无水酒精的棉球,擦去多余的松香或焊剂。
⑥焊点表面的焊锡形成尖锐的突尖。
这多是由于加热温度不足或焊剂过少,以及烙铁离开焊点时角度不当造成的。
三、易损元器件的焊接
易损元器件是指在安装焊接过程中,受热或接触电烙铁时容易造成损坏的元器件,例如,有机铸塑元器件、MOS集成电路等。
易损元器件在焊接前要认真作好表面清洁、镀锡等准备工作,焊接时切忌长时间反复烫焊,烙铁头及烙铁温度要选择适当,确保一次焊接成功。
此外,要少用焊剂,防止焊剂侵入元器件的电接触点(例如继电器的触点)。
焊接MOS集成电路最好使用储能式电烙铁,以防止由于电烙铁的微弱漏电而损坏集成电路。
由于集成电路引线间距很小,要选择合适的烙铁头及温度,防止引线间连锡。
焊接集成电路最好先焊接地端、输出端、电源端,再焊输入端。
对于那些对温度特别敏感的元器件,可以用镊子夹上蘸有元水乙醇(酒精)的棉球保护元器件根部,使热量尽量少传到元器件上。
焊接过程要遵循以下原则:
焊接原则是先焊接小的元件,再焊接大的。
焊接过程要掌握烙铁的温度,以免温度过高损坏元器件。
焊接过程中要特别注意的几点:
(1)在焊接多引脚元件时最好焊接一个底座,这样可以避免器件烧坏。
(2)51单片机引脚较多,它与外围电路连接时,要特别注意,以免连焊、虚焊。
(3)有极性的电解电容,要注意其极性。
(4)焊接前先弄清各芯片引脚排列方式。
4.3硬件检测
设计的过程中,对硬件的检测和对软件的测试都不能忽略,因为在系统的仿真过程中。
各元件都是理想的,而在设计实际电路时,就需要多方面考虑。
要先对元件进行检测,然后进行调试。
例如如果在设计中不加任何驱动,在仿真软件中仍然可以正常计价,但是在具体硬件焊接时,需要考虑电路的驱动能力。
在已经焊接好的电路板上,要对其各个元器件进行检查。
一般情况下,集成电路不会出现故障。
在本设计中采用了先焊接插槽的方法,这可以避免一些元件在焊接的过程中被烧坏。
另外在焊接12864液晶时,要先排线,再焊接以免线路混乱。
元件在选购时需要多备选元件,元件的型号较多,产品质量没有可靠保证,就避免不了我们买的元器件是损坏的,再加上焊接是在万能板上焊接的。
就有可能发生虚焊,短路等情况的发生。
所以,在焊接好每个元件后都要进行检测,以保证焊接无误。
焊接好电路板,把相应的芯片插到对应的插槽中,再检一次,看芯片是否与插槽接触良好。
总结
在本次设计中,本人采用AT89S51芯片为核心器件,加上12864液晶显示。
设计出了简单的出租车计费系统,能够进行行车单价、等车单价、起步价的调节,行车单价和等车单价步进价格为0.1元,起步价和步进价格为1元,按键控制清零/计费,调价等。
在计费过程中,能够实时显示当前金额和当前里程,金额显示范围从起步价到99.99元,里程显示范围为0.0到99.9公里,在行车过程中能够按照行车单价进行计费,在等车过程中能够按照等车单价计费,实现了题目的所有要求。
选题后,本人便开始复习单片机方面的知识,也查阅、搜索了很多相关资料,进行总体设计与具体设计,同时也学习编程软件KeiC。
在设计开始,要形成流程图,它可以使设计有一定的逻辑性与严密性,使得设计思路明确。
采用模块化的设计思想很重要,它方便编写、修改与调试,另外加上必要的注释,便于交流与理解。
这次课程设计完成后,体会颇多,在学与做的过程中,取长补短,不断学习新的知识,吸取经验,达到进步的目的。
通过自身的努力以及相关图书资料的帮助,逐渐熟悉了KEIL和C语言等软件的使用以及硬件焊接与检测过程中的一些小技巧。
本次设计本人学习到不少单片机的知识,但由于自己的理论知识水平有限,实践知识和设计经验不足,在设计过程中难免存在一些问题。
所焊实物尚有许多不足,个别预期功能还不能很好的实现,主要原因是考虑问题不周全,电路设计经验少,实际动手能力不足。
恳请老师批
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 出租车 计费 系统