第一篇:基于NRF2401的無線溫度傳感器的設(shè)計(jì)論文
摘要:為了解決傳統(tǒng)的溫度傳感器多點(diǎn)溫度測量時的繁雜的布線問題,設(shè)計(jì)了一種基于單片機(jī)技術(shù)和無線通訊技術(shù)的無線溫度傳感器。采用無線收發(fā)芯片NRF2401和數(shù)字溫度計(jì)DSl8820構(gòu)成硬件平臺,通過EnhancedShockBurstTM收發(fā)模式實(shí)現(xiàn)對溫度數(shù)據(jù)的傳輸,采用高增益天線使覆蓋區(qū)域達(dá)到200m范圍。
關(guān)鍵詞:NRF2401;DSl8820;無線溫度傳感器
為了解決傳統(tǒng)的溫度傳感器多點(diǎn)溫度測量時的繁雜的布線問題,從傳統(tǒng)的溫度傳感器人手,設(shè)計(jì)了一種基于單片機(jī)技術(shù)和無線通訊技術(shù)的無線溫度傳感器,本文詳細(xì)介紹系統(tǒng)的實(shí)現(xiàn)。
1系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
1.1總體結(jié)構(gòu)框架
無線溫度傳感器的系統(tǒng)的總體結(jié)構(gòu)主要包括兩個部分:一是溫度采集電路,其作用是測量溫度并將測量到的溫度數(shù)據(jù)發(fā)射給主機(jī);另外一部分是溫度信息處理電路,其作用是收集所有的溫度信息,處理并顯示出這些信息,同時還可以將這些數(shù)據(jù)傳輸?shù)絇C機(jī)上。
1.2數(shù)字溫度計(jì)DS18820
DS18820是一種分辨率可編程設(shè)置的單總線數(shù)字溫度計(jì),它的測溫區(qū)間從-55℃~+125℃。溫度輸出位數(shù)從9bit~12bit,用戶可以通過程序來控制,將溫度轉(zhuǎn)化成12bit的數(shù)字字節(jié)的最大耗時僅需750ms。每一片DSl8820都有唯一的64位序列碼,從而允許多片DS18820共存于同一根單總線上,因此用一塊單片機(jī)可以控制一片區(qū)域的溫度采集。DSl8820外觀和接口如圖1和圖2所示:
它有3個引腳,1腳為GND電源地;2腳為DQ數(shù)字信號輸入輸出引腳,DS18820通過1根數(shù)據(jù)總線與單片機(jī)進(jìn)行雙向通訊;3腳為VDD外接供電電源輸入端。DS18820的供電方式有兩種:一種是通過數(shù)據(jù)線提供寄生電源,此時3腳接地;另一種是直接在VDD上提供電源,供電電壓范圍為3.0V~5.5V。
1.3單片機(jī)的選擇
本系統(tǒng)中在溫度采集電路和溫度信息處理電路中都需要用到單片機(jī),而且單片機(jī)是做為系統(tǒng)控制核心。在溫度采集電路中對單片機(jī)的功耗要求較高而在信息處理電路中對單片機(jī)的處理速度有一定的要求。基于價(jià)格和電路設(shè)計(jì)方便的考慮,采用華邦W78E052,它的指令和引腳序列與MCS51兼容,編程簡單方便。它最大支持40MHz時鐘,供電電壓范圍寬(2.4V~5.5V),采用3.3V供電,它的10口可以很方便的與DSl8820和NRF2401直接連接。W78E052內(nèi)部包含2個外部中斷、3個定時計(jì)數(shù)中斷和看門狗計(jì)時器,用在本系統(tǒng)中具有相當(dāng)高的性價(jià)比。
1.4無線收發(fā)模塊
NRF2401是一款工作在2.4GHz~2.5GHz的集接收和發(fā)送于一體的單片無線通訊芯片。它的無線收發(fā)器由頻率發(fā)生器、增強(qiáng)型模SchockBurstTM式控制器、功率放大器、晶體振蕩器、調(diào)制器、解調(diào)器等部分組成。可以通過SPI接口來設(shè)置協(xié)議、功率輸出和頻道選擇。它具有較低的電流消耗,供電電壓1.9V~3.6V。
2軟件的設(shè)計(jì)
2.1溫度采集
DSl8820是以12位輸出的,此時的測溫分辨率是0.0625。輸出的數(shù)據(jù)是二進(jìn)制補(bǔ)碼格式,低4位為小數(shù)位,最高位為符號位。如果是正溫度,讀出的數(shù)據(jù)乘以0.0625便是當(dāng)前的溫度值;負(fù)溫度得轉(zhuǎn)化為正值再相乘。12位輸出的耗時是750ms,如果需要提高轉(zhuǎn)換速度,可以選擇減少輸出位數(shù)(如9位最大耗時僅約94ms),但是測溫精度有所下降。如果是單片的DSl8820工作,在啟動溫度轉(zhuǎn)換和度暫存存儲器操作命令時可以跳過64位ROM地址匹配。
2.2無線收發(fā)
NRF2401有4種工作模式,分別是收發(fā)模式,配置模式,空閑模式和關(guān)機(jī)模式,這四種模式可由PWR_UP寄存器、PRIM_RX寄存器和CE引腳決定。其中收發(fā)模式又有EnhancedShockBurstTM、ShockBurstTM和直接收發(fā)模式3種,收發(fā)模式由配置字來決定。使用EnhancedShockBurstTM收發(fā)模式系統(tǒng)編程相對簡單,在這種模式下只需改變一個字節(jié)的內(nèi)容便可以實(shí)現(xiàn)接收和發(fā)送模式的切換,而且穩(wěn)定性較高。
2.3系統(tǒng)軟件框架
溫度采集模塊的主要工作是采集溫度數(shù)據(jù)并將數(shù)據(jù)發(fā)送給溫度信息處理模塊,溫度采集模塊每2s采集并且發(fā)送一次。溫度信息處理模塊可以工作在兩種模式:單機(jī)模式和聯(lián)機(jī)模式,這兩種模式可以通過按鍵來設(shè)定。單機(jī)模式下,將各個溫度采集模塊上采集過來的溫度實(shí)時顯示出來,預(yù)先設(shè)定的數(shù)據(jù)進(jìn)行比較,如果某一處超過警界值,則啟動相應(yīng)的處理措施并發(fā)出報(bào)警。而在聯(lián)機(jī)模式下,模塊則將采集到的數(shù)據(jù)通過RS232發(fā)給上位機(jī),并執(zhí)行上位機(jī)發(fā)出的命令。
3結(jié)語
本系統(tǒng)的溫度測量誤差在±0.1℃以內(nèi)。用板載天線在空曠地的數(shù)據(jù)傳輸距離可達(dá)40m,如果采用高增益天線可以將通訊距離增大到100m以上,這樣覆蓋區(qū)域可達(dá)到200m的范圍,從而避免了繁雜的布線的問題。如果要將通訊距離進(jìn)一步加大,可以在發(fā)射端增加功率放大器模塊,在接收端加低噪聲放大器模塊,這樣可以大大提升通訊距離。
第二篇:單片機(jī)溫度傳感器論文_圖文.
畢業(yè)設(shè)計(jì)(論文)答辯記錄表 學(xué)生姓名 所學(xué)專業(yè) 指導(dǎo)老師 答辯教師提問 性 別 論文題目 答辯小 組成員 學(xué)生回答問題情況 班 級 答 辯 記 錄 指 導(dǎo) 教 師 評 語 指導(dǎo)老師(簽名): 年 月 日 21 初評成績(由指導(dǎo)老師填寫)答辯主持人(簽名): 年 月 日 畢業(yè)設(shè)計(jì)(論文)評價(jià)表 畢業(yè) 設(shè)計(jì)(論 文)評語 答辯 評語 評 定 等 級 答辯成員簽名 年 月 日 22 答辯委員會 主任意見 簽字 年 月 日 23
第三篇:DS18B20溫度傳感器設(shè)計(jì)報(bào)告
傳感器課程設(shè)計(jì)
專 業(yè): 計(jì)算機(jī)控制技術(shù)
---數(shù)字溫度計(jì)
年 級: 2011 級 姓 名: 樊 益 明
學(xué) 號: 20113042
指導(dǎo)教師: 劉 德 春
阿壩師專電子信息工程系
1.引 言
1.1.設(shè)計(jì)意義
在日常生活及工農(nóng)業(yè)生產(chǎn)中,經(jīng)常要用到溫度的檢測及控制,傳統(tǒng)的測溫元件有熱電偶和熱電阻。而熱電偶和熱電阻測出的一般都是電壓,再轉(zhuǎn)換成對應(yīng)的溫度,需要比較多的外部硬件支持。其缺點(diǎn)如下:
● 硬件電路復(fù)雜; ● 軟件調(diào)試復(fù)雜; ● 制作成本高。
本數(shù)字溫度計(jì)設(shè)計(jì)采用美國DALLAS半導(dǎo)體公司繼DS1820之后推出的一種改進(jìn)型智能溫度傳感器DS18B20作為檢測元件,測溫范圍為-55~125℃,最高分辨率可達(dá)0.0625℃。
DS18B20可以直接讀出被測溫度值,而且采用三線制與單片機(jī)相連,減少了外部的硬件電路,具有低成本和易使用的熱點(diǎn)。設(shè)計(jì)要求
2.1基本要求 1)用LCD12232實(shí)現(xiàn)實(shí)時溫度顯示溫度和自己的學(xué)號。2)采用LED數(shù)碼管直接讀顯示。2.2擴(kuò)展功能
溫度報(bào)警,能任意設(shè)定溫度范圍實(shí)現(xiàn)鈴聲報(bào)警;
33.1單片機(jī)89C52模塊
單片機(jī)89C52是本設(shè)計(jì)中的控制核心,是一個40管腳的集成芯片構(gòu)成。引腳部分:單片機(jī)引腳基本電路部分與普通設(shè)計(jì)無異,40腳接Vcc+5V,20腳接地。X1,X2兩腳接12MHZ的晶振,可得單片機(jī)機(jī)器周期為1微秒。RST腳外延一個RST復(fù)位鍵,一端通過10K電阻接Vcc,一端通過10K電阻接地。AT89S52是一種低功耗、高性能的8位CMOS微控制器,具有8K的可編程Flash 存儲器。使
資料準(zhǔn)備 用高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在線系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。AT89S52具有以下標(biāo)準(zhǔn)功能:8K字節(jié)Flash,256字節(jié)RAM,32位I/O 口線,看門狗定時器,2個數(shù)據(jù)指針,三個16位定時器/計(jì)數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時鐘電路。P 0口接一個470的上拉電阻。P0口0~8腳接4位共陽數(shù)碼管的段選,P2口0~4腳接4位共陽數(shù)碼管的位選,P3.7接DS18B20采集信號。
3.2 DS18B20簡介
DALLAS最新單線數(shù)字溫度傳感器DS18B20簡介新的“一線器件”體積更小、適用電壓更寬、更經(jīng)濟(jì) Dallas 半導(dǎo)體公司的數(shù)字化溫度傳感器DS1820是世界上第一片支持 “一線總線”接口的溫度傳感器。一線總線獨(dú)特而且經(jīng)濟(jì)的特點(diǎn),使用戶可輕松地組建傳感器網(wǎng)絡(luò),為測量系統(tǒng)的構(gòu)建引入全新概念。DS18B20、DS1822 “一線總線”數(shù)字化溫度傳感器 同DS1820一樣,DS18B20也支持“一線總線”接口,測量溫度范圍為-55°C~+125°C,在-10~+85°C范圍內(nèi),精度為±0.5°C。DS1822的精度較差為± 2°C。現(xiàn)場溫度直接以“一線總線”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性。適合于惡劣環(huán)境的現(xiàn)場溫度測量,如:環(huán)境控制、設(shè)備或過程控制、測溫類消費(fèi)電子產(chǎn)品等。與前一代產(chǎn)品不同,新的產(chǎn)品支持3V~5.5V的電壓范圍,使系統(tǒng)設(shè)計(jì)更靈活、方便。而且新一代產(chǎn)品更便宜,體積更小。DS18B20、DS1822 的特性 DS18B20可以程序設(shè)定9~12位的分辨率,精度為±0.5°C。可選更小的封裝方式,更寬的電壓適用范圍。分辨率設(shè)定,及用戶設(shè)定的報(bào)警溫度存儲在EEPROM中,掉電后依然保存。DS18B20的性能是新一代產(chǎn)品中最好的!性能價(jià)格比也非常出色!DS1822與 DS18B20軟件兼容,是DS18B20的簡化版本。省略了存儲用戶定義報(bào)警溫度、分辨率參數(shù)的EEPROM,精度降低為±2°C,適用于對性能要求不高,成本控制嚴(yán)格的應(yīng)用,是經(jīng)濟(jì)型產(chǎn)品。繼“一線總線”的早期產(chǎn)品后,DS1820開辟了溫度傳感器技術(shù)的新概念。DS18B20和DS1822使電壓、特性及封裝有更多的選擇,讓我們可以構(gòu)建適合自己的經(jīng)濟(jì)的測溫系統(tǒng)。3.3 溫度傳感器的工作原理
DS18B20的讀寫時序和測溫原理與DS1820相同,只是得到的溫度值的位數(shù)因分辨率不同而不同,且溫度轉(zhuǎn)換時的延時時間由2s 減為750ms。DS18B20測溫原理:低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號送給計(jì)數(shù)器1。高溫度系數(shù)晶振 隨溫度變化其振蕩率明顯改變,所產(chǎn)生的信號作為計(jì)數(shù)器2的脈沖輸入。計(jì)數(shù)器1和溫度寄存器被預(yù)置在-55℃所對應(yīng)的一個基數(shù)值。計(jì)數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行減法計(jì)數(shù),當(dāng)計(jì)數(shù)器1的預(yù)置值減到0時,溫度寄存器的值將加1,計(jì)數(shù)器1的預(yù)置將重新被裝入,計(jì)數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行計(jì)數(shù),如此循環(huán)直到計(jì)數(shù)器2計(jì)數(shù)到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值,即為所測溫度。
3.4 DS18B20中的溫度傳感器對溫度的測量
高速暫存存儲器由9個字節(jié)組成,其分配如表5所示。當(dāng)溫度轉(zhuǎn)換命令發(fā)布后,經(jīng)轉(zhuǎn)換所得的溫度值以二字節(jié)補(bǔ)碼形式存放在 高速暫存存儲器的第0和第1個字節(jié)。單片機(jī)可通過單線接口讀到該數(shù)據(jù),讀取時低位在前,高位在后。
溫度數(shù)據(jù)值格式
下表為12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲在18B20的兩個8比特的RAM中,二進(jìn)制中的前面5位是符號位,如果測得的溫度大于0,這5位為0,只要將測到的數(shù)值乘于0.0625即可得到實(shí)際溫度;如果溫度小于0,這5位為1,測到的數(shù)值需要取反加1再乘于0.0625即可得到實(shí)際 溫度。例如+125℃的數(shù)字輸出為07D0H,實(shí)際溫度=07D0H*0.0625=2000*0.0625=125℃。
例如-55℃的數(shù)字輸出為FC90H,則應(yīng)先將11位數(shù)據(jù)位取反加1得370H(符號位不變,也不作運(yùn)算),實(shí)際溫度=370H*0.0625=880*0.0625=55℃。
可見其中低四位為小數(shù)位。
DS18B20溫度與表示值對應(yīng)表
3.5 DS18B20的內(nèi)部結(jié)構(gòu)
DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL、配置寄存器。DS18B20的管腳排列如下:
DQ為數(shù)字信號輸入/輸出端;
GND為電源地;
VDD為外接供電電源輸入端(在寄生電源接線方式時接地)。
1)64位的ROM 光刻ROM中的64位序列號是出廠前被光刻好的,它可以看作是該DS18B20的地址序列碼。64位光刻ROM的排列是:開始8位(28H)是產(chǎn)品類型標(biāo)號,接著的48位是該DS18B20自身的序列號,最后8位是前面56位的循環(huán)冗余校驗(yàn)碼(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一個DS18B20都各不相同,這樣就可以實(shí)現(xiàn)一根總線上掛接多個DS18B20的目的。
2)DS18B20溫度傳感器的存儲器
DS18B20溫度傳感器的內(nèi)部存儲器包括一個高速暫存RAM和一個非易失性的可電擦除的E2RAM,后者存放高溫度和低溫度觸發(fā)器TH、TL和結(jié)構(gòu)寄存器。
暫存存儲器包含了8個連續(xù)字節(jié),前兩個字節(jié)是測得的溫度信息,第一個字節(jié)的內(nèi)容是溫度的低八位,第二個字節(jié)是溫度的高八位。第三個和第四個字節(jié)是TH、TL的易失性拷貝,第五個字節(jié)是結(jié)構(gòu)寄存器的易失性拷貝,這三個字節(jié)的內(nèi)容在每一次上電復(fù)位時被刷新。第六、七、八個字節(jié)用于內(nèi)部計(jì)算。第九個字節(jié)是冗余檢驗(yàn)字節(jié)。
3.6 DS18B20的時序
由于DS18B20采用的是單總線協(xié)議方式,即在一根數(shù)據(jù)線實(shí)現(xiàn)數(shù)據(jù)的雙向傳輸,而對89C51單片機(jī)來說,硬件上并不支持單總線協(xié)議,因此,我們必須采用軟件的方法來模擬單總線的協(xié)議時序來完成對DS18B20芯片的訪問。
由于DS18B20是在一根I/O線上讀寫數(shù)據(jù),因此,對讀寫的數(shù)據(jù)位有著嚴(yán)格的時序要求。DS18B20有嚴(yán)格的通信協(xié)議來保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了幾種信號的時序:初始化時序、讀時序、寫時序。所有時序都是將主機(jī)作為主設(shè)備,單總線器件作為從設(shè)備。而每一次命令和數(shù)據(jù)的傳輸都是從主機(jī)主動啟動寫時序開始,如果要求單總線器件回送數(shù)據(jù),在進(jìn)行寫命令后,主機(jī)需啟動讀時序完成數(shù)據(jù)接收。數(shù)據(jù)和命令的傳輸都是低位在先。
1)DS18B20的復(fù)位時序
2)DS18B20的讀時序
對于DS18B20的讀時序分為讀0時序和讀1時序兩個過程。
對于DS18B20的讀時隙是從主機(jī)把單總線拉低之后,在15秒之內(nèi)就得釋放單總線,以讓DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩€上。DS18B20在完成一個讀時序過程,至少需要60us才能完成。
3)DS18B20的寫時序
對于DS18B20的寫時序仍然分為寫0時序和寫1時序兩個過程。
對于DS18B20寫0時序和寫1時序的要求不同,當(dāng)要寫0時序時,單總線要被拉低至少60us,保證DS18B20能夠在15us到45us之間能夠正確地采樣IO總線上的“0”電平,當(dāng)要寫1時序時,單總線被拉低之后,在15us之內(nèi)就得釋放單總線。
4系統(tǒng)框架設(shè)計(jì)如下圖所示:
按照系統(tǒng)設(shè)計(jì)功能的要求數(shù)字溫度計(jì)總體電路結(jié)構(gòu)框圖如下圖所示
5硬件設(shè)計(jì)
溫度計(jì)采用AT89C51單片機(jī)作為微處理器,溫度計(jì)系統(tǒng)的外圍接口電路由晶振、LCD顯示電路、復(fù)位電路、溫度檢測電路、LCD驅(qū)動電路。
溫度計(jì)的工作過程是:初始化其接收需要檢測的溫度,并一直處于檢測狀態(tài),并將檢測到的溫度值讀取,并轉(zhuǎn)化為十進(jìn)制數(shù)值,通過LCD顯示出來,再顯示溫度,方便用戶來讀數(shù)使用記錄數(shù)據(jù)。
溫度計(jì)系統(tǒng)的的硬件電路圖如下圖所示。
DS18B20測溫和學(xué)號顯示
6系統(tǒng)程序的設(shè)計(jì)
6.1主程序
主程序的主要功能是負(fù)責(zé)溫度的實(shí)時顯示、讀出并處理DS18B20的測量溫度值。溫度測量每1s進(jìn)行一次。
主程序流程圖如圖4.1.1所示。
初始化調(diào)用顯示子程序1s到?YN初次上電?N讀出溫度值溫度計(jì)算處理顯示數(shù)據(jù)刷新Y發(fā)溫度轉(zhuǎn)換開始命令
主程序流程圖
6.2讀出溫度子程序
讀出溫度子程序的主要功能是讀出RAM中的9字節(jié)。在讀出時須進(jìn)行CRC校驗(yàn),校驗(yàn)有錯時不進(jìn)行溫度數(shù)據(jù)的改寫。
讀出溫度子程序流程圖如圖4.2所示。
發(fā)DS18B20復(fù)位信號發(fā)跳過ROM命令CRC校驗(yàn)正確?發(fā)讀取溫度命令Y移入溫度暫存器讀取操作,CRC校驗(yàn)YNN結(jié)束9字節(jié)完?
6.3溫度轉(zhuǎn)換命令子程序
溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令。當(dāng)采用12位分辨率時,轉(zhuǎn)換時間大約為750ms。在本程序設(shè)計(jì)中,采用1s顯示程序延時法等待轉(zhuǎn)換的完成。溫度轉(zhuǎn)換命令子程序圖如圖4.3所示。
發(fā)DS18B20復(fù)位uml發(fā)跳過ROM命令發(fā)溫度轉(zhuǎn)換開始命令
結(jié)束
6.4計(jì)算溫度子程序
計(jì)算溫度子程序?qū)AM中讀取值進(jìn)行BCD碼的轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值的正負(fù)判斷。
計(jì)算溫度子程序流程圖如圖4.4所示。
開始計(jì)算小數(shù)位溫度BCD值溫度零下?N計(jì)算整數(shù)位溫度BCD值Y置“+”標(biāo)志溫度值補(bǔ)碼置“—”標(biāo)志結(jié)束
6.5顯示數(shù)據(jù)刷新子程序
顯示數(shù)據(jù)刷新子程序主要是對顯示緩沖器中得顯示數(shù)據(jù)進(jìn)行刷新操作,當(dāng)最高數(shù)據(jù)顯示位為0時,將符號顯示位移入下一位。
顯示數(shù)據(jù)刷新子程序流程圖如圖4.5所示。設(shè)計(jì)總結(jié)
本設(shè)計(jì)利用89S51芯片控制溫度傳感器DS18B52,再輔之以部分外圍電路實(shí)現(xiàn)對環(huán)境溫度的控制,性能穩(wěn)定,精度較高,而且擴(kuò)展性很強(qiáng)。由于DS18B20支持單總線協(xié)議,我們可以將多個DS18B52并聯(lián)到3根或2根線上,CPU只需一根端口線就能與諸多DS18B52通信,占用較少的微處理器的端口就可以實(shí)現(xiàn)多點(diǎn)測溫監(jiān)控系統(tǒng)。
我們在老師的指導(dǎo)下完成了基于DS18B20的數(shù)字溫度計(jì)的設(shè)計(jì)和制作。在進(jìn)行實(shí)驗(yàn)的過程中,我們了解并熟悉DS18B20、AT89C2051以及74LS244的工作原理和性能。并且通過溫度計(jì)的制作,我們將電子技能實(shí)訓(xùn)課堂上學(xué)到的知識進(jìn)行運(yùn)用,并在實(shí)際操作中發(fā)現(xiàn)問題,解決問題,更加增加對知識的認(rèn)識和理解。
第四篇:溫度傳感器課程設(shè)計(jì)
溫度傳感器簡單電路的集成設(shè)計(jì)
當(dāng)選擇一個溫度傳感器的時候,將不再限制在模擬輸出或數(shù)字輸出裝置。與你系統(tǒng)需要相匹配的傳感器類型現(xiàn)在又很大的選擇空間。市場上供應(yīng)的所有溫度感應(yīng)器都是模擬輸出。熱電阻,RTDs和熱電偶是另一種輸出裝置,矽溫度感應(yīng)器。在多數(shù)的應(yīng)用中,這些模擬輸出裝置在有效輸出時需要一個比較器,ADC,或一個擴(kuò)音器。因此,當(dāng)更高技術(shù)的集成變成可能的時候,有數(shù)字接口的溫度傳感器變成現(xiàn)實(shí)。這些集成電路被以多種形式出售,從超過特定的溫度時才有信號簡單裝置,到那些報(bào)告遠(yuǎn)的局部溫度提供警告的裝置。現(xiàn)在不只是在模擬輸出和數(shù)字輸出傳感器之間選擇,還有那些應(yīng)該與你的系統(tǒng)需要相匹配的更廣闊的感應(yīng)器類型的選擇,溫度傳感器的類型:
圖一:傳感器和集成電路制造商提供的四中溫度傳感器
在圖一中舉例說明四種溫度感應(yīng)器類型。一個理想模擬傳感器提供一個完全線性的功能輸出電壓(A)。在傳感器(B)的數(shù)字I/O類中,溫度數(shù)據(jù)通常通過一個串行總線傳給微控制器。沿著相同的總線,數(shù)據(jù)由溫度傳感器傳到微控制器,通常設(shè)定溫度界限在引腳得數(shù)字輸出將下降的時候。當(dāng)超過溫度界限的時候,報(bào)警中斷微控制器。這個類型的裝置也提供風(fēng)扇控制。
模擬輸出溫度傳感器:
圖2 熱阻和矽溫度傳感器這兩個模擬輸出溫度探測器的比較。
熱電阻和矽溫度傳感器被廣泛地使用在模擬輸出溫度感應(yīng)器上。圖2清楚地顯示當(dāng)電壓和溫度之間為線性關(guān)系時,矽溫度傳感器比熱阻體好的多。在狹窄的溫度范圍之內(nèi),熱電阻能提供合理的線性和好的敏感特性。許多構(gòu)成原始電路的熱電阻已經(jīng)被矽溫度感應(yīng)器代替。
矽溫度傳感器有不同的輸出刻度和組合。例如,與絕對溫度成比例的輸出轉(zhuǎn)換功能,還有其他與攝氏溫度和華氏溫度成比例。攝氏溫度部份提供一種組合以便溫度能被單端補(bǔ)給得傳感器檢測。
在最大多數(shù)的應(yīng)用中,這些裝置的輸出被裝入一個比較器或A/D轉(zhuǎn)換器,把溫度數(shù)據(jù)轉(zhuǎn)換成一個數(shù)字格式。這些附加的裝置,熱電阻和矽溫度傳感器繼續(xù)被利用是由于在許多情況下它的成本低和使用方便。數(shù)字I/O溫度傳感器: 大約在五年前,一種新類型溫度傳感器出現(xiàn)了。這種裝置包括一個允許與微控制器通信的數(shù)字接口。接口通常是12C或SMBus序列總線,但是其他的串行接口例如SPI是共用的。閱讀微控制器的溫度報(bào)告,接口也接受來自溫控制器的指令。那些指令通常是溫度極限,如果超過,將中斷微控制器的溫度傳感器集成電路上的數(shù)字信號。微控制器然后能夠調(diào)整風(fēng)扇速度或減慢微處理器的速度,例如,保持溫度在控制之下。
圖3:設(shè)計(jì)的溫度傳感器可遙測處理器芯片上的p-n結(jié)溫度
圖4。溫度傳感器可檢測它自己的溫度和遙測四個p-n結(jié)溫度。
圖5。風(fēng)扇控制器/溫度傳感器集成電路也可使用PWM或一個線性模式的控制方案。
在圖4中畫是一個類似的裝置:而不是檢測一個p-n結(jié)溫度,它檢測四個結(jié)和它的自己內(nèi)部的溫度。因此內(nèi)部溫度接近周圍溫度。周圍溫度的測量給出關(guān)于系統(tǒng)風(fēng)扇是否正在適當(dāng)?shù)毓ぷ鞯闹甘尽?/p>
在圖5中顯示,控制風(fēng)扇是在遙測溫度時集成電路的主要功能。這個部分的使用能在風(fēng)扇控制的二個不同的模式之間選擇。在PWM模式中,微處理控制風(fēng)扇速度是通過改變送給風(fēng)扇的信號周期者測量溫度一種功能。它允許電力消耗遠(yuǎn)少于這個部分的線性模式控制所提供的。因?yàn)槟承╋L(fēng)扇在PWM信號控制它的頻率下發(fā)出一種聽得見的聲音,這種線性模式可能是有利的,但是需要較高功率的消耗和附加的電路。額外的功耗是整個系統(tǒng)功耗的一小部分。
當(dāng)溫度超出指定界限的時候,這個集成電路提供中斷微控制器的警告信號。這個被叫做過熱溫度的信號形式里,安全特征也被提供。如果溫度升到一個危險(xiǎn)級別的時候溫控制器或軟件鎖上,警告信號就不再有用。然而,溫度經(jīng)由SMBus升高到一個水平,過熱在沒有微控制器被使用去控制電路。因此,在這個非邏輯控制器高溫中,過熱能被直接用去關(guān)閉這個系統(tǒng)電源,沒有為控制器和阻力潛在的災(zāi)難性故障。
裝置的這個數(shù)字I/O普遍使用在服務(wù)器,電池組和硬盤磁碟機(jī)上。為了增加服務(wù)器的可靠性溫度在很多的位置中被檢測:在主板(本質(zhì)上是在底盤內(nèi)部的周圍溫度),在處理器鋼模之內(nèi),和在其它發(fā)熱元件例如圖形加速器和硬盤驅(qū)動器。出于安全原因電池組結(jié)合溫度傳感器和使其最優(yōu)化已達(dá)到電池最大壽命。
檢測依靠中心馬達(dá)的速度和周圍溫度的硬盤驅(qū)動器的溫度有兩個號的理由:在驅(qū)動器中讀取錯誤增加溫度極限。而且硬盤的MTBF大大改善溫度控制。通過測量系統(tǒng)里面溫度,就能控制馬達(dá)速度將可靠性和性能最佳化。驅(qū)動器也能被關(guān)閉。在高端系統(tǒng)中,警告能為系統(tǒng)管理員指出溫度極限或數(shù)據(jù)可能丟失的狀況。
圖6。溫度超過某一界限的時候,集成電路信號能報(bào)警和進(jìn)行簡單的ON/OFF風(fēng)扇控制。
圖7.熱控制電路部分在絕對溫標(biāo)形式下,頻率與被測溫度成比例的產(chǎn)生方波的溫度傳感器
圖8。這個溫度傳感器傳送它的周期與被測溫度成比例的方波,因?yàn)橹话l(fā)送溫度數(shù)據(jù)需要一條單一線,就需要單一光絕緣體隔離信道。
模擬正溫度感應(yīng)器
“模擬正量”傳感器通常匹配比較簡單的測量應(yīng)用軟件。這些集成電路產(chǎn)生邏輯輸出量來自被測溫度,而且區(qū)別于數(shù)字輸入/輸出傳感器。因?yàn)樗麄冊谝粭l單線上輸出數(shù)據(jù),與串行總線相對。
在一個模擬正量傳感器的最簡單例子中,當(dāng)特定的溫度被超過的時候,邏輯輸出出錯:其它,是當(dāng)溫度降到一個溫度極限的時候。當(dāng)其它傳感器有確定的極限的時候,這些傳感器中的一些允許使用電阻去校正溫度極限。
在圖6中,裝置顯示購買一個特定的內(nèi)在溫度極限。這三個電路舉例說明這個類型裝置的使用:提供警告,關(guān)閉儀器,或打開風(fēng)扇。
當(dāng)需要讀實(shí)際溫度時,微控制器是可以利用的,在單線上傳送數(shù)據(jù)的傳感器可能是有用的。用微處理器的內(nèi)部計(jì)數(shù)器,來自于這個類型溫度感應(yīng)器的信號很容易地被轉(zhuǎn)換成溫度的測量。圖7傳感器輸出頻率與周圍溫度成比例的方波。在圖8中的裝置是相似的,但是方波周期是與周圍溫度成比例的。
圖9。用一條公共線與8個溫度傳感器連接的微控制器,而且從同一條線上接收每個傳感器傳送的溫度數(shù)據(jù)。
圖9,在這條公共線上允許連接達(dá)到八個溫度傳感器。當(dāng)微控制器的I/O端口同時關(guān)閉這根線上的所有傳感器的時候,開始提取來自這些傳感器的溫度數(shù)據(jù)。微控制器很快地重新裝載接收來的每個傳感器的數(shù)據(jù),在傳感器關(guān)閉期間,數(shù)據(jù)被編碼。在特定時間內(nèi)每個傳感器對閘口脈沖之后的時間編碼。分配給每個感應(yīng)器自己允許的時間范圍,這樣就避免沖突。
通過這個方法達(dá)到的準(zhǔn)確性令人驚訝:0.8 是典型的室溫,正好與被傳送方波頻率的電路相匹配,同樣適用于方波周期的裝置。
這些裝置在有線電線應(yīng)用中同樣顯著。舉例來說,當(dāng)一個溫度傳感器被微控制器隔離的時候,成本被保持在一個最小量,因?yàn)橹恍枰粋€光絕緣體。這些傳感器在汽車制造HVAC應(yīng)用中也是很有效,因?yàn)樗麄儨p少銅的損耗數(shù)量。溫度傳感器的發(fā)展:
集成電路溫度傳感器提供各式各樣的功能和接口。同樣地這些裝置繼續(xù)發(fā)展,系統(tǒng)設(shè)計(jì)師將會看見更多特殊應(yīng)用就像傳感器與系統(tǒng)接口連接的新方式一樣。最后,在相同的鋼模區(qū)域內(nèi)集成更多的電子元件,芯片設(shè)計(jì)師的能力將確保溫度傳感器很快將會包括新的功能和特殊接口。
總結(jié)
通過這些天的查找資料,我了解了很多關(guān)于溫度傳感器方面的知識。我的大家都知道溫度的一些基本知識,溫度是一個基本的物理量,自然界中的一切過程無不與溫度密切相關(guān)。利用溫度所創(chuàng)造出來的傳感器即溫度傳感器是最早開發(fā),應(yīng)用最廣的一類傳感器。并且從資料中顯示溫度傳感器的市場份額大大超過了其他的傳感器。從17世紀(jì)初人們開始利用溫度進(jìn)行測量。在半導(dǎo)體技術(shù)的支持下,在本世紀(jì)相繼開發(fā)了半導(dǎo)體熱電偶傳感器、PN結(jié)溫度傳感器和集成溫度傳感器。與之相應(yīng),根據(jù)波與物質(zhì)的相互作用規(guī)律,相繼開發(fā)了聲學(xué)溫度傳感器、紅外傳感器和微波傳感器。
這些天,我通過許多的資料了解到兩種不同材質(zhì)的導(dǎo)體,如在某點(diǎn)互相連接在一起,對這個連接點(diǎn)加熱,在它們不加熱的部位就會出現(xiàn)電位差。這個電位差的數(shù)值與不加熱部位測量點(diǎn)的溫度有關(guān),和這兩種導(dǎo)體的材質(zhì)有關(guān)。這種現(xiàn)象可以在很寬的溫度范圍內(nèi)出現(xiàn),如果精確測量這個電位差,再測出不加熱部位的環(huán)境溫度,就可以準(zhǔn)確知道加熱點(diǎn)的溫度。由于它必須有兩種不同材質(zhì)的導(dǎo)體,所以稱它為“熱電偶”。我查找的資料顯示數(shù)據(jù):不同材質(zhì)做出的熱電偶使用于不同的溫度范圍,它們的靈敏度也各不相同。熱電偶的靈敏度是指加熱點(diǎn)溫度變化1℃時,輸出電位差的變化量。對于大多數(shù)金屬材料支撐的熱電偶而言,這個數(shù)值大約在5~40微伏/℃之間。
熱電偶傳感器有自己的優(yōu)點(diǎn)和缺陷,它靈敏度比較低,容易受到環(huán)境干擾信號的影響,也容易受到前置放大器溫度漂移的影響,因此不適合測量微小的溫度變化。由于熱電偶溫度傳感器的靈敏度與材料的粗細(xì)無關(guān),用非常細(xì)的材料也能夠做成溫度傳感器。也由于制作熱電偶的金屬材料具有很好的延展性,這種細(xì)微的測溫元件有極高的響應(yīng)速度,可以測量快速變化的過程。溫度傳感器是五花八門的各種傳感器中最為常用的一種,現(xiàn)代的溫度傳感器外形非常得小,這樣更加讓它廣泛應(yīng)用在生產(chǎn)實(shí)踐的各個領(lǐng)域中,也為我們的生活提供了無數(shù)的便利和功能。
溫度傳感器有四種主要類型:熱電偶、熱敏電阻、電阻溫度檢測器(RTD)和IC溫度傳感器。IC溫度傳感器又包括模擬輸出和數(shù)字輸出兩種類型。接觸式溫度傳感器的檢測部分與被測對象有良好的接觸,又稱溫度計(jì)。溫度計(jì)通過傳導(dǎo)或?qū)α鬟_(dá)到熱平衡,從而使溫度計(jì)的示值能直接表示被測對象的溫度。一般測量精度較高。在一定的測溫范圍內(nèi),溫度計(jì)也可測量物體內(nèi)部的溫度分布。但對于運(yùn)動體、小目標(biāo)或熱容量很小的對象則會產(chǎn)生較大的測量誤差,常用的溫度計(jì)有雙金屬溫度計(jì)、玻璃液體溫度計(jì)、壓力式溫度計(jì)、電阻溫度計(jì)、熱敏電阻和溫差電偶等。它們廣泛應(yīng)用于工業(yè)、農(nóng)業(yè)、商業(yè)等部門。在日常生活中人們也常常使用這些溫度計(jì)。隨著低溫技術(shù)在國防工程、空間技術(shù)、冶金、電子、食品、醫(yī)藥和石油化工等部門的廣泛應(yīng)用和超導(dǎo)技術(shù)的研究,測量120K以下溫度的低溫溫度計(jì)得到了發(fā)展,如低溫氣體溫度計(jì)、蒸汽壓溫度計(jì)、聲學(xué)溫度計(jì)、順磁鹽溫度計(jì)、量子溫度計(jì)、低溫?zé)犭娮韬偷蜏販夭铍娕嫉取5蜏販囟扔?jì)要求感溫元件體積小、準(zhǔn)確度高、復(fù)現(xiàn)性和穩(wěn)定性好。利用多孔高硅氧玻璃滲碳燒結(jié)而成的滲碳玻璃熱電阻就是低溫溫度計(jì)的一種感溫元件,可用于測量1.6~300K范圍內(nèi)的溫度。
非接觸式溫度傳感器的敏感元件與被測對象互不接觸,又稱非接觸式測溫儀表。這種儀表可以用來測量運(yùn)動物體、小目標(biāo)還有熱容量小或溫度變化迅速(瞬變)對象的表面溫度,也可以用于測量溫度場的溫度分布。資料顯示,最常用的非接觸式測溫儀表基于黑體輻射的基本定律,稱為輻射測溫儀表。輻射測溫法包括亮度法、輻射法和比色法。各類輻射測溫方法只能測出對應(yīng)的光度溫度、輻射溫度或比色溫度。只有對黑體所測溫度才是真實(shí)溫度。如果想測定物體的真實(shí)溫度,就必須進(jìn)行材料表面發(fā)射率的修正。而材料表面發(fā)射率不僅取絕于溫度和波長,而且還與表面狀態(tài)、涂膜和微觀組織等有關(guān)連,因此很難精確測量。在自動化生產(chǎn)中我發(fā)現(xiàn)往往需要利用輻射測溫法來測量或控制某些物體的表面溫度,如冶金中的鋼帶軋制溫度、軋輥溫度、鍛件溫度和各種熔融金屬在冶煉爐或坩堝中的溫度。在這些具體情況下,物體表面發(fā)射率的測量是相當(dāng)困難的。對于固體表面溫度自動測量和控制,可以采用附加的反射鏡使與被測表面一起組成黑體空腔。附加輻射的影響能提高被測表面的有效輻射和有效發(fā)射系數(shù)。利用有效發(fā)射系數(shù)通過儀表對實(shí)測溫度進(jìn)行相應(yīng)的修正,最終可得到被測表面的真實(shí)溫度。最為典型的附加反射鏡是半球反射鏡。球中心附近被測表面的漫射輻射能受半球鏡反射回到表面而形成附加輻射,這樣才能提高有效發(fā)射系數(shù)。至于氣體和液體介質(zhì)真實(shí)溫度的輻射測量,則可以用插入耐熱材料管至一定深度以形成黑體空腔的方法。通過計(jì)算求出與介質(zhì)達(dá)到熱平衡后的圓筒空腔的有效發(fā)射系數(shù)。在自動測量和控制中就可以用此值對所測腔底溫度(即是介質(zhì)溫度)進(jìn)行修正而得到介質(zhì)的真實(shí)溫度。現(xiàn)在,我通過這些天的努力,了解了很多溫度傳感器及其相關(guān)的一些傳感器的知識。他們在我們生活中的應(yīng)用及其廣泛,我們只有加緊的學(xué)習(xí)加緊的完成自己所學(xué)專業(yè)的知識,了解相關(guān)的最新信息,我們才能跟上科技前進(jìn)的步伐。
參考文獻(xiàn):
【1】劉君華.智能傳感器系統(tǒng).西安電子科技大學(xué)出版社,1993.3 【2】張富學(xué).傳感器電子學(xué).國防工業(yè)電子出版社,1992.6 【3】王家楨等.傳感器與變送器[M].北京清華出版社1996.5 【4】張正偉.傳感器原理與應(yīng)用[M].中央廣播電視大學(xué)出版社,1991.3 【5】樊尚春.傳感器技術(shù)及應(yīng)用.北京航空航天大學(xué)出版社,2004.8 【6】趙負(fù)圖.現(xiàn)代傳感器集成電路.人民郵電出版社,2000.8 【7】謝文和.傳感器技術(shù)及應(yīng)用.高等教育出版社,2004.7 【8】趙繼文.傳感器與應(yīng)用電路設(shè)計(jì)[M].科技出版社,2002.6 【9】陳杰,黃鴻.傳感器與檢測技術(shù).高等教育出版社,2002.3 【10】黃繼昌,徐巧魚,張海貴等.傳感器工作原理及應(yīng)用實(shí)例.人民郵電出版社,1998.6
第五篇:2011基于18B20溫度傳感器論文
基于單片機(jī)18B20的溫度計(jì)設(shè)計(jì)
摘要:文章主要介紹有關(guān)18B20溫度傳感器的應(yīng)用及有關(guān)注意事項(xiàng),經(jīng)典接線原理圖。1.引言:
溫度傳感器的種類眾多,在應(yīng)用與高精度、高可靠性的場合時DALLAS(達(dá)拉斯)公司生產(chǎn)的DS18B20溫度傳感器當(dāng)仁不讓。超小的體積,超低的硬件開消,抗干擾能力強(qiáng),精度高,附加功能強(qiáng),使得DS18B20更受歡迎。對于我們普通的電子愛好者來說,DS18B20的優(yōu)勢更是我們學(xué)習(xí)單片機(jī)技術(shù)和開發(fā)溫度相關(guān)的小產(chǎn)品的不二選擇。了解其工作原理和應(yīng)用可以拓寬您對單片機(jī)開發(fā)的思路。
2.DS18B20的主要特征: ? * 全數(shù)字溫度轉(zhuǎn)換及輸出。? * 先進(jìn)的單總線數(shù)據(jù)通信。? * 最高12位分辨率,精度可達(dá)土0.5攝氏度。? * 12位分辨率時的最大工作周期為750毫秒。? * 可選擇寄生工作方式。? * 檢測溫度范圍為–55°C ~+125°C(–67°F ~+257°F)? * 內(nèi)置EEPROM,限溫報(bào)警功能。? * 64位光刻ROM,內(nèi)置產(chǎn)品序列號,方便多機(jī)掛接。? * 多樣封裝形式,適應(yīng)不同硬件系統(tǒng)。3.DS18B20引腳功能:
?GND 電壓地 ?DQ 單數(shù)據(jù)總線 ?VDD 電源電壓
4.DS18B20工作原理及應(yīng)用:
DS18B20的溫度檢測與數(shù)字?jǐn)?shù)據(jù)輸出全集成于一個芯片之上,從而抗干擾力更強(qiáng)。其一個工作周期可分為兩個部分,即溫度檢測和數(shù)據(jù)處理。在講解其工作流程之前我們有必要了解18B20的內(nèi)部存儲器資源。18B20共有三種形態(tài)的存儲器資源,它們分別是:
ROM 只讀存儲器,用于存放DS18B20ID編碼,其前8位是單線系列編碼(DS18B20的編碼是19H),后面48位是芯片唯一的序列號,最后8位是以上56的位的CRC碼(冗余校驗(yàn))。數(shù)據(jù)在出產(chǎn)時設(shè)置不由用戶更改。DS18B20共64位ROM。
5.控制器對18B20操作流程:
1、復(fù)位:首先我們必須對DS18B20芯片進(jìn)行復(fù)位,復(fù)位就是由控制器(單片機(jī))給DS18B20單總線至少480uS的低電平信號。當(dāng)18B20接到此復(fù)位信號后則會在15~60uS后回發(fā)一個芯片的存在脈沖。
2、存在脈沖:在復(fù)位電平結(jié)束之后,控制器應(yīng)該將數(shù)據(jù)單總線拉高,以便于在15~60uS后接收存在脈沖,存在脈沖為一個60~240uS的低電平信號。至此,通信雙方已經(jīng)達(dá)成了基本的協(xié)議,接下來將會是控制器與18B20間的數(shù)據(jù)通信。如果復(fù)位低電平的時間不足或是單總線的電路斷路都不會接到存在脈沖,在設(shè)計(jì)時要注意意外情況的處理。
3、控制器發(fā)送ROM指令:雙方打完了招呼之后最要將進(jìn)行交流了,ROM指令共有5條,每一個工作周期只能發(fā)一條,ROM指令分別是讀ROM數(shù)據(jù)、指
定匹配芯片、跳躍ROM、芯片搜索、報(bào)警芯片搜索。ROM指令為8位長度,功能是對片內(nèi)的64位光刻ROM進(jìn)行操作。其主要目的是為了分辨一條總線上掛接的多個器件并作處理。誠然,單總線上可以同時掛接多個器件,并通過每個器件上所獨(dú)有的ID號來區(qū)別,一般只掛接單個18B20芯片時可以跳過ROM指令(注意:此處指的跳過ROM指令并非不發(fā)送ROM指令,而是用特有的一條“跳過指令”)。ROM指令在下文有詳細(xì)的介紹。
4、控制器發(fā)送存儲器操作指令:在ROM指令發(fā)送給18B20之后,緊接著(不間斷)就是發(fā)送存儲器操作指令了。操作指令同樣為8位,共6條,存儲器操作指令分別是寫RAM數(shù)據(jù)、讀RAM數(shù)據(jù)、將RAM數(shù)據(jù)復(fù)制到EEPROM、溫度轉(zhuǎn)換、將EEPROM中的報(bào)警值復(fù)制到RAM、工作方式切換。存儲器操作指令的功能是命令18B20作什么樣的工作,是芯片控制的關(guān)鍵。
5、執(zhí)行或數(shù)據(jù)讀寫:一個存儲器操作指令結(jié)束后則將進(jìn)行指令執(zhí)行或數(shù)據(jù)的讀寫,這個操作要視存儲器操作指令而定。如執(zhí)行溫度轉(zhuǎn)換指令則控制器(單片機(jī))必須等待18B20執(zhí)行其指令,一般轉(zhuǎn)換時間為500uS。如執(zhí)行數(shù)據(jù)讀寫指令則需要嚴(yán)格遵循18B20的讀寫時序來操作。數(shù)據(jù)的讀寫方法將有下文有詳細(xì)介紹。6.DS28B20芯片ROM指令表
Read ROM(讀ROM)[33H](方括號中的為16進(jìn)制的命令字)Match ROM(指定匹配芯片)[55H] Skip ROM(跳躍ROM指令)[CCH] Search ROM(搜索芯片)[F0H] Alarm Search(報(bào)警芯片搜索)[ECH] 7.DS28B20芯片存儲器操作指令表:
Write Scratchpad(向RAM中寫數(shù)據(jù))[4EH] Read Scratchpad(從RAM中讀數(shù)據(jù))[BEH] Copy Scratchpad(將RAM數(shù)據(jù)復(fù)制到EEPROM中)[48H] Convert T(溫度轉(zhuǎn)換)[44H] Recall EEPROM(將EEPROM中的報(bào)警值復(fù)制到RAM)[B8H] Read Power Supply(工作方式切換)[B4H] 8.寫程序注意事項(xiàng)
DS18B20復(fù)位及應(yīng)答關(guān)系
每一次通信之前必須進(jìn)行復(fù)位,復(fù)位的時間、等待時間、回應(yīng)時間應(yīng)嚴(yán)格按時序編程。
DS18B20讀寫時間隙:
DS18B20的數(shù)據(jù)讀寫是通過時間隙處理位和命令字來確認(rèn)信息交換的。寫時間隙:
寫時間隙分為寫“0”和寫“1”,時序如圖7。在寫數(shù)據(jù)時間隙的前15uS總線需要是被控制器拉置低電平,而后則將是芯片對總線數(shù)據(jù)的采樣時間,采樣時間在15~60uS,采樣時間內(nèi)如果控制器將總線拉高則表示寫“1”,如果控制器將總線拉低則表示寫“0”。每一位的發(fā)送都應(yīng)該有一個至少15uS的低電平起始位,隨后的數(shù)據(jù)“0”或“1”應(yīng)該在45uS內(nèi)完成。整個位的發(fā)送時間應(yīng)該保持在60~120uS,否則不能保證通信的正常。讀時間隙:
讀時間隙時控制時的采樣時間應(yīng)該更加的精確才行,讀時間隙時也是必須先由主機(jī)產(chǎn)生至少1uS的低電平,表示讀時間的起始。隨后在總線被釋放后的15uS
中DS18B20會發(fā)送內(nèi)部數(shù)據(jù)位,這時控制如果發(fā)現(xiàn)總線為高電平表示讀出“1”,如果總線為低電平則表示讀出數(shù)據(jù)“0”。每一位的讀取之前都由控制器加一個起始信號。注意:必須在讀間隙開始的15uS內(nèi)讀取數(shù)據(jù)位才可以保證通信的正確。在通信時是以8位“0”或“1”為一個字節(jié),字節(jié)的讀或?qū)懯菑母呶婚_始的,即A7到A0.字節(jié)的讀寫順序也是如圖2自上而下的。
9.接線原理圖:
本原理圖采用四位數(shù)碼管顯示,低于100度時,首位不顯示示例27.5,低于10度時示例為9.0,低于零度時示例為-3.7。
結(jié)束語:基于DS18B20溫度測量溫度準(zhǔn)確,接線簡單,易于控制,加以擴(kuò)展可以應(yīng)用到各種溫度控制和監(jiān)控場合。
參考文獻(xiàn):
DALLAS(達(dá)拉斯)公司生產(chǎn)的DS18B20溫度傳感器文獻(xiàn)
程序:
#include
#define uchar unsigned char #define uint unsigned int
sbit sda=P1^7;sbit dian=P0^7;//小數(shù)點(diǎn)顯示 uint tem;
uchar h;uchar code tabw[4]={0xf7,0xfb,0xfd,0xfe};//位選 uchar code tabs[12]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf};//數(shù)碼管數(shù)據(jù)
//
0 5 6 9
空
-uchar code ditab[16]= {0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09};//查表顯示小數(shù)位,1/16=0.0625,即當(dāng)讀出數(shù)據(jù)為3時,3*0.0625=0.1875,讀出數(shù)據(jù)為3時對應(yīng)1,查表顯示1,為4時顯2 uchar data temp[2]={0};//高位數(shù)據(jù)與低位數(shù)據(jù)暫存 uchar data display[5]={0};//顯示緩存
void delay(uchar t)//t為1時延時小于5us { while(t--);} void delay1()//4us {} void delays(uchar m)//1ms { uchar i,j;for(i=0;i for(j=0;j<110;j++);} void reset()//初始化 { uchar x=1;while(x){ while(x) { sda=1; sda=0; delay(50);//延時500us以上 sda=1; delay(5);//等待15us-60us x=sda; } delay(45); x=~sda;} sda=1;} void write_s(uchar temp)//寫入一個字節(jié) { uchar i;for(i=0;i<8;i++){ sda=1; sda=0; delay1(); sda=temp&0x01; delay(6); temp=temp/2;} sda=1;delay(1);} uchar read_s()//讀出一個字節(jié)的數(shù)據(jù) { uchar m=0,i;for(i=0;i<8;i++){ sda=1; m>>=1; sda=0; delay1(); sda=1; delay1(); if(sda) m=m|0x80; delay(6);} sda=1;return m;} uint read_1820()//讀出溫度 { reset();delay(200);write_s(0xcc);//發(fā)送命令 write_s(0x44);//發(fā)送轉(zhuǎn)換命令 reset();delay(1);write_s(0xcc); write_s(0xbe);temp[0]=read_s();temp[1]=read_s();tem=temp[1];tem<<=8;tem|=temp[0];return tem;} void scan_led()//數(shù)據(jù)顯示—數(shù)碼管 { uchar i;for(i=0;i<4;i++){ P0=tabs[display[i]]; P1=tabw[i]; delays(7); if(i==1) dian=0; P1=tabw[i]; delays(2);} } void convert_t(uint tem)//溫度轉(zhuǎn)換{ uchar n=0;if(tem>6348){ tem=65536-tem; n=1;} display[4]=tem&0x0f;display[0]=ditab[display[4]]; display[4]=tem>>4; display[3]=display[4]/100; display[1]=display[4]%100; display[2]=display[1]/10; display[1]=display[1]%10;if(!display[3]){ display[3]=0x0a;} if(!display[2]) display[2]=0x0a;if(n) // 取百位數(shù)據(jù)暫存 // 取后兩位數(shù)據(jù)暫存// 取十位數(shù)據(jù)暫存 { n=0; display[3]=0x0b;} } void main(){ delay(0);delay(0);delay(0);P0=0xff;P1=0xff;for(h=0;h<4;h++)//初始化為零 { display[h]=0;} reset();write_s(0xcc);write_s(0x44);for(h=0;h<100;h++)//顯示0保持 scan_led();while(1){ convert_t(read_1820());//讀出并處理 scan_led();//顯示溫度 } }