微機(jī)控制課程設(shè)計(jì)報(bào)告_第1頁(yè)
微機(jī)控制課程設(shè)計(jì)報(bào)告_第2頁(yè)
微機(jī)控制課程設(shè)計(jì)報(bào)告_第3頁(yè)
微機(jī)控制課程設(shè)計(jì)報(bào)告_第4頁(yè)
微機(jī)控制課程設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩27頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、江西理工大學(xué)應(yīng)用科學(xué)學(xué)院 微機(jī)控制課程設(shè)計(jì)報(bào)告設(shè)計(jì)題目: 溫度控制系統(tǒng)設(shè) 計(jì) 者: 高偉軍學(xué) 號(hào): 08060210239班 級(jí): 自動(dòng)化102指導(dǎo)老師: 馮新剛完成時(shí)間: 2013.06.28 設(shè)計(jì)報(bào)告用戶板軟件設(shè)計(jì)答 辯(20)平 時(shí)(20)總 評(píng)格式(10)內(nèi)容(10)檢測(cè)(5)繪圖(15)程序(10)調(diào)試情況(10)摘要該文介紹了一種基于ds1820的溫度檢測(cè)控制系統(tǒng)。隨著人們生活水平的不斷提高,單片機(jī)控制無(wú)疑是人們追求的目標(biāo)之一,它所給人帶來(lái)的方便也是不可否定的,其中數(shù)字溫度計(jì)就是一個(gè)典型的例子,但人們對(duì)它的要求越來(lái)越高,要為現(xiàn)代人工作、科研、生活、提供更好的更方便的設(shè)施就需要從數(shù)單

2、片機(jī)技術(shù)入手,一切向著數(shù)字化控制,智能化控制方向發(fā)展。本文旨在介紹一種基于mcs-51系列單片機(jī)和ds1820數(shù)字溫度傳感器的溫度檢測(cè)控制系統(tǒng)的開(kāi)發(fā),包括其開(kāi)發(fā)背景、系統(tǒng)分析、電路原理、以及程序的編寫與分析。關(guān)鍵詞:?jiǎn)纹瑱C(jī);溫度控制系統(tǒng);ds18b20溫度傳感器目錄第一章引言21.1 溫度控制系統(tǒng)設(shè)計(jì)的背景、發(fā)展歷史及意義21.2 溫度控制系統(tǒng)的目的21.3 溫度控制系統(tǒng)完成的功能2第二章總體設(shè)計(jì)方案32.1方案3第三章 ds18b20溫度傳感器簡(jiǎn)介73.1 溫度傳感器的歷史及簡(jiǎn)介73.2 ds18b20的工作原理73.2.1 ds18b20工作時(shí)序73.2.2 rom操作命令83.3 ds1

3、8b20的測(cè)溫原理83.3.1 ds18b20的測(cè)溫原理:83.3.2 ds18b20的測(cè)溫流程10第四章單片機(jī)接口設(shè)計(jì)114.1 設(shè)計(jì)原則114.2 引腳連接114.2.1 晶振電路114.2.2 串口引腳114.2.3 其它引腳11第五章 系統(tǒng)整體設(shè)計(jì)125.1 系統(tǒng)硬件電路設(shè)計(jì)125.1.1 主板電路設(shè)計(jì)125.1.2 各部分電路125.2 系統(tǒng)軟件設(shè)計(jì)145.2.1 系統(tǒng)軟件設(shè)計(jì)整體思路145.2.2 系統(tǒng)程序流圖15第六章 總結(jié)20附錄- 21 -附錄1- 21 -附錄222參考文獻(xiàn)29第一章引言1.1 溫度控制系統(tǒng)設(shè)計(jì)的背景、發(fā)展歷史及意義 溫度是生產(chǎn)過(guò)程和科學(xué)實(shí)驗(yàn)中普遍而且重要的

4、物理參數(shù),隨著社會(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í)際意義。溫度是一個(gè)重要的物理量,它反映了物體冷熱的程度,與自然界中的各種物理和化學(xué)過(guò)程相聯(lián)系。在工、農(nóng)業(yè)生產(chǎn)和日常生活中,各個(gè)環(huán)節(jié)都與溫度緊密相聯(lián),溫度的準(zhǔn)確監(jiān)測(cè)及控制占據(jù)著極其重要地位。比如,發(fā)電廠鍋爐的溫度必須控制在一定的范圍之內(nèi);許多化學(xué)反應(yīng)的工藝過(guò)程必須在適當(dāng)?shù)臏囟认虏拍苷_M(jìn)行等。沒(méi)有合適的溫

5、度環(huán)境,許多電子設(shè)備就不能正常工作,糧倉(cāng)的儲(chǔ)糧就會(huì)變質(zhì)霉?fàn)€,酒類的品質(zhì)就沒(méi)有保障。可見(jiàn),溫度的測(cè)量和控制是非常重要的。隨著電子技術(shù)和微型計(jì)算機(jī)的迅速發(fā)展,單片機(jī)在電子產(chǎn)品中的應(yīng)用已經(jīng)越來(lái)越廣泛。利用單片機(jī)對(duì)溫度進(jìn)行控制的技術(shù)也隨之而生,并日益發(fā)展和完善,且越來(lái)越顯示出它的優(yōu)越性。1.2 溫度控制系統(tǒng)的目的本設(shè)計(jì)的內(nèi)容是溫度測(cè)試控制系統(tǒng),控制對(duì)象是溫度。溫度控制在日常生活及工業(yè)領(lǐng)域應(yīng)用相當(dāng)廣泛,比如溫室、水池、發(fā)酵缸、電源等場(chǎng)所的溫度控制。而以往溫度控制是由人工完成的而且不夠重視,其實(shí)在很多場(chǎng)所溫度都需要監(jiān)控以防止發(fā)生意外。針對(duì)此問(wèn)題,本系統(tǒng)設(shè)計(jì)的目的是實(shí)現(xiàn)一種可連續(xù)高精度調(diào)溫的溫度控制系統(tǒng),它

6、應(yīng)用廣泛,功能強(qiáng)大,小巧美觀,便于攜帶,是一款既實(shí)用又廉價(jià)的控制系統(tǒng)。1.3 溫度控制系統(tǒng)完成的功能1.測(cè)量范圍0-100攝氏度2.分辨率1攝氏度3.采用3位數(shù)碼管顯示4.溫度上下限報(bào)警輸出,即達(dá)到預(yù)先設(shè)定的溫度上下限值時(shí),發(fā)光二極管閃爍報(bào)警第二章總體設(shè)計(jì)方案2.1方案考慮使用溫度傳感器,結(jié)合單片機(jī)電路設(shè)計(jì),采用一只ds18b20溫度傳感器,直接讀取被測(cè)溫度值,之后進(jìn)行轉(zhuǎn)換,依次完成設(shè)計(jì)要求。在本系統(tǒng)的電路設(shè)計(jì)方框圖如圖2-1所示,它由三部分組成:控制部分主芯片采用單片機(jī)at89c51;顯示部分采用3位led數(shù)碼管以動(dòng)態(tài)掃描方式實(shí)現(xiàn)溫度顯示;溫度采集部分采用ds18b20溫度傳感器。圖21 溫

7、度計(jì)電路總體設(shè)計(jì)方案1. 控制部分單片機(jī)at89c51具有低電壓供電和體積小等特點(diǎn),四個(gè)端口只需要兩個(gè)口就能滿足電路系統(tǒng)的設(shè)計(jì)需要,很適合便攜手持式產(chǎn)品的設(shè)計(jì)使用,系統(tǒng)應(yīng)用三節(jié)電池供電。2. 顯示部分顯示電路采用3位共陽(yáng)led數(shù)碼管,從p0口送數(shù),p2口掃描。3. 溫度采集部分ds18b20溫度傳感器是美國(guó)dallas半導(dǎo)體公司最新推出的一種改進(jìn)型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測(cè)溫元件相比,它能直接讀出被測(cè)溫。這一部分主要完成對(duì)溫度信號(hào)的采集和轉(zhuǎn)換工作,由ds18b20數(shù)字溫度傳感器及其與單片機(jī)的接口部分組成。數(shù)字溫度傳感器ds18b20把采集到的溫度通過(guò)數(shù)據(jù)引腳傳到單片機(jī)的p1.0口,單

8、片機(jī)接受溫度并存儲(chǔ)。1) ds18b20的性能特點(diǎn)如下:1) 獨(dú)特的單線接口僅需要一個(gè)端口引腳進(jìn)行通信;2) 多個(gè)ds18b20可以并聯(lián)在惟一的三線上,實(shí)現(xiàn)多點(diǎn)組網(wǎng)功能;3) 無(wú)須外部器件;4) 可通過(guò)數(shù)據(jù)線供電,電壓范圍為3.05.5v;5) 零待機(jī)功耗;6) 溫度以3位數(shù)字顯示;7) 用戶可定義報(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封裝,如圖2-2所示;ds18b20的內(nèi)部結(jié)構(gòu),如圖2-3所示。圖22 ds18b2

9、0封裝圖23 ds18b20內(nèi)部結(jié)構(gòu)(3) ds18b20內(nèi)部結(jié)構(gòu)主要由四部分組成:1) 64位光刻rom。開(kāi)始8位是產(chǎn)品類型的編號(hào),接著是每個(gè)器件的惟一的序號(hào),共有48位,最后8位是前56位的crc校驗(yàn)碼,這也是多個(gè)ds18b20可以采用一線進(jìn)行通信的原因。64位閃速rom的結(jié)構(gòu)如下:表21 rom結(jié)構(gòu)8b檢驗(yàn)crc48b序列號(hào)8b工廠代碼(10h) msb lsb msb lsb msb lsb2) 非揮發(fā)的溫度報(bào)警觸發(fā)器th和tl,可通過(guò)軟件寫入用戶報(bào)警上下限值。3) 高速暫存存儲(chǔ),可以設(shè)置ds18b20溫度轉(zhuǎn)換的精度。ds18b20溫度傳感器的內(nèi)部存儲(chǔ)器還包括一個(gè)高速暫存ram和一個(gè)非

10、易失性的可電擦除的e2pram。高速暫存ram的結(jié)構(gòu)為8字節(jié)的存儲(chǔ)器,結(jié)構(gòu)如表2-2所示。頭2個(gè)字節(jié)包含測(cè)得的溫度信息,第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位一直為,tm是工作模式位,用于設(shè)置ds18b20在工作模式還是在測(cè)試模式。 表22 ds18b20內(nèi)部存儲(chǔ)器結(jié)構(gòu)byte0溫度測(cè)量值lsb(50h)byte1溫度測(cè)量值msb(50h)e2prombyte2th高溫寄存器-th高溫寄存器b

11、yte3tl低溫寄存器-tl 低溫寄存器byte4配位寄存器-配位寄存器byte5預(yù)留(ffh)byte6預(yù)留(0ch)byte7預(yù)留(ioh)byte8循環(huán)冗余碼校驗(yàn)(crc)圖2-3ds18b20tm r1r0 1 1 1 1 12) 非揮發(fā)的溫度報(bào)警觸發(fā)器th和tl,可通過(guò)軟件寫入用戶報(bào)警上下限值。3) 高速暫存存儲(chǔ),可以設(shè)置ds18b20溫度轉(zhuǎn)換的精度。ds18b20出廠時(shí)該位被設(shè)置為0,用戶要去改動(dòng),r1和r0決定溫度轉(zhuǎn)換的精度位數(shù),來(lái)設(shè)置分辨率。 由表2-4可知,分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時(shí)間越長(zhǎng)。因此,在實(shí)際應(yīng)用中要將分辨率和轉(zhuǎn)換時(shí)間權(quán)衡考慮。高速暫存ram的第6、7、8字

12、節(jié)保留未用,表現(xiàn)為全邏輯1。第9字節(jié)讀出前面所有8字節(jié)的crc碼,可用來(lái)檢驗(yàn)數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。當(dāng)ds18b20接收到溫度轉(zhuǎn)換命令后,開(kāi)始啟動(dòng)轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲(chǔ)在高速暫存存儲(chǔ)器的第1、2字節(jié)。單片機(jī)可以通過(guò)單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時(shí)低位在先,高位在后,數(shù)據(jù)格式以0.0625lsb形式表示。當(dāng)符號(hào)位s0時(shí),表示測(cè)得的溫度值為正值,可以直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)符號(hào)位s1時(shí),表示測(cè)得的溫度值為負(fù)值,要先將補(bǔ)碼變成原碼,再計(jì)算十進(jìn)制數(shù)值。 表2-5是一部分溫度值對(duì)應(yīng)的二進(jìn)制溫度數(shù)據(jù)。表24 ds18b20溫度轉(zhuǎn)換時(shí)間表r1r0分辨率/位

13、溫度最大轉(zhuǎn)向時(shí)間/ms00993.750110187.510113751112750表25一部分溫度對(duì)應(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 0000fff8h-10.1251111 1111 0101 1110ff5eh-2

14、5.06251111 1110 0110 1111fe6fh-551111 1100 1001 0000fc90h4) crc的產(chǎn)生 在64 b rom的最高有效字節(jié)中存儲(chǔ)有循環(huán)冗余校驗(yàn)碼(crc)。主機(jī)根據(jù)rom的前56位來(lái)計(jì)算crc值,并和存入ds18b20中的crc值做比較,以判斷主機(jī)收到的rom數(shù)據(jù)是否正確。另外,由于ds18b20單線通信功能是分時(shí)完成的,它有嚴(yán)格的時(shí)隙概念,因此讀寫時(shí)序很重要。系統(tǒng)對(duì)ds18b20的各種操作按協(xié)議進(jìn)行。操作協(xié)議為:初使化ds18b20(發(fā)復(fù)位脈沖)發(fā)rom功能命令發(fā)存儲(chǔ)器操作命令處理數(shù)第三章 ds18b20溫度傳感器簡(jiǎn)介3.1 溫度傳感器的歷史及簡(jiǎn)介

15、溫度的測(cè)量是從金屬(物質(zhì))的熱脹冷縮開(kāi)始。水銀溫度計(jì)至今仍是各種溫度測(cè)量的計(jì)量標(biāo)準(zhǔn)。可是它的缺點(diǎn)是只能近距離觀測(cè),而且水銀有毒,玻璃管易碎。代替水銀的有酒精溫度計(jì)和金屬簧片溫度計(jì),它們雖然沒(méi)有毒性,但測(cè)量精度很低,只能作為一個(gè)概略指示。不過(guò)在居民住宅中使用已可滿足要求。在工業(yè)生產(chǎn)和實(shí)驗(yàn)研究中為了配合遠(yuǎn)傳儀表指示,出現(xiàn)了許多不同的溫度檢測(cè)方法,常用的有電阻式、熱電偶式、pn結(jié)型、輻射型、光纖式及石英諧振型等。它們都是基于溫度變化引起其物理參數(shù)(如電阻值,熱電勢(shì)等)的變化的原理。隨著大規(guī)模集成電路工藝的提高,出現(xiàn)了多種集成的數(shù)字化溫度傳感器。3.2 ds18b20的工作原理3.2.1 ds18b2

16、0工作時(shí)序根據(jù)ds18b20的通訊協(xié)議,主機(jī)控制ds18b20完成溫度轉(zhuǎn)換必須經(jīng)過(guò)三個(gè)步驟:1. 每一次讀寫之前都必須要對(duì)ds18b20進(jìn)行復(fù)位;2. 復(fù)位成功后發(fā)送一條rom指令;3. 最后發(fā)送ram指令,這樣才能對(duì)ds18b20進(jìn)行預(yù)定的操作。復(fù)位要求主cpu將數(shù)據(jù)線下拉500微秒,然后釋放,ds18b20收到信號(hào)后等待1560微秒左右后發(fā)出60240微秒的存在低脈沖,主cpu收到此信號(hào)表示復(fù)位成功。其工作時(shí)序包括初始化時(shí)序、寫時(shí)序和讀時(shí)序,具體工作方法如圖3-1,3-2,3-3所示。(1) 初始化時(shí)序 圖31 初始化時(shí)序總線上的所有傳輸過(guò)程都是以初始化開(kāi)始的,主機(jī)響應(yīng)應(yīng)答脈沖。應(yīng)答脈沖使

17、主機(jī)知道,總線上有從機(jī)設(shè)備,且準(zhǔn)備就緒。主機(jī)輸出低電平,保持低電平時(shí)間至少480us,以產(chǎn)生復(fù)位脈沖。接著主機(jī)釋放總線,4.7k上拉電阻將總線拉高,延時(shí)1560us,并進(jìn)入接受模式,以產(chǎn)生低電平應(yīng)答脈沖,若為低電平,再延時(shí)480us。(2) 寫時(shí)序圖32 寫時(shí)序 寫時(shí)序包括寫0時(shí)序和寫1時(shí)序。所有寫時(shí)序至少需要60us,且在2次獨(dú)立的寫時(shí)序之間至少需要1us的恢復(fù)時(shí)間,都是以總線拉低開(kāi)始。寫1時(shí)序,主機(jī)輸出低電平,延時(shí)2us,然后釋放總線,延時(shí)60us。寫0時(shí)序,主機(jī)輸出低電平,延時(shí)60us,然后釋放總線,延時(shí)2us。(3) 讀時(shí)序 圖33 讀時(shí)序總線器件僅在主機(jī)發(fā)出讀時(shí)序是,才向主機(jī)傳輸數(shù)據(jù)

18、,所以,在主機(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.3.2.2 rom操作命令當(dāng)主機(jī)收到dsl8b20 的響應(yīng)信號(hào)后,便可以發(fā)出rom 操作命令之一,這些命令如表3-1:rom操作命令。3.3 ds18b20的測(cè)溫原理3.3.1 ds18b20的測(cè)溫原理:每一片dsl8b20在其r

19、om中都存有其唯一的48位序列號(hào),在出廠前已寫入片內(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è)溫原理如圖3-4所示,圖中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)器1,高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產(chǎn)生的信號(hào)作為減法計(jì)數(shù)器2的脈沖輸入,圖中還隱含著計(jì)數(shù)門,當(dāng)計(jì)數(shù)門打開(kāi)時(shí),ds18b20就對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖后進(jìn)行計(jì)數(shù),進(jìn)而完成溫度測(cè)量。計(jì)數(shù)門的

20、開(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)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到減法計(jì)數(shù)器2計(jì)數(shù)到0時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即為所測(cè)溫度。圖3-5中的斜率累加器用于補(bǔ)償和修正測(cè)溫過(guò)程中的非線性,其輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)門仍未關(guān)閉就重復(fù)上述過(guò)程,直至溫度寄存

21、器值達(dá)到被測(cè)溫度值. 表31 rom操作命令指令約定代碼功 能讀rom33h讀ds18b20 rom中的編碼符合rom55h發(fā)出此命令之后,接著發(fā)出64位rom編碼,訪問(wèn)單線總線上與該編碼相對(duì)應(yīng)的ds18b20 使之作出響應(yīng),為下一步對(duì)該ds18b20的讀寫作準(zhǔn)備搜索rom0f0h用于確定掛接在同一總線上ds18b20的個(gè)數(shù)和識(shí)別64位rom地址,為操作各器件作好準(zhǔn)備跳過(guò)rom0cch忽略64位rom地址,直接向ds18b20發(fā)溫度變換命令,適用于單片工作。續(xù)表31告警搜索命 令0ech執(zhí)行后,只有溫度超過(guò)設(shè)定值上限或者下限的片子才做出響應(yīng)溫度變換44h啟動(dòng)ds18b20進(jìn)行溫度轉(zhuǎn)換,轉(zhuǎn)換時(shí)間

22、最長(zhǎng)為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的供電模式,寄生供電時(shí)ds18b20發(fā)送“0”,外接電源供電ds18b20發(fā)送“1” 另外,由于ds18b20單線通信功能是分時(shí)完成的,他有嚴(yán)格的時(shí)隙概念,因此讀寫時(shí)序很重要。系統(tǒng)對(duì)ds18b20的各種操作必須按協(xié)議進(jìn)行。操作協(xié)議為

23、:初始化ds18b20(發(fā)復(fù)位脈沖)發(fā)rom功能命令發(fā)存儲(chǔ)器操作命令處理數(shù)據(jù)。減法計(jì)數(shù)器斜坡累加器減到0減法計(jì)數(shù)器預(yù) 置低溫度系數(shù)振 蕩 器高溫度系數(shù)振 蕩 器計(jì)數(shù)比較器預(yù) 置溫度寄存器減到0圖34 測(cè)溫原理內(nèi)部裝置3.3.2 ds18b20的測(cè)溫流程初始化ds18b20跳過(guò)rom匹配溫度變換延時(shí)1s跳過(guò)rom匹配讀暫存器轉(zhuǎn)換成顯示碼數(shù)碼管顯示圖35 ds18b20測(cè)溫流程.第四章單片機(jī)接口設(shè)計(jì)4.1 設(shè)計(jì)原則ds18b20可以采用兩種方式供電,一種是采用電源供電方式,此時(shí)ds18b20的1腳接地,2腳作為信號(hào)線,3腳接電源。另一種是寄生電源供電方式,如圖4-1所示單片機(jī)端口接單線總線,為保證

24、在有效的ds18b20時(shí)鐘周期內(nèi)提供足夠的電流,可用一個(gè)mosfet管來(lái)完成對(duì)總線的上拉。本設(shè)計(jì)采用電源供電方式, p1.1口接單線總線為保證在有效的ds18b20時(shí)鐘周期內(nèi)提供足夠的電流,可用一個(gè)mosfet管和89s51的p1.0來(lái)完成對(duì)總線的上拉。當(dāng)ds18b20處于寫存儲(chǔ)器操作和溫度a/d變換操作時(shí),總線上必須有強(qiáng)的上拉,上拉開(kāi)啟時(shí)間最大為10 s。采用寄生電源供電方式是vdd和gnd端均接地。由于單線制只有一根線,因此發(fā)送接收口必須是三狀態(tài)的。主機(jī)控制ds18b20完成溫度轉(zhuǎn)換必須經(jīng)過(guò)3個(gè)步驟:l 初始化;l rom操作指令;l 存儲(chǔ)器操作指令。4.2 引腳連接4.2.1 晶振電路單

25、片機(jī)xial1和xial2分別接30pf的電容,中間再并個(gè)12mhz的晶振,形成單片機(jī)的晶振電路。4.2.2 串口引腳 p0口接9個(gè)2.2k的排阻然后接到顯示電路上。p1.1和p1.2引腳接繼電器電路的4.7k電阻上,p1口其他引腳懸空p2口中p2.0、p2.1、p2.2、p2.3分別接到顯示電路的4.7k電阻上,p2.5接蜂鳴器電路,其他引腳懸空p3口中p3.5、p3.6、p3.7接到按鍵電路4.2.3 其它引腳 ale引腳懸空,復(fù)位引腳接到復(fù)位電路、vcc接電源、vss接地、ea接電源第五章 系統(tǒng)整體設(shè)計(jì)5.1 系統(tǒng)硬件電路設(shè)計(jì)5.1.1 主板電路設(shè)計(jì)單片機(jī)的p1.0接ds18b20的2號(hào)

26、引腳,p0口送數(shù)p2口掃描,p1.1、p1.2控制二極管閃爍報(bào)警。如附錄2。5.1.2 各部分電路(1) 顯示電路顯示電路采用了7段共陰數(shù)碼管掃描電路,節(jié)約了單片機(jī)的輸出端口,便于程序的編寫。圖51 顯示電路圖(2) 單片機(jī)電路圖52 單片機(jī)電路引腳圖 (3) ds18b20溫度傳感器電路圖5-3 溫度傳感器電路引腳圖(4) 晶振控制電路圖5-5 晶振控制電路圖 (5) 復(fù)位電路圖5-6復(fù)位電路圖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ā)展的今天,許多由硬件完成的工作

27、,都可通過(guò)軟件編程而代替。甚至有些必須采用很復(fù)雜的硬件電路才能完成的工作,用軟件編程有時(shí)會(huì)變得很簡(jiǎn)單,如數(shù)字濾波,信號(hào)處理等。因此充分利用其內(nèi)部豐富的硬件資源和軟件資源,采用與s51系列單片機(jī)相對(duì)應(yīng)的51匯編語(yǔ)言和結(jié)構(gòu)化程序設(shè)計(jì)方法進(jìn)行軟件編程。程序設(shè)計(jì)語(yǔ)言有三種:機(jī)器語(yǔ)言、匯編語(yǔ)言和高級(jí)語(yǔ)言。機(jī)器語(yǔ)言是機(jī)器唯一能“懂”的語(yǔ)言,用匯編語(yǔ)言或高級(jí)語(yǔ)言編寫的程序(稱為源程序)最終都必須翻譯成機(jī)器語(yǔ)言的程序(成為目標(biāo)程序),計(jì)算機(jī)才能“看懂”,然后逐一執(zhí)行。高級(jí)語(yǔ)言是面向問(wèn)題和計(jì)算過(guò)程的語(yǔ)言,它可通過(guò)于各種不同的計(jì)算機(jī),用戶編程時(shí)不必仔細(xì)了解所用的計(jì)算機(jī)的具體性能與指令系統(tǒng),而且語(yǔ)句的功能強(qiáng),常常一

28、個(gè)語(yǔ)句已相當(dāng)于很多條計(jì)算機(jī)指令,于是用高級(jí)語(yǔ)言編制程序的速度比較快,也便于學(xué)習(xí)和交流,但是本系統(tǒng)卻選用了匯編語(yǔ)言。原因在于,本系統(tǒng)是編制程序工作量不大、規(guī)模較小的單片機(jī)微控制系統(tǒng),使用匯編語(yǔ)言可以不用像高級(jí)語(yǔ)言那樣占用較多的存儲(chǔ)空間,適合于存儲(chǔ)容量較小的系統(tǒng)。同時(shí),本系統(tǒng)對(duì)位處理要求很高,需要解決大量的邏輯控制問(wèn)題。mcs51指令系統(tǒng)的指令長(zhǎng)度較短,它在存儲(chǔ)空間和執(zhí)行時(shí)間方面具有較高的效率,編成的程序占用內(nèi)存單元少,執(zhí)行也非常的快捷,與本系統(tǒng)的應(yīng)用要求很適合。而且mcs51指令系統(tǒng)有豐富的位操作(或稱位處理)指令,可以形成一個(gè)相當(dāng)完整的位操作指令子集,這是mcs51指令系統(tǒng)主要的優(yōu)點(diǎn)之一。對(duì)于

29、要求反應(yīng)靈敏與控制及時(shí)的工控、檢測(cè)等實(shí)時(shí)控制系統(tǒng)以及要求體積小、系統(tǒng)小的許多“電腦化”產(chǎn)品,可以充分體現(xiàn)出匯編語(yǔ)言簡(jiǎn)明、整齊、執(zhí)行時(shí)間短和易于使用的特點(diǎn)。本裝置的軟件包括主程序、讀出溫度子程序、復(fù)位應(yīng)答子程序、寫入子程序、以及有關(guān)ds18b20的程序(初始化子程序、寫程序和讀程序)5.2.2 系統(tǒng)程序流圖系統(tǒng)程序主要包括主程序,讀出溫度子程序,復(fù)位應(yīng)答子程序,寫入子程序等。1)主程序主程序的主要功能是負(fù)責(zé)溫度的實(shí)時(shí)顯示、讀出并處理ds18b20的測(cè)量的當(dāng)前溫度值,溫度測(cè)量每1s進(jìn)行一次。這樣可以在一秒之內(nèi)測(cè)量一次被測(cè)溫度,其程序流程見(jiàn)圖19所示。通過(guò)調(diào)用讀溫度子程序把存入內(nèi)存儲(chǔ)中的整數(shù)部分與小

30、數(shù)部分分開(kāi)存放在不同的兩個(gè)單元中,然后通過(guò)調(diào)用顯示子程序顯示圖5-7 主程序流程圖ds18b20復(fù)位、應(yīng)答子程序跳過(guò)rom匹配命令寫入子程序溫度轉(zhuǎn)換命令寫入子程序顯示子程序(延時(shí))ds18b20復(fù)位、應(yīng)答子程序跳過(guò)rom匹配命令寫入子程序讀溫度命令子程序終 止 圖5-8 讀出溫度子程序2)讀出溫度子程序 讀出溫度子程序的主要功能是讀出ram中的9字節(jié),在讀出時(shí)需進(jìn)行crc校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫。 ds18b20的各個(gè)命令對(duì)時(shí)序的要求特別嚴(yán)格,所以必須按照所要求的時(shí)序才能達(dá)到預(yù)期的目的,同時(shí),要注意讀進(jìn)來(lái)的是高位在后低位在前,共有12位數(shù),小數(shù)4位,整數(shù)7位,還有一位符號(hào)位。3)復(fù)

31、位、應(yīng)答子程序p1.0口清0開(kāi)始延時(shí)537usp1.0口置1否50us是否有低電平是標(biāo)志位置1p1.0口置1有234us低電平標(biāo)志位置1終止圖5-9復(fù)位、應(yīng)答子程序4)寫入子程序開(kāi)始進(jìn)位c清0終止r2是否為0p1.0置 0延時(shí)46us帶進(jìn)位右移延時(shí)12usp1.0清0圖5-10寫入子程序5)系統(tǒng)總的流程圖圖5-11系統(tǒng)總的流程圖第六章 總結(jié)本設(shè)計(jì)使用的溫度控制器結(jié)構(gòu)簡(jiǎn)單、測(cè)溫準(zhǔn)確,具有一定的實(shí)際應(yīng)用價(jià)值。該智能溫度控制器只是ds18b20在溫度控制領(lǐng)域的一個(gè)簡(jiǎn)單實(shí)例,還有許多需要完善的地方,例如可以將測(cè)得的溫度通過(guò)單片機(jī)與通訊模塊相連接,以手機(jī)短消息的方式發(fā)送給用戶,使用戶能夠隨時(shí)對(duì)溫度進(jìn)行監(jiān)

32、控。此外,還能廣泛地應(yīng)用于其他一些工業(yè)生產(chǎn)領(lǐng)域,如建筑,倉(cāng)儲(chǔ)等行業(yè)。本溫度控制系統(tǒng)可以應(yīng)用于多種場(chǎng)合,像的溫度、育嬰房的溫度、水溫的控制。用戶可靈活選擇本設(shè)計(jì)的用途,有很強(qiáng)的實(shí)用價(jià)值附錄附錄1主板電路圖附錄2程序代碼#include#include #define uchar unsigned char #define uint unsigned intuchar code table=0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e;/共陽(yáng)極字型碼int temp; /溫度值i

33、nt ss;/中間的一個(gè)變量int dd;int j;uchar data b;/定時(shí)器中斷次數(shù)uchar data buf4;/字型顯示中間變量int alarmh=420; /默認(rèn)報(bào)警值int alarml=100;/定義開(kāi)關(guān)的接入口sbit data = p36; /ds18b20接入口sbit k1=p32;/+sbit k2=p31;/-sbit k3=p33;/確認(rèn)sbit k4=p30; /切換sbit bell=p37; /蜂鳴器/sbit red=p35; /溫度上限設(shè)置指示燈/sbit green=p34; /溫度下限設(shè)置指示燈bit set=0;/初始化bit flag=

34、0;/設(shè)置標(biāo)志int n;/函數(shù)的聲明區(qū)void key_to1();void key_to2();void delay(uint); void key();void show();/函數(shù)的定義區(qū)/*延時(shí)子函數(shù)*/void delay(uint num)while(num-) ;/ds18b20溫度傳感器所需函數(shù),分為初始化,讀寫字節(jié),讀取溫度4個(gè)函數(shù)init_ds18b20(void) /傳感器初始化 uchar x=0; data = 1; /dq復(fù)位 delay(10); /稍做延時(shí) data = 0; /單片機(jī)將dq拉低 delay(80); /精確延時(shí) 大于 480us /450 d

35、ata = 1; /拉高總線 delay(20); x=data; /稍做延時(shí)后 如果x=0則初始化成功 x=1則初始化失敗 delay(30);readonechar(void) /讀一個(gè)字節(jié)uchar i=0;uchar dat = 0;for (i=8;i0;i-) data = 0; / 給脈沖信號(hào) dat=1; data = 1; / 給脈沖信號(hào) if(data) dat|=0x80; delay(8); return(dat);writeonechar(unsigned char dat)/寫一個(gè)字節(jié) uchar i=0; for (i=8; i0; i-) data = 0; d

36、ata = dat&0x01; delay(10); data = 1; dat=1; delay(8);int readtemperature(void) /讀取溫度uchar a=0;uchar b=0;int t=0;float tt=0;init_ds18b20();writeonechar(0xcc); / 跳過(guò)讀序號(hào)列號(hào)的操作writeonechar(0x44); / 啟動(dòng)溫度轉(zhuǎn)換init_ds18b20();writeonechar(0xcc); /跳過(guò)讀序號(hào)列號(hào)的操作writeonechar(0xbe); /讀取溫度寄存器等(共可讀9個(gè)寄存器) 前兩個(gè)就是溫度a=readone

37、char();/低位b=readonechar();/高位t=b;t=8;t=t|a;tt=t*0.0625;t= tt*10+0.5; return(t);void display00() /*顯示負(fù)值子函數(shù) dd=-(temp-1); buf1=dd/100;buf2=dd/100;buf3=dd%100/10;buf0=dd%10;/動(dòng)態(tài)顯示for(j=0;j5;j+) p2=0xf0; / 初始燈為滅的 p0=0xff;p2=0xf4; /顯示小數(shù)點(diǎn)p0=0x7f; /顯示小數(shù)點(diǎn)delay(100); p2=0xf0; / 初始燈為滅的 p0=0xff; p2=0xf1; /片選lcd1 p0=0xbf;delay(100); p2=0xf0; p0=0xff; p2=0xf2; /片選lcd2 p0=tablebuf2;delay(100);p2=0xf0; p0=0xff;p2=0xf4;/片選lcd3p0=tablebuf3;delay(100);p2=0xf0; p0=0xff;p2=0xf8;p0=tablebuf0; /片選lcd4delay(100);/p2=0xf0; /顯示正值子函數(shù)void display()buf1=temp/1000;/顯示百位buf2=temp/100%10;/顯示十位buf3=temp

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論