当前位置:首页 > 汽车电子 > 汽车电子
[导读]生活水平不断提高,出行的舒适已受到越来越多人的关注。于是,出租车行业发现了掘金的良机。但是总存在买卖纠纷困扰着行业的发展。归根究底就是要改良出租车的计价器。今天介绍的基于单片机系统设计的出租车计价器是

生活水平不断提高,出行的舒适已受到越来越多人的关注。于是,出租车行业发现了掘金的良机。但是总存在买卖纠纷困扰着行业的发展。归根究底就是要改良出租车的计价器。

今天介绍的基于单片机系统设计的出租车计价器是以单片机作为核心的控制元件,采用灵敏的霍尔开关型器件,具有功能强,性能可靠,电路简单,成本低的特点,加上经过优化的程序,使其具有很高的智能化水平。

1 系统硬件设计

出租车计价器系统以AT89S51单片机为核心,由按键电路、AT24C02掉电存储电路、里程计算电路、数码管显示电路组成。利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,不仅能实现基本的里程计价价格调节、时钟显示,而且能很大程度上实现扩展功能,同时可方便日后对系统进行升级。图1给出计价器系统框图。

1.1 里程计算、计价电路的设计

通过安装在车轮上的霍尔传感器A44E检测到的信号,送到单片机,经处理计算,送给显示单元,这样便完成了里程计算。检测原理如图2所示,P3.2口作为信号的输入端,内部采用外部中断0,车轮每转一圈(设车轮的周长是1 m),霍尔开关就检测并输出信号,引起单片机的中断,对脉冲计数,当计数达到1 000次时,也就是1 km,单片机就控制将金额自动增加,其计算公式为:

当前单价×公里数=金额

1.2 数据显示电路的设计

由于设计要求有单价(2位)、路程(2位)、总金额(3位)显示输出,加上另外扩展的时钟显示(包含时分秒的显示),采用LCD液晶段码显示,在距离屏幕 1 m之外就无法看清数据,不能满足要求,而且在白天其对比度也不能够满足要求,因此采用6位LED数码管的分屏显示。

设计使用一个定时/计数器每0.1 s向主机发1次中断请求信号,并利用并行接口电路完成对时钟的实时显示功能。同时,利用动态扫描电路完成对出租车的起价和当前累计价的显示。在出租车不走的时候,按下S1,可以实现数据的分屏显示;车在行走的时候只有总金额和单价显示屏在显示,当到达目的地的时候,客户要求查看总里程时,就可以按下S1切换到里程和单价显示屏,供客户查询。

1.3 AT24C02掉电存储电路的设计

该设计优点在其简单性和处理的高效性上。存储电路的作用是在电源断开的时候,存储当前设定的单价信息。存储电路如图3所示,采用Atmel公司推出的容量为2 KB的串行电可擦除、可编程存储芯片AT24C02设计,传输方式为I2C总线。

一般地址输入端 A0,A1,A2,写保护WP接Vcc或GND;SCL,SDA接上拉电阻(上拉电阻的阻值可参考有关数据手册选择,通常可选用5~10kΩ的电阻,设计中选用的电阻阻值为5.1kΩ)后再接单片机的普通I/O口,这便可实现单片机对AT24C02的操作。上拉电阻的作用是减少AT24C02的静态功耗。

1.4 启动及清除电路

在系统电路中,设计一个启动/清除按钮,用来作为启动里程计数或清除里程数计数的开关。将该按钮开关接到微机系统的某个中断请求线上,当开关被按下1次时就作为计程启动中断请求;再按下1次时,就作为系统的计程清零中断处理。

1.5 按键电路的设计

电路共采用4个按键,即S1,S2,S3,S4,其功能是:S1为分屏显示切换按键;S2为功能设定按键;S3为‘+’/白天晚上切换按键;S4为‘-’/中途等待开关。

2 系统软件设计

2.1 主程序模块

主程序流程图如图4所示,在主程序模块中,需要完成对各接口芯片的初始化、出租车起价和单价的初始化、中断向量的设计以及开中断、循环等待等工作。另外,在主程序模块中还需要设置启动/清除标志寄存器、里程寄存器和价格寄存器,并对它们进行初始化。然后,主程序将根据各标志寄存器的内容,分别完成启动、清除、计程和计价等不同的操作。

当按下S1时,就启动计价,将根据里程寄存器中的内容计算和判断出行驶里程是否已超过起价公里数。若已超过,则根据里程值、每公里的单价数和起价数来计算出当前的累计价格,并将结果存于价格寄存器中,然后将时间和当前累计价格送显示电路显示出来。

当到达目的地的时候,由于霍尔开关没有送来脉冲信号,就停止计价,显示当前所应该付的金额和对应的单价。到下次启动计价器时,系统自动对显示清零,并重新进行初始化过程。

2.2 定时中断服务程序

在定时中断服务程序中,每100 ms产生一次中断,当产生10次中断的时候,也就到了1 s,送数据到相应的显示缓冲单元,并调用显示子程序实时显示。

2.3 里程计数中断服务程序

每当霍尔传感器输出一个低电平信号就使单片机中断一次,当里程计数器对里程脉冲计满1 000次时,就有程序将当前总额累加,使微机进入里程计数中断服务程序中。在该程序中,需要完成当前行驶里程数和总额的累加操作,并将结果存入里程和总额寄存器中。

2.4 中途等待中断服务程序

当在计数状态下霍尔开关没有输出信号,片内的T1定时器便被启动,每当计时到达10 min,就对当前金额加上中途等待的单价,以后每10 min都自动加上中途等待的单价。当中途等待结束时,就自动切换到正常的计价。

2.5 启动/清除计程中断服务程序

当系统有启动/清除中断请求产生时,可以设定第一次中断为启动中断,第二次中断为清除中断,并在中断服务程序中将标志寄存器的内容相应置“1”或清“0”。其中,标志为“1”时表示本次中断是启动中断;为“0”时表示是清除中断。

2.6 显示子程序服务程序

由于是分屏显示数据,所以就要用到4个显示子程序,分别是:时分秒显示子程序(HMS_DIS),金额单价显示子程序(CP_DIS),路程单价显示子程序(DP_DIS)和单价调节子程序(PA_DIS)。

2.7 键盘服务程序

键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦右键按下,便转向相应的子程序处理,处理结束再返回。

3 结语

本系统具有功能强,性能可靠,电路简单,成本低的特点,完全归功于本出租车计价器采用单片机作为核心控制元件,采用灵敏的霍尔传感器器件作为检测,再加上经过优化的程序,智能化水平更上一层,解决了以往价器计价不准确,使用寿命短等缺点。是一款十分实用的方案。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

控制寄存器(Control Register)是中央处理器(CPU)中用于管理系统级操作的特殊寄存器,它为操作系统和硬件提供对处理器行为的精细控制。本文从计算机体系结构角度系统阐述控制寄存器的设计原理、功能分类、操作机制...

关键字: 寄存器 处理器

以下内容中,小编将对霍尔传感器的相关内容进行着重介绍和阐述,希望本文能帮您增进对霍尔传感器的了解,和小编一起来看看吧。

关键字: 传感器 霍尔传感器

在下述的内容中,小编将会对霍尔传感器的相关消息予以报道,如果霍尔传感器是您想要了解的焦点之一,不妨和小编共同阅读这篇文章哦。

关键字: 传感器 霍尔传感器

本文中,小编将对霍尔传感器予以介绍,如果你想对它的详细情况有所认识,或者想要增进对它的了解程度,不妨请看以下内容哦。

关键字: 传感器 霍尔传感器

在嵌入式系统开发中,硬件抽象层(Hardware Abstraction Layer,HAL)起着至关重要的作用。它为上层软件提供了统一的硬件访问接口,隐藏了底层硬件的细节,使得软件具有更好的可移植性和可维护性。C++作...

关键字: 嵌入式C++ HAL 寄存器 封装

采用51单片机最小开发板,由8位自制独立按键控制。单片机芯片为STC89C52RC,晶振为@12.000 mhz。8X8LED点阵屏模块由MAX7219驱动,MAX7219包含一个自动扫描电路。你只需要把要显示的数据发送...

关键字: 51单片机 MAX7219 寄存器

电源管理集成电路(PMIC)有益于简化最终应用并缩小其尺寸,也因此备受青睐。然而,当默认启动时序和输出电压与应用要求不符时,就需要定制上电设置。大多数情况下,电路没有可以存储这些设置的非易失性存储器(NVM)。对此,低功...

关键字: 电源管理 集成电路 寄存器

我从Digilent公司拿出了我的Arty Z7板,并在Vivado/Vitis 2021.2中创建了一个项目来让它工作,你可以在我的上一个项目帖子中阅读,我在QDSP-6061的5位数上显示滚动文本,上面写着“Hell...

关键字: 寄存器 AXI4 QDSP-6061 RTL模块

在单片机系统的设计中,复位电路是确保单片机正常工作的关键组成部分。它能够在系统启动时将单片机的内部寄存器和状态设置为初始值,保证单片机从一个确定的状态开始运行。与门芯片作为一种常见的数字逻辑芯片,有时会被应用于单片机复位...

关键字: 复位电路 寄存器 单片机

TDK开发的HAL 39xy是一款用于检测转向角的霍尔传感器,而转向角的检测一直是汽车实现自动转向的一大挑战。

关键字: 霍尔传感器 转向角
关闭