基于单片机的出租车计费系统DOCWord文档下载推荐.docx

上传人:b****4 文档编号:17962803 上传时间:2022-12-12 格式:DOCX 页数:17 大小:313.17KB
下载 相关 举报
基于单片机的出租车计费系统DOCWord文档下载推荐.docx_第1页
第1页 / 共17页
基于单片机的出租车计费系统DOCWord文档下载推荐.docx_第2页
第2页 / 共17页
基于单片机的出租车计费系统DOCWord文档下载推荐.docx_第3页
第3页 / 共17页
基于单片机的出租车计费系统DOCWord文档下载推荐.docx_第4页
第4页 / 共17页
基于单片机的出租车计费系统DOCWord文档下载推荐.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

基于单片机的出租车计费系统DOCWord文档下载推荐.docx

《基于单片机的出租车计费系统DOCWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于单片机的出租车计费系统DOCWord文档下载推荐.docx(17页珍藏版)》请在冰豆网上搜索。

基于单片机的出租车计费系统DOCWord文档下载推荐.docx

PulsePerKM=1000m/1.634m=612(个脉冲)

2.2.2费用计算功能

费用计算包括三部分:

起步费、行使费和燃油附加费:

a)起步费用(StartPrice)—

当行驶里程(RunMilege)在2.3Km(含2.3Km)以内按起步价(StartPrice即行使费用(RunPrice)为:

)7元计费。

RunPrice=StartPrice+1=8

(元)

b)行使费用(RunPrice)--

行使费用分短途与长途两种情况:

①.当行驶里程(RunMilege)超出2.3Km时并且小于35Km时,按2.6元/Km收费,这时

行驶费用为:

RunPrice=StartPrice+2.6x(RunMilege-StartMilege)+1

其中:

StartPrice为起步价=6元

StartMilege为起步里程=2.3Km

RunMilege为行使里程(总行使里程)

RunPrice为行使费用(总行使金额)

②.当行使里程超过35Km后,要加空驶费,即每公里升至3.50

元,这时行驶费用为:

RunPrice=StartPrice+3.5x(RunMilege-StartMilege)+1

c)燃油附加费--每车次加收一元。

2.2.3语音播放功能

①.当初次按下“start/stop”键,出租车开始启动,司出租汽车,谢谢!

”播送完毕,计费器开始计费。

系统播放

“您好!

欢迎乘坐本公

②.按下“SpeedUp键,出租车加速行使,最高速为

100Km

③.按下“SpeedDown键,出租车减速行使,最低速为

0Km

④.在行使状态下,按下“start/stop”键,表示出租车到站,结束行使。

这时候,系统播放“您好!

行使里程XXX公里,应付XXX元,请检查您的随身物品,欢迎再次乘坐再见!

”的提示音。

⑤.按下“Reset”键,进入空车状态。

2.2.4中文菜单显示功能

①.在空车状态下(启动前),LCD屏幕上显示如图2-2所示的中文信息:

2007年XX月XX日XX时XX分XX秒

<空车>

图2-2

②.在空车状态下,按下“start/stop”键,系统播放“您好!

欢迎乘坐本公司出租汽车,谢谢!

”的提示音,同时在LCD屏幕上显示如图2-3所示的中文信息:

您好!

欢迎乘坐本公司出

租汽车,谢谢!

图2-3

③.播完提示音后,进入行使状态,LCD屏幕显示如图2-4所示的信息:

2007年XX月XX日

XX时XX分XX秒

图2-4

④.在行使状态,按下“SpeedUp键,里程显示的公里数增加的速度会不断的变快,金额数值也在作相应的变化。

按下“SpeedDown键,里程显示的公里数增加的速度会不断的变

慢。

⑤.在行使状态,按下“start/stop”键,表示出租车到站,结束行程。

这时屏幕显示如图2-5所示的信息:

起步价:

7.0元总里程:

XXX.XX公里总金额:

XXX.XX元

图2-5

同时,系统播放“您好!

行使里程XXX.XX公里,应付XXX.XX元,请检查您的随身物品,欢迎再次乘坐,再见!

”的提示音。

2.2.5实时时钟功能

用实时时钟芯片DS1302作为时钟电路,产生年/月/日/时/分/秒等信号,供系统调用。

2.2.6按键的功能

“start/stop”键一开始进入行使/结束行使(到站)。

“SpeedUp键一行使加速按键。

按下次按键,可使出租车的速度由OKmh升到lOOKm

“SpeedDown键--行使减速按键。

按下次按键,可使出租车的速度由100K下降到

OKm

“Reset”键--进入空车状态。

第3章硬件设计

3.1电源模块

方案比较:

1、电源采用220v交流电,通过整流滤波电路再经过稳压器件得到需要的+5V

电压

2.直接输入一个6-10V的直流电压,再用稳压芯片芯片得到+5V电压;

通过仔细的考虑,计费系统最终是安装在计程车上的,电源一般不是220V交流电压,而是

有电瓶输出的直流电压,再考虑总体设计成本问题,因此采用方案具体电路图如下图3-1:

2。

电源的输入可以采用两路输入,可接一路备用电源。

防止了突然断电而丢失数据的情况,进一步增加了系统的稳定性。

ram

mOUI

Giro

l+l

Olif

图3-1电源结构图

3.2控制模块

目前比较实用的mcu方案有:

51系列单片机,

avr系列单片机,菱阳系列单片机Pic系列单片机

通过分析系统需求,对于此系统做系统的mcu控制单元性价比最高。

本系统采用11.0592Mhz的晶振,

减小开发时的成本。

具体电路图如图

*

1M:

51系列单片机的资源已经足够,所以采用89S52单片机

S51系列支持isp下载编程,可以方便程序的调试开发,

3-2:

P5

C3

013345DD<

J67O1*u133322222gjgj111TTTTppppppppMEipppM商

二1LEDAK

3—处Tj3gCLK/_畑“_cs

STATE

START

STOP

bOsa

lOuF

RESETX

cALETPXPSEH

lOK

E7

图3-2控制器电路

R5

IDK

P0

Dsa

3.3Led显示模块

1、led数码管轮流显示

2、1602led显示

3、12864lcd显示

Led显示可以基本实现要显示的功能,但轮流显示给顾客的界面很不方面,各种数据不

能同时显示,虽然成本低,但不可取。

1602led可以实现教多数据的显示,但要显示汉字比较麻烦,所能显示的汉字个数也太少,也不可取

12864led大屏幕显示,能显示比较人性化的页面,采用串行控制只需4根控制线,不必占有控制系统的过多io口,性价比最高

因此选取12864led作为显示部分。

其中设计了背光控制电路,ledak端为低电平是背光亮,高电平时灭,可以工作在节电模式。

具体电路如图3-3所示:

TG12864E是一种图形点阵液晶显示器,它主要由行驱动器/列驱动器及128X64全点阵液晶

显示器组成。

可完成图形显示,也可以8X4个(16X16点阵)汉字。

主要技术参数和性能:

-电源:

VDD+2.7~+5V;

块内自带-10V负压,用于LCD勺驱动

电压。

-显示内容:

128(列)X64(行)点

-全屏幕点阵

-七种指令

-与CP接口采用8位数据总线并行输

入输出和8条控制线

-占空比1/64

-工作温度:

-10C~+60C,储存温度:

-20C~+70C,可选择宽温:

-20C~+70C

外形尺寸图如图3-4所示:

Sa±

Q.5-

87±

0.370X0,3-?

?

±

6^-52-

,R1

VCC

..R2

10K

rM

P3

LED!

7-6-54321

B-B-BBBBBsD-D-DDDpdelsc

20

19

13

17

16

15L4

12

11

10g

5

7

6

4

3

图3-3

液晶显示电路

MST岂器I■G-n岂I

128X64DDT

图3-4

液晶显示屏外形

.TG12864EL串口接线方式如图3-5所示:

1-&

图3-5

3.4按键模块

1、使用触摸屏作为控制输入

2、使用矩阵或独立按键作为控制输入

分析:

本系统本考虑使用触摸屏,使系统界面感觉更加人性化,但使用触摸屏在要输入数字时,12864同时也要显示出数字,由于12864要显示键盘的数字比较勉强,要输入数字时还是用矩阵键盘比较合适,如此考虑触摸屏就非常多余,

矩阵键盘扫描时需要较长的时间,因此利用两个独立按键作为系统开始与结束的按键,运用比较方便。

具体电路如图3-6和图3-7所示:

①按键扫描模块电路图及说明:

整个系统只有两个按键,一个“启动/停止”一个“复位”;

本模块功能:

扫描按键功能,

返回扫描结果。

1

£

]KE

图3-6独立按键

图3-7矩阵按键

3.5实时时钟模块

本模块采用ds1302性价比较高,晶振采用时钟标准频率32.768Mhz,控制电路较简单,符合I2C总线。

可实现年月日时分秒的显示,还可选择工作12小时制还是24小时制模式。

电路接图如图3-8所示:

XTALtL22pF

图3-8

3.6掉电存储模块

本模块采用24CXX系列EEPROM此芯片工作在I2C总线模式,控制读写方便,数据存储量大,24C256可达到32kb的容量。

电路图如图3-9所示:

图3-9

3.7语音报价模块

语音功能实现:

为实现语音报价功能,决定采用一块语音芯片录入若干段语音,然后用单片机通过组合方式实现语音报价。

方案比较:

1.采用apr9600音乐芯片实现该功能,apr9600通过串行工作方式分别录入语音段,然后用串行选段控制方式播放语音段,控制方式是每次给/M2一个低电平,芯片地址指向下一段语音,而当给/M1一个低电平时,播放当前段语音,通过控制/M2和/M1即可实现语音播放。

曰,

2.采用isd2560语音芯片实现,isd2560通过地址方式在相应地址分别存入若干段语音,再经单片机按需要调用各段语音,控制方式为单片机通过口线选通所需地址,然后触发芯片

的片选端,即可播放语音。

比较,由于语音报价主要是播放金额的数字,每个数字都要分别存为一段语音,所以导致所需存储的语音段较多,这时如果采用apr9600芯片,由于选段需要提供/M2低电平,选

到后面的段时,需要很多个低电平才能选到,在实际应用中应会造成不小的延时,对语音播放的效果造成影响,而采用isd2560时,由于采用地址方式选段,不存在上述问题,所以语音段之间的延时非常小,由此比较决定,采用isd2560芯片实现语音功能。

电路图如图3-10所示:

图3-10语音芯片电路

3.8车轮模拟测速模块

1、采用红外传感器测量车轮转过的圈数

2、采用接近开关测量车轮转过的圈数

红外传感器价格比较便宜,但红外线的干扰比较多,容易出现误触发,影响系统的稳定性,接近开关稳定性较好,干扰少,为了加强系统稳定性,采用接近开关。

接近开关使用方便,只要接电源和地,当有金属接近到一定距离时数据输出低电平,平时保持高电平,可以产生

中断,接近开关的工作速度也不会太低,所以工作稳定。

其电路图如图3-11所示:

INTI

图3-11

电机驱动电路,采用另一个稳压芯片输出与单片机电源电路隔离开来,可以防止电机大电流对单片机的干扰,并用电位器可实现调速设置,可以简单的模拟车轮的转动。

其电路图如下图3-12所示:

图3-12电机驱动电路

第4章系统程序设计

4.1系统主程序流程框图:

(如图4-1所示)

―单片机—

I/O口初始化

外部中断

初始化

显示模块

时钟模块

各变量、标志清零

显示模式设为

图形方式

显示一幅个性

化图片

显示模式转为

文本方式

显示一幅个人

信息

=0

/工作模式'

=2

MODE=?

/

进入模式0

工作状态

执行空车工作

模式

进入模式1

Wg=?

V=1

显示迎客中文

界面

进入载客工作\状态

脉冲计数

及里程计算

播放语音信息

费率计算

键盘扫描模块

进入模式2

=1

VPiay_gi老1

To

显示到站菜单

显示里程及金额

播报行使里程

及应付金额数

显示

结束中文界面

vPlay_g2=?

>

「=0

播报“请检查您的随身物品”、“欢迎再次乘坐本公司岀租汽车,再见”

4.2里程和费率计算程序流程图(女口图4-2所示):

Milege:

里程Price:

费率

开始

图4-2

〃*********************************************************

voidPriceO

if(RunMilegev=2300)

//TotalPrice=700+100;

TotalPrice=800;

if((RunMilege>

2300)&

&

(RunMilegev=35000))

//TotalPrice=700+(RunMilege-2300)*0.26+100;

TotalPrice=800+(RunMilege-2300)*0.26;

if(RunMilege>

35000)

//TotalPrice=700+(35000-2300)*0.26+(RunMilege-35000)*0.35+100;

TotalPrice=1112+(RunMilege-35000)*0.35;

Price=(ulong)TotalPrice;

}

4.3键盘处理程序流程图(如图4-3所示)

mode=0x00;

write」nst(0x01);

count=0;

voidscankey()

{

if(k2())

bell();

if(mode==0x00)

mode=0x01;

write_inst(0x01);

}"

elseif(mode==0x01)

flag=0;

mode=0x02;

if(k4())

if(mode==0x02)

play_fg1=0;

play_fg2=0;

结束语

通过这次设计,我觉得自己学到了很多东西:

其中我接触到了更多平时没有接触到的元器等,发现了自己很多不足之。

我体会到了所学理论知识的重要性:

知识掌握越多,设计得就更加严谨,更加顺利。

了解了进行一项相对比较大型的科研设计所必不可少的几个阶段。

我经过这次系统的课程设计,熟悉了对一项课题进行研究,设计和试验的详细过程。

这些在我们在将来的工作和学习当中都会有很大的帮助。

加深了解了查阅资料和利用工具书的重要性.平时课堂上所学习的知识大多比较陈旧,作为电子信息工程的学生,由于专业涉及知识广,一个人不可能什么都学过,什么都懂,因此,当我在设计过程中需要用到一些不曾学过的东西时,就要去有针对性地查找资料,然后加以利用吸收,以提高自己的应用能力,而且还能增长自己见识,补充我的专业知识。

参考文献

(1)张鑫、华臻、陈书谦.《单片机原理及应用》[M].电子工业出版社,2005..

(2)丁元杰、吴大伟.《单片微机实题集与实验指导书》[M].机械工业出版社,2004.

(3)凌阳大学计划一《出租车计费系统》一电子文档资料

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

当前位置:首页 > 求职职场 > 简历

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

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