出租车多功能计价器.docx
《出租车多功能计价器.docx》由会员分享,可在线阅读,更多相关《出租车多功能计价器.docx(29页珍藏版)》请在冰豆网上搜索。
出租车多功能计价器
出租车多功能计价器
摘要
随着出租车行业的发展,出租车行业已经是城市交通的重要组成部分,从加强行业管理以及减少与乘客的纠纷出发,以单片机为核心的智能出租车计价系统的开发就显得尤其重要。
本设计采用89S51单片机为主控器,以FJ2E-D10NK霍尔传感器测距,实现对出租车的多功能的计价设计,并采用AT24C02实现在系统掉电的时候保存单价和系统时间等信息,输出采用8段数码显示管。
本电路设计的计价器不但能实现基本的计价,而且还能根据白天,黑夜,中途等待来调节单价,但同时在不计价的时候还能作为时钟为司机同志提供方便。
关键词:
89S51,霍尔传感器,AT24C02,
Abstrsct
Asthetaxiindustrydevelopment,urbantaxiindustryisanimportantcomponentofthetraffic,strengtheningmanagementandthereductionoftradedisputeswithpassengersproceedingtoSCMsmarttaxiatthecoreofthedevelopmentonthepricingsystemisparticularlyImportant.Thisdesignuses89S51MCU-basedcontroller,toFJ2E-D10NKHallsensorlocation,andthetaxi-pricingdesignandrealizationofthesystemusedAT24C02Power-downpriceandthetimesavedtimeandotherinformationsystems,outputByparagraph8ofthedigitaldisplay.ofthecircuitdesignofthemetercannotonlyachievethebasicpricing,butalsobasedontheday,night,waitingforthehalf-waytoregulatetheprice,butnotaccountedforinthetimeforthedriversbutalsoasaclockComradeconvenience.
Keywords:
89S51,Hallsensor,AT24C02,
目录
第一章系统方案比较与选择4
1.1方案论证与比较4
1.2主要元器件的介绍6
第二章电路的系统设计10
2.1设计总框图10
2.2里程计算、计价单元的设计10
2.3数据显示单元的设计11
2.4AT24CO2掉电存储单元的设计13
2.5按键单元的设计13
2.6设计总体电路图14
第三章程序设计16
3.1主程序模块16
3.2定时中断服务程序16
3.3里程计数中断服务程序16
3.4中途等待中断服务程序17
3.5显示子程序服务程序17
3.6键盘服务程序17
3.7程序流程图18
第四章测试分析与计算20
4.1.里程计价测试方法20
4.2.里程测量数据20
4.3.掉电储存测试21
第五章电路的调试与安装22
第六章创新与特点24
第七章总结25
附录一:
源程序26
附录二:
共阳数码管与74LS164的连接图31
第一章系统方案比较与选择
1.1方案论证与比较
方案一:
采用数字电路控制,其原理如图所示。
采用传感器件,输出脉冲信号,经过放大整形作为移位寄存器的脉冲,实现计价,但是考虑到这种电路过于简单,性能不够稳定,而且不能调节单价,也不能根据天气调节计费保准,电路不够实用。
电路框图如图1-1所示。
图1-1数字电路方案
方案二:
出租车驱动轮转数与转轴转数的传动比是一定的,磁感应传感器会产生一个大约20ms的低脉冲,可以通过计算磁感应传感器产生的低脉冲数来计算出租车跑的里程数及相应的车费。
编码器的单片机通过一个I/O口来检测磁感应传感器信号,当确定为传感器产生的信号时,就通过另一个I/O口向解码器的单片机发送一组编码,而解码器的单片机则首先判断当前准备接收的数据是编码器发送的编码还是解码写入器发送的解码。
当判断是解码写入器发送的解码时,解码器的单片机接收此解码,并利用12c总线协议将解码保存到E2PROM中去;当判断是编码器发送的编码时,解码器的单片机先接收此编码,然后读出自己E2PROM中的解码,将其与接收到的编码相比较,如果相同则解码器单片机通过一个I/0口向计价装置发出计价脉冲,否则不发出计价脉冲。
解决了以往计价器计价不准确、使用寿命短等缺点,但此方法通常使干扰信号也能产生计数脉冲,分立元件过于复杂,电路稳定性不好。
方案框图如图1-2所示。
图1-2方案框图
方案三:
采用单片机控制。
以单片机为核心,设计上采用89S51单片机为主控器,以FJ2E-D10NK霍尔传感器测距,并采用AT24C02实现在系统掉电的时候保存单价和系统时间等信息,输出采用8段数码显示管。
利用单片机丰富的I/O端口,及其控制的灵活性,实现基本的里程计价功能和价格调整、时钟显示功能。
原理结构如图1-3所示。
图1-3原理结构框图
本电路设计的计价器不但能实现基本的计价,而且还能根据白天,黑夜,中途等待来调节单价,但同时在不计价的时候还能作为时钟为司机同志提供方便。
单片机计算总价的公式为:
总价=起步价+单价*(总里程-起步里程)。
89S51作为一个单片微型计算系统,灵活性高,其强大的控制处理功能和可扩展功能为设计电路提供了很好的选择。
通过比较以上三种方案,单片机方案有较大的活动空间,不但能实现所有要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,所以我们采用89S51单片机实现出租车计价的功能。
1.2主要元器件的介绍
(1)MCS—51系列AT89S51
AT89S51的是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4Kbytes的可系统编程的Flash只读程序存储器,高密度、非易失性储存生产,兼容标志8051指令系统及引脚。
低价位的它可以提供许多高性价比的应用场合,可灵活控制。
芯片管脚图如图1-4所示:
图1-489S51芯片管脚图
主要性能参数:
●与MCS—51产品指令系统完全兼容
●4K字节在系统编程(ISP)Flash闪速储存器
●1000次擦写周期
●4.0—5.5V的工作电压范围
●全静态工作模式:
0HZ—33HZ
●三级程序加密锁
●128*8字节内部RAM
●32个可编程I/O口线
●2个16位定时/计数器
●6个中断源
●全双工串行UART通道
●低功耗空闲和掉电模式
●中断可从空闲模式唤醒模式
●看门狗(WDT)及双数据指针
●掉电标识和快速编程特性
●灵活的在系统编程(ISP字节或页写模式)
功能特性概述:
4K字节Flash闪速储存器,128字节内部RAM,32个I/O口线,看门狗,两个数据指针,两个16位计时器,一个5向量两级中断结构,一个全双工串行通讯口,片内振荡器及时钟电路。
同时AT89S51可降至0HZ的静态逻辑操作,并支持两种软件可选的节电工作模式,空闲方式停止工作并紧张其它所有部分工作直到下一个硬件复位。
方框图如1-5所示。
图1-5方框图
(2)FJ2E-D10NK霍尔传感器
它是一种磁传感器。
可以检测磁场及其变化,可在各种磁场有关的场合中使用。
以会儿效应为其工作基础。
它结构牢固,体积小,重量轻,寿命长,安装方便,功耗小,频率高,耐震动不怕一些污染和腐蚀,而且精度高工作温度范围宽。
这种霍尔元件大量用于直流无刷电机和测磁仪表。
FJ2E-D10NK集成霍尔开关由稳压器A,霍尔电势发生器(即硅霍尔片)B,差分放大器C,施密特触发器D和OC门输出E五个基本部分组成。
(1)、
(2)、(3)代表集成霍尔开关的三个引出端点。
外形及接线如图1-6所示。
(a)外形图(b)接线图
图1-6霍尔传感器外形及接线
在输入端输入电压Vcc,经稳压器稳压后加在霍尔电势发生器的两端,根据霍尔效应原理,当霍尔片处在磁场中时,在垂直于磁场的方向通以电流,则与这二者相垂直的方向上将会产生霍尔电势差VH输出,该VH信号经放大器放大后送至施密特触发器整形,使其成为方波输送到OC门输出。
当施加的磁场达到工作点(即Bop)时,触发器输出高电压(相对于地电位),使三极管导通,此时OC门输出端输出低电压,三极管截止,使OC门输出高电压,这种状态为关。
这样两次电压变换,使霍尔开关完成了一次开关动作。
集成开关型霍尔传感器原理如图1-7所示。
图1-7集成开关霍尔传感器原理
(3)数码管
数码管时一种半导体发光器件,其基本单元时发光二极管。
数码管按段数分为七段数码管和八段数码管,按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。
共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。
共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。
当某一字段的阴极为高电平时,相应字段就不亮。
驱动时将所有数码管的8个显示笔划为“a、b、c、d、e、f、g、dp”的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,通过单片机对位选通COM端电路的控制来觉得数码管显示的字形。
数码管也74LS164的连接电路图见附录二,其管脚图见1-8所示。
图1-8数码管脚图
第二章电路的系统设计
2.1设计总框图
总框图的设计包括键盘控制模块,启动/清除开关模块,掉电储存单元模块,里程传感器,单片机控制模块部分,显示模块,锁存器和显示驱动电路。
输入部分通过89S51控制输出的显示数字。
其结构框图如2-1所示。
图2-1结构总框图
2.2里程计算、计价单元的设计
里程计算是通过安装在车轮上的霍尔传感器FJ2E-D10NK检测到的信号,送到单片机,经处理计算,送给显示单元的,其原理如图2-2所示。
图2-2 传感器测距示意图
由于FJ2E-D10NK属于开关型的霍尔传感器件,其工作电压范围比较宽(4.5V~18V),其输出的信号符合TTL电平标准,可以直接接到单片机的I/O端口上,而且其最高检测频率可达到1MHZ。
我们选择了P3.2口作为信号的输入端,内部采用外部中断0(这样可以减少程序设计的麻烦),车轮每转一圈,霍尔开关就检测并输出信号,引起单片机的中断,对脉计数,当技术达到1000次时,也就是1公里,单片机就控制将金额自动的增加,其计算公式:
当前单价×公里数=金额。
2.3数据显示单元的设计
用单片机驱动LED数码管按显示方式分,有静态显示和动态(扫描)显示,由于设计要求有单价(2位),路程(2位),总金额(3位)显示输出,加上我们另外扩展了时钟显示(包含时分秒的显示),而且在白天其对比度也不能够满足要求,因此我们采用了6位LED数码管道分屏显示,如图2-3(A、B、C、D)所示。
图2-3(A)时钟显示(显示为12点00分46秒)
图2-3(B)总金额和单价显示(显示为总金额12.0元,每公里4.6元)
图2-3(C)路程和单价显示(图中显示总路程12公里,当前单价4.6元)
图2-3(D)单价调整显示(图中显示为右起白天单价4.6元、晚上7.8/中途等待1.2元)
数据的分屏的显示是通过按键S1实现切换的。
切换显示如图2-4所示。
图2-4切换显示屏
在出租车不走的时候,按下S1,可以实现数据的分屏显示;车载行走的时候只有总金额和单价显示屏在显示,当到达目的的的时候,客户要求查看总的里程的时候,就可以按下S1切换到里程和单价显示屏,供客户查询。
显示器原理图如2-5所示。
图2-5显示器原理图
从单片机串口输出的信号先送到左边的移位寄存器(74HC164),由于移位脉冲的作用,使数据向右移,达到显示的目的。
移位寄存器74HC164还兼作数码管的驱动,插头1(header1)接电源,插头2(header2)接数据和脉冲输出端。
电路中的三个整流管D1~D3的作用是降低数码管的工作电压,增加其使用寿命。
2.4AT24CO2掉电存储单元的设计
掉电存储单元的作用是在电源断开的时候,储存当前设定的单价信息。
AT24C02是ATMEL公司的2KB字节的电可擦除储存芯片,采用两线串行的总线和单片机通讯,电压最低可以到2.5V,额定电流为1mA,静态电流10Ua(5.5V),芯片内的资料可以在断电的情况下保存40年以上,而且采用8脚的DIP封装,使用方便。
掉电储存电路如图2-6所示。
图2-6掉电储存电路
图中R8、R10是上拉电阻,其作用是减少AT24C02的静态功耗,由于AT24C02的数据线和地址线是复用的,采用串口的方式传送数据,所以只用两根线SCL(移位脉冲)和SDA(数据地址)与单片机传送数据。
每当设定一次单价,系统就自动调用储存程序,将单价信息保存在芯片内;当系统重新上电的时候,自动调用读储存器程序,将储存器的单价等信息,读到缓存单元内,供主程序使用。
2.5按键单元的设计
电路共采用了五个按键,S1、S2、S3、S4、S5,其功能分别是:
S1分屏显示切换按键,S2功能设定按键,S3:
+/白天晚上切换按键,S4:
—/中途等待开关,S5:
上电复位。
S1、S2、S3、S4按键电路图如图2-7所示,S5上电复位按键电路图2-8所示。
图2-7按键电路图
图2-8上电复位按键电路图
2.6设计总体电路图
整个电路以89S51为核心,用来控制的驱动的各个分支电路。
当霍尔传感器FJ2E-D10NK检测到的信号,送到单片机,从单片机串口输出的信号先送到左边的移位寄存器(74HC164),由于移位脉冲的作用,使数据向右移,送给显示单元的,用单片机驱动LED数码管显示,按键可以实现数据的分屏显示和计价等功能,以达到显示不同情况下数值的目的。
当电源断开的时候,AT24C02储存当前设定的单价信息,R8、R10是上拉电阻是减少AT24C02的静态功耗。
只用两根线SCL(移位脉冲)和SDA(数据地址)与单片机传送数据。
电路共采用了S1、S2、S3、S4、S5五个按键,来实现人为改动计价器的功能。
设计总图电路如图2-9所示。
图2-9设计总体电路图
第三章程序设计
3.1主程序模块
在主程序模块中,需要完成对各接口芯片的初始化、出租车起价和单价的初始化、中断向量的设计以及开中断、循环等待等工作。
灵位,在主程序模块中还需要设置启动/清除标志寄存器、里程寄存器和价格寄存器,并对它们进行初始化。
然后,主程序将根据各标志寄存器的内容,分别完成启动、清除、计程和计价等不同的操作。
当按下S1时,就启动计价,则根据里程寄存器中的内容计算和判断出行驶里程是否已超过起价公里数。
若已超过,则根据里程值、每公里的单价数和起价数来计算出当前的累计几个,并将结果存于价格寄存器中,然后将市级和当前累计价格送显示电路显示出来。
当到达目的地的时候,由于霍尔开关没有送来脉冲信号,就停止计价,显示当前所应该付的金额和对应的单价,到下次启动计价时,系统自动对显示清零,并重新进行初始化过程。
3.2定时中断服务程序
在定时中断服务程序中,每100ms产生一次中断,当产生10次中断的时候,也就到了一秒,送数据到相应的显示缓冲单元,并调用显示子程序实时显示。
3.3里程计数中断服务程序
每当霍尔传感器输出一个低电平信号就使单片机中断一次,当里程计数器对里程脉冲计满1000次时,就有程序将当前总额,使微机进入里程计数中断服务程序中。
在该程序中,需要完成当前行驶里程数和总额的累加操作,并将结果存入里程和总额寄存器中。
3.4中途等待中断服务程序
当在计数状态下霍尔开关没有输出信号,片内的T1定时器便被启动,每当计时到达10分钟,就对当前金额加上中途等待的单价,以后每10分钟都自动加上中途等待的单价。
当中途等待介绍的时候,也就自动切换到正常的计价。
3.5显示子程序服务程序
由于时分屏显示数据,所以就要用到4个显示子程序,分别时:
时分秒显示子程序(HMS_DIS)、金额单价显示子程序(CP_DIS)、路程单价显示子程序(DP_DIS)、单价调节子程序(PA_DIS)。
3.6键盘服务程序
键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦右按键按下,便转向相应的子程序处理,处理结束再返回。
3.7程序流程图
(1)计价流程图
出租车计价流程图如图3-1所示。
图3-1计价流程图
(2)单价时间调整流程图
出租车单价时间调整流程图如图3-2所示。
图3-2单价时间调整流程图
第四章测试分析与计算
4.1.里程计价测试方法
由于试验条件有限,我们采用电动机附带霍尔元件作为车轮,电机为3V的直流电机,每分的转速可以达到几千转,我们设定电机每转一圈为车轮转到1米,当电机转到1000圈时,就表示已经到达了一公里,单片机控制系统将金额自动的增加,其计算公式:
当前单价×公里数=金额。
4.2.里程测量数据
表1的测试条件时:
设定白天的单价时2.5元,起步价为5元(包含3公里),分别行驶不同里程测得数据如下表。
表1:
白天单价测试
公里
4
10
15
37
49
59
总金额
理论
7.5
22.5
35
90
120
145
实测
7.5
22.5
35
90
120
145
总里程
理论
4
10
15
37
49
59
实测
4.2
9.5
15
37.3
49
59
误差
0.2
0.5
0
0.3
0
0
表2的测试条件时:
晚上的单价设定为3.0元,起步价为5元(包含3公里),分别行驶不同里程测得数据如下表。
表2:
晚上单价测试
公里
4
10
15
37
49
59
总金额
理论
8
26
41
107
143
173
实测
8
26
41
107
143
173
总里程
理论
4
10
15
37
49
59
实测
4
11
16
37
49
58
误差
0
1
1
0
0
1
里程测试数据的分析:
通过表1、表2的数据,我们可以看到系统的计价功能很稳定,误差很小,几乎为零,不过还应该在实际的应用中测试。
4.3.掉电储存测试
掉电储存是为了防止在系统掉电的情况所储存的单价信息丢失,我们用人为的掉电方法实现这一测试。
表4:
掉电储存测试
白天单价
晚上单价
中途等待单价
掉电前数据
2.5
3.0
1.0
重新上电后数据
2.5
3.0
1.0
表4显示的数据表明,系统能在掉电的情况下正确的保存数据,并且能在系统上电后将数据读到相应的储存单元。
第五章电路的调试与安装
电路的安装与调试时整个电子设计大赛最为复杂的一部分,要涉及的领域非常的广泛,包括LED显示器的结构、工作原理等相关知识、传感器测速的相关知识、单片机知识在一次次的调试当中不断改进,是对我们学生的一次全方位的考验。
在出租车计价器的系统中,我们采用了12V的直流电压,满足计价器完成修改单价、显示、计价等功能所需的电压要求。
传感器的选择方面,考虑到是对路程里数的测试我们选用了FJ2E-D10NK测距传感器,FJ2E-D10NK属于开关型的霍尔传感器件,其工作电压范围比较宽(4.5~18V),及上述一系列的比较后,它的优点是非常适合我们的设计要求。
在实际的运用里,由于是对出租车的车轮转速的检测,位置要求和磁铁相对应,在设计安装方面,由于考虑到霍尔传感器的灵敏度问题,我们将传感器和其它电路模块分开安装在不同的板子上,特别是与电机的问题得到解决。
这样,即可以避免了电机的震动影响到电路板,产生抖动,还可以时电机和传感器的相对位置保持不变,保证了测量数据的准确性。
我们在LED数码管的挑选上也是经过考虑和筛选的,共阳的8段数码管的段选线时连在一起的,通过74LS164进行驱动,低电平时点亮相应的段。
要注意的是如果选择的扫描频率不合适,可能会出现小数点闪动的情况。
但只要扫描频率不小于24Hz,人眼就感觉不到显示器的闪烁。
本系统采用36Hz的扫描频率,扫描脉冲由相应的外围电路提供。
模拟车轮我们采用电动机附带霍尔元件,车轮转到时,传感器能够模拟检测车辆行走里程。
我们设车轮的周长是1米,车轮每转一圈,霍尔开关就检测并输出信号,引起单片机的中断,对脉计数,当到达设定的一定圈数时单片机就自动在金额上加数。
在电机的选择上我没也经过反复的研究,由于霍尔传感器对磁钢感应时只对一面起作用,其中右一面时没有反映的,而电机内部时右磁场的,如果选择的电机向外辐射的磁场刚好是传感器能够感应的一面,就会对数据产生影响。
我们进过多次实验以后终于解决了这个问题。
另外,为了使得系统更人性化,我们用外壳将所有的电路都包了起来,把要调节的按钮都安装在了外面,应用起来就更加的人性化,同时也提高了系统的安全性。
经过调试中,我们发现在给电路板上电时,出现6位都时8的情况,不发生正常的显示,按下S1时还是显示8,不会显示分屏切换,S2也无法用,S3、S4也不会实现+/-的功能。
经过分析,我们用信号发生器检测了晶振,看是否右波形产生。
当屏幕上显示正弦波形时,我们排除了晶振坏掉的可能。
继续检测中,我们发现输送信号的部分出现问题,经过反复研究分析,我们发现是74LS164发生损坏,而导致这种情况的出现。
第六章创新与特点
1、为了让系统的外观看起来更加的美观,我们到市场上购买了一个盒子,把系统包装起来,相当于一个仪器,增加了对电路板的保护。
2、为了方便维修调试,我们用活叶来设计车轮,并将它与盒盖、盒身装载一起,使系统更加灵活。
3、为了使系统更人性化,我们将电源开关都引到盒外,是用了手动开关按键,使用起来非常方便。
4、在不同的时间,不同的情况下有不同的收费标准;白天、晚上和中途等待,我们设计了用开关来实现这些切换功能,简单方便,同时显示器会显示相应的指示。
最大的方便了司机的计费控制。
5、为了应变在计价器断电时数据的丢失,我们设定了一个上电复位并用按键连接控制,能在计价过程出现突然断电时记录断点的功能。
保障了司机朋友的利益。
6、当到达终点时,计价器能储存所有金额数据,方便乘客的查询。
从而加强行业管理和减少司机与乘客之间的纠纷。
第七章总结
由于使用的是单片机作为核心的控制元件,本设计采用89S51单片机为主控器,以灵敏的FJ2E-D10NK霍尔传感器测距,实现对出租车的多功能的计价设计,并采用AT24C02实现在系统掉电的时候保存单价和系统时间等信息,输出采用8段数码显示管。
本出租车计价器具有功能强、性能可靠、电路简单、成本低的特点,加上经过优化的程序,使其右很高的智能化水平。
为了使我们设计的系统更具