




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
PAGE畢業(yè)設(shè)計(jì)()基于單片機(jī)的游泳池保溫控制器的設(shè)計(jì) 系別:自動(dòng)化系專業(yè)名稱:自動(dòng)化學(xué)生姓名:學(xué)號(hào):指導(dǎo)教師姓名、職稱:完成日期電子科技大學(xué)中山學(xué)院畢業(yè)設(shè)計(jì)(論文)任務(wù)書系別:自動(dòng)化工程系專業(yè):自動(dòng)化發(fā)任務(wù)書日期:10月17日
畢業(yè)設(shè)計(jì)(論文)任務(wù)書1.本畢業(yè)設(shè)計(jì)(論文)課題應(yīng)達(dá)到的目的:培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí)和技能,分析解決實(shí)際問題的能力,完成用KeilC51工具軟件對單片機(jī)進(jìn)行編程和開發(fā)的基本訓(xùn)練,并使學(xué)生了解單片機(jī)開發(fā)研究的方法和步驟。2.本畢業(yè)設(shè)計(jì)(論文)課題任務(wù)的內(nèi)容和要求(包括原始數(shù)據(jù)、技術(shù)要求、工作要求等):本畢業(yè)設(shè)計(jì)主要以Protel99和KeilC51為軟件開發(fā)平臺(tái),運(yùn)用模電、數(shù)電以及單片機(jī)的基本理論,針對游泳池的溫度控制的不同要求,利用各種不同的溫度控制方法,利用單片機(jī)對游泳池進(jìn)行保溫控制,具體如下:1).對國內(nèi)外有關(guān)游泳池溫度控制方法和實(shí)例的文獻(xiàn)進(jìn)行調(diào)研;2).在文獻(xiàn)查閱、消化的基礎(chǔ)上對游泳池溫度控制進(jìn)行綜述;3).運(yùn)用Protel99設(shè)計(jì)出游泳池保溫控制電路的原理圖;4).掌握用匯編語言或C語言實(shí)現(xiàn)單片機(jī)的編程;5).學(xué)習(xí)并熟悉使用KeilC51開發(fā)工具進(jìn)行單片機(jī)的編程和開發(fā);5).完善、撰寫論文。
畢業(yè)設(shè)計(jì)(論文)任務(wù)書3.對本畢業(yè)設(shè)計(jì)(論文)課題成果的要求〔包括畢業(yè)設(shè)計(jì)、論文、圖表、實(shí)物樣品等〕:1.具備游泳池保溫控制器功能的電路實(shí)物。2.電路原理圖及單片機(jī)控制的程序。3.關(guān)于用單片機(jī)實(shí)現(xiàn)對游泳池保溫設(shè)計(jì)的論文。4.畢業(yè)答辯的PPT。4.主要參考文獻(xiàn):[1].李朝青,單片機(jī)原理及接口技術(shù)(簡明修訂版)[M].北京:北京航空航天大學(xué)出版社,1998[2].李廣弟.單片機(jī)基礎(chǔ)[M].北京:北京航空航天大學(xué)出版社,1994[3].金偉正.單線數(shù)字溫度傳感器的原理與應(yīng)用[J].電子技術(shù)與應(yīng)用,2000[4].李鋼.1-Wire總線數(shù)字溫度傳感器DS18B20原理及應(yīng)用.現(xiàn)代電子技術(shù)[J],2005[5].StevenF.Barrett,DanielJ.Pack.EmbeddedSystem[M].北京:電子工業(yè)出版社,2006[6].陳躍東.DS18B20集成溫度傳感器原理與應(yīng)用[J].安徽機(jī)電學(xué)院學(xué)報(bào),2002[7].閻石.數(shù)字電子技術(shù)基礎(chǔ)(第三版)[M].北京:高等教育出版社,1989
畢業(yè)設(shè)計(jì)(論文)任務(wù)書5.本畢業(yè)設(shè)計(jì)(論文)課題工作進(jìn)度計(jì)劃:起迄日期工作內(nèi)容2008年11月1日~1月1日完成開題報(bào)告,復(fù)習(xí)單片機(jī)基礎(chǔ)知識(shí),了解設(shè)計(jì)系統(tǒng)的功能,確定設(shè)計(jì)目標(biāo),查找相關(guān)資料及文獻(xiàn)2009年1月2日~4月25日繪制設(shè)計(jì)相關(guān)電路原理圖,焊電路板,編寫及調(diào)試程序,實(shí)現(xiàn)設(shè)計(jì)的基本功能2009年4月26日~5月1日撰寫論文、修改論文2009年5月2日~5月17日做答辯用PPT,準(zhǔn)備論文答辯指導(dǎo)教師審查意見:指導(dǎo)教師(簽名):年月日PAGEPAGEIII基于單片機(jī)的游泳池保溫控制器的設(shè)計(jì)摘要隨著人民生活的進(jìn)步,恒溫游泳池走進(jìn)了我們的生活,而游泳池的保溫控制器,它能自動(dòng)控制游泳池的水溫。從而大大的方便了人們對游泳池水溫恒溫的需求。本文對該測控儀系統(tǒng)進(jìn)行了分析設(shè)計(jì)。首先,本文針對系統(tǒng)所使用的AT89C2051單片機(jī)的性能和發(fā)展情況做了簡單介紹;對系統(tǒng)使用的AT89C2051做了性能方面的簡單說明;同時(shí)對測量溫度的精確度做了介紹。
其次,本文重點(diǎn)對硬件、軟件的組成進(jìn)行了分項(xiàng)、模塊化逐步分析設(shè)計(jì)。根據(jù)硬件的設(shè)計(jì)和測控儀所要實(shí)現(xiàn)的功能,本文對軟件也進(jìn)行了一一設(shè)計(jì),并經(jīng)過反復(fù)的模擬運(yùn)行、調(diào)試,修改簡化了軟件系統(tǒng),最后形成了一套完整的程序系統(tǒng)。但系統(tǒng)有如下缺點(diǎn):1.較小的硬件開銷需要相對復(fù)雜的軟件進(jìn)行補(bǔ)償。2.超時(shí)時(shí)需要解決微處理器的總線驅(qū)動(dòng)問題,這一點(diǎn)在進(jìn)行多點(diǎn)測溫系統(tǒng)設(shè)計(jì)時(shí)要加以注意。3.進(jìn)行長距離測溫系統(tǒng)設(shè)計(jì)時(shí)要充分考慮總線分布電容和阻抗匹配問題。關(guān)鍵詞:AT89C2051;游泳池;溫度控制SwimmingpoolwithHeatpreservationachievebysingle-chipcontrollerAbstractWiththeprogressinthelivesofthepeople,aswimmingpoolintoourlives,andtheswimmingpooltemperaturecontrolregulator.Itcanautomaticallyadjustthepoolwatertemperature.Thusgreatlyfacilitatethepeopletothepoolwatertemperaturethermostatdemand.Inthispaper,theMonitorsystemfortheanalysisanddesign.First,thistextaimedatasinglesliceoftheAT89C52thatthesystemusethefunctionandthedevelopmentcircumstanceofthemachinetodosimpleintroduction;DidthesimpleelucidationofthefunctiontotheAT89C52ofthesystemusage;Didintroductiontotheaccuracythatmeasurestemperatureinthemeantime.Secondly,thistextpointconstitutedhardware,softwaretocarryonanitem,themoldpiecetoturnagraduallyanalyticaldesign.modifytosimplifythesoftwaresystem,becameasetofproceduresystemofintegrityfinally.Butthesystemisliketodescendweakness:1.Thesmallerhardwareexpenseneedsoppositeandcomplicatedsoftwaretocarryonrepair2.Superneedtoresolvethetotallineofthemicroprocessortodriveaproblemalways,thiswhilecarryingonorderingtomeasuresystemdesignmuchtotakeintonotice.3.Toconsidertotallinetodistributecapacityandresistancetomatchaproblemwellwhencarryonthelongpullmeasuredsystemdesign.KeyWords:AT89C2051;swimmingpool;temperaturecontroller目錄1緒論 11.1溫度控制系統(tǒng)設(shè)計(jì)的背景、發(fā)展歷史及意義 11.2本設(shè)計(jì)的應(yīng)用及意義 11.3游泳池保溫控制系統(tǒng)完成的功能 22系統(tǒng)總體方案 32.1方案一:用熱敏電阻采集溫度數(shù)據(jù) 32.2方案二:采用DS18B20采集溫度數(shù)據(jù) 33DS18B20溫度傳感器簡介 83.1溫度傳感器的歷史及簡介 83.2DS18B20的工作原理 83.2.1DS18B20工作時(shí)序 83.2.2ROM操作命令 103.3DS18B20的測溫原理 103.3.1DS18B20的測溫原理: 103.3.2DS18B20的測溫流程 124單片機(jī)接口設(shè)計(jì) 134.1設(shè)計(jì)原則 134.2引腳連接 134.2.1晶振電路 134.2.2串口引腳 134.2.3其它引腳 145系統(tǒng)整體設(shè)計(jì) 155.1系統(tǒng)硬件電路設(shè)計(jì) 155.1.1主板電路設(shè)計(jì) 155.1.2各部分電路 155.2系統(tǒng)軟件設(shè)計(jì) 185.2.1系統(tǒng)軟件設(shè)計(jì)整體思路 185.2.2系統(tǒng)程序流圖 195.3調(diào)試 246結(jié)束語 25附錄 26附錄1主板電路圖 26附錄2程序代碼 27參考文獻(xiàn) 37致謝 38PAGE391緒論1.1溫度控制系統(tǒng)設(shè)計(jì)的背景、發(fā)展歷史及意義隨著社會(huì)的發(fā)展,科技的進(jìn)步,以及測溫儀器在各個(gè)領(lǐng)域的應(yīng)用,智能化已是現(xiàn)代溫度控制系統(tǒng)發(fā)展的主流方向。特別是近年來,溫度控制系統(tǒng)已應(yīng)用到人們生活的各個(gè)方面,但溫度控制一直是一個(gè)未開發(fā)的領(lǐng)域,卻又是與人們息息相關(guān)的一個(gè)實(shí)際問題。針對這種實(shí)際情況,設(shè)計(jì)一個(gè)溫度控制系統(tǒng),具有廣泛的應(yīng)用前景與實(shí)際意義。溫度是科學(xué)技術(shù)中最基本的物理量之一,物理、化學(xué)、生物等學(xué)科都離不開溫度。在工業(yè)生產(chǎn)和實(shí)驗(yàn)研究中,像電力、化工、石油、冶金、航空航天、機(jī)械制造、糧食存儲(chǔ)、酒類生產(chǎn)等領(lǐng)域內(nèi),溫度常常是表征對象和過程狀態(tài)的最重要的參數(shù)之一。比如,發(fā)電廠鍋爐的溫度必須控制在一定的范圍之內(nèi);許多化學(xué)反應(yīng)的工藝過程必須在適當(dāng)?shù)臏囟认虏拍苷_M(jìn)行;煉油過程中,原油必須在不同的溫度和壓力條件下進(jìn)行分餾才能得到汽油、柴油、煤油等產(chǎn)品。沒有合適的溫度環(huán)境,許多電子設(shè)備就不能正常工作,糧倉的儲(chǔ)糧就會(huì)變質(zhì)霉?fàn)€,酒類的品質(zhì)就沒有保障。因此,各行各業(yè)對溫度控制的要求都越來越高??梢?,溫度的測量和控制是非常重要的。單片機(jī)在電子產(chǎn)品中的應(yīng)用已經(jīng)越來越廣泛,在很多的電子產(chǎn)品中也用到了溫度檢測和溫度控制。隨著溫度控制器應(yīng)用范圍的日益廣泛和多樣,各種適用于不同場合的智能溫度控制器應(yīng)運(yùn)而生。近年來,人類的生產(chǎn)和生活方式發(fā)生了巨大的變化,產(chǎn)生這一變化的重要原因就是計(jì)算機(jī)技術(shù)的飛速發(fā)展。第一臺(tái)計(jì)算機(jī)誕生至今僅僅幾十年的時(shí)間,計(jì)算機(jī)的性能已經(jīng)大大提高,價(jià)格不斷的下降,從而使之可以迅速而廣泛地應(yīng)用于人類的生產(chǎn)和生活的各個(gè)領(lǐng)域。然而游泳池的溫度控制的發(fā)展無疑得益于計(jì)算機(jī)技術(shù)的發(fā)展。1.2本設(shè)計(jì)的應(yīng)用及意義本設(shè)計(jì)以保質(zhì)、節(jié)能、安全和方便為基準(zhǔn)設(shè)計(jì)了一個(gè)游泳池保溫控制器,根據(jù)需要進(jìn)行相應(yīng)的數(shù)據(jù)分析和處理,由此完成對游泳池水溫的采樣和控制。通過本設(shè)計(jì)掌握使用高級(jí)語言對單片機(jī)編程技術(shù)以及一線總線制在單片機(jī)方面的應(yīng)用及用單片機(jī)進(jìn)行對繼電器的控制,從而控制大功率的加熱設(shè)備,提高實(shí)際工作技能。本設(shè)計(jì)以單片機(jī)為核心的溫度采集與控制系統(tǒng)的研發(fā)與應(yīng)用,在很大程度上提高了生產(chǎn)、生活中對游泳池溫度的控制水平。本文的設(shè)計(jì)正是一個(gè)本著學(xué)習(xí)、創(chuàng)新和服務(wù)人類的思想的機(jī)器人設(shè)計(jì)。讓機(jī)器按照自己預(yù)定的想法和目的運(yùn)作,一直是我人生的追求和夢想。我選擇自動(dòng)化專業(yè),正是要加入自動(dòng)化這個(gè)大家庭,吸收文化不斷提高自己,不斷的走近自己的夢想。1.3游泳池保溫控制系統(tǒng)完成的功能本設(shè)計(jì)是對游泳池溫度進(jìn)行實(shí)時(shí)監(jiān)測與控制,設(shè)計(jì)的溫度控制系統(tǒng)實(shí)現(xiàn)了基本的溫度控制功能:當(dāng)溫度低于設(shè)定下限溫度時(shí),系統(tǒng)自動(dòng)按程序設(shè)計(jì)的順序啟動(dòng)繼電器使熱水器對游泳池水進(jìn)行加溫,使溫度上升,同時(shí)指示加溫的紅燈亮起。當(dāng)溫度上升到下限溫度以上時(shí),按順序停止熱水器加溫;當(dāng)溫度達(dá)到設(shè)定溫度時(shí),系統(tǒng)停止加溫,同時(shí)紅等熄滅。溫度在上下限溫度之間時(shí),執(zhí)行機(jī)構(gòu)不執(zhí)行。兩個(gè)數(shù)碼管即時(shí)顯示溫度,精確到整數(shù)位。2系統(tǒng)總體方案本章圍繞系統(tǒng)的總體設(shè)計(jì),介紹系統(tǒng)組成框圖、主控芯片單片機(jī)的內(nèi)部硬件資源及其接口技術(shù)、游泳池保溫系統(tǒng)所用到的其它IC和其他重要元件的介紹。2.1方案一:用熱敏電阻采集溫度數(shù)據(jù)測溫電路的設(shè)計(jì),可以使用熱敏電阻之類的器件利用其感溫效應(yīng),在將隨被測溫度變化的電壓或電流采集過來,進(jìn)行A/D轉(zhuǎn)換后,就可以用單片機(jī)進(jìn)行數(shù)據(jù)的處理,在顯示電路上,就可以將被測溫度顯示出來,這種設(shè)計(jì)需要用到A/D轉(zhuǎn)換電路,感溫電路比較麻煩。雖然這種用熱敏電阻為主要測溫元件的測溫電路可滿足40攝氏度至90攝氏度測量范圍,但熱敏電阻精度、重復(fù)性、可靠性較差,對于檢測1攝氏度的信號(hào)是不適用的。而且使用熱敏電阻,需要用到十分復(fù)雜的算法,一定程度上增加了軟件實(shí)現(xiàn)的難度。所以本設(shè)計(jì)不使用該方案。2.2方案二:采用DS18B20采集溫度數(shù)據(jù)考慮使用溫度傳感器,結(jié)合單片機(jī)電路設(shè)計(jì),采用一只DS18B20溫度傳感器,直接讀取被測溫度值,并把溫度信號(hào)轉(zhuǎn)換成數(shù)字量,通過單片機(jī)AT89C2051讀取處理送入七段數(shù)碼管顯示,AT89C2051單片機(jī)根據(jù)采集的溫度數(shù)據(jù),按程序要求控制繼電器的關(guān)閉和開啟,使熱水器啟動(dòng)實(shí)現(xiàn)對游泳次進(jìn)行保溫的效果。使用DS18B20測溫,測溫電路簡單,測溫精度高,但DS18B20初始化程序比較復(fù)雜,可以說是以復(fù)雜的程序換來簡單的電路。比較上述兩種方案,方案2改善了方案1的不足及缺點(diǎn),并具有控制簡單、控制溫度精度高的特點(diǎn)所以我們采用方案二,單總線DS18B20,硬件簡單,精度高,設(shè)計(jì)中容易實(shí)現(xiàn)。在本系統(tǒng)的電路設(shè)計(jì)方框圖如圖2-1所示,它由三部分組成:A控制部分主芯片采用單片機(jī)AT89C2051;B顯示部分采用兩位共陽七段數(shù)碼管以動(dòng)態(tài)掃描方式實(shí)現(xiàn)溫度顯示;C單片機(jī)單片機(jī)DS18B20七段數(shù)碼管顯示溫度指示燈加熱繼電器圖2-1溫度計(jì)電路總體設(shè)計(jì)方案2.2.1控制部分單片機(jī)AT89C2051提供以下標(biāo)準(zhǔn)功能:2k字節(jié)Flash閃速存儲(chǔ)器,128字節(jié)內(nèi)部RAM,15個(gè)I/O口線,兩個(gè)16位定時(shí)/計(jì)數(shù)器,一個(gè)5向兩級(jí)中斷結(jié)構(gòu),一個(gè)全雙工串口通信口,內(nèi)置一個(gè)精密比較器,片內(nèi)振蕩器及時(shí)鐘電路,同時(shí),AT89C2051可降至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止CPU的工作,但允許RAM,定時(shí)/計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內(nèi)容,但震蕩器停止工作并禁止它所有的部件工作直到下一個(gè)硬件復(fù)位。2.2.2顯示部分顯示電路采用兩位位共陽七段數(shù)碼管,從P1口送數(shù),P3口掃描。2.2.3溫度采集部分DS18B20溫度傳感器是美國DALLAS半導(dǎo)體公司最新推出的一種改進(jìn)型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫。這一部分主要完成對溫度信號(hào)的采集和轉(zhuǎn)換工作,由DS18B20數(shù)字溫度傳感器及其與單片機(jī)的接口部分組成。數(shù)字溫度傳感器DS18B20把采集到的溫度通過數(shù)據(jù)引腳DQ腳傳到單片機(jī)的P3.7口,單片機(jī)接受溫度并存儲(chǔ)。此部分只用到DS18B20和單片機(jī),硬件很簡單。A.DS18B20的性能特點(diǎn)如下[3]: a.獨(dú)特的單線接口僅需要一個(gè)端口引腳進(jìn)行通信;b.多個(gè)DS18B20可以并聯(lián)在惟一的三線上,實(shí)現(xiàn)多點(diǎn)組網(wǎng)功能;c.無須外部器件;d.可通過數(shù)據(jù)線供電,電壓范圍為3.0~5.5V;e.零待機(jī)功耗;f.溫度以3位數(shù)字顯示;g.用戶可定義報(bào)警設(shè)置;h.報(bào)警搜索命令識(shí)別并標(biāo)志超過程序限定溫度(溫度報(bào)警條件)的器件;i.負(fù)電壓特性,電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,但不能正常工作;B.DS18B20的內(nèi)部結(jié)構(gòu)DS18B20采用3腳PR-35封裝,如圖2-2所示;DS18B20的內(nèi)部結(jié)構(gòu),如圖2-3所示。圖2-2DS18B20封裝圖2-3DS18B20內(nèi)部結(jié)構(gòu)C.DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成[4]:a.4位光刻ROM。開始8位是產(chǎn)品類型的編號(hào),接著是每個(gè)器件的惟一的序號(hào),共有48位,最后8位是前56位的CRC校驗(yàn)碼,這也是多個(gè)DS18B20可以采用一線進(jìn)行通信的原因[3]。64位閃速ROM的結(jié)構(gòu)如下表:表2-1ROM結(jié)構(gòu)8b檢驗(yàn)CRC48b序列號(hào)8b工廠代碼(10H)MSBLSBMSBLSBMSBLSBb.非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL,可通過軟件寫入用戶報(bào)警上下限值。c.高速暫存存儲(chǔ),可以設(shè)置DS18B20溫度轉(zhuǎn)換的精度。DS18B20溫度傳感器的內(nèi)部存儲(chǔ)器還包括一個(gè)高速暫存RAM和一個(gè)非易失性的可電擦除的EEPRAM。高速暫存RAM的結(jié)構(gòu)為8字節(jié)的存儲(chǔ)器,結(jié)構(gòu)如表2-2所示。頭2個(gè)字節(jié)包含測得的溫度信息,第3和第4字節(jié)TH和TL的拷貝,是易失的,每次上電復(fù)位時(shí)被刷新。第5個(gè)字節(jié),為配置寄存器,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。DS18B20工作時(shí)寄存器中的分辨率轉(zhuǎn)換為相應(yīng)精度的溫度數(shù)值。它的內(nèi)部存儲(chǔ)器結(jié)構(gòu)和字節(jié)定義如表2-3所示。低5位一直為1,TM是工作模式位,用于設(shè)置DS18B20在工作模式還是在測試模式。DS18B20出廠時(shí)該位被設(shè)置為0,用戶要去改動(dòng),R1和R0決定溫度轉(zhuǎn)換的精度位數(shù),來設(shè)置分辨率,如表2-4。表2-2DS18B20內(nèi)部存儲(chǔ)器結(jié)構(gòu)Byte0溫度測量值LSB(50H)Byte1溫度測量值MSB(50H)EEPROMByte2TH高溫寄存器TH高溫寄存器Byte3TL低溫寄存器TL低溫寄存器Byte4配位寄存器配位寄存器Byte5預(yù)留(FFH)Byte6預(yù)留(0CH)Byte7預(yù)留(IOH)Byte8循環(huán)冗余碼校驗(yàn)(CRC)表2-3DS18B20字節(jié)定義TMR1R011111由表2-4可見,分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時(shí)間越長。因此,在實(shí)際應(yīng)用中要將分辨率和轉(zhuǎn)換時(shí)間權(quán)衡考慮。高速暫存RAM的第6、7、8字節(jié)保留未用,表現(xiàn)為全邏輯1。第9字節(jié)讀出前面所有8字節(jié)的CRC碼,可用來檢驗(yàn)數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。當(dāng)DS18B20接收到溫度轉(zhuǎn)換命令后,開始啟動(dòng)轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲(chǔ)在高速暫存存儲(chǔ)器的第1、2字節(jié)。單片機(jī)可以通過單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時(shí)低位在先,高位在后,數(shù)據(jù)格式以0.0625℃當(dāng)符號(hào)位S=0時(shí),表示測得的溫度值為正值,可以直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)符號(hào)位S=1時(shí),表示測得的溫度值為負(fù)值,要先將補(bǔ)碼變成原碼,再計(jì)算十進(jìn)制數(shù)值。表1.2是一部分溫度值對應(yīng)的二進(jìn)制溫度數(shù)據(jù)。表2-4DS18B20溫度轉(zhuǎn)換時(shí)間表R1R0分辨率/位溫度最大轉(zhuǎn)向時(shí)間/ms00993.750110187.510113751112750表2-5一部分溫度對應(yīng)值表溫度/℃二進(jìn)制表示十六進(jìn)制表示+125000000001111101000FAH+2500000000001100100032H+0.500000000000000010001H000000000000000000000H-0.51111111111111111FFFFH-251111111111001110FFCEH-551111111110010010FF92Hd.CRC的產(chǎn)生
在64bROM的最高有效字節(jié)中存儲(chǔ)有循環(huán)冗余校驗(yàn)碼(CRC)。主機(jī)根據(jù)ROM的前56位來計(jì)算CRC值,并和存入DS18B20中的CRC值做比較,以判斷主機(jī)收到的ROM數(shù)據(jù)是否正確。另外,由于DS18B20單線通信功能是分時(shí)完成的,它有嚴(yán)格的時(shí)隙概念,因此讀寫時(shí)序很重要。系統(tǒng)對DS18B20的各種操作按協(xié)議進(jìn)行。操作協(xié)議為:初使化DS18B20(發(fā)復(fù)位脈沖)→發(fā)ROM功能命令→發(fā)存儲(chǔ)器操作命令→處理數(shù)據(jù)。3DS18B20溫度傳感器簡介3.1溫度傳感器的歷史及簡介溫度的測量是從金屬(物質(zhì))的熱脹冷縮開始。水銀溫度計(jì)至今仍是各種溫度測量的計(jì)量標(biāo)準(zhǔn)。可是它的缺點(diǎn)是只能近距離觀測,而且水銀有毒,玻璃管易碎。代替水銀的有酒精溫度計(jì)和金屬簧片溫度計(jì),它們雖然沒有毒性,但測量精度很低,只能作為一個(gè)概略指示。不過在居民住宅中使用已可滿足要求。在工業(yè)生產(chǎn)和實(shí)驗(yàn)研究中為了配合遠(yuǎn)傳儀表指示,出現(xiàn)了許多不同的溫度檢測方法,常用的有電阻式、熱電偶式、PN結(jié)型、輻射型、光纖式及石英諧振型等。它們都是基于溫度變化引起其物理參數(shù)(如電阻值,熱電勢等)的變化的原理。隨著大規(guī)模集成電路工藝的提高,出現(xiàn)了多種集成的數(shù)字化溫度傳感器。3.2DS18B20的工作原理3.2.1DS18B20工作時(shí)序根據(jù)DS18B20的通訊協(xié)議,主機(jī)控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過三個(gè)步驟:1.每一次讀寫之前都必須要對DS18B20進(jìn)行復(fù)位;2.復(fù)位成功后發(fā)送一條ROM指令;3.最后發(fā)送RAM指令,這樣才能對DS18B20進(jìn)行預(yù)定的操作。復(fù)位要求主CPU將數(shù)據(jù)線下拉500微秒,然后釋放,DS18B20收到信號(hào)后等待15~60微秒左右后發(fā)出60~240微秒的存在低脈沖,主CPU收到此信號(hào)表示復(fù)位成功。其工作時(shí)序包括初始化時(shí)序、寫時(shí)序和讀時(shí)序,具體工作方法如圖3-1,3-2,3-3所示。A.初始化時(shí)序圖3-1初始化時(shí)序總線上的所有傳輸過程都是以初始化開始的,主機(jī)響應(yīng)應(yīng)答脈沖。應(yīng)答脈沖使主機(jī)知道,總線上有從機(jī)設(shè)備,且準(zhǔn)備就緒。主機(jī)輸出低電平,保持低電平時(shí)間至少480us,以產(chǎn)生復(fù)位脈沖。接著主機(jī)釋放總線,4.7KΩ上拉電阻將總線拉高,延時(shí)15~60us,并進(jìn)入接受模式,以產(chǎn)生低電平應(yīng)答脈沖,若為低電平,再延時(shí)480us[12]。B.寫時(shí)序圖3-2寫時(shí)序?qū)憰r(shí)序包括寫0時(shí)序和寫1時(shí)序。所有寫時(shí)序至少需要60us,且在2次獨(dú)立的寫時(shí)序之間至少需要1us的恢復(fù)時(shí)間,都是以總線拉低開始。寫1時(shí)序,主機(jī)輸出低電平,延時(shí)2us,然后釋放總線,延時(shí)60us。寫0時(shí)序,主機(jī)輸出低電平,延時(shí)60us,然后釋放總線,延時(shí)2us[6]。C.讀時(shí)序圖3-3讀時(shí)序總線器件僅在主機(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è)讀時(shí)序都由主機(jī)發(fā)起,至少拉低總線1us。主機(jī)在讀時(shí)序期間必須釋放總線,并且在時(shí)序起始后的15us之內(nèi)采樣總線狀態(tài)。主機(jī)輸出低電平延時(shí)2us,然后主機(jī)轉(zhuǎn)入輸入模式延時(shí)12us,然后讀取總線當(dāng)前電平,然后延時(shí)50us[4]3.2.2ROM操作命令當(dāng)主機(jī)收到DSl8B20的響應(yīng)信號(hào)后,便可以發(fā)出ROM操作命令之一,這些命令如表3-1:ROM操作命令。3.3DS18B20的測溫原理3.3.1DS18B20的測溫原理:每一片DSl8B20在其ROM中都存有其唯一的48位序列號(hào),在出廠前已寫入片內(nèi)ROM中。主機(jī)在進(jìn)入操作程序前必須用讀ROM(33H)命令將該DSl8B20的序列號(hào)讀出。程序可以先跳過ROM,啟動(dòng)所有DSl8B20進(jìn)行溫度變換,之后通過匹配ROM,再逐一地讀回每個(gè)DSl8B20的溫度數(shù)據(jù)。DS18B20的測溫原理如圖3-4所示,圖中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)器1,高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產(chǎn)生的信號(hào)作為減法計(jì)數(shù)器2的脈沖輸入,圖中還隱含著計(jì)數(shù)門,當(dāng)計(jì)數(shù)門打開時(shí),DS18B20就對低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖后進(jìn)行計(jì)數(shù),進(jìn)而完成溫度測量。計(jì)數(shù)門的開啟時(shí)間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將-55℃所對應(yīng)的基數(shù)分別置入減法計(jì)數(shù)器1和溫度寄存器中,減法計(jì)數(shù)器1和溫度寄存器被預(yù)置在-55℃所對應(yīng)的一個(gè)基數(shù)值。減法計(jì)數(shù)器1對低溫度系數(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重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到減法計(jì)數(shù)器2計(jì)數(shù)到0時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即為所測溫度。圖3-4中的斜率累加器用于補(bǔ)償和修正測溫過程中的非線性,其輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)門仍未關(guān)閉就重復(fù)上述過程,直至溫度寄存器值達(dá)到被測溫度值.表3-1ROM操作命令指令約定代碼功能讀ROM33H讀DS18B20ROM中的編碼符合ROM55H發(fā)出此命令之后,接著發(fā)出64位ROM編碼,訪問單線總線上與該編碼相對應(yīng)的DS18B20使之作出響應(yīng),為下一步對該DS18B20的讀寫作準(zhǔn)備搜索ROM0F0H用于確定掛接在同一總線上DS18B20的個(gè)數(shù)和識(shí)別64位ROM地址,為操作各器件作好準(zhǔn)備跳過ROM0CCH忽略64位ROM地址,直接向DS18B20發(fā)溫度變換命令,適用于單片工作。告警搜索命令0ECH執(zhí)行后,只有溫度超過設(shè)定值上限或者下限的片子才做出響應(yīng)溫度變換44H啟動(dòng)DS18B20進(jìn)行溫度轉(zhuǎn)換,轉(zhuǎn)換時(shí)間最長為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將EEPRAM中第3,4字節(jié)內(nèi)容復(fù)制到E2PRAM中重調(diào)E2PRAM0BBH將EEPRAM中內(nèi)容恢復(fù)到RAM中的第3,4字節(jié)讀供電方式0B4H讀DS18B20的供電模式,寄生供電時(shí)DS18B20發(fā)送“0”,外接電源供電DS18B20發(fā)送“1”另外,由于DS18B20單線通信功能是分時(shí)完成的,他有嚴(yán)格的時(shí)隙概念,因此讀寫時(shí)序很重要。系統(tǒng)對DS18B20的各種操作必須按協(xié)議進(jìn)行。操作協(xié)議為:初始化DS18B20(發(fā)復(fù)位脈沖)→發(fā)ROM功能命令→發(fā)存儲(chǔ)器操作命令→處理數(shù)據(jù)。減法計(jì)數(shù)器減法計(jì)數(shù)器斜坡累加器減到0減法計(jì)數(shù)器預(yù)置低溫度系數(shù)振蕩器高溫度系數(shù)振蕩器計(jì)數(shù)比較器預(yù)置溫度寄存器減到0圖3-4測溫原理內(nèi)部裝置3.3.2DS18B20的測溫流程初始化初始化DS18B20跳過ROM匹配溫度變換延時(shí)1S跳過ROM匹配讀暫存器轉(zhuǎn)換成顯示碼數(shù)碼管顯示圖3-5DS18B20測溫流程4單片機(jī)接口設(shè)計(jì)4.1設(shè)計(jì)原則DS18B20可以采用兩種方式供電,一種是采用電源供電方式,此時(shí)DS18B20的1腳接地,2腳作為信號(hào)線,3腳接電源,如圖4-1所示單片機(jī)端口接單線總線,另一種是寄生電源供電方式,為保證在有效的DS18B20時(shí)鐘周期內(nèi)提供足夠的電流,可用一個(gè)MOSFET管來完成對總線的上拉。本設(shè)計(jì)采用電源供電方式,P1.1口接單線總線為保證在有效的DS18B20時(shí)鐘周期內(nèi)提供足夠的電流,可用一個(gè)4.7k電阻和AT89C2051的P3.7來完成對總線的上拉。當(dāng)DS18B20處于寫存儲(chǔ)器操作和溫度A/D變換操作時(shí),總線上必須有強(qiáng)的上拉,上拉開啟時(shí)間最大為10μs。采用寄生電源供電方式是VDD和GND端均接地。由于單線制只有一根線,因此發(fā)送接收口必須是三狀態(tài)的。主機(jī)控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過3初始化;ROM操作指令;存儲(chǔ)器操作指令。4.2引腳連接4.2.1晶振電路單片機(jī)XIAL1和XIAL2分別接30PF的電容,中間再并個(gè)12MHZ的晶振,形成單片機(jī)的晶振電路。[1]4.2.2串口引腳P1口接7個(gè)2K的電阻阻然后接到顯示電路上。溫度傳感器DS18B20的DQ口接單片機(jī)的P3.7口進(jìn)行溫度數(shù)據(jù)的采集,如圖4.1所示。DS18B20單片機(jī)DS18B20單片機(jī)P3.7P3.7VCCVCCGND圖4-1DS18B20與單片機(jī)的接口電路P3.2;P3.3;P3.4;P3.5引腳接繼電器電路的1K電阻上。VCC與引腳1分別接按鍵S1的兩端,用以使單片機(jī)復(fù)位。P3.2;P3.3引腳接按鍵S1、S2,按鍵另外一端接地,起作用是分別是上調(diào)和下調(diào)預(yù)設(shè)溫度。4.2.3其它引腳10引腳接地。5系統(tǒng)整體設(shè)計(jì)5.1系統(tǒng)硬件電路設(shè)計(jì)5.1.1主板電路設(shè)計(jì)單片機(jī)的P3.7接DS18B20的2號(hào)引腳,P1.0;P1.1;P1.2;P1.3;P1.4;P1.5;P1.6六個(gè)口通過R1~R6(2k)的電阻鏈接兩位的七段數(shù)碼管,用以顯示兩位整數(shù)的溫度[2]。同時(shí),P1.7;P3.4;P3.5通過三極管和繼電器的鏈接,從而控制大功耗的熱水器順序啟動(dòng)。當(dāng)熱水器啟動(dòng)的同時(shí),與控制該熱水器的繼電器并聯(lián)的發(fā)光二極管也會(huì)同時(shí)亮起,以表示該熱水器已經(jīng)啟動(dòng)。5.1.2各部分電路圖5-1顯示電路圖A.顯示電路顯示電路采用了兩位的共陽的7段數(shù)碼管掃描電路,如圖5-1所示節(jié)約了單片機(jī)的輸出口。便于程序的編寫。B.單片機(jī)電路本色設(shè)計(jì)使用的是二十針的AT89C2051,單片機(jī)電路引腳如圖5-2圖5-2單片機(jī)電路引腳圖C.DS18B20溫度傳感器電路測溫電路使用的測溫元件是DALLAS公司生產(chǎn)的DS18B20,其各引腳的接法如下:圖5-3溫度傳感器電路引腳圖D.保溫電路本設(shè)計(jì)的保溫電路為減少大功耗的熱水器對單片機(jī)的干擾,使用了可以隔離強(qiáng)弱電的繼電器用較弱的電流控制高功率的熱水器啟動(dòng)。P3.4,P3.5,P1.7通過三極管8050鏈接繼電器,從而控制熱水器的通斷,當(dāng)這些腳發(fā)出高電平信號(hào)時(shí),所對應(yīng)的三極管處于放區(qū),三極管導(dǎo)通。所對應(yīng)的繼電器也會(huì)導(dǎo)通,使熱水器開始加溫。保溫電路如圖5-4所示:圖5-4保溫電路E.晶振、穩(wěn)壓和復(fù)位電路本設(shè)計(jì)使用的是12MHz的晶振,控制復(fù)位的是按鈕。實(shí)現(xiàn)電路5V穩(wěn)壓供的是LM7805,如圖5-5所示。圖5-5晶振、穩(wěn)壓和復(fù)位電路F.電源供電電路:電源電路是有一個(gè)交流220V轉(zhuǎn)12V的變壓器實(shí)現(xiàn)高壓變低壓,然后12V交流低壓通過由四個(gè)二極管構(gòu)成的電橋?qū)崿F(xiàn)整流,使交流變?yōu)橹绷?。而C1,C2實(shí)現(xiàn)濾波。電源電源供電電路如圖5-6所示:圖5-6電源供電電路5.2系統(tǒng)軟件設(shè)計(jì)5.2.1系統(tǒng)軟件設(shè)計(jì)整體思路 一個(gè)應(yīng)用系統(tǒng)要完成各項(xiàng)功能,首先必須有較完善的硬件作保證。同時(shí)還必須得到相應(yīng)設(shè)計(jì)合理的軟件的支持,尤其是微機(jī)應(yīng)用高速發(fā)展的今天,許多由硬件完成的工作,都可通過軟件編程而代替。甚至有些必須采用很復(fù)雜的硬件電路才能完成的工作,用軟件編程有時(shí)會(huì)變得很簡單,如數(shù)字濾波,信號(hào)處理等。因此充分利用其內(nèi)部豐富的硬件資源和軟件資源,采用與AT89C2051系列單片機(jī)相對應(yīng)的51匯編語言和結(jié)構(gòu)化程序設(shè)計(jì)方法進(jìn)行軟件編程。程序設(shè)計(jì)語言有三種:機(jī)器語言、匯編語言和高級(jí)語言。機(jī)器語言是機(jī)器唯一能“懂”的語言,用匯編語言或高級(jí)語言編寫的程序(稱為源程序)最終都必須翻譯成機(jī)器語言的程序(成為目標(biāo)程序),計(jì)算機(jī)才能“看懂”,然后逐一執(zhí)行。但是本系統(tǒng)卻選用了匯編語言。原因在于,本系統(tǒng)是編制程序工作量不大、規(guī)模較小的單片機(jī)微控制系統(tǒng),使用匯編語言可以不用像高級(jí)語言那樣占用較多的存儲(chǔ)空間,適合于存儲(chǔ)容量較小的系統(tǒng)。但是,編寫的代碼非常難懂,不好維護(hù),很容易產(chǎn)生Bug,難于調(diào)試只能針對特定的體系結(jié)構(gòu)和處理器進(jìn)行優(yōu)化,開發(fā)效率很低,時(shí)間長且單調(diào)。高級(jí)語言是面向問題和計(jì)算過程的語言,它可通過于各種不同的計(jì)算機(jī),用戶編程時(shí)不必仔細(xì)了解所用的計(jì)算機(jī)的具體性能與指令系統(tǒng),而且語句的功能強(qiáng),常常一個(gè)語句已相當(dāng)于很多條計(jì)算機(jī)指令,于是用高級(jí)語言編制程序的速度比較快,可讀性強(qiáng),便于學(xué)習(xí)和交流,維護(hù)也比較簡單。因此本設(shè)計(jì)的軟件系統(tǒng)使用高級(jí)語言編寫。本裝置的軟件包括主程序、讀出溫度子程序、復(fù)位應(yīng)答子程序、寫入子程序、以及有關(guān)DS18B20的程序(初始化子程序、寫程序和讀程序。5.2.2系統(tǒng)程序流圖系統(tǒng)程序主要包括主程序,讀出溫度子程序,復(fù)位應(yīng)答子程序,寫入子程序等。A.主程序主程序的主要功能是負(fù)責(zé)溫度的實(shí)時(shí)顯示、讀出并處理DS18B20的測量的當(dāng)前溫度值,溫度測量每1s進(jìn)行一次。這樣可以在一秒之內(nèi)測量一次被測溫度,其程序流程見圖5-8所示。通過調(diào)用讀溫度子程序把存入內(nèi)存儲(chǔ)中的整數(shù)部分與小數(shù)部分分開存放在不同的兩個(gè)單元中,然后通過調(diào)用顯示子程序顯示出來。圖5-7主程序流程圖B.讀出溫度子程序B.讀出溫度子程序讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時(shí)需進(jìn)行CRC校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫。DS18B20的各個(gè)命令對時(shí)序的要求特別嚴(yán)格,所以必須按照所要求的時(shí)序才能達(dá)到預(yù)期的目的,同時(shí),要注意讀進(jìn)來的是高位在后低位在前,共有12位數(shù),小數(shù)4位,整數(shù)7位,還有一位符號(hào)位。DS18B20復(fù)位、應(yīng)答子程序DS18B20復(fù)位、應(yīng)答子程序跳過ROM匹配命令跳過ROM匹配命令寫入子程序?qū)懭胱映绦驕囟绒D(zhuǎn)換命令溫度轉(zhuǎn)換命令寫入子程序?qū)懭胱映绦蝻@示子程序(延時(shí))顯示子程序(延時(shí))DS18B20復(fù)位、應(yīng)答子程序DS18B20復(fù)位、應(yīng)答子程序跳過ROM匹配命令 跳過ROM匹配命令寫入子程序?qū)懭胱映绦蜃x溫度命令子程序讀溫度命令子程序終終止圖5-8讀出溫度子程序C.復(fù)位、應(yīng)答子程序開始開始P3.7口清0P3.7口清0延時(shí)537US延時(shí)537USP3.7口置1P3.7口置1否50US是否有低電平否50US是否有低電平是標(biāo)志位置1P3.7口置1有234US低電平標(biāo)志位置1是標(biāo)志位置1P3.7口置1有234US低電平標(biāo)志位置1終止終止圖5-9復(fù)位、應(yīng)答子程序D.寫入子程序開始開始進(jìn)位C清0進(jìn)位C清0終止R2是否為0P3.7置0延時(shí)46US帶進(jìn)位右移延時(shí)12USP3.7清0終止R2是否為0P3.7置0延時(shí)46US帶進(jìn)位右移延時(shí)12USP3.7清0 圖5-10寫入子程序E.系統(tǒng)總的流程圖開始開始初始化DS18B20顯示當(dāng)前溫度判斷當(dāng)前溫度值超過設(shè)定溫度上限關(guān)閉熱水器設(shè)定溫度下限啟動(dòng)電水器升高溫度是否低于設(shè)定溫度下限是紅燈亮否圖5-11系統(tǒng)總的流程圖5.3調(diào)試主程序的功能是:啟動(dòng)DS18B20測量溫度,將測量值與給定值進(jìn)行比較,若測得溫度小于設(shè)定值的2度,置P3.7為高電平,順序開啟3個(gè)熱水器,則進(jìn)入加熱階段,這期間繼續(xù)對溫度進(jìn)行監(jiān)測,直到溫度比設(shè)定值低2度時(shí),順序關(guān)閉其中1臺(tái)熱水器,當(dāng)水溫達(dá)到設(shè)定值時(shí),再關(guān)閉剩下的熱水器。6結(jié)束語本設(shè)計(jì)使用的溫度控制器結(jié)構(gòu)簡單、測溫準(zhǔn)確,具有一定的實(shí)際應(yīng)用價(jià)值。該智能溫度控制器只是DS18B20在溫度控制領(lǐng)域的一個(gè)簡單實(shí)例,還有許多需要完善的地方,例如可以將測得的溫度通過單片機(jī)與通訊模塊相連接,以手機(jī)短消息的方式發(fā)送給用戶,使用戶能夠隨時(shí)對溫度進(jìn)行監(jiān)控。此外,還能廣泛地應(yīng)用于其他一些工業(yè)生產(chǎn)領(lǐng)域,如建筑,倉儲(chǔ)等行業(yè)。本溫度控制系統(tǒng)可以應(yīng)用于多種場合,像的溫度、育嬰房的溫度、水溫的控制。用戶可靈活選擇本設(shè)計(jì)的用途,有很強(qiáng)的實(shí)用價(jià)值。附錄附錄1主板電路圖附錄2程序代碼頭文件:#ifndef _DIGTHERMO_H //防止DigThermo.h被重復(fù)引用?#define _DIGTHERMO_H#include<at89x051.h> //引用標(biāo)準(zhǔn)庫的頭文件#include<absacc.h> //?//#include<stdio.h>#include<math.h>#defineucharunsignedchar#defineuintunsignedintuchartplsb,tpmsb; //溫度值低位、高位字節(jié)uchartplsb1,tpmsb1;uchartplsb1g,tpmsb1s,tpmsb1g;ucharcodetable[]={0xc0,0xf9,0xa4,0xb0,0x99,//0-40x92,0x82,0xf8,0x80,0x90,//5-90xa0,0x83,0xa7,0xa1,0x84,//a-e0x8e,0xfb,0x7f,0xff};//f,-,.,,ucharcodetable1[]={0x40,0x79,0x24,0x30,0x19,//0-40x12,0x02,0x78,0x00,0x10,//5-90x20,0x03,0x27,0x21,0x04,//a-e0x0e,0x7b,0x7f};//f,-,.sbitDQ=P3^7; //數(shù)據(jù)通信線DQsbitBIG=P3^2;sbitSMALL=P3^3;sbitRELAY=P3^4;sbitRELAY1=P3^5;sbitRELAY2=P1^7;sbit7REG1=P3^1;sbit7REG2=P3^0;#endif主程序#include"DigThermo.h"/*延時(shí)t毫秒*/voiddelay(uintt){ uinti; while(t--) { /*對于11.0592M時(shí)鐘,約延時(shí)1ms*/ for(i=0;i<125;i++) {} }}/*產(chǎn)生復(fù)位脈沖初始化DS18B20*/voidTxReset(void){ uinti; DQ=0; /*拉低約900us*/ i=100; while(i>0) i--; DQ=1; //產(chǎn)生上升沿 i=4; while(i>0) i--;}/*等待應(yīng)答脈沖*/voidRxWait(void){ uinti; while(DQ); while(~DQ); //檢測到應(yīng)答脈沖 ,取反也可用! i=4; while(i>0) i--;}/*讀取數(shù)據(jù)的一位,滿足讀時(shí)隙要求*/bitRdBit(void){ uinti; bitb; DQ=0; i++; DQ=1; i++;i++; //延時(shí)15us以上,讀時(shí)隙下降沿后15us,DS18B20輸出數(shù)據(jù)才有效 b=DQ; i=8; while(i>0)i--; return(b);}/*讀取數(shù)據(jù)的一個(gè)字節(jié)*/ucharRdByte(void){ uchari,j,b; b=0; for(i=1;i<=8;i++) { j=RdBit(); b=(j<<7)|(b>>1); } return(b);}/*寫數(shù)據(jù)的一個(gè)字節(jié),滿足寫1和寫0的時(shí)隙要求*///當(dāng)主機(jī)總線to時(shí)刻從高拉至低電平時(shí)就產(chǎn)生寫時(shí)間隙見圖2253圖225//4從to時(shí)刻開始15us之內(nèi)應(yīng)將所需寫的位送到總線上DSl820在t。后15-60us間對總線//采樣若低電平寫入的位是0見圖2253若高電平寫入的位是1見圖2254//連續(xù)寫2位間的間隙應(yīng)大于1usvoidWrByte(ucharb){ uinti; ucharj; bitbtmp; for(j=1;j<=8;j++) { btmp=b&0x01; //b=0xcc11001100 將b的值寫到DQ ;b=0x44,也是將b的值寫到DQ b=b>>1; //取下一位(由低位向高位)b=01100110B if(btmp) { /*寫1*/ DQ=0; i++;i++; //延時(shí),使得15us以內(nèi)拉高 DQ=1; i=8; while(i>0)i--; //整個(gè)寫1時(shí)隙不低于60us } else { /*寫0*/ DQ=0; i=8; while(i>0)i--; //保持低在60us到120us之間 DQ=1; i++; i++; } }}/*啟動(dòng)溫度轉(zhuǎn)換*/voidconvert(void){ TxReset(); //產(chǎn)生復(fù)位脈沖,初始化DS18B20 RxWait(); //等待DS18B20給出應(yīng)答脈沖 delay(1); //延時(shí)1ms WrByte(0xcc); //skiprom命令忽略64位ROM地址直接向DS18B20發(fā)溫度變換命令,適用單機(jī)工作 WrByte(0x44); //convertT命令結(jié)果存入內(nèi)部9字節(jié)RAM中}/*讀取溫度值*/voidRdTemp(void){ TxReset(); //產(chǎn)生復(fù)位脈沖,初始化DS18B20 RxWait(); //等待DS18B20給出應(yīng)答脈沖 delay(1); //延時(shí) WrByte(0xcc); //skiprom命令 WrByte(0xbe); //readscratchpad命令 讀內(nèi)部RAM中9字節(jié)的內(nèi)容 tplsb=RdByte(); //溫度值低位字節(jié)(其中低4位為二進(jìn)制的“小數(shù)”部分) tpmsb=RdByte(); //高位值高位字節(jié)(其中高5位為符號(hào)位) }voiddelay1(uintz){uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}/*顯示溫度*/voidShowtemp(void){tpmsb1=tpmsb<<4;//高8位中后三位數(shù)的值tpmsb1+=(tplsb&0xf0)>>4;//低8位中的高4位值加上高8位中后三位數(shù)的值tpmsb1室溫整數(shù)值tplsb1=tplsb&0x0f;//小數(shù)的值 //tpmsb1*=0.0625; tplsb1*=(0.0625*10); tpmsb1s=tpmsb1/10; tpmsb1g=tpmsb1%10; tplsb1s=tplsb1/10; tplsb1g=tplsb1%10; P1=table[tpmsb1s]; 7REG1=1;7REG2=0; delay1(2); P1=table[tpmsb1g]; 7REG1=0;7REG2=1; delay1(2); /*P1=0xbf; P2=0xdf; delay1(2);//':' P1=table[tplsb1s]; P2=0xbf; delay1(2); P1=table[tplsb1g]; P2=0x7f; delay1(2);*/}/*主程序,讀取的溫度值最終存放在tplsb和tpmsb變量中。tplsb其中低4位為二進(jìn)制的“小數(shù)”部分;tpmsb其中高5位為符號(hào)位。真正通過數(shù)碼管輸出時(shí),需要進(jìn)行到十進(jìn)制有符號(hào)實(shí)數(shù)(包括小數(shù)部分)的轉(zhuǎn)換。*/voidmain(void){ucharCOOL_H,COOL_L,HOT_H,COOL_L;RELAY=0;RELAY1=0;RELAY2=0; do { delay(1); //延時(shí)1ms convert(); //啟動(dòng)溫度轉(zhuǎn)換,需要750ms RdTemp(); //讀取溫度 Showtemp();//顯示溫度 if(BIG==0){HOT_H=3;HOT_L=9;}if(SMALL==0){COOL_H=2;COOL_L=0;}if(HOT_H==tpmsb1s&&HOT_L==tpmsb1g){RELAY=0;RELAY1=0;RELAY2=0;}}if(COOL_H==tpmsb1s&&COOL_L==tpmsb1g){RELAY=1;RELAY1=1;RELAY2=1;} } while(1);}參考文獻(xiàn)[1].李朝青,單片機(jī)原理及接口技術(shù)(簡明修訂版)[M].北京:北京航空航天大學(xué)出版社,1998[2].李廣弟.單片機(jī)基礎(chǔ)[M].北京:北京航空航天大學(xué)出版社,1994[3].金偉正.單線數(shù)字溫度傳感器的原理與應(yīng)用[J].電子技術(shù)與應(yīng)用,2000[4].李鋼.1-Wire總線數(shù)字溫度傳感器DS18B20原理及應(yīng)用.現(xiàn)代電子技術(shù)[J],2005[5]StevenF.Barrett,DanielJ.Pack.EmbeddedSystem[M].北京:電子工業(yè)出版社,2006[6].陳躍東.DS18B20集成溫度傳感器原理與應(yīng)用[J].安徽機(jī)電學(xué)院學(xué)報(bào),2002[7].閻石.數(shù)字電子技術(shù)基礎(chǔ)(第三版)[M].北京:高等教育出版社,1989致謝大學(xué)四年的學(xué)習(xí)和生活就要隨著這篇論文的答辯而結(jié)束了。有許許多多的舍不得,也有許許多多的感謝要說。首先要衷心感謝的是我的指導(dǎo)教師潘奇明老師!在我學(xué)習(xí)期間不僅傳授了做學(xué)問的秘訣,還傳授了做人的準(zhǔn)則。這些都將使我終生受益。無論是在理論學(xué)習(xí)階段,還是在論文的選題、資料查詢、開題、研究和撰寫的每一個(gè)環(huán)節(jié),無不得到導(dǎo)師的悉心指導(dǎo)和幫助。我愿借此機(jī)會(huì)向?qū)煴硎局孕牡母兄x!其次要感謝所有教育過我的老師!你們傳授給我的專業(yè)知識(shí)是我不斷成長的源泉,也是完成本論文的基礎(chǔ)。我還要向關(guān)心和支持我學(xué)習(xí)的朋友們表示真摯的謝意!感謝他們對我的關(guān)心、關(guān)注和支持!大學(xué)的生活讓我有了堅(jiān)強(qiáng)的性格,冷靜的頭腦和永遠(yuǎn)樂觀的態(tài)度。最重要的是讓我有了責(zé)任感,對自己、對家人和對社會(huì)。我愿在未來的學(xué)習(xí)過程中,以更加豐厚的成果來答謝曾經(jīng)關(guān)心、幫助和支持過我的所有領(lǐng)導(dǎo)、老師、同學(xué)和朋友。永遠(yuǎn)以一顆為人民服務(wù)的心來回報(bào)。目錄摘要 ⅡAbstract ⅢTOC\o"1-3"\h\u第1章緒論 11.1課題的研究其意義 11.2火災(zāi)報(bào)警的發(fā)展趨勢 21.3報(bào)警系統(tǒng)的特點(diǎn) 21.4系統(tǒng)的研究范圍 3第2章自動(dòng)火災(zāi)報(bào)警系統(tǒng)整體方案設(shè)計(jì) 4\l"_Toc323
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 跨文化溝通在足浴店團(tuán)隊(duì)中的實(shí)踐與應(yīng)用
- 食品超市的貨架衛(wèi)生與安全規(guī)范
- 工程經(jīng)濟(jì)呂正輝呂正輝67課件
- 南大版一年級(jí)心理健康第11課《我要舉手發(fā)言》課件
- 6.2多彩的職業(yè)課件- -2024-2025學(xué)年統(tǒng)編版道德與法治九年級(jí)下冊
- 6.1學(xué)無止境課件- -2024-2025學(xué)年統(tǒng)編版道德與法治九年級(jí)下冊
- 建筑工程安全管理模板工程坍塌案例課件
- APx515音頻分析儀儀器AP培訓(xùn)資料
- 湖北警官學(xué)院《大數(shù)據(jù)平臺(tái)核心技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 河北省唐山市玉田縣2024-2025學(xué)年四下數(shù)學(xué)期末教學(xué)質(zhì)量檢測試題含解析
- 舞臺(tái)設(shè)計(jì)課件
- 高中英語 高中閱讀高頻單詞
- TRD工法施工方案(長業(yè)范本)
- 模板安裝三檢記錄表
- 安全費(fèi)用提取、使用臺(tái)賬
- 部編版六年級(jí)語文下冊全冊課件PPT
- 北京市歷年中考語文現(xiàn)代文之記敘文閱讀25篇(2003-2021)
- 新教科版六年級(jí)下冊科學(xué)全冊重點(diǎn)題型練習(xí)課件(含答案)
- 鋼筋平法識(shí)圖與鋼筋算量經(jīng)典課件
- 現(xiàn)代漢語課件 副詞
- 中國古典文獻(xiàn)學(xué)(全套)
評論
0/150
提交評論