当前位置:文档之家› 基于labView的温度采集系统设计

基于labView的温度采集系统设计

基于LabVIEW的温度采集系统设计摘要:设计了基于LabV IEW的温度采集系统。

它利用DS18B20数字温度传感器和STC公司生产的STC89C52单片机采集被测环境温度,将测得的数据经串口传给计算机。

计算机利用LabV IEW的V ISA读取串口数据并进行处理和显示,实现基于V ISA的串口温度采集。

关键词:温度传感器;单片机;LabV IEW;温度采集1引言虚拟仪器(Virtual Instrument)是基于计算机的软硬件测试平台,它可代替传统的测量仪器。

LabVIEW是由美国国家仪器公司(National Instruments Co.)推出的、主要面向计算机测控领域的虚拟仪器软件开发平台,是一种基于图形开发、调试和运行的集成化环境[1]。

利用LabVIEW设计的数据采集系统,可模拟采集各种信号,但是配备NI公司的数据采集板卡比较贵,因此,可以选择单片机小系统作为前端数据采集系统,进行采集数据,然后通过RS-232串口通讯将数据送给计算机,在LabVIEW 开发平台下,对数据进行各种处理、分析并对信号进行存储、显示和打印,从而实现了一种在LabVIEW环境下的单片机数据采集系统。

2 温度采集系统设计本系统采用STC公司生产STC89C52单片机作为温度数据采集和传输的主控芯片,温度传感器采用单总线方式的集成数字温度传感器DS18B20。

采集得到的数据利用单片机经串口通信的方式传输至计算机的串口。

计算机上位机软件采用数据处理能力超强的LabV IEW软件编写,利用其所带的V ISA驱动进行串口的数据采集和处理,实现了基于V ISA的串口温度采集。

2.1温度采集系统的硬件设计本系统以AT89C51为中央处理单元,利用DS18B20数字温度传感器对温度信号进行采集,采集到的信号被送到AT89C51中, 将采集到的温度值在LCD上显示并通过串口发送到上位机,其原理图如1所示(见附录1)。

2.1.1 中央处理单元——STC89C51本设计选用的中央处理单元是STC89C52单片机,STC89C52是一种带8K 字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Eras-able Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。

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

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

其优点有三:(1)低功耗、低价;(2)高速、高可靠;(3)抗静电、干扰能力强;STC89C52标识分别解释如下:STC—表示芯片为STC公司生产的的产品。

8—表示该芯片为8051内核芯片。

9—标示内部含Falsh E2 PROM存储器。

C—标示该器件为COMS产品。

5—固定不变。

2—表示该芯片内部程序存储空间大小,1为4KB。

2为8KB,3为12KB。

2.1.2 DS18B20数字温度传感器DSI8B20是DALLAS公司的最新单线数字温度传感器,它体积小、经济。

是世界上第一片支持“一线总线”接口的温度传感器。

一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念[3]。

它的测量温度范围为-55~+125℃。

现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。

适合于恶劣环境的现场温度测量,如环境控制、设备或过程控制、测温类消费电子产品等。

与前一代产品不同,新的产品支持3~5.5 V 的电压范围,使系统设计更灵活、方便。

而且新一代产品更便宜,体积更小。

DSI8B20可以程序设定9~12位的分辨率,精度为±0.5℃。

可以选择更小的封装方式,更宽的电压适用范围。

分辨率设定及用户设定的报警温度存储在EPROM 中,掉电后依然保存。

DS18B20的性能是新一代产品中最好的,性能价格比也非常出色,继“一线总线”的早期产品后,DSI8B20开辟了温度传感器技术的新概念。

DS18B20和DS18B22使电压特性及封装有更多的选择,让用户可以构建适合自己的经济的测温系统。

DS18B20内部结构主要由4部分组成:64位光刻R OM,温度传感器、非挥发的温度报警触发器T H和TL,配置寄存器。

本次设计智能温度报警系统的温度采集就由DSI8B20完成。

将DSI8B20的GND脚接地,VDD脚接高电平,而单总线DQ脚接单片机的外部中断1脚,具体的采集电路如图2所示。

图2 温度采集电路2.1.3 LCD1602显示模块本设计使用的1602液晶是一种点阵液晶显示器,电压驱动为5V,带背光,每行显示16个字符,一共可以显示两行。

1602是字符型液晶,即只能显示ASCII 码字符,如数字、大小写字母、各种符号等,不能显示汉字。

内置含128个字符的ASCII字符集字库,只有并行接口,无串行接口。

工作温度一般在-10到+50度,存储温度一般在-20到+70度。

2.2温度采集系统的软件设计下位机软件采用C语言编写,包括DS18B20的读写和串口通信[4]两个主要部分。

上位机软件采用当前测试测量应用最广泛的LabV IEW编写[5]。

LabV IEW (L abo ra to ry V irtua l In st rum en t Eng ineering)是一种图形化的编程语言,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。

2.2.1下位机软件软件设计程序采用C语言进行编写,主要完成LCD1602初始化、DS18B20初始化从DS18B20读取数据、向DS18B20写数据及温度转化等子程序的编写。

此外,在进行程序的编写时,一定要严格保证DS18B20读写时序的正确性,否则无法读取测温结果。

其初始化时序和写时序的程序分别如下:(1)DS18B20初始化时序初始化时序包括一个主机发出的复位脉冲以及从机的应答脉冲,这一过程如图3所示,复位脉冲是一个480~960us的低电平,然后释放总线将总线拉至高电平,时间持续15~60us。

之后,从机开始向总线发出一个应答脉冲,该脉冲是一个60us~240us的低电平信号,表示从机已准备好。

在初始化过程中,主机接收脉冲的时间最少为480us。

void ds18B20_initial()//DS18B20初始化程序{do{DQ=1;_nop_();_nop_();DQ=0;Delay(36);DQ=1;delay(3);result_ds18b20=DQ;delay(18);}while(result_ds18b20==1);}(2)DS18B20的写时序DS18B20的写时序如图4所示,分为写0和写1时序两个过程,主机把单线总线从高电平拉到低电平时,表示一个写周期的开始。

当要写0时序时,单总线要被拉至至少60us,当要写1时序时,单总线被拉低以后,在15us之内就得释放单总线,将总线拉为高电平。

此外,两个写周期之间至少要1us的恢复时间。

图4 DS18B20的写时序void WriteOneChar(unsigned char dat)//写一个字节程序{unsigned char k,m;for(k=8;k>0;k--){DQ=0;for(m=2;m>0;m--);DQ=dat&0x01;delay(5);DQ=1;dat>>=1;}}下位机软件流程图如图图5:开始初始化1602液晶和传感器DS18B20设置温度上限值启动温度转换温度换算及显示图5:下位机软件流程图2.2.2 LabVIEW下的串口通讯的实现LabVIEW的函数库中提供了串口通讯函数,可用来设计单片机与PC机的串口通讯[6]。

(1)串口初始化:图6 串口初始化图6中包含以下参数:<1>flow control etc该参数包括Input XON/XOFF、Output XON/XOFF、Input HW Handshake、Input alt HW Handshake、XOFF byte、XON byte以及Parity Errorr byte主要用于设置串口通讯的握手方式和奇偶效验方式。

<2>baud size LabVIEW分配给串行通讯输入/输出缓冲器的容量,可以由用户设置。

<3>port number串行端口号,在Windows操作系统中参数port number有以下选择:0:COM1 1:COM22:COM3 3:COM4 4:LPT1<4>)baud rate波特率设置。

<5>data bits一祯信息中的数据位数,LabVIEW允许5-8位数据。

<6>stop bits一祯信息中停止位的位数。

设置为0则有1位停止位,设置为1有1位半的停止位,设置位2有2个停止位。

<7>parity奇偶效验设置.0表示无奇偶效验,1表示奇效验,2表示偶效验。

<8>error code错误码输出。

(2)串口读程序图7 串口读程序其中参数requested byte count用于设置所要读的字符数。

如果要读入当前串口中的所有字符,用参数byte count的输出作为输入。

(3)主程序设计图经过设计,波特率1200,自定义软件握手,无奇偶校验,数据位为8位,停止位设置为0,有1位停止位。

主程序的前面板如8图所示:图8 主程序的前面板而主程序的流程框图如下:图9主程序的流程框图3结论利用LabVIEW强大函数功能和RS232,结合以单片机为核心组成的小系统,可以很方便地完成数据采集及处理等功能,具有很强的工程实用性,可广泛应于测试控制领域。

参考文献:[1] 毛建东.基于LabVIEW的单片机数据采集系统的设计[J].微计算机信息 2006.08[2] 郭天祥 51单片机C语言教程.电子工业出版社。

2008[3] 彭敏基于的温度显示和报警装置的研制[J] 可编程控制器与工厂自动化 2007[4] 王水鱼,李宁,胡树燕.基于L abV IEW实现PC机与单片机的串行通信[J].中国新通信,2007(23):36240.[5] 陈锡辉,张银鸿.L abV IEW 8.20程序设计从入门到精通[M].北京:清华大学出版社,2007.[6]基于LabVIEW的单片机温度测控系统设计肖金壮.微计算机信息.2007/29附录1:图1温度采集系统硬件原理图。

相关主题