出租车作为城市交通中独特的交通工具,在城市交通运营中具有不可替代的重要作用。出租车司机最关心计价器的营运数据管理是否方便,而乘客往往最在意出租车计价计费是否合理。为了减少出租车司机和乘客间不必要的误会,设计既能准确计价又能方便使用的计价器显得非常重要。
科技在不断发展,社会在快速进步,出租车计价系统也需不断地得到优化。文中以嵌入式单片机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数码管分屏显示存储数据,实现基本的计价功能。本系统对乘车中可能出现的情况考虑较全面,能根据白天、夜晚、中途等待等不同情况来调节单价,从而达到出租车智能计价的目的。当然,要达到大规模的实际应用要求,还需不断改进和完善系统综合性能指标,以达到实际应用要求。
上一篇:89c52串口发送接收小示例
下一篇:51单片机定时器和计数器区别
推荐阅读最新更新时间:2024-03-16 14:57