随着社会经济和现代交通的高速发展,出租车己成为城市公共交通中一道靓丽的风景,是人们日常生活中不可缺少的重要交通工具。在我国,城市出租车自二十世纪八十年代兴起,多年来广泛应用的计价器只具备简单计价功能,目前国内出租车计价器依然只是根据行车里程来计价。随着社会的进步,人们对出租车计价器的科学性和合理性提出了越来越高的要求,为此需对出租车计价系统进行优化设计。文中设计的出租车计价器能够实现按时问和里程来综合计算车价的功能,并能显示时间、里程、单价、总车价等相关信息,功能更齐全、使用更方便、而且系统稳定性更好。
1 出租车智能计价系统总体设计
出租车智能计价系统设计目标是:实现基本的时钟显示、价格调节、里程计价和相关扩展等功能。系统设计思路:以MCS51单片机为核心,进行硬件模块设计,并配以相关软件设计,利用I/O端口及其控制的准确性来实现系统功能。系统总体设计框图如图1所示。
在图1中,霍耳传感器电路系统将磁感应信号转换为脉冲信号,并且以此来计算出租车行驶里程;四按键键盘控制电路分别执行起始暂停、分屏切换、昼夜交替和功能设定等操作;DS1302时钟芯片用来进行时间计算及时间单价转换;采用AT24C02芯片可实现断电存储信息、来电读取信息功能;LED1602用来显示单价、时钟和金额等信息。
2 出租车智能计价器主要硬件模块设计
2.1 计时与时间显示模块设计
采用24小时制,分别用三个8位的LED数码管动态扫描法来显示秒、分和时钟,三个按键开关SP1、SP2、SP3分别接单片机的P0.0、P0.1、P0.2端口,用来调节时钟信号的秒、分和时钟。采用单刀双掷开关控制秒、分和时钟的加减调整;当发光二极管亮时,按一下按键开关实施加1调整;当发光二极管灭时,按下按键开关即进行减1调整。
2.2 计价与显示模块设计
计价与显示采用四个74LS164驱动来扩展32个并行端口,并利用4位LED数码管完成显示功能。假设出租车起步价为6元,单价为每公里1元,行驶车程小于2.5公里按照起步价来收费;当行车路程大于2.5公里时,每增加1公里车费将增加1元。
2.3 里程传感模块设计
出租车行驶里程是利用安装在出租车车轮上的霍尔传感器A44E检测到的脉冲信号来进行计算的。当里程信息传输到P3.5口后,经过处理传送到4位数码管显示。系统里程传感模块原理图如图2所示。
3 系统软件设计
3.1 主程序模块设计
在此模块设计中,需要完成出租车起价和单价的初始化、各接口芯片的初始化、中断向量的设计以及中断、循环等待等工作,还需设置启动/清除标志寄存器、里程和价格寄存器,并对其进行初始化设计。根据标志寄存器要求,分别完成启动、清除、计程以及计价等操作。系统主程序流程图如图3所示。
当按下计价器开关时计价器便启动计价功能,并根据里程寄存器中的内容进行计算,并将计算结果储存在寄存器中,然后显示出总运行时间和当前累计金额。当到达目的地后,霍尔开关便不再发送脉冲信号,停止计价功能,并显示当前应付金额。当下次启动计价器时,系统会自动清零,初始化过程重新进行设置。[page]
3.2 系统子程序模块设计
系统模块包括六个主要子程序:显示子程序、里程计数中断、定时中断、中途等待中断、启动/清除计程中断服务程序和按键服务程序。各服务子程序功能特征如下:
(1)显示子程序。显示子程序主要包括时分/秒/钟显示、路程单价显示、单价调节显示和金额单价显示等四个子程序,可进行分屏显示数据。
(2)里程计数中断。单片机每中断一次需要霍尔传感器输出一个低电平信号,当里程计数器累计里程脉冲满1000次时,程序将当前总额累加,使单片机进入里程计数中断服务程序,完成当前行驶里程数和总额的累加操作,并将最终结果转存至里程和价格寄存器中。
(3)定时中断。在定时中断服务程序中,每100 ms将产生一次中断,当累计产生10次中断时达到1 s,将数据输送到相应的显示缓冲单元,并调用显示子程序实现实时显示功能。
(4)中途等待中断。计数状态下霍尔开关并无信号输出,此时片内的定时器将启动。当计时到达5min时,将用当前金额加上中途等待的价格进行累加操作。并且每进行一次5min的等待,都将自动加一次中途等待单价;当中途等待结束时,计价器将立即自动切换,进行正常计价。
(5)启动/清除计程中断服务程序。启动/清除中断请求产生时,自动设定第一次中断为启动中断,第二次中断为清除中断,并将标志寄存器储存的内容分别相应地置“1”或清“0”。
(6)按键服务程序。在主程序中,若无按键操作时,单片机循环运行主程序;若有按键按下,便转向按键服务程序处理,结束后立即返回。
4 系统仿真测试
在KEIL中将设计的程序编译成对应机器语言,进入Proteus的ISIS 6软件环境,并将生成的HEX文件导入到MCS51中,在Proteus中画出电路原理图,进并行仿真测试。在此过程中可对问题程序进行修改和完善,调试直至仿真结果符合要求。
4.1 主要参数仿真
系统主要参数包括里程、耗时、单价和金额等。系统主要参数仿真效果如图4所示。
在图4中,出租车花费时间为12min27s,起步价里程为2.5km,收费等待时间为1次(每超时1次收费3元),营运里程6km,总金额为:6+(6-2.5)×1+3=12.5元,与显示总金额吻合。
4.2 相关重要参数仿真
系统设计中,可对起步价里程、单价和免费等待时间上限值等相关参数进行重新设计。系统相关重要参数仿真效果如图5所示(为研究问题方便,忽略了系统详细电路部分,只显示系统主要数据)。
从图5可以看出:
(1)将起步价里程由2.5km改为3km,单价改为2元;图5(a)显示路程为2km(起步价内),金额为6元;图5(b)显示里程为22km(起步价外),金额为:6+(22-3)×2=44元。
(2)免费等待时间上限值设置为5min,多次超等待上限时间可重复计费:图5(c)为路上没有等待时间的价格;图5(d)为路上有1次等待时间的价格(收费1元),故相比图(c)总金额多了1元。
系统仿真结果表明:本出租车计价器可根据实际应用需要设置相关参数,满足出租车分时、分场景计价功能,可基本实现系统功能要求。
5 结论
本文设计的出租车计价器是利用单片机与霍尔传感器相结合的原理来实现计价功能的。经过优化设计的出租车计价器集计程、计时、计费、存储、查看和统计等诸多功能为一体,具有功能齐全、性能可靠、电路简单等优势,因此具有较好的经济价值和应用价值。随着现代科技的发展和社会的进步,出租车计价系统将更加科学合理。
上一篇:基于单片机的多功能智能小车机器人
下一篇:MCS-51 指令系统表
推荐阅读最新更新时间:2024-03-16 13:54