APP下载

基于MCS—51单片机的出租车计价器

2017-04-27余雅婷

电脑知识与技术 2016年29期
关键词:单价里程按键

余雅婷

摘要:在中国随着生活水平的提高,越来越多的人们开始选择乘坐出租车这种既方便又快捷的出行手段。以单片机AT89S52为核心控制元件,硬件系统包括有复位电路、振荡电路、路程测量电路、按键电路、显示电路等。能够在1602字符型液晶显示屏上显示里程、单价、起步价、总价,并且可以通过按键调整单价。该文设计的出租车计价器,其硬件电路所用元件较少,成本低廉,调节简单;软件采用c语言编程,其灵活性高,可读性强。

关键词:52单片机;出租车计价器;霍尔传感器;1602液晶显示屏;仿真

中图分类号:TP368.1 文献标识码:A 文章编号:1009-3044(2016)29-0233-02

1背景

随着生活水平的提高,越来越多的人们开始选择乘坐出租车这种既方便又快捷的出行手段。随着嘀嘀打车等一系列打车软件的诞生,乘客乘坐出租车的费用也有了很大程度的下降。出租车开始成为生活在快节奏模式下的人们短途出行的首选交通工具。在我国的交通运输中,出租车所处的地位也越来越重要。

具有更加精良的出租车计价器无论是对于出租车司机还是乘客都是十分重要的。基于单片机的出租车计价器具有功能强,性能可靠,电路简单、成本低的优点,且灵活性强,能通过软件编程实现多种附加功能。

2系统硬件设计

硬件系统包括有复位电路、振荡电路、路程测量电路、按键电路、显示电路等。

2.1振荡电路

单片机发出时钟信号的方法有两种,它们是内部时钟方法和外部时钟方法。本次设计采用的是内部时钟方式:电路由两个电容和一个晶振构成,单片机内部存在一个高增益反相放大器,XTAL1及XTAL2端口分别作为单片机内部放大器的输入端和输出端,该放大器和功能是反馈元件的石英晶体振荡器一块儿组成自激振荡器。振荡电路脉冲经历二分频之后成为系统的时钟信号,然后在二分频的底子之上进行三分频发出地址锁存容许信号,这时候获得的信号为机器周期信号。采用12MHz的晶振,作为系统的时钟源。晶体振荡频率高,可得硬件系统的时钟频率高,因为本电路确定单片机运转速度所以单片机运转速度也跟着变快。

2.2复位电路

本电路除了正常的初始化功能外,当单片机系统在运转过程当中遭到外界情况滋扰而发生程序错误时,按下该电路的复位按钮,单片机内部的程序将自动从头执行。想实现复位有上电自动复位及按键手动复位这两种方法。其中按键手动复位又分电平模式和脉冲模式。在本次设计中,为方便操作,采用按键手动电平复位。电平复位原理:电路输出端接RST引脚,按下按鈕后,电源经两电阻分压后在RST端产生一个高电平。RST端口的高电平只需要确保两个机器周期时段,单片机就将执行复位的一系列操作。单片机的复位速率要比外围I/O接口电路高,为保证硬件系统成功地复位,我们在进行程序设计时,必须要注意放置一定量的复位延迟时间。

2.3按键控制电路

单片机的P1.0管脚接复位按钮,P1.1管脚接单价上调按钮,P1.2管脚接单价下调按钮,P1-3管脚接白天夜晚切换按钮。按下复位按钮后,单片机P1.0端口为低电平,通过软件编程,调用清零子程序,在程序中给各数值赋0代码,用于将记录数据例如里程、总价、单价,自动恢复到初始状态,方便下次计价。该四个按钮在计价过程中仍然有效。

2.4路程测量电路

霍尔传感器是以霍尔效应作为原理创造的某种磁场传感器,其分为开关型和线性型。线性型输出模拟量,开关型输出数字量。A44E是单极性开关型的霍尔器件,它的工作电压范围相对较宽,为4.5V到18V。A44E输出的信号满足TTL电平准则,能够直接接入到单片机的I/O端口,并且它的最高检测频率能够到达1mhz。安装在车轮上的A44E霍尔传感器,将检测到的信号送给单片机,单片机的P3.2端口作为信号的输入端,利用该端口的第二功能即外部中断0使编程得以简化。经过简单的计算处理之后,送给显示模块,这样便完成了里程数的测量。如图1所示。

计价原理:假定车轮的周长是0.001千米,每当车轮转动一圈,霍尔开关就检测并且输出信号,引发单片机的中断,每逢霍尔开关输出一个低电平信号就将令单片机发生一次中断,对脉冲进行计数。当计价器对脉冲计数达到1000次时即车行驶了1千米时,在单片机的控制下,总价将自动增加。本次流程中,需实现将目前行驶的里程数和总价进行叠加,并把运转成果保留到里程和总价寄存器当中。其计算公式为单价×公里数=总价。

2.5显示电路

本设计将LCD1602液晶显示器的八位并行数据总线连接到单片机的P0口,RW端口接单片机P2.5口,RS端口接单片机P2.6口,E端口接单片机P2.7口。在VEE引脚接一个阻值为1K的电位器,用途是调节液晶的对比度。在LCD屏上可显示公里数,总价,单价的数据。

3系统软件设计

本设计中,软件设计使用模块化操作,充分利用各个模块间的相互关联,通过主程序调用各个子程序令程序通俗易懂,方便易行。整体程序流程图如图2所示。

令main函数开始编写,首先应当进行液晶初始化、外部中断初始化和参数初始化。经过这一系列初始化,使得硬件处于准备就绪状态。

判断有无按键按下,如果没有则无计费脉冲,显示屏显示初始值;如果有则通过判断调节单价,单价切换,参数复位它们的状态,以分别调用不同的子程序。这些放在硬件系统中就是通过按下各个控制按钮,如单价上调下调按钮、白天/夜晚切换按钮、复位按钮,来分别进行不同的指令,最后液晶显示屏依据输入的信息,显示不同的数据信息,从而达到了软件控制硬件,输入信息控制输出信息的目的。

根据上述步骤设计出的程序具有很强的逻辑性和实用性,其灵活性高,可读性强。

4系统仿真和调试

本设计是在Keil uVision4软件上对AT89C52单片机进行C语言编程。在Protues软件上进行仿真。

按下硬件系统路程测量电路中的开关,里程开始上涨,当公里数小于3km时,随机挑选某一里程数,LCD显示结果如下:

当公里数超过3km时,随机挑选某一里程数,LCD显示结果如下:

4结束语

以AT89S52单片机作为中枢控制元件,出租车计价器具有精度高、具有灵敏度高、性能可靠、电路简单、外接元件少、成本低、实用性强等特点。能够很好地满足出出租车计价器的要求。

猜你喜欢

单价里程按键
如何求单价
嘟嘟熊家的百货商店(二十四)——单价是多少
基于有限状态机的按键检测程序设计
算单价
腾势400 用在上海市区的来回穿梭克服里程焦虑
幸福合力 开启幸福里程
幸福合力 开启幸福里程
一种多方向导光按键结构设计
算里程
按键的多种状态检测及消抖处理方法