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

下载本文档

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

文档简介

基于单片机的出租车计价器的设计PAGE1河北工业大学毕业设计说明书(论文)作者:马万鹏学号:084592系:电子系专业:电子信息工程技术题目:基于单片机的出租车计价器的设计指导者:郝海辉评阅者:2011年5月29日基于单片机的出租车计价器的设计全文共24页,当前为第1页。基于单片机的出租车计价器的设计全文共24页,当前为第1页。基于单片机的出租车计价器的设计全文共24页,当前为第2页。毕业设计(论文)中文摘要基于单片机的出租车计价器的设计全文共24页,当前为第2页。基于单片机的出租车计价器的设计摘要:在交通发展迅速的今天,出租车是我们交通中不可缺少的工具。同时出租车中的计价器是必不可少的一种设备。出租车计价器系统设计的主要内容是通过AT89S52单片机上的数码显示器来模拟出租车计价器的路程显示表,通过单片机上的键盘上的某些键来表示开始、暂停、复位等功能。步骤如下:首先,程序开始做一些必要的初始化工作,等待键盘输入。然后,启动键按下(0)后LED数码管开始记录路程并显示。最后,当需要停止是可按相应的键(F)对路程计数器进行暂停。而且还可以复位(E)。关键词:单片机AT89S52;出租车计费器;LED数码管基于单片机的出租车计价器的设计全文共24页,当前为第3页。毕业设计(论文)外文摘要基于单片机的出租车计价器的设计全文共24页,当前为第3页。Titlemicrocontrollers-baseddesignofthetaximeterAbstractTodaytherapiddevelopmentintransportation,taxitransportationisanindispensabletool.Atthesametimethetaximeterisessentialinadevice.TaximetersystemdesignmainlythroughtheAT89S52microcontrollertosimulatethedigitaldisplayonthetaximeterdistanceindicator,throughthemicrocontrolleroncertainkeysonthekeyboardtorepresentthestart,pause,resetandotherfunctions.Asfollows:First,theprogrambegantodosomenecessaryinitializationandwaitforkeyboardinput.Then,startkeyispressed(0)tostartrecordingaftertheLEDdigitaltubedistanceanddisplayed.Finally,whentostopistopressthecorrespondingkey(F)onthedistancecountersuspended.Butalsotoresetthe(E).Keywords:microcontrollersAT89S52;Taximeter;LEDdigitaltube目次1引言………………12出租车计价系统的计费要求与功能模型………12.1出租车计价器设计要求………12.2系统主要功能及模块组成……………………23出租车计价系统的硬件实现……………………33.1出租车计价器设计方案的论证与选择…………33.2总体设计框图…………………43.3硬件器件选择…………………53.4硬件器件电路设计……………114出租车计价系统的软件实现……………………134.1模块介绍………………………134.2主程序模块……………………134.3定时中断服务程序……………154.4里程计数中断服务……………164.5中途等待中断服务程序………164.6显示子程序……………………164.7判键子程序……………………165系统调试…………165.1里程计价测试…………………165.2掉电存储测试…………………18结论…………………18参考文献……………19基于单片机的出租车计价器的设计全文共24页,当前为第4页。致谢…………………20基于单片机的出租车计价器的设计全文共24页,当前为第4页。PAGE11引言出租车计价器是出租车营运收费的专用智能化仪表,随着电子技术的发展,出租车计价器技术也在不断进步和提高。国内出租车计价器已经经历了四个阶段的发展。从传统的全部由机械元器件组成的机械式,到半电子式即用电子线路代替部分机械元器件的出租车计价器,再从集成电路式到目前的单片机系统设计的出租车计价器。出租车计价器计费是否准确、出租车司机是否作弊才是乘客最关心的问题,而计价器营运数据的管理是否方便才是出租车司机最关注的。因此怎样设计出一种既能有效防止司机作弊又能方便司机的计价器尤为重要。汽车计价器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具。它关系着交易双方的利益。具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很有必要的。采用模拟电路和数字电路设计的计价器整体电路的规模较大,用到的器件多,造成故障率高,难调试,对于模式的切换需要用到机械开关,机械开关时间久了会造成接触不良,功能不易实现。为此我们采用了单片机进行设计,相对来说功能强大,用较少的硬件和适当的软件相互配合可以很容易的实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能。针对计费模式的切换,通过软件编程就可以轻易而举的实现。避免了机械开关带来的不稳定因素。2出租车计价系统的计费要求与功能模型2.1出租车计价器的设计要求基于单片机的出租车计价器的设计全文共24页,当前为第5页。设计一个出租车自动计费器,计费包括起步价、行车里程计费、等待时间计费三部分,用数码示器管示总金额,运行时间,暂停时间。并且用数码显示管显示总里程,同时用数码显示管显示等待时间和运行花费时间。本计价器分为计费功能跟显示功能两个部分。基于单片机的出租车计价器的设计全文共24页,当前为第5页。计费功能具体情况如下:费用的计算是按行驶里程收费。设起步价为5.00元。当里程小于3km时,按起价计算费用;当里程大于3km时,每公里按1.3元计费;等待累计时间大于10min时,按每分钟1.5元计费。显示功能具体情况如下:对于显示行驶里程我们用四位数字显示,显示方式为“XXXX”,单位为km。计程范围0-99km,精确到1km;对于显示等候时间我们用两位数字显示,显示方式为“XX”,单位为min。计时范围0-59min,精确到1min;对于显示总费用我们用四位数字显示,显示方式为“XXX.X”,单位为元。计价范围0-999.9元,精确到0.1元。2.2系统主要功能及模块组成当我们乘坐出租车时,出租车司机通过电源启动计价器后,只要汽车一启动,随着行驶里程的增加,就会看到出租车里面的计价器里程数字显示的读数从零逐渐增大,而当行驶到某一值(如3km)计费数字显示开始从起步价(如5元)增加。当出租车到达某地需要在那里等候时,司机只要按一下“计时”键,每等候一定的时间(如10分钟),计费显示就增加一个该收的等候费用(如每10分钟收取1.50元)。出租车继续行驶时,停止计算等候费用,继续增加里程计费。到达目的地,便可按显示的数字收费。并且伴随着上下车有语音提示。出租车计价器各重要功能模块如图2-1所示:核心功能模块、里程计量模块、掉电保护模块、键盘模块、语音模块、复位模块、时钟模块、电源模块、显示模块。核心功能模块里程计量模块键盘模块复位模块掉电保护模块时钟模块语音模块显示模块电源模块图2-1计价器各功能模块基于单片机的出租车计价器的设计全文共24页,当前为第6页。基于单片机的出租车计价器的设计全文共24页,当前为第6页。3出租车计价系统的硬件实现3.1出租车计价器设计方案的论证与选择对于出租车计价器的设计,可以采取很多种方案,但是方案之间有自己的优缺点,所以我们必须根据实际生活中的需要选择一种最适合的。下面我们依次讨论两种比较常用的设计方案,并从中确定一种我们要用的方案。方案一:采用数字电子技术,利用555定时芯片构成多谐振荡器,或采用外围的晶振电路作为时钟脉冲信号,采用计数芯片对脉冲尽心脉冲的计数和分频,最后通过译码电路对数据进行译码,将译码所得的数据送给数码管显示,一下是该方案的流程框图,方案图如图3-1所示:图3-1方案一方案二:采用MCU技术,通过单片机作为主控器,利用数码显示管作为显示电路,采用外部晶振作为时钟脉冲,通过按键可以方便调节,以下是方案二的系统流程图,本方案主要是必须对于数字电路比较熟悉,成本又不高。方案图如图3-3所示:MCU键盘控制掉电存储MCU键盘控制掉电存储模块里程计量单元串口显示驱动电路显示模块语音模块基于单片机的出租车计价器的设计全文共24页,当前为第7页。图3-2方案三基于单片机的出租车计价器的设计全文共24页,当前为第7页。方案总结:通过两个方案的比较,第一种方案的电路不太稳定,而且整体设计相对繁琐。综合所述不符合当前出租车计价器的需求。因此本次设计采用方案二,不但控制简单,而且成本低廉,设计电路简单。并且单片机方案有较大的活动空间,不但能实现所有要求的功能而且能在很大的程度上扩展功能,并且还可以方便的对系统进行升级,这也是我们选择第二种方案的原因。3.2总体设计框图由于硬件限制,无法通过具体的汽车转动圈数得出出租车行驶总路程,所以通过计数脉冲模拟汽车转动的圈数,每一千个脉冲记为一公里,即可计算得到车轮旋转几周出租车能行驶一公里的路程。可外部输入电脉冲也可以软件设置脉冲。输出的方波信号接入单片机系统中,通过计算接收到的方波个数计算当前所行驶的路程。并且系统根据单片机的定时器T0产生的时钟,选择相应的收费标准进行收费的计算。然后系统通过键盘操作和数码显示,来实现启动、暂停、复位、校时、显示时间,修改价格,确定等功能,还能够切换显示当前的行驶里程和需付的车费。对于本次设计的核心模块我们选择单片机,因为单片机本身具有独特的优势,控制简单,成本低廉,并且设计电路简单。最重要的是单片机还可以在很大程度上就行扩展与升级。对于显示模块来说在应用系统中,使用的显示器主要有LED(发光二极管)和LCD(液晶显示器)。这两种显示器成本低廉,配置灵活。LED是由发光二极管显示字段的显示器件。LCD显示器的工作原理是利用液晶的物理特性:通电时排列变得有序,使光线容易通过;不通电时排列混乱,阻止光线通过。本次设计中需要显示时间、日期等简单字符,用LED即可满足要求,另外LCD比LED价位高。因此本设计选择用六个七段数码管动态扫描来实现时钟与计价的显示。对于里程计量模块,我们利用传感器进行检测,并通过计算得出里程数。对于掉电保护模块,我们则利用电可擦除存储芯片。来完成在电源断开的时候,存储当前设定的单价信息。对于键盘模块,由于调节信息不多,故采用4个独立键盘即可。对于语音模块,要求使用方便的单片录放系统,外部元件较少,重现优质原声,没有常见的背景噪音即可。基于单片机的出租车计价器的设计全文共24页,当前为第8页。具体单片机控制方案如图3-3所示:基于单片机的出租车计价器的设计全文共24页,当前为第8页。MCUMCU键盘模块掉电存储模块里程计量模块串口显示驱动电路总金额显示单价显示图3-3单片机控制方案3.3硬件器件选择系统总体框架设计完成后,开始选择硬件器件。硬件器件选择应满足性能指标的需求,它主要包括:MCU、显示模块、里程计量模块、掉电保护模块、键盘模块、语音模块、电容电阻等。这里只介绍主要硬件器件的选择。3.本计价器的设计我们选用了AT89S52单片机,AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活,超有效的解决方案。AT89S52单片机电路图如图4-2所示:基于单片机的出租车计价器的设计全文共24页,当前为第9页。VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行图3-6校验时,P0输出原码,此时P0外部必须被拉高。图3-4基于单片机的出租车计价器的设计全文共24页,当前为第9页。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号不出现。基于单片机的出租车计价器的设计全文共24页,当前为第10页。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。基于单片机的出租车计价器的设计全文共24页,当前为第10页。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。3.本设计我们选用的是恩平市力达电子有限公司生产的LED七段数码管,型号为LDS-200101AH-B。LED显示管是由发光二极管显示字段的显示器件。在单片机应用系统中通常使用的是七段LED。这种显示块有共阴极和共阳极两种,共阴极LED显示块的发光二极管阴极共地,当某个发光二极管的阳极为高电平时,发光二极管点亮。共阳极LED显示块的发光二极管阳极并接,当某个二极管的阴极为低电平时,该二极管点亮。通常的七段LED显示块中有八个发光二极管,故也称为八段显示器。其中七个二极管构成七笔字型“8”,一个发光二极管构成小数点。控制不同组合的二极管导通,就能显示各种字符。设8位控制器按低到高的次序依次控制LED显示块的a~f,我们称控制器输出的控制LED显示块显示字符的8位字节数据为段选码。共阳极与共阴极的段选码互为反码。在多位LED显示时,为了简化电路,降低成本,将所有位LED的段选线并接在一起,在某一刻时,将要显示的字符段码同时送到每一个显示器的各段,但是只让这一位LED显示。下一时刻又送下一位LED要显示字符的段码,并只让下一位LED显示。如此轮流,使每位显示该为的字符,这样不断的循环送出响应的段选码﹑位选码,就可以获得视觉稳定的显示状态。本设计选择用六个七段数码管动态扫描来实现时钟与计价的显示,如图3-4所示。图3-4数码管封装图及数据线与数码管管脚关系基于单片机的出租车计价器的设计全文共24页,当前为第11页。3.基于单片机的出租车计价器的设计全文共24页,当前为第11页。对于测量路程的传感器我们选择了霍尔A44E,里程计算是通过安装在车轮旁的霍尔传感器A44E检测到的信号,送到单片机,经处理计算,送给显示单元的。其原理如图3-5传感器测距示意图所示。图3-5霍尔传感器测距示意图由于A44E属于开关型的霍尔器件,其工作电压范围比较宽(4.5~18V),其输出的信号符合TTL电平标准,可以直接接到单片机的IO端口上,而且其最高检测频率可达到1MHZ。A44E集成霍耳开关由稳压器A、霍耳电势发生器(即硅霍耳片)B、差分放大器C、施密特触发器D和OC门输出E五个基本部分组成。在输入端输入电压CCV,经稳压器稳压后加在霍耳电势发生器的两端,根据霍耳效应原理,当霍耳片处在磁场中时,在垂直于磁场的方向通以电流,则与这二者相垂直的方向上将会产生霍耳电势差HV输出,该HV信号经放大器放大后送至施密特触发器整形,使其成为方波输送到OC门输出。当施加的磁场达到工作点(即OPB)时,触发器输出高电压(相对于地电位),使三极管导通,此时OC门输出端输出低电压,通常称这种状态为开。当施加的磁场达到释放点(即rPB)时,触发器输出低电压,三极管截止,使OC门输出高电压,这种状态为关。这样两次电压变换,使霍耳开关完成了一次开关动作。基于单片机的出租车计价器的设计全文共24页,当前为第12页。我们选择了P3.2口作为信号的输入端,内部采用外部中断0(这样可以减少程序设计的麻烦),车轮每转一圈(我们设车轮的周长是1米),霍尔开关就检测并输出信号,引起单片机的中断,对脉计数,当计数达到1000次时,也就是1公里,单片机就控制将金额自动的加增加,其计算公式:当前单价×公里数基于单片机的出租车计价器的设计全文共24页,当前为第12页。3.本电路掉电保护采用了AT24C02芯片来完成此部分功能。掉电存储单元的作用是在电源断开的时候,存储当前设定的单价信息。AT24C02是ATMEL公司的2KB字节的电可擦除存储芯片,采用两线串行的总线和单片机通讯,电压最低可以到2.5V,额定电流为1mA,静态电流10Ua(5.5V),芯片内的资料可以在断电的情况下保存40年以上,而且采用8脚的DIP封装,使用方便。其电路如图3-6所示。图3-6掉电存储电路原理图图中R8、R10是上拉电阻,其作用是减少AT24C02的静态功耗,由于AT24C3.当单价等信息需要进行修改时,就要用到键盘进行修改。由于调节信息不多,故采用4个独立键盘即可,分别实现清零、切换、增大、减小和功能等作用,如图3-7。基于单片机的出租车计价器的设计全文共24页,当前为第13页。图3-7键盘电路基于单片机的出租车计价器的设计全文共24页,当前为第13页。S1:接P1.0口,对上一次的计费进行清零,为下次载客准备;S2:接P1.1口,实现白天和夜晚单价的切换;当功能键S4按下时,S2可对数据进行增大;S3:接P1.2口,当功能键S4按下时,S3可对数据进行减小;S4:接P1.3口,按1次,进入调整白天单价;按2次,进入调整夜晚单价;按3次,进入调整等待单价;按4次,进入调整起步价;按5次,返回。3.本计价器选择了ISD1420系列,如图3-8所示。ISD1420单片录放时间为8至20秒,音质好。芯片采用CMOS技术,内含震荡器、话筒前置放大、自动增益控制、防混淆滤波器、平滑滤波器、扬声器驱动及EEPROM阵列。最小的录放系统仅需麦克风、喇叭、两个按钮、电源及少数电阻电容。在录放操结束后,芯片自动进入低功耗节电模式、功耗仅0.5uA。ISD1420系列有唯一的录音控制和边缘/电平触发两种放音控制。不分段时外围线路最简,也可按最小段长为单位任意组合分段,芯片提供若干操作模式,大大提高了控制的灵活性。芯片采用多电平直接模拟量存储专利技术,每个采样直接存储在片内单个EEPROM单元中,因此能够非常真实、自然地再现语音、音乐、音调各效果,避免了一般固体录音电路因量化和压缩造成的量化噪声和“金属声”。采样频率从5.3,6.4到8.0KHz,对音质仅有轻微影响。片内信息可保存100年(无需后备电源),EEPROM单片可反复录音十万次。特点:1、使用方便的单片录放系统,外部元件最少;2、重现优质原声,没有常见的背景噪音;3无耗电信息存储,省掉备用电池;4、信息可保存100年,可反复录放10万次;5、较强的分段选址能力可处理多达160段信息;6、具有自动节电模式。基于单片机的出租车计价器的设计全文共24页,当前为第14页。图3-8ISD1420管脚图和管脚描述基于单片机的出租车计价器的设计全文共24页,当前为第14页。3.4硬件器件电路设计3.4.1电源电路设计任何电子设备都需要用直流电源供电,本电源直接输入一个6—10v的直流电压,再用稳压芯片得到+5v电压。电源的输入可以采用两路输入,可接一路备用电源。防止了突然断电而丢失数据的情况,进一步增加了系统的稳定性,电路图如图3-9所示。图3-9电源电路图3.4.2基于单片机的出租车计价器的设计全文共24页,当前为第15页。出租车中需要一个能准确获得车轮转动即路量信号的装置,以得到标准的脉冲信号送入单片机的定时/计数器T1即P3.5引脚,利用单片机的T1的计数功能完成100次的计数后产生中断来完成路程的测量。设车轮周长为1m,则霍尔传感器每产生100个脉冲便表示车已行程0.1km,根据际情况在程序中进行设置。汽车联轴器按圆周间隔嵌入磁钢,用霍传感器集成芯片A44E测并输出脉冲,其工作原理如图3-10基于单片机的出租车计价器的设计全文共24页,当前为第15页。图3-10路程测量电路3.4.在单片机的应用系统中,除单片机本身需复位以外,外部扩展的I/O接口电路等也需要复位,因此需要一个系统的同步复位信号:即单片机复位后,CPU开始工作时,外部的电路一定要复位好,以保证CPU有效的对外部电路进行初始化编程。51系列单片机的复位端RST是一个施密特触发输入,高电平有效。复位电路产生的复位信号经施密特电路整形后作为系统复位信号,加到51系列单片机和外部I/O接口电路的复位端.其电路图如图3-11。图3-12复位电路基于单片机的出租车计价器的设计全文共24页,当前为第16页。3.4基于单片机的出租车计价器的设计全文共24页,当前为第16页。AT89S52系列单片机内部有一个可控制的反相放大器,引脚XTAL1、XTAL2为反相放大器的输入端和输出端,在XTAL1、XTAL2上外接晶振(或陶瓷谐振器)和电容便组成振荡器。具体的时钟电路如图3-12。电容1、2的典型值为30pF+10pF(晶振)或40pF+10pF(陶瓷谐振器)。振荡器频率主要取决与晶振(或陶瓷谐振器)的频率,但必须小于器件所允许的最高频率。振荡器的工作受控制,复位后=0(=1)振荡器工作,可由软件置‘1’图3-11时钟电路4出租车计价系统的软件实现4.1模块介绍本系统的软件设计主要可分为主程序模块、定时计数中断程序、里程计数中断服务程序、中途等待中断服务程序、显示子程序服务程序、键盘服务程序六大模块。下面对各部分模块作介绍。基于单片机的出租车计价器的设计全文共24页,当前为第17页。4.2主程序模块基于单片机的出租车计价器的设计全文共24页,当前为第17页。开始开始初始化数据初始化数据S1按下?S1按下?否是是S4按下?S4按下?是否否设定默认单价(白天)设定晚上单价设定默认单价(白天)设定晚上单价否否语音播报按下S4?语音播报按下S4?是启动计价器是启动计价器设定中途等待单价设定中途等待单价里程中断?S4按下?S3按下?是否是显示金额及单价显示路程和单价返回时间显示否传感有信号?里程中断?S4按下?S3按下?是否是显示金额及单价显示路程和单价返回时间显示否传感有信号?否否否否是否是否是到是到一公里?是是总路程加1总路程加1总金额加1否S3按下否S3按下?是是停止计价和停止计价和里程计数语音播报语音播报基于单片机的出租车计价器的设计全文共24页,当前为第18页。图4-1主程序流程图基于单片机的出租车计价器的设计全文共24页,当前为第18页。在主程序模块中,需要完成对各接口芯片的初始化、出租车起价和单价的初始化、中断向量的设计以及开中断、循环等待等工作。当按下S1时,就启动计价,将根据里程寄存器中的内容计算和判断出行驶里程是否已超过起价公里数。若已超过,则根据里程值、每公里的单价数和起价数来计算出当前的累计价格,并将结果存于价格寄存器中,然后将时间和当前累计价格送显示电路显示出来。当到达目的地的时候,由于霍尔开关没有送来脉冲信号,就停止计价,显示当前所应该付的金额和对应的单价,到下次启动计价时,系统自动对显示清零,并重新进行初始化过程。主程序流程图如图4-1所示。4.3定时中断服务程序当在计数状态下脉冲停止输出信号,片内的T1定时器便被启动,每当计时到达10分钟,就对当前金额加上中途等待的单价,以后每十分钟都自动加上中途等待的单价。当中途等待结束的时候,也就自动切换到正常的计价。在定时中断服务程序中,每100ms产生一次中断,当产生10次中断的时候,也就到了一秒,送数据到相应的显示缓冲单元,并调用显示子程序实时显示。中断子程序流程图如图4-2所示。基于单片机的出租车计价器的设计全文共24页,当前为第19页。基于单片机的出租车计价器的设计全文共24页,当前为第19页。图4-2中断子程序流程图4.4里程计数中断服务每当霍尔传感器输出一个低电平信号就使单片机中断一次,当里程计数器对里程脉冲计满1000次时,就有程序将当前总额送入里程计数中断服务程序中。在该程序中,需要完成当前行驶里程数和总额的累加操作,并将结果存入里程和总额寄存器中。4.5中途等待中断服务程序当在计数状态下霍尔开关没有输出信号,片内的T1定时器便被启动,每当计时到达10分钟,就对当前金额加上中途等待的单价,以后每十分钟都自动加上中途等待的单价。当中途等待结束的时候,也就自动切换到正常的计价。4.6显示子程序显示程序利用定时器每1ms产生一次中断,相应变量置位,点亮一个数码管,显示一位数据,利用主函数内的循环,实现动态扫描显示,同时根据数码管余辉和人眼暂留现象,即可实现显示。4.7判键子程序键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦右按键按下,便转向相应的子程序处理,处理结束再返回。5系统调试根据系统设计方案,本系统的调试共分为三大部分:硬件调试,软件调试和软硬件联调。由于在系统设计中采用模块设计法,所以方便对各电路模块功能进行逐级测试。5.1里程计价测试基于单片机的出租车计价器的设计全文共24页,当前为第20页。由于试验条件有限,我们采用电动机附带霍尔元件作为车轮,电机为3V的直流电机,每分的转速可以达到几千转,我们设定电机每转一圈为车轮转动1米,当电机转动达到1000圈时,就表示已经到达了一公里基于单片机的出租车计价器的设计全文共24页,当前为第20页。表5-1的测试条件是:设定白天的单价是2.5元,起步价为5元(包含3公里),分别行驶不同里程测得数据如下表表5-1白天单价测试公公里41015374959总金额理论7.522.53590120145实际7.60222.4983590.12119.978145行驶路程理论41015374959实际41014.8936.9849.0258.023表5-2测试条件是:晚上的单价设定为3.0元,起步价为5元(包含3公里表5-2晚上单价测试公公里41015374959总金额理论82641107143173实际82640.989107143.01173.01行驶路程理论41015374959实际41014.8936.9849.0258.023表5-3测试条件是:设定在单价为2.5的情况下已经行驶了10(22.5)公里,进行中途等待,分别等待不同的时间(10分钟为一个单位),起步价为5元(包含3公里表5-3中途等待价格测试时间当前金额204050607080总金额理论27.532.53537.54042.5实际27.49931.49934.98937.50140.00142.499基于单片机的出租车计价器的设计全文共24页,当前为第21页。里程测试数据的分析:基于单片机的出租车计价器的设计全文共24页,当前为第21页。通过表5-1、表5-2、表5-3的数据,我们可以看到系统的计价功能很稳定,误差很小,几乎为零,不过还应该在实际的应用中测试。5.2掉电存储测试表5-4显示的数据表明,系统能在掉电的情况下正确的保存数据,并且能在系统上电后将数据读到相应的存储单元。表6-4掉电存储测试白天单价晚上单价中途等待单价掉电前数据2.53.02.5重新上电后数据2.53.02.5结论基于单片机的出租车计价器的设计全文共24页,当前为第22页。和一般计算系统一样,单片机的应用系统由硬件和软件所组成。硬件主要指单片机扩展的存储器,输入/输出设备等硬件部件的机器,而软件是各种工作程序的总称。只有硬件和软件紧密配合,协调一致,才能组成高性能的单片机应用系统。有强大的硬件同时也必须有完美的软件编程才能体现其优越性。软件是由要完成的任务总体设计所规定,所以首先要明确程序所要完成的任务,确定输入/输出,对输入数据应进行哪些处理,以及发生错误后该如何处理等。再结合硬件结构,进一步弄清软件程序所承担的一个个任务细节,确实具体实施的方法。对于本次毕业课设——出租车计价器的设计,通常采用顺序设计方法。这种系统软件由主程序和若干个子程序和几个中断服务程序所构成。中断服务程序对模拟路程的输入脉冲作出实时处理,使系统能并行地完成各单元数据的操作。而中断处理程序中必须包括现场保护,中断服务,现场恢复,中断返回等四个部分。中断服务程序是中断处理程序的主体,它是由中断要完成的功能所确定,主程序则是一个顺序执行的无限循环的程序,不停地顺序查询各种软件标志,以完成对日常事务的处理,子程序则为主程序所调用。从这次课设中明显体现了主程序,子程序、中断程序的功能。在调试中也相当的简化。基于单片机的出租车计价器的设计全文共24

温馨提示

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

评论

0/150

提交评论