日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
一種快速查詢多點(diǎn)DS18B20溫度的方法
一種快速查詢多點(diǎn)DS18B20溫度的方法
 更新時(shí)間:2009-7-9 16:50:01  點(diǎn)擊數(shù):0
【字體: 字體顏色

引言
      為了滿足實(shí)時(shí)性要求較高系統(tǒng)的設(shè)計(jì)需求,針對(duì)串聯(lián)多個(gè)器件在一線制總線上的結(jié)構(gòu)導(dǎo)致的在查詢多點(diǎn)溫度時(shí)速度緩慢的問題,北京銘正同創(chuàng)科技有限公司提出了一種快速查詢多點(diǎn)溫度的解決方案。本方案以Dallas公司開發(fā)的一線制數(shù)字溫度傳感器DS18B20為核心,通過采用每個(gè)并行端口上連接一個(gè) DS18B20器件,實(shí)現(xiàn)同時(shí)對(duì)多個(gè)DS18B20進(jìn)行同步操作的方法。本方案可廣泛應(yīng)用于各種工業(yè)控制、儀器儀表產(chǎn)品中。
      關(guān)鍵字 快速多點(diǎn)溫度查詢    工業(yè)控制    儀器儀表    銘正同創(chuàng)
 
1 技術(shù)概述
Dallas公司開發(fā)的一線制數(shù)字溫度傳感器DS18B20是一款性能優(yōu)異的數(shù)字式傳感器,廣泛應(yīng)用于各種工業(yè)控制、儀器儀表產(chǎn)品當(dāng)中。DS18B20與傳統(tǒng)的熱敏電阻溫度傳感器相比,能夠直接讀出被測溫度,并且根據(jù)實(shí)際要求通過簡單的編程可設(shè)置9~12位的分辨率,可以在750ms內(nèi)將溫度轉(zhuǎn)化為12位的數(shù)字量,具有多種可選的封裝方式。因而使用DS18B20可使系統(tǒng)結(jié)構(gòu)更加簡單,可靠性更高。DS18B20器件具體的封裝形式如下圖所示: 


GND  接地
DQ 一線制總線(輸入/輸出)
VD 供電電源
      而DS18B20的一線制總線獨(dú)特而經(jīng)濟(jì)的特點(diǎn),使用戶可輕松地組建傳感器網(wǎng)絡(luò),為測量系統(tǒng)的構(gòu)建引入全新概念。一般應(yīng)用一線制總線對(duì)DS18B20進(jìn)行多點(diǎn)溫度監(jiān)控時(shí),多采用如下的電路形式,即在一DQ線上串接多個(gè)DS18B20器件。如下圖:
 
      在一線制總線上串接多個(gè)DS18B20器件時(shí),實(shí)現(xiàn)對(duì)其中一個(gè)DS18B20器件進(jìn)行一次溫度轉(zhuǎn)換和讀取操作主要包括以下13個(gè)步驟 (所有的操作都是通過DQ線進(jìn)行信號(hào)傳輸?shù)模?br>      1 主機(jī)MCU發(fā)復(fù)位脈沖
      2 DS18B20發(fā)應(yīng)答脈沖(即MCU接收該應(yīng)答信號(hào),以確認(rèn)器件在總線上)
      3 主機(jī)發(fā)匹配ROM命令
      4 主機(jī)發(fā)64位器件序列號(hào)(器件序列號(hào)與總線上的某個(gè)DS18B20器件一一對(duì)應(yīng))
      5 主機(jī)發(fā)溫度轉(zhuǎn)換指令
      6 總線保持高電平50ms
      7 主機(jī)發(fā)復(fù)位命令
      8 DS18B20發(fā)應(yīng)答脈沖
      9 主機(jī)發(fā)匹配ROM命令
      10 主機(jī)發(fā)64位器件代碼
      11 主機(jī)發(fā)讀數(shù)據(jù)寄存器指令
      12 主機(jī)接收數(shù)據(jù)
      13 主機(jī)發(fā)復(fù)位脈沖
      參考DS18B20的數(shù)據(jù)手冊可知,當(dāng)DS18B20的精度設(shè)置為12位精度表示時(shí),依據(jù)上面的步驟完成對(duì)一個(gè)器件的測溫、讀取溫度值的過程,大概會(huì)消耗掉1秒鐘的時(shí)間。而如果總線上存在8個(gè)DS18B20器件的話,完成一次8個(gè)器件的查詢需要8秒的時(shí)間,這不還沒計(jì)算在系統(tǒng)初始化時(shí),對(duì)總線上的器件序列號(hào)進(jìn)行初始化過程所消耗的時(shí)間。
      針對(duì)所述利用多個(gè)DS18B20器件串接在一線制總線上進(jìn)行多點(diǎn)溫度查詢時(shí)速度慢的原因,做進(jìn)一步分析如下。
      DS18B20器件在進(jìn)行一線制總線操作時(shí),僅有一根DQ線用于雙向的數(shù)據(jù)傳輸,每一個(gè)操作最小的細(xì)分至每一個(gè)的讀寫過程,即一個(gè)位的讀寫操作為一線制總線操作的最小單位,可以參考DS18B20的手冊,了解到每一次最小單位的總線操作利用了規(guī)定時(shí)間內(nèi)MCU驅(qū)動(dòng)DQ線的高低電平來決定讀/寫的操作,然后在其后的規(guī)定時(shí)間內(nèi)完成讀/寫一個(gè)位數(shù)據(jù)的操作。這樣,就決定了每一次操作的過程中,要傳輸?shù)臄?shù)據(jù)位數(shù)越多,每一次的操作耗時(shí)越長。而 DS18B20的一線制總線的操作對(duì)時(shí)序的要求很嚴(yán)格,一般在設(shè)計(jì)MCU對(duì)其總線操作的程序時(shí),都是利用延時(shí)去保證每個(gè)讀寫周期的時(shí)間準(zhǔn)確性,即說明這些時(shí)間內(nèi)CPU必然是閑置的。如下圖示意了一個(gè)寫0和1操作的時(shí)序:

      另外,在多個(gè)器件串接在一線制總線上時(shí),為了區(qū)分每次操作是針對(duì)總線上哪一個(gè)器件,DS18B20器件在內(nèi)部提供了每個(gè)器件獨(dú)有的64位 ROM序列號(hào),也就是說每一次操作都要首先在對(duì)DS18B20器件的ROM序列號(hào)進(jìn)行匹配后,方可對(duì)其中的某一個(gè)器件進(jìn)行測溫/讀取溫度值的操作?梢怨浪愠觯恳淮涡蛄刑(hào)的匹配操作,差不多需要4ms的時(shí)間,完成一次完整的測溫/讀取溫度值操作,就需要進(jìn)行兩次序列號(hào)匹配,即消耗掉大概8個(gè)ms的時(shí)間。
      多個(gè)器件串接在總線上時(shí),對(duì)所有的器件的查詢操作,需要一個(gè)一個(gè)來,完成一次全部器件的查詢需要成倍的操作時(shí)間,整個(gè)系統(tǒng)把大量時(shí)間消耗在時(shí)序所要求的延時(shí)上。
      此外,當(dāng)采用多個(gè)器件串接在一線制總線的系統(tǒng)時(shí),還需要在系統(tǒng)的初始化其間花銷較長的時(shí)間來進(jìn)行煩瑣的總線上器件的序列號(hào)查詢,并以此獲知總線上的每個(gè)器件的序列號(hào)。
      如前所述,可以總結(jié)出,影響查詢多點(diǎn)DS18B20溫度速度的最主要因素有如下幾個(gè):
      1.每次操作都需要附加兩次對(duì)64位序列號(hào)的匹配過程;
      2.多個(gè)器件串接,完成全部的查詢就需要與器件個(gè)數(shù)成倍增長的耗時(shí)。
      這樣的應(yīng)用在一些對(duì)實(shí)時(shí)性要求相對(duì)較高的系統(tǒng)當(dāng)中,是非常占用資源的(雖然省掉了端口資源,但CPU不得不等待N長時(shí)間后方可獲取多點(diǎn)的溫度值),所以使用起來總會(huì)有些遺憾。下面,介紹一種快速查詢多點(diǎn)DS18B20溫度的方法,包括硬件的連線構(gòu)成以及軟件的編程思路。
2 解決方案
      由于一般都會(huì)將對(duì)DS18B20器件的溫度查詢放置在中斷當(dāng)中實(shí)現(xiàn)或者是在程序的主循環(huán)當(dāng)中采用定時(shí)查詢的方法實(shí)現(xiàn),所以這就要求每次對(duì) DS18B20的操作都能快速的完成,盡快退出來進(jìn)行其它的處理。所以為了解決串聯(lián)多個(gè)器件在一線制總線上的結(jié)構(gòu)導(dǎo)致的在查詢多點(diǎn)溫度時(shí)速度緩慢的問題,本設(shè)計(jì)提出一種解決方案,具體說是通過修改硬件連接來實(shí)現(xiàn)方便快捷的查詢多點(diǎn)DS18B20器件溫度的方法。
2.1 快速查詢多點(diǎn)DS18B20溫度的方法簡述
      當(dāng)一線制總線上僅有一個(gè)DS18B20器件時(shí),可以用skip ROM操作(即跳過ROM匹配)命令來代替64位序列號(hào)的匹配過程,這點(diǎn)也是使用單個(gè)DS18B20器件的系統(tǒng)常用的方法。所以,要想節(jié)省掉64位序列號(hào)匹配的時(shí)間開銷,就必需設(shè)計(jì)成一個(gè)一線制總線上僅有一個(gè)DS18B20器件的系統(tǒng)。
      DS18B20的一線制總線在時(shí)序上的嚴(yán)格要求,也從另一方面意味著在一定的彈性范圍內(nèi),不同DS18B20器件的時(shí)序細(xì)節(jié)上的一致性應(yīng)該是非常好,所以可以將系統(tǒng)設(shè)計(jì)成利用MCU的并行端口同時(shí)對(duì)多個(gè)DS18B20進(jìn)行統(tǒng)一的操作,不過這時(shí)候并行端口上的每一個(gè)端口連接著一個(gè)DS18B20 器件而已。
      本文所述的解決方案正是以端口的消耗為代價(jià),換取對(duì)多點(diǎn)DS18B20溫度查詢的速度,并在程序結(jié)構(gòu)的設(shè)計(jì)上采用一些巧妙的處理方法,使得系統(tǒng)對(duì)DS18B20的操作上花更少的時(shí)間。此外,采用本設(shè)計(jì)實(shí)現(xiàn)的快速多點(diǎn)溫度查詢系統(tǒng),可以省掉煩瑣的總線上器件序列號(hào)的查詢操作,并可節(jié)省大量的存儲(chǔ)空間(原用于存儲(chǔ)總線上器件的序列號(hào)所用的空間)。
      從理論上分析,本設(shè)計(jì)方案的采用,查詢多個(gè)DS18B20器件操作所消耗的時(shí)間與查詢一個(gè)DS18B20器件操作所消耗的時(shí)間是等量的。
      下面以查詢8個(gè)DS18B20器件為例詳細(xì)分析此方法的設(shè)計(jì)思想。
2.2 系統(tǒng)硬件連接
      本系統(tǒng)方案8個(gè)DS18B20器件連接在MCU的一組端口的8個(gè)I/O口上,連線示意圖如下所示:

      當(dāng)然,上圖中的示意圖并沒有考慮諸如端口驅(qū)動(dòng)能力、抗干擾處理等,僅表明一個(gè)邏輯的連接示意,具體在產(chǎn)品級(jí)的設(shè)計(jì)時(shí)會(huì)根據(jù)產(chǎn)品的應(yīng)用做必要的處理,比如增加一些必要的電路等,此處不作為討論的重點(diǎn)。
      從上圖可見,每個(gè)端口連接有一個(gè)DS18B20器件,也即一條一線制總線上僅有一個(gè)DS18B20器件,符合了前面所述的解決方法。實(shí)際在對(duì)DS18B20器件進(jìn)行操作時(shí),只需統(tǒng)一地對(duì)這一組并行端口進(jìn)行操作(每個(gè)端口在同一時(shí)間輸出相同的電平狀態(tài))即可。
      一個(gè)端口對(duì)應(yīng)一個(gè)DS18B20器件,也就表示每組端口的某一個(gè)位的讀回?cái)?shù)據(jù)狀態(tài)也就是該端口所對(duì)應(yīng)的器件的輸出狀態(tài),所以,這樣的系統(tǒng)里面是不需要進(jìn)行每個(gè)器件的序列號(hào)搜索、匹配的操作的?芍趯(duì)DS18B20器件進(jìn)行操作時(shí),可以使用skip ROM命令來跳過ROM序列號(hào)匹配的操作,也即在所有的DS18B20器件的ROM操作時(shí)可以使用相同的端口輸出時(shí)序。
2.3 軟件設(shè)計(jì)思路
      總結(jié)前面所介紹的電路示意圖,下面詳細(xì)介紹程序設(shè)計(jì)思想。
      在接下來的軟件介紹中,會(huì)以C語言的例子介紹具體的編程思路,但這些代碼并非就是實(shí)際中所使用的代碼,僅作為邏輯性的參考,以便大家理解。這些代碼是從一個(gè)產(chǎn)品的應(yīng)用當(dāng)中摘出的,而程序設(shè)計(jì)的結(jié)構(gòu)也是從具體的設(shè)計(jì)當(dāng)中分解出來的,供大家參考。
      軟件設(shè)計(jì)從最底層的與DS18B20時(shí)序相關(guān)的驅(qū)動(dòng),到與一線制總線器件處理過程控制/協(xié)議的接口函數(shù),再上升到應(yīng)用API接口函數(shù)的關(guān)系如下圖所示:

      在對(duì)連在一組8位端口上的8個(gè)DS18B20操作時(shí),是同時(shí)對(duì)該組端口進(jìn)行操作,也即同時(shí)對(duì)8個(gè)DS18B20器件進(jìn)行同步的操作。
      范例程序是根據(jù)筆者的項(xiàng)目當(dāng)中的功能需求而設(shè)計(jì)的,不一定會(huì)適合所有人的使用方法,但程序設(shè)計(jì)思想是可以參考的,這點(diǎn)請使用者在參考本文時(shí)對(duì)這里的范例進(jìn)行一定的取舍。下面詳細(xì)介紹一個(gè)以MCS51系列單片機(jī)應(yīng)用為例的范例程序,其中約定與8個(gè)DS18B20器件進(jìn)行連接的是P1端口。
2.3.1 底層時(shí)序驅(qū)動(dòng)
      底層時(shí)序驅(qū)動(dòng)程序與DS18B20的一線制總線的協(xié)議保持一致,根據(jù)一線制總線時(shí)序的特點(diǎn),設(shè)計(jì)了四個(gè)基本的函數(shù):
總線寫1時(shí)序控制函數(shù):
void DS18B20_Write_1(void)
{
 P1 = 0x00;     //8個(gè)DQ 線全部設(shè)置為低電平
 Delay_1us(10);     //延時(shí)10us左右
 P1 = 0xff;      //8個(gè)DQ線全部輸出高電平
 Delay_1us(30);     //延時(shí)30us左右
}
總線寫0時(shí)序控制函數(shù):
void DS18B20_Write_0(void)
{
 P1 = 0x00;      //8個(gè)DQ 線全部設(shè)置為低電平
 Delay_1us(40);      //延時(shí)
 P1 = 0xff;       //端口恢復(fù)高電平
 Delay_1us(1);
}
總線讀取一個(gè)數(shù)據(jù)位時(shí)序控制函數(shù):
unsigned char DS18B20_ReadDQ(void)
{
 unsigned char DQ_S=0;
 P1 = 0x00;      //8個(gè)DQ 線全部設(shè)置為低電平
 Delay_1us(10);
 P1 = 0xff;       //端口置1,準(zhǔn)備讀取
 Delay_1us(1);      //延時(shí)待總線準(zhǔn)備好數(shù)據(jù)
 DQ_S = P1;      //一次性讀取8條DQ線的數(shù)據(jù)狀態(tài)
 P1 = 0xff;       //恢復(fù)端口電平
 Delay_1us(30);      //延時(shí)
 return DQ_S;      //返回讀取的值
}
在讀取一個(gè)總線狀態(tài)數(shù)據(jù)位的函數(shù)中,將會(huì)返回一個(gè)byte的數(shù)據(jù),該數(shù)據(jù)的8個(gè)位正好與連接在P2端口上的8個(gè)I/O口對(duì)應(yīng),如下圖所示:
 
總線復(fù)位時(shí)序控制函數(shù):
void DS18B20_Reset(void)
{
 unsigned char Error_Counter=0;
 P1 = 0x00;     //8個(gè)DQ 線全部設(shè)置為低電平
 Delay_1us(500);    //保持總線低電平500us
 P1 = 0xff; 
 Delay_1us(100); 
 if(P1!=0x00) B20_Error = P1;//如檢測到DS18B20總線響應(yīng)了回復(fù)信號(hào),則讀取當(dāng)前8條
//總線的狀態(tài)
 Delay_1us(50);
 P1 = 0xff; 
 for(Error_Counter=0;Error_Counter  <200;Error_Counter++)
 {
  if((P1&(~B20_Error))==(~B20_Error)) break; //如檢測到總線的回復(fù)信號(hào)結(jié)
//束,則退出循環(huán)
  Delay_1us(1);
 }
 P1 = 0xff;      //恢復(fù)端口電平
 Delay_1us(200);    //延時(shí) 200us~~~
}
      在復(fù)位時(shí)序控制的函數(shù)中,使用了B20_Error全局變量,它將會(huì)傳遞給上一層的數(shù)據(jù)處理函數(shù)作為判斷當(dāng)前8個(gè)I/O口所接的DS18B20是否正常工作,或者是否在各自的總線上。
2.3.2 操作協(xié)議相關(guān)的函數(shù)
      分析DS18B20的一線制總線控制命令,可以提煉出兩個(gè)最基本的操作函數(shù),一個(gè)是寫一個(gè)byte數(shù)據(jù)至DS18B20器件,另一為讀取 DS18B20器件的數(shù)據(jù)。而在本文的范例程序當(dāng)中,僅僅為了提取DS18B20器件的轉(zhuǎn)換完后的溫度值,所以在讀取DS18B20的數(shù)據(jù)時(shí),僅讀取存放在數(shù)據(jù)地址前兩個(gè)字節(jié)的溫度數(shù)據(jù),而不讀取其它字節(jié)的數(shù)據(jù),包括CRC校驗(yàn)值也沒有進(jìn)行讀取,供參考。
寫字節(jié)操作函數(shù):
void DS18B20_WriteByte(unsigned char Com)
{
 unsigned char i;
 for(i=0;i  <8;i++)
 {
  if(Com&0x01)
   DS18B20_Write_1();
  else
   DS18B20_Write_0();
  Com = Com>  >  1; 
 }
}
調(diào)用DS18B20_WriteByte函數(shù),連在8個(gè)I/O口上的一線制總線上的8個(gè)DS18B20器件,將都會(huì)接收到同樣的一個(gè)字節(jié)的數(shù)據(jù):Com。
讀數(shù)據(jù)操作函數(shù):
unsigned char Read_buf_8ch[16];   //buffer of Read DS18B20
void DS18B20_Read2Byte(void)
{
 unsigned int i;
 for(i=0;i  <16;i++)
 {
  Read_buf_8ch[i] = DS18B20_ReadDQ();
 }
}
      前面已經(jīng)介紹過了,在本范例中,只讀取位到DS18B20內(nèi)部數(shù)據(jù)區(qū)域的前兩節(jié)字的溫度值數(shù)據(jù),所以數(shù)據(jù)讀取函數(shù)設(shè)計(jì)成讀取兩個(gè)字節(jié)的函數(shù),即需要連續(xù)讀取16個(gè)位(對(duì)應(yīng)于每一個(gè)DS18B20器件來說是連續(xù)的16個(gè)位)。而將讀回的數(shù)據(jù)保存于一個(gè)Read_buf_8ch(簡寫:Rb)的數(shù)組中,可以根據(jù)系統(tǒng)的接線圖對(duì)讀回的16個(gè)字節(jié)的數(shù)據(jù)進(jìn)行分析,如下圖所示:

      讀取DS18B20的數(shù)據(jù)時(shí),先讀高位再讀低位;所以可以從上圖看到,以TM2的DS18B20的數(shù)據(jù)為例,TM2的兩個(gè)字節(jié)的數(shù)據(jù)由 Read_buf_8ch數(shù)組的16個(gè)字節(jié)數(shù)據(jù)中的每個(gè)字節(jié)的bit2位組成?芍瓿梢淮螖(shù)據(jù)讀取的操作后,可以同時(shí)讀回8個(gè)DS18B20器件的數(shù)據(jù),在數(shù)據(jù)處理時(shí),只需針對(duì)上圖的數(shù)據(jù)結(jié)構(gòu)對(duì)Read_buf_8ch數(shù)組的數(shù)據(jù)進(jìn)行處理即可得到每個(gè)DS18B20器件的測溫值。
2.3.3 API功能函數(shù):
      供上層應(yīng)用程序直接調(diào)用的函數(shù)相對(duì)來說,是與系統(tǒng)的具體硬件接法沒有太多的關(guān)系,只需要依照DS18B20器件的操作流程進(jìn)行操作即可。在此,提供兩個(gè)API的范例,分別是啟動(dòng)溫度轉(zhuǎn)換控制函數(shù)和讀取溫度值函數(shù)。
啟動(dòng)溫度轉(zhuǎn)換控制函數(shù):
void DS18B20_Conver(void)
{
 DS18B20_Reset();
 DS18B20_WriteByte(0xcc);  //Skip ROM
 DS18B20_WriteByte(0x44);  //啟動(dòng)測溫
}
讀取溫度值函數(shù):
void DS18B20_ReadTemp(void)
{
 DS18B20_Reset();
 DS18B20_WriteByte(0xcc);   //Skip ROM
 DS18B20_WriteByte(0xbe);   //送入讀取數(shù)據(jù)命令
 DS18B20_Read2Byte();
}
調(diào)用讀取溫度值函數(shù)后,8個(gè)DS18B20器件的測溫?cái)?shù)據(jù)將保存在數(shù)組Read_buf_8ch的16個(gè)字節(jié)單元當(dāng)中,還有待進(jìn)行下一步的處理,方可得到對(duì)應(yīng)每個(gè)DS18B20器件的測溫值。下面介紹簡單的處理代碼片斷:
char i,j;
unsigned int uiData[8];
unsigned char Mask;
//OS the resoult of Temperature
for(i=15;i>  =0;i--)
{
 Mask = 0x01;
 for(j=0;j  <8;j++)
 {
  uiData[j] = uiData[j]  <  <1;
  if(Read_buf_8ch[i]&Mask) uiData[j]++;
  Mask = Mask  <  <1;
 }
}
      經(jīng)過上述簡單的處理,8個(gè)DS18B20器件的測溫?cái)?shù)據(jù)將保存在數(shù)組uiData當(dāng)中的8個(gè)單元里,就可以根據(jù)自身程序設(shè)計(jì)的需求來對(duì)這些數(shù)據(jù)進(jìn)行具體的處理了。
3 結(jié)語
      本文介紹的快速查詢多點(diǎn)DS18B20溫度的設(shè)計(jì)方案,解決了串聯(lián)多個(gè)器件在一線制總線上的結(jié)構(gòu)導(dǎo)致的在查詢多點(diǎn)溫度時(shí)速度緩慢的問題,基本的設(shè)計(jì)思想是:將系統(tǒng)設(shè)計(jì)為在每個(gè)并行端口上連接一個(gè)DS18B20器件,利用MCU的并行端口同時(shí)對(duì)多個(gè)DS18B20進(jìn)行統(tǒng)一的操作,實(shí)現(xiàn)操作多個(gè) DS18B20器件的時(shí)間等同于操作單個(gè)DS18B20器件的時(shí)間。本設(shè)計(jì)思想,可以大大減少在查詢多個(gè)DS18B20測溫值的時(shí)間開銷,滿足了實(shí)時(shí)性要求較高的系統(tǒng)的設(shè)計(jì)需求;同時(shí),也省掉了煩瑣的總線上多個(gè)器件序列號(hào)搜索的代碼的步驟,并且節(jié)省了用于存儲(chǔ)這些器件的序列號(hào)的存儲(chǔ)單元,使得利用 DS18B20進(jìn)行多點(diǎn)測溫的操作變得更方便、容易。
      雖然本文介紹的方法是以犧牲端口資源為代價(jià),但具體在進(jìn)行系統(tǒng)設(shè)計(jì)時(shí),也可以通過一些擴(kuò)展端口、串轉(zhuǎn)并端口、多路模擬開關(guān)等硬件電路設(shè)計(jì)來彌補(bǔ)這些端口資源的消耗,也可通過這些硬件電路來擴(kuò)展更多的DS18B20器件(如果有必要的話)。
      本文所介紹的方法已經(jīng)在筆者參與設(shè)計(jì)的大型恒溫系統(tǒng)當(dāng)中應(yīng)用,目前系統(tǒng)運(yùn)行穩(wěn)定、可靠。

  • 上一篇: C51寫的93C46的讀寫程序
  • 下一篇: 一種基于單片機(jī)的變電站控制保護(hù)系統(tǒng)的實(shí)現(xiàn)
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1