999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于1-wire總線的溫度數(shù)據(jù)采集與硬件設(shè)計(jì)

2012-07-04 09:42:58左現(xiàn)剛劉艷昌
制造業(yè)自動化 2012年14期
關(guān)鍵詞:指令單片機(jī)

左現(xiàn)剛,劉艷昌

(河南科技學(xué)院 信息工程學(xué)院,新鄉(xiāng) 453003)

0 引言

單片機(jī)系統(tǒng)除了可以對電信號進(jìn)行測量外,還可以通過外接傳感器對溫度信號進(jìn)行測量。傳統(tǒng)的溫度檢測大多以熱敏電阻為傳感器,但熱敏電阻可靠性差、測量的溫度不夠準(zhǔn)確,且必須經(jīng)專門的接口電路轉(zhuǎn)成數(shù)字信號后才能被單片機(jī)處理。DS18B20是一種集成數(shù)字溫度傳感器,采用單總線與單片機(jī)連接即可實(shí)現(xiàn)溫度的測量。

系統(tǒng)是以AT89S51單片機(jī)、DS18B20單線溫度轉(zhuǎn)換器和LED為主要元器件得的一個(gè)對溫度進(jìn)行數(shù)據(jù)采集并在LED上進(jìn)行顯示的系統(tǒng)。它實(shí)現(xiàn)的功能就是把模擬的溫度信號以數(shù)字化的形式在LED上顯示出來,使人們更直接方便的讀出溫度值。系統(tǒng)整體框圖如下圖1所示。

圖1 系統(tǒng)整體框圖

1 DS18B20工作原理

DS18B20是美國DALLAS半導(dǎo)體公司推出的第一片支持“一線總線”接口的溫度傳感器,它具有微型化、低功耗、高性能、抗干擾能力強(qiáng)、易配微處理器等優(yōu)點(diǎn),可直接將溫度轉(zhuǎn)化成串行數(shù)字信號供單片機(jī)處理,可實(shí)現(xiàn)溫度的精度測量與控制。測溫范圍為-55℃~+125℃,在-10℃~+85℃時(shí)精度為±0.5℃,分辨率可通過編程控制設(shè)置為0.5℃,0.25℃,0.125℃和0.0625℃。

1.1 工作原理

DS18B20的內(nèi)部框圖如圖2所示,主要包括寄生電源、溫度傳感器、64位激光ROM單線接口、存放中間數(shù)據(jù)的高速貯存器、用于存儲用戶設(shè)定的溫度上下限值、觸發(fā)器存儲與控制邏輯、8位循環(huán)冗余校驗(yàn)碼發(fā)生器等7部分。

圖2 DS18B20內(nèi)部框圖

高速寄存器RAM由9個(gè)字節(jié)的存儲器組成。其中,第0、1字節(jié)是溫度轉(zhuǎn)換有效位,第0字節(jié)的低3位存放了溫度的高位,高5位存放溫度的正負(fù)值;第1字節(jié)的高4位存放溫度的低位,后4位存放溫度的小數(shù)部分;第2和第3個(gè)字節(jié)是DS18B20的與內(nèi)部E2PROM的有關(guān)的TH和TL,用來存儲溫度上限和下限,可以通過程序設(shè)計(jì)把溫度的上下限從單片機(jī)中讀到TH和TL中,并通過程序再復(fù)制到DS18B20內(nèi)部E2PROM中,同時(shí)TH和TL在器件加電后復(fù)制E2PROM的內(nèi)容;第4個(gè)字節(jié)是配置寄存器,第4個(gè)字節(jié)的數(shù)字也可以更新;第5,6,7三個(gè)字節(jié)是保留的。

DS18B20中的溫度傳感器完成對溫度的測量,通過16位符號擴(kuò)展的2進(jìn)制補(bǔ)碼讀數(shù)形式提供,以0.0625℃/LSB形式表達(dá),如表1所示。

表1 高速寄存器RAM

1.2 硬件連接

DS18B20是單片機(jī)外設(shè),單片機(jī)為主器件,DS18B20為從器件。圖3的接法是單片機(jī)與一個(gè)DS18B20通信,單片機(jī)只需要一個(gè)I/O口就可以控制DS18B20,為了增加單片機(jī)I/O口驅(qū)動的可靠性,總線上接有上拉電阻。對如果要控制多個(gè)DS18B20進(jìn)行溫度采集,只要將所有DS18B20的DQ全部連接到總線上就可以了,在操作時(shí),通過讀取每個(gè)DS18B20內(nèi)部芯片的序列號來識別。

1.3 DS18B20工作時(shí)序

由于DS18B20是在一根I/O線上讀寫數(shù)據(jù),因此,對讀寫的數(shù)據(jù)位有著嚴(yán)格的時(shí)序要求。DS18B20有嚴(yán)格的通信協(xié)議來保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了三種信號的時(shí)序:初始化時(shí)序、讀時(shí)序和寫時(shí)序。所有時(shí)序都是將主機(jī)作為主設(shè)備,單總線器件作為從設(shè)備。而每一次命令和數(shù)據(jù)的傳輸都是從主機(jī)主動啟動寫時(shí)序開始,如果要求單總線器件回送數(shù)據(jù),在進(jìn)行寫命令后,主機(jī)需啟動讀時(shí)序完成數(shù)據(jù)接收。數(shù)據(jù)和命令的傳輸都是低位在先。下面分別介紹操作步驟。

圖3 單片機(jī)與一個(gè)DS18B20通信

1)初始化

初始化是單片機(jī)對DS18B20的基本操作,主要目的是單片機(jī)感知DS18B20存在并為下一步操作做準(zhǔn)備,同時(shí)啟動DS18B20,程序設(shè)計(jì)根據(jù)時(shí)序進(jìn)行。DS18B20初始化操作步驟為:

(1)先將數(shù)據(jù)線置高電平1,然后延時(shí)(可有可無);

(2)數(shù)據(jù)線拉到低電平0。然后延時(shí)750μs(該時(shí)間范圍可以在480~960μs),調(diào)用延時(shí)函數(shù)決定;

(3)數(shù)據(jù)線拉到高電平1。如果單片機(jī)P1.0接DS18B20的DQ引腳,則P1.0 此時(shí)設(shè)置高電平,稱為單片機(jī)對總線電平管理權(quán)釋放。此時(shí),P1.0的電平高低由DS18B20的DQ輸出決定;

(4)延時(shí)等待。如果初始化成功,則在15~60ms總線上產(chǎn)生一個(gè)由DS18B20返回的低電平0,據(jù)該狀態(tài)可以確定它的存在。但是應(yīng)注意,不能無限地等待,不然會使程序進(jìn)入死循環(huán),所以要進(jìn)行超時(shí)判斷;

(5)若單片機(jī)讀到數(shù)據(jù)線上的低電平0后,說明DS18B20存在并相應(yīng),還要進(jìn)行延時(shí),其延時(shí)的時(shí)間從發(fā)出高電平算起(第(5)步的時(shí)間算起)最少要 480μs;

(6)將數(shù)據(jù)線再次拉到高電平1,結(jié)束初始化步驟。

從單片機(jī)對DS18B20的初始化過程來看,單片機(jī)與DS18B20之間的關(guān)系如同有人與人之間對話,單片機(jī)要對DS18B20操作,必須先證實(shí)DS18B20的存在,當(dāng)DS18B2響應(yīng)后,單片機(jī)才能進(jìn)行下面的操作。

2)對DS18B20寫數(shù)據(jù)

(1)數(shù)據(jù)線先置低電平0,數(shù)據(jù)發(fā)送的起始信號;

(2)延時(shí)確定的時(shí)間為15μs;

(3)按低位到高位順序發(fā)送數(shù)據(jù)(一次只發(fā)送一位);

(4)延時(shí)時(shí)間為45μs,等待DS18B20接收;

(5)將數(shù)據(jù)線拉到高電平1,單片機(jī)釋放總線;

(6)重復(fù)(1)~(5)步驟,直到發(fā)送完整個(gè)字節(jié);

(7)最后將數(shù)據(jù)線拉高,單片機(jī)釋放總線。

3)DS18B20讀數(shù)據(jù)

(1)將數(shù)據(jù)線拉高;

(2)延時(shí) 2μs;

(3)將數(shù)據(jù)線拉低到0;

(4)延時(shí)6μs,延時(shí)時(shí)比寫數(shù)據(jù)時(shí)間短;

(5)將數(shù)據(jù)線拉高到1,釋放總線;

(6)延時(shí) 4μs;

(7)讀數(shù)據(jù)線的狀態(tài)得到一個(gè)狀態(tài)位,并進(jìn)行數(shù)據(jù)處理;

(8)延時(shí) 30μs;

(9)重復(fù)(1)~(7)步驟,直到讀取完一個(gè)字節(jié)。

只有在熟悉了DS18B20操作時(shí)序后,才能對器件進(jìn)行編程,由于DS18B20有器件編號、溫度數(shù)據(jù)有低位高位、另外還有溫度的上線限,讀取的數(shù)據(jù)較多,所以DS18B20提供了自己的指令。

1.4 DS18B20指令

1)ROM操作指令

DS18B20指令主要有ROM操作指令、溫度操作指令兩類。ROM操作指令主要針對DS18B20的內(nèi)部ROM。每一個(gè)DS18B20都有自己獨(dú)立的編號,存放在DS18B20內(nèi)部64位ROM中,ROM內(nèi)容見表2所示。64位ROM中的序列號是出廠前已經(jīng)固化好,它可以看做該DS18B20的地址序列碼。其各位排列順序是,開始8位為產(chǎn)品類型標(biāo)號,接下來48位是該DS18B20自身的序列號,最后8位是前面56位的CRC循環(huán)冗余校驗(yàn)碼(CRC=X8+X5+X4+1)。

表264 位 ROM 定義

ROM的作用是使每一個(gè)DS18B20都各不相同,這樣就可以實(shí)現(xiàn)一條總線上掛接多個(gè)DS18B20的目的。ROM操作指令如表3所示。

在實(shí)際應(yīng)用中,如果總線上只存在一個(gè)DS18B20,就不需要讀取ROM編碼以及匹配ROM編碼了,只要跳過ROM(CCH)命令,就可進(jìn)行如下溫度轉(zhuǎn)換和讀取操作。

2)溫度操作指令

溫度操作指令見表4所示,DS18B20在出廠時(shí)溫度數(shù)值默認(rèn)為12位,其中最高位為符號位,即

表3 ROM 操作指令

溫度值共11位,單片機(jī)在讀取數(shù)據(jù)時(shí),依次從高速寄存器第0、1地址讀2字節(jié)共16位,讀完后將低11位的二進(jìn)制數(shù)轉(zhuǎn)轉(zhuǎn)換為實(shí)際溫度值。0地址對應(yīng)的1個(gè)字節(jié)的前5個(gè)數(shù)字為符號位,這5位同時(shí)變化,前5位為1時(shí),讀取的溫度為負(fù)值;前5位為0時(shí),讀取的溫度為正值,且溫度為正值時(shí),只要將測得的數(shù)值乘以0.0625即可得到實(shí)際溫度值。

表4 溫度操作指令

2 數(shù)字溫度計(jì)

2.1 電路原理

AT89S51單片機(jī)和DS18B20的硬件連接圖如圖4所示,單片機(jī)的P10口和DS18B20的數(shù)據(jù)口相連接。單片機(jī)通過P10口對DS18B20進(jìn)行初始化,DS18B20將轉(zhuǎn)換后的數(shù)字溫度值通過P10口傳給單片機(jī)。

2.2 系統(tǒng)軟件設(shè)計(jì)

圖4 溫度采集系統(tǒng)硬件連接圖

本程序采用Keil 公司IDE軟件uVision3設(shè)計(jì)和編譯。主要包括溫度檢測和顯示,按鍵驅(qū)動和溫度控制等。其中溫度檢測是單片機(jī)通過調(diào)用初始化函數(shù)對DS18B20按照初始化時(shí)序進(jìn)行初始化,啟動溫度的轉(zhuǎn)換,再將轉(zhuǎn)換后的數(shù)字傳給單片機(jī),單片機(jī)通過計(jì)算將數(shù)字溫度轉(zhuǎn)換成實(shí)際的溫度值,通過數(shù)碼管顯示出來,并和設(shè)置的溫度值進(jìn)行比較,如何大于設(shè)置的溫度上限或者小于設(shè)置的溫度的下限,則給P11管腳一個(gè)低電平信號,則PNP三極管8550導(dǎo)通,驅(qū)動蜂鳴器發(fā)出告警聲音;同時(shí)調(diào)用控制程序來控制P12管腳以便吸合或者斷開,達(dá)到根據(jù)溫度來控制的目的。其初始化函數(shù)可以根據(jù)上面介紹的過程寫出,下面詳細(xì)的介紹對DS18B20的溫度讀取函數(shù)。主程序流程圖如圖5所示。

/*******************************

* 讀取溫度函數(shù)

*******************************/

uint ReadTemperature(void)

{

unsigned char a=0,b=0;

Init_DS18B20(); //DS18B20初始化函數(shù)

WriteOneChar(0xCC); //跳過讀序號列號的操作

WriteOneChar(0x44); //啟動溫度轉(zhuǎn)換

delay(200); //延遲一段時(shí)間,等待溫度轉(zhuǎn)換完畢

圖5 主程序流程圖

Init_DS18B20(); //在讀溫度值前必須重新初始化18b20;

WriteOneChar(0xCC); //跳過讀序號列號的操作

WriteOneChar(0xBE); //讀取溫度寄存器等(共可讀9個(gè)寄存器) 前兩個(gè)就是溫度

a=ReadOneChar();//讀溫度值低8位,賦給變量a。

b=ReadOneChar();//讀溫度值高8位,賦給變量b。

t=b;

t<<=8; //

t=t|a; //把溫度值低8位和溫度值高8位賦給變量t。

tt=t*0.0625; //12位分辨率,乘以溫度分辨率0.0625后為溫度值

t=tt*10+0.5; //取小數(shù)點(diǎn)后一位值,因此要放大10倍后加0.5輸出,即四舍五入。

return(t); //返回溫度值,送LED顯示并和設(shè)置的溫度值進(jìn)行比較。

}

3 結(jié)束語

DS18B20體積小、精度高、接口簡單、硬件開銷低、附加功能強(qiáng)。將溫度檢測與溫度數(shù)據(jù)輸出都集成在一個(gè)微小的芯片上,不需要A/D轉(zhuǎn)換,并且能自動產(chǎn)生CRC檢驗(yàn)碼,從而使得其的抗干擾糾錯(cuò)能力很強(qiáng)、可靠性更高、使用更為方便。基于AT89S51系列單片機(jī)和DS18B20數(shù)字溫度傳感器的溫度測量系統(tǒng)結(jié)構(gòu)簡單、成本低、操方便,比較好推廣,而且也可以根據(jù)情況進(jìn)行擴(kuò)展,比如進(jìn)行多點(diǎn)采集等。

[1] 孔慶霞, 朱全銀.基于DS18B20的遠(yuǎn)距離分布式溫度數(shù)據(jù)采集系統(tǒng)[J].電子測量技術(shù), 2009, 32: 4.

[2] 馬臣崗, 孟立凡.基于單總線式無線溫度采集系統(tǒng)設(shè)計(jì)[J].電子設(shè)計(jì)工程, 2010(3): 31-33.

[3] 舒斌, 吳建, 仲志燕.基于單片機(jī)和FPGA的遠(yuǎn)程溫度監(jiān)控系統(tǒng)[J].現(xiàn)代電子技術(shù),2008,31(17):127-130.

[4] 張軍.智能溫度傳感器DS18B20及其應(yīng)用[J].儀表技術(shù),2010, 4: 68-70.

[5] 周學(xué)軍.基于AT89C2051的數(shù)字溫度計(jì)設(shè)計(jì)[J].現(xiàn)代電子技術(shù), 2010, 17: 164-165.

猜你喜歡
指令單片機(jī)
聽我指令:大催眠術(shù)
基于單片機(jī)的SPWM控制逆變器的設(shè)計(jì)與實(shí)現(xiàn)
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機(jī)的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機(jī)的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
ARINC661顯控指令快速驗(yàn)證方法
LED照明產(chǎn)品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
小議PLC與單片機(jī)之間的串行通信及應(yīng)用
電子制作(2018年12期)2018-08-01 00:48:04
基于單片機(jī)的平衡控制系統(tǒng)設(shè)計(jì)
電子制作(2017年19期)2017-02-02 07:08:27
殺毒軟件中指令虛擬機(jī)的脆弱性分析
Microchip推出兩個(gè)全新PIC單片機(jī)系列
主站蜘蛛池模板: 国产香蕉国产精品偷在线观看| 国产无码精品在线播放| 伊人久久久久久久久久| 国产精品密蕾丝视频| 真实国产精品vr专区| 久久精品免费国产大片| 亚洲最新地址| 色综合成人| 亚洲自偷自拍另类小说| 91在线视频福利| 亚洲精品无码av中文字幕| 亚洲国产天堂久久综合| 伊人成色综合网| 一级香蕉视频在线观看| 97综合久久| 全裸无码专区| 欧美一级高清免费a| 91精品国产自产91精品资源| 国产女人综合久久精品视| 亚洲三级a| 久青草网站| 国产精品性| 欧美色99| 久久久久青草大香线综合精品| 91麻豆久久久| 性激烈欧美三级在线播放| 亚洲天堂视频网| 人人爽人人爽人人片| 一本色道久久88亚洲综合| 国产爽妇精品| 亚洲国产精品美女| 91精品日韩人妻无码久久| 亚洲免费人成影院| 亚洲无码熟妇人妻AV在线| 欧美亚洲日韩中文| 99视频只有精品| 精品福利视频网| 亚洲一级毛片在线播放| 无码又爽又刺激的高潮视频| 久热这里只有精品6| 欧美啪啪视频免码| 久久精品66| 女人毛片a级大学毛片免费| 国产丝袜一区二区三区视频免下载| 日本五区在线不卡精品| 免费黄色国产视频| 国产91在线|中文| 青青青视频蜜桃一区二区| 国产一区二区三区日韩精品| 日本精品一在线观看视频| 日韩精品成人在线| 超碰色了色| 无码中文字幕乱码免费2| 亚洲AⅤ无码日韩AV无码网站| 国产丝袜第一页| 亚洲无码视频一区二区三区| 福利一区三区| 黄色网页在线观看| 欧美高清三区| 青青草国产精品久久久久| 亚洲狼网站狼狼鲁亚洲下载| 欧美在线黄| 亚洲成人播放| 免费在线观看av| www.精品国产| 精品欧美视频| 手机看片1024久久精品你懂的| 色妞www精品视频一级下载| 欧美精品H在线播放| 欧美午夜在线视频| 狠狠色狠狠色综合久久第一次| 99国产在线视频| 9啪在线视频| 欧美日韩高清在线| 国产一在线| 亚洲欧美在线综合一区二区三区| 国产大片黄在线观看| 午夜视频免费试看| 日a本亚洲中文在线观看| 色综合天天娱乐综合网| 国产精品yjizz视频网一二区| 91久久偷偷做嫩草影院精品|