HOME 首页
SERVICE 服务产品
XINMEITI 新媒体代运营
CASE 服务案例
NEWS 热点资讯
ABOUT 关于我们
CONTACT 联系我们
创意岭
让品牌有温度、有情感
专注品牌策划15年

    vi温度采集硬件设计(温度采集与显示设计程序详解)

    发布时间:2023-05-04 13:44:46     稿源: 创意岭    阅读: 128        

    大家好!今天让创意岭的小编来大家介绍下关于vi温度采集硬件设计的问题,以下是小编对此问题的归纳整理,让我们一起来看看吧。nK6创意岭 - 安心托付、值得信赖的品牌设计、营销策划公司

    开始之前先推荐一个非常厉害的Ai人工智能工具,一键生成原创文章、方案、文案、工作计划、工作报告、论文、代码、作文、做题和对话答疑等等,官网:https://ai.de1919.comnK6创意岭 - 安心托付、值得信赖的品牌设计、营销策划公司

    创意岭专注品牌设计、策划,为各大上市企业、个人提供一站式设计、策划服务,服务客户遍布全国,咨询相关业务请拨打电话:175-8598-2043,或添加微信:1454722008nK6创意岭 - 安心托付、值得信赖的品牌设计、营销策划公司

    本文目录:nK6创意岭 - 安心托付、值得信赖的品牌设计、营销策划公司

    vi温度采集硬件设计(温度采集与显示设计程序详解)nK6创意岭 - 安心托付、值得信赖的品牌设计、营销策划公司

    51单片机的温度采集系统设计nK6创意岭 - 安心托付、值得信赖的品牌设计、营销策划公司

    第一章 确定系统功能与性能
    本系统的功能主要有数据采集、数据处理、输出控制。能对0~1000 ?0?2c范围内的各种电加热炉的温度进行精密测量,同时,四位LED显示器直接跟踪显示被控对象的温度值,准确度高,显示清晰,稳定可靠,使用方便(在具体设计编程、调试过程中,为了调试方便,编程把温度范围设在0~100 ?0?2c)。
    本系统的原理框图如下图所示。
    数据采集部分能完成对被测信号的采样,显示分辨率0.1?0?2c,测量精度0.1?0?2c,控制精度0.1?0?2c,可以实现采集信号的放大及A/D转换,并自动进行零漂校正,同时按设定值、所测温度值、温度变化速率,自动进行FID参数自整定和运算,并输出0~10mA控制电流,配以主回路实现温度的控制。数据处理分为预处理、功能性处理、抗干扰等子功能。输出控制部分主要是数码管显示控制。
    第二章 确定系统基本结构及硬件设计
    本单片机应用系统结构是以单片机为核心外部扩展相关电路的形式。确定了系统中的单片机、存储器分配及输入/输出方式就可大体确定出单片机应用系统的基本组成。
    1)单片机选用MCS-51系统的8031
    8031是INTEL公司MCS-51系列单片机中最基本的产品,它采用INTEL公司可靠的CHMOS工艺技术制造的高性能8位单片机,属于标准的MCS-51的HCMOS产品。它结合了HMOS的高速和高密度技术及CHMOS的低功耗特征,标准MCS-51单片机的体系结构和指令系统。
    8031内置中央处理单元、128字节内部数据存储器RAM、32个双向输入/输出(I/O)口、2个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。但80C31片内并无程序存储器,需外接ROM。
    此外,8031还可工作于低功耗模式,可通过两种软件选择空闲和掉电模式。在空闲模式下冻结CPU而RAM定时器、串行口和中断系统维持其功能。掉电模式下,保存RAM数据,时钟振荡停止,同时停止芯片内其它功能。8031有PDIP(40pin)和PLCC(44pin)两种封装形式。
    主要功能特性:
    · 标准MCS-51内核和指令系统
    · 外部程序存储器ROM地址空间64kB
    · 32个可编程双向I/O口
    · 128x8bit内部RAM(可扩充64kB外部存储器)
    · 2个16位可编程定时/计数器
    · 时钟频率3.5-16MHz
    · 5个中断源
    · 5.0V工作电压
    · 全双工串行通信口
    · 布尔处理器
    · 2层优先级中断结构
    · 兼容TTL和CMOS逻辑电平
    · PDIP(40)和PLCC(44)封装形式

    高分求单片机温度采集系统的课程设计nK6创意岭 - 安心托付、值得信赖的品牌设计、营销策划公司

    DS18B20数字温度计使用
    1.DS18B20基本知识
    DS18B20数字温度计是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。
    1、DS18B20产品的特点
    (1)、只要求一个端口即可实现通信。
    (2)、在DS18B20中的每个器件上都有独一无二的序列号。
    (3)、实际应用中不需要外部任何元器件即可实现测温。
    (4)、测量温度范围在-55。C到+125。C之间。
    (5)、数字温度计的分辨率用户可以从9位到12位选择。
    (6)、内部有温度上、下限告警设置。
    2、DS18B20的引脚介绍
    TO-92封装的DS18B20的引脚排列见图1,其引脚功能描述见表1。
    (底视图)图1
    表1 DS18B20详细引脚功能描述 序号
    名称
    引脚功能描述

    1
    GND
    地信号

    2
    DQ
    数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。

    3
    VDD
    可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。
    3. DS18B20的使用方法
    由于DS18B20采用的是1-Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。
    由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。
    DS18B20的复位时序
    DS18B20的读时序
    对于DS18B20的读时序分为读0时序和读1时序两个过程。
    对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一个读时序过程,至少需要60us才能完成。
    DS18B20的写时序
    对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。
    对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。
    4. 实验任务
    用一片DS18B20构成测温系统,测量的温度精度达到0.1度,测量的温度的范围在-20度到+100度之间,用8位数码管显示出来。
    5. 电路原理图
    6. 系统板上硬件连线
    (1). 把“单片机系统”区域中的P0.0-P0.7用8芯排线连接到“动态数码显示”区域中的ABCDEFGH端子上。
    (2). 把“单片机系统”区域中的P2.0-P2.7用8芯排线连接到“动态数码显示”区域中的S1S2S3S4S5S6S7S8端子上。
    (3). 把DS18B20芯片插入“四路单总线”区域中的任一个插座中,注意电源与地信号不要接反。
    (4). 把“四路单总线”区域中的对应的DQ端子连接到“单片机系统”区域中的P3.7/RD端子上。
    7. C语言源程序
    #i nclude <AT89X52.H>
    #i nclude <INTRINS.h>

    unsigned char code displaybit[]={0xfe,0xfd,0xfb,0xf7,
    0xef,0xdf,0xbf,0x7f};
    unsigned char code displaycode[]={0x3f,0x06,0x5b,0x4f,
    0x66,0x6d,0x7d,0x07,
    0x7f,0x6f,0x77,0x7c,
    0x39,0x5e,0x79,0x71,0x00,0x40};
    unsigned char code dotcode[32]={0,3,6,9,12,16,19,22,
    25,28,31,34,38,41,44,48,
    50,53,56,59,63,66,69,72,
    75,78,81,84,88,91,94,97};
    unsigned char displaycount;
    unsigned char displaybuf[8]={16,16,16,16,16,16,16,16};
    unsigned char timecount;
    unsigned char readdata[8];
    sbit DQ=P3^7;
    bit sflag;

    bit resetpulse(void)
    {
    unsigned char i;

    DQ=0;
    for(i=255;i>0;i--);
    DQ=1;
    for(i=60;i>0;i--);
    return(DQ);
    for(i=200;i>0;i--);
    }

    void writecommandtods18b20(unsigned char command)
    {
    unsigned char i;
    unsigned char j;

    for(i=0;i<8;i++)
    {
    if((command & 0x01)==0)
    {
    DQ=0;
    for(j=35;j>0;j--);
    DQ=1;
    }
    else
    {
    DQ=0;
    for(j=2;j>0;j--);
    DQ=1;
    for(j=33;j>0;j--);
    }
    command=_cror_(command,1);
    }
    }

    unsigned char readdatafromds18b20(void)
    {
    unsigned char i;
    unsigned char j;
    unsigned char temp;

    temp=0;
    for(i=0;i<8;i++)
    {
    temp=_cror_(temp,1);
    DQ=0;
    _nop_();
    _nop_();
    DQ=1;
    for(j=10;j>0;j--);
    if(DQ==1)
    {
    temp=temp | 0x80;
    }
    else
    {
    temp=temp | 0x00;
    }
    for(j=200;j>0;j--);
    }
    return(temp);
    }

    void main(void)
    {
    TMOD=0x01;
    TH0=(65536-4000)/256;
    TL0=(65536-4000)%256;
    ET0=1;
    EA=1;

    while(resetpulse());
    writecommandtods18b20(0xcc);
    writecommandtods18b20(0x44);
    TR0=1;
    while(1)
    {
    ;
    }
    }

    void t0(void) interrupt 1 using 0
    {
    unsigned char x;
    unsigned int result;

    TH0=(65536-4000)/256;
    TL0=(65536-4000)%256;
    if(displaycount==2)
    {
    P0=displaycode[displaybuf[displaycount]] | 0x80;
    }
    else
    {
    P0=displaycode[displaybuf[displaycount]];
    }
    P2=displaybit[displaycount];
    displaycount++;
    if(displaycount==8)
    {
    displaycount=0;
    }

    timecount++;
    if(timecount==150)
    {
    timecount=0;
    while(resetpulse());
    writecommandtods18b20(0xcc);
    writecommandtods18b20(0xbe);
    readdata[0]=readdatafromds18b20();
    readdata[1]=readdatafromds18b20();
    for(x=0;x<8;x++)
    {
    displaybuf[x]=16;
    }
    sflag=0;
    if((readdata[1] & 0xf8)!=0x00)
    {
    sflag=1;
    readdata[1]=~readdata[1];
    readdata[0]=~readdata[0];
    result=readdata[0]+1;
    readdata[0]=result;
    if(result>255)
    {
    readdata[1]++;
    }
    }
    readdata[1]=readdata[1]<<4;
    readdata[1]=readdata[1] & 0x70;
    x=readdata[0];
    x=x>>4;
    x=x & 0x0f;
    readdata[1]=readdata[1] | x;
    x=2;
    result=readdata[1];
    while(result/10)
    {
    displaybuf[x]=result%10;
    result=result/10;
    x++;
    }
    displaybuf[x]=result;
    if(sflag==1)
    {
    displaybuf[x+1]=17;
    }
    x=readdata[0] & 0x0f;
    x=x<<1;
    displaybuf[0]=(dotcode[x])%10;
    displaybuf[1]=(dotcode[x])/10;
    while(resetpulse());
    writecommandtods18b20(0xcc);
    writecommandtods18b20(0x44);
    }
    }
    关键词:单总线; 数字温度传感器; 多点温度测控
    1 前言
    随着科学技术的发展,特别是现代仪器的发展,微型化、集成化、数字化正成为传感器发展的一个重要方向[1]。美国Dallas半导体公司推出的数字化温度传感器DS1820采用单总线协议,即与微机接口仅需占用一个I/O端口,无需任何外部元件,直接将温度转化成数字信号,以9位数字码方式串行输出,从而大大简化了传感器与微处理器的接口。
    2 工作原理
    目前大多数传感器系统都采用放大--传输--数模转换这种处理模式。这种模式一般要占用数条数
    据/控制线,限制了单片机功能的扩展。而一线总线技术则很好地解决了这个问题。
    一线总线技术就是在一条总线上仅有一个主系统和若干个从系统组成的计算机应用系统。由于总线上的所有器件都通过一条信号线传输信息,总线上的每个器件在不同的时间段驱动总线,这相当于把数据总线、地址总线和控制总线合在了一起。所以整个系统要按单总线协议规定的时序进行工作。为了使其它设备也能使用这条总线,一线总线协议采用了一个三态门,使得每一个设备在不传送数据时空出该数据线给
    其它设备。一线总线在外部需要一个上拉电阻器,所以在总线空闲时是高电平。
    挂在单总线上的器件称为单总线器件,为了区分总线上的不同器件,生产单总线器件时,厂家都刻录了一个64位的二进制ROM代码作为芯片的唯一序列号。这样通过寻址就可以把每个器件识别出来。64位ROM的结构如下:开始8位是产品类型的编号(DS1820为10H),接着是每个器件的唯一的序号,共
    有48位,最后8位是前56位的CRC校验码,这也是多个DS1820可以采用一线进行通信的原因。 3 DS1820介绍
    DS1820是美国Dallas半导体公司推出的第一片支持"一线总线"接口的温度传感器。它具有微型化、低功耗、高性能、抗干扰能力强、易配微处理器等优点,可直接将温度转化成串行数字信号供微机处理[2]。
    DS1820的工作原理是:DS1820采用3脚PR-35封装或8脚SOIC封装,其中 GND为地;I/O为数据输入/输出端(即单线总线),该脚为漏极开路输出,常态下呈高电平;VDD是外部+5V电源端,不用时应接地;NC为空脚。图1 所示为DS1820的内部框图,它主要包括寄生电源、温度传感器、64位激光ROM单线接口、存放中间数据的高速暂存器(内含便笺式RAM),用于存储用户设定的温度上下限值的TH和TL解发器存储与控制逻辑、8位循环冗余校验码(CRC)发生器等七部分。
    DS1820 特点如下:硬件接口简单,性能稳定,单线接口,仅需一根口线与MCU连接无需外围元件;由总线提供电源;测温范围为-55~75℃;精度为0.5℃;9位温度读数;A/D变换时间为200ms;用户自设定温度报警上下限,其值是非易失性的;报警搜索命令可识别那片DS1820超温度限。
    DS1820的温度测量原理如下[3]:DS1820测量温度时使用特有的温度测量技术,其测量电路框图如图2所示。内部计数器对一个受温度影响的振荡器的脉冲计数,低温时振荡器的脉冲可以通过门电路,而当到达某一设置高温时,振荡器的脉冲无法通过门电路。计数器设置为-55℃时的值,如果计数器到达0之前,门电路未关闭,则温度寄存器的值将增加,这表示当前温度高于-55℃。同时,计数器复位在当前温度值上,电路对振荡器的温度系数进行补偿,计数器重新开始计数直到回零。如果门电路仍然未关闭,则重复以上过程。温度表示值为9bit,高位为符号位。
    4 温度检测系统设计
    由于每片DS1820含有唯一的硅串行数,所以在一条总线上可挂接多个DS1820芯片。从DS1820读出的信息或写入DS1820的信息,仅需要一根口线(单线接口)。读写及温度变换功率来源于数据总线,总线本身也可以向所挂接的DS1820供电,而无需额外电源。DS1820提供9位温度读数,构成多点温度检测系统而无需任何外围硬件。对DS1820的使用,多采用单片机实现数据采集。处理时,将DS1820信号线与单片机一位口线相连,单片机可挂接多片DS1820,从而实现多点温度检测系统。由于DS1820只有三个引脚,其中两根是电源线VDD和GND,另外两根用作总线DQ(Data In/Out),由于其输出和输入均是数字信号且与TTL电平兼容,因此其可以与微处理器直接进行接口,从而省去了一般传感器所必需的中间转换环节。
    本设计中以DS1820为传感器、AT89C52单片机为控制核心组成的多点温度测试系统如图3所示[4]。用6只DS1820同时测控6路温度(视实际需要还可扩展通道数)。89C52单片机P1.1口接单线总线。DS1820采用寄生电源供电方式。为保证在有效的DS1820时钟周期内能提供足够的电流,图3中采用一个MOSFET管和89C52的H.0口来完成对DS1820的总线上拉。键盘扫描和动态扫描的显示共用一片可编程接口芯片8279,显示采用8位共阴极LED数码管,它可用来显示通道数、温度测量值以及TH、TL的值。
    程序处理是整个系统的关键,即简洁的硬件结构是靠复杂的软件来支持的。多个器件挂在一条总线上为了识别不同的器件,在程序设计过程中一般有四个步骤:初始化命令;传送ROM命令;传送RAM命令;数据交换命令。
    需要注意的是,无论是单点还是多点温度检测,在系统安装及工作之前,应将主机逐个与DS1820挂接,读出其序列号。其工作过程为:主机发出一个脉冲,待 "0"电平大于480μs后,复位DA1820,在DS1820所发响应脉冲由主机接收后,主机再发读ROM命令代码33H,然后发一个脉冲(15μs),并接着读取DS1820序列号的一位。用同样方法读取序列号的56位。另外,由于DS1820单线通信功能是分时完成的,遵循严格的时隙概念,因此,系统对DS1820和各种操作必须按协议进行,即初始化DS1820(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。系统对 DS1820操作的总体流程图如图4所示。
    在正常测温情况下,DS1820的测温分辨力为0.5℃。采用下述方法可获得高分辨率的温度测量结果:首先用DS1820提供的读暂存器指令(BEH)读出以0.5℃为分辨率的温度测量结果,然后切去测量结果中的最低有效位(LSB),得到所测实际温度的整数部分Tz,然后再用BEH指令取计数器1的计数剩余值Cs和每度计数值CD。考虑到DS1820测量温度的整数部分以0.25和0.75℃为进位界限的关系.
    结束语
    对应于传统概念,这一粒三极管一样的传感器相当于传统的温度传感器+ 数字化+ CPU+ 总线协议及接口。一线器件采用单条连线,解决了控制、通信和供电等问题,降低了系统成本,并简化了设计,为未来传感器的发展和应用开辟了新的领域。
    http://www.mcublog.com/blog/blog2007/shuizhongzehui/archives/2007/22353.html
    http://blog.21ic.com/user1/422/archives/2006/12900.html
    有流程图,电路图和资料,不过百度上传不了

    参考资料:http://blog.21ic.com/user1/422/archives/2006/12900.htmlnK6创意岭 - 安心托付、值得信赖的品牌设计、营销策划公司

    vi温度采集硬件设计(温度采集与显示设计程序详解)nK6创意岭 - 安心托付、值得信赖的品牌设计、营销策划公司

    我想用LabViEW做个东西,具体是这样的: 温度传感器测温度实时以波形显示在面板里,问用labVIEW要怎么设计?nK6创意岭 - 安心托付、值得信赖的品牌设计、营销策划公司

    传统的温度测量仪器,其功能及规格是单一固定的,用户无法根据自己的需要改变。NI公司提出的虚拟仪器概念,彻底打破了传统仪器由厂家定义、用户无法改变的模式,使测控仪器发生了巨大变革。LabVIEW是NI公司开发的一种虚拟仪器平台,而目前利用LabVIEW进行的开发通常都是建立在LabVIEW所支持的价格昂贵的数据采集板卡之上的。为解决这一问题,本系统采用低功耗单片机P89LV51RD2和低功耗温度传感器TMPll2组成温度采集节点,并通过无线通信模块实现单片机系统与上位机的远程通信,不仅取代了价格昂贵的数据采集卡,大大降低了系统成本,而且实现了数据的无线传输。同时,温度采集节点的低功耗特性,降低了ZigBee组网时对电源的要求,便于进行组网实现多点测温。
      1 系统的组成及工作原理
      图1给出了系统组成框图,该温度测控系统主要由计算机、单片机、温度测量电路、温度控制电路以及无线通信电路组成。TMPll2温度传感器进行温度采集,将温度数字量传送给P89LV51RD2后,通过数码管LED电路进行现场温度显示。同时,P89LV51RD2将温度数据通过无线通信模块SZ05发送给远程计算机,运行于PC机上的LabVIEW控制平台对温度进行实时显示,并进行数据处理、温度报警及数据存储等。另外,控制平台采样输入信号,利用LabVIEW中的PID控制器进行PID控制,将控制量通过无线模块发送给单片机,单片机输出控制量实现温度控制。
      2 系统硬件设计
      2.1 温度测量显示电路
      本系统采用TI公司于2009年6月推出的高精度低功耗数字温度传感器TMPll2来实现温度测量。该传器具有如下特点:
      ◆测温范围为-40~125℃;
      ◆0~65℃温度范同内精度达O.5℃,-40~125℃范围内精度达1℃;
      ◆12位分辨率,测量值的读取精度达到0.0625℃;
      ◆正常操作模式的最大静态电流为10μA,关机模式则为1μA;
      ◆电源范围1.4~3.6 V;
      ◆SMBus/两线式串行接口,总线上最多可连接4个该传感器。
      从功耗、精度、接口等方面综合考虑,采用P89LV51RD2与TMPll2组成温度测量节点。虽然P89LV51RD2单片机没有专用的I2C总线接口,但可以使用软件模拟I2C总线,来实现单片机与TMPll2的通信。利用单片机的I/O口P1.0和P1.1分别模拟I2C总线的SDA和SCL信号,故只需将单片机的P1.O和P1.1引脚分别与TMPll2的SDA和SCL引脚相连(注意需要上拉)。P89LV51RD2通过I2C总线读取温度数据后,由5个数码管显示温度值,包括百位(或符号位)、十位、个位与2个小数位。
      2.2 温度控制电路
      温度控制电路如图2所示,它主要由NPN型晶体管Q1、TLP521-1型光电耦合器U1和大功率NMOS管Q2组成。上位机程序控制系统将检测温度值与系统设定值进行比较,按照PID控制算法进行运算,从单片机的P1.2口输出占空比可调的PWM信号,经晶体管Q1驱动后,控制光电耦合器U1的通断,继而控制NMOS管Q2(IRF840A)的通断时间,从而控制加热对象——大功率电阻R的加热时间,使其达到设定的温度值。为方便实验,采用的R为大功率线绕电阻,额定功率10W,额定电阻10Ω,采用+12V直流电源供电。由于流过加热电阻R的电流较大,故为R供电的+12V直流电源必须与为其他模拟器件供电的+12V直流电源分开。
      2.3 无线通信电路
      无线通信电路采用上海顺舟网络科技有限公司的SZO5系列ZigBee无线数据通信模块来实现。该模块提供RS232、RS485和TTL三种接口标准,传输距离可达100~2 000m。为了提高开发效率,采用该模块的RS232接口,实现单片机与计算机的串行无线通信,使得软件编程变得简单。若系统对距离并无要求,只需使用1根串口线便能实现单片机与计算机的通信,而不必更改软件设计,通用性强,适合各种应用场合。
      3 系统软件设计
      3.1 上位机软件设计
      上位机软件采用LabVIEW图形化编程语言来完成控制平台的设计。LabVIEW提供了一个非常简洁直观的图形化编程环境,设计者可以轻松组建测量系统,构造友好美观的操作界面,无需编写繁琐的计算机程序代码,大大简化了程序设计,提高开发效率。
      图3给出了上位机LabVIEW控制平台的温度监控界面(正在进行温度采集显示时的界面)。采用模块化设计思想,该系统主要由数据采集与显示、数据处理与报警、数据存储及PID控制等模块组成。用户通过鼠标在界面上操作,便可实现温度的采集、显示、处理、报警、保存及控制等功能。
      (1)数据采集与显示模块
      数据采集与显示模块主要是通过计算机串口及无线通信模块接收单片机发送来的温度数据,并进行实时显示。为了保证计算机与单片机的顺利通信,首先应进行串口初始化,如设置串口号COMl、波特率9600、8个数据位、1个停止位,无奇偶校验及流控制。程序运行时,单击“开始采集”按钮,系统便能接收到单片机发送来的温度数据,通过温度仪表控件显示当前采集到的温度值。此外,数据采集模块所接收到的是一组离散的温度信号值,通过波形图表显示控件进行逐点显示并连线,可绘制出温度趋势曲线,拖动曲线图右下方的滑块,并可查看历史温度曲线。
      (2)数据处理与报警模块
      数据处理主要实现对采集到的温度数据进行直方图统计。单击系统界面上的“创建直方图”按钮,系统便执行相应程序对温度数据进行统计,在波形图控件中显示温度直方图,便于用户进行统计分析。
      温度报警模块主要实现高温报警和低温报警。用户在系统界面中设置温度上下限值,当实际温度大于温度上限或小于温度下限时,系统通过指示灯给出高温报警(红灯亮)或低温报警(黄灯亮),提示用户温度超限,以确保人员及设备安全。
      (3)数据存储模块
      数据存储模块主要实现将采集到的温度数据保存至Excel表格,方便用户日后调出历史温度数据进行查阅分析。首先利用“数组大小”VI获取采集到的温度数组的大小,并判断其能否被10整除,若能整除,执行“条件结构”的“真”分支程序,将采集时间及10个温度数据写入电子表格文件后换行,然后再进行条件判断。这样,温度数据便以10个为l行记录到电子表格文件中,同时每一行的开头均记录下了采集本组数据的日期与时间。
      另外,利用“方法节点”和“写入JPEG文件”VI可将温度曲线以JPEG格式存储。用户单击“保存温度曲线”按钮,系统弹出保存对话框,提示用户将温度曲线保存为JPEG图片。
      (4)PID控制模块
      LabVIEW提供了功能强大的PID控制器,使用户避免了繁琐的PID算法的编写,提高开发效率。进行PID控制时,首先将温度信号输入至PID控制器,并输入温度设定值和PID增益,包括比例系数Kc、积分时间常数Ti及微分时间常数Td。单击“PID控制”按钮,程序按照PID算法对温度进行控制,使温度逼近设定值。
      3.2 下位机软件设计
      P89LV5lRD2单片机程序采用C语言进行设计。P89LV51RD2内部提供了3个16位定时器/计数器以及1个全双工串行通信口,满足本系统的软件设计要求。图4给出了单片机控制程序流程。
      在系统初始化时,设置8位串行口模式1,以及单片机的定时器T2工作在波特率发生器模式,产生串行通信所需的波特率。再令单片机的定时器T0工作在定时器模式,用于产生指定的控制周期。在TO的中断程序中,首先将采集到的温度数据通过无线模块发送给上位机进行实时显示,然后上位机利用LabVIEW中的PID控制器,确定系统输出控制量的大小并发送回单片机,单片机根据控制量输出PWM信号,驱动控制电路对被测对象进行温度控制。
      结语
      本文设计的温度测控系统以低功耗的单片机系统为采集模块,代替了价格昂贵的数据采集板卡,成本低,并以LabVIEW开发的软件平台进行温度处理与控制,与传统仪器相比,具有界面友好、易于操作及扩展性强等特点。实验表明,本系统可以作为教学实验系统的一部分,嵌入到虚拟仪器实验平台中,供学生学习LabVIEW编程以及虚拟仪器与单片机的通信。另外,可以将多个节点进行组网,形成一个分布式无线网络,实现多点温度测量与控制,具有良好的应用前景。(单片机与嵌入式系统 作者:潘晓烨,胡仁杰 东南大学)追问

    BS直接复制黏贴的nK6创意岭 - 安心托付、值得信赖的品牌设计、营销策划公司

    追答

    说实话,我只是听说过,没去了解过,这是我同学看的一篇论文,对你有用就好,没用的话就当我没发,我也不过是动了动手指而已、、、、nK6创意岭 - 安心托付、值得信赖的品牌设计、营销策划公司

    以上就是关于vi温度采集硬件设计相关问题的回答。希望能帮到你,如有更多相关问题,您也可以联系我们的客服进行咨询,客服也会为您讲解更多精彩的知识和内容。nK6创意岭 - 安心托付、值得信赖的品牌设计、营销策划公司


    推荐阅读:

    金沙VI设计公司哪家好(金沙设计师)

    湖北毕业设计vi设计(毕业设计vi设计方案)

    宝鸡品牌设计vi设计(宝鸡广告设计公司)

    手机能进入pc端吗(手机能进入pc端吗)

    博士生导师是什么级别(博士生导师和教授区别)