




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于單片機(jī)的雞雛孵化室恒溫控制器設(shè)計(jì)摘 要溫度是一個(gè)很重要的基本物理量,在很多領(lǐng)域都要涉及到,例如:冶金工業(yè)、化工生產(chǎn)、造紙行業(yè)、機(jī)械制造、電加熱爐及家用電器等,都需要對(duì)其進(jìn)行測(cè)量和控制,使被控溫度保持在預(yù)先設(shè)定的范圍內(nèi)(即恒溫控制)。在本課題研究的雞雛孵化室恒溫控制器中,要求室溫恒定保持在38之間,且精度要達(dá)到±1,因此這里需考慮加熱控制和散熱裝置。在恒溫控制方面運(yùn)用基于單總線(xiàn)多點(diǎn)循環(huán)技術(shù)進(jìn)行溫度采樣,最終利用繼電器控制加熱裝置實(shí)現(xiàn)加熱控制。另外也可通過(guò)儀器控制面板實(shí)現(xiàn)溫度的設(shè)定與顯示。關(guān)鍵詞:STC89C51 雞雛孵化室 溫度控制目 錄一、緒論5(一)溫度控制系統(tǒng)設(shè)計(jì)的背景、發(fā)展
2、歷史及意義5(二)本設(shè)計(jì)的應(yīng)用及意義5(三)雞雛孵化室恒溫控制系統(tǒng)完成的功能5二、系統(tǒng)框圖6三、方案比較與論證6(一)溫度的采集取樣6(二)溫度的顯示6(三)單片機(jī)的控制6(四)溫度加熱6(五)溫度散熱7四、單元模塊設(shè)計(jì)7(一)溫度檢測(cè)模塊7(二)顯示模塊8(三)報(bào)警模塊8(四)溫度控制模塊8(五)單片機(jī)模塊8五、DS18B20溫度傳感器簡(jiǎn)介9(一)溫度傳感器的歷史及簡(jiǎn)介9(二)DS18B20的工作原理9(三)DS18B20的測(cè)溫原理11六、硬件設(shè)計(jì)12(一)溫度采集電路12(二)顯示電路13(三)時(shí)鐘電路13(四)復(fù)位電路14(五)報(bào)警電路14(六)按鍵電路15(七)總電路15(八)PCB板
3、電路16七、軟件設(shè)計(jì)17(一)主程序流程圖17(二)本設(shè)計(jì)源碼17(三)程序仿真電路25八、結(jié)束語(yǔ)25參考文獻(xiàn)26基于單片機(jī)的雞雛孵化室恒溫控制器設(shè)計(jì)一、緒論(一)溫度控制系統(tǒng)設(shè)計(jì)的背景、發(fā)展歷史及意義隨著社會(huì)的發(fā)展,科技的進(jìn)步,以及測(cè)溫儀器在各個(gè)領(lǐng)域的應(yīng)用,智能化已是現(xiàn)代溫度控制系統(tǒng)發(fā)展的主流方向。特別是近年來(lái),溫度控制系統(tǒng)已應(yīng)用到人們生活的各個(gè)方面,但溫度控制一直是一個(gè)未開(kāi)發(fā)的領(lǐng)域,卻又是與人們息息相關(guān)的一個(gè)實(shí)際問(wèn)題。針對(duì)這種實(shí)際情況,設(shè)計(jì)一個(gè)溫度控制系統(tǒng),具有廣泛的應(yīng)用前景與實(shí)際意義。溫度是科學(xué)技術(shù)中最基本的物理量之一,物理、化學(xué)、生物等學(xué)科都離不開(kāi)溫度。在工業(yè)生產(chǎn)和實(shí)驗(yàn)研究中,像電力、
4、化工、石油、冶金、航空航天、機(jī)械制造、糧食存儲(chǔ)、酒類(lèi)生產(chǎn)等領(lǐng)域內(nèi),溫度常常是表征對(duì)象和過(guò)程狀態(tài)的最重要的參數(shù)之一。比如,發(fā)電廠鍋爐的溫度必須控制在一定的范圍之內(nèi);許多化學(xué)反應(yīng)的工藝過(guò)程必須在適當(dāng)?shù)臏囟认虏拍苷_M(jìn)行;煉油過(guò)程中,原油必須在不同的溫度和壓力條件下進(jìn)行分餾才能得到汽油、柴油、煤油等產(chǎn)品。沒(méi)有合適的溫度環(huán)境,許多電子設(shè)備就不能正常工作,糧倉(cāng)的儲(chǔ)糧就會(huì)變質(zhì)霉?fàn)€,酒類(lèi)的品質(zhì)就沒(méi)有保障。因此,各行各業(yè)對(duì)溫度控制的要求都越來(lái)越高??梢?jiàn),溫度的測(cè)量和控制是非常重要的。單片機(jī)在電子產(chǎn)品中的應(yīng)用已經(jīng)越來(lái)越廣泛,在很多的電子產(chǎn)品中也用到了溫度檢測(cè)和溫度控制。隨著溫度控制器應(yīng)用范圍的日益廣泛和多樣,各
5、種適用于不同場(chǎng)合的智能溫度控制器應(yīng)運(yùn)而生。近年來(lái),人類(lèi)的生產(chǎn)和生活方式發(fā)生了巨大的變化,產(chǎn)生這一變化的重要原因就是計(jì)算機(jī)技術(shù)的飛速發(fā)展。第一臺(tái)計(jì)算機(jī)誕生至今僅僅幾十年的時(shí)間,計(jì)算機(jī)的性能已經(jīng)大大提高,價(jià)格不斷的下降,從而使之可以迅速而廣泛地應(yīng)用于人類(lèi)的生產(chǎn)和生活的各個(gè)領(lǐng)域。然而雞雛孵化室的溫度控制的發(fā)展無(wú)疑得益于計(jì)算機(jī)技術(shù)的發(fā)展。(二)本設(shè)計(jì)的應(yīng)用及意義本設(shè)計(jì)以保質(zhì)、節(jié)能、安全和方便為基準(zhǔn)設(shè)計(jì)了一個(gè)雞雛孵化室恒溫控制器,根據(jù)需要進(jìn)行相應(yīng)的數(shù)據(jù)分析和處理,由此完成對(duì)雞雛孵化室溫度的采樣和控制。通過(guò)本設(shè)計(jì)掌握使用高級(jí)語(yǔ)言對(duì)單片機(jī)編程技術(shù)以及一線(xiàn)總線(xiàn)制在單片機(jī)方面的應(yīng)用及利用繼電器控制加熱裝置,從而
6、控制大功率的加熱設(shè)備,提高實(shí)際工作技能。本設(shè)計(jì)以單片機(jī)為核心的溫度采集與控制系統(tǒng)的研發(fā)與應(yīng)用,在很大程度上提高了生產(chǎn)、生活中對(duì)雞雛孵化室溫度的控制水平。本文的設(shè)計(jì)正是一個(gè)本著學(xué)習(xí)、創(chuàng)新和服務(wù)人類(lèi)的思想的機(jī)器設(shè)計(jì),讓機(jī)器按照自己預(yù)定的想法和目的運(yùn)作。(三)雞雛孵化室恒溫控制系統(tǒng)完成的功能本設(shè)計(jì)是對(duì)雞雛孵化室溫度進(jìn)行實(shí)時(shí)監(jiān)測(cè)與控制,設(shè)計(jì)的溫度控制系統(tǒng)實(shí)現(xiàn)了基本的溫度控制功能:當(dāng)溫度低于設(shè)定下限溫度時(shí),系統(tǒng)自動(dòng)按程序設(shè)計(jì)的順序利用繼電器使加熱裝置對(duì)雞雛孵化室進(jìn)行加溫,使溫度上升。當(dāng)溫度上升到下限溫度以上時(shí),按順序停止加熱裝置加溫;當(dāng)溫度達(dá)到設(shè)定溫度時(shí),系統(tǒng)停止加溫。當(dāng)溫度高于設(shè)定上限溫度時(shí),系統(tǒng)自動(dòng)
7、按程序設(shè)計(jì)的順序利用散熱裝置對(duì)雞雛孵化室進(jìn)行降溫。溫度在上下限溫度之間時(shí),執(zhí)行機(jī)構(gòu)不執(zhí)行。四個(gè)數(shù)碼管即時(shí)顯示溫度,精確到小數(shù)點(diǎn)后一位。二、系統(tǒng)框圖 時(shí)鐘電路 測(cè)溫電路 單 片復(fù)位電路 顯示電路 機(jī) 報(bào)警電路 溫度控制電路三、方案比較與論證(一)溫度的采集取樣方案一:采用熱敏電阻。熱敏電阻是一種隨溫度變化阻值隨之變化的器件。當(dāng)溫度變化時(shí)熱敏電阻的阻值,電阻兩端產(chǎn)生的電壓也隨之變化。通過(guò)比較器設(shè)置的電壓進(jìn)行比較 ,對(duì)電壓的變化來(lái)判斷溫度的變化。從而可以控制加熱的時(shí)間。采用熱敏電阻時(shí),比較電路需要很精確的設(shè)計(jì),且對(duì)電路要求跟高。方案二:采用溫度芯片DS18B20進(jìn)行溫度采集。該溫度芯片不需要接外圍電
8、路,可以直接接至單片機(jī),通過(guò)單片機(jī)直接讀取溫度值。這樣可以省掉部分電路的設(shè)計(jì),同時(shí)電路也變得更簡(jiǎn)潔,控制更好。綜合上述的方案,我們采用方案二。方案二電路比較簡(jiǎn)單合理。(二)溫度的顯示方案一:采用LED顯示。LED點(diǎn)陣可以顯示多種字符以及圖形,可用軟件進(jìn)行調(diào)制,有很強(qiáng)的兼容性以及可操作性。但是對(duì)于本系統(tǒng)來(lái)說(shuō)其成本比較高。方案二:采用數(shù)碼管顯示。數(shù)碼管體積小,又便于單片機(jī)控制。本系統(tǒng)需要顯示1到9,硬件只需通過(guò)控制單片機(jī)來(lái)直接控制數(shù)碼管的顯示。采用數(shù)碼管節(jié)約I/O口,同時(shí)減少成本。綜合上述的方案,我們采用方案二。(三)單片機(jī)的控制方案一:采用普通繼電器控制電熱器加熱。通過(guò)單片機(jī)輸出的PWM脈沖來(lái)控
9、制繼電器的接通和斷開(kāi)。由于電磁繼電器相應(yīng)存在延遲(20MS-25MS左右)相對(duì)于單片機(jī)而言相當(dāng)長(zhǎng)的時(shí)間,而且存在電火花(?。┑炔话踩蛩亍F胀ɡ^電器性能不是很優(yōu)越,反映慢。方案二:采用固態(tài)繼電器控制電熱器加熱。通過(guò)單片機(jī)輸出的PWM脈沖來(lái)控制繼電器的接通和斷開(kāi)。固態(tài)繼電器交流端采用無(wú)觸點(diǎn)接通和斷開(kāi),性能優(yōu)越反映快。方案三:利用MOC3021光電耦合器控制加熱裝置,響應(yīng)及時(shí)。不會(huì)存在安全隱患。綜合上述的方案,我們采用方案二。(四)溫度加熱方案一:采用電烙鐵加熱。電烙鐵價(jià)格較貴,存在一些安全隱患,并且加熱區(qū)域較小。方案二:采用100W燈泡加熱。100W燈泡價(jià)格便宜,使用方便,材料常見(jiàn),便于更換。方
10、案三:采用電熱管加熱。電熱管加熱不夠安全。由于燈泡價(jià)格便宜,且設(shè)計(jì)簡(jiǎn)單,易于采購(gòu),所以采用方案二。(五)溫度散熱方案一:采用制冷空調(diào)散熱降溫??照{(diào)價(jià)格比較昂貴,不易于安裝。散熱速度快,但經(jīng)常啟動(dòng)停止會(huì)致使空調(diào)損壞。方案二:采用電風(fēng)扇散熱降溫。電風(fēng)扇價(jià)格比較便宜,且便于放置和更換。由于空調(diào)價(jià)格昂貴,而電風(fēng)扇價(jià)格便宜,且方便利于普及,所以采用方案二。四、單元模塊設(shè)計(jì)本設(shè)計(jì)主要分為5個(gè)模塊:1、 溫度檢測(cè)模塊2、 顯示模塊3、 報(bào)警模塊4、 溫度控制模塊5、 單片機(jī)模塊(一) 溫度檢測(cè)模塊該模塊是溫度檢測(cè)模塊主要由DS18B20構(gòu)成,主要作用是將實(shí)際溫度通過(guò)DS18B20傳輸給單片機(jī)。用于單片機(jī)判斷
11、與設(shè)定溫度的差值,再去控制繼電器模塊的開(kāi)或閉。DS18B20溫度傳感器是美國(guó)DALLAS半導(dǎo)體公司最新推出的一種改進(jìn)型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測(cè)溫元件相比,它能直接讀出被測(cè)溫。這一部分主要完成對(duì)溫度信號(hào)的采集和轉(zhuǎn)換工作,由DS18B20數(shù)字溫度傳感器及其與單片機(jī)的接口部分組成。數(shù)字溫度傳感器DS18B20把采集到的溫度通過(guò)數(shù)據(jù)引腳DQ腳傳到單片機(jī)的P2.7口,單片機(jī)接受溫度并存儲(chǔ)。此部分只用到DS18B20和單片機(jī),硬件很簡(jiǎn)單。1.DS18B20的性能特點(diǎn)如下:(1)獨(dú)特的單線(xiàn)接口僅需要一個(gè)端口引腳進(jìn)行通信;(2)多個(gè)DS18B20可以并聯(lián)在惟一的三線(xiàn)上,實(shí)現(xiàn)多點(diǎn)組網(wǎng)功能;(3)無(wú)須
12、外部器件;(4)可通過(guò)數(shù)據(jù)線(xiàn)供電,電壓范圍為3.05.5V;(5)零待機(jī)功耗;(6)溫度以4位數(shù)字顯示;(7)用戶(hù)可定義報(bào)警設(shè)置;(8)報(bào)警搜索命令識(shí)別并標(biāo)志超過(guò)程序限定溫度(溫度報(bào)警條件)的器件;(9)負(fù)電壓特性,電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,但不能正常工作。2.DS18B20的內(nèi)部結(jié)構(gòu)DS18B20采用3腳PR35封裝,如圖4-1所示;DS18B20的內(nèi)部結(jié)構(gòu),如圖4-2所示。圖41 DS18B20封裝圖42 DS18B20內(nèi)部結(jié)構(gòu)3.DS18B20工作原理及應(yīng)用DS18B20的溫度檢測(cè)與數(shù)字?jǐn)?shù)據(jù)輸出全集成于一個(gè)芯片之上,從而抗干擾力更強(qiáng)。其一個(gè)工作周期可分為兩個(gè)部分,即溫度檢測(cè)
13、和數(shù)據(jù)處理。在講解其工作流程之前我們有必要了解DS18B20的內(nèi)部存儲(chǔ)器資源。18B20共有三種形態(tài)的存儲(chǔ)器資源,它們分別是:ROM只讀存儲(chǔ)器,用于存放DS18B20編碼,其前8位是單線(xiàn)系列編碼(DS18B20的編碼是19H),后面48位是芯片唯一的序列號(hào),最后8位是以上56位的CRC碼。數(shù)據(jù)在出產(chǎn)時(shí)設(shè)置不由用戶(hù)更改。DS18B20共64位ROM。RAM數(shù)據(jù)暫存器,用于內(nèi)部計(jì)算和數(shù)據(jù)存取,數(shù)據(jù)在掉電后丟失,DS18B20共9個(gè)字節(jié)RAM,每個(gè)字節(jié)為8位。第1、2個(gè)字節(jié)是溫度轉(zhuǎn)換后的數(shù)據(jù)值信息,第3、4個(gè)字節(jié)是用戶(hù)EEPROM(常用于溫度報(bào)警值儲(chǔ)存)的鏡像。在上電復(fù)位時(shí)其值將被刷新。第5個(gè)字節(jié)則
14、是用戶(hù)第3個(gè)EEPROM的鏡像。第6、7、8個(gè)字節(jié)為計(jì)數(shù)寄存器,是為了讓用戶(hù)得到更高的溫度分辨率而設(shè)計(jì)的,同樣也是內(nèi)部溫度轉(zhuǎn)換、計(jì)算的暫存單元。第9個(gè)字節(jié)為前8個(gè)字節(jié)的CRC碼。EEPROM非易失性記憶體,用于存放長(zhǎng)期需要保存的數(shù)據(jù),上下限溫度報(bào)警值和校驗(yàn)數(shù)據(jù),DS18B20共3位EEPROM,并在RAM都存在鏡像,以方便用戶(hù)操作。DS18B20的主要特征:全數(shù)字溫度轉(zhuǎn)換及輸出,先進(jìn)的單總線(xiàn)數(shù)據(jù)通信。最高12位分辨率,精度可達(dá)正負(fù)0.5攝氏度,12位分辨率時(shí)的最大工作周期為750毫秒。可選擇寄生工作方式。檢測(cè)溫度范圍為-55°C+125°C(-67°F+257
15、176;F)內(nèi)置EEPROM,限溫報(bào)警功能。64位光刻ROM,內(nèi)置產(chǎn)品序列號(hào),方便多機(jī)掛接。多樣封裝形式,適應(yīng)不同硬件系統(tǒng)。DS18B20引腳功能:GND電壓地,DQ單數(shù)據(jù)總線(xiàn),VDD電源電壓,NC空引腳。DS18B20C采用3腳PR-35封裝或8腳SOIC封裝。(二)顯示模塊顯示部分采用數(shù)碼管顯示方式。數(shù)碼管用四位一體的共陽(yáng)數(shù)碼管。段選直接有單片機(jī)控制,位選通過(guò)單片機(jī)P1口接上8550進(jìn)行驅(qū)動(dòng)數(shù)碼管。(三)報(bào)警模塊利用蜂鳴器進(jìn)行報(bào)警功能。(四)溫度控制模塊利用繼電器控制加熱裝置和散熱裝置(五)單片機(jī)模塊單片機(jī)STC89C51提供以下標(biāo)準(zhǔn)功能:4k字節(jié)Flash閃速存儲(chǔ)器,128字節(jié)內(nèi)部RAM
16、,32個(gè)I/O口線(xiàn),兩個(gè)16位定時(shí)/計(jì)數(shù)器,5個(gè)中斷源,一個(gè)全雙工串口通信口,內(nèi)置一個(gè)精密比較器,片內(nèi)振蕩器及時(shí)鐘電路,同時(shí),STC89C51可降至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式:低功耗的閑置和掉電模式。空閑方式停止CPU的工作,但允許RAM,定時(shí)/計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內(nèi)容,但振蕩器停止工作并禁止它所有的部件工作直到下一個(gè)硬件復(fù)位。五、DS18B20溫度傳感器簡(jiǎn)介(一)溫度傳感器的歷史及簡(jiǎn)介溫度的測(cè)量是從金屬(物質(zhì))的熱脹冷縮開(kāi)始。水銀溫度計(jì)至今仍是各種溫度測(cè)量的計(jì)量標(biāo)準(zhǔn)??墒撬娜秉c(diǎn)是只能近距離觀測(cè),而且水銀有毒,玻璃管易碎。代
17、替水銀的有酒精溫度計(jì)和金屬簧片溫度計(jì),它們雖然沒(méi)有毒性,但測(cè)量精度很低,只能作為一個(gè)概略指示。不過(guò)在居民住宅中使用已可滿(mǎn)足要求。在工業(yè)生產(chǎn)和實(shí)驗(yàn)研究中為了配合遠(yuǎn)傳儀表指示,出現(xiàn)了許多不同的溫度檢測(cè)方法,常用的有電阻式、熱電偶式、PN結(jié)型、輻射型、光纖式及石英諧振型等。它們都是基于溫度變化引起其物理參數(shù)(如電阻值,熱電勢(shì)等)的變化的原理。隨著大規(guī)模集成電路工藝的提高,出現(xiàn)了多種集成的數(shù)字化溫度傳感器。(二) DS18B20的工作原理1. DS18B20工作時(shí)序根據(jù)DS18B20的通訊協(xié)議,主機(jī)控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過(guò)三個(gè)步驟:(1) 每一次讀寫(xiě)之前都必須要對(duì)DS18B20進(jìn)行復(fù)位;
18、(2) 復(fù)位成功后發(fā)送一條ROM指令;(3) 最后發(fā)送RAM指令,這樣才能對(duì)DS18B20進(jìn)行預(yù)定的操作。復(fù)位要求主CPU將數(shù)據(jù)線(xiàn)下拉500微秒,然后釋放,DS18B20收到信號(hào)后等待1560微秒左右后發(fā)出60240微秒的存在低脈沖,主CPU收到此信號(hào)表示復(fù)位成功。其工作時(shí)序包括初始化時(shí)序、寫(xiě)時(shí)序和讀時(shí)序,具體工作方法如圖5-1,5-2,5-3所示。A.初始化時(shí)序 圖51 初始化時(shí)序總線(xiàn)上的所有傳輸過(guò)程都是以初始化開(kāi)始的,主機(jī)響應(yīng)應(yīng)答脈沖。應(yīng)答脈沖使主機(jī)知道,總線(xiàn)上有從機(jī)設(shè)備,且準(zhǔn)備就緒。主機(jī)輸出低電平,保持低電平時(shí)間至少480us,以產(chǎn)生復(fù)位脈沖。接著主機(jī)釋放總線(xiàn),4.7K上拉電阻將總線(xiàn)拉高
19、,延時(shí)1560us,并進(jìn)入接受模式,以產(chǎn)生低電平應(yīng)答脈沖,若為低電平,再延時(shí)480us。B.寫(xiě)時(shí)序圖52 寫(xiě)時(shí)序?qū)憰r(shí)序包括寫(xiě)0時(shí)序和寫(xiě)1時(shí)序。所有寫(xiě)時(shí)序至少需要60us,且在2次獨(dú)立的寫(xiě)時(shí)序之間至少需要1us的恢復(fù)時(shí)間,都是以總線(xiàn)拉低開(kāi)始。寫(xiě)1時(shí)序,主機(jī)輸出低電平,延時(shí)2us,然后釋放總線(xiàn),延時(shí)60us。寫(xiě)0時(shí)序,主機(jī)輸出低電平,延時(shí)60us,然后釋放總線(xiàn),延時(shí)2us。C.讀時(shí)序圖53 讀時(shí)序總線(xiàn)器件僅在主機(jī)發(fā)出讀時(shí)序是,才向主機(jī)傳輸數(shù)據(jù),所以,在主機(jī)發(fā)出讀數(shù)據(jù)命令后,必須馬上產(chǎn)生讀時(shí)序,以便從機(jī)能夠傳輸數(shù)據(jù)。所有讀時(shí)序至少需要60us,且在2次獨(dú)立的讀時(shí)序之間至少需要1us的恢復(fù)時(shí)間。每個(gè)讀
20、時(shí)序都由主機(jī)發(fā)起,至少拉低總線(xiàn)1us。主機(jī)在讀時(shí)序期間必須釋放總線(xiàn),并且在時(shí)序起始后的15us之內(nèi)采樣總線(xiàn)狀態(tài)。主機(jī)輸出低電平延時(shí)2us,然后主機(jī)轉(zhuǎn)入輸入模式延時(shí)12us,然后讀取總線(xiàn)當(dāng)前電平,然后延時(shí)50us。2. ROM操作命令當(dāng)主機(jī)收到DSl8B20 的響應(yīng)信號(hào)后,便可以發(fā)出ROM 操作命令之一,這些命令如表5-1:ROM操作命令。表51 ROM操作命令指令約定代碼功 能讀ROM33H讀DS18B20 ROM中的編碼符合ROM55H發(fā)出此命令之后,接著發(fā)出64位ROM編碼,訪問(wèn)單線(xiàn)總線(xiàn)上與該編碼相對(duì)應(yīng)的DS18B20 使之作出響應(yīng),為下一步對(duì)該DS18B20的讀寫(xiě)作準(zhǔn)備搜索ROM0F0H
21、用于確定掛接在同一總線(xiàn)上DS18B20的個(gè)數(shù)和識(shí)別64位ROM地址,為操作各器件作好準(zhǔn)備跳過(guò)ROM0CCH忽略64位ROM地址,直接向DS18B20發(fā)溫度變換命令,適用于單片工作。告警搜索命令0ECH執(zhí)行后,只有溫度超過(guò)設(shè)定值上限或者下限的片子才做出響應(yīng)溫度變換44H啟動(dòng)DS18B20進(jìn)行溫度轉(zhuǎn)換,轉(zhuǎn)換時(shí)間最長(zhǎng)為500MS,結(jié)果存入內(nèi)部9字節(jié)RAM中讀暫存器0BEH讀內(nèi)部RAM中9字節(jié)的內(nèi)容寫(xiě)暫存器4EH發(fā)出向內(nèi)部RAM的第3,4字節(jié)寫(xiě)上、下限溫度數(shù)據(jù)命令,緊跟讀命令之后,是傳送兩字節(jié)的數(shù)據(jù)復(fù)制暫存器48H將EEPRAM中第3,4字節(jié)內(nèi)容復(fù)制到E2PRAM中重調(diào)E2PRAM0BBH將EEPRA
22、M中內(nèi)容恢復(fù)到RAM中的第3,4字節(jié)讀供電方式0B4H讀DS18B20的供電模式,寄生供電時(shí)DS18B20發(fā)送“0”,外接電源供電DS18B20發(fā)送“1”(三) DS18B20的測(cè)溫原理1. DS18B20的測(cè)溫原理:每一片DSl8B20在其ROM中都存有其唯一的48位序列號(hào),在出廠前已寫(xiě)入片內(nèi)ROM 中。主機(jī)在進(jìn)入操作程序前必須用讀ROM(33H)命令將該DSl8B20的序列號(hào)讀出。程序可以先跳過(guò)ROM,啟動(dòng)所有DSl8B20進(jìn)行溫度變換,之后通過(guò)匹配ROM,再逐一地讀回每個(gè)DSl8B20的溫度數(shù)據(jù)。DS18B20的測(cè)溫原理如圖5-4所示,圖中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)
23、生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)器1,高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產(chǎn)生的信號(hào)作為減法計(jì)數(shù)器2的脈沖輸入,圖中還隱含著計(jì)數(shù)門(mén),當(dāng)計(jì)數(shù)門(mén)打開(kāi)時(shí),DS18B20就對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖后進(jìn)行計(jì)數(shù),進(jìn)而完成溫度測(cè)量。計(jì)數(shù)門(mén)的開(kāi)啟時(shí)間由高溫度系數(shù)振蕩器來(lái)決定,每次測(cè)量前,首先將-55 所對(duì)應(yīng)的基數(shù)分別置入減法計(jì)數(shù)器1和溫度寄存器中,減法計(jì)數(shù)器1和溫度寄存器被預(yù)置在-55 所對(duì)應(yīng)的一個(gè)基數(shù)值。減法計(jì)數(shù)器1對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)減法計(jì)數(shù)器1的預(yù)置值減到0時(shí)溫度寄存器的值將加1,減法計(jì)數(shù)器1的預(yù)置將重新被裝入,減法計(jì)數(shù)器1重新開(kāi)始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信
24、號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到減法計(jì)數(shù)器2計(jì)數(shù)到0時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即為所測(cè)溫度。圖5-4中的斜率累加器用于補(bǔ)償和修正測(cè)溫過(guò)程中的非線(xiàn)性,其輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)門(mén)仍未關(guān)閉就重復(fù)上述過(guò)程,直至溫度寄存器值達(dá)到被測(cè)溫度值. 另外,由于DS18B20單線(xiàn)通信功能是分時(shí)完成的,他有嚴(yán)格的時(shí)隙概念,因此讀寫(xiě)時(shí)序很重要。系統(tǒng)對(duì)DS18B20的各種操作必須按協(xié)議進(jìn)行。操作協(xié)議為:初始化DS18B20(發(fā)復(fù)位脈沖)發(fā)ROM功能命令發(fā)存儲(chǔ)器操作命令處理數(shù)據(jù)。減法計(jì)數(shù)器斜坡累加器減到0減法計(jì)數(shù)器預(yù) 置低溫度系數(shù)振 蕩 器高溫度系數(shù)振 蕩 器計(jì)數(shù)比較器預(yù) 置溫度寄存器減
25、到0圖54 測(cè)溫原理內(nèi)部裝置2. DS18B20的測(cè)溫流程初始化DS18B20跳過(guò)ROM匹配溫度變換延時(shí)1S跳過(guò)ROM匹配讀暫存器轉(zhuǎn)換成顯示碼數(shù)碼管顯示圖55 DS18B20測(cè)溫流程六、硬件設(shè)計(jì)(一)溫度采集電路 溫度采集電路的核心采用DS18B20,DS18B20采集的溫度直接送至單片機(jī)進(jìn)行處理。(二)顯示電路顯示部分采用數(shù)碼管顯示方式。數(shù)碼管用四位一體的共陽(yáng)數(shù)碼管。段選直接由單片機(jī)控制,位選通過(guò)單片機(jī)P1口接上8850進(jìn)行驅(qū)動(dòng)數(shù)碼管。(三)時(shí)鐘電路晶振為12M,選取合適的電容和晶振,電路圖如下:(四)復(fù)位電路復(fù)位電路中選取10u的電解電容和4.7K的電阻,電路圖如下:(五)報(bào)警電路報(bào)警電路
26、圖如下:如果需要蜂鳴器的蜂鳴效果更好的話(huà),建議將電阻R11的阻值減小。(六)按鍵電路按鍵電路主要是可作為其設(shè)計(jì)輔助功能,例如:設(shè)置風(fēng)扇檔位等?,F(xiàn)將按鍵電路接在單片機(jī)第39腳P00上,電路圖如下:(七)總電路本設(shè)計(jì)溫度采集電路的核心采用DS18B20采集的溫度直接送至單片機(jī)P1.7(8腳)進(jìn)行處理。顯示部分采用數(shù)碼管顯示方式。數(shù)碼管用四位一體的共陽(yáng)數(shù)碼管。段選直接由單片機(jī)P2口控制,位選通過(guò)單片機(jī)P1.0-P1.3(1-4腳)接上8850進(jìn)行驅(qū)動(dòng)數(shù)碼管。P1.4、P1.5(5、6腳)分別控制燈泡、風(fēng)扇電路的通斷。P1.6 (7腳)控制蜂鳴器報(bào)警。以上各I/O口管腳都是低電平有效。時(shí)鐘電路接在單片
27、機(jī)第18、19腳,晶振為12M。復(fù)位電路接在單片機(jī)第9腳。單片機(jī)第31腳(/VP)接高電平VCC,讀取內(nèi)部程序存儲(chǔ)器指令數(shù)據(jù)(程序地址小于4KB)。按鍵電路接在單片機(jī)第39腳,按下按鍵,則給P0.0腳送入低電平。5V直流電源串聯(lián)LED發(fā)光二極管,工作時(shí)LED放光。(八)PCB板電路七、軟件設(shè)計(jì)(一)主程序流程圖完成主程序的一系列功能:雞雛孵化室溫度調(diào)控。對(duì)超過(guò)或低于80度的水溫進(jìn)行加熱或散熱,并于數(shù)碼管顯示。圖7-1所示高于125顯示“+”溫度顯示“E2”是開(kāi)始檢測(cè)室溫顯示“E0”低于-55顯示“E1”顯示“-”溫度低于37高于3937-39加熱并報(bào)警散熱并報(bào)警正常工作,停止加熱散熱報(bào)警否是否
28、是否是否DS18B20不存在?溫度低于0圖7-1(二)本設(shè)計(jì)源碼/文件名:ds18b20.c /功能:實(shí)現(xiàn)溫度顯示 /硬件連接:外部電源供電,且只有1個(gè)DS18B20 /原理:?jiǎn)慰偩€(xiàn)協(xié)議(讀取溫度七步驟,如程序注釋?zhuān)?/注意:此程序晶振為12M,其他晶振需跟據(jù)DS18B20資料修改 / #include <REG51.H> #include <INTRINS.H> / 聲明_nop_() 便于實(shí)現(xiàn)延時(shí) sbit DS18B20=P17; sbit c0=P10;/位控sbit c1=P11;sbit c2=P12;sbit c3=P13;sbit dp=P27; /小數(shù)
29、點(diǎn)sbit ming=P16;/蜂鳴器sbit re=P14 ; /加熱器sbit fang=P15 ; /風(fēng)扇unsigned char code LEDMAP = 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xFF,0x86,0xb9,0xbf /滅 "E" "+" "-" bit DS18B20_FLG = 0; /“1”:DS18B20存在 ;“0”:DS18B20不存在bit TEMP_FLG = 0; /“1”:溫度為負(fù) bit T1S_FLG = 0; /“1”:
30、1秒鐘到 unsigned int t1s; unsigned char LEDBuf6; /定時(shí)中斷 Timer0() interrupt 1 t1s+; if(4000 = t1s) t1s =0; T1S_FLG = 1; void delay(unsigned int i) while(i-); /顯示子函數(shù) display() c0=1; c1=1; c2=1; c3=1; / 關(guān)所有LED P2 = LEDMAPLEDBuf0; c0=0; delay(80); c0=1; c1=1; c2=1; c3=1; / 關(guān)所有LED P2 = LEDMAPLEDBuf1; dp=0; /
31、小數(shù)點(diǎn) c1=0; delay(80); c0=1; c1=1; c2=1; c3=1; / 關(guān)所有LED P2 = LEDMAPLEDBuf2; c2=0; delay(80); c0=1; c1=1; c2=1; c3=1; / 關(guān)所有LED P2 = LEDMAPLEDBuf3; c3=0; delay(80); / /DS18B20驅(qū)動(dòng) /初始化DS18B20步驟: / 1)總線(xiàn)拉低,并延時(shí)480us960us / 2)總線(xiàn)拉高,等待回應(yīng),如DS18B20為“0”則初始化成功, / 如等待60us仍無(wú)回應(yīng),則DS18B20不存在 Init_DS18B20(void) bit x = 0
32、; unsigned char temp = 30; DS18B20 = 1; _nop_(); /無(wú)需精確 _nop_(); DS18B20 = 0; /拉低 delay(80); / 務(wù)必在480us960us之間 DS18B20 = 1; /拉高總線(xiàn) delay(1); /無(wú)需精確 while(temp-) /等待60us以上 x = DS18B20; /如果x=0則初始化成功 if(0 = x) DS18B20_FLG = 1; delay(20); /無(wú)需精確 return(0); /讀DS18B20一個(gè)字節(jié) unsigned char Read_DS18B20(void) unsi
33、gned char i = 0; unsigned char d = 0; for (i=8;i>0;i-) DS18B20 = 0; / 給脈沖信號(hào) d >>= 1; _nop_(); DS18B20 = 1; / 給脈沖信號(hào) _nop_(); / 需延時(shí)10us-14us _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); if(DS18B20 = 1) d = d | 0x80; delay(10); / 需延時(shí)60us以上 delay(10); return(
34、d); /寫(xiě)一個(gè)字節(jié) Write_DS18B20(unsigned char d) unsigned char i=0; for (i=8; i>0; i-) DS18B20 = 1; _nop_(); _nop_(); DS18B20 = 0; _nop_(); / 需延時(shí)15us-60us _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); DS18B20 = d &a
35、mp; 0x01; delay(7); / 需延時(shí)60us-120us d >>= 1; DS18B20 = 1; delay(7); /溫度返回值被放大100倍 unsigned int TurnTemp(unsigned int temp) int t; if(temp > 32768) /當(dāng)讀取的溫度為負(fù)時(shí) t = (temp + 1) * 25 / 4; /t = (temp + 1) * 100 / 16;就容易理解多了,因?yàn)橛?位二進(jìn)制小數(shù)表示位,所以要/16使小數(shù)點(diǎn)右移4位 TEMP_FLG = 1; else /當(dāng)讀取的溫度為正時(shí) t = temp * 25
36、/ 4; /t = temp * 100 / 16;就容易理解多了 TEMP_FLG = 0; return(t); /讀取溫度 int ReadTemp(void) unsigned char tempLowChar = 0; unsigned char tempHighChar = 0; unsigned int tempInt = 0; int temp = 0; DS18B20_FLG = 0; Init_DS18B20(); /步驟1:初始化 if(DS18B20_FLG = 0) /如果沒(méi)有檢測(cè)到DS18B20返回 return(0); Write_DS18B20(0xCC); /
37、步驟2:跳過(guò)讀序號(hào)操作(單個(gè)DS18B20適用) Write_DS18B20(0x44); /步驟3:?jiǎn)?dòng)溫度轉(zhuǎn)換 TL0 = 256 - 250; /利用定時(shí)器實(shí)現(xiàn)1s延時(shí) TH0 = TL0; TR0 = 1; T1S_FLG = 0; while(!T1S_FLG) /步驟4:等待溫度轉(zhuǎn)換完成(必須大于500ms) display(); TR0 = 0; DS18B20_FLG = 0; Init_DS18B20(); /步驟5:初始化 if(DS18B20_FLG = 0) /如果沒(méi)有檢測(cè)到DS18B20返回 return(0); Write_DS18B20(0xCC); /步驟6:跳
38、過(guò)讀序號(hào)操作(單個(gè)DS18B20適用) Write_DS18B20(0xBE); /步驟7:讀取溫度寄存器設(shè)置(共可讀9個(gè)寄存器,前兩個(gè)就是溫度) tempLowChar = Read_DS18B20(); /步驟8:讀取溫度數(shù)據(jù)低8位 tempHighChar = Read_DS18B20(); /步驟8:讀取溫度數(shù)據(jù)高4位 tempInt = tempHighChar; tempInt <<= 8; tempInt = tempInt | tempLowChar; temp = TurnTemp(tempInt); return(temp); /DS18B20驅(qū)動(dòng) / /實(shí)現(xiàn)四
39、位LED溫度顯示,其中最高位LED顯示溫度正負(fù),最低位為溫度的一位小數(shù) main() unsigned int t =0; IE = 0x82; /開(kāi)1中斷 TMOD = 0x02; /定時(shí)工作方式2 while(1) t = ReadTemp();/讀溫度 if(DS18B20_FLG = 0) LEDBuf3 = 10; LEDBuf2 = 10; LEDBuf1 = 11; LEDBuf0 = 0; /顯示“E0” else if(TEMP_FLG) if(t > 5500) LEDBuf3 = 10; LEDBuf2 = 10; LEDBuf1 = 11; LEDBuf0 = 1; /顯示“E1” else LEDBuf3 = 13; /顯示“-” LEDBuf2 = t/1000; /顯示溫度的十位 LEDBuf1 = (t/100)%10; /顯示溫度的個(gè)位
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 人工智能在醫(yī)療健康領(lǐng)域的創(chuàng)新應(yīng)用
- 開(kāi)發(fā)民俗體驗(yàn)的現(xiàn)狀及總體形勢(shì)
- 臨時(shí)起搏器的術(shù)后護(hù)理教學(xué)
- 網(wǎng)點(diǎn)合同解除協(xié)議書(shū)范本
- 2025至2030年中國(guó)頭帶式耳麥行業(yè)投資前景及策略咨詢(xún)報(bào)告
- 肺結(jié)核的相關(guān)試題及答案
- 2025至2030年中國(guó)制冰機(jī)配件行業(yè)投資前景及策略咨詢(xún)報(bào)告
- 2025至2030年中國(guó)企業(yè)辦公系統(tǒng)行業(yè)投資前景及策略咨詢(xún)報(bào)告
- 2025至2030年中國(guó)中頻熔煉爐行業(yè)投資前景及策略咨詢(xún)報(bào)告
- 2025辦公空間裝修合同樣本
- 2023年演出經(jīng)紀(jì)人考試歷年真題附答案(鞏固)
- 媒介與性別文化傳播智慧樹(shù)知到期末考試答案章節(jié)答案2024年浙江工業(yè)大學(xué)
- 工作場(chǎng)所職業(yè)病危害作業(yè)分級(jí)第1部分:生產(chǎn)性粉塵
- 24春國(guó)家開(kāi)放大學(xué)《學(xué)前兒童美術(shù)教育活動(dòng)指導(dǎo)》期末大作業(yè)參考答案
- 醫(yī)療器械質(zhì)量管理總結(jié)
- 頭孢他啶的代謝研究
- 智能輪椅項(xiàng)目融資方案
- 玉米套種紅薯技術(shù)方案
- 2024年江蘇武進(jìn)經(jīng)濟(jì)發(fā)展集團(tuán)招聘筆試參考題庫(kù)含答案解析
- 安全生產(chǎn)監(jiān)測(cè)與預(yù)警
- 部編版小學(xué)一至六年級(jí)詞語(yǔ)表匯總
評(píng)論
0/150
提交評(píng)論