出租车计价器.docx

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

出租车计价器.docx

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

出租车计价器.docx

出租车计价器

编号:

J乙2101

 

出租车计价器

 

摘要

本设计是以单片机AT89S52为核心设计的一款多功能出租车计价器,本文系统的阐述了软硬件设计过程中关键技术的处理。

演示结果表明该计价器能够很好的实现里程计价与显示、数据存储与查询、时钟显示、语音播报、超速报警和票据打印等功能。

它比市场上的一些计价器使用更方便,功能更全。

【关键词】出租车计价器、AT89S52单片机、语音播报、票据打印、时钟显示

Abstract

ThisdesignisthecoreofthemonolithicintegratedcircuitAT89S52designforamulti-functionalmetertaxi,thispaperelaboratesthesystemhardwareandsoftwaredesignprocessofthekeytechnology.Demonstrationresultsindicatethatthismetercanrealizemileagevaluationwiththedisplay,datastorageandinquiry,theclockdisplay,speechbroadcast,printandspeedingalarmfunctions.Itisonthemarketismoreconvenient,usesomemeterfunctionmorecompletely.

【Keywords】Taximeter;AT89S52MCU;voicebroadcast;ticketprinting;clockdisplay

 

1总体方案及系统框图

整个系统由单片机AT89S52控制电路、RPR220传感器电路、AT24C02存储电路、DS1302时钟电路、SYN6288语音播报电路、票据打印电路、按键调整电路、74HC595驱动显示电路、蜂鸣电路、L298电机驱动电路及电源电路组成,能顺利完成基本要求和发挥部分。

如图1-1所示:

 

图1-1系统框图

2方案的选择与比较

2.1控制器的选择

方案一:

采用凌阳公司的16位单片机,它是16位控制器,具有体积小、驱动能力强、可靠性高、功耗低、结构简单、遇有语音处理、运算速度快等优点。

方案二:

AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K字节在系统可编程Flash存储器。

片上Flash允许程序存储器在系统可编程,亦适于常规编程器。

综合以上方案凌阳的单片机采用微处理器我们小组并不熟悉,使用起来并不方便,因此我们选择了我们更为熟悉的ATL89C52单片机为我们的整个系统的控制核心。

2.2数码管显示驱动的选择

方案一:

74HC595是一款漏极开路输出的CMOS移位寄存器,输出端口为可控的三态输出端,亦能串行输出控制下一级级联芯片,低功耗,具有锁存器。

方案二:

74HC164是8位边沿触发式移位寄存器,串行输入数据,然后并行输出,没有锁存器。

方案二能较好的好符合系统的要求,而且74HC595可以驱动更多的数码管,因此我们选择了此方案。

2.3语音芯片的选择

方案一:

ISD1420此芯片为美国ISD公司出品的优质单片语音录放电路,由振荡器、语音存储单元、前置放大器、自动增益控制电路、抗干扰滤波器、输出放大器组成。

方案二:

SYN6288芯片硬件接口简单、低功耗、音色清亮圆润、极高的性/价比;除此之外,SYN6288在识别文本/数字/字符串更智能、更准确,语音合成自然度更好、可懂度更高。

经过实验,我们小组发现ISD1420录音再播放,而且自己录的音质不好,而SYN6288直接由软件控制,更容易实现我们的功能,所以我们选择方案二。

2.4测速模块的选择

方案一:

A44E霍尔传感器电路

方案二:

反射式光电传感器

综合以上两个方案,霍尔传感器电路只能够跟磁性物质组成曲线,成本高,而反射式传感器采用一体化结构,灵敏度比较高,体积小,安装方便,所以我们选择方案二。

3硬件系统设计

3.1单片机模块

AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K字节在系统可编程Flash存储器,片上Flash允许程序存储器在系统可编程,亦适于常规编程器。

在单片机芯片上,拥有灵巧的8位CPU和在系统可编程Flash。

电路图如图3-1所示:

图3-1单片机最小系统电路

3.2电源模块

由于计价器的工作环境比较差,它要求有抗振动、抗高低温、抗潮湿、抗电磁干扰等能力,特别是电源方面的干扰,如出租车启动时,发动机打火、电瓶充电等造成输入计价器的+12V电源不稳定。

因此采用+12V电源经过滤波和两个降压稳压器后得到+5V的稳定电压输出,保证整个系统能够正常工作。

电路图如图3-2所示:

图3-2电源电路

3.3光电开关测速模块

我们设计的测速模块是通过RPR220光电开关对码盘进行测量,以得到标准的脉冲信号送入单片机,把码盘(如图3-3)分成40份,码盘的黑白为一个脉冲,这样就可以算出在单位时间内的脉冲数,从而计算出速度来。

图3-3码盘

3.4按键设置部分

键盘部分我们采用4个I/O口控制16个按键,大大的节省了I/O的资源,功能分别是例程、查询、清楚、调速、1、2、3、4、5、6、确定、取消、单程、往返、暂停、输密码。

电路图如图3-4所示:

图3-4按键电路

3.5显示模块

显示模块我们选用的是3组8位共阳的数码管,用74HC595来驱动数码管,节省了I/O的资源。

第一组的前四位显示行车里程数,后四位显示金额数;第二组的前四位显示车速,后四位显示累计等待时间;第三组数码管用来显示实时时间。

电路图如图3-5所示:

图3-5数码管电路

 

3.6语音播报模块

语音播放方面我们选择的是SYN6288芯片,SYN6288芯片具有清晰、自然、准确的中文语音合成效果,可合成任意的中文文本,不需要人工录入,直接用单片机发送指令,简单快捷,本电路用来启动提示、停车提示、报时和超速提醒功能。

电路图如图3-6所示:

图3-6语音电路

3.7时钟模块

时钟方面我们选择的是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,采用SPI三线接口与CPU进行同步通信;时钟可提供秒、分、时、日、星期、月和年;通过设置元器件与应用肖卫初等:

基于单片机的多功能出租车计价器的设计DS1302的控制/状态寄存器选择日历,时钟方式经过初始校准后即可工作使用;工作电压宽达2.5~5.5V,采用双电源供电(主电源和备用电源),并设置备用电源充电方式,提供了对后背电源进行涓细电流充电的能力,在没有主电源的情况下启用备用电源能保存时间信息及数据。

本电路用来实时显示时间,电路图如图3-7所示:

图3-7时钟电路

3.8信息存储模块

数据存储部分的作用是在电源断开时,存储当前设定的单价信息。

AT24C02是ATMEL公

司的2kB的电可擦除存储芯片,采用2线串行的总线和单片机通讯,电压最低可以到2.5V额定电流为1mA,静态电流10Ua(5.5V),芯片内的资料可以在断电的情况下保存40年以上而且

采用8脚的DIP封装,使用方便。

时钟信号线SCL与数据线SDA需外接5.1kΩ的上拉电阻,其作用是减少AT24C02的静态功耗,24C02采用I2C总线与AT89S52相连,AT89S52的P1.0作为它的串行时钟线,P1.1作为它的串行数据新型元器件线。

当通过通过按键设定一次数据完毕后(如:

昼夜单价、等候时间、起租里程、起租金额等),系统就自动调用存储程序,将数据信息保存在芯片内;当系统重新上电时,自动调用读存储器程序,将存储器内的数据信息,读到缓存单元中,供主程序使用。

由于保存在24C02中的数据是不能随意进行改动的,因此它具有防作弊功能。

电路图如图3-8所示:

图3-8存储器电路

3.9票据打印模块

当出租车到达指定地点,司机翻起空车牌,便产生一个信号通知单片机AT89S52,单片机启动打印服务,将行车的中途等待时间、营运里程、单价、金额、日期及上下车时间等数据打印成出租车专用发票。

该电路采用接口插板方式与单片机相连,这一特点使得计价器的票据打印在功能上与主系统一体化,而在检查、维修时又可单独进行。

本设计中所用的是迅普电子技术公司生产的SP-E1610SK-12系列微型打印机。

3.10直流电机驱动模块

我们采用两个L298芯片来驱动电机,L298芯片输出电压最高可达5V,直接可以通过电源来调节输出电压,可以直接用单片机的I/O口提供信号,而且电路简单,使用比较方便。

电路图如图3-9所示:

图3-9电机驱动电路

3.11继电器模块

我们的系统需要连接打印机和语音芯片,需要两个串口,可是单片机只有一个串口,所以我们加上继电器来进行切换,以保证打印机和语音芯片的工作。

当触点常闭的时候语音芯片工作,当触点吸合的时候打印机工作。

电路连接图如3-10所示:

图3-10继电器电路

4测试仪器及结果

激光测速仪、数字万用表等;测试结果分析见附录A。

5软件设计

5结束语

经过测试,我们的出租车计价器能顺利完成基本要求和发挥部分。

在这四天三夜的时

间里,我们经历了很多很多,我也学习到了很多,车体完全是我们自己摸索着打造出来的,我的动手能力也提高了很多,当然这是我们这一个团队的成果,更进一步提高了我的团队意识。

这次竞赛培养了我们创新意识,让我们所学的理论知识得以实际运用,让我们更有信心在电子行业中继续学习下去。

当然,我们的知识能力和水平有限,有些地方还不是很完善,恳请各位老师批评指正,以便我们下一次做的更好。

 

参考文献:

[1]C语言程序设计谭浩强清华大学出版社2009

[2]模拟电子技术胡宴如高等教育出版社2007

[3]电路设计与制版Protel99高级应用赵晶主北京人民邮电出版社2000

[4]单片机原理及应用杨恢先,黄辉先.国防科技大学出版社2003

[5]电子技术基础数字部分康华光北京高等教育出版社2003

[6]模拟电子技术基础童诗自,华成英北京高等教育出版社2003

[7]单片机原理与应用戴胜华,蒋人明北京清华人学出版社2005

[8]Prote12004电路设计与电路仿真陈学平,兰帆北京清华人学出版社2007

 

附录A

 

出租车模拟测速装置相关计算及计算结果

一、相关计算:

1、小车车轮周长

直径D=6.37cm,则车轮周长为L=πD=20cm

2、单个方波脉冲对应的弧长

3、车轮光电编码盘采用40分黑白相间的圆纸盘,对应每份的弧长是0.5cm,对应光电传感器测速装置产生20个方波脉冲,每个方波脉冲对应的弧长是1cm。

3、转速计算

设光电传感器每分钟检测到的脉冲数是x个,每转光电传感器测速装置检测到20个方波脉冲,则转速n=

(rpm)

4、车速计算

若里程用S表示,时间用T表示,车速用V表示,车速V=S/T

赛题规定转盘转速为5转/分对应车速5公里/小时,转盘转速为50转/分对应车速50公里/小时,依此类推,按实际转盘转速换算对应车速。

5、双程模式计价:

起步价8元;非等待计费(车速≥5km/h),若1.5元/km,若非等待里程用X2表示,则非等待计费为1.5X2元;等待计费(车速<5km/h,每5分钟,按1.5元/km计算),若等待时间为T2,则等待计费为

元。

双程计价金额=起步价+非等待计费+等待计费

=8+1.5X2+

=8+1.5X2+0.3T

测试结果如下:

设定

转速

(rpm)

测试

转速

(rpm)

转速

误差

理论

车速

(km/h)

测试

车速(km/h)

车速

误差

理论

里程

(km)

测试

里程

(km)

里程

误差

理论

金额

(元)

实际

金额

(元)

金额

误差

5

5

0

5

5

0

5

5

0

11

11

0

10

10

0

10

10

0

10

10

0

18.5

18.5

0

20

20

0

20

20

0

20

20

0

33.5

33.5

0

30

30

0

30

30

0

30

30

0

48.5

48.5

0

40

41

2.5%

40

41

2.5%

40

41

2.5%

63.5

65

2.36%

50

52

4%

50

52

4%

50

52

4%

78.5

80

1.91%

6、单程模式计价:

起步价8元

非等待计费(车速≥5km/h),若2元/km,若非等待里程用X1km表示,则非等待计费为2X1元。

等待计费(车速<5km/h,每5分钟,按2元/km计算),若等待时间为T1,则等待计费为

元。

(1)单程<6km无回空费

单程计价金额=起步价+非等待计费+等待计费

=8+2X1+

=8+2X1+0.4T1

测试结果如下:

设定

转速

(rpm)

测试

转速

(rpm)

转速

误差

理论

车速

(km/h)

测试

车速(km/h)

车速

误差

理论

里程

(km)

测试

里程

(km)

里程

误差

理论

金额

(元)

实际

金额

(元)

金额

误差

3

3

0

3

3

0

3

3

0

32

32

0

5

5

0

5

5

0

5

5

0

12

12

0

10

10

0

10

10

0

10

10

0

22

22

0

20

20

0

20

20

0

20

20

0

42

42

0

30

30

0

30

30

0

30

30

0

62

62

0

40

41

2.5%

40

41

2.5%

40

41

2.5%

82

84

2.44%

50

52

4%

50

52

4%

50

52

4%

102

106

3.92%

(2)单程>6km有回空费

回空费就是出租车行驶到6公里以上加收的那部分费用。

出租车在6公里内不收回空费,超过6公里的部分,每车每公里加收基本租价50%的空驶费,

非等待计费若2元/km,总行驶里程用X3表示,回空费为X3-6元。

单程计价金额=起步价+非等待计费+等待计费+回空费

=8+2X1+

+X3-6

=2+2X1+0.4T1+X3

测试结果如下:

设定

转速(rpm)

测试

转速

(rpm)

转速

误差

理论

车速

(km/h)

测试

车速(km/h)

车速

误差

理论

里程

(km)

测试

里程

(km)

里程

误差

理论回空费(元)

实际回空费

(元)

理论

金额(元)

实际

金额(元)

金额

误差

3

3

0

3

3

0

3

3

0

0

0

32

32

0

5

5

0

5

5

0

5

5

0

0

0

12

12

0

10

10

0

10

10

0

10

10

0

4

4

26

26

0

20

20

0

20

20

0

20

20

0

14

14

56

56

0

30

30

0

30

30

0

30

30

0

24

24

86

86

0

40

41

2.5%

40

41

2.5%

40

41

2.5%

34

35

116

119

2.58%

50

52

4%

50

52

4%

50

52

4%

44

46

146

152

4.1%

7、速度变化时单程模式无回空费的测试结果如下:

0-30S

30S-60S

设定

转速

(rpm)

测试转速

(rpm)

转速误差

理论车速

(km/h)

测试车速

(km/h)

车速误差

理论等待时间

(min)

测试等待时间

(min)

等待时间误差

设定

转速

测试转速

转速误差

理论车速

(km/h)

测试车速

(km/h)

车速误差

理论等待时间

(min)

测试等待时间

(min)

等待时间误差

理论金额

(元)

实际金额

(元)

误差金额

5

5

0

5

5

0

0

0

0

3

3

0

3

3

0

30

30

0

22

22

0

10

10

0

10

10

0

0

0

0

3

3

0

3

3

0

30

30

0

27

27

0

20

20

0

20

20

0

0

0

0

3

3

0

3

3

0

30

30

0

37

37

0

30

30

0

30

30

0

0

0

0

3

3

0

3

3

0

30

30

0

47

47

0

40

41

2.5%

40

41

2.5%

0

0

0

3

3

0

3

3

0

30

30

0

57

58

1.7%

50

52

4%

50

52

4%

0

0

0

3

3

0

3

3

0

30

30

0

67

69

3%

8、速度变化时双程模式测试结果如下:

0-30S

30S-60S

设定

转速

(rpm)

测试转速

(rpm)

转速误差

理论车速

(km/h)

测试车速

(km/h)

车速误差

理论等待时间

(min)

测试等待时间

(min)

等待时间误差

设定

转速

测试转速

转速误差

理论车速

(km/h)

测试车速

(km/h)

车速误差

理论等待时间

(min)

测试等待时间

(min)

等待时间误差

理论金额

(元)

实际金额

(元)

误差金额

5

5

0

5

5

0

0

0

0

3

3

0

3

3

0

30

30

0

18.5

18.5

0

10

10

0

10

10

0

0

0

0

3

3

0

3

3

0

30

30

0

22.25

22.2

0.22%

20

20

0

20

20

0

0

0

0

3

3

0

3

3

0

30

30

0

29.75

29.7

0.17%

30

30

0

30

30

0

0

0

0

3

3

0

3

3

0

30

30

0

37.25

37.2

0.13%

40

41

2.5%

40

41

2.5%

0

0

0

3

3

0

3

3

0

30

30

0

44.75

45.5

1.67%

50

52

4%

50

52

4%

0

0

0

3

3

0

3

3

0

30

30

0

52.25

53.7

2.77%

附录B

控制板原理图

附录C

部分程序:

voidinit()

{

TMOD=0x11;

TH0=0x3C;//50MS中断一次

TL0=0xB0;

TH1=0x3C;

TL1=0xB0;

TR0=1;

ET0=1;

EX0=1;

IT0=1;

EA=1;

}

voidchesu()

{

sudu=ll*6;

_595(number[sudu%10]);

_595(number[sudu/10%10]);

_595(number[sudu/100%10]);

_595(number[sudu/1000]);

_595(0xff);_595(0xff);_595(0xff);_595(0xff);

CS=0;

CS=1;

}

voidwait()

{

_595(number[waitmiao%10]);

_595(number[waitmiao/10]);

_595(number[waitfei%10]&0x7f);

_595(number[waitfei/10]);

}

voidmakejine()//算金额

{

if(qianflag==0)

{

if(licheng<=30)jine=800;

else

{

if(ch==2)jine=800+(licheng-30)*20;

elseif(ch==1)jine=800+(licheng-30)*15;

}

}

elsejine=0;

}

voiddislijin()//显示里程金额mode=0时

{

wait();

chesu();//显示车速

makejine();

jine=jine/10;

_595(number[jine%10]);

_595((number[(jine/10)%10])&0x7f);

_595(number[(jine/100)%10]);

_595(number[(jine/1000)%10]);

_595(number[licheng%10]);

_595((number[licheng/10%10])&0x7f);

_595(number[licheng/100%10]);

_595(number[licheng/1000%10]);

CS=0;

CS=1;

}

voiddistime()//第一屏显示时间

{

_595(0xff);_595(0xff);_595(0xff);_595(0xff);_595(0xff);_595(0xff);_595(0xff);_595(0xff);

_595(number[timemiao%10]);

_595(number[timemiao/10]);

_595(number[timefei%10]&0x7f);

_595(number[timefei/10%10]);

_595(number[timefei/100%10]);

_595(0xff);_595(0xff);_595(0xff);

CS=0;

CS=1

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

当前位置:首页 > IT计算机 > 电脑基础知识

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

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