




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、中北大學(xué)大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練項目結(jié)題報告 項目名稱: 基于ds18b20的智能溫度調(diào)節(jié)系統(tǒng) 學(xué)院名稱(蓋章): 儀器與電子學(xué)院 項目負(fù)責(zé)人: 呼延 中北大學(xué)教務(wù)處制摘 要 隨著科技的進(jìn)步,人類物質(zhì)生活的提高,人們對自動化、智能化的要求越來越高,各種自動化設(shè)備應(yīng)運而生,逐漸代替耗時、耗力、效率低的人工操作,溫控系統(tǒng)便是其中一種。在農(nóng)業(yè)、工業(yè)、生活等諸多領(lǐng)域中,人們都需要對各類設(shè)備中的溫度進(jìn)行檢測和控制,比如熱反應(yīng)爐,農(nóng)業(yè)中的蔬菜大棚,大型糧倉.溫度控制是工業(yè)生產(chǎn)過程中經(jīng)常遇到的過程控制,有些工藝過程對其溫度的控制效果直接影響著產(chǎn)品的質(zhì)量和產(chǎn)量,因而設(shè)計一種較為理想的溫度控制系統(tǒng)是非常有價值的。 本
2、項目采用51單片機(jī)來對溫度進(jìn)行控制,不僅具有控制方便、組態(tài)簡單和靈活性大等優(yōu)點,而且可以大幅度提高被控溫度的技術(shù)指標(biāo),從而能夠大大提高產(chǎn)品的質(zhì)量和數(shù)量。使用ds18b20溫度傳感器,由于它具有微型化、低功耗、高性能、抗干攏能力強(qiáng)、易配微處理器等優(yōu)點,可以實現(xiàn)多點溫度檢測,通過檢測環(huán)境溫度,傳送給單片機(jī),單片機(jī)通過分析、比較,發(fā)出相應(yīng)的指令,進(jìn)行報警 并做相關(guān)處理;當(dāng)環(huán)境溫度高于預(yù)設(shè)值時,開啟制冷設(shè)備(風(fēng)扇模擬),同理,環(huán)境溫度低于預(yù)設(shè)值時,開啟制熱設(shè)備(模擬),當(dāng)溫度一段時間仍為達(dá)到理想值,可以加大功率。用串口將采集到的溫度數(shù)據(jù)實時發(fā)送至上位機(jī)(進(jìn)行實時監(jiān)控)。 本項目不僅可以應(yīng)用到實際中提高
3、生產(chǎn)效率,減少損失、增加產(chǎn)量,更重要的是可以拓展我們大學(xué)生的知識領(lǐng)域,增強(qiáng)我們的動手能力,將所學(xué)到的知識運用到實際中,更好的達(dá)到書本知識與實際生活接軌,增強(qiáng)大學(xué)生的個人素質(zhì)!關(guān)鍵詞: 單片機(jī);溫度控制系統(tǒng);ds18b20溫度傳感器 目錄1 引言11.1 溫度控制系統(tǒng)設(shè)計的背景、發(fā)展歷史及意義11.2 溫度控制系統(tǒng)的目的11.3 溫度控制系統(tǒng)完成的功能12 總體設(shè)計方案12.1 方案一12.2 方案二23 ds18b20溫度傳感器簡介63.1 溫度傳感器的歷史及簡介63.2 ds18b20的工作原理63.2.1 ds18b20工作時序63.2.2 rom操作命令83.3 ds18b20的測溫原理
4、83.3.1 ds18b20的測溫原理:83.3.2 ds18b20的測溫流程104 單片機(jī)接口設(shè)計104.1 設(shè)計原則104.2 引腳連接114.2.1 晶振電路114.2.2 串口引腳114.2.3 其它引腳115 系統(tǒng)整體設(shè)計115.1 系統(tǒng)硬件電路設(shè)計115.1.1 主板電路設(shè)計115.1.2 各部分電路115.2 系統(tǒng)軟件設(shè)計145.2.1 系統(tǒng)軟件設(shè)計整體思路145.2.2 系統(tǒng)程序流圖145.3 調(diào)試186 總結(jié)19附錄20參考文獻(xiàn)271 引言1.1 溫度控制系統(tǒng)設(shè)計的背景、發(fā)展歷史及意義 溫度是生產(chǎn)過程和科學(xué)實驗中普遍而且重要的物理參數(shù),隨著社會的發(fā)展,科技的進(jìn)步,以及測溫儀器
5、在各個領(lǐng)域的應(yīng)用,智能化已是現(xiàn)代溫度控制系統(tǒng)發(fā)展的主流方向。特別是近年來,溫度控制系統(tǒng)已應(yīng)用到人們生活的各個方面,但溫度控制一直是一個未開發(fā)的領(lǐng)域,卻又是與人們息息相關(guān)的一個實際問題。針對這種實際情況,設(shè)計一個溫度控制系統(tǒng),具有廣泛的應(yīng)用前景與實際意義。溫度是一個重要的物理量,它反映了物體冷熱的程度,與自然界中的各種物理和化學(xué)過程相聯(lián)系。在工、農(nóng)業(yè)生產(chǎn)和日常生活中,各個環(huán)節(jié)都與溫度緊密相聯(lián),溫度的準(zhǔn)確監(jiān)測及控制占據(jù)著極其重要地位。比如,發(fā)電廠鍋爐的溫度必須控制在一定的范圍之內(nèi);許多化學(xué)反應(yīng)的工藝過程必須在適當(dāng)?shù)臏囟认虏拍苷_M(jìn)行等。沒有合適的溫度環(huán)境,許多電子設(shè)備就不能正常工作,糧倉的儲糧就會
6、變質(zhì)霉?fàn)€,酒類的品質(zhì)就沒有保障??梢姡瑴囟鹊臏y量和控制是非常重要的。隨著電子技術(shù)和微型計算機(jī)的迅速發(fā)展,單片機(jī)在電子產(chǎn)品中的應(yīng)用已經(jīng)越來越廣泛。利用單片機(jī)對溫度進(jìn)行控制的技術(shù)也隨之而生,并日益發(fā)展和完善,且越來越顯示出它的優(yōu)越性。1.2 溫度控制系統(tǒng)的目的本設(shè)計的內(nèi)容是溫度測試控制系統(tǒng),控制對象是溫度。溫度控制在日常生活及工業(yè)領(lǐng)域應(yīng)用相當(dāng)廣泛,比如溫室、水池、發(fā)酵缸、電源等場所的溫度控制。而以往溫度控制是由人工完成的而且不夠重視,其實在很多場所溫度都需要監(jiān)控以防止發(fā)生意外。針對此問題,本系統(tǒng)設(shè)計的目的是實現(xiàn)一種可連續(xù)高精度調(diào)溫的溫度控制系統(tǒng),它應(yīng)用廣泛,功能強(qiáng)大,小巧美觀,便于攜帶,是一款既實
7、用又廉價的控制系統(tǒng)。1.3 溫度控制系統(tǒng)完成的功能本設(shè)計是對溫度進(jìn)行實時監(jiān)測與控制,設(shè)計的溫度控制系統(tǒng)實現(xiàn)了基本的溫度控制功能:通過檢測環(huán)境溫度,傳送給單片機(jī),單片機(jī)通過分析、比較,發(fā)出相應(yīng)的指令,進(jìn)行報警 并做相關(guān)處理;當(dāng)環(huán)境溫度高于預(yù)設(shè)值時,開啟制冷設(shè)備(風(fēng)扇模擬),同理,環(huán)境溫度低于預(yù)設(shè)值時,開啟制熱設(shè)備(模擬),當(dāng)溫度一段時間仍為達(dá)到理想值,可以加大功率。液晶lcd1602即時顯示溫度,精確到小數(shù)點一位。2 總體設(shè)計方案2.1 方案一測溫電路的設(shè)計,可以使用熱敏電阻之類的器件利用其感溫效應(yīng),在將隨被測溫度變化的電壓或電流采集過來,進(jìn)行a/d轉(zhuǎn)換后,就可以用單片機(jī)進(jìn)行數(shù)據(jù)的處理,在顯示電
8、路上,就可以將被測溫度顯示出來,這種設(shè)計需要用到a/d轉(zhuǎn)換電路,感溫電路比較麻煩。2.2 方案二考慮使用溫度傳感器,結(jié)合單片機(jī)電路設(shè)計,采用一只ds18b20溫度傳感器,直接讀取被測溫度值,之后進(jìn)行轉(zhuǎn)換,依次完成設(shè)計要求。比較以上兩種方案,很容易看出,采用方案二,電路比較簡單,軟件設(shè)計容易實現(xiàn),故實際設(shè)計中擬采用方案二。在本系統(tǒng)的電路設(shè)計方框圖如圖1.1所示,它由三部分組成:控制部分主芯片采用單片機(jī)at89s52;顯示部分采用液晶lcd1602實現(xiàn)溫度顯示;溫度采集部分采用ds18b20溫度傳感器。加熱降溫單 片 機(jī)ds18b20led顯示指示燈 圖21 溫度計電路總體設(shè)計方案1. 控制部分單
9、片機(jī)at89s52具有低電壓供電和體積小等特點,四個端口只需要兩個口就能滿足電路系統(tǒng)的設(shè)計需要,很適合便攜手持式產(chǎn)品的設(shè)計使用,系統(tǒng)應(yīng)用三節(jié)電池供電。2. 顯示部分顯示電路采用lcd1602液晶顯示。3. 溫度采集部分ds18b20溫度傳感器是美國dallas半導(dǎo)體公司最新推出的一種改進(jìn)型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫。這一部分主要完成對溫度信號的采集和轉(zhuǎn)換工作,由ds18b20數(shù)字溫度傳感器及其與單片機(jī)的接口部分組成。數(shù)字溫度傳感器ds18b20把采集到的溫度通過數(shù)據(jù)引腳傳到單片機(jī)的p2.0口,單片機(jī)接受溫度并存儲。此部分只用到ds18b20和單片機(jī),硬件
10、很簡單1) ds18b20的性能特點如下9:1) 獨特的單線接口僅需要一個端口引腳進(jìn)行通信;2) 多個ds18b20可以并聯(lián)在惟一的三線上,實現(xiàn)多點組網(wǎng)功能;3) 無須外部器件; 4) 可通過數(shù)據(jù)線供電,電壓范圍為3.05.5v;5) 零待機(jī)功耗;6) 溫度以3位數(shù)字顯示;7) 用戶可定義報警設(shè)置;8) 報警搜索命令識別并標(biāo)志超過程序限定溫度(溫度報警條件)的器件;9) 負(fù)電壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作。 (2) ds18b20的內(nèi)部結(jié)構(gòu)ds18b20采用3腳pr35封裝,如圖1.2所示;ds18b20的內(nèi)部結(jié)構(gòu),如圖3所示。圖22 ds18b20封裝(3)
11、ds18b20內(nèi)部結(jié)構(gòu)主要由四部分組成5:1) 64位光刻rom。開始8位是產(chǎn)品類型的編號,接著是每個器件的惟一的序號,共有48位,最后8位是前56位的crc校驗碼,這也是多個ds18b20可以采用一線進(jìn)行通信的原因10。64位閃速rom的結(jié)構(gòu)如下.表21 rom結(jié)構(gòu)8b檢驗crc48b序列號8b工廠代碼(10h) msb lsb msb lsb msb lsb圖23 ds18b20內(nèi)部結(jié)構(gòu)2) 非揮發(fā)的溫度報警觸發(fā)器th和tl,可通過軟件寫入用戶報警上下限值。3) 高速暫存存儲,可以設(shè)置ds18b20溫度轉(zhuǎn)換的精度。ds18b20溫度傳感器的內(nèi)部存儲器還包括一個高速暫存ram和一個非易失性的
12、可電擦除的e2pram。高速暫存ram的結(jié)構(gòu)為8字節(jié)的存儲器,結(jié)構(gòu)如圖1.3所示。頭2個字節(jié)包含測得的溫度信息,第3和第4字節(jié)th和tl的拷貝,是易失的,每次上電復(fù)位時被刷新。第5個字節(jié),為配置寄存器,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。ds18b20工作時寄存器中的分辨率轉(zhuǎn)換為相應(yīng)精度的溫度數(shù)值。它的內(nèi)部存儲器結(jié)構(gòu)和字節(jié)定義如圖1.3所示。低5位一直為,tm是工作模式位,用于設(shè)置ds18b20在工作模式還是在測試模式。 表22 ds18b20內(nèi)部存儲器結(jié)構(gòu)byte0溫度測量值lsb(50h)byte1溫度測量值msb(50h)e2prombyte2th高溫寄存器ß-à
13、th高溫寄存器byte3tl低溫寄存器ß-àtl 低溫寄存器byte4配位寄存器ß-à配位寄存器byte5預(yù)留(ffh)byte6預(yù)留(0ch)byte7預(yù)留(ioh)byte8循環(huán)冗余碼校驗(crc)2) 非揮發(fā)的溫度報警觸發(fā)器th和tl,可通過軟件寫入用戶報警上下限值。3) 高速暫存存儲,可以設(shè)置ds18b20溫度轉(zhuǎn)換的精度。ds18b20出廠時該位被設(shè)置為0,用戶要去改動,r1和r0決定溫度轉(zhuǎn)換的精度位數(shù),來設(shè)置分辨率,如圖1.4。圖23 ds18b20字節(jié)定義tm r1r0 1 1 1 1 1由表1.1可見,分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時間越
14、長。因此,在實際應(yīng)用中要將分辨率和轉(zhuǎn)換時間權(quán)衡考慮。高速暫存ram的第6、7、8字節(jié)保留未用,表現(xiàn)為全邏輯1。第9字節(jié)讀出前面所有8字節(jié)的crc碼,可用來檢驗數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。當(dāng)ds18b20接收到溫度轉(zhuǎn)換命令后,開始啟動轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲在高速暫存存儲器的第1、2字節(jié)。單片機(jī)可以通過單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時低位在先,高位在后,數(shù)據(jù)格式以0.0625lsb形式表示。當(dāng)符號位s0時,表示測得的溫度值為正值,可以直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)符號位s1時,表示測得的溫度值為負(fù)值,要先將補(bǔ)碼變成原碼,再計算十進(jìn)制數(shù)值。 表1.2是一部分
15、溫度值對應(yīng)的二進(jìn)制溫度數(shù)據(jù)6。表24 ds18b20溫度轉(zhuǎn)換時間表r1r0分辨率/位溫度最大轉(zhuǎn)向時間/ms00993.750110187.510113751112750表25一部分溫度對應(yīng)值表溫度/二進(jìn)制表示十六進(jìn)制表示+1250000 0111 1101 000007d0h+850000 0101 0101 00000550h+25.06250000 0001 1001 00000191h+10.1250000 0000 1010 000100a2h+0.50000 0000 0000 00100008h00000 0000 0000 10000000h-0.51111 1111 1111
16、0000fff8h續(xù)表25-10.1251111 1111 0101 1110ff5eh-25.06251111 1110 0110 1111fe6fh-551111 1100 1001 0000fc90h4) crc的產(chǎn)生 在64 b rom的最高有效字節(jié)中存儲有循環(huán)冗余校驗碼(crc)。主機(jī)根據(jù)rom的前56位來計算crc值,并和存入ds18b20中的crc值做比較,以判斷主機(jī)收到的rom數(shù)據(jù)是否正確。另外,由于ds18b20單線通信功能是分時完成的,它有嚴(yán)格的時隙概念,因此讀寫時序很重要。系統(tǒng)對ds18b20的各種操作按協(xié)議進(jìn)行。操作協(xié)議為:初使化ds18b20(發(fā)復(fù)位脈沖)發(fā)rom功能
17、命令發(fā)存儲器操作命令處理數(shù)3 ds18b20溫度傳感器簡介3.1 溫度傳感器的歷史及簡介溫度的測量是從金屬(物質(zhì))的熱脹冷縮開始。水銀溫度計至今仍是各種溫度測量的計量標(biāo)準(zhǔn)??墒撬娜秉c是只能近距離觀測,而且水銀有毒,玻璃管易碎。代替水銀的有酒精溫度計和金屬簧片溫度計,它們雖然沒有毒性,但測量精度很低,只能作為一個概略指示。不過在居民住宅中使用已可滿足要求。在工業(yè)生產(chǎn)和實驗研究中為了配合遠(yuǎn)傳儀表指示,出現(xiàn)了許多不同的溫度檢測方法,常用的有電阻式、熱電偶式、pn結(jié)型、輻射型、光纖式及石英諧振型等。它們都是基于溫度變化引起其物理參數(shù)(如電阻值,熱電勢等)的變化的原理。隨著大規(guī)模集成電路工藝的提高,出
18、現(xiàn)了多種集成的數(shù)字化溫度傳感器。3.2 ds18b20的工作原理3.2.1 ds18b20工作時序根據(jù)ds18b20的通訊協(xié)議,主機(jī)控制ds18b20完成溫度轉(zhuǎn)換必須經(jīng)過三個步驟:1. 每一次讀寫之前都必須要對ds18b20進(jìn)行復(fù)位;2. 復(fù)位成功后發(fā)送一條rom指令;3. 最后發(fā)送ram指令,這樣才能對ds18b20進(jìn)行預(yù)定的操作。復(fù)位要求主cpu將數(shù)據(jù)線下拉500微秒,然后釋放,ds18b20收到信號后等待1560微秒左右后發(fā)出60240微秒的存在低脈沖,主cpu收到此信號表示復(fù)位成功。其工作時序包括初始化時序、寫時序和讀時序,具體工作方法如圖2.1,2.2,2.3所示。(1) 初始化時序
19、 圖31 初始化時序總線上的所有傳輸過程都是以初始化開始的,主機(jī)響應(yīng)應(yīng)答脈沖。應(yīng)答脈沖使主機(jī)知道,總線上有從機(jī)設(shè)備,且準(zhǔn)備就緒。主機(jī)輸出低電平,保持低電平時間至少480us,以產(chǎn)生復(fù)位脈沖。接著主機(jī)釋放總線,4.7k上拉電阻將總線拉高,延時1560us,并進(jìn)入接受模式,以產(chǎn)生低電平應(yīng)答脈沖,若為低電平,再延時480us12。(2) 寫時序圖32 寫時序 寫時序包括寫0時序和寫1時序。所有寫時序至少需要60us,且在2次獨立的寫時序之間至少需要1us的恢復(fù)時間,都是以總線拉低開始。寫1時序,主機(jī)輸出低電平,延時2us,然后釋放總線,延時60us。寫0時序,主機(jī)輸出低電平,延時60us,然后釋放總
20、線,延時2us8。(3) 讀時序 圖33 讀時序總線器件僅在主機(jī)發(fā)出讀時序是,才向主機(jī)傳輸數(shù)據(jù),所以,在主機(jī)發(fā)出讀數(shù)據(jù)命令后,必須馬上產(chǎn)生讀時序,以便從機(jī)能夠傳輸數(shù)據(jù)。所有讀時序至少需要60us,且在2次獨立的讀時序之間至少需要1us的恢復(fù)時間。每個讀時序都由主機(jī)發(fā)起,至少拉低總線1us。主機(jī)在讀時序期間必須釋放總線,并且在時序起始后的15us之內(nèi)采樣總線狀態(tài)。主機(jī)輸出低電平延時2us,然后主機(jī)轉(zhuǎn)入輸入模式延時12us,然后讀取總線當(dāng)前電平,然后延時50us43.2.2 rom操作命令當(dāng)主機(jī)收到dsl8b20 的響應(yīng)信號后,便可以發(fā)出rom 操作命令之一,這些命令如表2.2:rom操作命令。3
21、.3 ds18b20的測溫原理3.3.1 ds18b20的測溫原理:每一片dsl8b20在其rom中都存有其唯一的48位序列號,在出廠前已寫入片內(nèi)rom 中。主機(jī)在進(jìn)入操作程序前必須用讀rom(33h)命令將該dsl8b20的序列號讀出。程序可以先跳過rom,啟動所有dsl8b20進(jìn)行溫度變換,之后通過匹配rom,再逐一地讀回每個dsl8b20的溫度數(shù)據(jù)。ds18b20的測溫原理如圖2.4所示,圖中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號送給減法計數(shù)器1,高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產(chǎn)生的信號作為減法計數(shù)器2的脈沖輸入,圖中還隱含著計數(shù)門,當(dāng)計數(shù)門
22、打開時,ds18b20就對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖后進(jìn)行計數(shù),進(jìn)而完成溫度測量。計數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將-55 所對應(yīng)的基數(shù)分別置入減法計數(shù)器1和溫度寄存器中,減法計數(shù)器1和溫度寄存器被預(yù)置在-55 所對應(yīng)的一個基數(shù)值。減法計數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行減法計數(shù),當(dāng)減法計數(shù)器1的預(yù)置值減到0時溫度寄存器的值將加1,減法計數(shù)器1的預(yù)置將重新被裝入,減法計數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行計數(shù),如此循環(huán)直到減法計數(shù)器2計數(shù)到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即為所測溫度。圖2.3中的斜率累加器用于補(bǔ)償和修正測溫過
23、程中的非線性,其輸出用于修正減法計數(shù)器的預(yù)置值,只要計數(shù)門仍未關(guān)閉就重復(fù)上述過程,直至溫度寄存器值達(dá)到被測溫度值. 指令約定代碼功 能讀rom33h讀ds18b20 rom中的編碼符合rom55h發(fā)出此命令之后,接著發(fā)出64位rom編碼,訪問單線總線上與該編碼相對應(yīng)的ds18b20 使之作出響應(yīng),為下一步對該ds18b20的讀寫作準(zhǔn)備搜索rom0f0h用于確定掛接在同一總線上ds18b20的個數(shù)和識別64位rom地址,為操作各器件作好準(zhǔn)備跳過rom0cch忽略64位rom地址,直接向ds18b20發(fā)溫度變換命令,適用于單片工作。續(xù)表31告警搜索命 令0ech執(zhí)行后,只有溫度超過設(shè)定值上限或者下
24、限的片子才做出響應(yīng)溫度變換44h啟動ds18b20進(jìn)行溫度轉(zhuǎn)換,轉(zhuǎn)換時間最長為500ms,結(jié)果存入內(nèi)部9字節(jié)ram中讀暫存器0beh讀內(nèi)部ram中9字節(jié)的內(nèi)容寫暫存器4eh發(fā)出向內(nèi)部ram的第3,4字節(jié)寫上、下限溫度數(shù)據(jù)命令,緊跟讀命令之后,是傳送兩字節(jié)的數(shù)據(jù)復(fù)制暫存器48h將e2pram中第3,4字節(jié)內(nèi)容復(fù)制到e2pram中重調(diào)e2pram0bbh將e2pram中內(nèi)容恢復(fù)到ram中的第3,4字節(jié)讀 供 電方 式0b4h讀ds18b20的供電模式,寄生供電時ds18b20發(fā)送“0”,外接電源供電ds18b20發(fā)送“1” 另外,由于ds18b20單線通信功能是分時完成的,他有嚴(yán)格的時隙概念,因此
25、讀寫時序很重要。系統(tǒng)對ds18b20的各種操作必須按協(xié)議進(jìn)行。操作協(xié)議為:初始化ds18b20(發(fā)復(fù)位脈沖)發(fā)rom功能命令發(fā)存儲器操作命令處理數(shù)據(jù)。減法計數(shù)器斜坡累加器減到0減法計數(shù)器預(yù) 置低溫度系數(shù)振 蕩 器高溫度系數(shù)振 蕩 器計數(shù)比較器預(yù) 置溫度寄存器減到0圖34 測溫原理內(nèi)部裝置3.3.2 ds18b20的測溫流程初始化ds18b20跳過rom匹配溫度變換延時1s跳過rom匹配讀暫存器轉(zhuǎn)換成顯示碼數(shù)碼管顯示圖35 ds18b20測溫流程.4 單片機(jī)接口設(shè)計4.1 設(shè)計原則ds18b20可以采用兩種方式供電,一種是采用電源供電方式,此時ds18b20的1腳接地,2腳作為信號線,3腳接電源
26、。另一種是寄生電源供電方式,如圖3.1所示單片機(jī)端口接單線總線,為保證在有效的ds18b20時鐘周期內(nèi)提供足夠的電流,可用一個mosfet管來完成對總線的上拉。本設(shè)計采用電源供電方式, p1.1口接單線總線為保證在有效的ds18b20時鐘周期內(nèi)提供足夠的電流,可用一個mosfet管和89s52的p2.0來完成對總線的上拉。當(dāng)ds18b20處于寫存儲器操作和溫度a/d變換操作時,總線上必須有強(qiáng)的上拉,上拉開啟時間最大為10 s。采用寄生電源供電方式是vdd和gnd端均接地。由于單線制只有一根線,因此發(fā)送接收口必須是三狀態(tài)的。主機(jī)控制ds18b20完成溫度轉(zhuǎn)換必須經(jīng)過3個步驟:l 初始化;l ro
27、m操作指令;l 存儲器操作指令。4.2 引腳連接4.2.1 晶振電路單片機(jī)xial1和xial2分別接30pf的電容,中間再并個12mhz的晶振,形成單片機(jī)的晶振電路。4.2.2 串口引腳 p0口接9個2.2k的排阻然后接到顯示電路上。p2.0溫度傳感器ds18b20如圖3.1所示。18b20單 片 機(jī)p2.0vccgnd 圖41 ds18b20與單片機(jī)的接口電路p1口連接液晶的數(shù)據(jù)傳輸引腳。p2口中p2.5接蜂鳴器電路,其他引腳懸空p3口中p3.4、p3.6接液晶的使能端。4.2.3 其它引腳 ale引腳懸空,復(fù)位引腳接到復(fù)位電路、vcc接電源、vss接地、ea接電源5 系統(tǒng)整體設(shè)計5.1
28、系統(tǒng)硬件電路設(shè)計5.1.1 主板電路設(shè)計單片機(jī)的p2.0接ds18b20的2號引腳,p1口送液晶顯示,p2.1、p2.2控制加熱器和電風(fēng)扇。如附錄2。5.1.2 各部分電路(1) 顯示電路顯示電路采用了液晶lcd1602顯示,節(jié)約了單片機(jī)的輸出端口,便于程序的編寫。圖51 顯示電路圖(2) 單片機(jī)電路圖52 單片機(jī)電路引腳圖 (3) ds18b20溫度傳感器電路圖5-3 溫度傳感器電路引腳圖(4) 晶振控制電路圖5-5 晶振控制電路圖 (5) 復(fù)位電路圖5-6復(fù)位電路圖5.2 系統(tǒng)軟件設(shè)計5.2.1 系統(tǒng)軟件設(shè)計整體思路一個應(yīng)用系統(tǒng)要完成各項功能,首先必須有較完善的硬件作保證。同時還必須得到相
29、應(yīng)設(shè)計合理的軟件的支持,尤其是微機(jī)應(yīng)用高速發(fā)展的今天,許多由硬件完成的工作,都可通過軟件編程而代替。甚至有些必須采用很復(fù)雜的硬件電路才能完成的工作,用軟件編程有時會變得很簡單,如數(shù)字濾波,信號處理等。因此充分利用其內(nèi)部豐富的硬件資源和軟件資源,采用與s51系列單片機(jī)相對應(yīng)的c語言和結(jié)構(gòu)化程序設(shè)計方法進(jìn)行軟件編程。程序設(shè)計語言有三種:機(jī)器語言、匯編語言和高級語言。機(jī)器語言是機(jī)器唯一能“懂”的語言,用匯編語言或高級語言編寫的程序(稱為源程序)最終都必須翻譯成機(jī)器語言的程序(成為目標(biāo)程序),計算機(jī)才能“看懂”,然后逐一執(zhí)行。高級語言是面向問題和計算過程的語言,它可通過于各種不同的計算機(jī),用戶編程時不
30、必仔細(xì)了解所用的計算機(jī)的具體性能與指令系統(tǒng),而且語句的功能強(qiáng),常常一個語句已相當(dāng)于很多條計算機(jī)指令,于是用高級語言編制程序的速度比較快,也便于學(xué)習(xí)和交流,但是本系統(tǒng)卻選用了匯編語言。原因在于,本系統(tǒng)是編制程序工作量不大、規(guī)模較小的單片機(jī)微控制系統(tǒng),使用匯編語言可以不用像高級語言那樣占用較多的存儲空間,適合于存儲容量較小的系統(tǒng)。同時,本系統(tǒng)對位處理要求很高,需要解決大量的邏輯控制問題。mcs51指令系統(tǒng)的指令長度較短,它在存儲空間和執(zhí)行時間方面具有較高的效率,編成的程序占用內(nèi)存單元少,執(zhí)行也非常的快捷,與本系統(tǒng)的應(yīng)用要求很適合。而且mcs51指令系統(tǒng)有豐富的位操作(或稱位處理)指令,可以形成一個
31、相當(dāng)完整的位操作指令子集,這是mcs51指令系統(tǒng)主要的優(yōu)點之一。對于要求反應(yīng)靈敏與控制及時的工控、檢測等實時控制系統(tǒng)以及要求體積小、系統(tǒng)小的許多“電腦化”產(chǎn)品,可以充分體現(xiàn)出匯編語言簡明、整齊、執(zhí)行時間短和易于使用的特點。本裝置的軟件包括主程序、讀出溫度子程序、復(fù)位應(yīng)答子程序、寫入子程序、以及有關(guān)ds18b20的程序(初始化子程序、寫程序和讀程序)5.2.2 系統(tǒng)程序流圖系統(tǒng)程序主要包括主程序,讀出溫度子程序,復(fù)位應(yīng)答子程序,寫入子程序等。1)主程序主程序的主要功能是負(fù)責(zé)溫度的實時顯示、讀出并處理ds18b20的測量的當(dāng)前溫度值,溫度測量每1s進(jìn)行一次。這樣可以在一秒之內(nèi)測量一次被測溫度,其程
32、序流程見圖19所示。通過調(diào)用讀溫度子程序把存入內(nèi)存儲中的整數(shù)部分與小數(shù)部分分開存放在不同的兩個單元中,然后通過調(diào)用顯示子程序顯示出來圖5-7 主程序流程圖ds18b20復(fù)位、應(yīng)答子程序跳過rom匹配命令寫入子程序溫度轉(zhuǎn)換命令寫入子程序顯示子程序(延時)ds18b20復(fù)位、應(yīng)答子程序跳過rom匹配命令寫入子程序讀溫度命令子程序終 止 圖5-8 讀出溫度子程序2)讀出溫度子程序 讀出溫度子程序的主要功能是讀出ram中的9字節(jié),在讀出時需進(jìn)行crc校驗,校驗有錯時不進(jìn)行溫度數(shù)據(jù)的改寫。 ds18b20的各個命令對時序的要求特別嚴(yán)格,所以必須按照所要求的時序才能達(dá)到預(yù)期的目的,同時,要注意讀進(jìn)來的是高
33、位在后低位在前,共有12位數(shù),小數(shù)4位,整數(shù)7位,還有一位符號位。3)復(fù)位、應(yīng)答子程序p2.0口清0開始延時537usp2.0口置1否50us是否有低電平是標(biāo)志位置1p2.0口置1有234us低電平標(biāo)志位置1終止圖5-9復(fù)位、應(yīng)答子程序4)寫入子程序開始進(jìn)位c清0終止r2是否為0p2.0置 0延時46us帶進(jìn)位右移延時12usp2.0清0圖5-10寫入子程序5)系統(tǒng)總的流程圖開 始初始化ds18b20顯示當(dāng)前溫度判斷當(dāng)前溫度值超過設(shè)定溫度上限啟動風(fēng)扇降低溫度紅燈亮設(shè)定溫度上、下限啟動電熱爐升高溫度是否低于設(shè)定溫度下限是白燈亮否圖5-11系統(tǒng)總的流程圖5.3 調(diào)試主程序的功能是:啟動ds18b2
34、0測量溫度,將測量值與給定值進(jìn)行比較,若測得溫度小于設(shè)定值,則進(jìn)入加熱階段,這期間繼續(xù)對溫度進(jìn)行監(jiān)測,直到溫度在設(shè)定范圍內(nèi),等待下一次的啟動命令。當(dāng)測得溫度大于設(shè)定值,則進(jìn)入降溫階段,這期間繼續(xù)對溫度進(jìn)行監(jiān)測,直到溫度在設(shè)定范圍內(nèi),關(guān)閉風(fēng)扇,等待下一次的啟動命令。參數(shù)測試:6 總結(jié)本設(shè)計使用的溫度控制器結(jié)構(gòu)簡單、測溫準(zhǔn)確,具有一定的實際應(yīng)用價值。該智能溫度控制器只是ds18b20在溫度控制領(lǐng)域的一個簡單實例,還有許多需要完善的地方,例如可以將測得的溫度通過單片機(jī)與通訊模塊相連接,以手機(jī)短消息的方式發(fā)送給用戶,使用戶能夠隨時對溫度進(jìn)行監(jiān)控。此外,還能廣泛地應(yīng)用于其他一些工業(yè)生產(chǎn)領(lǐng)域,如建筑,倉儲
35、等行業(yè)。本溫度控制系統(tǒng)可以應(yīng)用于多種場合,像的溫度、育嬰房的溫度、水溫的控制。用戶可靈活選擇本設(shè)計的用途,有很強(qiáng)的實用價值。附錄程序源代碼:#include <reg52.h>#include <stdio.h>#define uchar unsigned char#define uint unsigned intsbit ds=p22; /溫度傳感器信號線sbit beep=p21; /蜂鳴器sbit lcden=p36;sbit lcdrs=p34;uint temp=0;float f_temp=0.0;uint warn_l1=180;uint warn_l2=
36、170;uint warn_h1=270;uint warn_h2=260;sbit led0=p03;sbit led1=p07;/*延時函數(shù)*/void delay(uint z)uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);/*18b20初始化*/void dsreset(void) uint i; ds=0; i=103; while(i>0)i-; ds=1; i=4; while(i>0)i-;/*讀一位函數(shù)*/bit tempreadbit(void) uint i; bit dat; ds=0;i+; /i+ 起延時
37、作用 ds=1;i+;i+; dat=ds; i=8;while(i>0)i-; return (dat);/*讀一個字節(jié)函數(shù)*/uchar tempread(void) uchar i,j,dat; dat=0; for(i=1;i<=8;i+) j=tempreadbit(); dat=(j<<7)|(dat>>1); /讀出的數(shù)據(jù)最低位在最前面,這樣剛好一個字節(jié)在dat里 return(dat);/*向18b20寫一個字節(jié)數(shù)據(jù)*/void tempwritebyte(uchar dat) uint i; uchar j; bit testb; for(
38、j=1;j<=8;j+) testb=dat&0x01; dat=dat>>1; if(testb) /寫 1 ds=0; i+;i+; ds=1; i=8;while(i>0)i-; else ds=0; /寫 0 i=8;while(i>0)i-; ds=1; i+;i+; /*獲取轉(zhuǎn)換溫度函數(shù)*/void tempchange(void) /ds18b20 開始獲取溫度并轉(zhuǎn)換 dsreset(); delay(1); tempwritebyte(0xcc); / 寫跳過讀rom指令 tempwritebyte(0x44); / 寫溫度轉(zhuǎn)換指令/*讀取
39、溫度函數(shù)*/uint get_temp() /讀取寄存器中存儲的溫度數(shù)據(jù) uchar a,b; dsreset(); delay(1); tempwritebyte(0xcc); tempwritebyte(0xbe); a=tempread(); /讀低8位 b=tempread(); /讀高8位 temp=b; temp<<=8; /兩個字節(jié)組合為1個字 temp=temp|a; f_temp=temp*0.0625; /溫度在寄存器中為12位 分辨率位0.0625° temp=f_temp*10+0.5; /乘以10表示小數(shù)點后面只取1位,加0.5是四舍五入 f_t
40、emp=f_temp+0.05; return temp; /temp是整型/*液晶顯示函數(shù)*/void write_com(uchar com)lcdrs=0; /寫液晶命令函數(shù)p1=com;delay(5);lcden=1;delay(5);lcden=0;void write_data(uchar date)lcdrs=1; /寫液晶數(shù)據(jù)函數(shù)p1=date;delay(5);lcden=1;delay(5);lcden=0;void init_lcd() /初始化函數(shù)/dula=0;/wela=0;lcden=0;write_com(0x38);/設(shè)置16x2顯示,5x7點陣,8位數(shù)據(jù)接
41、口write_com(0x0c);/設(shè)置開顯示,不顯示光標(biāo)write_com(0x06);/寫一個字符后地址指針加1write_com(0x01);/顯示清零,數(shù)據(jù)指針清零/*顯示溫度函數(shù)*/void display(uint t) uint i; / init_lcd();/初始化液晶 write_com(0x80+5); i=t/100; write_data(0x30+i); / delay(1); write_com(0x80+6); i=t%100/10; write_data(0x30+i); / delay(1); write_com(0x80+7); write_data(
42、39;.'); / delay(1); i=t%100%10; write_com(0x80+8); write_data(0x30+i); / delay(5);void display_2(uint j,uint t) uint i; write_com(0x80+0x40+j); i=t/100; write_data(0x30+i); write_com(0x80+0x40+j+1); i=t%100/10; write_data(0x30+i); write_com(0x80+0x40+j+2); write_data('.'); i=t%100%10; write_com(0x80+0x40+j+3); write_data(0x30+i);/*蜂鳴器報警函數(shù)*/*溫度處理函數(shù)*/void deal(uint t) if(t>warn_h2) beep=0; led1=led1; else if(t<warn_l1) beep=0;led0=led0; else beep=1;led0=led1=1; /*串口發(fā)送數(shù)據(jù)*/void i
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 如何降低生產(chǎn)成本的策略計劃
- 產(chǎn)品生命周期管理與生產(chǎn)計劃
- 2024年12月湖南省文學(xué)藝術(shù)界聯(lián)合會直屬事業(yè)單位湖南省文聯(lián)網(wǎng)絡(luò)文藝發(fā)展中心高層次人才筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解-1
- 鋁合金隔斷墻施工方案
- 鋼結(jié)構(gòu)采光板屋面施工方案
- 2025年幼兒園標(biāo)準(zhǔn)教案《媽媽的愛》
- 2025年幼兒園中班美術(shù)《神奇的手》標(biāo)準(zhǔn)教案
- 徐州幼兒師范高等??茖W(xué)?!稛o人駕駛航空器導(dǎo)航與飛行控制系統(tǒng)》2023-2024學(xué)年第二學(xué)期期末試卷
- 同濟(jì)大學(xué)《文藝演出策劃與組織》2023-2024學(xué)年第二學(xué)期期末試卷
- 吉首大學(xué)張家界學(xué)院《貨物學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 腫瘤科疼痛一病一品
- 2024-2030年中國礦用錨桿行業(yè)發(fā)展現(xiàn)狀需求分析報告
- 2024年1月浙江省高考英語真題試卷含答案
- 人民醫(yī)院樣本外送檢測管理制度
- DG-TJ 08-2451-2024 電動自行車集中充電和停放場所設(shè)計標(biāo)準(zhǔn)
- DB3301-T 65.28-2024 反恐怖防范系統(tǒng)管理規(guī)范 第28部分:硬質(zhì)隔離設(shè)施
- 11BS4排水工程華北標(biāo)圖集
- 電子備課教案(一二年級體育)
- 湖北省武漢市漢陽區(qū)2023-2024學(xué)年七年級下學(xué)期期末數(shù)學(xué)試題
- DL-T5394-2021電力工程地下金屬構(gòu)筑物防腐技術(shù)導(dǎo)則
- 2024年心理咨詢師考試題庫附參考答案(綜合題)
評論
0/150
提交評論