基于单片机的出租车计费系统_第1页
基于单片机的出租车计费系统_第2页
基于单片机的出租车计费系统_第3页
基于单片机的出租车计费系统_第4页
基于单片机的出租车计费系统_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、数理与信息工程学院单片机原理及应用期末课程设计基于单片机的出租车计费系统第1章 引 言随着经济的发展,带动汽车行业快速发展,出租车日益普遍,了解在出租车上应用的计费系统,对我们日常生活也有帮助。而使用单片机实现该系统,是深化单片机应用的良好途径。本系统由单片机89S52和一些外围原件组成,具有操作简单,显示明了,功能强大的特点。使用TG12864E 液晶模组作为显示器,可以显示数字、字母、中文、图片等,使系统信息一目了然;本系统除了里程统计和费用计算以外,还具有万年历和语音播报功能。语音播报由语音芯片ISD1420提供语音信息,语音信息放在不同的地址里,由单片机从这些地址中调用合适的语音进行播

2、放。本方案充分发挥人性化的特点,利用ISD1420的语音功能,配合TG12864液晶模组,模拟实现带语音提示的出租车计价系统。比较真实地模拟出租车的空车、载客、到站及对各状况的费率的计算、统计、显示和语音播报等功能。第2章 系统总体介绍2.1系统组成 整体方案设计框图如图2-1所示:Mcu控制部分显示部分按键输入实时时 钟掉电存 储语音报价车轮模拟测速+5v电源 图2-1 方案设计框图本系统采用89s52做核心控制单元,实现了实时时钟,掉电存储,语音报价,等功能,使用大屏幕lcd显示,人机界面好,功能强大,操作简单易用,通过仔细选择器件,成本在不降低性能尽量做到最低,完全符合工业产品的性质。2

3、.2系统各部分功能2.2.1里程计量功能a)单片机对传感器输出脉冲进行计数,并将脉冲数换算成公里数;b)每一个脉冲代表轮胎旋转一周,设轮胎的直径为520mm,轮胎的周长为:(即每转一圈的距离)520x3.14159=1634mm=1.634m c)每公里的脉冲数:PulsePerKM=1000m/1.634m=612(个脉冲) 2.2.2费用计算功能费用计算包括三部分:起步费、行使费和燃油附加费:a)起步费用(StartPrice) 当行驶里程(RunMilege)在2.3Km(含2.3Km)以内按起步价(StartPrice)7元计费。即行使费用(RunPrice)为: RunPrice =

4、 StartPrice + 1 = 8(元)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=St

5、artPrice+3.5×(RunMilege-StartMilege)+1c) 燃油附加费-每车次加收一元。2.2.3语音播放功能.当初次按下“startstop”键,出租车开始启动,系统播放“您好!欢迎乘坐本公司出租汽车,谢谢!”播送完毕,计费器开始计费。.按下“SpeedUp”键,出租车加速行使,最高速为100Km。.按下“SpeedDown”键,出租车减速行使,最低速为0Km。.在行使状态下,按下“startstop”键,表示出租车到站,结束行使。这时候,系统播放“您好!行使里程XXX公里,应付XXX元,请检查您的随身物品,欢迎再次乘坐,再见!”的提示音。.按下“Reset”

6、键,进入空车状态。 2.2.4中文菜单显示功能.在空车状态下(启动前),LCD屏幕上显示如图2-2所示的中文信息: 图2-2.在空车状态下,按下“startstop”键,系统播放“您好!欢迎乘坐本公司出租汽车,谢谢!”的提示音,同时在LCD屏幕上显示如图2-3所示的中文信息: 图2-3.播完提示音后,进入行使状态,LCD屏幕显示如图2-4所示的信息: 图2-4.在行使状态,按下“SpeedUp”键,里程显示的公里数增加的速度会不断的变快,金额数值也在作相应的变化。按下“SpeedDown”键,里程显示的公里数增加的速度会不断的变慢。.在行使状态,按下“startstop”键,表示出租车到站,结

7、束行程。这时屏幕显示如图2-5所示的信息: 图2-5 同时,系统播放“您好!行使里程xxx.xx公里,应付xxx.xx元,请检查您的随身物品,欢迎再次乘坐,再见!”的提示音。2.2.5实时时钟功能用实时时钟芯片DS1302作为时钟电路,产生年月日时分秒等信号,供系统调用。2.2.6按键的功能(1)“startstop”键开始进入行使/结束行使(到站)。(2)“SpeedUp”键行使加速按键。按下次按键,可使出租车的速度由0Km上升到100Km。(3)“SpeedDown”键-行使减速按键。按下次按键,可使出租车的速度由100K下降到0Km。(4)“Reset”键-进入空车状态。第3章 硬件设计

8、3.1电源模块方案比较:1、电源采用220v交流电,通过整流滤波电路再经过稳压器件得到需要的+5v电压 2. 直接输入一个610v的直流电压,再用稳压芯片芯片得到5v电压; 通过仔细的考虑,计费系统最终是安装在计程车上的,电源一般不是220v交流电压,而是有电瓶输出的直流电压,再考虑总体设计成本问题,因此采用方案2。具体电路图如下图3-1:电源的输入可以采用两路输入,可接一路备用电源。防止了突然断电而丢失数据的情况,进一步增加了系统的稳定性。 图3-1 电源结构图3.2控制模块方案比较:目前比较实用的mcu方案有: 51系列单片机,avr系列单片机,菱阳系列单片机Pic系列单片机 通过分析系统

9、需求,对于此系统51系列单片机的资源已经足够,所以采用89s52单片机做系统的mcu控制单元性价比最高。本系统采用11.0592Mhz的晶振,s51系列支持isp下载编程,可以方便程序的调试开发,减小开发时的成本。具体电路图如图3-2: 图3-2 控制器电路3.3 Lcd显示模块 方案比较: 1、led数码管轮流显示 2、1602lcd显示 3、12864lcd显示 Led显示可以基本实现要显示的功能,但轮流显示给顾客的界面很不方面,各种数据不能同时显示,虽然成本低,但不可取。 1602lcd可以实现教多数据的显示,但要显示汉字比较麻烦,所能显示的汉字个数也太少,也不可取 12864lcd大屏

10、幕显示,能显示比较人性化的页面,采用串行控制只需4根控制线,不必占有控制系统的过多io口,性价比最高因此选取12864lcd作为显示部分。其中设计了背光控制电路,ledak端为低电平是背光亮,高电平时灭,可以工作在节电模式。具体电路如图3-3所示:TG12864E 是一种图形点阵液晶显示器,它主要由行驱动器/列驱动器及128×64 全点阵液晶显示器组成。可完成图形显示,也可以8×4 个(16×16 点阵)汉字。主要技术参数和性能: ·电源:VDD:+2.7 +5V; 模块内自带-10V负压,用于LCD的驱动电压。· 显示内容:128(列)

11、15;64(行)点·全屏幕点阵· 七种指令· 与CPU接口采用8 位数据总线并行输入输出和8 条控制线· 占空比1/64· 工作温度:-10+60,储存温度:-20+70,可选择宽温:-20+70 外形尺寸图如图3-4所示: 图3-3 液晶显示电路 图3-4 液晶显示屏外形.TG12864EL 串口接线方式如图3-5所示:图图3-53.4按键模块方案比较: 1、使用触摸屏作为控制输入 2、使用矩阵或独立按键作为控制输入分析: 本系统本考虑使用触摸屏,使系统界面感觉更加人性化,但使用触摸屏在要输入数字时,12864同时也要显示出数字,由于1286

12、4要显示键盘的数字比较勉强,要输入数字时还是用矩阵键盘比较合适,如此考虑触摸屏就非常多余, 矩阵键盘扫描时需要较长的时间,因此利用两个独立按键作为系统开始与结束的按键,运用比较方便。具体电路如图3-6和图3-7所示: 按键扫描模块电路图及说明:整个系统只有两个按键,一个“启动/停止”,一个“复位”;本模块功能:扫描按键功能,返回扫描结果。图3-6 独立按键图3-7 矩阵按键3.5实时时钟模块本模块采用ds1302,性价比较高,晶振采用时钟标准频率32.768Mhz,控制电路较简单,符合I2C总线。可实现年月日时分秒的显示,还可选择工作12小时制还是24小时制模式。电路接图如图3-8所示: 图3

13、-83.6掉电存储模块本模块采用24cxx系列EEPROM,此芯片工作在I2C总线模式,控制读写方便,数据存储量大,24c256可达到32kb的容量。电路图如图3-9所示: 图3-93.7语音报价模块语音功能实现:为实现语音报价功能,决定采用一块语音芯片录入若干段语音,然后用单片机通过组合方式实现语音报价。方案比较:1 采用apr9600音乐芯片实现该功能,apr9600通过串行工作方式分别录入语音段,然后用串行选段控制方式播放语音段,控制方式是每次给/M2一个低电平,芯片地址指向下一段语音,而当给/M1一个低电平时,播放当前段语音,通过控制/M2和/M1即可实现语音播放。2 采用isd256

14、0语音芯片实现,isd2560通过地址方式在相应地址分别存入若干段语音,再经单片机按需要调用各段语音,控制方式为单片机通过口线选通所需地址,然后触发芯片的片选端,即可播放语音。比较,由于语音报价主要是播放金额的数字,每个数字都要分别存为一段语音,所以导致所需存储的语音段较多,这时如果采用apr9600芯片,由于选段需要提供/M2低电平,选到后面的段时,需要很多个低电平才能选到,在实际应用中应会造成不小的延时,对语音播放的效果造成影响,而采用isd2560时,由于采用地址方式选段,不存在上述问题,所以语音段之间的延时非常小,由此比较决定,采用isd2560芯片实现语音功能。电路图如图3-10所示

15、: 图3-10 语音芯片电路3.8车轮模拟测速模块 方案比较: 1、采用红外传感器测量车轮转过的圈数 2、采用接近开关测量车轮转过的圈数 红外传感器价格比较便宜,但红外线的干扰比较多,容易出现误触发,影响系统的稳定性,接近开关稳定性较好,干扰少,为了加强系统稳定性,采用接近开关。接近开关使用方便,只要接电源和地,当有金属接近到一定距离时数据输出低电平,平时保持高电平,可以产生中断,接近开关的工作速度也不会太低,所以工作稳定。其电路图如图3-11所示: 图3-11电机驱动电路,采用另一个稳压芯片输出与单片机电源电路隔离开来,可以防止电机大电流对单片机的干扰,并用电位器可实现调速设置,可以简单的模

16、拟车轮的转动。其电路图如下图3-12所示: 图3-12 电机驱动电路第4章 系统程序设计4.1系统主程序流程框图:(如图4-1所示) 图4-14.2里程和费率计算程序流程图(如图4-2所示): 图4-2/*/费率计算函数/*void price() if(RunMilege<=2300) /TotalPrice=700+100; TotalPrice=800; if(RunMilege>2300)&&(RunMilege<=35000) /TotalPrice=700+(RunMilege-2300)*0.26+100; TotalPrice=800+(Run

17、Milege-2300)*0.26; if(RunMilege>35000) /TotalPrice=700+(35000-2300)*0.26+(RunMilege-35000)*0.35+100; TotalPrice=1112+(RunMilege-35000)*0.35; Price=(ulong)TotalPrice; 4.3键盘处理程序流程图(如图4-3所示)图4-3 键盘扫描子程序模块/*19void scankey() if(k2() bell(); if(mode=0x00) mode = 0x01; write_inst(0x01); else if(mode=0x0

18、1) flag = 0; mode = 0x02; write_inst(0x01); if(k4() bell(); if(mode=0x02) flag = 0; play_fg1 = 0; play_fg2 = 0; mode = 0x00; write_inst(0x01); count = 0; 结束语 通过这次设计,我觉得自己学到了很多东西: 其中我接触到了更多平时没有接触到的元器等,发现了自己很多不足之。我体会到了所学理论知识的重要性:知识掌握越多,设计得就更加严谨,更加顺利。了解了进行一项相对比较大型的科研设计所必不可少的几个阶段。我经过这次系统的课程设计,熟悉了对一项课题进行研究,设计和试

温馨提示

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

最新文档

评论

0/150

提交评论