欢迎来到天天文库
浏览记录
ID:58863593
大小:343.50 KB
页数:7页
时间:2020-09-22
《基于LabVIEW的串口温度采集系统.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、基于LabVIEW的串口温度监控系统设计张兴成摘要:本系统利用DS18B20数字温度传感器和Atmel公司生产的AVR系列ATmega16单片机采集被测环境温度,将测得的数据经串口传给计算机。计算机利用LabVIEW的VISA读取串口数据并进行处理和显示,实现基于VISA的串口温度采集监控。关键词:DS18B20温度传感器AVR单片机VISA串口1、概述实时数据采集是工业控制系统中必不可少的组成部分,是进行工业分析,工业处理和工业控制的依据。近年来由于大规模集成电路、单片机、计算机等在工业控制领域中的广泛应用,数字化的数据采集成为必然。这就
2、对传感器的A/D性能,单片机的数据采集、处理和传输性能,计算机接口与通信技术提出了更高的要求。本系统采用Atmel公司生产的高速8位单片机AVR系列ATmega16单片机作为温度数据采集和传输的主控芯片,温度传感器采用单总线方式的集成数字温度传感器DS18B20。采集得到的数据利用单片机经串口通讯的方式传输至计算机的串口。计算机上位机软件采用数据处理能力超强的LabVIEW软件编写,利用其所带的VISA驱动进行串口的数据采集和处理,实现基于VISA的串口温度采集监控。2、硬件设计AVR单片机是1997年由ATMEL公司研发出的增强型内置Fl
3、ash的RISC(ReducedInstructionSetCPU)精简指令集高速8位单片机。AVR的单片机可以广泛应用于计算机外部设备、工业实时控制、仪器仪表、通讯设备、家用电器等各个领域,它与51单片机、PIC单片机相比具有一系列的优点:1:在相同的系统时钟下AVR运行速度最快;2:芯片内部的Flsah、EEPROM、SRAM容量较大;3:所有型号的Flash、EEPROM都可以反复烧写、全部支持在线编程烧写(ISP);4:多种频率的内部RC振荡器、上电自动复位、看门狗、启动延时等功能,零外围电路也可以工作;5:每个IO口都可以以推换驱
4、动的方式输出高、低电平,驱动能力强;6:内部资源丰富,一般都集成AD、DA模数器、PWM、SPI、USART、TWI、I2C通信口、丰富的中断源等。目前支持AVR单片机编译器的语言主要有汇编语言、C语言、BASIC语言等。其中C编译器主要有CodeVisionAVR、AVRGCC、IAR、ICCAVR等,C语言编译器由于它具有功能强大、运用灵活、代码小、运行速度快等先天性的优点,使得它在专业程序设计上具有不可代替的地位。DSl8B20数字温度计提供9位(二进制)温度读数,指示器件的温度。信息经过单线接口送入DSl8B20或从DSl8B20送
5、出,因此从主机CPU到DSl8B20仅需一条线(和地线),DSl8B20的电源可以由数据线本身提供而不需要外部电源。因为每一个DSl8B20在出厂时已经给定了唯一的序号,因此任意多个DSl8B20可以存放在同一条单线总线上,这允许在许多不同的地方放置温度敏感器件。DSl8B20的测量范围从-55摄氏度到+125摄氏度增量值为0.5摄氏度。可在ls(典型值)内把温度变换成数字。系统的硬件设计主要分为四个部分:单片机、供电电路、DS18B20、串口通讯。图1:单片机部分电路设计单片机部分的电路设计如图1所示,主要包括复位电路、ISP接口、JTA
6、G接口、晶振电路、A/D参考电压电路(此部分用于AD采集,本系统并未使用)。复位电路使用了钳位二极管钳位,防止触点电压过高烧坏RESET引脚。图2:供电电路设计图3:DS18B20电路设计供电电路如图2所示,供电电路使用了BM1117进行稳压,防止电压过高烧坏单片机,并可以提高系统适应电压的范围,即使供电电压高于单片机正常工作电压也可以由BM1117稳压到单片机正常工作电压的范围。DS18B20的工作电路如图3所示,采用外部供电而非总线供电的方式,只需一个电容和两个电阻。图4:串口通信电路串口通信采用Max232进行电平转换,电路原理图如图
7、4所示,实物照片如图5所示。图5:实物照片1、软件设计下位机软件采用C语言编写,包括DS18B20的读写和串口通信两个主要部分。上位机软件采用LabVIEW编写。相关程序段如下所示:获取DS18B20数据:uint8gettemp(void)//读取温度值{uint8temh,teml,wm0,wm1,wm2,wm3,temp;init_1820();//复位18b20write_1820(0xCC);//跳过ROMwrite_1820(0x44);//温度变换init_1820();write_1820(0xCC);//跳过ROMwrit
8、e_1820(0xbe);//读暂存存储器teml=read_1820();//读数据temh=read_1820();wm0=teml>>4;//只要高8位的低四位和低8位的高
此文档下载收益归作者所有