基于51单片机的出租车计费系统

摘 要

现阶段,随着生活质量的发展,人们的出行越来越多地选择出租车。目前,出租车上的计价器功能较为单一,
为了让出租车的计价功能更加智能化和科学化,于此设计了一款基于51单片机的出租车计费系统。
  该系统基于STC89C51单片机主控制器,由复位电路、晶振电路、液晶显示模块、测速模块、语音模块、按键模
块、时钟模块等组成。用户可以通过设置按键调整计费系统系统时间和各个场景下的收费标准,另外还设置有开始/
结束计价键、等待开始/结束键、加值键、减值键等功能按键。系统计价时,电机带动磁钢转动模拟出租车行进,会
有一个显示屏显示收费的价格、行驶距离、运行时间和等待的时间等一些信息。在结束计费时,电机停止转动,语
音播放模块能够通过扬声器播放系统记录的总里程和收费价格。
关键词: 单片机;;霍尔测速;声音提醒;智能显示

1.系统方案选择

本章通过比较各个功能模块设计方案的优缺点,选出最适合本系统所用器件,从而实现最佳设计效果。最后介
绍出租车计价系统的方案设计。
1.1.主控制器方案比较
方案一:
  将使用MSP430单片机,该芯片是可以将多书模拟、数字和微控制器集合在这个芯片中,16位的混合信号处理
器,具有低功耗模式,开发较为繁琐、价格较为昂贵。
方案二:
  将使用STM32F103C8T6单片机,该型号为32位单片机,为cortex-M内核的芯片,提供丰富的函数库。但该型号单
片机价格较贵,开发难度较大,而且该单片机目前出现断供的情况,不可大量使用。
方案三:
  将使用STC89C51单片机,其具有40个引脚,其中的32个端口为双向输入/输出的端口,8位单片机。这个单片机
具有开发者上手快、开发简单等特点。
  经过比较,方案三中的51单片机开发更为便捷,数据处理能力和开发资源能够满足本设计的功能需求。与其他
种类的中央处理芯片相比,该芯片有着更多的优势,如更为低廉的价格、开发更为便捷等。包含满足工作要求的电
源电路,晶振电路,复位电路,滤波电路及下载电路,能够实现资源的最大化利用。
1.2.液晶显示屏方案比较
方案一:
  将使用LCD1602屏幕,该屏显示功能较为强大,具有16个引脚,能够显示两行内容,每一行能够最多显示16个数
字、字母、符号或者其他字符,最佳工作电压为5V。既可以通过串行数据控制显示,也可以通过并行数据控制显
示。
方案二:
  采用0.96寸OLED液晶显示屏,该显示屏功耗较低,具有4个引脚、尺寸为0.96寸,采用SSD1306驱动,通过IIC总
线方式读写数据,分辨率可达128*64,能够显示多种颜色,支持自定义字库,其制作材质OLED自发光,无需额外提
供背光。
方案三:
采用数码管显示。数码管较便宜,但是一直动态扫描刷新会大量占用CPU资源,而且需要较多的端口去连接。
方案四:
  采用LCD12864液晶显示屏,其具有多种接口驱动方式,例如4位或者8位并行。可以显示数字、字符、字母、图
案等,显示内容丰富,屏幕较大。这款屏能力强大,显示内容多,但是成本高,对于显示空间有一定的浪费。
  综合比较上述方案,方案一中的LCD1602液晶显示屏在多方面都具有显著优势,用来显示本设计中的信息比较合
理。
1.2.1.测速模块方案比较
方案一:
  使用能够感应磁场变化的霍尔传感器测量距离。在转动圆盘上安装磁钢,圆盘在电机的带动下做圆周运动,当
它靠近传感器时,会输出一个脉冲,通过比较放大器处理该脉冲,并输入主控制器计算出租车速度。
方案二:
  采用光电传感器测量距离。将光源置于开孔盘背面,光电传感器能够检测到透过开孔盘孔洞的光,通过转动开
孔盘,能够精准地通过光电传感器的输出数据计算出出租车的行驶速度。
  通过比较上述方案,光电传感器易收到外界光源的干扰,不适用于此种运行性的距离测定。霍尔传感器具有灵
敏度高、体积小等特点适用于本设计中的速度测算。
1.3.语音芯片方案比较
方案一:
  采用SC8065语音芯片。该芯片能够在不同的地址段下存储分段语音,单片机读取语音方式是通过发送不同数量
的脉冲,从而较为简单地获取到语音信息。其可最多存储64段的语音长度,完全符合本设计的播放需求。
本设计决定选用SC8065芯片,用来计费结束时的里程和价格播报。
1.3.1.时钟芯片方案比较
时钟芯片用来为系统提供时间,通过单片机读取芯片内部数据,从而在液晶屏上显示出系统时间。
方案一:
  采用DS1302时钟芯片进行计时,该芯片能够精准计时,串行数据传输,采用32.768KHZ晶振作为时钟源,性能较
高,且具备备用电源供电的能力,能够在断电情况下持续计时。
方案二:
  采用内部时钟计时,优点是不需要额外搭建电路、降低成本,缺点是断电后计时数据丢失,无法在断电情况下
继续计时,另外就是计时精度有限,长时间的计时误差大。
综合比较上述方案,DS1302时钟芯片电路设计简单,计时准确,符合本设计中对时间读取的要求。
1.3.2.数据存储芯片方案比较
方案一:
采用AT24C02数据存储芯片。该芯片内部具有256个8位字节存储区域,通过IIC总线读写数据。
方案二:
  采用W25Q64数据存储芯片。该芯片为大容量的存储芯片,采用SPI总线方式读取数据,具有低功耗的特点,传输
速度快,供电范围较广,缺点是价格较高。
  经过比较上述两个方案,结合本设计的实际存储需求,决定采用方案一中的AT24C02芯片,用来存储本设计中的
各个参数设定值。
1.4.系统方案设计
  系统框架图如图01.1所示。将用STC89C51单片机作为主板,用来读取AT24C02芯片存储的设置,读取DS1302时钟
芯片的数据,同时动用LCD1602显示模块显示计价信息和系统时间。当系统开始计价时,单片机读取霍尔传感器输出
的脉冲信号,然后通过程序控制SC8065语音芯片输出指定存储单元下的语音数据,实现出租车行驶里程和总价格信
息的智能播放。同时,设计独立按键电路,用来调整计价信息、时间信息和开启/停止计价等。
在这里插入图片描述

图01.1 系统总体方案框图

2.系统硬件电路设计

本章介绍了系统各个功能模块的硬件电路设计,同时阐述各模块工作原理。
2.1.主控制器设计
  单片机的小电路图如图02.1所示,是以STC89C51单片机,其具有40个引脚,包括P0、P1、P2、P3口,每个均含
有8个引脚。使用的电路包括复位电路和晶振电路,并且将程序下载口引出,使用P3.0和P3.1进行程序的串口下载。在这里插入图片描述

图02.1 单片机最小系统电路图
晶振电路如图02.2所示。由一个12MHz的晶振和2个30pF的电容组成,构成该电路。
复位电路如图2.3所示,当在单片机的引脚RST上输入VCC时,整个主控器程序会进行复位。用户可以有两种方式进行
复位:第一种是按下复位电路中的复位按键;第二种是重新对系统进行供电,。在这里插入图片描述

图2.3 复位电路
2.2.液晶显示硬件设计
  LCD1602液晶显示模块实物图如图2.4所示。其由16个引脚组成,可以调节液晶的显示对比度,同时需要提供背
光电源,数据口为8位,连接至单片机的端口,需要接上拉电阻。在这里插入图片描述

图2.4 LCD1602液晶显示模块实物图
  LCD1602液晶显示屏电路图如图02.5所示。单片机的P0引脚连接液晶显示屏的D0-D7端口,数据或命令选择端口
RS、数据读写选择端口R/W和使能引脚E分别连接到单片机的P1.5、P1.6、P1.7。VL端口能够调节液晶显示的对比
度,通过接入可调电位器来调整。
2.3.霍尔测速硬件设计
2.3.1.霍尔效应
霍尔传感器是一种磁场传感器,它是通过霍尔效应原理制作而成的,能够感应磁场的变化。
2.3.2.测速原理
  系统在转轴的边缘粘贴有磁钢,磁钢会随着转轴转动,所以会周期性的在霍尔传感器A3144上产生一个磁场,根
据霍尔效应的原理,可知能够输出变化的电压值。通过电压比较器LM393的比较,能够输出一个频率和转速成正比的
方波信号。从而能够通过单片机检测计算出转速。
2.3.3.霍尔测速电路设计
  霍尔测速的电路图如图2.8所示,当固定在转轴上的磁钢转动一圈经过A3144霍尔传感器时,霍尔传感器的OUT引
脚输出高电平,LM393的反相输入端输入电压为2.5V,当OUT引脚的电平高于2.5V时,根据电压比较器的原理,LM393
的引脚1便会输出高电平。当磁钢转动到远离时,A3144霍尔传感器的OUT引脚输出低电平。这样,通过电压比较器的
转换,能够将转轴的转动速度转化为一定频率的方波信号。
2.4.DS1302硬件设计
2.4.1. DS1302芯片介绍
  DS1302芯片是一款高性能的时钟芯片,内部拥有一个31*8的数据可读写存储器,其能够对年月日、时分秒、周
计时,工作电压范围较为广泛,为2.5V~5.5V,与单片机相连接只需要三个接口:SCLK、I/O和RST。该芯片最大的特
点是拥有两个供电引脚,既能够通过系统的电源进行供电.DS1302时钟芯
2.4.2. DS1302电路设计
  DS1302电路图如图02.10所示,VCC1接入备用电池,引脚X1和X2上接入32.768KHz的晶振,SCLK、I/O、RST引脚
接上拉电阻后输入单片机。在这里插入图片描述

图02.10 DS1302电路图
2.5.存储芯片硬件设计
2.5.1.AT24C02芯片介绍
  该芯片是一种E2PROM,其通过IIC总线读写数据,具有专用的写保护功能,芯片内部具有256个8位字节。
AT24C02芯片实物图如图2.11所示。在这里插入图片描述

图2.11 AT24C02芯片实物图
AT24C02读/写操作时序图如图2.12所示。在这里插入图片描述

图2.12 AT24C02读/写时序图
  本设计仅有一个存储芯片挂在IIC总线上,地址设置为0即可,需要将引脚A0-A2接地。引脚SDA和引脚SCL连接单
片机的IIC总线上。
2.6.独立按键硬件设计
  独立按键电路图如图2.14所示,系统设计了5个独立按键,一端连接输入输出端口,一端接地。按键按下时,单
片机端口电平被拉低,此时循环检测即可得出哪个按键被按下,从而执行相应的操作。
上述5个独立按键的功能具体如下:
按键KEY2:如果系统没有处于设置状态下,按下该按键开始计价或者结束计价。
  按键KEY3:在系统处于计价状态时,按下该按键后系统开始计时,计算等待客人的时间,此时再次按下该按键
时,便会退出此次等待计时。
  按键KEY4:系统主界面下,按下按键会进入设置模式,此时起步价格、白天的等待价格/每公里行驶价格、夜间
的等待价格/每公里行驶价格进行设置。
按键KEY5:当系统处于设置状态时,按下此按键后能够对相应值进行加操作,每次增加0.1,支持连按操作。
按键KEY6:当系统处于设置状态时,按下此按键后能够对相应值进行减操作,每次减少0.1,支持连按操作。
系统电路图
在这里插入图片描述

系统PCB图
在这里插入图片描述
在这里插入图片描述

3.系统软件设计

3.1.主函数设计
  主函数流程图如图03.1所示,先对LCD1602屏幕进行初始化,然后定时器会打开初始化,然后会读取存储在存储
芯片AT24C02芯片的设置数据。然后开始按键检测与处理,判断标志位set_f是否等于0,如果等于0则判断是否计
价,如果不等于0,则显示设置界面。计价判定中,如果标志位start等于1,则显示计价界面,否则显示行车总价。
在这里插入图片描述

图03.1 主函数流程图
3.2.液晶显示函数设计
  液晶显示采用LCD1602液晶显示屏,液晶显示函数流程图如图03.2所示,程序首先判断是否在液晶显示屏的第一
行显示内容,如果是的话则根据在液晶显示屏的第几列x显示计算出应该写入的地址:Address=0x80+x;如果是非首
行显示内容,则根据在液晶显示屏的第几列x显示计算出应该写入的地址:Address=0xc0+x。完成上述计算后,将显
示地址Address写入显示屏,然后按照字符顺序依次写入显示内容,其中,需要通过指针s判断是否写入完成,如果
指针s指向空值,则代表写入完成,退出循环。将数据写入液晶的函数中的参数x代表液晶屏上的横向坐标,参数y为
液晶屏上的纵向坐标,指针p是需要显示的字符串。。
3.3.时间读取函数设计
  时间读取采用DS1302芯片完成,时间读取函数流程图如图03.3所示。对该芯片写入时间信息时,首先发送需要
写入的寄存器地址,然后将数据写入该地址下的寄存器,上升沿实现数据的写入。
3.4.语音播报函数设计
  语音播报采用SC8065语音芯片,语音播报函数流程图如图3.4所示,该芯片具有很多语音地址,每个语音地址下
都存储了一段语音,或为数字、或为字母、或为汉字。程序控制播报时,语音芯片正常使用前,需要首先激活用来
复位语音芯片,只要输入芯片的RESET引脚100us的高电平。然后发送完成200us后,会延时100us后DATA引脚连续输
出x个脉冲宽度为100us的信号,语音芯片会自动输出地址x下的语音数据,语音输出引脚会一直处于高电平状态,如
果该引脚输出低电平这说明语音数据播报完毕。需要注意的是,编写播报程序时,必须检测芯片的播报状态,这样
才不会造成播放过程中出现错误情况。

4.系统测试

4.1.液晶显示功能测试
  液晶显示功能测试图如图4.1所示,系统接通电源,点击电源开关后,能够看到液晶显示屏上第一行显示“THE
TAXI”,第二行显示“05::41:53”,说明LCD1602液晶显示屏能够正常工作。
图4.1 液晶显示功能测试图在这里插入图片描述

4.2.时钟功能测试
  时钟功能测试图如图4.2所示,能够看到系统从DS1302时钟芯片中正确地读取到时间数据,并且显示到显示屏
上。同时,系统断电一段时间后,再次接通系统电源后,能够看到时间并没有因为断电而停走,说明时钟模块的备
用电源起到了断电时为时钟模块供电的功能。在这里插入图片描述

图4.2 时钟功能测试图
4.3.按键功能测试
按键分为设置键、上下调整键,设置按键功能测试图如图4.3所示,能够看到可以正常调节夜间计价值。在这里插入图片描述

图4.3 设置按键功能测试图
启动计价按键测试图如图4.4所示,能够看到系统正常显示里程、价格、时间和等待时间。在这里插入图片描述

图4.4 启动计价按键测试图
停止计价功能测试图如图4.5所示,按下停止计价按键后,能够看到系统显示总的价格。在这里插入图片描述

图4.5 停止计价功能测试图
4.4.存储功能测试
  设置计价数据后,将系统断电后再次重新上电,能够查看到计价数据是上次设置的值,说明系统的数据存储功
能正常。
4.5.系统整体测试
  系统整体测试图如图4.6所示,使用系统模拟整个出租车计价流程,能够看到系统液晶显示屏上显示行驶里程、
运行时间、系统时间和等待时间,电机带动磁钢转动,能够使用上下键调整运行速度,按下停止键后结束计价,语
音模块通过扬声器播报本次出租车计费的价格。
图4.6 系统整体测试图
在这里插入图片描述

5.总结与展望

本系统采用51单片机作为控制中心,以智能化和科学化计费为目标,结合时钟技术、液晶显示技术、语音播报
技术、霍尔传感技术等,实现了出租车的科学计费。系统空闲状态下能够显示时间,能够对系统的时间和各个收费
标准进行设置。在计费模式下,系统能够准确显示出租车的行驶里程和行驶时间,并且计算并显示动态总价。结束
计费时,语音播报出租车行驶的公里数和总价。系统功能完善、运行稳定,具有一定的应用价值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值