出租车计价器设计.docx

上传人:b****8 文档编号:9621216 上传时间:2023-02-05 格式:DOCX 页数:30 大小:1MB
下载 相关 举报
出租车计价器设计.docx_第1页
第1页 / 共30页
出租车计价器设计.docx_第2页
第2页 / 共30页
出租车计价器设计.docx_第3页
第3页 / 共30页
出租车计价器设计.docx_第4页
第4页 / 共30页
出租车计价器设计.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

出租车计价器设计.docx

《出租车计价器设计.docx》由会员分享,可在线阅读,更多相关《出租车计价器设计.docx(30页珍藏版)》请在冰豆网上搜索。

出租车计价器设计.docx

出租车计价器设计

 

 

目录

1前言3

2系统设计方案4

2.1系统的设计需求4

2.2系统的工作原理4

3系统硬件设计5

3.1单片机介绍7

3.2硬件组成8

4系统软件设计14

5仿真调试16

6结论17

7参考文献18

8心得体会及致谢20

附录A设计总图24

附录B源程序25

 

1前言

随着生活水平的提高,人们已不再满足于衣食住的享受,出行的舒适已受到越来越多人的关注[1]。

相对于公共汽车拥挤与缓慢以及私家车高昂的费用,出租车无疑是一种低价高质的出行交通工具。

近年来越来越多的人为了出行方便舒适愿意选择使用出租车,出租车行业得以快速发展[2]。

出租车计价器是出租车营运收费的专用智能化仪表,随着电子技术的发展,出租车计价器的技术在不断进步和提高[3]。

最初的计价器计费模式较为单一,不便于在不同的运营环境下选取不同的计费模式。

考虑到出租车行驶可能会出现从市区行驶到郊区或者行驶到偏僻地区,郊区或偏僻区打车的人少的现象,司机空车行驶返回成本较高,这时需要乘客为空车返回的路程承担一定的费用,这就需要区分单程/往返不同计价模式。

“单程”模式是指目的地在郊区或者比较偏僻的地方,到达目的地后打车的人比较少,需要乘客乘客承担一定的空车返回的费用;“往返”模式是指目的地在市区,到达目的地后还会有乘客乘车返回,这种情况下司机不需要空车返回,乘客不需要承担回程费用。

考虑到夜晚时出租车的灯光需要消耗能源以及司机夜间服务比白天较为辛苦,所以一般夜晚出租车的价格需要比白天高一点。

早期的出租车计价器均采用模拟电路和数字电路设计。

计价器整体电路的规模较大,需要器件多,容易出故障,难调试。

和模拟电路和数字电路设计相比而言,基于单片机进行设计的计价器,用较少的硬件和适当的软件相互配合就可以很容易的实现设计需求,硬件电路简单,稳定性好,灵活性强[4],通过软件编程就可以实现计费模式的切换。

 

2系统设计方案

2.1系统的设计需求

1、用数码管实时显示里程数及金额数。

2、出租车计价器计价器具有多种计费模式,白天/夜晚模式及单程/往返模式。

3、设计出租车计价器白天模式下起步公里数为3Km,价格为8元;若实际里程大于3Km,大于3Km的部分单程价格为2.4元/Km,返价格为1.6元/Km。

4、设计出租车计价器夜晚模式下起步公里数为3Km,价格为10元;若实际里程大于3Km,大于3Km的部分单程价格为3元/Km,返价格为2元/Km。

5、具有工作模式指示灯,指示当前工作模式状态。

 

出租车价目表如表1所示:

模式

起步里程(Km)

起步价(元)

单程(元/Km)

返程(元/Km)

白天

3

8

2.4

1.6

夜晚

3

10

3

2

2.2系统的工作原理

出租车计价是根据出租车所行驶的路程以及乘客乘车的方式综合计算的。

出租车行驶路程在起步里程内按照起步价收费,超过起步里程时超出起步里程的路程按照相应模式下的单价收取附加费用,最后收取起步价及附加费用的总和。

出租车的行驶路程可以通过车轮的周长乘以车轮旋转圈数得到。

然后经过系统对相关数据的计算处理得出总的路程及计价金额,最后再通过显示电路将相关信息显示出来。

本设计采用AT89C51单片机作为系统核心处理器,以A44E霍尔传感器作为里程测量仪,设计控制按键以便选择相关的计费模式,并采用74HC138译码器进行地址译码为8位8段数码管提供片选码,采用8段数码显示出租车行驶的里程及应付总金额,通过LED指示灯指示出租车当前工作状态,便于乘客监督司机。

利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性[4],不仅能实现基本的计价功能,而且能在很大程度上扩展功能,方便以后对系统进行升级。

系统设计框图如图1所示:

 

图1系统设计框图

里程测量是通过安装在车轮上的霍尔传感器A44E检测到的信号[5],送到单片机,经过处理输送到显示电路。

车轮每转一圈,霍尔开关就检测并输出信号,引起单片机的中断,对脉冲计数[6]。

P3.4引脚作为信号的输入端,内部采用定时/计数器0计数[7],通过计算接收到的脉冲个数,计算出当前所行驶的路程。

根据不同的收费模式,选择相应的起步价、单价等收费标准进行计算得出乘客应付总金额。

假设出租车的车轮的周长是1m,那么出租车车轮旋转1000转,也就是行驶1Km(实际应用时以车轮实际周长计算,这里为了仿真方便假设车轮周长为1m)。

通过对定时/计数器0的TL0和TH0的初值设置使得定时/计数器计数一定数量的脉冲时计数器溢出产生中断,在中断服务程序中完成里程计算。

本设计为了仿真方便做如下设置TMOD=0x06,TL0=255,TH0=255;即单片机定时/计数器0工作于工作方式2,8位自动重装模式,作计数器使用,单片机收到一次脉冲触发一次中断,里程增加0.1Km。

通过按键能够实现启动、停止/结算以及选择不同的计费模式。

显示电路使用8位LED数码管来显示,左边4位显示行车里程,小数点后面一位为百米位,右边4为显示应付金额,小数点后面一位为角位。

由于现实生活中一角使用的比较少,而五角钱使用的相对较多,为了司机与乘客之间交易方便,小数点后面的角位数字小于5的一律按5计算,大于5的一律向元位上进1。

由于8位数码管静态显示需要许多I/O端口,和静态显示相比动态显示仅需要少量I/O端口就可以实现,所以这里采用动态显示方式。

使用74HC138译码器对单片机输出的3位片选码进行译码并输送到8段LED片选端实现对8位LED的片选。

3系统硬件设计

设计电路时,考虑到用霍尔传感器价格昂贵,且不便于试验检测仿真,在设计中采用一个模拟开关来代替。

模拟开关一端接在P3.4引脚,另一端接地,通过来回高低电平的变化,每按一次,对应的里程数加0.1Km。

通过程序计算出里程和金额的信息,再加上驱动电路的设计,就可以在数码管上分别显示总金额和总里程。

在显示方面,可以用液晶显示,也可以用数码管进行显示。

由于液晶显示在距离一米多远以外就不怎么能看清楚[8],而数码管能清晰的显示、经济适用并且在这次设计中只需要显示里程和金额信息,所以本设计采用数码管进行显示。

这样既节约了成本,又可以达到显示的目的。

为了减少硬件的复杂度,设计中采用了动态显示方式。

另外设计LED指示灯来实时指示各项状态,如出租车有客/待运状态,白天/夜晚状态,单程/往返状态,便于乘客监督司机作弊。

设计中设计了控制按键,能够很好的对出租车计价器控制,如启动/停止按键,白天/夜晚按键,单程/往返按键,清零按键等。

3.1单片机介绍

AT89C51是一种带4K字节FLASH存储器的低电压、高性能CMOS8位微处理器,俗称单片机。

单片机的可擦除只读存储器可以反复擦除1000次。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器[9]。

3.2.1AT89C51的特点

AT89C51具有以下几个特点:

·AT89C51与MCS-51系列的单片机在指令系统和引脚上完全兼容;

·全静态工作:

0Hz~24MHz;

·三级程序存储器加密;

·数据保留时间:

10年;

·片内有4k字节在线可重复编程快擦写程序存储器;

·128×8位内部RAM;

·32位双向输入输出线;

·五个中断源,两级中断优先级;

·两个十六位定时器/计数器;

·一个全双工的异步串行口;

·间歇和掉电两种工作方式。

3.2.2AT89C51引脚功能

AT89C51单片机为40引脚芯片,其实物图与引脚图如图所示:

 

图2AT89C51实物与引脚图

.口线:

P0、P1、P2、P3共四个八位口。

P0口是三态双向口,通称数据总线口,只有该口能直接用于对外部存储器的读/写操作。

P0口也用以输出外部存储器的低8位地址。

由于是分时输出,故应在外部加锁存器将此地址数据锁存,地址锁存信号用ALE。

P1口是一个内部提供上拉电阻的8位专门供用户使用的I/O口,是准双向口。

P2口是系统扩展时作高8位地址线用。

不扩展外部存储器时,P2口也可以作为用户I/O口线使用,P2口也是准双向口。

P3口是双功能口,该口的每一位均可独立地定义为第一I/O功能或第二I/O功能。

作为第一功能使用时操作同P1口。

 

P3口的第二功能如表2所示:

端口引脚

各个功能

P3.0

RXD(串行口输入端)

P3.1

TXD(串行口输出端)

P3.2

INT0(外部中断0请求输入端,低电平有效)

P3.3

INT1(外部中断1请求输入端,低电平有效)

P3.4

T0(定时器/计数器0计数脉冲输入端)

P3.5

T1(定时器/计数器1计数脉冲输入端)

P3.6

WR(外部数据存储器写选通信输出端,低电平有效)

P3.7

RD(外部数据存储器读选通信号输出端,低电平有效)

.控制口线:

PSEN(片外选取控制)、ALE(地址锁存控制)、EA(片外存储器选择)、RESET(复位控制);

.电源:

VCC:

供电电压。

GND:

接地

3.2.3设计中使用的管脚

VCC:

接+5V电源。

GND:

接地。

时钟引脚:

XTAL1和XTAL2两端接晶振和30PF的电容,构成时钟电路。

RST:

复位信号输入端,高电平有效。

在此引脚加两个机器周期的高电平时,就可以完成复位操作。

P1.0:

接启动/停止按键。

P1.1:

接白天/夜晚按键。

P1.2:

接单程/往返按键。

P1.3:

接清零键。

P0口接数码管段选端,P2口接驱动芯片。

P3.4(T0):

接模拟开关按键,替代了出租车计价器中的霍尔传感器。

3.2硬件组成

硬件组成主要包括:

时钟模块、复位模块、按键及指示模块、里程测量模块、显示驱动模块、显示模块。

3.2.1时钟模块

单片机工作是以时钟控制信号为基准,内部电路在时钟信号的控制下,严格地按时序执行指令进行工作[10],为了保证系统内各部分稳定工作,系统需要一个稳定的时钟信号。

时钟电路产生振荡脉冲,经过二分频之后,为单片机提供时钟脉冲信号。

振荡频率取决于石英晶体的振荡频率,频率范围可取1.2MHz—12MHz。

C1、C2具有频率微调和稳定作用,电容值可取5~30pF。

单片机运行速度取决于晶体振荡频率,晶体振荡频率越高,系统的时钟频率越高,单片机运行速度越快。

本设计中使用的时钟电路,由两个约30PF的电容和12MHZ晶体振荡器组成,将晶体跨接在XTAL1和XTAL2两端。

在整个系统中为系统各个部分提供基准频率信号,以防因其工作频率不稳定而影响相关设备工作的稳定性,晶振可以在电路中产生振荡电流,发出时钟信号。

时钟模块的电路图如图所示。

图3单片机时钟电路图

3.2.2复位模块

单片机在启动时需要进行复位操作,使系统处于初始状态,并从这个状态开始工作。

单片机的复位是由外部的复位电路实现的,复位电路通常有两种复位模式,一是采用上电自动复位,二是按键手动复位[11]。

上电自动复位是通过复位电路的电容充电来实现的。

按键手动复位有电平方式和脉冲方式两种。

复位信号是高电平有效,持续24个振荡脉冲周期(即二个机器周期)以上,即可完成复位操作。

本次设计中采用手动复位的电平复位。

图4单片机复位电路

3.2.3按键及指示模块

本设计中设有按键控制电路及LED指示部分,通过按键可以控制启动/停止计价以及根据乘客使用出租车情况选择不同的计费模式。

LED指示模块可以实时的指示当前出租车所采用的计价模式状态,可以让乘客一目了然,监督司机,防止司机作弊。

按键控制电路中,单片机的P1.0引脚接启动/停止按键,通过软件编程,当按下按键计数器开始工作,开始计价,启动指示灯点亮,代表出租车出于有客状态;当弹起按键时,计数器停止工作,停止计价,结算路费,停止指示灯点亮,表示出租车出于待运状态。

按下启动按键,开关处于导通状态,这时给P1.0送低电平信号,这时TR0=1,计数器开始工作,计数器溢出时触发中断对里程进行计算,主程序中调用计价子程序开始计价。

为了方便乘客与司机结算,角位上不足5角的按照5角计算,大于5角的按照1元计算。

P1.1管脚接白天/夜晚按键,通过软件编程,当按下按键时执行白天模式计价标准,白天模式指示灯点亮,当弹起按键时,执行夜晚模式计价标准,夜晚指示灯点亮。

P1.2引脚接单程/往返按键,当按下按键时执行单程模式计价标准,相应的指示灯点亮,当弹起按键时执行往返模式计价标准,相应的往返指示灯点亮。

清零按键接单片机的P1.3引脚,按下清零按键,P1.3为低电平,调用清零子程序,用于将显示数据以及里程及计价金额清零,以达到清零的目的,方便下次计价。

图5控制按键及指示灯图

3.2.4里程测量模块

霍尔传感器是根据霍尔效应制作的一种磁场传感器。

霍尔效应是磁电效应的一种。

霍尔器件可以检测磁场及其变化,可在各种与磁场有关的场合中使用。

霍尔传感器分为线型霍尔传感器和开关型霍尔传感器两种,本设计采用开关型霍尔元件。

A44E集成霍耳开关由稳压器、霍耳电势发生器(即硅霍耳片)、差分放大器、施密特触发器和OC门输出五个基本部分组成。

在输入端输入电压Vcc,经稳压器稳压后加在霍耳电势发生器的两端,根据霍耳效应原理,当霍耳片处在磁场中时,在垂直于磁场的方向通以电流,则与电流和磁场相垂直的方向上将会产生霍耳电势差VH输出,该信号经放大器放大后送至施密特触发器整形,使其成为方波输送到OC门输出[6]。

当施加的磁场达到BOP时,触发器输出高电压(相对于低电位),使三极管导通,此时OC门输出端输出低电压,通常称这种状态为“开”。

当施加的磁场达到“释放点”(即Brp)时,触发器输出低电压,三极管截止,使OC门输出高电压,这种状态为“关”。

这样两次电压变换,使霍耳开关完成了一次开关动作。

将霍尔传感器的集成电路安装在车轮上放的铁板上,将小磁铁安装在车轮上,旋转的车轮将磁铁对准集成电路时,霍尔传感器会输出一个脉冲信号。

我们选择了P3.4引脚作为脉冲信号的输入端,单片机内部采用内部定时/计数器0计数触发中断。

车轮每转一次,霍尔开关就检测并输出一个脉冲信号。

单片机接收脉冲并对其计数,计数器溢出时产生中断,通过处理中断服务程序计算出总路程及相应的应付金额。

霍尔传感器的测距示意图如图所

示:

图6霍尔传感器的测距示意图图7脉冲输入

由于仿真软件中没有霍尔元件,这里使用按键开关或者脉冲发生器来替代霍尔元件仿真,为了仿真方便,设定每向P3.4引脚输入一个低电平脉冲,单片机内部产生一个中断,里程计数器加一,每次脉冲表示出租车前进100m。

3.2.5显示驱动模块

74HC138是常用的译码器。

74HC138是一款高速CMOS器件,74HC138引脚兼容低功耗肖特基TTL系列。

74HC138译码器可接受3位二进制加权地址输入(A,B和C),并当使能时,提供8个互斥的低有效输出(Y0至Y7)[11]。

74HC138管脚图如图表所示:

图874HC138译器管脚图

通过74HC138译码器来给8位数码管提供片选码,使得8位数码管能够实现动态显示并且节约了I/O口资源。

为了提供P0口驱动能力,在P0口设计上拉电阻。

 

74HC138的功能表如下表所示:

输入

输出

E1

E2

E3

C

B

A

Y0

Y1

Y2

Y3

Y4

Y5

Y6

Y7

×

H

×

×

×

×

H

H

H

H

H

H

H

H

×

×

H

×

×

×

H

H

H

H

H

H

H

H

L

×

×

×

×

×

H

H

H

H

H

H

H

H

H

L

L

L

L

L

L

H

H

H

H

H

H

H

H

L

L

L

L

H

H

L

H

H

H

H

H

H

H

L

L

L

H

L

H

H

L

H

H

H

H

H

H

L

L

L

H

H

H

H

H

L

H

H

H

H

H

L

L

H

L

L

H

H

H

H

L

H

H

H

H

L

L

H

L

H

H

H

H

H

H

L

H

H

H

L

L

H

H

L

H

H

H

H

H

H

L

H

H

L

L

H

H

H

H

H

H

H

H

H

H

L

译码驱动电路如下图所示:

图9译码驱动电路图

3.2.6显示模块

现在很多的应用系统都需要配备输出外设,一般使用LED显示器或LCD显示器。

考虑到LCD显示在距离超过1m远的时候不容易看清楚且为了节约成本,本设计中选用了LED数码管显示器。

显示方式有两种:

静态显示和动态显示。

静态显示亮度较高,接口编程容易[11],但是每位的段码线分别要与一个8位的锁存器输出相连,在显示位数较多的情况下,占用的I/O口线比较多,所以这里不采用静态显示方式。

和静态显示方式相比动态显示可以节省很多I/O口资源。

利用动态显示的方法,由于LED显示器的余辉和人眼的视觉暂留现象,只要每位数码管显示的时间间隔足够短,就能使人感觉到所有的数码管都在显示。

通常将所有位的段码线相应段并联在一起,由一个8位I/O口控制,在同一时刻,只让一位选通,如此循环,就可以使各位显示出将要显示的内容。

LED数码管及集成数码管如图所示:

图10LED数码管图11集成数码管

本设计中使用的是8个一组的共阳8段数码管。

左边4个用来显示里程,小数点后面一位表示百米位,右边4位表示金额,小数点后面一位表示角位。

如下图所示:

图12本设计中的数码管显示

4系统软件设计

51单片机的程序设计语言主要有两种:

一是汇编程序设计;二是C语言编程设计。

两种程序设计语言都有各自的优点。

和C语言相比而言汇编语言比较节省空间,但使用C语言编写的程序简单易行,通俗易懂。

C语言作为编译型程序设计语言,它兼顾了多种高级语言的特点,并且具备汇编语言的功能。

不仅如此,C语言程序还具有完善的模块化程序设计结构,从而为软件开发中采用模块化程序设计方法提供了有力的保障[12]。

本设计采用C语言编写的,采用模块化编程,程序在修改,执行的过程中比较方便易行。

利用各个模块之间的相互联系,在设计中采用主程序调用各个子程序的方法,使程序通俗易懂。

main函数编写开始,进行初始化,使硬件处于就绪状态。

主程序模块中,主要完成定时/计数器0的设置、开中断、开闭计数器、调用子程序以及循环等工作。

主程序运行中通过对各个按键的判断决定是否计费,结算,清零等,分别调用不同的子程序。

当检测到启动按键key1按键被按下去时,打开计数器0,并调用计价程序计价。

通过检测key2(白天/夜晚按键)、key3(单程/往返按键)的程序执行不同的计价标准。

Key1键被弹起时,关闭计数器0,恢复计数器0的初值,并结算应付总金额。

每当P3.4口收到一个低电平信号,单片机计数器0就对其计数一次,当计数器溢出时触发中断,进入里程计数中断服务程序,里程变量加1,总金额根据此时所设单价做出相应的变化。

系统软件设计流程图如下图所示:

图13系统软件设计流程图

 

计价子程序设计流程图如下图所示:

图14计价子程序设计流程图

5仿真调试

1.在KeilμVision软件中使用C语言编写程序,经过编译生成hex文件。

2.在Proteus软件中按照设计的原理图绘制出各种元器件并连接好电路。

3.将用keil编译产生的hex文件下载到单片机中:

双击51单片机,在对话框中把保存过的hex文件打开,再单击确定。

如图:

图15加载HEX文件到单片机中

4.单击左下角运行按钮,进行软件仿真调试。

软件的仿真窗口如图:

图16出租车计价器仿真图

根据设计需求规定出租车白天模式下起步公里数为3Km,价格为8元;若实际里程大于3Km,大于3Km的部分单程价格为2.4元/Km,返价格为1.6元/Km;夜晚模式下起步公里数为3Km,价格为10元;若实际里程大于3Km,大于3Km的部分单程价格为3元/Km,返价格为2元/Km。

下面通过随机选取几个点进行仿真验证,超过起步里程计费价目表如下表所示:

白天/夜晚

单程/往返

起步里程A

起步价B

单价C

里程D

计算公式

E=B+C*(D-3)

金额E

白天

单程

3

8

2.4

8

E=8+2*(5-3)

20

白天

往返

3

8

1.6

13

E=8+1.8*(4.7-3)

24

夜晚

单程

3

10

3

5

E=9+3*(9-3)

16

夜晚

往返

3

10

2

10

E=9+2.4*(7.2-3)

24

 

图17白天单程模式下计价仿真图图18白天往返模式下计价仿真图

 

图19夜晚单程模式下计价仿真图图20夜晚往返模式下计价仿真图

通过对以上几种模式下的仿真结果与理论结果比较发现仿真结果与实际理论计算值相符,仿真成功。

6结论

本次设计采用AT89C51单片机为核心处理器,设计出具有多种模式计价的出租车计价器,能够实现通过按键控制,按照不同的计价模式执行计价,显示里程和金额以及状态指示。

通过Proteus调试仿真,达到了设计目的。

这次课程设计设计完成后,有许多体会,在学与做的过程中,取长补短,不断学习新的知识,吸取经验。

通过自身的努力以及与同学的探讨研究,逐渐熟悉了KeiluVision3、设计软件AltiumDeginer、PROTEUS和C语言等软件的使用。

在设计过程中难免存在一些问题,功能还不是很全面,主要是因为现在个人能力有限考虑问题还不周全,缺乏设计经验,恳请老师批评指正,以使我在以后的学习和实践中加以改进和提高自我。

 

7参考文献

[1]舒涛,伍远超,李明.基于AT89S51单片机的出租车计价器系统设计[J].现代电子技术,2010,33(22):

57-59.

[2]张颖.多功能出租车计价器的设计[J].广西轻工业,2009,25(9):

96-97.

[3]肖卫初,陈伟宏,杨明.基于单片机的多功能出租车计价器的设计[J].广现代电子技术,2008,31(16):

180-188.

[4]陈爱华.基于AT89C51单片机的多功能出租车计价器[J].机电工程技术,2008,37(11):

67-68.

[5]王华祥,张淑英.传感器原来及应用(修订版)[M].天津:

天津大学出版社,1999.

[6]黄代福.出租车计价器传感器原理及检测[J].计量与测试技术,2006(8):

20-21.

[7]潘永雄.新编单片机原理与应用[M].西安电子科技大学出版社,2003.

[8]戴佳,陈斌,苗龙.51单片机应用系统开发典型实例[M]中国电力出版社,2005.

[9]余发山,王福忠.单片机原理及应用技术[M].中国矿业大学出版社,2008.6.

[10]侯玉宝,陈忠平,李成群.基于Proteus的51系列单片机设计与仿真[M].电子工业出版社,2008.

[11]边春元,李文涛,江杰.C51单片机典型模块设计与应用[M].机械工业出版社,2008.

[12]马忠梅.单片机的C语言应

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 党团建设

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1