环球电气之家-午夜精彩视频-中国专业电气电子产品行业服务网站!

產品分類

當前位置: 首頁 > 傳感測量產品 > 工業傳感器 > 溫度傳感器

類型分類:
科普知識
數據分類:
溫度傳感器

基于ds18b20的溫度傳感器:基于51單片機的DS18B20溫度傳感器驅動程序加詳解

發布日期:2022-10-09 點擊率:39


基于ds18b20的溫度傳感器:基于51單片機的DS18B20溫度傳感器驅動程序加詳解

//此部分為18B20的驅動程序

//本程序驗證通過,晶振為12MHz

#include

sbit    D18B20=P3^7;    //DQ接P3^7
#define  NOP()   _nop_()
#define  _Nop()  _nop_()

void TempDelay (unsigned char idata us);  //延時函數定義
void Init18b20 (void);                   //初始化函數定義
void WriteByte (unsigned char idata wr);  //單字節寫入
void read_bytes (unsigned char idata j);  //定義多字節數據讀取

unsigned char CRC (unsigned char j);//定義校驗碼數組
void GemTemp (void);                //數據處理
void Config18b20 (void);    //配置上下限即處理位數(9/10/11)

void ReadID (void);         //讀取器件ID,即ROM中的數據
void TemperatuerResult(void); //最終數據輸出

//bit  flag;
unsigned int  idata Temperature,D[10]; //定義溫度數組
unsigned char idata temp_buff[9];      //定義RAM數據暫存數組
//存儲讀取的字節,read scratchpad為9字節,read rom ID為8字節
unsigned char idata id_buff[8];    //定義ROM數據暫存數組
unsigned char idata *p,TIM;        //指針變量
unsigned char idata crc_data;      //CRC計算變量定義

unsigned char code CrcTable [256]={
0,  94, 188,  226,  97,  63,  221,  131,  194,  156,  126,  32,  163,  253,  31,  65,
157,  195,  33,  127,  252,  162,  64,  30,  95,  1,  227,  189,  62,  96,  130,  220,
35,  125,  159,  193,  66,  28,  254,  160,  225,  191,  93,  3,  128,  222,  60,  98,
190,  224,  2,  92,  223,  129,  99,  61,  124,  34,  192,  158,  29,  67,  161,  255,
70,  24,  250,  164,  39,  121,  155,  197,  132,  218,  56,  102,  229,  187,  89,  7,
219,  133, 103,  57,  186,  228,  6,  88,  25,  71,  165,  251,  120,  38,  196,  154,
101,  59, 217,  135,  4,  90,  184,  230,  167,  249,  27,  69,  198,  152,  122,  36,
248,  166, 68,  26,  153,  199,  37,  123,  58,  100,  134,  216,  91,  5,  231,  185,
140,  210, 48,  110,  237,  179,  81,  15,  78,  16,  242,  172,  47,  113,  147,  205,
17,  79,  173,  243,  112,  46,  204,  146,  211,  141,  111,  49,  178,  236,  14,  80,
175,  241, 19,  77,  206,  144,  114,  44,  109,  51,  209,  143,  12,  82,  176,  238,
50,  108,  142,  208,  83,  13,  239,  177,  240,  174,  76,  18,  145,  207,  45,  115,
202,  148, 118,  40,  171,  245,  23,  73,  8,  86,  180,  234,  105,  55,  213, 139,
87,  9,  235,  181,  54,  104,  138,  212,  149,  203,  41,  119,  244,  170,  72,  22,
233,  183,  85,  11,  136,  214,  52,  106,  43,  117,  151,  201,  74,  20,  246,  168,
116,  42,  200,  150,  21,  75,  169,  247,  182,  232,  10,  84,  215,  137,  107,  53};
//CRC數據表

//Function:延時處理

void TempDelay (unsigned char idata us)
{
while(us--);
}

//Function:18B20初始化

void Init18b20 (void)
{
D18B20=1;  //偵測到下跳沿,初始化
_nop_();
D18B20=0;
TempDelay(160);   //delay480 us  (480)
_nop_();
D18B20=1;   //釋放總線
TempDelay(30);   //delay 96 us (60-112)
_nop_();
_nop_();
_nop_(); //18B20偵測到此上升沿,會自動應答
//發送presence信號
//if(D18B20==0)
// flag=1;   //detect 1820 success!
//else
// flag=0;    //detect 1820 fail!
TempDelay(30);       //delay 96 us(60-240)
_nop_();    //發送應答脈沖
_nop_();
D18B20=1;   //釋放總線
}

//Function:向18B20寫入一個字節

void WriteByte (unsigned char idata wr)  //單字節寫入
{
unsigned char idata i;
for (i=0;i

//Function:讀18B20的一個字節

unsigned char ReadByte (void)     //讀取單字節
{
unsigned char idata i,u=0;
for(i=0;i

//Function:讀18B20

void read_bytes (unsigned char idata j)
{
 unsigned char idata i;
 for(i=0;i<j;i++) {="" *p="ReadByte();" p++;="" }="" function:crc校驗="" unsigned="" char="" crc="" (unsigned="" j)="" idata="" i,crc_data="0;" for(i="0;i<j;i++)" 查表校驗="" crc_data="CrcTable[crc_data^temp_buff[i]];" return="" (crc_data);="" 返回i="8時的crc_data" 若為0,校驗正確,即此時的temp_buff[8]="0x00;" function:讀取溫度="" void="" gemtemp="" (void)="" read_bytes="" (9);="" if="" (crc(9)="=0)" 校驗正確="" 暫存器第0字節低8位,第一字節為高8位。="" temperature="temp_buff[1]*0x100" +="" temp_buff[0];="" *="0.625;" =16;="" 轉換成10進制="" tempdelay(1);="" function:內部配置="" config18b20="" 重新配置報警限定值和分辨率="" init18b20();="" writebyte(0xcc);="" skip="" rom="" writebyte(0x4e);="" 配置暫存器2,3,4字節數據="" writebyte(0x19);="" 上限="" writebyte(0x1a);="" 下限="" writebyte(0x7f);="" set="" 11="" bit="" (0.125)="" writebyte(0x48);="" 保存設定值="" writebyte(0xb8);="" 回調設定值="" function:讀18b20id="" readid="" 讀取器件="" id="" writebyte(0x33);="" read="" read_bytes(8);="" function:18b20id全處理="" temperatuerresult(void)="" p="id_buff;" readid();="" 讀取器件id="" config18b20();="" rom配置="" init18b20="" ();="" 初始化="" 單點檢測,跳過rom檢索="" writebyte(0x44);="" 啟用溫度轉換="" writebyte(0xbe);="" 讀取暫存器的全部內容="" gemtemp();="" int="" temptick="0;" gettemp()="" if(tim="=1)" tim="0;" temperatuerresult();="" d[5]="Temperature;" 刷新時間="" t1zd(void)="" interrupt="" 3="" th1="0xfe;" tl1="0x33;" tim++;=""

基于DS18B20數字溫度傳感器的溫度計設計
本報告為哈爾濱工業大學電子與信息工程學院大二學期微機原理課程的課設報告。請注意,本文所述代碼均在Quartus II 13.0程序內使用匯編語言運行。

一、課程設計任務要求
利用數字溫度傳感器DS18B20與AT89C51單片機結合來測量溫度,并在LED數碼管上顯示相應的溫度值。溫度測量范圍為-55~125℃,精確至0.5℃。測量的溫度采用數字顯示,用三位共陽極LED數碼管來實現溫度顯示。

二、工作原理
DS18B20數字溫度傳感器是美國DALLAS半導體公司推出的一種改進型具有單總線接口的智能溫度傳感器。與傳統的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據實際要求通過簡單的編程實現9~12位的數字讀數方式。DS18B20的基本性能及詳細資料請參考相關資料。

三、單片機應用系統設計及原理圖
DS18B20數字溫度傳感器數據端口DQ接于P1.7,單片機接電源和晶振,八位共陽數碼管位選接于P1.2~P1.6,斷碼接于P0.0~P0.7并連接排阻。

四、實現方法及擴展創新

基本功能實現方法
利用 DS18B20 數字溫度傳感器的數據傳輸機制編寫程序,將溫度數值從溫度傳感器中取回到 AT89C51 之中,再根據數據的轉換形式,在單片機中對數據進行處理變換成十進制,并動態顯示在數碼管中。

擴展創新設計
根據實驗要求:精度在 0.5℃范圍內,則不必四舍五入,取出整數部分直接處理,只需考查數據的小數第一位,來決定小數點顯示位置顯示 0 或者 5,便可保證精度;并且在個位位置附加上小數點;最后補充符號位,負溫度時顯示負號。

五、實現步驟
首先需要了解 DS18B20 的數據傳輸方式,因為這一芯片只有一個數據通信口,需要遵守嚴格的時序,脈沖的規則,介紹如下。

首先設定 DQ 為總線數據位,連接于 P1.7。

1.復位功能
主機首先發出一個 480~960us 的低電平脈沖,然后釋放總線變為高電平,并在隨后的480us 時間內對總線進行檢測,如果有低電平出現說明總線上有器件已做出應答。若無低電平出現一直都是高電平說明總線上無器件應答。

作為從器件的 DS18B20 在一上電后就一直在檢測總線上是否有 480-960 us 的低電平出現,如果有,在總線轉為高電平后等待 15-60us 后將總線電平拉低60~240us 做出響應存在脈沖,告訴主機本器件已做好準備。若沒有檢測到就一直在檢測等待。

這一段程序設計加入 FLAG 位變量作為傳感器是否相應,正常工作的標志:

2.寫入操作
寫周期最少為 60us,最長不超過 120us。寫周期一開始做為主機先把總線拉低1us 表示寫周期開始。隨后若主機想寫 0,則繼續拉低電平最少 60us 直至寫周期結束,然后釋放總線為高電平。若主機想寫 1,在一開始拉低總線電平 1us 后就釋放總線為高電平,一直到寫周期結束。而做為從機的 DS18B20 則在檢測到總線被拉底后等待 15 us 然后從 15us 到 45us 開始對總線采樣,在采樣期內總線為高電平則為1,若采樣期內總線為低電平則為 0。

寫入要遵守規則,需要先復位,跳過 ROM,才能進行讀寫,更改初值等操作。

3.讀數操作
對于讀數據操作時序也分為讀 0 時序和讀 1 時序兩個過程。讀時隙是從主機把單總線拉低之后,在 1us 之后就得釋放單總線為高電平,以讓 DS18B20 把數據傳輸到單總線上。DS18B20 在檢測到總線被拉低 1us 后,便開始送出數據,若是要送出0 就把總線拉為低電平直到讀周期結束。若要送出 1 則釋放總線為高電平。主機在一開始拉低總線 1us 后釋放總線,然后在包括前面的拉低總線電平 1us在內的 15us 時間內完成對總線進行采樣檢測,采樣期內總線為低電平則確認為0。采樣期內總線為高電平則確認為 1。完成一個讀時序過程,至少需要 60us 才能完成。

讀數代碼如下,在讀數的時候要同樣要復位,跳 ROM,寫入操作碼再讀寫。

4.設定溫度分辨率
由于溫度傳感器的溫度精度為 0.0625℃,對于要求的精度太高,可以適當減少精度,使小數點后四位僅余一位有效,在符合條件的情況下理想化后三位。

5.主程序編寫
主程序應完全按照通信規則進行。

DS18B20 單線通信功能是分時完成的,他有嚴格的時隙概念,如果出現序列混亂,1-WIRE 器件將不響應主機,因此讀寫時序很重要。系統對 DS18B20 的各種操作必須按協議進行。根據 DS18B20 的協議規定,微控制器控制 DS18B20 完成溫度的轉換必須經過以下三個步驟 :

每次讀寫前對 DS18B20 進行復位初始化;發送一條 ROM 指令;發送存儲器指令。
現在我們做的是讓DS18B20進行一次溫度轉換,那具體操作如下:

主機先作復位操作;主機再寫跳過ROM的操作(CCH)命令;然后主機接著寫個轉換溫度的操作命令,后面釋放總線至少 1s,讓DS18B20 完成轉換的操作。在這里要注意的是每個命令字節在寫的時候都是低字節先寫,例如 CCH 的二進制為 ,在寫到總線上時要從低位開始寫,寫的順序是“1、1、0、0、1、1、0、0”。
讀取 RAM 內的溫度數據同樣也要接照三個步驟:

主機發出復位操作并接收 DS18B20 的應答(存在)脈沖。主機發出跳過對 ROM 操作的命令(CCH)。主機發出讀取 RAM 的命令(BEH),隨后主機依次讀取 DS18B20 發出的從第0 到第 8,共九個字節的數據。如果只想讀取溫度數據,那在讀完第 0 和第 1 個數據后就不再理會后面 DS18B20 發出的數據即可。同樣讀取數據也是低位在前的。
故主函數設置如下:

6.數據處理與顯示
對于傳回的數據,DS18B20 的數據格式如下:

溫度二進制表示十六進制表示+ D0H+25. H+10. A2H+0. H H-0. FFF8H-10. FF5EH-25. FE6FH- FC90H
故我們可以由如下步驟分析:

判斷溫度的正負。首先可知,取回原始數據的最后四位無效,這就保證了數據在取回絕對值時不會溢出。此時檢查數據的最高位,如果是正數,則正常執行;如果是負數,則進行取反加一的操作,得到絕對值,并保留原數,為判斷是否顯示負號做準備。取出絕對值放入地址中作為二進制整數。利用進位標志位 C,將八高位的后四位傳入低八位的前四位,得到絕對值。判斷小數后第一位是 0 還是 1,得到小數位顯示為 0 或 5。這時需要在新地址存儲00H,05H,為顯示做準備。 此時我們可以發現對于絕對值小數位為.0~.4 的,則顯示的十分位置 0,絕對值小數位為.5~.9 的,則顯示的十分位置 5,且不影響去掉小數位的整數值,整數值依舊存在。由此可知,顯示數字和真實數字的關系并不符合四舍五入,但在精度范圍之內,這樣做減少了數據處理的復雜度,增加了數碼管顯示數量,是本實驗的創新之處。整數部分轉為十進制。DIV 指令提供了方便,我們只需執行兩次除以10 的操作,便可以得到個,十,百位。顯示:顯示采用共陽八位數碼管。首先由數據的正負,判斷是否輸出負號(g 亮,即 BFH),否則輸出全滅狀態(即 FFH)。再依次輸出個十百位,注意個位為表達準確,需要加上小數點,故要對正常的數碼表最高位置零(即最高位減 8),故個位要查最高位置零后的表以顯示小數點。再根據小數位提前存儲的00H,05H,判斷小數第一位的狀態,輸出相應的 0 和 5。延時函數不必多說。
實際代碼如下:

至此,課程設計原理全部介紹完畢。

六、數據記錄與結果分析
經過試驗得到如下仿真結果:

-32.3℃顯示結果

49.6℃顯示結果

113.2℃顯示結果

七、實驗程序
完整程序代碼:

基于ds18b20的溫度傳感器:基于51單片機的DS18B20溫度傳感器驅動程序加詳解  第1張

基于ds18b20的溫度傳感器:基于DS18B20溫度傳感器和MQ2煙霧傳感器的火災報警器設計

  一、概述
本文引用地址:
  火災自動報警系統(Fire Alarm
System,簡稱FAS系統)是人們為了早期發現通報火災,并及時采取有效措施,控制和撲滅火災,而設置在建筑物中或其它場所的一種自動消防設施,是人們同火災作斗爭的有力工具。
  本設計中以溫度探頭和煙霧傳感器作為火災報警器的傳感裝置,并以LED和蜂鳴器作為示警裝置。
  二、功能
  ●高溫檢測。傳感器選用DS18B20,當環境溫度大于40℃,高溫報警指示燈亮,LCD1602第一行顯示溫度。
  ●環境煙霧濃度檢測。傳感器選用MQ2煙霧傳感器,AD0809作模數轉換傳煙霧濃度數據給單片機。當環境煙霧濃度大于50時,煙霧濃度指示燈亮,LCD1602第二行顯示煙霧濃度。
  當溫度和煙霧濃度同時過高時,蜂鳴器發出報警聲音。
  三、硬件設計
  溫度傳感器:DS18B20
  煙霧傳感器:MQ2。MQ2輸出的模擬電壓信號,使用ADC0809作模數轉換后輸入單片機。
  
  四、程序設計
  
  部分程序段:
  ○LCD1602顯示部分程序
  #define LCD_DATA P0 //lcd1602的引腳
  sbit LCD_RS=P2^0;
  sbit LCD_RW=P2^1;
  sbit LCD_EN=P2^2;
  void LCD_Init(void)
  {
  Delay20ms();
  LCD_WriteCmd(0x38); //8位機接口、雙行顯示、5×7字符點陣;
  LCD_WriteCmd(0x0c); //顯示開啟、光標不顯示也不閃爍;
  LCD_WriteCmd(0x01); //清屏;
  LCD_WriteCmd(0x06); //光標右移一位、整屏不移動;
  LCD_Goto(0,0);
  }
  void LCD_WriteDat(unsigned char lcd_dat)
  {
  unsigned char tmp;
  tmp=LCD_ReadStatus(); //讀狀態;
  while((tmp & 0x80)) //是否忙 ?
  {
  tmp=LCD_ReadStatus();
  }
  LCD_RS=1;
  LCD_RW=0;
  LCD_DATA=lcd_dat;
  _nop_();
  LCD_EN=0;
  _nop_();
  _nop_();
  LCD_EN=1;
  }
  void LCD_WriteCmd(unsigned char lcd_cmd)
  {
  unsigned char tmp;
  tmp=LCD_ReadStatus();
  while((tmp & 0x80))
  {
  tmp=LCD_ReadStatus();
  }
  LCD_RS=0;
  LCD_RW=0;
  LCD_DATA=lcd_cmd;
  _nop_();
  LCD_EN=0;
  _nop_();
  _nop_();
  LCD_EN=1;
  }
  unsigned char LCD_ReadStatus(void)
  {
  unsigned char tmp;
  #if 0
  LCD_RS=0;
  LCD_RW=1;
  LCD_EN=1;
  tmp=LCD_DATA;
  LCD_EN=0;
  #endif
  LCD_DATA=0xff;
  LCD_RS=0;
  LCD_RW=1;
  LCD_EN=0;
  _nop_();
  _nop_();
  LCD_EN=1;
  tmp=LCD_DATA;
  return tmp;
  }
  void LCD_Goto(unsigned char x,unsigned char y)
  {
  unsigned char tmp;
  if(y) //若是第二行;
  {
  tmp=0xc0 + x;
  LCD_WriteCmd(tmp);
  }
  else
  {
  tmp=0x80 + x;
  LCD_WriteCmd(tmp);
  }
  }
  void LCD_Display(unsigned char row,unsigned char *str)
  {
  if(row)
  {
  LCD_Goto(0,1);
  }
  else
  {
  LCD_Goto(0,0);
  }
  while(*str !='?')
  {
  LCD_WriteDat(*str++);
  }
  }
  ○ADC0809部分程序
  //AD0809的IO口以及變量定義
  sbit OE=P2^7;
  sbit EOC=P2^6;
  sbit START=P3^0;
  void AD0809()//0809轉換數據
  {
  START=0;_nop_();
  START=1;_nop_();
  START=0;_nop_();
  while(EOC==0);
  OE=1;_nop_();
  density=P1;_nop_();
  OE=0;
  }
  ○DS18B20部分程序
  sbit DQ=P2^3; //DS18B20數據端
  //2、DS18B2模塊
  void delay_18B20(unsigned int i)
  {
  while(i--);
  }
  //ds18b20初始化函數
  void Init_DS18B20(void)
  {
  unsigned char x=0;
  DQ=1; //DQ復位
  delay_18B20(2); //稍做延時
  DQ=0; //單片機將DQ拉低
  delay_18B20(60); //精確延時 大于 480us
  DQ=1; //拉高總線
  delay_18B20(2);
  x=DQ; //稍做延時后 如果x=0則初始化成功 x=1則初始化失敗
  delay_18B20(15);
  }
  //ds18b20讀一個字節
  unsigned char ReadOneChar(void)
  {
  unsigned char i=0;
  unsigned char dat=0;
  for (i=8;i>0;i--)
  {
  DQ=0; // 給脈沖信號
  dat>>=1;
  DQ=1; // 給脈沖信號
  if(DQ)
  dat |=0x80;
  delay_18B20(4);
  }
  return(dat);
  }
  //ds18b20寫一個字節
  void WriteOneChar(unsigned char dat)
  {
  unsigned char i=0;
  for (i=8; i>0; i--)
  {
  DQ=0;
  DQ=dat&0x01;
  delay_18B20(2);
  DQ=1;
  dat>>=1;
  }
  }
  五、仿真圖
  
  圖3 火災報警器仿真圖

基于ds18b20的溫度傳感器:基于51單片機的DS18B20溫度傳感器驅動程序加詳解  第2張

基于ds18b20的溫度傳感器:基于DS18B20溫度傳感器的溫度計設計c程序

#include "REG51.H"
#include "INTRINS.H"
typedef unsigned char BYTE;
sbit DQ=P3^3;                     //DS18B20的數據口位P3.3
BYTE TPH;                           //存放溫度值的高字節
BYTE TPL;                           //存放溫度值的低字節
void DelayXus(BYTE n);
void DS18B20_Reset();
void DS18B20_WriteByte(BYTE dat);
BYTE DS18B20_ReadByte();
void main()
{
DS18B20_Reset();                //設備復位
DS18B20_WriteByte(0xCC);        //跳過ROM命令
DS18B20_WriteByte(0x44);        //開始轉換命令
while (!DQ);                    //等待轉換完成
DS18B20_Reset();                //設備復位
DS18B20_WriteByte(0xCC);        //跳過ROM命令
DS18B20_WriteByte(0xBE);        //讀暫存存儲器命令
TPL=DS18B20_ReadByte();       //讀溫度低字節
TPH=DS18B20_ReadByte();       //讀溫度高字節
while (1);
}
void DelayX0us(BYTE n)
{
while (n--)
{
_nop_();
_nop_();
}
}
void DS18B20_Reset()
{
CY=1;
while (CY)
{
DQ=0;                     //送出低電平復位信號
DelayX0us(48);              //延時至少480us
DQ=1;                     //釋放數據線
DelayX0us(6);               //等待60us
CY=DQ;                    //檢測存在脈沖
DelayX0us(42);              //等待設備釋放數據線
}
}
BYTE DS18B20_ReadByte()
{
BYTE i;
BYTE dat=0;
for (i=0; i

#include

下一篇: PLC、DCS、FCS三大控

上一篇: 電氣控制線路圖控制原

推薦產品

更多
主站蜘蛛池模板: 网络推广公司_网络营销方案策划_企业网络推广外包平台-上海澜推网络 | 电主轴-高速精密电主轴-高速电机厂家-瑞德沃斯品牌有限公司 | 【甲方装饰】合肥工装公司-合肥装修设计公司,专业从事安徽办公室、店面、售楼部、餐饮店、厂房装修设计服务 | 杭州营业执照代办-公司变更价格-许可证办理流程_杭州福道财务管理咨询有限公司 | 河南砖机首页-全自动液压免烧砖机,小型砌块水泥砖机厂家[十年老厂] | 基本型顶空进样器-全自动热脱附解吸仪价格-AutoHS全模式-成都科林分析技术有限公司 | 熔体泵|换网器|熔体齿轮泵|熔体计量泵厂家-郑州巴特熔体泵有限公司 | 深圳装修_店面装修设计_餐厅设计_装修全包价格-尚泰装饰设计 | 选宝石船-陆地水上开采「精选」色选机械设备-青州冠诚重工机械有限公司 | 螺旋叶片_螺旋叶片成型机_绞龙叶片_莱州源泽机械制造有限公司 | YAGEO国巨电容|贴片电阻|电容价格|三星代理商-深圳市巨优电子有限公司 | SOUNDWELL 编码器|电位器|旋转编码器|可调电位器|编码开关厂家-广东升威电子制品有限公司 | 合肥风管加工厂-安徽螺旋/不锈钢风管-通风管道加工厂家-安徽风之范 | app开发|app开发公司|小程序开发|物联网开发||北京网站制作|--前潮网络 | China plate rolling machine manufacturer,cone rolling machine-Saint Fighter | 耙式干燥机_真空耙式干燥机厂家-无锡鹏茂化工装备有限公司 | 锌合金压铸-铝合金压铸厂-压铸模具-冷挤压-誉格精密压铸 | 打造全球沸石生态圈 - 国投盛世| 消泡剂-水处理消泡剂-涂料消泡剂-切削液消泡剂价格-东莞德丰消泡剂厂家 | 中矗模型-深圳中矗模型设计有限公司| 广州活动策划公司-15+年专业大型公关活动策划执行管理经验-睿阳广告 | Copeland/谷轮压缩机,谷轮半封闭压缩机,谷轮涡旋压缩机,型号规格,技术参数,尺寸图片,价格经销商 CTP磁天平|小电容测量仪|阴阳极极化_双液系沸点测定仪|dsj电渗实验装置-南京桑力电子设备厂 | 宿松新闻网 宿松网|宿松在线|宿松门户|安徽宿松(直管县)|宿松新闻综合网站|宿松官方新闻发布 | 广州网站建设_小程序开发_番禺网站建设_佛山网站建设_粤联网络 | 飞行者联盟-飞机模拟机_无人机_低空经济_航空技术交流平台 | 南溪在线-南溪招聘找工作、找房子、找对象,南溪综合生活信息门户! | 江苏农村商业银行招聘网_2024江苏农商行考试指南_江苏农商行校园招聘 | 冷柜风机-冰柜电机-罩极电机-外转子风机-EC直流电机厂家-杭州金久电器有限公司 | 证券新闻,热播美式保罗1984第二部_腾讯1080p-仁爱影院 | 济南货架定做_仓储货架生产厂_重型货架厂_仓库货架批发_济南启力仓储设备有限公司 | 台式核磁共振仪,玻璃软化点测定仪,旋转高温粘度计,测温锥和测温块-上海麟文仪器 | 真石漆,山东真石漆,真石漆厂家,真石漆价格-山东新佳涂料有限公司 | 电缆接头-防爆电缆接头-格兰头-金属电缆接头-防爆填料函 | 庭院灯_太阳能景观灯_草坪灯厂家_仿古壁灯-重庆恒投科技 | 新型锤式破碎机_新型圆锥式_新型颚式破碎机_反击式打沙机_锤式制砂机_青州建源机械 | 蓄电池回收,ups电池后备电源回收,铅酸蓄电池回收,机房电源回收-广州益夫铅酸电池回收公司 | 玻璃钢罐_玻璃钢储罐_盐酸罐厂家-河北华盛节能设备有限公司 | 工业设计,人工智能,体验式3D展示的智能技术交流服务平台-纳金网 J.S.Bach 圣巴赫_高端背景音乐系统_官网 | Akribis直线电机_直线模组_力矩电机_直线电机平台|雅科贝思Akribis-杭州摩森机电科技有限公司 | ALC墙板_ALC轻质隔墙板_隔音防火墙板_轻质隔墙材料-湖北博悦佳 | 中红外QCL激光器-其他连续-半导体连续激光器-筱晓光子 |