1.8 串口电路(如图六)。
设计串口电路来完成计价器与PC机通信。计价器传送统计信息到PC机,接收并储存从PC机传送过来的基本信息,包括车轮直径,校正时钟,起步价、里程价、回空价、等待价等计费参数。在PC机上可以采用VB、VC等设计串口通信界面,通过串口电路管理者能够采集详实、准确的营运数据,这些数据经过PC机处理后能够详细的做出日报表、月报表、运作分析表等,比较直观的反映出租车的营运情况,便于管理部门全面掌握第一手资料,及时针对所出现的情况做出准确的判断和决策,从而实现微机化、科学化管理。
图六 串口电路
2.软件结构在主程序中,最主要是根据开关状态做不同的处理。状态0:保持空车;状态1:保持载客;状态2:空车变载客;状态3:载客变空车。主程序流程如图七所示。
图七主程序流程
2.1 保持空车
空车部分主要是做显示、PC机通信以及IC卡消费。通过设置程序实现按不同的按键完成不同的功能。例如按下“0”键,液晶屏会显示当日的统计信息,再按下“2”键会显示前一日的统计信息,按下“4”键显示后一日的统计信息,具体要完成的功能如表一所示。
2.2 空车变载客
这部分要完成禁止串口中断和启动计价。启动计价是为载客部分要完成的计价、计时程序做一些初始化的工作。例如要读出计价参数,给计程、计时、总误时单元清0,判断是否是夜班,启动定时器等。
2.3 保持载客
载客部分,主要是处理误时价和里程价,要用到50MS定时器中断和外部中断,需要定义计时单元来存储两个外部中断之间的时间,定义累计误时单元存储累计等待时间。50MS中断到来时置位F_50MS,在载客部分会调用50MS中断处理程序,流程如图八所示,该程序主要对计时单元进行处理,如果计时单元大于10S,调用误时价子程序ADD_PT。
通过霍尔传感器,车轮每转动一圈,会触发外部中断,在中断子程序里首先要关定时器,存T0计数值,给定时器重新置50MS计数初值后置位F_int0并开定时器。在载客部分也会调用外部中断处理子程序,流程如图九所示,当检测到车速低于特定值时,需要计算误时价,将计时单元加入累计误时单元中,其中ADD_PS是里程价子程序。
2.3.1 误时价。
误时价程序主要是判断累计等待时间是否超过规定的等待时间(Twait),超过以后,每过10S增加一次10S误时价,流程图如图九所示,其中F_wait表示起价等待时间到标志。
2.3.2 里程价
里程价子程序关键是判断计程单元S的大小,判断是起步价,还是3KM-8KM的短途价或是8KM以上的长途价。
2.4 载客变空车
这部分要完成停止计价、存统计信息、允许串口中断的操作,关键是存储统计信息。每月最多有31天,每天需要4个字节的容量,这样一个月的信息至少需要124个字节。因为采用的存储芯片
AT24C256是分页存储,每页有64个字节的容量,如果给每个月的信息分配128个字节,这样通过计算公式: (月-1)×32×4+(日-1)×4+ADDRESS_AT3 ( ADDRESS_AT3表示在
AT24C256里分配给统计信息的起始地址) 很容易存储和查看每日统计信息,所以我们给每个月的信息分配2页128个字节的容量。
3.结论本文详细的阐述了用HT46RU24单片机实现出租车计价器的软硬件原理。程序设计清晰、有条理,维护性强,整个电路完整、紧凑,成本低,且具有操作简单,管理方便,安全可靠、功能强的优点。计价器的核心HT46RU24单片机,软件编程灵活、自由度大、功能强,功耗低,性价比高,技术成熟。
上一页 [1] [2]