出租车计价系统的设计_第1页
出租车计价系统的设计_第2页
出租车计价系统的设计_第3页
出租车计价系统的设计_第4页
出租车计价系统的设计_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Goodisgood,butbettercarriesit.

精益求精,善益求善。Goodisgood,butbettercarriesit.

精益求精,善益求善。出租车计价系统的设计出租车计价系统的设计出租车计价系统的设计PAGEPAGEIVPAGEPAGE出租车计价系统的设计PAGE出租车计价系统的设计摘要本论文在掌握出租车计价器的相关理论知识的基础上,设计了一种基于单片机的智能化出租车计价器。在深入了解国内外相关技术研究现状之后,从硬件和软件两方面出发,完成了出租车计价系统的设计。本课题具有一定的现实意义。系统采用AT89C51单片机作为主控单元,实现时钟显示,里程统计和费用计算,语音播报,票据打印等功能,并且在液晶屏上显示信息。系统充分发挥人性化的特点,利用ISD1420的语音功能,配合TG12864E液晶模组,模拟实现带语音提示的出租车计价系统。比较真实地模拟出租车的空车、载客、到站及对各状况的费率的计算、统计、显示等功能。完成了系统的硬件设计,同时用C语言编写了源程序,对系统的软件进行了设计。系统所设计的由单片机控制的出租车计价器,为出租车行业提供了新的应用领域,使计费功能得到了完善。关键词:AT89C51单片机;TG12864E液晶模组;C语言PAGEIIIDesignofTaximeterSystemAbstractThispaperisonthedesignandfunctionofakindofintelligenttaximeterIdesignedbasedonMCU,accordingtorelevanttheoriesoftaximeter.Thistaximetersystemisdesignedfromthepointsofbothhardwareandsoftware,onthebasisofin-depthunderstandingofrelevantdomesticandforeigntechnologyresearch.Thisissuehasapracticalsignificance.AT89C51MCUusedasamaincontrolunit,thissystemhasthefunctionofdisplayingtheclock,mileagestatisticsandcost,voice-broadcasting,printingpapers,theinformationofwhichwillbedisplayedontheLCDscreen.Fromthepointofhardware,thissystemgivesthedriverandthepassengersrelevantinformationabouttheconditionsofthetaxiandthedifferentchargingratesandchargesondifferentconditionbysimulatinghumanvoicewiththevoicefuntionofISD1420,theTG12864ELCDmodules,andbysimulatingtherealcondition.Fromthepointofsoftware,thesystemisloadedwithprograminC-language.Thiskindoftaximeterprovidesanewapplicationareaforthetaxiindustryandimprovesthebillingfunctions.KeyWords:AT89C51MCU;TG12864ELCDModule;CLanguage目录出租车计价系统的设计 摘要 Abstract I引言 01.1出租车计价器的发展概况 11.2出租车行业的管理现状 11.3计价器设计需要解决的问题 22系统总体介绍 32.1系统组成 32.2系统各部分功能 32.2.1里程计量功能 32.2.2费用计算功能 42.2.3语音播报功能 42.2.4中文菜单显示功能 42.2.5实时时钟功能 52.2.6票据打印功能 52.2.7按键功能 53系统硬件电路设计 63.1控制单元及相关扩展电路设计 63.1.1AT89C51的引脚 63.1.2振荡器电路 73.1.3里程计算与计价单元的设计 93.1.4扩展存储器的设计 103.1.5扩展I/O接口的设计 133.2时钟模块 163.2.1DS12887时钟芯片的性能及引脚说明 163.2.2AT89C51与DS12887的接口设计 173.3语音播放模块 193.3.1ISD1420芯片的引脚功能及性能 203.3.2ISD1420芯片与AT89C51的接口电路 223.4液晶显示驱动模块 223.4.1TG12864E液晶模组的功能 233.4.2外形尺寸图 233.4.3结构框图 233.4.4模块的外部接口 243.4.5液晶显示驱动模块电路图 253.5票据打印模块 263.5.1打印机的选择 263.5.2主要技术性能及接口要求 273.5.3与单片机接口 283.6按键扫描模块 28图3.19按键扫描模块 284.1系统主程序及显示单元流程框图 294.2里程和费率计算子程序流程图 304.3键盘处理子程序流程图 30程序说明:电源上电后,系统执行相应按键的功能,如果按键K2被按下,执行判断工作方式=0命令,如果为真,则开始进入行驶状态,之后开始加速行驶,直到K4被按下,行驶减速按键,最后到站;如果K2未被按下,而是执行K4功能,则进入执行判断工作方式=2命令,进入减速行驶状态,直至到站,然后返回。 30结论 31参考文献 33附录A系统的硬件原理图 34附录B系统部分源程序 35//键盘处理程序 38附录C相关外文文献及译文 39致谢 45PAGE46PAGE44 引言随着科学技术的发展,计算机技术带来了科研和生产的许多重大飞跃,特别是单片机的应用已经渗透到生产和生活中的各个方面,有力的推动了社会的发展。单片机以其功能强、体积小、集成度高、功耗低、价格便宜、工作可靠、使用方便等特点,受到广大科技工作者的好评。随着性能的不断提高,单片机的应用范围越来越广,在计算机应用领域已占日益重要的地位。它的应用程度已经成为衡量一个国家科学技术水平的一项重要指标。出租车计价器就是单片机的一个典型的应用。现在市面上的出租车计价器品种繁多,功能强大。作为一个毕业设计的课题,本着从大处着眼,小处入手的原则,对单片机的应用做了一些初步的尝试和探讨。利用AT89C51单片机串行口、TG12864E液晶显示模块以及A44E霍尔传感器实现了出租车里程的计数和显示,与语音报价系统结合,初步实现了目前市面上的出租车计价器的一些基本功能。在这短短的3个月的时间里,在指导老师的悉心指导和自己的努力下,基本设计完成了这次毕业设计所要求的功能,实现了预期的目的。由于本人水平有限,时间也很仓促,所以其中难免有不足及错误之处,敬请老师给予批评和指正。

1绪论1.1出租车计价器的发展概况在我国,出租车行业是八十年代初兴起的一项新兴行业,随着出租车的产生,计价器也就应运而生。但当时在全国还没有一家企业能够生产,因而那个时期的计价器是由台湾引进。台湾是计价器的主要生产场地,目前全世界的计价器中有90%为台湾所生产。现今我国生产计价器的企业有上百家,主要是集中在北京、上海,沈阳和广州等地[1]。我国第一家生产计价器的厂家是重庆市起重机厂,最早的计价器全部采用机械齿轮结构,只能完成简单的计程功能,可以说,早期的计价器就是个里程表。随着科学技术的发展,产生了第二代计价器。它采用了手摇计算机与机械结构相结合的方式,实现了半机械半电子化。此时它在计程的同时还可以完成计价的工作。大规模集成电路的发展又产生了第三代计价器,也就是全电子化的计价器。它的功能也在不断完善。当单片机出现并应用于计价器后,现代出租车计价器的模型也就基本具备了,它可以完成计程、计价、显示、语音播报等基本工作。单片机以及外围芯片的不断发展促进了计价器的发展。出租车计价器在最初使用时具备的主要功能是根据行驶里程计价,要求精度高,可靠性好。随着电子技术的发展以及对计价器的不断改进和完善,便产生了诸多的附加功能。例如:LED显示功能:数码管的使用让计价器实现多屏显示的功能,可同时显示各项营运数据,使乘客一目了然;永久时钟功能:在非营运状态下,日历时钟芯片的使用可以使计价器显示永久时钟;存储功能:可存储多项营运数据,便于查询;语音功能:实现语音报价及语音提示等。此外,新型数据存储器的应用使得计价器的营运数据在掉电情况下还可以保存10年,功能大大提高。可以说,计价器的发展史在一定程度上反应了现代科技的发展史[2,3]。本系统解决了以往计价器计价不准确、使用寿命短等缺点,同时,可以随时对单片机的外围电路进行扩展,并通过软件编程实现本系统的不断升级。1.2出租车行业的管理现状在我国,经济尚处于发展阶段,由于人民的生活水平以及道路交通的限制,私家汽车的拥有率在短期内不会有较大提高,因此出租车扮演着重要角色。出租车计价器则是出租车上必不可少的重要仪器,它是负责出租车营运收费的专用智能化仪表。由于出租车数量的快速增长,出租车的行业管理也就产生了一系列问题。在我国的各大城市中,对出租车行业的管理方式归纳起来可以分为两大类:第一类管理模式是由出租车司机以向私人老板承包的方式进行的,司机只须每天向老板交纳一定的租赁费用,最终由老板按出租车数量向地方和国家缴纳一定的费用即可。因此这种管理模式相对简单,存在的问题也较多,主要体现在以下三点:1.税收严重流失;2.现有的出租车票据不统一;3.乘客与司机之间的纠纷问题。第二类管理模式是通过出租汽车公司实现对出租车的管理,如国外大城市以及国内的上海,北京等地就是采用这种方式。在这种管理模式中,出租车公司是以企业形象存在的实体,司机则是企业的雇员。出租车公司每天营运后应与车队结帐,车队定期向出租车总公司结帐,出租车总公司再向地方政府和国家缴纳各项税收。传统的缴纳方式采用的是现金方式,由于公司没有一种有效的方法掌握司机每天的营运状况,因此司机与公司之间的结帐是很难进行严格管理的,人们越来越觉得这种现金交易的不方便性和不严密性,因此提出了能够通过一种科学的手段实现对出租车行业的闭环管理[4]。1.3计价器设计需要解决的问题不同国家和地区的计费方式存在差异。有些地区有夜间收费及郊区收费等,而有些地区则无夜间收费和郊区收费;即使同一地区,不同车型的出租车,其计费方式也有差别;另一方面,出租车还面临几年一次的调价或调整计费方式等问题。因此,所设计的计费器不仅要能满足不同国家和地区的要求,而且计费方式的调整也应当很方便。由于个别地区对计价器有特殊要求,有时必须修改软件;另外,计价器还面临软件的升级。因而,所设计的计价器应能很方便地重新编程。同时,计价器必须要有防作弊功能,能有效防止司机作弊;此外要防止计价器在营运过程中死机[5]。2系统总体介绍随着我国交通事业的发展以及道路的不断改进,出租车作为人民生活密切相关的行业正在飞速发展壮大,而出租车计价器的市场也不断扩大。本设计课题正是在现有计价器的基础上进行改进,完成了新型的具有多功能的出租车计价系统的设计,同时解决了现有计价器存在的问题。2.1系统组成此出租车计价系统以单片机为系统核心,利用AT89C51单片机配合TG12864E液晶模组及ISD1420语音模块等,实现基本的出租车计价器功能。本系统是由AT89C51单片机、液晶显示、里程计数、系统实时时钟、语音输出、打印机等模块组成。系统框图如图2.1所示:AT89C51AT89C51单片机里程计算单元键盘控制驱动实时时钟(DS12887)语音输出(ISD1420)打印机(TPuP-40A)液晶显示(TG12864E)驱动驱动驱动图2.1系统功能框图Fig.2.1Functionalblockdiagramofsystem2.2系统各部分功能2.2.1里程计量功能(1)单片机对传感器输出脉冲进行计数,并将脉冲数换算成公里数;(2)每一个脉冲代表轮胎旋转一周,设轮胎直径为500㎜,则轮胎的周长为:1.571m,即每转一圈的距离。(3)每公里的脉冲数为:1000m/1.571m=636(个脉冲)2.2.2费用计算功能费用计算参照某市出租车收费标准,包括三部分:起步价、里程、等候时间[6]。(1)起步价:行驶里程在2.3公里(含2.3公里)以内按起步价7元计费。(2)里程:(根据行驶距离调整价格)①当行驶里程超出2.3公里并且小于35公里时,按2.6元/公里收费,这时行驶费用为:行驶费=起步价+2.6×(行驶里程-2.3)②当行驶里程超过35公里后,要加空驶费,即每公里升至3.50元,这时行驶费用为:行驶费=起步价+3.5×(行驶里程-2.3)(3)等候时间费用:只要堵车之类车停在那里,但是乘客仍然在车上,则采取时间收费,收费方式为:每停留3分钟(含3分钟以内)0.5元,超过3分钟则成倍增加。综上所述,每次乘车收费总金额为:总价=起步价+行驶费+等候时间费用。2.2.3语音播报功能(1)当初次按下“启动”键,出租车开始启动,系统播放“您好!欢迎乘坐本公司出租汽车,谢谢!”播送完毕,计价器开始计费。(2)按下“加速”键,出租车加速行驶,最高速为100公里。(3)按下“减速”键,出租车减速行驶,最低速为0公里。(4)在行驶状态下,按下“停止”键,表示出租车到站,结束行驶。这时候,系统播放“您好!行驶里程XXX公里,应付XXX元,请检查您的随身物品,欢迎再次乘坐,再见!”的提示音。(5)按下“复位”键,进入空车状态。2.2.4中文菜单显示功能(1)在空车状态下(启动前),LCD屏幕上显示如下的中文信息:2008年2008年ⅹⅹ月ⅹⅹ日ⅹⅹ时ⅹⅹ分ⅹⅹ秒<空车>(2)在空车状态下,按下“启动”键,系统播放“您好!欢迎乘坐本公司出租汽车,谢谢!”的提示音,同时在LCD屏幕上显示如下的中文信息:您好!您好!欢迎乘坐本公司出租汽车,谢谢!(3)播完提示音后,进入行驶状态,LCD屏幕显示以下信息:2008年2008年ⅹⅹ月ⅹⅹ日ⅹⅹ时ⅹⅹ分ⅹⅹ秒<有人>(4)在行驶状态,按下“加速”键,里程显示的公里数增加的速度会不断的变快,金额数值也在作相应的变化。按下“减速”键,里程显示的公里数增加的速度会不断的变慢。起步价:7.0元总里程:ⅹⅹⅹ.ⅹⅹ公里起步价:7.0元总里程:ⅹⅹⅹ.ⅹⅹ公里总金额:ⅹⅹⅹ.ⅹⅹ元同时,系统播放“您好!行驶里程xxx.xx公里,应付xxx.xx元,请检查您的随身物品,欢迎再次乘坐,再见!”的提示音。2.2.5实时时钟功能本系统采用实时时钟芯片DS12887作为时钟电路,产生/年/月/日/星期/时/分/秒等信号,供系统调用。2.2.6票据打印功能本系统通过设置票据打印,为乘客提供乘车信息,包括乘车时间,乘车里程,乘车费用等,方便乘客查询。2.2.7按键功能本系统一共设置5个按键:启动、加速、减速、停止、复位。其中加速键可使出租车的速度由0公里上升到100公里,减速键使出租车的速度由100公里下降到0公里,而复位键则使出租车进入空车状态。3系统硬件电路设计本出租车计价系统的硬件结构主要由以下几个部分组成的:控制单元模块(AT89C51单片机系统)、实时时钟模块、语音播放模块、液晶显示驱动模块、票据打印模块、按键扫描模块等。下面做详细的介绍。3.1控制单元及相关扩展电路设计控制单元模块:即AT89C51单片机系统,包括系统初始化、脉冲的产生、里程的识别和费率的计算、各功能模块的的组织和管理等。控制单元模块在系统中起着重要的作用。AT89C51是一种低电压高性能CMOS8位单片机,可以和MCS-51产品指令系统完全兼容,其基本特性如下:有128字节的片内RAM,32个可编程I/O端口,两个16位定时/计数器,一个5向量两级中断结构,允许6个中断源,一个全双工串行通信口,片内振荡器及时钟电路。同时,其全静态逻辑的工作频率范围为0~24MHz,并且支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其他所有部件工作直到下一个硬件复位[7]。3.1.1AT89C51的引脚制造工艺为CHMOS的MCS—51系列单片机都采用40引脚的双列直插封装(DIP)方式,在40条引脚中有两条用于电流的引脚,两条外接晶体的引脚,4条控制或其它电源复用的引脚,32条I/0口,具体见下图3.1:图3.1AT89C51引脚Fig.3.1PinofAT89C51(1)主电源引脚Vss和Vcc:Vcc接+5V电源(2)外接晶体引脚XTAL1、XTAL2:XTAL1为内部振荡电源电路反相放大器的输入端,是外接晶体的一个引脚,当采用外接晶体时,此引脚接地。XTAL2为内部振动的反相放大器的输出端,是外接晶体的另一端,当采用外接晶体时,此引脚接振荡器。(3)控制或其它电源复位引脚RET/Vpd、ALE/和/Vpp。此外,MCS—51系列有四个8位并行I/O口共32根I/0线,每个口均为双向口,用P0—P3表示,每个口都有一个8位的锁存器,复位后,他们的状态全为“1”。P0口,双向8位漏极开路型双向I/0口,在访问外部存储器时,它是分时传送的,低字节地址和数据总线P0口能以吸引电流的方式驱动八个LSTTL负载。P1口,8位并行输入/输出口,也是一个准双向口带有内部提升电险,它能驱动(吸收或输出电流)四个LSTTL负载。P2口,是一个带有内部提升电阻的8位准双向I/0口,在访问外部存储器时它输出高八位地址,P2口可以驱动四个LSTTL负载。P3口,是一个带有内部提升电阻的8位双向I/0口,能驱动四个LSTTL负载,此外P3口还用于第二功能,详见下表3.1引脚功能。表3.1AT89C51的P3口引脚功能表Tab.3.1MenuofP3mouthofAT89C51端口引脚第二功能P3.0(串行输入口)P3.1(串行输出口—)P3.2(外部中断0输入线)P3.3(外部叫断1输入线)P3.4(定时器0外部输入)P3.5(定时器1外部输入)P3.6(外部数据存储器写选通信号输出)P3.7(外部数据存储器读选通信号输出)3.1.2振荡器电路(1)外部晶振的选用:AT89C51的内部有一个用于构成振荡器的高增益反相放大器。该高增益反相放大器的输入端为芯片引脚XTAL1,输出端为引脚ATAL2。这两个引脚跨接石英晶体振荡器(简称晶振)和微调电容,就构成一个稳定的自激振荡器。可取C1=C2=30PF,具体的接法如下图3.2所示:图3.2外部晶振电路Fig.3.2ExternalcrystalcircuitAT89C51的工作频率范围在0~24MHz。在此选用的是12MHz的晶振,振荡周期为1us,机器周期为1us,所以这个晶振可以满足这个系统的要求。晶振的频率越高,则系统的时钟频率也就越高,单片机的运行速度也就越快。但反过来运行速度快对存储器的速度要求越高,对印制电路板(也称印刷电路板)的工艺要求也高,即要求鲜见的寄生电容要小。为了提高温度稳定性,应采用温度稳定性能好的电容[8]。(2)振荡器电路原理BUSYBUSY状态时钟时钟发生器P2P1foscRf400欧振荡器XTAL2XTAL1C2C1&Q÷2Q÷3机器周期÷6ALE图3.3振荡器工作原理Fig.3.3Principleofoscillator单片机内含振荡器电路,但晶体振荡器和电容在片外,由引脚XTAL1和XTAL2连接到片内。XTAL1为振荡器反相放大器和时钟发生电路的输入端,XTAL2为反相放大器的输出端。振荡器电路工作原理如图3.3所示。片内时钟发生器实质上是个2分频的触发器,其输入来自振荡器(fosc),输出为2相时钟信号,即状态时钟信号,其频率为fosc/2;状态时钟3分频后为ALE信号,其频率为fosc/6;状态时钟6分频后为机器周期信号,其频率为fosc/12。振荡器的工作可以由特殊功能寄存器PCON中的PD为控制。当PD=1时,振荡器停止工作,系统进入低功耗工作状态。3.1.3里程计算与计价单元的设计里程计算是通过安装在车轮上的霍尔传感器A44E检测到的信号,送到单片机,经处理计算,送给液晶显示单元的[9]。其原理如图3.4所示。传传感器小磁铁车轮耦合滤波整形AT89C51单片机P3.2图3.4传感器测算里程原理图Fig.3.4Schematicofsensorscalculatingmileage由于A44E属于开关型的霍尔器件,其工作电压范围比较宽(4.5V~18V),其输出的信号符合TTL电平标准,可以直接接到单片机的I/O端口上,而且其最高检测频率可达到1MHz。当车灯为重车状态时(低电平),计价器开始工作。传感器的输出信号经5021光电耦合器后,再经电容滤波及74HC14芯片整形,送单片机的P3.2口(INT0)作为信号的输入端。采用外部中断0,车轮每转一圈(设车轮的周长是1.571m),霍尔开关检测并输出一个脉冲信号,引起单片机的中断,对脉冲计数。当计数达到1000次时,也就是1571m,单片机将金额增加,其计算公式:当前单价×公里数=金额。不同车型的车轮直径可能不一样,通过软件设置车型,对不同车轮直径的车进行调整。其集成霍尔开关外形及接线如图3.5所示。图3.5集成霍尔开关外形及接线图Fig.3.5IntegratedHallswitchappearanceandwiringdiagram3.1.4扩展存储器的设计MCS—51系列单片机由于其芯片结构引脚等原因,单片机内ROM、RAM等功能部件的数量在使用时往往感到不够,因此需要在片外进行扩展,以满足实际系统的需要。现在大容量的EPROM存储器发展很快,价格也日趋便宜,采用大容量8KB以上存贮器比采用小容量的更为适宜。其典型产品有:2716、2732、……27512等,由于这次设计采用的是AT89C51里边带有一块8k的EPROM,所以不需再扩展EPROM,而考虑到这次设计所要完成的功能,需扩展一片2817A芯片作为储存之用。[10](1)2817A存储芯片简介2817A存储芯片的容量规格是:2K×8。芯片外形是28条引脚双列直插式。单一5V工作电源支持读出和写入操作。读出时间不超过250纳秒,写入时间10毫秒。图3.62817A引脚Fig.3.6Pinof2817AA10~A0:11条地址线D7~D0:8条数据线CE:片选输入控制线,低有效。OE:读出控制,低有效。WE:写入(编程)控制,低有效。RDY/:编程状态指示。高电平表示可以写入,低电平表示需要等待。下表为2817A的工作方式:表3.22817A的工作方式Tab.3.2Methodsofworkof2817ACEOEWEBUSYA10~A0D7~D0功能说明1ⅩⅩ高阻高阻高阻静态隔离001高阻输入地址输出数据读出数据0100输入地址输入数据编程写入(2)AT89C51外扩2817A的设计图3.72817A与AT89C51接口电路图Fig.3.7Interfacecircuitof2817AandAT89C512817A与AT89C51单片机的硬件连接图如图3.7所示。在图3.7中,2817A既可作为外部的数据存储器,又可作为程序存储器。AT89C51通过P1.0查询2817A的RDY/引脚状态来完成对2817A的写操作。2817A的片选信号由P2.7提供,在系统中有其他ROM和RAM存储器时,需统一考虑编址问题。连线说明:①地址线。图3.7中,2817A的11条地址线(A0~A10,容量为2K×8位,211=2×1024=2K)中的低8位A0~A7通过锁存器74LS373与P0口连接,高3位A8~A10直接与P2口的P2.0~P2.2连接。②数据线。2817A的8位数据线直接与单片机的P0口相连。③控制线。单片机与2817A的控制线连接采用了将外部数据存储器空间和程序存储器空间合并的方法,使得2817A既可以作为程序存储器使用,又可以作为数据存储器使用。单片机中用于控制存储器的管脚有以下三个:——控制程序存储器的读操作,执行指令的取指阶段和执行MOVXA,@A+DPTR指令时有效;——控制数据存储器的读操作,执行MOVX@DPTR,A和MOVX@Ri,A时有效;——控制数据存储器的写操作,执行MOVXA,@DPTR和MOVXA,@Ri时有效。④:直接接地。由于系统中只扩展了一个程序存储器芯片,因此片选端直接接地,表示2817A一直被选中。⑤:AT89C51的程序存储器读选通信号和数据存储器读信号经过“与”操作后,与2817A的读允许信号相连。这样,只要其中一个有效,就可以对2817A进行读操作。也就是说,对2817A既可以看作程序存储器取指令,也可以看作数据存储器读出数据。⑥:与AT89C51的数据存储器写信号相连,只要执行数据存储器写操作指令,就可以往2817A中写入数据。⑦:与AT89C51的P1.0相连,采用查询方法对2817A的写操作进行管理。2817A在擦、写操作期间,脚为低电平,当字节擦、写完毕时,为高电平。其实,检测2817A写操作是否完成也可以用中断方式实现,方法是将2817A反相后的与AT89C51的中断输入脚相连。当2817A每擦、写完一个字节,便向单片机提出中断请求。图3.7中,2817A的地址范围是0000H~07FFH(无关的管脚取0,该地址范围不是惟一的)。按图3.7连接好后,如果只是把2817A作为程序存储器使用,使用方法与EPROM相同。EEPROM也可以通过编程器将程序固化进去。如果将2817A作为数据存储器,读操作与使用静态RAM一样,直接从给定的地址单元中读取数据即可。向2817A中写数据采用MOVX@DPTR,A指令。3.1.5扩展I/O接口的设计在单片机应用系统中,单片机本身所提供的资源如I/0口,定时器/计数器,串行口等往往不能满足要求,因此需要在单片机上扩展其它外部接口芯片[11]。(1)采用8255扩展I/O口8255和MCS-51相连,可以为外设提供三个8位的I/O端口:A口、B口和C口,三个端口的功能完全由编程来决定。以下为8255的引脚排列及接口功能:①A口、B口和C口。A口、B口和C口均为8位I/O数据口,但结构上略有差别。A口由一个8位的数据输出缓冲/锁存器和一个8位的数据输入缓冲/锁存器组成。B口由一个8位的数据输出缓冲/锁存器和一个8位的数据输入缓冲器组成。三个端口都可以和外设相连,分别传送外设的输入/输出数据或控制信息。②A、B组控制电路。这是两组根据CPU的命令字控制8255工作方式的电路。A组控制A口及C口的高4位,B组控制B口及C口的低4位。图3.88255的引脚Fig.3.8Pinof8255③数据缓冲器。这是一个双向三态8位的驱动口,用于和单片机的数据总线相连,传送数据或控制信息。④读/写控制逻辑。这部分电路接收MCS-51送来的读/写命令和选口地址,用于控制对8255的读/写。⑤数据线(8条):D0~D7为数据总线,用于传送CPU和8255之间的数据、命令和状态字。⑥控制线和寻址线(6条):RESET为复位信号,输入高电平有效。一般和单片机的复位相连,复位后,8255所有内部寄存器清0,所有口都为输入方式。和分别为读/写信号线,输入低电平有效。当为0时(必为1),所选的8255处于读状态,8255送出信息到CPU,反之亦然。为片选线,输入低电平有效。A0、A1为地址输入线。当=0,芯片被选中时,这两位的4种组合00、01、10、11分别用于选择A、B、C口和控制寄存器。⑦I/O口线(24条):PA0~PA7、PB0~PB7、PC0~PC7为24条双向三态I/O总线,分别与A、B、C口相对应,用于8255和外设之间传送数据。⑧电源线(2条):VCC为+5V,GND为地线。(2)8255与AT89C51的接口电路8255和单片机的接口十分简单,只需要一个8位的地址锁存器即可。锁存器用来锁存P0口输出的低8位地址信息。图3.9为8255扩展电路。图3.9AT89C51和8255的接口电路Fig.3.9Interfacecircuitof8255andAT89C51连线说明:①数据线:8255的8根数据线D0~D7直接和P0口一一对应相连就可以了。②控制线:8255的复位线RESET与AT89C51的复位端相连,都接到AT89C51的复位电路上(在图3.9中未画出)。8255的和与AT89C51的和一一对应相连。③寻址线:8255的和A1、A0分别由P0.7和P0.1、P0.0经地址锁存器74LS373后提供,当然的接法不是惟一的。当系统要同时扩展外部RAM时,就要和RAM芯片的片选端一起经地址译码电路来获得,以免发生地址冲突。④I/O口线:可以根据用户需要连接外部设备。(3)采用8155扩展I/O口Intel8155芯片内容含有256B的RAM存储器(静态),RAM的存取时间为400s。2个可编程的8位并行口PA和PB,1个可编程的6位并行PC,以及1个14位减法定时器/计数器。PA口和PB口可工作与基本输入/输出方式(同8255的方式0)或选通输入/输出方式(同8255的方式1)。8155可以直接与MCS-51单片机相连,不需要增加任何硬件逻辑。由于8155既有I/O口又具有RAM和定时器/计数器,因而是MCS-51单片机系统中常选用的外围接口芯片之一[12]。8155的内部结构如下:①容量为256B×8位的静态RAM②I/0接口部分:端口A,可编程8位I/0端口PA0—7;端口B,可编程8位I/0端口PB0—7;端口C,可编程6位,I/O端口PC0—5;命令寄存器,8位寄存器,只允许写入;状态寄存器,8位寄存器,只允许读出。③定时器/计数器部分:8155是一个14位的二进制减法定时器/计数器。8155具有40个引脚,采用双列直插式封装,各引脚功能如下:①AD0~AD7(三态):是地址/数据总线,可以直接与AT89C51的P0口相连接。②RESET:是由AT89C51提供的复位信号,作为总清零器件使用。③ALE:允许地址锁存信号,该控制信号由AT89C51发出,将AD0~AD7上的低8位地址片选信号及信号锁存在片内的锁存器内。④:片选信号,这是一个I/0转接口或存储器的选择信号。在片选信号有效下,如该引脚输入一个低电平,则将8155RAM某单元的内容读至数据总线。若输入一个高电平,则将某I/0转接口电路的内容读至数据总线。⑤PA0~PA7:一组8根通用的I/0端口线,其输入输出方向由可编程的命令寄存器内容决定。PB0~PB7:一组8位的通用I/0端口,其数据输入输出方向由可编程序的命令寄存器内容决定。PC0~PC5:这是一组既具有通用I/0端口功能又具有对PA和PB起某种控制作用的I/0电路。图3.10AT89C51和8155的接口电路Fig.3.10Interfacecircuitsof8155andAT89C51⑥TIMERIN:这是14位二进制减法计数器的输入端。TIMEROUT:这是一计时器的输出引脚可由计时器的工作方式决定该输出信号的波形。⑦Vcc为+5V的电源引脚,Vss为+5V的电源的地线。3.2时钟模块采用日历时钟芯片DS12887构成计时系统,该芯片内部具有非易失性计时时钟,114个字节的NVSRAM,14个专用寄存器分别存放秒,分,时,星期,日,月,年等时间和日期数据。同时还有百年日历,写保护电路,方波发生器。所以一方面它可完成计时功能;另一方面它内部的日历数据,如年,月,日等,还可作为营运数据保存。最后,日历时钟芯片内部的NVSRAM区增加了数据存储器的数量。由于芯片内嵌锂电池,在外部电源断电的情况下,数据可保持10年不变。该芯片设置为每秒钟向主机发中断请求,在中断处理程序中,若是空车状态,就取时钟数据,若是重车状态,就计等候时间。[13]3.2.1DS12887时钟芯片的性能及引脚说明(1)DS12887的主要性能如下:①具体时钟、闹钟功能及到2100年的日历功能,可选择12小时制或24小时制计时,有AM和PM、星期、夏令时制时间操作及闰年自动补偿等功能。②DS12887内部有14个寄存器,包括10个时标寄存器、4个状态寄存器。还有114B作掉电保护用的低功能耗RAM。③具有用软件编程选择的周期性终端方式和多频率输出的方波发生器功能。④该芯片可以满足各种不同的待机要求,最长达24小时。⑤可选择二进制或BCD码来表示时间。⑥工作电压:+4.5~+5.5V。⑦工作电流:7~15mA。⑧工作温度范围:0~+(2)引脚说明如下:①MOT:计算机总线选择端(接低电平为总线方式)。②SQW:方波输出,是否输出以及速度由专用寄存器A、B预置参数决定。③AD7~AD0:地址/数据(双向)总线,由ALE信号的下降沿锁存8位地址。④:写数据控制信号端,低电平有效。⑤ALE:地址锁存信号端。⑥:数据读控制信号端,低电平有效。⑦:片选信号端,低电平有效。⑧:中断申请端,低电平有效,有专用寄存器决定。⑨:复位端,低电平复位⑩NC:空闲端。图3.11DS12887的引脚Fig.3.11PinofDS128873.2.2AT89C51与DS12887的接口设计(1)DS12887的初始化DS12887采用联系工作制,一般无须每次都初始化,即使是系统复位时也如此。但初始化,首先应禁止芯片内部的更新周期操作。所以应先将DS12887状态寄存器B中的SET位置1,然后初始化00H~09H时标参数寄存器和状态寄存器A。此后,在通过读状态寄存器C,清除寄存器C中的周期中断标志位PF、报警中断标志AF、更新周期结束中断标志位UF。寄存器D中的VRT位在读操作后将自动置1。最后将状态寄存器B中的SET位置0,芯片开始计时工作。[14](2)时钟单元的使用DS12887共有3个闹钟单元,分别为时、分、秒闹钟单元。在其中写入闹钟时间值并且在时钟中断允许的情况下,每天到该时刻就会产生中断申请信号。但这种方式每天只提供1次中断信号。另一种方式是在闹钟单元中写入“不关心码”:即在时闹钟单元写入C0H~FFH之间的数据,可每分钟产生1次中断。但这种方式也只是在整点、整分、或每秒产生1次中断。若控制系统要求的定时间隔不是整数时,应该通过软件来调整实现。(3)接口电路图3.12是AT89C51单片机与DS12887的接口电路(其中片选地址=#0D00H)。图3.12AT89C51与DS12887的接口电路Fig.3.12InterfacecircuitofDS12887andAT89C51DS12887状态寄存器的参数设置如下:状态寄存器A置为20H,它表示采用的时钟频率为32678Hz,禁止引脚SQW输出;状态寄存器B置为22H,它表示允许报警中断,禁止其他中断,为24小时制模式,时标寄存器内容用BCD码表示,禁止方波输出和夏时制服务。如果要求定时间隔为1~59s的中断申请,那么报警寄存器置FFH,这就表示报警时标处于不关心状态。(4)中断功能说明为了使芯片的功能更加完善,DS12887内部设置了3个独立的中断源,包括定时中断,周期中断以及校准中断。定时中断的设置在上文中已经阐述了,它所引起的中断频率可以从每秒钟产生一次至每天产生一次。对于这3个中断,寄存器B及寄存器C都有相应的控制位来分别控制这3个中断的产生。在寄存器B中,有3个中断使能位,当需要使用某个中断产生中断信号时,必须先将相应的中断使能位置1,芯片才能允许相应的中断信号从IRQ端输出,若在中断使能位写入0,则禁止相应的中断信号产生。在寄存器C中,有3个中断标志位,与3个中断源是一一对应的。当某个中断发生时,相应的中断标志位被自动置1,须注意的是,这些中断标志位与对应的中断使能位的设置是不相关的,当中断使能位设置为0时,虽然不产生中断信号,但当中断的条件满足时,中断标志就会被置1。所以,中断标志位是一种状态位,用户可通过软件查询这些状态位,当某个中断标志位是1时,表示此中断已经产生了一次。每读取一次寄存器C的内容后,这些标志位都会被清0。当某个中断标志位及中断使能位都为有效时,才会使IRQ脚产生有效信号(低电平)。在出租车计价器中,日历时钟芯片工作于校准中断方式。[15,16]对于校准中断,日历时钟芯片DS12887内部具有一个时钟电路,它在每秒钟都会产生一个校准信号来校准寄存器中的日历和时钟数据。在校准周期中,同样会将定时单元中的数据与相应的时钟单元数据进行比较,若二者相同,则发出定时到的信号。在内部电路进行时钟校准时,不能对时钟及日期寄存器进行访问,否则会打乱寄存器中的数据。为了避免这种情况的产生,可以采取两种方法:

第一种方法是采用校准中断。如果校准中断开放,则在每一个校正周期结束后都会发出中断信号,表明有多于999MS的时间可用于读取有效的时钟及日历数据。在中断响应完毕后,必须读取寄存器C,将中断标志清0。

第二种方法是将寄存器A中的校准标志位UIP来判断校准周期是否正在进行中。在寄存器A中有一个校准进行标志位UIP,它是一个状态标志位,它在每秒针产生一个高电平。当它为1时,表明校准周期马上要进行,此时不能读取时钟及日期数据;当它为0时,表明有244微秒的时间可用来读取数据,因此中断服务程序读取数据时应避免超过244微秒。3.3语音播放模块现代仪器仪表越来越智能化,其中的一个重要标志是仪器仪表的语音功能。现在的出租车计价器已经具备了语音的功能,如:当乘客上车时,可以语音报价并问好,当乘客下车时,语音提示结帐等。但随着出租车数量的增长,一些有广告意识的企业希望能在出租车上用语音功能做广告宣传。这样必须分析现有的语音功能是如何实现的,探索出一条语音数据的采集及处理方法。考虑到计价器产品的微型化、智能化,语音芯片采用了集成度较高的ISDl420芯片,其最大特点是采用EEPROM进行模拟信息直接存取而不必经过A/D和D/A转换。它内部带有话筒放大器、自动增益控制时钟、扬声器驱动电路等,采用+5V电源供电。在此我选择了ISD1420语音芯片完成这部分的功能。[17]3.3.1ISD1420芯片的引脚功能及性能ISD1420芯片的引脚如图3.13所示。下面介绍各引脚名称及作用。电源(VCCA,VCCD):为芯片的模拟和数字的正电源端,芯片内部的模拟和数字电路采用不同的的电源总线,最好分别走线,并且分别引到外封装上,尽可能在靠近电源处再相连,去耦电容应尽量靠近芯片,这样可使噪声最小。地线(VSSA,VSSD):为芯片的模拟和数字地线,芯片内部的模拟和数字电路也使用不同的地线,这两个引脚最好在引脚焊盘上相连。图3.13ISD1420的引脚Fig.3.13PinofISD1420录音():低电平有效。只要变低(不管芯片处在节电状态还是正在放音),芯片即开始录音。录音期间,必须保持为低。变高或内存录满后,录音周期结束,芯片自动写入一个称为EOM的信息结束标志,使以后的重放操作可以及时停止,之后芯片自动进入节电状态。边沿触发放音():此端出现下降沿时,芯片开始放音。放音持续到出现EOM标志或内存结束,之后芯片自动进入节电状态。开始放音后,可以释放。电平触发放音():此端从高变低时,芯片开始放音。放音持续至此端回到高电平,或遇到EOM标志,或内存结束。放音结束后芯片自动进入节电状态。话筒输入(Mic):此端与片内麦克风前置放大器相连,可以放大1mV~20mV范围内的信号。内部的增益可控放大器输入阻抗最大增益24dB。一般柱极体话筒给出的电平足够驱动该放大器。外接话筒应通过串联电容耦合到此端。录音指示():处于录音状态时,此端为低,可驱动LED。此外,放音遇到EOM标志时,此端输出一个低电平脉冲。话筒参考(MicRef):此端是话筒输入参考端。当以差分形式连接话筒时,可减小噪声,提高共模抑制比。如果不用,应该悬空。自动增益控制(AGC):AGC引脚与内部自动增益放大器相连,它的输出电平可使前置放大器的增益自动调节以便维持进入滤波器的信号为最佳电平,这样可使录制变化很大的音量时失真都能保持最小。AGC电路的特征由两个时间常量来描述,即相应时间和释放时间。模拟输出(AnaOut):此端为前置放大器输出。前置电压增益取决于AGC端的电平。在典型应用中,这个输出由电容耦合到模拟输入(AnaIn)脚。模拟输入(AnaIn):此端为模拟输入引脚,它与片内输入阻抗约为的输入放大器相接。当用话筒输入时,连接模拟输入和模拟输出的耦合电容确定了这部分电路的频响下限。在工作电压为4.5V~6.5V时,通常用电阻与耦合电容串联,以稍稍降低共给储存阵列的电压,从而防止失真,当然这也是频率有一点变化。其他音源可通过电容耦合直接连至本端。喇叭输出(SP+,SP-):这两个输出引脚能直接驱动以上的喇叭,选用喇叭时功率约为12.5mW。单端使用时必须在输出端和喇叭间接耦合电容,而双端输出及不用电容又能将功率提高至4倍。录音时,它们都呈高阻态;节电模式下,它们保持为低电平。表3.3ISD1420性能对照表Tab.3.3performancetableofISD1420型号时间/s输入采样频率/KHz地址分段数信息分辨率/ms外部时钟频率/KHzISD1420206.4160125819.2外部时钟(XCLK):芯片内部已经有采样时钟,并且在出厂前已调校,可保证标称的最小录放时间。若要求更高精度或系统同步,可从本端输入外部时钟,频率如表3.5“外部时钟频率”所示。由于内部的频率防混叠及平滑滤波器已设定,故上述推荐的时钟频率不应改变。对输入时钟的占空比没有要求,因为内部已经进行了分频。此端内部有下拉电阻,不用外部时钟时应接地。地址(A0~A7):地址端共有8路,可以寻256个地址,有两个作用,取决于最高(MSB)两位A7、A6的状态。当A7或A6有一个为0时,所有输入均为地址位,作为当前录放操作的起始地址。当A7和A6均为1时,低5位用于选择操作模式。所有输入地址端只能输入,地址在、或的下降沿锁存。3.3.2ISD1420芯片与AT89C51的接口电路语音模块与主系统的接口如图3.14所示。设计过程中,先将固定语音部分(上、下车用语)信息存储到ISDl420内部的不同起点地址中。营运过程中根据上、下车的不同营运状态来实现不同语音功能播放。语音芯片工作时,系统首先将主程序指针转入放音处理程序,根据发音地址寻找ISDl420中的发音单元,然后将信号送到扬声器发出声音。主CPU完成送音程序后,立刻转入其他子程序。图3.14ISD1420与AT89C51连接图Fig.3.14ConnectiondiagramofISD1420andAT89C513.4液晶显示驱动模块计价器在工作当中,所计量的数据,如单价,候时,车资等均应显示给乘客,使乘客一目了然。这样,在计价器的设计当中,就需要加入显示系统。本设计采用LCD液晶显示,满足多功能多样化显示,且可靠性强。3.4.1TG12864E液晶模组的功能TG12864E是一种图形点阵液晶显示器,它主要由行驱动器/列驱动器及128×64全点阵液晶显示器组成。可完成图形显示,也可以实现8×4个(16×16点阵)汉字。[18]主要技术参数和性能:电源:VCC:+2.7~+5V:模块内自带-10V负压,用于LCD的驱动电压;显示内容:128(列)×64(行)点,全屏幕点阵;七种指令,与CPU接口采用8位数据总线并行输入输出和8条控制线,占空比1/64;工作温度:-10℃~+60℃,储存温度:-20℃~+70℃,可选择宽温:-20℃~+70℃。3.4.2外形尺寸图TG12864E液晶模组的外形尺寸祥见图3.15所示:图3.15TG12864E外形尺寸Fig.3.15DimensionofTG12864E3.4.3结构框图TG12864E的结构框图如图3.16所示:KCLK1,CLK2,KCLK1,CLK2,FRMM,CL2D/I,R/W,E/RETDB0-DB7AIC2IC1LCDPANEL128×64dotsIC3LED646464CS图3.16TG12864E的结构Fig.3.16StructureofTG12864E引脚说明:PA口:数据及指令PD4,PD5,PD6,PD7DB3:RS端口(H:数据信号L:指令信号)DB4:R/W端口(H:读模式L:写模式)DB5:E端口(H:输出数据H→L:锁存数据)DB6:背光控制DB7:RET低电平复位其中,背光功能如表3.4所示:表3.4TG12864E的背光功能Tab.3.4BacklightofTG12864E背光方式背光颜色背光电流LED背光黄绿色110mA3.4.4模块的外部接口外部接口信号如下表3.5所示:表3.5TG12864E的外部接口Tab.3.5ExternalinterfaceofTG12864E管脚号管脚名称LEVER管脚功能描述1VSS0V电池地2VDD5.0V电源电压3V0--液晶显示驱动电压输入4D/IH/LD/I=H,表示DBO~DB7为显示数据,=L,则为显示指令数据5R/WH/LR/W=H,E=H,数据被读到DB0~DB7,若=L,数据被写到IR或DR6EH/L使能信号:R/W=L,E信号下降沿锁存DB0~DB77DB0H/L数据线8DB1H/L数据线9DB2H/L数据线10DB3H/L数据线11DB4H/L数据线12DB5H/L数据线13DB6H/L数据线14DB7H/L数据线15PSBH/LH:串行模式,L:并行模式16NCH/L17/RSTH/L复位信号18NC--19LEDK0V背光接地20LEDA+5.0V背光电源+3.4.5液晶显示驱动模块电路图本系统的液晶显示驱动电路如图3.17所示,DB0~DB7端口与8155的PA0~PA7端口相连,D/I,R/W,E,RST分别与PC0~PC3端口相连,作为特殊控制信号端。而LEDA和LEDK端口则采取接地方式。图3.17TG12864E的驱动电路Fig.3.17DrivecircuitofTG12864E3.5票据打印模块在新型出租车计价器中增加的一个主要功能是打印功能。若要完成这一功能,首先要根据计价器的特点从市场上众多类型的微型打印机中挑选出合适的型号;其次应分析所选型号打印机的工作原理,根据它的工作原理设计并制作出打印机的硬件电路及驱动软件。3.5.1打印机的选择打印机是微型计算机系统中最基本的也是最主要的输出设备。随着单片机在自动控制领域中越来越广泛的应用,打印功能以及打印机的需求也随之增长起来。将打印功能应用于出租车计价器上,统一出租车行业使用的发票是新型计价器发展的趋势。打印机的种类很多:根据印字原理,可分为击打式打印机和非击打式打印机两大类。击打式打印机就是利用机械能将字符击打在打印纸上;而非击打式打印机则是通过非机械能,如热敏,静电等方式将字符印在打印纸上。常见的打印机有以下几种:(1)点阵针式打印机:击打式打印机以点阵针式打印机为主,这种打印机结构简单,性能可靠。若在软件中加入汉字字库,则它既可打印英文字符又可打印汉字字符。日常使用消耗低,缺点是它的价格较贵,且打印时噪声大。(2)字符式打印机:字符式打印机属于击打式打印机的一种。它是将数字字符、英文字符及常用符号刻在一个滚筒上,通过机械方式在将需打印的字符印在打印纸上。这种打印机的优点是价格低,打印出的字符清晰,日常消耗低。缺点是不能打印汉字字符。(3)热敏式打印机:热敏式打印机属于非击打式打印机。它的特点是无噪声,打印出的字符质量优于针式打印机,但它的主要缺点是需要专门的热敏打印纸,热感色带,日常消耗大。综合上述三种打印机各自的优缺点,考虑到计价器本身的特点,选择点阵针式打印机。它既可以打印汉字,同时又不会在原来的基础上增加太多的成本,比较符合实际需求。本设计选择的点阵针式微型打印机型号为。它适合于各种票据的打印。[19,20]3.5.2主要技术性能及接口要求(1)的主要技术性能①采用单片机控制,具有2KB控打程序及标准的圣特罗尼克并行接口,便于和各种计算机应用系统或智能仪器仪表联机使用。②具有较丰富的打印命令,命令代码均为单字节,格式简单。③可产生全部标准的ASCII代码字符,以及128个非标准字符和图符。有16个代码字符(6×7点阵)可由用户通过程序自行定义。并可通过命令用这16个代码字符去更换任何驻留代码字型,以便用于多种文字的打印。④可打印出8×240点阵的图样。代码字符和点阵图样可在一行中混合打印。⑤字符、图符和点阵图可以在宽和高的方向放大为2、3、4倍。⑥每行字符的点行数(包括字符的行间距)可用命令更换。即字符行间距空点行在0~256间任选。⑦带有水平和垂直制表命令,便于打印表格。⑧具有重复打印同一字符命令,以减少输送代码的数量。⑨带有命令格式的检错功能。当输入错误命令时,打印机立即打印出错误信息代码。(2)各引脚功能①DB0~DB7:数据线,由计算机输入打印机。②(STROBE):数据选通信号。在该信号的上升沿,数据线上的8位并行数据被打印机读入机内锁存,选通信号宽度应大于0.5us。③BUSY:打印机“忙”状态信号。当该信号有效(高电平)时,表示打印机正忙于处理数据。此时,主计算机不得使用SET信号向打印机发送新的数据。④(acknowledge):打印机的应答信号。当此信号有效(低电平)时,表明打印机以取走数据线上的数据。应答信号在很多情况下可不使用。3.5.3与单片机接口是智能打印机,其控制电路由单片机构成,在输入电路中有锁存器,在输出电路中有三态门控制。因此可以不通过I/O口直接与单片机应用系统的总线相接,即数据线与51单片机P0口相接。但实际应用中通常是通过扩展I/O口与打印机相接的。图3.18中扩展I/O口为8255的PA口,采用了查询法,即通过读8255的PC0引脚的状态来判断送给打印机的1B数据是否处理完毕。也可用中断法(BUSY直接与单片机的P3.3引脚相连)。图3.18与AT89C581扩展的I/O连接Fig.3.18ExpansionofI/OconnectivityofandAT89C5813.6按键扫描模块图3.19按键扫描模块Fig.3.19PressScanningModule整个系统共设置五个按键:分别为“启动”、“停止”、“加速”、“减速”、“复位”。本模块功能:扫描按键功能,返回扫描结果。本模块电路原理图如图3.19所示。

4系统软件设计出租车计价器是一个软件、硬件结合的系统,硬件是软件运行的条件与保障,软件使控制要求得以实现。计价器的主要功能都是通过软件支持实现的,由于采用模块化设计,各功能子模块独立,因此具有很强的扩展性。4.1系统主程序及显示单元流程框图=0=0=1=0开始单片机I/O初始化外部中断初始化显示模块初始化时钟模块初始化各变量、标志清零显示模式设为图形方式显示一幅个性化图片显示模式转为文本方式进入模式0工作状态显示一幅个人信息执行空车工作模式进入模式1工作状态播放语音信息键盘扫描模块进入载客工作状态脉冲计数及里程计算费率计算进入模式2工作状态显示到站菜单显示里程及金额播报行驶里程及应付金额数显示结束中文界面播报“请检查您的随身物品”,“欢迎再次乘坐本公司出租汽车,再见”Play_g2=??=0=2=1=0=1显示欢迎工作界面Flag=?Play_g1=?=1工作模式MODE=?返回图4.1主流程图Fig.4.1Mainflowchart程序说明:当系统上电后,主程序开始运行。首先对系统进行初始化,包括外部中断初始化,显示模块初始化,时钟模块初始化,对内部存储器单元清零,设置定时器T0方式并赋初值,从EEPROM中读取系统参数并存入RAM中,判断各工作模式的状态,执行相关命令,显示相关信息,从而确定各功能的结果。图4.1所示为软件系统主程序的流程图。4.2里程和费率计算子程序流程图YYY开始返回里程<=2.3㎞(里程>2.3㎞)&&(里程<=35㎞)里程>35㎞总价=7.00+候时费用总价=7.00+(里程-2.3)×2.6+候时费用总价=7.00+(35-2.3)×2.6+(里程-35)×3.5+候时费用YNN图4.2里程费率计算子程序Fig.4.2Mileageratessubroutine程序说明:传感器将车轮的转速转换成脉冲信号输入到AT89C51单片机的信号输入端,然后就通过程序进行计量,根据里程的不同,输出不同的车资。由于现实原因,采用手动脉冲输入,每个脉冲相当于汽车行驶1.571米,计价器会根据具体选择的价位自动增加车资。4.3键盘处理子程序流程图程序说明:电源上电后,系统执行相应按键的功能,如果按键K2被按下,执行判断工作方式=0命令,如果为真,则开始进入行驶状态,之后开始加速行驶,直到K4被按下,行驶减速按键,最后到站;如果K2未被按下,而是执行K4功能,则进入执行判断工作方式=2命令,进入减速行驶状态,直至到站,然后返回。NNNNYYYYY开始返回K2被按下?K4被按下?工作方式=0?工作方式=1?工作方式=2?工作方式=1工作方式=2工作方式=0NN图4.3键盘处理子程序Fig.4.3Keyboardhandlingroutines结论在学习计价器原理和单片机等相关知识的基础上,以AT89C51作为系统的主控单元对出租车计价器进行了研究,并从硬件和软件两方面进行了设计。经过本系统的设计及论文的撰写,得出以下两点结论:(1)由于我国出租车行业管理模式不统一,存在的问题也较多,税收流失严重,现有的出租车票据不统一,乘客与司机之间易产生纠纷,人们越来越觉得现金交易的不方便性和不严密性,希望能够通过一种科学的手段实现对出租车行业的闭环管理。因此本课题具有一定的现实意义。本课题设计的出租车计价器解决了以往计价器计价不准确、使用寿命短等缺点,同时,可以随时对单片机的外围电路进行扩展,并通过软件编程实现本系统的不断升级。(2)通过这次的设计巩固了基础知识、培养了创新意识、拓宽了设计思路。由于时间及其他因素的限制,本系统的设计还有不完善的地方,需要在以下几方面进一步深入研究:(1)在硬件设计中应适当的考虑防作弊功能的设计,因为系统的好坏除了用功能完善来衡量之外,还应能防止外界人为的破坏。可通过编码加密传感器,智能识别异常输入信号,以识别外部对机芯的破坏活动并软锁机,从而实现有效防止人为的作弊现象,提高计价器的准确性。(2)在软件设计中应采取更可靠性的措施保证EEPROM数据的准确写入,以保证乘客的利益。

参考文献[1]肖永清,杨忠敏.汽车的发展与未来.北京:化学工业出版社.2004.3.[2]吴承琦,孙培生编著.出租汽车计价器发展历程回顾、感悟及展望.中国计量出版社.2000.8.[3]余志杰.汽车理论.北京:机械工业出版社.1999.5.[4]林功,杨江玲,黄锋编著.全方位多层次有效构建出租汽车计价器计量监管体系.自动化学报,2001年05期.[5]毕维峰.单片机技术应用及其发展方向.吉林商业高等专科学校学报,2006年04期.[6]关燕君.基于单片机的高精度信号采集系统的设计.吉林化工学院学报,2006年04期.[7]王幸之等.AT89系列单片机原理与接口技术.北京:北京航空航天大学出版社.2004.5.[8]乌宽明.单片机外围器件实用手册[M].北京:北京航空航天大学出版社.2001.30-39.[9]毕维峰.单片机技术应用及其发展方向.吉林商业高等专科学校学报,2006年04期.[10]张迎新等.单片微型计算机原理、应用及接口技术.北京:国防科技出版社.2004.1.[11]吴秀清周荷琴.微型计算机原理与接口技术.中国科学技术大学出版社.2004.[12]Smith,M.H.S.Application-SpecificIntegratedCircuits.虞惠华,汤庭鳌,来金梅,孙承缓等译.专用集成电路[M].电子工业出版社.2004.107-120.[13]陈粤初等.单片机应用系统设计与实践.北京:北京航空航天大学出版社,1991.[14]肖鹏,陈伟民.HYPERLIN

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论