基于Labview的出租车计价系统设计.docx
- 文档编号:28064009
- 上传时间:2023-07-08
- 格式:DOCX
- 页数:20
- 大小:1.05MB
基于Labview的出租车计价系统设计.docx
《基于Labview的出租车计价系统设计.docx》由会员分享,可在线阅读,更多相关《基于Labview的出租车计价系统设计.docx(20页珍藏版)》请在冰豆网上搜索。
基于Labview的出租车计价系统设计
基于Labview的出租车计价系统设计
设计说明书
1引言
1.1项目概述
随着我国的国民经济快速有力的发展,人民的生活普遍提高,城市生活的质量也逐渐改善,交通运输也得到有力发展。
而作为城市交通的主力军--出租车,是城市发展中不可或缺的一部分,而出租车计价出租车计价系统则是出租车上必不可少的重要仪器,它是负责出租车营运收费的专用智能化仪表,能根据乘客乘坐汽车行驶距离和等候时间的多少进行计价,并直接显示车费值的重要器具。
我们小组的项目是基于labview原理设计的出租车计价仿真系统,旨在模拟一个全真的出租车计价系统结构环境,通过电机转动,模拟出租车的行驶状态,然后通过单片机采集电机的转速来得到出租车的行驶状态速度、里程、价格等信息。
1.2项目目的
我们小组的项目目的在于现在各大中城市出租车行业都已普及自动计价器,所以计价器技术的发展已成定局。
而部分小城市尚未普及,但随着城市建设日益加快,象征着城市面貌的出租车行业也将加速发展,出租车计价器的普及也是毫无疑问的,所以未来汽车计价器的市场还是十分有潜力的。
而我们则是通过labview建立一个全真的出租车计价系统的仿真环境,实现出租车在正常行驶状态下计价系统的运行状况,具有一定的实用价值、和实践意义。
1.3设计任务
1.3.1实现计费功能
车起步开始计费,首先显示起步价9元,行程在3km以内,按起步价收费;当出租车行驶里程超过3km,在白天(7:
00-18:
30)行驶期间超出部分按1.9元/km计算,在夜晚(18:
30-7:
00)行驶期间超出部分按2.5元/km计算;车在低速状态下(车速小于等于10km/h)行驶,按1元/min收费(上下班高峰期间容易堵车)。
1.3.2实现显示功能
能够实时显示仿真出租车行驶的转速、里程、实时速度、金额,同时显示出租车行驶时间,能够指示高速低速夜间和白天指示。
1.4研究思路和方法
制作信号采集电路采集电机转动信息,同时通过labview编写出租车计价仿真系统,检测电机转动状态,模拟出租车的运行状态,对所得的转速信息来得到出租车的行驶状态速度、里程、价格等信息实现出租车计价
2系统总体方案设计
2.1出租车计价原理
令每一次传送的圈数为
,则总圈数为N=
。
则得到里程
S=N*L,L为汽车轮子的周长。
令系统的瞬时速度为V,我们1S更新一次转动的圈数。
在奇数秒我们取得转动圈数为
,在偶数秒转动的圈数为
,则可求得瞬时的转速n
n=
同理可得瞬时的速度为
V=n*L,L为汽车轮子的周长
令起步价:
,起步里程:
,里程单价:
A白天里程单价:
,晚上里程单价:
高速白天高速里程金额为:
夜晚高速里程金额为:
当汽车低速行驶时汽车按时间收费,令低速的时间为则有低速金额
则总金额为
2.2系统原理框图
图1系统原理框图
通过上一节的分析可以知道只要能够测量出出租车所走过的圈数即可求得瞬时速度,出租车金额等数据。
系统通过单片机控制电机转动模拟出租车运行状态,然后传感器将转动的圈数转变为数字量,通过P3.2外部中断0传递给MCU,MCU使用定时器每500毫秒将计数值清零一次并将得到的数据通过串口发送给PC机。
PC机通过labview编程实现出租车各项数据参数的测试。
完成出租车计价。
3系统硬件设计
红外传感器检测车轮转动,车轮转动一次,传感器检测到一个脉冲,单片机采集后,将采集次数值计数,每隔500ms通过串口,向上位机发送一次数据,然后将数值清零,从新开始计数。
3.2各模块电路功能及原理分析
3.2.1电源模块原理分析
电源模块电路图如图所示。
图2电源、开关、指示电路图
输入接,+5V电源,加上开关csw,容易控制,电源指示灯D2,显示电源指示;
3.2.2主控电路、接口、等模块电路分析
主控电路、接口等电路图如图3所示。
图3主控电路、复位、传感器等电气连接图
主控电路模块为包括单片机模块和复位等模块,以及相互之间的连接特性,各个IO口与芯片的连接。
3.3硬件电气原理图
请见附录。
3.4硬件程序
系统以单片机系统为核心,通过程序实现各部分的功能。
单片机在上电后首先要对子程序的各模块进行初始化使其正常工作。
初始化后单片机每隔500ms通过串口发送数据到上位机。
程序初始化完后即不断重复以上步骤从而使系统程序稳定运行。
图4检测部分程序框图
4系统软件设计
4.1Labview简介
Labview是美国国家半导体(NI)公司研制的图形化编程环境。
他通过G语言进行程序开发产生类似框图形式的程序,同时Labview拥有强大的函数库能够大大简化开发难度缩短开发周期。
LabVIEW的函数库包括数据采集、GPIB、串口控制、数据分析、数据显示及数据存储等等。
LabVIEW也有传统的程序调试工具,如设置断点、以动画形式显示数据及其通过程序(子VI)的结果、单步执行等等,便于程序的调试。
虚拟仪器,简称VI,包括三部分:
前面板、框图程序和图标/连接器。
程序前面板,用于设置输入量和观察输出量。
它模拟真实仪器的前面板。
其中,输入量被称为Controls(控件),用户可以通过控件向VI中设置输入参数等;输出量被称为Indicators(指示器),VI通过指示器向用户提示状态或输出数据等。
用户还可以使用各种图标,如旋钮、开关、按钮、图表及图形等,使前面板易看易懂。
每一个程序前面板都有相应的框图程序与之对应。
框图程序,用图形编程语言编写,可以把它理解成传统程序的源代码。
框图中的部件可以看成程序节点,如循环控制、事件控制和算术功能等。
这些部件都用连线连接,以定义框图内的数据流动方向。
图标/接口器件可以让用户把VI程序变成一个对象(VI子程序),然后在其他程序中像子程序一样地调用它。
图标表示在其他程序中被调用的子程序,而接线端口则表示图标的输入/输出口,就像子程序的参数端口对应着VI程序前面板控件和指示器的数值。
Labview拥有强大的数据采集处理能力、编程简单易懂便于我们进行开发。
4.2自定义控件
在labview中拥有大量的控件可以用于我们的项目当中,但是这些控件大都单调简单,可用于平常的简单显示,不适合我们项目的配色等显示要求。
我们可以通过自定义控件的方式来美化控件使这些控件能够更好的适应我们的项目要求达到我们所要的效果。
图5Labview自带仪表盘
这是一个labview自带的仪表盘,我们想要显示速度如果用这个表盘的话不是特别形象生动,我们通过自定义控件的方式对控件进行了美化使我们使用起来更加形象生动。
图6自定义码表控件
4.3界面设计
通过自定义控件我们完成了程序的前面板设计。
图7系统前面板设计
通过码表显示瞬时速度和瞬时转速,通过一个表格显示了金额、单价、里程、时间等信息。
我们用按键可以控制上下车。
通过红色布尔变量来指示高速低速、白天黑夜。
4.4VISA数据接收
4.4.1VISA简介
VISA(VirtualInstrumentSoftwareArchitecture,简称为"Visa"),即虚拟仪器软件结构,是VXIplug&play联盟制定的I/O接口软件标准及其规范的总称。
VISA提供用于仪器编程的标准I/O函数库,称为VISA库。
VISA函数库驻留在计算机系统内,是计算机与仪器的标准软件通信接口,计算机通过它来控制仪器。
我们使用了VISA中的串口来进行数据接收。
4.4.2VISA接收流程
首先进行VISA初始化,设置波特率等相关数据。
然后打开串口,接下来进行数据接收,接收完以后要关闭串口。
串口只需要初始化一次然后打开串口就可以进行多次读取。
图8串口调试界面
图9串口设置
4.5出租车计价功能实现
4.5.1串口数据提取
图10读取串口数据
由于串口每500ms发送一个采集到的转速给labview,发送的数据为字符型的我们不能直接作为数字使用需要先转化为数字才能使用。
转换方法为我们先建立一个数组通过数组索引的方法将字符转换为数字。
将得到的圈数进行累加即可求得总圈数以及其他所需数据。
4.5.2瞬时速度的计算
瞬时速度我们1s更新一次,在奇数秒时得到一个里程数然后再偶数秒再得到一个秒数两者相减除以时间即是我们所需的瞬时速度。
图11计算瞬时速度
4.5.3出租车计价计算
我们通过系统时间进行比较得出白天与黑夜的差别。
然后实行夜晚与白天分别计价。
同时当速度低于10km/h时我们采用时间计价总金额各项金额之和。
我们使用条件结构进行各项数据的判断,同时用移位寄存器将所得金额进行存储用于累加求得总金额。
图12计算总金额
5调试运行
5.1硬件系统仿真
我们用单片机采集到电机的转速通过串口发送,用串口助手接收硬件系统发送的数据,各部分工作正常。
5.2软件系统仿真
对Labview程序进行了运行我们用随机数模拟串口接收实现出租车计价系统的正常运行各部分工作稳定。
同时我们也用虚拟串口发送数据对软件系统进行了仿真。
将COM1和COM2进行配对COM2负责通过串口调试助手发送数据,COM1口由于labview的数据接收口。
图13虚拟串口配置
图14串口调试助手
5.3系统仿真运行
系统运行各部分稳定工作实现白天夜晚分别计价,当速度小时按分钟收费完成各项系统功能,运行稳定。
图15系统运行界面
5.4总结与改进
我们通过labview建立一个全真的出租车计价系统的仿真环境,实现出租车在正常行驶状态下计价系统的运行状况,具有一定的实用价值、和实践意义。
但也一些地方需要改进,首先,我们做的是通过labview建立的全真仿真环境,是基于PC机,不能运用到实际出租车上,其次,我们需用马达作为车轮仿真对象,和实际有一定偏差,如用到真实场合,需要改进,最后,程序未到真实环境运行,很多问题可能未被发现。
结论
通过这次课程实践完成了基于Labview的出租车计价系统的设计、制作、调试、运行等工作。
实现了出租车计价系统所需功能,达到了预期目标。
在课程实践中我们对Labview有了更加深入的了解,对Labview编程实现数据的采集处理过程更加熟悉。
参考文献
[1]汪敏生.Labview基础教程.北京:
电子工业出版社,2002.
[2]吕向锋,高洪林,马亮,基于LabVIEW串口通信的研究,2009.
[3]彭庆华.虚拟仪器软件Labview的串行口通信编程[J]自动化仪表.2002年3月.
[4]匡万,毛幼菊.单片机与PC机串行通信的研究.微计算机信息,1998年04期.
[5]马忠梅,张凯.单片机的C语言应用程序设计.北京:
北京航空航天大学出版社,2005.3.
附件
附件1labview程序
附件2硬件原理图设计
附件3实物照片
附件4计数数据发送程序
/***********************************************************************/
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitKK=P3^2;//
uchar_P=0;
ucharCount=0;
ucharStep=0;
bitFB_flag=0;
voidDelay(uinti)
{
ucharx,j;
for(j=0;j
for(x=0;x<=148;x++);
}
voidCom_Init(void)
{
TMOD=0x21;
PCON=0x00;
SCON=0x50;
TH1=0xFd;
TL1=0xFd;
TR1=1;
EA=1;
ES=1;
}
voidOutside_Init(void)
{
EX0=1;//开外部中断0
IT0=1;//负边沿触发
EX1=1;//开外部中断1
IT1=1;//负边沿触发
EA=1;//开总中断
}
voidTime0_Init()
{
//TMOD=0x01;
TH0=0x4c;
TL0=0x00;
ET0=1;
TR0=1;
}
main()
{
uchari;
//uintk=0;
Time0_Init();
Outside_Init();
Com_Init();
while
(1)
{
;
}
}
voidOutside_Int1(void)interrupt0using1
{
uinti=0;
Delay
(2);
if(KK==1)
{
_P++;
}
}
voidTime0_Int()interrupt1
{
TH0=0x4c;
TL0=0x00;
Count++;//长度加1
if(Count==10)
{
SBUF=_P;
while(!
TI)//如果发送完毕,硬件会置位TI
{
_nop_();
}
TI=0;
//Delay(5);
_P=0;
Count=0;
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Labview 出租车 计价 系统 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)