出租车计价器.docx
- 文档编号:23172194
- 上传时间:2023-05-15
- 格式:DOCX
- 页数:22
- 大小:495.10KB
出租车计价器.docx
《出租车计价器.docx》由会员分享,可在线阅读,更多相关《出租车计价器.docx(22页珍藏版)》请在冰豆网上搜索。
出租车计价器
编号:
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 出租车 计价器
![提示](https://static.bdocx.com/images/bang_tan.gif)