基于51单片机的温度采集系统(Labview做上位机)

2019-11-30来源: 51hei关键字:51单片机  温度采集系统  Labview  上位机

做该设计的初衷是为自己的毕设打基础,因为我的毕设要做一个探测机器人,需要对某一地区的各种环境参数进行检测,然后通过WIFI返回到上位机。所以为了搞懂温度传感器以及练习上位机的设计,花了几天时间做了一个很简单的采集系统。今天把它拿出来跟各位小伙伴们分享,希望对各位有所帮助,同时也希望大佬们指出不足,起到一个相互学习,相互促进的作用。该系统原理是:51单片机把ds18b20传感器将采集到的温度值(十六进制)通过串口发送到labview,labview对单片机发来的数据做简单的处理然后显示。

上位机界面

上位机界面

上位机(接受程序)

上位机(接受程序)

简单的硬件连接

简单的硬件连接

数据纪录

串口部分:

void main()                

{

                          

        

               if(flag==1||flag1==1)

                           {

                            S=test/10;

                                Y=test%10;

                            ES=0;

                                flag=0;

                                SBUF=S;

                            while(!TI);

                                TI=0;

                                SBUF=Y;

                            while(!TI);

                                TI=0;

                                if(temperature!=test)

                                 flag1=1;

                                ES=1;          

                              }         

}  

//串口中断

void ser() interrupt 4

{

   if(RI==1)

        {

         RI=0;

         a=SBUF;

         if(a=='1') P1=0x55;

         if(a=='0') P1=0xaa;

         flag=1;

        }

}

温度采集部分:

#include

#include "ds18b20.h"

#include "delay.h"


sbit DQ=P2^2; //温度传感器 I/O 口


uchar reset_ds18b20()

{

   uchar presence;

   DQ=0;

   delay_ds18b20(29);      //延时480 - 960  us

   DQ=1;                                                  

   delay_ds18b20(3);      //延时 15 - 60   us

   presence=DQ;

   delay_ds18b20(25);          //延时 60 - 240  us

   return(presence);


}


uchar read_bit_ds18b20()

{

        uchar i;

        DQ=1;

        delay_ds18b20(1);

        DQ=0;

        //delay(1);    //延时 15us  也可以不延时

        DQ=1;

        //delay(3);         //延时 1 - ∞  us

        for(i=0;i<3;i++);

        return(DQ);

void write_bit_ds18b20(uchar dat)

{

        DQ=0;        //置0 无需延时

        if(dat==1)

          DQ=1;

        delay_ds18b20(1);         //延时 60 - 120  us

        DQ=1;

        delay_ds18b20(1);         //延时 1 - ∞  us

}




void write_byte_ds18b20(uchar dat)

{

     uchar i,j;

         for(i=0;i<8;i++)

         {

             j=((dat>>i)&0x01);

                 write_bit_ds18b20(j);

                 //delay(1);      //延时 1 - ∞  us

         }



}  



uchar read_byte_ds18b20()

{

        uchar dat=0;

        uchar i;

        for(i=0;i<8;i++)

         {

           if(read_bit_ds18b20())

             dat|=0x01<

           //delay(1);           //延时 1 - ∞  us

         

         }

         return(dat);           

}




int read_temp_ds18b20()

{

   uchar templ=0,temph=0;

   int temp=0;

   reset_ds18b20();//复位

   write_byte_ds18b20(0xcc); //跳过ROM

   write_byte_ds18b20(0x44); //跳过温度采集

   delay_ds18b20(10);     //750ms

   reset_ds18b20();

   write_byte_ds18b20(0xcc); //跳过ROM

   write_byte_ds18b20(0xbe); //准备好数据(开始温度转换采集)

   templ=read_byte_ds18b20();//读低字节温度值

   temph=read_byte_ds18b20();//读低字节温度值

   temp=(templ+(temph*256));

   return(temp);

}

关键字:51单片机  温度采集系统  Labview  上位机 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic481591.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:51单片机控制一路舵机控制90度来回控制源程序
下一篇:二相四线步进电机的单片机源程序 用L298N模块驱动

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

PIC系列单片机的优势是什么
CISC结构的8位单片机相比,可以达到2:1的代码压缩,速度提高4倍。3) 产品上市零等待(Zero time to market)。采用PIC的低价OTP型芯片,可使单片机在其应用程序开发完成后立刻使该产品上市。4) PIC有优越开发环境。OTP单片机开发系统的实时性是一个重要的指标,象普通51单片机的开发系统大都采用高档型号仿真低档型号,其实时性不尽理想。PIC在推出一款新型号的同时推出相应的仿真芯片,所有的开发系统由专用的仿真芯片支持,实时性非常好。就我个人的经验看,还没有出现过仿真结果与实际运行结果不同的情况。5) 其引脚具有防瞬态能力,通过限流电阻可以接至220V交流电源,可直接与继电器控制电路相连,无须光电耦合器隔离
发表于 2019-12-05
PIC系列单片机的优势是什么
PIC单片机以及51单片机和AVR单片机的IO口操作方法介绍
对于pic单片机的学习,很多朋友总是能充满激情,不断利用闲余时间研究pic单片机的各类技术。而谈及pic单片机,必须牵扯至51、AVR单片机。因此本文中,将探讨pic单片机以及51、AVR单片机对于IO口的操作。对于本文,希望大家认真研读,以在pic单片机的学习之路上更为精进。一.51单片机IO口的操作51单片机IO口的结构比较简单,每个IO口只有一个IO口寄存器Px,而且这个寄存器可以位寻址,操作起来是所有单片机里最简单的,可以直接进行总线操作也可以直接进行位操作,这也是51单片机之所以成为经典的原因之一。下例的运行坏境为Keil软件,器件为AT89S52。#i ncludesbit bv=P2^0;//定义位变量,关联P2.0
发表于 2019-12-05
PIC单片机以及51单片机和AVR单片机的IO口操作方法介绍
PIC单片机和51单片机谁更容易于学习
pic单片机是当前最实用工具之一,而对于pic单片机的探讨往往与其他类型单片机相联系。51好学一些,但是PIC也没比51难多少。首先,PIC比51多个配置位,这个基本上看看就懂了。然后,PIC的端口要配置成输入或者输出,51单片机则不用。PIC的中断没有优先级,需要软件判断。最后,PIC比51多许多寄存器,你要使用PIC的各种功能,都需要去初始化寄存器。再说说PIC相比与51单片机有哪些优点:1:相同的晶振情况下,PIC比51速度快,PIC4个时钟周期为一个指令周期,51是12个。2:PIC比51功能强大许多,比如自带AD转换,自带PWM,内置弱上拉(需设置)LCD接口等。。这样,你在用到许多功能的时候就很方便啦,不用
发表于 2019-12-05
PIC单片机和51单片机谁更容易于学习
51单片机之4位数加法计算器的设计报告
。AT89C52是一个低功耗,高性能的51内核的CMOS 8位单片机,片内含8k空间的可反复擦些1000次的Flash只读存储器,具有256 bytes的随机存取数据存储器(RAM),32个双向I/O口,2个16位可编程定时计数器。综合考虑,选择方案二,采用Atmel公司的AT89C52单片机作为控制器。2.2.4 键盘选择方案论证方案一:采用独立式键盘。由于各键相互独立,每个按键各接一根输入线,通过检测输入线的电平状态可以很容易的判断哪个按键被按下。此种键盘适用于按键较少或操作速度较高的场合。但本题发挥部分要求16个功能键,按键数目较多,这就需要较多的输入口线,而且电路结构复杂。故此方案不可取。方案二:采用矩阵键盘。它由行和列组成,按键
发表于 2019-12-05
51单片机之4位数加法计算器的设计报告
单片机+ADC0832简易数字电压表proteus仿真与程序源码
ADC0832电压表仿真原理图如下单片机电压表源程序如下:#include <reg52.h>#include <intrins.h>#define uint unsigned int#define uchar unsigned char        sbit CS =P3^4;              //片选使能端sbit DI =P1^1;               //数据信号输入端,选择通道
发表于 2019-12-05
单片机+ADC0832简易数字电压表proteus仿真与程序源码
单片机全自动洗衣机程序+仿真+原理图设计调试与分析
一、设计任务与要求利用51单片机模拟全自动智能洗衣机。按键功能要求通过“K1”键步进改变“标准]经济、单独、排水”四种方式,执行相应的程序。对应指示灯亮。通过“K2”键步进改变“强洗、弱洗”两种方式,执行相应的程序,对应指示灯亮。通过“K3”键控制洗衣机运行、暂停和解除报警功能。方式功能选择要求一般洗衣机的步骤为:洗涤,漂洗,脱水,当处于某种状态时,对应的指示灯以0.7S周期闪烁,当洗衣机在洗涤过程中,洗涤指示灯闪烁。可以通过方式选择设定具体的运行过程。标准方式:进水—> 洗涤 —> 排水 —> 进水 —> 漂洗 —> 排水 —>进水 —> 漂洗—> 排水 —> 脱水。经济方式
发表于 2019-12-05
单片机全自动洗衣机程序+仿真+原理图设计调试与分析
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved