出租车智能计价器的设计与实现

发布者:心灵舞动最新更新时间:2016-06-17 来源: eechina关键字:AT89C51  智能计价器  PROTEUS 手机看文章 扫描二维码
随时随地手机看文章
  0引言  

出租车作为城市交通中独特的交通工具,在城市交通运营中具有不可替代的重要作用。出租车司机最关心计价器的营运数据管理是否方便,而乘客往往最在意出租车计价计费是否合理。为了减少出租车司机和乘客间不必要的误会,设计既能准确计价又能方便使用的计价器显得非常重要。  

科技在不断发展,社会在快速进步,出租车计价系统也需不断地得到优化。文中以嵌入式单片机AT89C51为主控MCU,设计多功能出租车智能计价器。此计价器能够按实际情况综合计价,并将乘车用时、行驶里程和乘车费用等重要信息显示出来,具有功能更齐全、系统更稳定、使用更方便等优势。  

1 出租车智能计价系统总体设计  

利用AT89C51作为单片机核心器件设计的智能计价系统,使用方便、灵敏性好,其强大的控制处理功能和可扩展功能为设计电路提供了很好的选择。利用其I/O端口及其控制的多功能特点,采用按键控制进行分屏显示,实现基本乘车计价和信息显示功能。系统总体设计框图如图1所示。 


  
图1 系统总体设计框图  

在系统硬件设计中,以AT89C51单片机为控制中心,外接A44E霍尔传感器信号采集模块、时钟模块、按键模块、显示模块以及掉电保护存储模块。其中,选用A44E霍尔传感器信号采集模块可将磁感应转换为脉冲信号,从而计测出行车里程;时钟模块采用DS1302芯片,设置标准时钟;掉电存储模块采用AT24C02芯片,以确保掉电时数据自动保存在存储单元;当系统重新上电时,能自动读取数据;按键模块采用四个按键控制,可实现分屏显示功能;显示模块采用8位LED数码管进行显示。

  2系统软件设计  

2.1系统主程序  

在主程序模块中,不仅需要完成参量和接口的初始化设计、出租车起步价和单价的设置以及中断、计算等操作,还应设置启动/清除标志、里程以及价格寄存器,并对其进行初始化。最后,为实现寄存器中内容的完整性及精确性,主程序应能分别完成启动、清除、计程及计费等操作。  

当出租车起步运行时,计价器同时启动开始计价,根据里程寄存器中的存储数据进行运算并判别行驶路程是否超过起步价的里程。若已超过起步价里程,则根据里程值、单价数和起步价等来综合计算当前的乘车费用;当处于等待时段时,若无脉冲输入,不产生中断,一旦等待时间超过预设时间则会把等待超标费用另加到乘车总费用中,并显示相关信息。系统主程序流程图如图2所示。 


  
图2 系统主程序流程图

  2.2系统模块程序  

系统模块程序主要包括五个服务程序:显示子程序、里程计数中断、定时中断、中途等待中断和按键服务程序。各服务程序介绍如下:  

(1)显示子程序。由于采取的是分屏数据显示方式,因此需要用到4款显示子程序:时、分、秒的显示,金额单价的显示,路程单价的显示以及标准时间的显示。  

(2)里程计数中断。霍耳传感器每输出一个低电平信号便中断一次,当里程计数器计满1000个里程脉冲时,便将当前计数送至里程计数中断服务程序,并将当前行车里程及相关数据传至行车里程与乘车费用寄存器中。  

(3)定时中断。在定时中断服务程序中,设置一次中断时间为50ms,20次中断时间为1s,计满1s后将数据送到相应显示单元实时显示。  

(4)中途等待中断。在计数状态下霍耳开关无信号输出时,片内定时器启动。等待计时每达到5分钟,就会在当前金额基础上自动加上中途等待费用。等待结束后计价系统自动转换到正常计价程序。  

(5)按键服务程序。按键服务采取查询模式,设置在主程序中。当无按键按下时,单片机循环运行主程序;按键被按下,则转向运行相应子程序,并进行其他操作处理。      

  3系统仿真与功能实现  

3.1仿真软件Proteus简介  

Proteus仿真软件是英国Labcenter Electronics公司设计开发的EDA工具,它不但拥有其它工具软件的仿真功能,而且可仿真微处理器和相关外围设备。Proteus软件功能强大:拥有Proteus电子设计工具,就等同搭建了一个电子设计和分析平台。利用功能强大的Proteus仿真软件,我们可以实现对电路的仿真,以确定方案是否可行,并且可使设计过程流畅。

  3.2电路功能仿真  

首先通过Proteus平台搭建电路,然后在KEIL中编写相应代码,并将生成的HEX文件在Proteus平台单片机模型中加载,便可看到仿真效果。  

(1)单价仿真情况。根据实际情况,白天和夜晚的起步营运价格是不一样。对白天、夜晚分别进行仿真实验,得仿真效果如图3所示。 


  
图3 单价仿真效果图  

(a)白天单价(b)晚上单价  

在图3中,图(a)为白天时间段,显示白天的起步价为6元;图(b)为夜晚时间段,显示夜晚的起步价为7元。  

(2)其它相关重要参数仿真。另外,对计价系统其他主要方面也进行了仿真研究(为讨论问题简便,忽略了图3所示电路部分,只显示数据部分),  

仿真效果如图4所示。具体介绍如下:  

显示3公里内和3公里外的单价、里程和金额:图4(a)显示路程为2公里(3公里内,起步价内),金额为6元;图4(b)为显示里程为22公里(3公里外),显示单价为2元,金额为44元。 


  
图4 其它相关重要参数仿真  

显示标准时间及里程用时:图4(c)为当前标准显示时间08:20:28;图4(d)为乘车过程用时20分28秒。  

有无等待仿真对比效果:图4(e)为路上没有等待时间的价格;图4(f)为路上有等待时间的价格。根据程序设置的每5分钟加1元,可以看出图4(f)中路上有等待时问,且等待时间为5分钟。  

(a)三公里内(b)三公里外  
(c)标准时间(d)里程用时  
(e)无等待时间(f)有等待时间  

通过观察上述仿真效果,可分析得知:能在数码管上显示运行单价、乘车里程、行车用时及总费用等相关信息,因此本系统设计达到了预期目标和要求。                         
                
  4系统实验及结果分析  

按原理图进行焊接,确保接线无误后。对实物进行调试与实验,最终实验结果如图5所示。 


  
图5 功能验证试验  

由图5实验结果可知:  

(1)图5(a)为显示单价。按下键1,进入载客状态,便会显示单价。  
(2)图5(b)为显示单价、里程和金额。此外当掉电时,数据被会送入存储单元,重新上电后能显示掉电前的相关数据,从而较好地实现掉电存储保护功能。  
(3)图5(c)为显示标准时间。按下键2便能查看标准时间。 
(4)图5(d)为行车用时。按下键3便能实时查看行车用时。  

实验结果表明,利用AT89C51主控,霍尔传感器进行采集,AT24C02进行掉电存储保护,配以程序,就能较好地实现出租车智能计价功能。

  5结论  

文中设计的出租车智能计价系统能够实时存储相关数据,并通过8位LED数码管分屏显示存储数据,实现基本的计价功能。本系统对乘车中可能出现的情况考虑较全面,能根据白天、夜晚、中途等待等不同情况来调节单价,从而达到出租车智能计价的目的。当然,要达到大规模的实际应用要求,还需不断改进和完善系统综合性能指标,以达到实际应用要求。
关键字:AT89C51  智能计价器  PROTEUS 引用地址:出租车智能计价器的设计与实现

上一篇:89c52串口发送接收小示例
下一篇:51单片机定时器和计数器区别

推荐阅读最新更新时间:2024-03-16 14:57

基于Proteus的单片机演奏系统的设计
    当前的很多用单片机实现音乐演奏的系统都是利用开发板结合仿真器实现的,这种方法不是很复杂,实现也较方便,但是调试不是很方便,且成本也较高。 本文提出的一种基于Proteus 的单片机演奏音乐的方法,非常简单实用,且该方法基于软件来实现的,所以成本非常低,调试方便,效果也很不错,适合于爱好音乐的单片机学习者。 单片机系统的设计分两大部分:硬件设计部分和软件设计部分。     1 硬件设计     硬件部分比较简单,如果在开发板上做实验可仿下面图1 电路连接。         AT89C51 单片机的P2.5 口控制一个8550 的三极管,三极管控制电磁蜂鸣器的电源通断。     如果用Proteus 软
[单片机]
基于<font color='red'>Proteus</font>的单片机演奏系统的设计
基于ARM的嵌入式虚拟开发平台
随着嵌入式设备(如智能MP4、数码相机、智能手机、TV机顶盒及PDA等)的普及程度越来越高,嵌入式培训、嵌入式开发成为热门,这些嵌入式设备多采用32位RISC嵌入式处理器作为核心部件,其中基于ARM核的嵌入式处理器独占鳌头,在32位RISC处理器中占据超过75%的市场份额。形成鲜明对比的是:目前大部份普通高校缺乏嵌入式实验室,或者规模太小,设备数量严重不足,学生缺乏嵌入式开发实训环境,很大程度上挫伤了学生的学习热情和学习兴趣。为了解决这种状况,本文提出了构建基于KeilμVision4 IDE和Proteus的嵌入式虚拟实验室。在原有设备的基础上,通过改造、整合等手段,实现具有嵌入式系统设计、开发等软、硬件同步仿真调试功能的嵌
[单片机]
基于ARM的嵌入式虚拟开发平台
ATMEGA168+L298控制电机正反转的代码与Proteus仿真
这是之前课程设计做的遥控小车,简单的控制电机转速使小车前进和后退,左转右转也是参考了网上别人的,有需要的可以看看,哪里有不足也请指出 ATMEGA168单片机+L298仿真原理图如下 单片机源码: int Foreward_key=2;//正转按钮 int Reverse_key=3;//反转按钮 int Stop_key=4;//停止按钮 int Trunleft_key=0;//左转按钮 int Trunright_key=1;//右转按钮 int Foreward_led=5;//正转指示灯 int Reverse_led=6;//反转指示灯 int Stop_led=7;//停止指示灯 int pinI1=8;//定
[单片机]
ATMEGA168+L298控制电机正反转的代码与<font color='red'>Proteus</font>仿真
Proteus环境下Avr I/O电平反复变化(看门狗复位)
学习了一个月的avr单片机了,从点亮一个二极管到通信部分,以前都是直接上硬件,下载验证,昨天开始下载了Proteus使用仿真,下载地址是 http://www.verycd.com/topics/2733851/ 发现点亮一个简单的二极管都不成功,cvavr下的程序如下: #include mega16.h void main() { DDRB=0XFF; PORTB=0X00; while(1); } 然而就是这么简单的一个程序得到的仿真结果是: 一会高一会低,非常郁闷,学了这么长时间,居然让一个灯常亮都不行了 于是群里问 可惜没人回答 终于,搜索中找到了以下是原文: 这个问题
[单片机]
基于AT89C51单片机的LED汉字点阵滚动显示屏设计
LED显示屏是利用发光二极管点阵模块或像素单元组成的平面式显示屏幕。它具有发光率高、使用寿命长、组态灵活、色彩丰富以及对室内外环境适应能力强等优点。并广泛的用于公交汽车、商店、体育场馆、车站、学校、银行、高速公路等公共场所的信息发布和广告宣传。LED显示屏发展较快,本文讲述了基于AT89C51单片机16×16LED汉字点阵滚动显示的基本原理、硬件组成与设计、程序编写与调试、Proteus软件仿真等基本环节和相关技术 1 硬件电路组成及工作原理 本产品采用以AT89C51单片机为核心芯片的电路来实现,主要由AT89C51芯片、时钟电路、复位电路、列扫描驱动电路(74HCl54)、16×16LED点阵5部分组成,如图1所示。其中,
[单片机]
基于<font color='red'>AT89C51</font>单片机的LED汉字点阵滚动显示屏设计
Proteus通过虚拟串口程序仿真51单片机串口的实现
1.参考文章下载地址: http://download.csdn.net/source/1927624 2. 虚拟串口 3. 串口调试助手 4. Proteus 7.5 sp3 实现方法 1.参考文章(参考文章是从CSDN下载的一篇PDF文件)已经很详细的说明了怎么实现,我就不想啰嗦了,我只提供几个关键的截图和串口调试程序代码 如果参考文章打不开我提供参考文章的下载连接 2.提供Proteus的连线图如下:(值得注意的是单片机的RXD和TXD分别和串口的RXD和TXD一一对应相连,这和用Proteus的虚拟终端给串口输入信号时,单片机和串口的连接方式是不一样的,用Proteus的虚拟终端作为串口输入信号的时候单片机的RX
[单片机]
<font color='red'>Proteus</font>通过虚拟串口程序仿真51单片机串口的实现
基于AT89C51和DSl8820的数字温度计电路设计
  随着现代信息技术的飞速发展和传统工业改造的逐步实现.能够独立工作的温度检测和显示系统应用于诸多领域。传统的温度检测以热敏电阻为温度敏感元件。热敏电阻的成本低,但需后续信号处理电路,而且可靠性相对较差,测温准确度低,检测系统也有一定的误差。与传统的温度计相比,这里设计的数字温度计具有读数方便,测温范围广,测温精确,数字显示,适用范围宽等特点。选用AT89C51型单片机作为主控制器件,DSl8820作为测温传感器通过4位共阳极LED数码管串口传送数据,实现温度显示。通过DSl8820直接读取被测温度值,进行数据转换,该器件的物理化学性能稳定,线性度较好,在O℃~100℃最大线性偏差小于0.1℃。该器件可直接向单片机传输数字信号,便
[电源管理]
基于<font color='red'>AT89C51</font>和DSl8820的数字温度计电路设计
基于Proteus的公交车液晶显示报站系统的设计与仿真
  1 引 言   公交车对提升城市形象、促进社会经济发展起到积极推动作用。但在我国偏远的西部和经济还不太发达的一些地方,公交车的发展还明显跟不上人们日益增长的物质需求,如2009 年3 月,康定县才成为四川藏区第一个开通公交服务的城市。对于我国二级以下的城市,目前公交车报站的情况大多还存在以下问题: ①没有自动报站,实行人工报站;②有自动报站,却停留在单一的语言报站上;③LED站台数字编号(比如002) 显示;④LED 汉字显示屏,但屏幕显示内容单一。这些在乘客对路线不熟悉或在乘车拥挤的情况下,势必会给乘客带来不便。本文设计了公交车报站系统液晶显示汉字的控制电路,并在Proteus 仿真平台上完成了模拟。   2 Proteus
[单片机]
基于<font color='red'>Proteus</font>的公交车液晶显示报站系统的设计与仿真
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved