找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 32562|回復(fù): 62
收起左側(cè)

基于51單片機(jī)的溫度采集系統(tǒng)(Labview做上位機(jī))

  [復(fù)制鏈接]
ID:459513 發(fā)表于 2019-1-1 20:43 | 顯示全部樓層 |閱讀模式
做該設(shè)計(jì)的初衷是為自己的畢設(shè)打基礎(chǔ),因?yàn)槲业漠呍O(shè)要做一個(gè)探測(cè)機(jī)器人,需要對(duì)某一地區(qū)的各種環(huán)境參數(shù)進(jìn)行檢測(cè),然后通過(guò)WIFI返回到上位機(jī)。所以為了搞懂溫度傳感器以及練習(xí)上位機(jī)的設(shè)計(jì),花了幾天時(shí)間做了一個(gè)很簡(jiǎn)單的采集系統(tǒng)。今天把它拿出來(lái)跟各位小伙伴們分享,希望對(duì)各位有所幫助,同時(shí)也希望大佬們指出不足,起到一個(gè)相互學(xué)習(xí),相互促進(jìn)的作用。該系統(tǒng)原理是:51單片機(jī)把ds18b20傳感器將采集到的溫度值(十六進(jìn)制)通過(guò)串口發(fā)送到labview,labview對(duì)單片機(jī)發(fā)來(lái)的數(shù)據(jù)做簡(jiǎn)單的處理然后顯示。

上位機(jī)界面

上位機(jī)界面

上位機(jī)(接受程序)

上位機(jī)(接受程序)

簡(jiǎn)單的硬件連接

簡(jiǎn)單的硬件連接

數(shù)據(jù)紀(jì)錄

數(shù)據(jù)紀(jì)錄

  1. 串口部分:
  2. void main()               
  3. {
  4.                           
  5.         
  6.                if(flag==1||flag1==1)
  7.                            {
  8.                             S=test/10;
  9.                                 Y=test%10;
  10.                             ES=0;
  11.                                 flag=0;
  12.                                 SBUF=S;
  13.                             while(!TI);
  14.                                 TI=0;
  15.                                 SBUF=Y;
  16.                             while(!TI);
  17.                                 TI=0;
  18.                                 if(temperature!=test)
  19.                                  flag1=1;
  20.                                 ES=1;         
  21.                               }         
  22. }  
  23. //串口中斷
  24. void ser() interrupt 4
  25. {
  26.    if(RI==1)
  27.         {
  28.          RI=0;
  29.          a=SBUF;
  30.          if(a=='1') P1=0x55;
  31.          if(a=='0') P1=0xaa;
  32.          flag=1;
  33.         }
  34. }
  35. 溫度采集部分:
  36. #include <reg52.h>
  37. #include "ds18b20.h"
  38. #include "delay.h"

  39. sbit DQ=P2^2; //溫度傳感器 I/O 口

  40. uchar reset_ds18b20()
  41. {
  42.    uchar presence;
  43.    DQ=0;
  44.    delay_ds18b20(29);      //延時(shí)480 - 960  us
  45.    DQ=1;                                                  
  46.    delay_ds18b20(3);      //延時(shí) 15 - 60   us
  47.    presence=DQ;
  48.    delay_ds18b20(25);          //延時(shí) 60 - 240  us
  49.    return(presence);

  50. }

  51. uchar read_bit_ds18b20()
  52. {
  53.         uchar i;
  54.         DQ=1;
  55.         delay_ds18b20(1);
  56.         DQ=0;
  57.         //delay(1);    //延時(shí) 15us  也可以不延時(shí)
  58.         DQ=1;
  59.         //delay(3);         //延時(shí) 1 - ∞  us
  60.         for(i=0;i<3;i++);
  61.         return(DQ);
  62. }
  63. void write_bit_ds18b20(uchar dat)
  64. {
  65.         DQ=0;        //置0 無(wú)需延時(shí)
  66.         if(dat==1)
  67.           DQ=1;
  68.         delay_ds18b20(1);         //延時(shí) 60 - 120  us
  69.         DQ=1;
  70.         delay_ds18b20(1);         //延時(shí) 1 - ∞  us
  71. }



  72. void write_byte_ds18b20(uchar dat)
  73. {
  74.      uchar i,j;
  75.          for(i=0;i<8;i++)
  76.          {
  77.              j=((dat>>i)&0x01);
  78.                  write_bit_ds18b20(j);
  79.                  //delay(1);      //延時(shí) 1 - ∞  us
  80.          }


  81. }  


  82. uchar read_byte_ds18b20()
  83. {
  84.         uchar dat=0;
  85.         uchar i;
  86.         for(i=0;i<8;i++)
  87.          {
  88.            if(read_bit_ds18b20())
  89.              dat|=0x01<<i;
  90.            //delay(1);           //延時(shí) 1 - ∞  us
  91.          
  92.          }
  93.          return(dat);           
  94. }



  95. int read_temp_ds18b20()
  96. {
  97.    uchar templ=0,temph=0;
  98.    int temp=0;
  99.    reset_ds18b20();//復(fù)位
  100.    write_byte_ds18b20(0xcc); //跳過(guò)ROM
  101.    write_byte_ds18b20(0x44); //跳過(guò)溫度采集
  102.    delay_ds18b20(10);     //750ms
  103.    reset_ds18b20();
  104.    write_byte_ds18b20(0xcc); //跳過(guò)ROM
  105.    write_byte_ds18b20(0xbe); //準(zhǔn)備好數(shù)據(jù)(開(kāi)始溫度轉(zhuǎn)換采集)
  106.    templ=read_byte_ds18b20();//讀低字節(jié)溫度值
  107.    temph=read_byte_ds18b20();//讀低字節(jié)溫度值
  108.    temp=(templ+(temph*256));
  109.    return(temp);
  110. }
復(fù)制代碼

回復(fù)

使用道具 舉報(bào)

ID:1 發(fā)表于 2019-1-1 21:19 | 顯示全部樓層
樓主能分享下上位機(jī)和下位機(jī)源碼工程包嗎?
回復(fù)

使用道具 舉報(bào)

ID:60656 發(fā)表于 2019-1-1 21:47 | 顯示全部樓層
能帶上顯示測(cè)AD電壓曲線(xiàn)的就不錯(cuò)了
回復(fù)

使用道具 舉報(bào)

ID:459513 發(fā)表于 2019-1-2 09:44 | 顯示全部樓層
admin 發(fā)表于 2019-1-1 21:19
樓主能分享下上位機(jī)和下位機(jī)源碼工程包嗎?

上位機(jī)與下位機(jī)源碼。

ds18b20溫度程序.rar

42.22 KB, 下載次數(shù): 514, 下載積分: 黑幣 -5

下位機(jī)

溫度采集(上位機(jī)).rar

79.83 KB, 下載次數(shù): 730, 下載積分: 黑幣 -5

上位機(jī)

回復(fù)

使用道具 舉報(bào)

ID:376391 發(fā)表于 2019-1-2 10:11 來(lái)自手機(jī) | 顯示全部樓層
感謝樓主分享
回復(fù)

使用道具 舉報(bào)

ID:459513 發(fā)表于 2019-1-4 09:23 | 顯示全部樓層
zxq9781 發(fā)表于 2019-1-1 21:47
能帶上顯示測(cè)AD電壓曲線(xiàn)的就不錯(cuò)了

最近正在做AD,做完就跟大家分享!
回復(fù)

使用道具 舉報(bào)

ID:449715 發(fā)表于 2019-1-6 22:04 | 顯示全部樓層
有沒(méi)有這個(gè)設(shè)計(jì)的論文
回復(fù)

使用道具 舉報(bào)

ID:459513 發(fā)表于 2019-1-8 15:32 | 顯示全部樓層
北極光123456 發(fā)表于 2019-1-6 22:04
有沒(méi)有這個(gè)設(shè)計(jì)的論文

這個(gè)就是隨便做的,沒(méi)有論文呀!
回復(fù)

使用道具 舉報(bào)

ID:502165 發(fā)表于 2019-4-1 09:17 | 顯示全部樓層
感謝分享
回復(fù)

使用道具 舉報(bào)

ID:418767 發(fā)表于 2019-4-10 20:44 | 顯示全部樓層
感謝分享!
回復(fù)

使用道具 舉報(bào)

ID:498471 發(fā)表于 2019-4-17 19:22 | 顯示全部樓層
labview怎么與單片機(jī)通訊呀??求教

回復(fù)

使用道具 舉報(bào)

ID:498471 發(fā)表于 2019-4-18 17:39 | 顯示全部樓層
溫度零下127度。。。。怎么辦
回復(fù)

使用道具 舉報(bào)

ID:328035 發(fā)表于 2019-4-18 19:10 | 顯示全部樓層
labview2014打不開(kāi)
回復(fù)

使用道具 舉報(bào)

ID:522044 發(fā)表于 2019-4-29 11:12 | 顯示全部樓層
能發(fā)我郵箱嗎2433042868@qq.com,,,,這個(gè)用2014版打不開(kāi)嗎
回復(fù)

使用道具 舉報(bào)

ID:459513 發(fā)表于 2019-4-30 17:13 | 顯示全部樓層
chunming 發(fā)表于 2019-4-17 19:22
labview怎么與單片機(jī)通訊呀??求教

串口,WiFi,藍(lán)牙都可以
回復(fù)

使用道具 舉報(bào)

ID:459513 發(fā)表于 2019-4-30 17:16 | 顯示全部樓層
淚目天啟 發(fā)表于 2019-4-29 11:12
能發(fā)我郵箱嗎,,,,這個(gè)用2014版打不開(kāi)嗎

郵箱我之前試過(guò),發(fā)不過(guò)去。加我qq發(fā)給你,2161423266
回復(fù)

使用道具 舉報(bào)

ID:525387 發(fā)表于 2019-4-30 22:33 | 顯示全部樓層
很好的資料,學(xué)習(xí)學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

ID:522346 發(fā)表于 2019-5-1 19:35 | 顯示全部樓層
請(qǐng)問(wèn)樓主是用采用RS485通信方式獲取傳感器的數(shù)據(jù)的嗎
回復(fù)

使用道具 舉報(bào)

ID:507100 發(fā)表于 2019-5-5 10:33 | 顯示全部樓層
你好,你是否做了proteus仿真,能否分享下
回復(fù)

使用道具 舉報(bào)

ID:270653 發(fā)表于 2019-5-8 13:32 | 顯示全部樓層
樓主可以把文件分享下嗎 942754221@qq.com
回復(fù)

使用道具 舉報(bào)

ID:316824 發(fā)表于 2019-5-10 17:56 | 顯示全部樓層
你好樓主,代碼中的這一段是什么意思?
    S=test/10;  Y=test%10;
回復(fù)

使用道具 舉報(bào)

ID:537029 發(fā)表于 2019-5-14 10:55 | 顯示全部樓層
樓主,這個(gè)東西怎么搞
回復(fù)

使用道具 舉報(bào)

ID:537029 發(fā)表于 2019-5-14 10:59 | 顯示全部樓層
我用這個(gè)程序?yàn)槭裁礈囟仁遣粚?duì)的
回復(fù)

使用道具 舉報(bào)

ID:394337 發(fā)表于 2019-7-27 16:32 | 顯示全部樓層
感謝樓主分享
回復(fù)

使用道具 舉報(bào)

ID:57896 發(fā)表于 2019-7-28 02:33 | 顯示全部樓層
很好!謝謝分享!
回復(fù)

使用道具 舉報(bào)

ID:62363 發(fā)表于 2019-7-29 08:50 | 顯示全部樓層
樓主你好,你的labview工程是用哪個(gè)版本軟件做的?2011、2014還是其他?
回復(fù)

使用道具 舉報(bào)

ID:394337 發(fā)表于 2019-8-5 07:15 | 顯示全部樓層
感謝樓主分享
回復(fù)

使用道具 舉報(bào)

ID:419165 發(fā)表于 2019-8-9 09:57 | 顯示全部樓層
好東西,感謝樓主分享
回復(fù)

使用道具 舉報(bào)

ID:543941 發(fā)表于 2019-8-9 14:36 | 顯示全部樓層
qwero 發(fā)表于 2019-5-10 17:56
你好樓主,代碼中的這一段是什么意思?
    S=test/10;  Y=test%10;

把一個(gè)數(shù)分成十位,和個(gè)位
回復(fù)

使用道具 舉報(bào)

ID:599035 發(fā)表于 2019-8-11 09:35 | 顯示全部樓層
labview與單片機(jī)之間如何實(shí)現(xiàn)數(shù)據(jù)類(lèi)型轉(zhuǎn)換的
回復(fù)

使用道具 舉報(bào)

ID:600197 發(fā)表于 2019-8-15 21:04 | 顯示全部樓層
請(qǐng)問(wèn)數(shù)據(jù)是同步實(shí)時(shí)監(jiān)測(cè)的么
回復(fù)

使用道具 舉報(bào)

ID:600197 發(fā)表于 2019-8-16 09:12 | 顯示全部樓層
感謝分享
回復(fù)

使用道具 舉報(bào)

ID:600197 發(fā)表于 2019-8-16 12:48 | 顯示全部樓層
鄒哲暠 發(fā)表于 2019-5-14 10:59
我用這個(gè)程序?yàn)槭裁礈囟仁遣粚?duì)的

我測(cè)的溫度也不對(duì)
回復(fù)

使用道具 舉報(bào)

ID:237723 發(fā)表于 2019-8-23 07:39 | 顯示全部樓層
感謝分享
回復(fù)

使用道具 舉報(bào)

ID:387856 發(fā)表于 2019-8-23 09:38 | 顯示全部樓層
樓主有沒(méi)有l(wèi)abview的教程,有學(xué)過(guò)VB,感覺(jué)有點(diǎn)復(fù)雜。希望交流
回復(fù)

使用道具 舉報(bào)

ID:603222 發(fā)表于 2019-8-23 23:52 來(lái)自手機(jī) | 顯示全部樓層
牛人,謝謝分享
回復(fù)

使用道具 舉報(bào)

ID:625659 發(fā)表于 2019-10-17 15:30 | 顯示全部樓層
感謝分享
回復(fù)

使用道具 舉報(bào)

ID:503669 發(fā)表于 2019-11-21 08:33 來(lái)自手機(jī) | 顯示全部樓層
你好,你有顯示直流電壓電流曲線(xiàn)的這個(gè)資料嗎
回復(fù)

使用道具 舉報(bào)

ID:475236 發(fā)表于 2019-11-29 23:20 | 顯示全部樓層
謝謝樓主分享!
回復(fù)

使用道具 舉報(bào)

ID:383956 發(fā)表于 2019-12-1 16:04 | 顯示全部樓層
感謝分享,學(xué)習(xí)一下
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表