毕业设计 出租车计价器设计.doc_第1页
毕业设计 出租车计价器设计.doc_第2页
毕业设计 出租车计价器设计.doc_第3页
毕业设计 出租车计价器设计.doc_第4页
毕业设计 出租车计价器设计.doc_第5页
免费预览已结束,剩余66页可下载查看

下载本文档

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

文档简介

本科生毕业设计(论文)出租车计价器设计目 录摘要 IAbstract II第一章 引言及设计任务要求3 1.1 设计任务 3 1.2 设计要求 3第二章 方案论证 4 2.1 方案选择 42.2 系统框图 4 2.3 系统的工作原理 4 第三章 硬件系统设计 63.1 总体及控制模块6 3.2 信号采集10 3.3 按键及显示单元的设计123.4 掉电存储单元的设计 143.5 显示模块153.6 电源模块 16第四章 拓展模块设计19 4.1空车牌模块194.2时钟模块 204.3防作弊模块 214.4车轮模拟测速模块214.5电机模块设计 224.6语音播报模块23第五章 程序设计 245.1 主程序模块 265.2 里程计数中断服务程序285.3 中途等待中断服务程序 295.4 键盘服务程序29第六章 测试验证 45第七章 改进意见 46结论 47致谢 48参考文献 49出租车计价器设计 摘 要现在各大中城市出租车行业都已普及自动计价器,所以计价器技术的发展已成定局。虽然部分小城市尚未普及,但随着城市化进程日益深化,象征着城市面貌的出租车行业也将飞速发展,计价器普及必将大势所趋,预计未来计价器市场很有前景。计价器作为出租车的一个重要组成部分,关系着出租车司机和乘客双方利益,起着重要的作用,因此,具有良好性能的计价器对广大出租车司机朋友和乘客来说是很必要的。但是现阶段出租汽车的计费系统功能有时候并不能满足出租车司机的意愿。 本课题是出租车计价器系统的设计。重点是设计出租车计价器的实用性,并尽量使最后的成品接近于商品。整个系统是以89C51单片机为中心,采用A44E霍尔传感器对轮胎转数进行计数,实现对出租车里程的测量,并最终计算出结果。其中采用寄存器芯片AT24C02使系统在掉电的时候对单价、里程、车轮长度等信息进行存储,采用时钟芯片DS1302来显示时间和在系统需要时进行计时。人机交换界面采用的是1602液晶屏显示,为减小功耗将液晶屏的背光设为可手调。在采集信号的同时采用TLP521光耦实现对计价器的作弊保护。本电路设计的出租车计价器不但能实现计价的功能,同时还能实现根据白天、黑天自动调整计价模式,而且不计价的时候还能作为时钟为司机同志提供方便,能自动处理中途等待以及为避免一些作弊行为设计的防作弊功能,最终经检测本设计基本实现了设计要求的基本部分。关键词: Atmel51;防作弊;单片机;出租车计价器Abstract Automatic taxi-meter have been universal among Cities for now,the taxi-meter technology is a foregone conclusion already.But in somesmall cities it have not been universal yet,with the increasing speed of society development and urban construction, city symbols-the taxi-meterwhich has been a new star will be popular,so next generation taximeterof cars is still potential.As an important component of car,taxi-meter isnot only the interests of taxi drivers but also the passengers, so it hasplayed an important role,therefore,good performed taximeter is necessaryfor the public.The current taxi billing systems dont meet the wishes ofpeople.In this article we talk about various designs of taximeter system. The point is to design the practicality of the taximeter and as far as possible to make the final finished product close to commodities.The whole system is based on single-chip 89c51 and use a hall-sensorA44E to count the number of revolutions. In this way we can achieve the statistics of the taxi mileage and give out the final results.In this design we use AT24C02 to store the price, mileage,the length of wheeland other informations when the power is down,use clock chip DS1302to display the time if necessary.The man-machine interface is using theLCD1602 to display,to reduce the power consumption I set the LCD screen to be hand shape. At the same time we use a TLP521meter to avoid cheating.This circuit design of the taximeter can not only achievethe function of pricing but also can adjust pricing model automatically accord-ing to the day, night. Finally this design can pass the testing.Keyword: Atmel51;Anti-Cheating;Single-chip; Taximeter第一章 引言及设计任务要求随着生活水平的提高,人们已不再满足于衣食住的享受,出行的舒适已受到越来越多人的关注。于是,出租车行业以低价高质的服务给人们带来了出行的享受。但是,一直以来存在着的买卖纠纷困扰着行业的发展。而在出租车行业中解决这一矛盾的最好方法就是改良计价器。用更加精良的计价器来为乘客提供更加方便快捷的服务。 我国在70年代开始出现出租车,但那时的计费系统大都是国外进口不但不够准确,价格还十分昂贵。随着改革开放日益深入,出租车行业的发展势头已十分突出,国内各机械厂家纷纷推出国产计价器。出租车计价器的功能从刚开始的只显示路程(需要司机自己定价,计算后四舍五入),到能够自主计费,以及现在的能够打发票和语音提示、按时间自主变动单价等功能。随着城市旅游业的发展,出租车行业已成为城市的窗口,象征着一个城市的文明程度。 鉴于目前有关出租车计费又出台了新的政策,在原有政策基础上新增了等待费用8,为了与时俱进,设计一个计费功能较全面的系统也已是迫在眉睫。 凡乘过出租车的人都知道,只要汽车开动,随着行驶里程的增加,就会看到汽车前面的计价器里程数字显示的读数从零逐渐增大,而当行驶到某一值时(如5KM)计费数字显示开始从起步价(如10元)增加。当出租车到达某地需要在那里等候时,系统会自动根据时间进行计时,每等候一定时间,计费显示就增加一个该收的等候费用。汽车继续行驶时,停止计算等候费,继续增加里程计费。到达目的地,便可按显示的数字收费。 汽车计价器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具。它关系着交易双方的利益。具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很必要的。因此,汽车计价器的研究也是十分有应用价值的。 采用模拟电路和数字电路设计的计价器整体电路的规模较大,用到的器件多,造成故障率高,难调试,对于模式的切换需要用到机械开关,机械开关时间久了会造成接触不良,功能不易实现。为此采用了单片机进行设计,相对来说功能强大,用较少的硬件和适当的软件相互配合可以很容易的实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能,例如防作弊系统。11 设计任务 设计一个出租车计价器。要求显示屏显示行驶里程、停车时间和计费值,采用按键切换显示物理量。出租车的起步价为3元,当里程行驶到1km后,费用为4元;当里程行驶到1.5km后,费用为5元;,当里程行驶到2km后,费用为6元;当里程行驶到2.5km后,费用为7元;当里程行驶到3km后,费用为8元;此后每公里计费为0.7元/0.5km。停车每达3分钟,增加0.7元。具有秒、分为60进制计数功能,能显示分、秒停车状态的计时结果,格式为:00:00min。按照轮胎转动1圈为1m计算,计算并显示行驶的里程结果,格式为:000.0km。能显示乘车费用,格式为:000.0元。确定设计方案,按功能模块的划分选择元器件和中小规模集成电路,设计分电路,画出总体电路原理图,阐述基本原理。12 设计要求 (1)能灵活设置单价、起步价等信息; (2)能实时显示单价、时间及金额; (3)掉电情况下能保护单价、起步价等设置信息; (4)采用液晶或者数码管显示。第二章 方案论证2.1 方案选择2.1.1 由设计要求设计出一款出租车计价器,通过调查研究发现出租车计价器要实现以下功能:1、 显示时间,日期,单价,里程,总金额;2、 能让司机调整单价,起步价,时间,日期等基本信息;3、 能自动进行停车等待计时、计费;4、 应该具有防止作弊的系统,以保护乘客的利益;5、 能根据时间自动改变计费标准;6、 能打印收据;7、 具有语音播报的功能,提示乘客。2.1.2 通过需求分析可以初步对系统的设计方案进行三种构架:1、GPS 全球定位系统,两点一线,计算距离方案。2、基于DSP的油箱计量器系统,通过使用油量计算距离。3、基于单片机的霍尔传感器系统。4、基于MAX+PLUSII的PLD计价器系统3。出于对所学知识了解程度、成品制作难易、成本因素、传感方式精确程度等因素的综合考虑,最终我选择了第三种方式来实现这样一个系统。此次设计的计价器由主控器控制,能根据时间自动切换模式,例如6:00-22:00为白天模式(起步价为7元)、22:00-6:00为晚上计价模式(起步价为7.8元)、中途等待处理(在进入计价界面后,车轮没有转动的时候自动开始计时,如果超过1分钟,总金额自动增加1元),可由按键手动控制单价、时间调整、背光灯亮度、两种模式下的起步价等设置。由传感器来来检测发动机主轴的转数,以此推算行走里程。由掉电储存保护单价以及时间等基本设置。时间控制由时钟模块进行控制,当断电的时候有专门的电池对时钟模块进行供电,以保证时间的准确性。2.2 系统框图 为了实现上述功能,列出系统框图6,如图2-1所示。主机模块显示电路键盘控制掉电存储信号采集 里程、单价、总金额、状态等显示图2-1 系统框图2.3 系统的工作原理 通常计价器采用,在主机模块中预先已写入了有关程序和数据的信息,如基本距离、续程距离、候时时间的规定值,与收费标准规定相应的收费价格值,不同出租条件下收费的变化比率,附加车费值计费方式等数据和与收费办法相应的车费计算与控制程序等,并且在计价器安装前已根据不同车型选定好K值。在工作过程中其主要的功能都是由单片机中的定时器/计数器来实现。本设计重点是设计主机模块,并将各个硬件的功能显示在选定的显示器上。其中硬件和显示部分是由主机模块控制,各种功能的显示由显示电路来完成。设计中选用时钟模块来保证基本的时间和日期显示的正确性,掉电存储来存储基础设置信息,显示电路作为基本的输出设备。在出租车转轴上加装传感器,以便获得“行驶里程信号”。利用单主机模块行计数,从而计算出里程及所需要的金额。然后传送给显示电路显示所有的信息。本系统可以实现单价、里程及金额,并能对所有的基础数据进行设置。第三章 硬件系统设计3.1 总体及控制模块设计主机主要是用来实现信号采集的处理、计算,以及控制显示、存储和实现按键功能的模块,它可以有两种选择方案: 方案一 : 采用数字电路控制。将传感器输出的脉冲信号,经过放大整形作为移位寄存器的脉冲,实现计价,但是考虑到这种电路过于简单,性能不够稳定,而且不能调节单价,也不能根据天气调节计费标准,电路不够实用。方案二 : 采用单片机控制。利用单片机丰富的 I/O端口,及其控制的灵活性,实现基本的里程计价功能和价格调节、时钟显示功能。综合考虑采用方案二比较好。 单片机实现小系统的PCB制版图及原理全景图如图3-1,3-2所示。图3-1 PCB制版图 图3-2 电路原理全景图单片机可分为4位单片机、8位单片机、16位单片机、32位单片机。在这里选择的是8位单片机89SC51。 8051芯片的引脚分为三部分:I/O口线、控制口线盒电源及时钟2。单片机控制部分如图3-3所示。 由于这里是通过轮胎转数计算里程及金额,所以需要计数。本设计在这里是通过中断INT1来计数的,当每接收到一个中断,自动在里程中增加19(常用出租车轮胎周长为1.9米,可以根据情况改变)。 利用Price = BasiKPrice + (MileAge*UnitPrice)/10/1000) + InterVal可以得出金额,通过LCD1602进行显示。 图3-3 控制器电路3.2 信号采集单元设计信号采集主要是通过传感器对采集车轴转数,通过主机模块进行计算,从而得出里程,金额等信息。通过对传感器的工作方法研究发现,传感器A44E是比较符合条件。霍尔传感器以霍尔效应为原理,以霍尔器件为基础。霍尔器件具有诸多优点,它们的结构牢固,体积小,重量轻,寿命长,安装方便,功耗小,频率高(可达1MHz),耐振动,不怕灰尘、油污、水汽及盐雾等污染或腐蚀。霍尔开关器件无触点、无磨损、输出波形清晰、无抖动、无回跳、位置重复精度高。采用了各种补偿和保护措施的霍尔器件的工作温度范围宽,可达-55150。霍尔传感器A44E工作原理,在输入端输入电压Vcc,经过稳压器A稳压或加在霍尔电势发生器B两端,根据霍尔效应原理,当霍尔片处在磁场中时,在垂直于磁场的方向通以电流,则与这二者相垂直的方向上将会产生霍尔电势差输出,该信号经过差分放大器C放大后送至施密特触发器D整形,使其成为方波输送到OC门中输出。当施密特加的磁场达到工作点时,触发器输出高电压使三极管导通,此时OC门输出低电压,通常称这种状态为开1。当施加磁场未达到工作点时,触发器输出低电压,三极管截止,使OC门输出高电压,这种状态为关。A44E集成结构及工作点如图3-4所示。 图3-4 A44E集成结构图(a)及工作点图(b) A44E型霍尔传感器属于霍尔开关器件,输出的是数字量。其工作电压范围比较宽(4.518V)。集成霍尔传感器外形图4如图3-5所示。 图3-5 集成霍尔传感器外形 霍尔传感器在出租车计价器中的工作原理示意如图3-6所示。单片机车轮耦铁磁铁感器图3-6霍尔传感器工作原理图 霍尔传感器电路原理如图3-7所示。图3-7霍尔传感器路程检测电路用霍尔传感器集成芯片A44E检测并输出脉冲,其工作原理如图3-6所示。霍尔传感器集成芯片A44E有信号转换、电压放大、整形输出等功能,为增加其抗干扰的能力,在A44E转换、放大、整形后再通过光偶送入P3.3引脚。A44E外部引脚说明:(1) Vcc 外接供电电源输入端(2) GND外接电源地(3) OUT 数字信号输出端在霍尔电势发生器的两端加上电压VCC后,根据霍尔效应原理,当霍尔片处在磁场中时,霍尔传感器的输出端输出低电平。当车轮转动一圈时小磁铁提供一个磁场,则霍尔传感器输出一次低电平完成一次数据采集。此次设计选择了P3.3 口作为信号的输入端,内部采用外部中断0,车轮每转一圈,霍尔开关就检测并输出信号,引起单片机的中断,对脉计数。通过计算将脉冲增加体现在金额和里程上。3.3 按键单元的设计方案比较: 1、使用触摸屏作为控制输入。 2、使用矩阵或独立按键作为控制输入。分析: 出于成本,和专用性的考虑本系统选用独立按键作为输入。 矩阵键盘扫描时需要较长的时间,因此利用两个独立按键作为系统开始与结束的按键,运用比较方便。具体电路如图3-8和图3-9所示。图3-8 独立按键 图3-9 矩阵按键整个系统独立按键二个,一个“启动/停止”,一个“复位”;本模块功能:扫描按键功能,返回扫描结果。3.4 掉电存储单元设计 当用户每次通过出租车计价器更改数据的时候,应该把更改后的数据保存,这样不用断电时候都要重新进行基本信息的设置,这就是掉电保护模块的作用。可以进行存储的芯片有很多种,在这个设计中采用了AT24C02这款芯片。 AT24C02是一个2K串行CMOS EPROM,内部有256个8位字节,CATALYST公司的先进CMOS技术实质上减少了器件的功耗,AT24C02还有一个16字节页写缓冲器。 当司机每次按下计价键的时候,通过程序每次都会自动从AT24C02中读取信息,这样就达到了对起步价、单价等设置信息的保护。AT24C02管脚描述见表3-1。表3-1 AT24C02管脚描述管脚名称功能A0、A1、A2器件地址选择SDA串行数据/地址SCL串行时钟WP写保护Vcc+1.8V6.0V工作电压Vss接地AT24C02管脚图9如图3-10所示。图3-10 AT24C02管脚图 图3-11 AT24C02接口所有引脚中只需要将SCL和SDA加到单片机的数据端,其它引脚接地就可以了,如图3-11所示。3.5显示模块设计 显示部分要求显示单价、里程、总金额和另外扩展的时钟显示等各种信息。 在应用系统中,使用的显示器主要有LED(发光二极管)和LCD(液晶显示器)。这两种显示器成本低廉,配置灵活。LED是发光二极管LightEmittingDiode的英文缩写,是由发光二极管显示字段的显示器件。LCD显示器的原文是LiquidCrystalDisplay,其工作原理就是利用液晶的物理特性:通电时排列变得有序,使光线容易通过;不通电时排列混乱,阻止光线通过,说简单点就是让液晶如闸门般地阻隔或让光线穿透。 因此有下面两种方案可以选择: 方案一 :采用液晶显示器(LCD)显示。液晶屏功能强大,可显示各种字体的数字、汉字、图像,还可以自定义显示内容,显示内容也较丰富;方便操作者读取信息及一些扩展功能的实现。占用系统IO口较少,有效地节约系统资源,使整个系统更加人性化。方案二 :采用LED数码管显示。数码管具有编程简单,夜间显示效果好,但只能显示有限的符号和数码字,而且显示内容有限。能完成题目中的基本要求,如果还要增加具体功能的提示,则比较难实现。根据上述分析选用方案一。3.5.1液晶显示原理及特点 液晶显示是一种极低功耗的显示器件。在袖珍式仪表或低功耗应用系统中使用较大。它是在上、下玻璃电极之间封入向列型液晶材料,根据需要,将电极做成各种文字、数字、图形,就可以获得各种状态显示。液晶显示器的驱动方式一般有静态驱动和时分割驱动方式两种。各种的显示模块可以用于不同的地方,如:笔端型可以用来显示汉字。LCD的优点主要包括零辐射、低功耗、散热小、体积小、图像还原精确、字符显示锐利等,而且液晶的功耗和LED比起来要小的多。由于在这里需要在第一界面显示日期,时间,星期等信息,本来可以选择带有字库,可以显示汉字的MzLH01-12864。但是最后由于定元件以及价位的原因最终选择了LCD1602这款液晶显示芯片。3.5.2 LCD1602主参数及接口信号 下面是LCD1602的基本参数和各个引脚的功能,必须根据下面的参数来设计显示电路的原理图。LCD1602的基本参数及各引脚功能见表3-2和3-3。表3-2 LCD1602主参数 LCD1602显示容量:16X2个字符芯片工作电压:4.5-5.5V工作电流:2.0mA(5V)最佳工作电压:5V字符尺寸:2.95X4.35(WXH)mm表3-3 LCD1602接口信号说明编号符号引脚说明编号符号引脚说明1VSS电源地9D2DATAI/O2VDD电源正极10D3DATAI/O3VL液晶显示偏压信号11D4DATAI/O4RS数据命令选择端(H/L)12D5DATAI/O5R/W读写数据端(H/L)13D6DATAI/O6E使能信号14D7DATAI/O7D0DATAI/O15BLA背光源正极8D1DATAI/O16BLK背光源负极3.5.3 显示模块硬件电路设计根据LCD1602的基本工作参数和引脚接口信号的介绍,设计出显示电路,显示模块如图3-12所示。 图3-12 显示电路接线原理图此模块电路电源电压为5V,由接口VCC引入,上电后可看到发光二极管被点亮。数据端8位接分别由单片机的P1 I/O口与其线连接,3个控制端口分别有P05P06端口来控制,8位双向数据线714与单片机的P1端口相连,实现液晶与单片机的通信。液晶对比度通过1602的第三脚接可调电阻来提供可调。3.6电源模块设计方案比较:1.电源采用220V交流电,通过整流滤波电路再经过稳压器件得到需要的+5V电压 2.输入一个6-10V的直流电压,再稳压得到5V电压;通过仔细的考虑,计费系统最终是安装在计程车上的,电源一般不是220V交流电压,而是有电瓶输出的直流电压,因此采用方案2。电源的输入可以采用两路输入,可接一路备用电源。防止了突然断电而丢失数据的情况,进一步增加了系统的稳定性。又由于计价器的工作环境比较差,它要求有抗振动、抗高低温、抗潮湿、抗电磁干扰等能力,特别是电源方面的干扰,如出租车启动时,发动机打火、电瓶充电等造成输入计价器的+12V 电源不稳定。因此采用+l2V电瓶电源经过滤波和电源稳压管理芯片7805后得到+5V的稳定电压输出,保证整个系统能够正常工作。电源模块具体电路如图3-13所示。 图3-13 电源模块电路原理图第四章 拓展功能模块设计4.1空车牌模块空车牌模块的功能主要是控制运行空车牌的计费,当有乘客上车时,司机关闭空车牌,此时单片机计价器开始计数,当乘客下车时,司机打开空车牌,计价器停止计费,并且空车牌上有LED灯管,可以提示想乘车的顾客此车上无人,方便乘客乘车。空车牌电路如图4-1所示。图4-1 空车牌电路 4.2 时钟模块计价器在出租车空车行驶时需要显示实时时钟,因为它的时钟作为白天/晚上单价自动转换的一个基准,且计价器的时钟显示能为司机和乘客提供方便。DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,采用SPI三线接口与CPU进行同步通信;始终可提供秒、分、时、日、星期、月和年;通过设置DS1302的控制状态寄存器选择日历,时钟方式经过初始校准后即可工作使用;工作电压宽2.55.5 V,采用双电源供电(主电源和备用电源),并设置备用电源充电方式,提供了对后背电源进行涓细电流充电的能力,在没有主电源的情况下启用备用电源能保存时间信息及数据。时钟芯片电路如图4-2所示。图4-2 时钟芯片电路DS1302各引脚如下:(1)其中Vcc1为后备电源,Vcc2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc10.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。(2)X1和X2是振荡源,外接32.768kHz晶振。(3)RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc2.5V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。(4)I/O为串行数据输入输出端(双向)。(5)SCLK始终是输入端。(6)GND外接电源地。4.3 防作弊模块随着出租车的增多,人们乘坐出租车出行最关心的就是出租车有作弊器,在这里我设计了一个防作弊电路,用来保证计价器的安全性。 出租车一般作弊的原理是给传感器的输入端加入一个低电平信号,从而让计数系统飞快的进行加操作,从而达到作弊的目的。而如果没有前置的电路很容易人为的给单片机一个低电平,使计数增加,达到作弊的效果。当添加光电耦合器后,由光电耦合器控制传感器的电源,每检测到一个脉冲,在中断服务子程序里立即关闭传感器电源,正常情况因为传感器的输出关闭,输出应该变为高电平,这时马上再检测输入端的信号,如果此时输入变为高电平,说明当前检测到的脉冲确实是车轮滚动产生的,是真实的计数输入,累计加一。但如果检测到输入继续为低电平,只能说明有额外的低电平脉冲加载在传感器的输出端,是作弊,系统不进行累加,防止作弊。作弊系统的作弊电路原理如图4-3所示。图4-3作弊及防作弊电路4.4车轮模拟测速模块方案比较:1.采用红外线传感器测量车轮转过圈数。 2.采用接近开关车轮圈数。红外传感器价格比较便宜,但红外线的干扰比较多,容易出现误触发,影响系统的稳定性,接近开关稳定性较好,干扰少,为了加强系统稳定性,采用接近开关。接近开关使用方便,只要接电源和地,当有金属接近到一定距离时数据输出低电平,平时保持高电平,可以产生中断,接近开关的工作速度也不会太低,所以工作稳定。 接近开关引脚图如图4-4所示。图4-4 接近开关引脚图4.5电机驱动模块电机驱动电路,采用另一个稳压芯片输出与单片机电源电路隔离开来,可以防止电机大电流对单片机的干扰,并用电位器可实现调速设置,可以简单的模拟车轮的转动。其电路如图4-5所示。 图4-5 电机驱动电路4.6语音报价模块语音功能实现:为实现语音报价功能,决定采用一块语音芯片录入若干段语音,然后用单片机通过组合方式实现语音报价。方案比较:1.采用APR9600音乐芯片实现该功能,APR9600通过串行工作方式分别录入语音段,然后用串行选段控制方式播放语音段,控制方式是每次给M2一个低电平,芯片地址指向下一段语音,而当给M1一个低电平时,播放当前段语音,通过控制M2和M1即可实现语音播放。2.采用ISD2560语音芯片实现,ISD2560通过地址方式在相应地址分别存入若干段语音,再经单片机按需要调用各段语音,控制方式为单片机通过口线选通所需地址,然后触发芯片的片选端,即可播放语音。比较,由于语音报价主要是播放金额的数字,每个数字都要分别存为一段语音,所以导致所需存储的语音段较多,这时如果采用APR9600芯片,由于选段需要提供/M2低电平,选到后面的段时,需要很多个低电平才能选到,在实际应用中应会造成不小的延时,对语音播放的效果造成影响,而采用ISD2560时,由于采用地址方式选段,不存在上述问题,所以语音段之间的延时非常小,由此比较决定,采用ISD2560芯片实现语音功能。ISD2560原理如图4-6所示: 图4-6 语音芯片电路第五章 程序设计该计价系统的软件设计分为以下几个模块:5.1 主程序模块在主程序模块中,需要完成对各接口芯片的初始化,出租车单价的初始化,中断向量的设计以及中断处理,循环等待等工作,还需判断当前时间自动切换夜间或是白天模式(自定晚上22点到第二天6点为夜间模式,计费模式则是白天6点到晚上22点起步价为7元,22点到次日6点起步价为7.8元,这两种起步价都是是可调的)。当按下计价开关时,就启动计价,单片机根据里程寄存器中的内容计算和判断出行驶里程是否已超过起步价公里数(起步价7(或7.8)元5公里)。若已超过,则根据里程值、每公里的单价数和起价数来计算出当前的累计价格,然后将时间和当前累计价格送显示电路显示出来。当到达目的地的时候,由于霍尔开关没有送来脉冲信号,就停止计价,显示当前所应该付的金额和对应的单价,再按下复位键或者直接回到主界面系统自动对数据清零,并重新进行初始化过程,准备对下一个顾客乘坐时重新计价。主程序流程7如图5-1所示。图5-1 主程序流程图以下为主函数void main() uchar i,flag1,flag2,flag3; DS1302_Init(); /DS1302初始化 Init_LCM(); /LCD初始化 TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; TR0=1; ET0=1; IT1=1; /外中断跳变产生中断 EX1=1; EA=1; /打开总中断 P26 = 0; flag1 = 1; flag2 = 1; flag3 = 1; BasiKPrice1 = Read24c02(0x01); BasiKPrice2 = Read24c02(0x03); UnitPrice = Read24c02(0x05); while(1) loop: /设置跳转标号 zhujiemian();/*出租车启动键程序如下,进入开始计时计费*/if(Key5 = 0) delay10ms();/延时去抖动 if(Key5 = 0) while(Key5 = 0); /等待按键放开LCR_LCD();while(1)loop1:qidongxianshi();if(Key5 = 0) delay10ms(); if(Key5 = 0) while(Key5 = 0);MileAge = 0;Price = 0;InterVal = 0;goto loop;if(Key4 = 0) delay10ms(); if(Key4 = 0) while(Key4 = 0);MileAge1 = 0;goto loop1;5.2 里程计数中断服务程序中断计数一次代表车轮转动1圈,每当霍尔传感器输出一个低电平信号就使单片机中断一次,计数值加一,程序根据计数值和车轮周长计算出里程数,然后程序又根据里程数和单价计算出总价。最后将结果送LCD显示。里程计数中断流程如图5-2所示。图5-2里程计数中断服务流程图5.3 中途等待中断服务程序当单片机处在计价状态下时,片内的T0 定时器便被启动。如果霍尔开关在规定的时间内没有输出信号,就对当前金额加上中途等待的单价(假设中途等待1分钟按1.2元计价)。当霍尔传感器重新有信号输出的时候,就自动切换到正常的计价,并把之前不足一分钟的计时清零。以下是中断函数程序/外部中断1int1() interrupt 2EA = 0;P26 = 1;delay1();if(P33 = 1)MileAge = MileAge + 19/2;count1 = 0;count2 = 0;count3 = 0;P26 = 0; EA = 1;/定时器中断0void t0(void) interrupt 1 using 0EA = 0; TH0=(65536-50000)/256; TL0=(65536-50000)%256; count1+; if(count1 = 20) count1 = 0; count2+; if(count2 = 60) count2 = 0; count3+; if(count3 = 1)count3 = 0;InterVal += 10; EA = 1;5.4 键盘服务程序键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦有按键按下,便转向相应的子程序处理,处理结束再返回。键盘处理流程如图5-3所示。 图5-3 键盘处理程序流程图功能键程序如下,进入设置 if(Key1 = 0) /Key1总功能键 delay10ms();if(Key1 = 0)while(Key1 = 0);LCR_LCD();DisListChar(0,0,Year:); i = year/10; i = i%10;DisOneChar(8,0,Tablei); i = year%10; DisOneChar(9,0,Tablei);while(1)if(Key2 = 0) /Key2选择要设置的变量 delay10ms(); if(Key2 = 0) while(Key2 = 0); flag1 +; if(flag1 = 11) flag1 = 1; switch(flag1) case 1:LCR_LCD(); DisListChar(0,0,Year:);i = year/10; i = i%10;DisOneChar(8,0,Tablei); /显示年 i = year%10; DisOneChar(9,0,Tablei);break;case 2:LCR_LCD();DisListChar(0,0,Month:);i = month/10; DisOneChar(8,0,Tablei); i = month%10; /显示月 DisOneChar(9,0,Tablei);break;case 3:LCR_LCD();DisListChar(0,0,Day:);i = day/10; /显示天 DisOneChar(8,0,Tablei); i = day%10; DisOneChar(9,0,Tablei);break;case 4:LCR_LCD();DisListChar(0,0,Week:); i = week; /周显示 DisOneChar(8,0,Tablei);break;case 5:LCR_LCD(); DisListChar(0,0,Hour:);i = hour/10; /小时显示 DisOneChar(8

温馨提示

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

最新文档

评论

0/150

提交评论