第1章引言随着经济的发展,带动汽车行业快速发展,出租车日益普遍,了解在出租车上应用的计费系统,对我们日常生活也有帮助。而使用单片机实现该系统,是深化单片机应用的良好途径。本系统由单片机89S52和一些外围原件组成,具有操作简单,显示明了,功能强大的特点。使用TG12864E液晶模组作为显示器,可以显示数字、字母、中文、图片等,使系统信息一目了然;本系统除了里程统计和费用计算以外,还具有万年历和语音播报功能。语音播报由语音芯片ISD1420提供语音信息,语音信息放在不同的地址里,由单片机从这些地址中调用合适的语音进行播放。本方案充分发挥人性化的特点,利用ISD1420的语音功能,配合TG12864液晶模组,模拟实现带语音提示的出租车计价系统。比较真实地模拟出租车的空车、载客、到站及对各状况的费率的计算、统计、显示和语音播报等功能。第2章系统总体介绍2.1系统组成数理与信息工程学院《单片机原理及应用》期末课程设计——基于单片机的出租车计费系统-2-整体方案设计框图如图2-1所示:图2-1方案设计框图本系统采用89s52做核心控制单元,实现了实时时钟,掉电存储,语音报价,等功能,使用大屏幕lcd显示,人机界面好,功能强大,操作简单易用,通过仔细选择器件,成本在不降低性能尽量做到最低,完全符合工业产品的性质。2.2系统各部分功能2.2.1里程计量功能a)单片机对传感器输出脉冲进行计数,并将脉冲数换算成公里数;b)每一个脉冲代表轮胎旋转一周,设轮胎的直径为520mm,轮胎的周长为:(即每转一圈的距离)520x3.14159=1634mm=1.634mc)每公里的脉冲数:PulsePerKM=1000m/1.634m=612(个脉冲)2.2.2费用计算功能费用计算包括三部分:起步费、行使费和燃油附加费:a)起步费用(StartPrice)—当行驶里程(RunMilege)在2.3Km(含2.3Km)以内按起步价(StartPrice)7元计费。即行使费用(RunPrice)为:RunPrice=StartPrice+1=8(元)Mcu控制部分显示部分按键输入实时时钟掉电存储语音报价车轮模拟测速+5v电源数理与信息工程学院《单片机原理及应用》期末课程设计——基于单片机的出租车计费系统-3-b)行使费用(RunPrice)--行使费用分短途与长途两种情况:①.当行驶里程(RunMilege)超出2.3Km时并且小于35Km时,按2.6元/Km收费,这时行驶费用为:RunPrice=StartPrice+2.6×(RunMilege-StartMilege)+1其中:StartPrice为起步价=6元StartMilege为起步里程=2.3KmRunMilege为行使里程(总行使里程)RunPrice为行使费用(总行使金额)②.当行使里程超过35Km后,要加空驶费,即每公里升至3.50元,这时行驶费用为:RunPrice=StartPrice+3.5×(RunMilege-StartMilege)+1c)燃油附加费--每车次加收一元。2.2.3语音播放功能①.当初次按下“start/stop”键,出租车开始启动,系统播放“您好!欢迎乘坐本公司出租汽车,谢谢!”播送完毕,计费器开始计费。②.按下“SpeedUp”键,出租车加速行使,最高速为100Km。③.按下“SpeedDown”键,出租车减速行使,最低速为0Km。④.在行使状态下,按下“start/stop”键,表示出租车到站,结束行使。这时候,系统播放“您好!行使里程XXX公里,应付XXX元,请检查您的随身物品,欢迎再次乘坐,再见!”的提示音。⑤.按下“Reset”键,进入空车状态。2.2.4中文菜单显示功能①.在空车状态下(启动前),LCD屏幕上显示如图2-2所示的中文信息: 2007年xx月xx日xx时xx分xx秒空车数理与信息工程学院《单片机原理及应用》期末课程设计——基于单片机的出租车计费系统-4-图2-2②.在空车状态下,按下“start/stop”键,系统播放“您好!欢迎乘坐本公司出租汽车,谢谢!”的提示音,同时在LCD屏幕上显示如图2-3所示的中文信息:图2-3③.播完提示音后,进入行使状态,LCD屏幕显示如图2-4所示的信息:图2-4④.在行使状态,按下“SpeedUp”键,里程显示的公里数增加的速度会不断的变快,金额数值也在作相应的变化。按下“SpeedDown”键,里程显示的公里数增加的速度会不断的变慢。⑤.在行使状态,按下“start/stop”键,表示出租车到站,结束行程。这时屏幕显示如图2-5所示的信息:图2-5同时,系统播放“您好!行使里程xxx.xx公里,应付xxx.xx元,请检查您的随身物品,欢迎再次乘坐,再见!”的提示音。2.2.5实时时钟功能用实时时钟芯片DS1302作为时钟电路,产生年/月/日/时/分/秒等信号,供系统调用。2.2.6按键的功能您好!欢迎乘坐本公司出租汽车,谢谢! 2007年xx月xx日xx时xx分xx秒空车起步价:7.0元总里程:xxx.xx公里总金额:xxx.xx元数理与信息工程学院《单片机原理及应用》期末课程设计——基于单片机的出租车计费系统-5-(1)“start/stop”键—开始进入行使/结束行使(到站)。(2)“SpeedUp”键—行使加速按键。按下次按键,可使出租车的速度由0Km上升到100Km。(3)“SpeedDown”键--行使减速按键。按下次按键,可使出租车的速度由100K下降到0Km。(4)“Reset”键--进入空车状态。第3章硬件设计3.1电源模块数理与信息工程学院《单片机原理及应用》期末课程设计——基于单片机的出租车计费系统-6-方案比较:1、电源采用220v交流电,通过整流滤波电路再经过稳压器件得到需要的+5v电压2.直接输入一个6—10v的直流电压,再用稳压芯片芯片得到+5v电压;通过仔细的考虑,计费系统最终是安装在计程车上的,电源一般不是220v交流电压,而是有电瓶输出的直流电压,再考虑总体设计成本问题,因此采用方案2。具体电路图如下图3-1:电源的输入可以采用两路输入,可接一路备用电源。防止了突然断电而丢失数据的情况,进一步增加了系统的稳定性。图3-1电源结构图3.2控制模块方案比较:目前比较实用的mcu方案有:51系列单片机,avr系列单片机,菱阳系列单片机Pic系列单片机通过分析系统需求,对于此系统51系列单片机的资源已经足够,所以采用89s52单片机做系统的mcu控制单元性价比最高。本系统采用11.0592Mhz的晶振,s51系列支持isp下载编程,可以方便程序的调试开发,减小开发时的成本。具体电路图如图3-2:数理与信息工程学院《单片机原理及应用》期末课程设计——基于单片机的出租车计费系统-7-图3-2控制器电路3.3Lcd显示模块方案比较:1、led数码管轮流显示2、1602lcd显示3、12864lcd显示Led显示可以基本实现要显示的功能,但轮流显示给顾客的界面很不方面,各种数据不能同时显示,虽然成本低,但不可取。1602lcd可以实现教多数据的显示,但要显示汉字比较麻烦,所能显示的汉字个数也太少,也不可取12864lcd大屏幕显示,能显示比较人性化的页面,采用串行控制只需4根控制线,不必占有控制系统的过多io口,性价比最高因此选取12864lcd作为显示部分。其中设计了背光控制电路,ledak端为低电平是背光亮,高电平时灭,可以工作在节电模式。具体电路如图3-3所示:TG12864E是一种图形点阵液晶显示器,它主要由行驱动器/列驱动器及128×64全点阵液晶显示器组成。可完成图形显示,也可以8×4个(16×16点阵)汉字。主要技术参数和性能:数理与信息工程学院《单片机原理及应用》期末课程设计——基于单片机的出租车计费系统-8-·电源:VDD:+2.7~+5V;模块内自带-10V负压,用于LCD的驱动电压。·显示内容:128(列)×64(行)点·全屏幕点阵·七种指令·与CPU接口采用8位数据总线并行输入输出和8条控制线·占空比1/64·工作温度:-10℃~+60℃,储存温度:-20℃~+70℃,可选择宽温:-20℃~+70℃外形尺寸图如图3-4所示:图3-3液晶显示电路图3-4液晶显示屏外形.TG12864EL串口接线方式如图3-5所示:数理与信息工程学院《单片机原理及应用》期末课程设计——基于单片机的出租车计费系统-9-图图3-53.4按键模块方案比较:1、使用触摸屏作为控制输入2、使用矩阵或独立按键作为控制输入分析:本系统本考虑使用触摸屏,使系统界面感觉更加人性化,但使用触摸屏在要输入数字时,12864同时也要显示出数字,由于12864要显示键盘的数字比较勉强,要输入数字时还是用矩阵键盘比较合适,如此考虑触摸屏就非常多余,矩阵键盘扫描时需要较长的时间,因此利用两个独立按键作为系统开始与结束的按键,运用比较方便。具体电路如图3-6和图3-7所示:①按键扫描模块电路图及说明:整个系统只有两个按键,一个“启动/停止”,一个“复位”;本模块功能:扫描按键功能,返回扫描结果。图3-6独立按键数理与信息工程学院《单片机原理及应用》期末课程设计——基于单片机的出租车计费系统-10-图3-7矩阵按键3.5实时时钟模块本模块采用ds1302,性价比较高,晶振采用时钟标准频率32.768Mhz,控制电路较简单,符合I2C总线。可实现年月日时分秒的显示,还可选择工作12小时制还是24小时制模式。电路接图如图3-8所示:图3-83.6掉电存储模块本模块采用24cxx系列EEPROM,此芯片工作在I2C总线模式,控制读写方便,数据存储量大,24c256可达到32kb的容量。电路图如图3-9所示:数理与信息工程学院《单片机原理及应用》期末课程设计——基于单片机的出租车计费系统-11-图3-93.7语音报价模块语音功能实现:为实现语音报价功能,决定采用一块语音芯片录入若干段语音,然后用单片机通过组合方式实现语音报价。方案比较:1.采用apr9600音乐芯片实现该功能,apr9600通过串行工作方式分别录入语音段,然后用串行选段控制方式播放语音段,控制方式是每次给/M2一个低电平,芯片地址指向下一段语音,而当给/M1一个低电平时,播放当前段语音,通过控制/M2和/M1即可实现语音播放。2.采用isd2560语音芯片实现,isd2560通过地址方式在相应地址分别存入若干段语音,再经单片机按需要调用各段语音,控制方式为单片机通过口线选通所需地址,然后触发芯片的片选端,即可播放语音。比较,由于语音报价主要是播放金额的数字,每个数字都要分别存为一段语音,所以导致所需存储的语音段较多,这时如果采用apr9600芯片,由于选段需要提供/M2低电平,选到后面的段时,需要很多个低电平才能选到,在实际应用中应会造成不小的延时,对语音播放的效果造成影响,而采用isd2560时,由于采用地址方式选段,不存在上述问题,所以语音段之间的延时非常小,由此比较决定,采用isd2560芯片实现语音功能。电路图如图3-10所示:数理与信息工程学院《单片机原理及应用》期末课程设计——基于单片机的出租车计费系统-12-图3-10语音芯片电路3.8车轮模拟测速模块方案比较:1、采用红外传感器测量车轮转过的圈数2、采用接近开关测量车轮转过的圈数红外传感器价格比较便宜,但红外线的干扰比较多,容易出现误触发,影响系统的稳定性,接近开关稳定性较好,干扰少,为了加强系统稳定性,采用接近开关。接近开关使用方便,只要接电源和地,当有金属接近到一定距离时数据输出低电平,平时保持高电平,可以产生中断,接近开关的工作速度也不会太低,所以工作稳定。其电路图如图3-11所示:图3-11数理与信息工程学院《单片机原理及应用》期末课程设计——基于单片机的出租车计费系统-13-电机驱动电路,采用另一个稳压芯片输出与单片机电源电路隔离开来,可以防止电机大电流对单片机的干扰,并用电位器可实现调速设置,可以简单的模拟车轮的转动。其电路图如下图3-12所示:图3-