基于单片机的出租车计费器的设计与实现的软件设计毕业设计(论文)_第1页
基于单片机的出租车计费器的设计与实现的软件设计毕业设计(论文)_第2页
基于单片机的出租车计费器的设计与实现的软件设计毕业设计(论文)_第3页
基于单片机的出租车计费器的设计与实现的软件设计毕业设计(论文)_第4页
基于单片机的出租车计费器的设计与实现的软件设计毕业设计(论文)_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

基于单片机的出租车计费器的设计与实现的软件设计毕业设计(论文)PAGE1摘要现在各大中城市出租车行业都已普及自动计价器,所以计价器技术的发展已成定局。而部分小城市尚未普及,但随着城市建设日益加快,象征着城市面貌的出租车行业也将加速发展,计价器的普及也是毫无疑问的,所以未来汽车计价器的市场还是十分有潜力的。出租车计价器是根据客户用车情况来自动显示车费的数字仪表,根据用车起步价、行车里程计费求得客户用车的总费用,并通过数码管显示相应的里程及金额。我在本次设计中主要负责硬件工作。本电路以AT89S52单片机为中心,附加A44E霍尔传感器测距,实现对出租车计价,采用AT24C02实现在系统掉电的时候保存单价,输出采用8段数码显示管,显示行驶总里程和总金额。模拟出租车计价器设计:进行里程显示,预设起步价和起步公里数;行程按全程收费,有复位功能和启动功能,启动后,开始计价。我们采用单片机进行设计,可以用较少的硬件和适当的软件相互配合来实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能,应用前景广阔。关键字:出租车计价器AT89S52单片机A44E霍尔传感器断电保存8段数码显示管基于单片机的出租车计费器的设计与实现的软件设计毕业设计(论文)全文共24页,当前为第1页。基于单片机的出租车计费器的设计与实现的软件设计毕业设计(论文)全文共24页,当前为第1页。AbstractNowtheautomaticmileagefaremeterispopularizedineachbigormedia-sizedcitiestaxiprofession,thereforethedevelopmentofmileagefaremetertechnologyhasbeenaforegoneconclusion.Whileinpartsmallcitiesit’sunderused,butspeedingupdaybydayalongwiththeurbanconstruction,whichwillsymbolizetheurbanappearancetaxiprofessionthatwillacceleratetodeveloptoo.Andmileagefaremeter'spopularizationwillalsobewithoutadoubt,thereforethefutureautomobilemileagefaremeter'smarketwillhavethegreatpotential.Thetaximileagefaremeterisadigitalinstrumentwhichhasthefunctiontodemonstratefareaccordingtothecustomeruseofthecarandchargecustomerthetotalfeeaccordingtostartpriceoftheusingcartogetherwiththemileage,andthenitcandemonstratesthecorrespondingcourseandamountthrough8sectionsofdigitaltubes.Inthisdesign,Iamresponsibleforthepartofhardware.ThiselectriccircuittakesAT89S52monolithicintegratedcircuitasacenterandthatattachesA44EtheHallsensorrangefinder,whichrealizestherentalcarvaluation.TheuseofAT224C02istopreservetheunitpricewhenthepresentsystempowerisfailure.Theoutputuses8sectionsofdigitaldisplaytubes,demonstratingthatgoesthetotalcourseandtheaggregateamount.Thedesignofsimulatedrentalcarmileagefaremeter:thefaremetercandemonstratethecourseofrode,preinstallstartpriceandstartdistanceinkilometer.Thetravelingschedulerealizeschargeaccordingtotheentirejourney,attachingtheresetfunctionandthestartfunction.Thefaremeterstartsthevaluationafterthebeginning.Weusethemonolithicintegratedcircuittocarryonthedesignandusethelittlehardwareandthesuitablesoftwarecoordinationtorealizethedesignmutuallyandflexibly,furthermorewecancompletethemoreadditionalfunctionsthroughthesoftwareprogramsandtheapplicationprospectispromising.Keywords:TaximeterSingle-chipAT89S52A44EHallSensor基于单片机的出租车计费器的设计与实现的软件设计毕业设计(论文)全文共24页,当前为第2页。PowerPreservationEightDigitalDisplayTube基于单片机的出租车计费器的设计与实现的软件设计毕业设计(论文)全文共24页,当前为第2页。绪论1.1出租车计费器的发展背景随着出租车行业的发展,对出租车计费器的要求也越来越高,用户不仅要求计费器性能稳定,计费准确,有防作弊功能;同时还要求其具有车票资料打印、IC卡付费、语音报话、和电脑串行通信等功能,而这些与电子技术的发展是分不开的。二十世纪后半期,随着集成电路和计算机技术的飞速发展,数字系统也得到了飞速发展,其实现方法经历了由分立元件、SSI、MSI到LSI、VLSI以及UVLSI的过程。同时为了提高系统的可靠性与通用性,微处理器和专业集成电路(ASIC)逐渐取代了通用全硬件LSI电路,而ASIC以其体积小、重量轻、功耗低、速度快、成本低、保密性好而脱颖而出。目前,业界大量可编程逻辑器件(PLD),尤其是现场可编程逻辑器件(FPLD)被大量地应用在ASIC的制作当中。在可编程集成电路的开发过程中,以计算机为工作平台,融合了应用电子技术、计算机技术、智能化技术最新成果的电子设计自动化(EDA)技术主要能辅助进行三方面的设计工作:IC设计,电子电路设计以及PCB设计

理想的可编程逻辑开发系统能符合大量的设计要求:它能够支持不同结构的器件,在多种平台运行,提供易于使用的界面,并且有广泛的特征。此外,一个设计系统应该能给设计师提供充分自由的设计输入方法和设计工具选择。我国的第一家生产计价器企业是重庆市起重机厂,最早的计价器全部采用机械齿轮结构,只能完成简单的计程功能,可以说早期的计价器就是一个里程表。随着科学技术的发展,产生了第二代计价器。它采用了手摇计算机与机械结构相结合的方式,实现了半机械半电子化。此时它在计程的同时还可以完成计价的工作。基于单片机的出租车计费器的设计与实现的软件设计毕业设计(论文)全文共24页,当前为第3页。大规模集成电路的发展又产生了第三代计价器,也就是全电子化的计价器。它的功能也在不断完善.当单片机出现并应用于计价器后,现代出租车计价器的模型也就基本具备了,它可以完成计程,计价,显示等基本工作。单片机以及外围芯片的不断发展促进了计价器的发展。基于单片机的出租车计费器的设计与实现的软件设计毕业设计(论文)全文共24页,当前为第3页。1.2本设计的设计内容

利用单片机,设计一个出租车计费器,达到:1.不同情况具有不同的收费标准:白天(6-22点);晚上(22-次日6点);途中等待(>7.5min开始收费);2.能进行手动修改单价(内部键);3.数据显示:单价显示2位;路程显示3位;总金额显示3位;4.按键:1)数据清零2)单价的调整;5.能够在掉电的情况下存储单价等数据,具有票据打印功能;6.能够显示当前的系统时间;7.到达目的地语音播报数据信息,乘客上下车问候语。第二章总体设计方案2.1方案设计概述我们在选择和确定系统的设计方案时,是以以下几个方面来考虑的:1、开放性,考虑到本系统中将涉及到不同厂商的元器件,以及系统的扩展需求,在本系统设计中,我们将尽量避免采用专有元器件和技术,从而使本系统中的软硬件都具有充分的开放性。2、先进性,本系统中的设计开发以及系统的维护管理所采用的产品技术均综合考虑现行技术的发展趋势,采用相对先进同时市场相对成熟的产品技术,以满足系统未来的发展需求。3、高性能,考虑到本系统将提供给生产人员和非专业人员的使用等角度,合理设计结构、配置,以确保大量用户的方便。4、可靠性,本系统的设计将在尽可能减少投资的情况下,从系统结构、技术措施、器件选型等方面综合考虑,以确保系统中任何一个环节都没有单故障节点,实现其功能服务。5、可扩展性,在本系统中,还预有一个与计算机相连的串口,以实现随着生产的发展而扩展。基于单片机的出租车计费器的设计与实现的软件设计毕业设计(论文)全文共24页,当前为第4页。6、性价比,本系统的设计中,在满足用户需求与系统的高性能、高可靠性的前提下,尽量降低开发资金的投入。基于单片机的出租车计费器的设计与实现的软件设计毕业设计(论文)全文共24页,当前为第4页。也就是本着这样的设计原则,整个方案的大体轮廓就浮现出来了。也是我下一节将要说的系统设计原理。2.2系统原理框图以单片机AT89S52为核心,以语音芯片SYN6288、时钟芯片DS1302芯片等为外设的新型出租车计费器。给出硬件电路图及主要程序流程图,阐述了软硬件设计过程中关键技术的处理。该系统完全满足集计程、计时、计费、存储、查看等多种计量功能为一体的出租车计费器的实用要求。SYN6288语音芯片的优点:最小SSOP28L贴片封装、硬件接口简单、低功耗、音色清亮圆润、极高的性价比,除此之外,他在识别文本、数字、字符串时更智能、更准确,语音合成自然度更好、可懂性更高。DS1302是DALLAS公司推出的涓流充电时钟芯片内含有一个实时时钟/日历和31字节静态RAM通过简单的串行接口与单片机进行通信实时时钟/日历电路提供秒、分、时、日、日期、月、年的信息,每月的天数和闰年的天数可自动调整。时钟操作可通过AM/PM指示决定采用24或12小时格式。AT89S52AT89S52A44E霍尔传感器按键EEPROMAT24C02ST7920LCD液晶显示SYN6288语音模块TPUP-40S微型打印机DS1302时钟芯片图2.2整体方案设计方框图(1)AT89S52为出租车计费器核心部件,单片机检测到霍尔传感器的脉冲信号并进行里程计算;(2)A44E霍尔传感器的作用为测量出租车行驶里程;(3)按键包括4个独立按键,主要功能为模式选择、时钟、起步价、单价的修改以及语音播报和打印的实现;基于单片机的出租车计费器的设计与实现的软件设计毕业设计(论文)全文共24页,当前为第5页。(4)DS1302为时钟芯片,在本设计中用于实时时钟的实现;基于单片机的出租车计费器的设计与实现的软件设计毕业设计(论文)全文共24页,当前为第5页。(5)AT24C02为掉电储存单元,用于起步价、白天单价及夜晚单价的掉电储存;(6)ST7920LCD液晶显示用于时钟、单价、里程、总金额及模式的显示;(7)SYN6288与单片机串接,用于乘客上下车时的语音播报;(8)TPUP-40S微型打印机用于乘客下车时的票据打印。这样的设计思想和原理能符合我们的需求,图2.2.b即是该系统的主要框架结构了。有了以上的论证、设计思想及设计原理,我们这个系统的实施也就有了可靠的保障系统硬件设计3.1硬件设计任务分析3.1.1硬件设计流程图本课题的硬件设计是以AT89S52单片机为设计核心,以LCD液晶显示为特色的质量控制系统。该款单片机内部集成了ADC,以减少外围硬件连接,提高系统的抗干扰能力。同时也可以简化电路。本系统外围部分主要有44E霍尔传感器、AT89S52单片机、独立键盘、EEPROMAT24C02、ST7920LCD液晶显示、SYN6288语音合成模块、DS1302时钟芯片及TPUP-40S微型打印机。如图3.1.1所示为本系统的整体硬件设计流程图:根据题目需要设计总体方案根据需求选择所需元器件了解器件个引脚的作用运用CAD手工绘制电路图组合各部分电路图完成电路图的绘制基于单片机的出租车计费器的设计与实现的软件设计毕业设计(论文)全文共24页,当前为第6页。基于单片机的出租车计费器的设计与实现的软件设计毕业设计(论文)全文共24页,当前为第6页。图3.1.1.系统硬件设计流程图3.2单片机的介绍及模块选择3.2.1单片机的概述AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程\o"查看图片"

AT89S52引脚图Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。基于单片机的出租车计费器的设计与实现的软件设计毕业设计(论文)全文共24页,当前为第7页。P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0不具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。基于单片机的出租车计费器的设计与实现的软件设计毕业设计(论文)全文共24页,当前为第7页。P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.1分别作定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX)。在flash编程和校验时,P1口接收低8位地址字节。引脚号第二功能:P1.0T2(定时器/计数器T2的外部计数输入),时钟输出P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)P1.5MOSI(在系统编程用)P1.6MISO(在系统编程用)P1.7SCK(在系统编程用)P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,p3输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号。端口引脚第二功能:P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INTO(外中断0)P3.3INT1(外中断1)P3.4TO(定时/计数器0)P3.5T1(定时/计数器1)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)基于单片机的出租车计费器的设计与实现的软件设计毕业设计(论文)全文共24页,当前为第8页。3.2.2A44E霍尔传感器检测单元基于单片机的出租车计费器的设计与实现的软件设计毕业设计(论文)全文共24页,当前为第8页。图32.2A44E霍尔元件接线图A44E属于开关型的霍尔器件,其工作电压范围比较宽(4.5~18V),其输出的信号符合TTL电平标准,可以直接接到单片机的IO端口上,而且其最高检测频率可达到1MHZ。A44E集成霍耳开关由稳压器A、霍耳电势发生器(即硅霍耳片)B、差分放大器C、施密特触发器D和OC门输出E五个基本部分组成。在输入端输入电压Vcc,经稳压器稳压后加在霍尔电势发生器的两端,根据霍尔效应原理,当霍尔片处在磁场中时,在垂直于磁场的方向通以电流,则与这二者相垂直的方向上将会产生霍尔电势差VH输出,该VH信号经放大器放大后送至施密特触发器整形,使其成为方波输送到OC门输出。当施加的磁场达到工作点(即Bop)时,触发器输出高电压(相对于地电位),使三极管导通,此时OC门输出端输出低电压,三极管截止,使OC门输出高电压,这种状态为关。这样两次电压变换,使霍尔开关完成了一次开关动作。里程计算是通过安装在车轮上的霍尔传感器检测到的脉冲信号,送到单片机产生中断,单片机再根据程序设定,计算出里程。3.2.3

AT24C02存储单元图3.2.3存储单元电路原理图A2~A0:器件地址选择引脚。将这3个引脚配置成不同的编码值,在同一串行总线上最多可扩充8片同一容量或不同容量的24系列串行EEPROM芯片。SDL:串行数据输入输出口,是一个双向的漏极开路结构的引脚,容量扩展时可以将多片24洗脸的SDA引脚直接相连。SCL:串行移位时钟控制端。写入时上升沿起作用,读出时下降沿起作用。WP:硬件写保护控制引脚。当其为低电平时,正常写操作,高电平时,对EEPROM部分存储区域提供硬件写保护功能,即对被保护区域只能读不能写。GND:接地VCC:接+5V电压基于单片机的出租车计费器的设计与实现的软件设计毕业设计(论文)全文共24页,当前为第9页。3.2.4按键基于单片机的出租车计费器的设计与实现的软件设计毕业设计(论文)全文共24页,当前为第9页。当单价等信息需要进行修改时,就要用到键盘进行修改。由于调节信息不多,故采用4个独立键盘即可,可实现语音、打印、增大、减小等功能作用。电路原理如图3.2.4所示。图3.2.4独立键盘电路原理图S1:接P2.0口,外部模式切换键,允许进行时钟修改。S2:接P2.1口,单价和时钟加键,及乘客上车语音播报键。S3:接P2.2口,单价和时钟减键,及乘客下车语音播报和票据打印键。S4:接P2.3口,内部模式切换键,专业人员进行时钟、单价修改。3.2.5显示单元ST7920是台湾矽创电子公司生产的中文图形控制芯片,它是一种内置128×64-12汉字图形点阵的液晶显示控制模块,用于显示汉字及图形。该芯片共内置8192个中文汉字(16×16点阵)、128个字符的ASCII字符库(8×16点阵)及64×256点阵显示RAM(GDRAM)。为了能够简单、有效地显示汉字和图形,该模块内部设计有2MB的中文字型CGROM和64×256点阵的GDRAM绘图区域;同时,该模块还提供有4组可编程控制的16×16点阵造字空间;除此之外,为了适应多种微处理器和单片机接口的需要,该模块还提供了4位并行、8位并行、2线串行以及、3线串行等多种接口方式。图3.7ST7920电路原理图基于单片机的出租车计费器的设计与实现的软件设计毕业设计(论文)全文共24页,当前为第10页。在对ST7920读或写时,会用到两个8位的寄存器,一个是数据寄存器DR,另一个是指令寄存器IR。通过数据寄存器DR可以存取DDRAM、CGRAM、CGROM及IRAM的值。待存取的目标RAM的地址可通过命令来选择,每次数据寄存器DR的操作应以上次选择的目标RAM为主体来进行读出或写入。通过RS和RW的状态可以选择不同的读写模式,具体配置方法如表3.1所列。忙标志位BF为“1”时,表示内部操作正在进行,即处于忙状态而不接受新的指令,所以,每次接受新指令前,都要读取BF标志,只有当其为“0”时才可接受。基于单片机的出租车计费器的设计与实现的软件设计毕业设计(论文)全文共24页,当前为第10页。表3.1ST7920的寄存器读写状态RSRW功能说明低电平0低电平0MPU写指令到指令寄存器IR低电平0高电平1读出忙标志及地址计数器的状态高电平1低电平0MPU写指令到数据寄存器DR高电平1高电平1MPU从数据寄存器DR读出指令在本设计中,单片机采用串口方式访问ST7920,只用两根线(SID与SCLK)完成数据传输。通过ST7920实现时钟、单价、里程、总金额及模式的显示。3.2.6

实时时钟单元DS1302是DALLAS公司推出的涓流充电时钟芯片内含有一个实时时钟/日历和31字节静态语音播报单元SYN6288中文语音合成芯片是北京宇音天下科技有限公司于2010年推出的一款性价比更高,效果更自然的一款中高端语音合成芯片。SYN6288通过异步串口(UART)通讯方式,接受待合成的文本数据,实现文本到语音(或TTS语音)的转换。SYN6288语音芯片的优点:最小SSOP28L贴片封装、硬件接口简单、低功耗、音色清亮圆润、极高的性价比,除此之外,他在识别文本、数字、字符串时更智能、更准确,语音合成自然度更好、可懂性更高。芯片可以自动对文本进行分析,判别文本中多音字的读法并合成正确的读音。芯片可实现16级数字音量控制,音量更大,更广。播放文本的前景音量和播报背景音乐的背景音量可分开控制,更加自由。基于单片机的出租车计费器的设计与实现的软件设计毕业设计(论文)全文共24页,当前为第11页。SYN6288芯片支持任意中文文本的合成,可以采用GB2312、GBK、BIG5和Unicode四种编码方式。芯片支持英文字母的合成,遇到英文单词使按字母发音方式发音。每次合成的文本量可达200个字节。基于单片机的出租车计费器的设计与实现的软件设计毕业设计(论文)全文共24页,当前为第11页。图3.9SYN6288语音模块语音模块最小系统包括:控制器模块、SYN6288语音合成芯片、功放模块和喇叭。主控制器和SYN6288语音合成芯片之间通过UART接口连接,控制器可通过通讯接口向SYN6288语音合成芯片发送控制命令和文本,SYN6288语音合成芯片把接收到的文本合成为语音信号输出,输出的信号经功率放大器进行放大后连接到喇叭进行播放。图3.10SYN6288语音模块最小系统上位机以命令帧的格式向SYN6288芯片发送命令。SYN6288芯片根据命令帧进行相应操作,并向上位机返回命令操作结果。SYN6288提供一组全双工的异步串行通讯(UART)接口,实现与微处理器或PC的数据传输。SYN6288利用TxD和RxD以及GND实现串口通信。其中GND作为信号地。SYN6288芯片支持UART接口通讯方式,通过UART接口接收上位机发送的命令和数据,允许发送数据的最大长度为206字节。3.2.8票据打印单元基于单片机的出租车计费器的设计与实现的软件设计毕业设计(论文)全文共24页,当前为第12页。基于单片机的出租车计费器的设计与实现的软件设计毕业设计(论文)全文共24页,当前为第12页。图3.11TPUP-40S微型打印机串行接口电路引脚说明:TXD:单片机的串口输出端,同时,对于TPUP-40S微型打印机而言是数据串行输入端口。CTS:允许发送信号,在标志控制握手方式下使用。第三章系统软件设计本次软件设计采用KeilC51单片机软件。KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。3.1

系统主程序基于单片机的出租车计费器的设计与实现的软件设计毕业设计(论文)全文共24页,当前为第13页。在主程序模块中,需要完成对各参量和接口的初始化、出租车起价和单价的初始化以及中断、计算、循环等工作。另外,在主程序模块中还需要设置启动/清除标志寄存器、里程寄存器和价格寄存器,并对它们进行初始化。然后,主程序将根据各标志寄存器的内容,分别完成启动、清除、计程和计价等不同的操作。基于单片机的出租车计费器的设计与实现的软件设计毕业设计(论文)全文共24页,当前为第13页。图3.1主程序流程图当汽车发动时,就启动计价,根据里程寄存器中的内容计算和判断行驶里程是否已超过起步价公里数。若已超过,则根据里程值、每公里的单价数和起步价数来计算出当前的总金额,并将结果存于总金额寄存器中;中途等待时,无脉冲输入,不产生中断,当时间超过等待设定值时,开始进行计时,并把等待价格加到总金额里,然后将总金额、里程和单价送数码管显示出来。计算程序根据里程数分别进入不同的计算公式。如果里程大于3公里,则执行公式:总金额=起步价+(里程-3)*单价+等待时间*等待单价;否则,执行公式:总金额=起步价+等待时间*等待单价。程序流程图如图3.2所示。图3.2总金额计算程序流程图基于单片机的出租车计费器的设计与实现的软件设计毕业设计(论文)全文共24页,当前为第14页。3.2中断程序基于单片机的出租车计费器的设计与实现的软件设计毕业设计(论文)全文共24页,当前为第14页。中断程序包括外部中断0和外部中断1,其中外部中断0用于霍尔传感器里程计数,外部中断1用于等待时间计费。3.2.1

里程计数中断程序每当霍尔传感器输出一个低电平信号就使单片机中断一次,当里程计数器对里程脉冲计满12次时,进入里程计数中断服务程序中,里程加1m,当里程计满1000次,里程变量加一。图3.3里程计数中断程序流程图3.2.2中途等待中断程序基于单片机的出租车计费器的设计与实现的软件设计毕业设计(论文)全文共24页,当前为第15页。在中途等待中断程序中,每5ms产生一次中断,将当前里程值送入某个缓存变量,每1分钟将缓存变量中的值和当前里程值比较,当汽车停止,霍尔传感器超过10分钟没有输出信号,当前里程值和缓存变量内的值相同,则进入等待计时,每1分钟记一次价格。基于单片机的出租车计费器的设计与实现的软件设计毕业设计(论文)全文共24页,当前为第15页。图3.4中途等待中断程序流程图3.3显示程序液晶显示包括时间、模式、里程、起步价及单价的显示。其中单价分为白天单价和夜晚单价。在6点到22点之间自动显示白天单价,而在6点到22点之外,将自动切换显示夜晚单价。图3.5LCD液晶显示程序流程图3.4

语音程序基于单片机的出租车计费器的设计与实现的软件设计毕业设计(论文)全文共24页,当前为第16页。当乘客上下车时进行语音播报。语音模块与上位机为异步串行通信。语音程序在按键程序中调用。基于单片机的出租车计费器的设计与实现的软件设计毕业设计(论文)全文共24页,当前为第16页。图3.6语音程序流程图3.5

键盘程序基于单片机的出租车计费器的设计与实现的软件设计毕业设计(论文)全文共24页,当前为第17页。本次设计中使用了四个按键,它们的作用分别是模式选择、数据的增减。其中模式键包括外部模式键和内部模式键。外部模式键只能修改时间,而内部模式键不仅可以时间修改,还能修改单价和起步价。之所以设置两个模式键,就是为了防止司机私自修改单价和起步价。基于单片机的出租车计费器的设计与实现的软件设计毕业设计(论文)全文共24页,当前为第17页。基于单片机的出租车计费器的设计与实现的软件设计毕业设计(论文)全文共24页,当前为第18页。图3.7内部模式键程序流程图基于单片机的出租车计费器的设计与实现的软件设计毕业设计(论文)全文共24页,当前为第18页。图3.8外部模式键程序流程图3.6

微型打印机基于单片机的出租车计费器的设计与实现的软件设计毕业设计(论文)全文共24页,当前为第19页。串行打印程序主要有波特率和串行口UAR的初始化,发送、接受模块的设计在标志控制方式下,当打印机可以接收数据时,信号线DTR为准备状态,即Mark状态,主计机根DTR,为准备状态还是忙状态,而向打印机发送或停止发送数据;当DTR为Space时,发送数据;当DTR为Mark状态时,停止发送,等待下一状态Space。其时序如图3.12所示。基于单片机的出租车计费器的设计与实现的软件设计毕业设计(论文)全文共24页,当前为第19页。图3.9标志控制时序图系统控制软件包括:AT89S52串行口初始化打印机缓冲区首址选址打印机状态判断数据发送/接受打印数据设定等。串行接口编程流程图如图3.13所示。基于单片机的出租车计费器的设计与实现的软件设计毕业设计(论文)全文共24页,当前为第20页。图3.10打印程序流程图基于单片机的出租车计费器的设计与实现的软件设计毕业设计(论文)全文共24页,当前为第20页。4系统调试里程计数曾考虑过两个方案:霍尔传感器及光电传感器,由于实验室有霍尔传感器,所以最终采用A44E霍尔传感器进行里程测量。掉电储存单元采用AT24C02,其寿命可达40多年,质量可靠。语音芯片最初选用美国ISD公司的2500芯片,ISD2500最大特点在于片内E2PROM容量为480K,所以录放时间长。但考虑到性价比,最终选用SYN6288语音模块,他不仅价格便宜,而且足以提供出租车语音播报的功能。按键为4个独立键盘,通过在程序中加入LED亮灭及液晶显示判断键盘完好。由于汽车内部电源为12v,而单片机电源为5v,所以采用7805电源模块使12v电源降压到5v,使整个硬件电路得以正常工作。在硬件选型及接口分配完成后便是软件程序设计。由于软件程序设计工作量大,所以里程、显示、时间、储存、语音等模块化,这样思路清晰且便于调试。时间、显示、按键、里程及等待时间的程序较为顺利。测试如下:表4.1里程计费程序调试时间9:0023:00单价/元1.82.2起步价/元10等待时间/分钟00111200110里程/公里14143434总金额/元1011.81113.81012.21012.2注:其中等待时间为超过10分钟每加一分钟总金额加1元。AT24C02程序设计主要包括单价、起步价的掉电储存。通过按键改变单价及起步价,系统重新上电后单价、起步价为改变后的数据。按键由4个独立键盘组成,最初设计为:P20模式选择键,P21时间、价格加键,P22时间、价格减键,P23语音、打印键。但考虑到司机不能私自修改单价、起步价,所以重新分配4个按键的功能,其中P21和P22在原有功能基础上增加语音和打印功能,P20为外部模式选择(只允许修改时间),P23

温馨提示

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

评论

0/150

提交评论