当前位置:文档之家› 基于单片机的出租车计价器的设计说明

基于单片机的出租车计价器的设计说明

工业大学毕业设计说明书(论文)作者:马万鹏学号:084592 系:电子系专业:电子信息工程技术题目:基于单片机的出租车计价器的设计指导者:郝海辉评阅者:2011年 5月 29日毕业设计(论文)中文摘要毕业设计(论文)外文摘要目次1 引言 (1)2 出租车计价系统的计费要求与功能模型 (1)2.1 出租车计价器设计要求 (1)2.2 系统主要功能及模块组成 (2)3 出租车计价系统的硬件实现 (3)3.1 出租车计价器设计方案的论证与选择 (3)3.2 总体设计框图 (4)3.3 硬件器件选择 (5)3.4 硬件器件电路设计 (11)4 出租车计价系统的软件实现 (13)4.1 模块介绍 (13)4.2 主程序模块 (13)4.3 定时中断服务程序 (15)4.4 里程计数中断服务 (16)4.5 中途等待中断服务程序 (16)4.6 显示子程序 (16)4.7 判键子程序 (16)5 系统调试 (16)5.1 里程计价测试 (16)5.2 掉电存储测试 (18)结论 (18)参考文献 (19)致 (20)1 引言出租车计价器是出租车营运收费的专用智能化仪表,随着电子技术的发展,出租车计价器技术也在不断进步和提高。

国出租车计价器已经经历了四个阶段的发展。

从传统的全部由机械元器件组成的机械式,到半电子式即用电子线路代替部分机械元器件的出租车计价器,再从集成电路式到目前的单片机系统设计的出租车计价器。

出租车计价器计费是否准确、出租车司机是否作弊才是乘客最关心的问题,而计价器营运数据的管理是否方便才是出租车司机最关注的。

因此怎样设计出一种既能有效防止司机作弊又能方便司机的计价器尤为重要。

汽车计价器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具。

它关系着交易双方的利益。

具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很有必要的。

采用模拟电路和数字电路设计的计价器整体电路的规模较大,用到的器件多,造成故障率高,难调试,对于模式的切换需要用到机械开关,机械开关时间久了会造成接触不良,功能不易实现。

为此我们采用了单片机进行设计,相对来说功能强大,用较少的硬件和适当的软件相互配合可以很容易的实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能。

针对计费模式的切换,通过软件编程就可以轻易而举的实现。

避免了机械开关带来的不稳定因素。

2 出租车计价系统的计费要求与功能模型2.1 出租车计价器的设计要求设计一个出租车自动计费器,计费包括起步价、行车里程计费、等待时间计费三部分,用数码示器管示总金额,运行时间,暂停时间。

并且用数码显示管显示总里程,同时用数码显示管显示等待时间和运行花费时间。

本计价器分为计费功能跟显示功能两个部分。

计费功能具体情况如下:费用的计算是按行驶里程收费。

设起步价为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计价器各功能模块3 出租车计价系统的硬件实现3.1 出租车计价器设计方案的论证与选择对于出租车计价器的设计,可以采取很多种方案,但是方案之间有自己的优缺点,所以我们必须根据实际生活中的需要选择一种最适合的。

下面我们依次讨论两种比较常用的设计方案,并从中确定一种我们要用的方案。

方案一:采用数字电子技术,利用555定时芯片构成多谐振荡器,或采用外围的晶振电路作为时钟脉冲信号,采用计数芯片对脉冲尽心脉冲的计数和分频,最后通过译码电路对数据进行译码,将译码所得的数据送给数码管显示,一下是该方案的流程框图,方案图如图3-1所示:图3-1方案一方案二:采用MCU 技术,通过单片机作为主控器,利用数码显示管作为显示电路,采用外部晶振作为时钟脉冲,通过按键可以方便调节,以下是方案二的系统流程图,本方案主要是必须对于数字电路比较熟悉,成本又不高。

方案图如图3-3所示:图3-2方案三方案总结:通过两个方案的比较,第一种方案的电路不太稳定,而且整体设计相对繁琐。

综合所述不符合当前出租车计价器的需求。

因此本次设计采用方案二,不但控制简单,而且成本低廉,设计电路简单。

并且单片机方案有较大的活动空间,不但能实现所有要求的功能而且能在很大的程度上扩展功能,并且还可以方便的对系统进行升级,这也是我们选择第二种方案的原因。

3.2 总体设计框图MCU键盘控制 掉电存储模块 里程计量单元 串口显示驱动电路显示 模块语音模块由于硬件限制,无法通过具体的汽车转动圈数得出出租车行驶总路程,所以通过计数脉冲模拟汽车转动的圈数,每一千个脉冲记为一公里,即可计算得到车轮旋转几周出租车能行驶一公里的路程。

可外部输入电脉冲也可以软件设置脉冲。

输出的方波信号接入单片机系统中,通过计算接收到的方波个数计算当前所行驶的路程。

并且系统根据单片机的定时器T0产生的时钟,选择相应的收费标准进行收费的计算。

然后系统通过键盘操作和数码显示,来实现启动、暂停、复位、校时、显示时间,修改价格,确定等功能,还能够切换显示当前的行驶里程和需付的车费。

对于本次设计的核心模块我们选择单片机,因为单片机本身具有独特的优势,控制简单,成本低廉,并且设计电路简单。

最重要的是单片机还可以在很大程度上就行扩展与升级。

对于显示模块来说在应用系统中,使用的显示器主要有LED(发光二极管)和LCD (液晶显示器)。

这两种显示器成本低廉,配置灵活。

LED是由发光二极管显示字段的显示器件。

LCD显示器的工作原理是利用液晶的物理特性:通电时排列变得有序,使光线容易通过;不通电时排列混乱,阻止光线通过。

本次设计中需要显示时间、日期等简单字符,用LED即可满足要求,另外LCD比LED价位高。

因此本设计选择用六个七段数码管动态扫描来实现时钟与计价的显示。

对于里程计量模块,我们利用传感器进行检测,并通过计算得出里程数。

对于掉电保护模块,我们则利用电可擦除存储芯片。

来完成在电源断开的时候,存储当前设定的单价信息。

对于键盘模块,由于调节信息不多,故采用4个独立键盘即可。

对于语音模块,要求使用方便的单片录放系统,外部元件较少,重现优质原声,没有常见的背景噪音即可。

具体单片机控制方案如图3-3所示:图3-3单片机控制方案 3.3 硬件器件选择 系统总体框架设计完成后,开始选择硬件器件。

硬件器件选择应满足性能指标的需求,它主要包括:MCU 、显示模块、里程计量模块、掉电保护模块、键盘模块、语音模块、电容电阻等。

这里只介绍主要硬件器件的选择。

3.3.1 MCU 选型本计价器的设计我们选用了AT89S52单片机,AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。

使用Atmel 公司高密度非易失性存储器技术制造,片上Flash 允许程序存储器在系统可编程,亦适于常规编程器。

在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash ,使得AT89S52为众多嵌入式控制应用系统提供高灵活,超有效的解决方案。

AT89S52单片机电路图如图4-2所示:VCC :供电电压。

GND :接地。

P0口:P0MCU 键盘模块 掉电存储模块 里程计量模块 串口显示驱动电路总金额 显示 单价 显示口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门流。

当P1口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FIASH编程时,P0 口作为原码输入口,当FIASH进行图3-6校验时,P0输出原码,此时P0外部必须被拉高。

图3-4P1口: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”时,它利用部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为AT89S52的一些特殊功能口,P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。

在FLASH编程期间,此引脚用于输入编程脉冲。

在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。

因此它可用作对外部输出的脉冲或用于定时目的。

然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE 脉冲。

如想禁止ALE的输出可在SFR8EH地址上置0。

相关主题