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

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

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

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

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

0 引言

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

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

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

1 DS18B20工作原理

DS18B20是美國(guó)DALLAS半導(dǎo)體公司推出的第一片支持“一線總線”接口的溫度傳感器,它具有微型化、低功耗、高性能、抗干擾能力強(qiáng)、易配微處理器等優(yōu)點(diǎn),可直接將溫度轉(zhuǎn)化成串行數(shù)字信號(hào)供單片機(jī)處理,可實(shí)現(xiàn)溫度的精度測(cè)量與控制。測(cè)溫范圍為-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ù)的高速貯存器、用于存儲(chǔ)用戶設(shè)定的溫度上下限值、觸發(fā)器存儲(chǔ)與控制邏輯、8位循環(huán)冗余校驗(yàn)碼發(fā)生器等7部分。

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

高速寄存器RAM由9個(gè)字節(jié)的存儲(chǔ)器組成。其中,第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,用來存儲(chǔ)溫度上限和下限,可以通過程序設(shè)計(jì)把溫度的上下限從單片機(jī)中讀到TH和TL中,并通過程序再?gòu)?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中的溫度傳感器完成對(duì)溫度的測(cè)量,通過16位符號(hào)擴(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ū)動(dòng)的可靠性,總線上接有上拉電阻。對(duì)如果要控制多個(gè)DS18B20進(jìn)行溫度采集,只要將所有DS18B20的DQ全部連接到總線上就可以了,在操作時(shí),通過讀取每個(gè)DS18B20內(nèi)部芯片的序列號(hào)來識(shí)別。

1.3 DS18B20工作時(shí)序

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

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

1)初始化

初始化是單片機(jī)對(duì)DS18B20的基本操作,主要目的是單片機(jī)感知DS18B20存在并為下一步操作做準(zhǔn)備,同時(shí)啟動(dòng)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ī)對(duì)總線電平管理權(quán)釋放。此時(shí),P1.0的電平高低由DS18B20的DQ輸出決定;

(4)延時(shí)等待。如果初始化成功,則在15~60ms總線上產(chǎn)生一個(gè)由DS18B20返回的低電平0,據(jù)該狀態(tài)可以確定它的存在。但是應(yīng)注意,不能無限地等待,不然會(huì)使程序進(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ī)對(duì)DS18B20的初始化過程來看,單片機(jī)與DS18B20之間的關(guān)系如同有人與人之間對(duì)話,單片機(jī)要對(duì)DS18B20操作,必須先證實(shí)DS18B20的存在,當(dāng)DS18B2響應(yīng)后,單片機(jī)才能進(jìn)行下面的操作。

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

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

(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í)序后,才能對(duì)器件進(jìn)行編程,由于DS18B20有器件編號(hào)、溫度數(shù)據(jù)有低位高位、另外還有溫度的上線限,讀取的數(shù)據(jù)較多,所以DS18B20提供了自己的指令。

1.4 DS18B20指令

1)ROM操作指令

DS18B20指令主要有ROM操作指令、溫度操作指令兩類。ROM操作指令主要針對(duì)DS18B20的內(nèi)部ROM。每一個(gè)DS18B20都有自己獨(dú)立的編號(hào),存放在DS18B20內(nèi)部64位ROM中,ROM內(nèi)容見表2所示。64位ROM中的序列號(hào)是出廠前已經(jīng)固化好,它可以看做該DS18B20的地址序列碼。其各位排列順序是,開始8位為產(chǎn)品類型標(biāo)號(hào),接下來48位是該DS18B20自身的序列號(hào),最后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位,其中最高位為符號(hào)位,即

表3 ROM 操作指令

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

表4 溫度操作指令

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

2.1 電路原理

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

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

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

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

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

* 讀取溫度函數(shù)

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

uint ReadTemperature(void)

{

unsigned char a=0,b=0;

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

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

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

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

圖5 主程序流程圖

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

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

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é)束語(yǔ)

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

[1] 孔慶霞, 朱全銀.基于DS18B20的遠(yuǎn)距離分布式溫度數(shù)據(jù)采集系統(tǒng)[J].電子測(cè)量技術(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測(cè)量?jī)x
電子制作(2019年9期)2019-05-30 09:42:02
ARINC661顯控指令快速驗(yàn)證方法
LED照明產(chǎn)品歐盟ErP指令要求解讀
小議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ī)系列
主站蜘蛛池模板: 午夜福利视频一区| 亚洲男人天堂网址| 精品三级在线| 国产资源免费观看| 国产一级精品毛片基地| 国产免费a级片| 多人乱p欧美在线观看| 91极品美女高潮叫床在线观看| 免费可以看的无遮挡av无码| AV老司机AV天堂| 欧美v在线| 拍国产真实乱人偷精品| 国产成人精品综合| 国产高清在线精品一区二区三区| 欧美午夜小视频| 国产在线八区| 精品一区二区三区四区五区| 国模沟沟一区二区三区| 色综合久久88色综合天天提莫| 亚洲男人在线天堂| 国产另类乱子伦精品免费女| 91视频国产高清| 午夜福利网址| 91在线播放免费不卡无毒| 国产AV无码专区亚洲A∨毛片| 亚洲精品制服丝袜二区| 在线观看国产精美视频| 美女视频黄频a免费高清不卡| 爆乳熟妇一区二区三区| 青青操国产| 国产不卡在线看| 色噜噜狠狠狠综合曰曰曰| 自拍偷拍欧美日韩| 不卡午夜视频| 久久久久九九精品影院| AV不卡在线永久免费观看| 亚洲精品波多野结衣| 亚洲国产欧美中日韩成人综合视频| 国产成人91精品| 国产福利在线免费| 91久久偷偷做嫩草影院精品| 一区二区理伦视频| 国产小视频网站| 青草视频网站在线观看| 青草91视频免费观看| 免费AV在线播放观看18禁强制| 青青热久免费精品视频6| 黄色网站在线观看无码| 中文无码日韩精品| 国产成人精品在线| 高清无码手机在线观看| 亚洲视屏在线观看| 67194在线午夜亚洲| 国产色婷婷| 中文无码精品A∨在线观看不卡 | 亚洲免费毛片| 国内毛片视频| 亚洲国产日韩视频观看| 国产理论精品| 国产高清又黄又嫩的免费视频网站| 国产精品私拍99pans大尺度| 亚洲永久色| 亚洲AV无码久久精品色欲| 啪啪永久免费av| 国产精品爆乳99久久| 欧美成人第一页| 毛片大全免费观看| 国产人人射| 亚洲第一成年人网站| 91精品专区国产盗摄| 亚洲欧美日韩成人在线| 亚洲高清无在码在线无弹窗| 国产va在线观看免费| 国产综合色在线视频播放线视 | 欧洲亚洲一区| 日韩欧美一区在线观看| 国产乱人伦AV在线A| 久久精品只有这里有| 激情六月丁香婷婷四房播| 999精品视频在线| 久久精品只有这里有| 婷婷综合亚洲|