機電一體化畢業(yè)設計(論文)單片機溫度控制系統(tǒng)_第1頁
機電一體化畢業(yè)設計(論文)單片機溫度控制系統(tǒng)_第2頁
機電一體化畢業(yè)設計(論文)單片機溫度控制系統(tǒng)_第3頁
機電一體化畢業(yè)設計(論文)單片機溫度控制系統(tǒng)_第4頁
機電一體化畢業(yè)設計(論文)單片機溫度控制系統(tǒng)_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、2010屆學生畢業(yè)設計(論文)材料學號 20071422學 生 畢 業(yè) 設 計(論 文)課題名稱單片機溫度控制系統(tǒng)專業(yè)班級機電一體化0703班姓 名 系 部電氣工程系實習單位萊鋼永鋒鋼鐵有限公司指導教師二0一0年 六 月 摘 要溫度是日常生活中無時不在的物理量,溫度的控制在各個領域都有積極的意義。很多行業(yè)中都有大量的用電加熱設備,如用于熱處理的加熱爐,用于融化金屬的坩鍋電阻爐及各種不同用途的溫度箱等,采用單片機對它們進行控制不僅具有控制方便、簡單、靈活性大等特點,而且還可以大幅度提高被控溫度的技術指標,從而能夠大大提高產(chǎn)品的質(zhì)量。因此,智能化溫度控制技術正被廣泛地采用。本溫度設計采用現(xiàn)在流行的

2、at89s51單片機,配以ds18b20數(shù)字溫度傳感器,該溫度傳感器可自行設置溫度上下限。單片機將檢測到的溫度信號與輸入的溫度上、下限進行比較,由此作出判斷是否啟動繼電器以開啟設備。本設計還加入了常用的數(shù)碼管顯示及狀態(tài)燈顯示燈常用電路,使得整個設計更加完整,更加靈活。該設計已應用于花房,可對花房溫度進行智能監(jiān)控。關鍵詞: 溫度箱;at89s51;單片機;控制;模擬目 錄摘 要i目 錄ii前 言3第一章 at89s51單片機簡介41.1at89s51單片機41.2主要特性41.3管腳說明4第二章 ds18b20溫度傳感器簡介72.1 溫度傳感器的歷史及簡介72.2 ds18b20的工作原理72.

3、2.1 ds18b20工作時序72.2.2 rom操作命令92.3 ds18b20的測溫原理92.3.1 ds18b20的測溫原理:92.3.2 ds18b20的測溫流程11第三章 總體設計方案123.1 方案一123.2 方案二12第四章 單片機接口設計174.1 設計原則174.2 引腳連接174.2.1 晶振電路174.2.2 串口引腳174.2.3 其它引腳18第五章 系統(tǒng)整體設計195.1 系統(tǒng)硬件電路設計195.1.1 主板電路設計195.1.2 各部分電路195.2 系統(tǒng)軟件設計215.2.1 系統(tǒng)軟件設計整體思路215.2.2 系統(tǒng)程序流圖225.3 調(diào)試26結論28參考文獻2

4、9致 謝30附 錄31前 言隨著社會的發(fā)展,科技的進步,以及測溫儀器在各個領域的應用,智能化已是現(xiàn)代溫度控制系統(tǒng)發(fā)展的主流方向。特別是近年來,溫度控制系統(tǒng)已應用到人們生活的各個方面,但溫度控制一直是一個未開發(fā)的領域,卻又是與人們息息相關的一個實際問題。針對這種實際情況,設計一個溫度控制系統(tǒng),具有廣泛的應用前景與實際意義。溫度是科學技術中最基本的物理量之一,物理、化學、生物等學科都離不開溫度。在工業(yè)生產(chǎn)和實驗研究中,像電力、化工、石油、冶金、航空航天、機械制造、糧食存儲、酒類生產(chǎn)等領域內(nèi),溫度常常是表征對象和過程狀態(tài)的最重要的參數(shù)之一。比如,發(fā)電廠鍋爐的溫度必須控制在一定的范圍之內(nèi);許多化學反應

5、的工藝過程必須在適當?shù)臏囟认虏拍苷_M行;煉油過程中,原油必須在不同的溫度和壓力條件下進行分餾才能得到汽油、柴油、煤油等產(chǎn)品。沒有合適的溫度環(huán)境,許多電子設備就不能正常工作,糧倉的儲糧就會變質(zhì)霉爛,酒類的品質(zhì)就沒有保障。因此,各行各業(yè)對溫度控制的要求都越來越高。可見,溫度的測量和控制是非常重要的。單片機在電子產(chǎn)品中的應用已經(jīng)越來越廣泛,在很多的電子產(chǎn)品中也用到了溫度檢測和溫度控制。隨著溫度控制器應用范圍的日益廣泛和多樣,各種適用于不同場合的智能溫度控制器應運而生。本設計的內(nèi)容是溫度測試控制系統(tǒng),控制對象是溫度。溫度控制在日常生活及工業(yè)領域應用相當廣泛,比如溫室、水池、發(fā)酵缸、電源等場所的溫度控

6、制。而以往溫度控制是由人工完成的而且不夠重視,其實在很多場所溫度都需要監(jiān)控以防止發(fā)生意外。針對此問題,本系統(tǒng)設計的目的是實現(xiàn)一種可連續(xù)高精度調(diào)溫的溫度控制系統(tǒng),它應用廣泛,功能強大,小巧美觀,便于攜帶,是一款既實用又廉價的控制系統(tǒng)。本設計是對溫度進行實時監(jiān)測與控制,設計的溫度控制系統(tǒng)實現(xiàn)了基本的溫度控制功能:當溫度低于設定下限溫度時,系統(tǒng)自動啟動加熱繼電器加溫,使溫度上升,同時綠燈亮。當溫度上升到下限溫度以上時,停止加溫;當溫度高于設定上限溫度時,系統(tǒng)自動啟動風扇降溫,使溫度下降,同時紅燈亮。當溫度下降到上限溫度以下時,停止降溫。溫度在上下限溫度之間時,執(zhí)行機構不執(zhí)行。三個數(shù)碼管即時顯示溫度,

7、精確到小數(shù)點一位。 第一章 at89s51單片機簡介 1.1at89s51單片機at89s51是一個低功耗,高性能cmos 8位單片機,片內(nèi)含4k bytes isp(in-system programmable)的可反復擦寫1000次的flash只讀程序存儲器,器件采用atmel公司的高密度、非易失性存儲技術制造,兼容標準mcs-51指令系統(tǒng)及80c51引腳結構,芯片內(nèi)集成了通用8位中央處理器和isp flash存儲單元,功能強大的微型計算機的at89s51可為許多嵌入式控制應用系統(tǒng)提供高性價比的解決方案。 at89s51具有如下特點:40個引腳,4k bytes flash片內(nèi)程序存儲器,

8、128 bytes的隨機存取數(shù)據(jù)存儲器(ram),32個外部雙向輸入/輸出(i/o)口,5個中斷優(yōu)先級2層中斷嵌套中斷,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,看門狗(wdt)電路,片內(nèi)時鐘振蕩器。 此外,at89s51設計和配置了振蕩頻率可為0hz并可通過軟件設置省電模式??臻e模式下,cpu暫停工作,而ram定時計數(shù)器,串行口,外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結振蕩器而保存ram的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復位。同時該芯片還具有pdip、tqfp和plcc等三種封裝形式,以適應不同產(chǎn)品的需求。 1.2主要特性 8031 cpu與mcs-51 兼容 4k字節(jié)可編程fl

9、ash存儲器(壽命:1000寫/擦循環(huán)) 全靜態(tài)工作:0hz-33mhz 三級程序存儲器保密鎖定 128*8位內(nèi)部ram 32條可編程i/o線 兩個16位定時器/計數(shù)器 6個中斷源 可編程串行通道 低功耗的閑置和掉電模式 片內(nèi)振蕩器和時鐘電路 1.3管腳說明 vcc:供電電壓。 gnd:接地。 p0口:p0口為一個8位漏級開路雙向i/o口,每腳可吸收8ttl門電流。當p1口的管腳第一次寫1時,被定義為高阻輸入。p0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在fiash編程時,p0 口作為原碼輸入口,當fiash進行校驗時,p0輸出原碼,此時p0外部必須被拉高。 p1口:p1

10、口是一個內(nèi)部提供上拉電阻的8位雙向i/o口,p1口緩沖器能接收輸出4ttl門電流。p1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,p1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在flash編程和校驗時,p1口作為第八位地址接收。 p2口:p2口為一個內(nèi)部上拉電阻的8位雙向i/o口,p2口緩沖器可接收,輸出4個ttl門電流,當p2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,p2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。p2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,p2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上

11、拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,p2口輸出其特殊功能寄存器的內(nèi)容。p2口在flash編程和校驗時接收高八位地址信號和控制信號。 p3口:p3口管腳是8個帶內(nèi)部上拉電阻的雙向i/o口,可接收輸出4個ttl門電流。當p3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,p3口將輸出電流(ill)這是由于上拉的緣故。 p3.0 rxd(串行輸入口) p3.1 txd(串行輸出口) p3.2 /int0(外部中斷0) p3.3 /int1(外部中斷1) p3.4 t0(記時器0外部輸入) p3.5 t1(記時器1外部輸入) p3.6 /wr(外部數(shù)據(jù)存儲

12、器寫選通) p3.7 /rd(外部數(shù)據(jù)存儲器讀選通) p3口同時為閃爍編程和編程校驗接收一些控制信號。 i/o口作為輸入口時有兩種工作方式,即所謂的讀端口與讀引腳。讀端口時實際上并不從外部讀入數(shù)據(jù),而是把端口鎖存器的內(nèi)容讀入到內(nèi)部總線,經(jīng)過某種運算或變換后再寫回到端口鎖存器。只有讀端口時才真正地把外部的數(shù)據(jù)讀入到內(nèi)部總線。上面圖中的兩個三角形表示的就是輸入緩沖器cpu將根據(jù)不同的指令分別發(fā)出讀端口或讀引腳信號以完成不同的操作。這是由硬件自動完成的,不需要我們操心,1然后再實行讀引腳操作,否則就可能讀入出錯,為什么看上面的圖,如果不對端口置1端口鎖存器原來的狀態(tài)有可能為0q端為0q為1加到場效應

13、管柵極的信號為1,該場效應管就導通對地呈現(xiàn)低阻抗,此時即使引腳上輸入的信號為1,也會因端口的低阻抗而使信號變低使得外加的1信號讀入后不一定是1。若先執(zhí)行置1操作,則可以使場效應管截止引腳信號直接加到三態(tài)緩沖器中實現(xiàn)正確的讀入,由于在輸入操作時還必須附加一個準備動作,所以這類i/o口被稱為準雙向口。89c51的p0/p1/p2/p3口作為輸入時都是準雙向口。接下來讓我們再看另一個問題,從圖中可以看出這四個端口還有一個差別,除了p1口外p0p2p3口都還有其他的功能。 rst:復位輸入。當振蕩器復位器件時,要保持rst腳兩個機器周期的高電平時間。 ale/prog:當訪問外部存儲器時,地址鎖存允許

14、的輸出電平用于鎖存地址的地位字節(jié)。在flash編程期間,此引腳用于輸入編程脈沖。在平時,ale端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個ale脈沖。如想禁止ale的輸出可在sfr8eh地址上置0。此時, ale只有在執(zhí)行movx,movc指令是ale才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ale禁止,置位無效。 /psen:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/psen有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/psen信號

15、將不出現(xiàn)。 /ea/vpp:當/ea保持低電平時,則在此期間外部程序存儲器(0000h-ffffh),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/ea將內(nèi)部鎖定為reset;當/ea端保持高電平時,此間內(nèi)部程序存儲器。在flash編程期間,此引腳也用于施加12v編程電源(vpp)。 xtal1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。 xtal2:來自反向振蕩器的輸出。 at89sxx系列單片機實現(xiàn)了isp下載功能,故而取代了89cxx系列的下載方式,也是因為這樣,atmel公司已經(jīng)停止生產(chǎn)89cxx系列的單片機。第二章 ds18b20溫度傳感器簡介2.1 溫度傳感器的歷史及簡介溫度的

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

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

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

19、所以,在主機發(fā)出讀數(shù)據(jù)命令后,必須馬上產(chǎn)生讀時序,以便從機能夠傳輸數(shù)據(jù)。所有讀時序至少需要60us,且在2次獨立的讀時序之間至少需要1us的恢復時間。每個讀時序都由主機發(fā)起,至少拉低總線1us。主機在讀時序期間必須釋放總線,并且在時序起始后的15us之內(nèi)采樣總線狀態(tài)。主機輸出低電平延時2us,然后主機轉入輸入模式延時12us,然后讀取總線當前電平,然后延時50us42.2.2 rom操作命令當主機收到dsl8b20 的響應信號后,便可以發(fā)出rom 操作命令之一,這些命令如表2.2,om操作命令。2.3 ds18b20的測溫原理2.3.1 ds18b20的測溫原理:每一片dsl8b20在其rom

20、中都存有其唯一的48位序列號,在出廠前已寫入片內(nèi)rom 中。主機在進入操作程序前必須用讀rom(33h)命令將該dsl8b20的序列號讀出。程序可以先跳過rom,啟動所有dsl8b20進行溫度變換,之后通過匹配rom,再逐一地讀回每個dsl8b20的溫度數(shù)據(jù)。ds18b20的測溫原理如圖2.4所示,圖中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號送給減法計數(shù)器1,高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產(chǎn)生的信號作為減法計數(shù)器2的脈沖輸入,圖中還隱含著計數(shù)門,當計數(shù)門打開時,ds18b20就對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖后進行計數(shù),進而完成溫度測量。計數(shù)門的開啟

21、時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將-55 所對應的基數(shù)分別置入減法計數(shù)器1和溫度寄存器中,減法計數(shù)器1和溫度寄存器被預置在-55 所對應的一個基數(shù)值。減法計數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行減法計數(shù),當減法計數(shù)器1的預置值減到0時溫度寄存器的值將加1,減法計數(shù)器1的預置將重新被裝入,減法計數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行計數(shù),如此循環(huán)直到減法計數(shù)器2計數(shù)到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即為所測溫度。圖2.3中的斜率累加器用于補償和修正測溫過程中的非線性,其輸出用于修正減法計數(shù)器的預置值,只要計數(shù)門仍未關閉就重復上述過程,直至溫度寄存器值

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

23、字節(jié)ram中讀暫存器0beh讀內(nèi)部ram中9字節(jié)的內(nèi)容寫暫存器4eh發(fā)出向內(nèi)部ram的第3,4字節(jié)寫上、下限溫度數(shù)據(jù)命令,緊跟讀命令之后,是傳送兩字節(jié)的數(shù)據(jù)復制暫存器48h將e2pram中第3,4字節(jié)內(nèi)容復制到e2pram中重調(diào)e2pram0bbh將e2pram中內(nèi)容恢復到ram中的第3,4字節(jié)讀 供 電方 式0b4h讀ds18b20的供電模式,寄生供電時ds18b20發(fā)送“0”,外接電源供電ds18b20發(fā)送“1”表2.1 rom操作命令另外,由于ds18b20單線通信功能是分時完成的,他有嚴格的時隙概念,因此讀寫時序很重要。系統(tǒng)對ds18b20的各種操作必須按協(xié)議進行。操作協(xié)議為:初始化d

24、s18b20(發(fā)復位脈沖)發(fā)rom功能命令發(fā)存儲器操作命令處理數(shù)據(jù)。減法計數(shù)器斜坡累加器減到0減法計數(shù)器預 置低溫度系數(shù)振 蕩 器高溫度系數(shù)振 蕩 器計數(shù)比較器預 置溫度寄存器減到0圖2.4 測溫原理內(nèi)部裝置2.3.2 ds18b20的測溫流程初始化ds18b20跳過rom匹配溫度變換延時1s跳過rom匹配讀暫存器轉換成顯示碼數(shù)碼管顯示圖2.5 ds18b20測溫流程第三章 總體設計方案3.1 方案一測溫電路的設計,可以使用熱敏電阻之類的器件利用其感溫效應,在將隨被測溫度變化的電壓或電流采集過來,進行a/d轉換后,就可以用單片機進行數(shù)據(jù)的處理,在顯示電路上,就可以將被測溫度顯示出來,這種設計需

25、要用到a/d轉換電路,感溫電路比較麻煩。3.2 方案二考慮使用溫度傳感器,結合單片機電路設計,采用一只ds18b20溫度傳感器,直接讀取被測溫度值,之后進行轉換,依次完成設計要求。比較以上兩種方案,很容易看出,采用方案二,電路比較簡單,軟件設計容易實現(xiàn),故實際設計中擬采用方案二。在本系統(tǒng)的電路設計方框圖如圖3.1所示,它由三部分組成:控制部分主芯片采用單片機at89s51;顯示部分采用3位led數(shù)碼管以動態(tài)掃描方式實現(xiàn)溫度顯示;溫度采集部分采用ds18b20溫度傳感器。加熱繼電器電風扇繼電器單 片 機ds18b20led顯示指示燈 圖3.1 溫度計電路總體設計方案1. 控制部分單片機at89s

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

27、片機,硬件很簡單(1) ds18b20的性能特點如下9:1) 獨特的單線接口僅需要一個端口引腳進行通信;2) 多個ds18b20可以并聯(lián)在惟一的三線上,實現(xiàn)多點組網(wǎng)功能;3) 無須外部器件;4) 可通過數(shù)據(jù)線供電,電壓范圍為3.05.5v;5) 零待機功耗;6) 溫度以3位數(shù)字顯示;7) 用戶可定義報警設置;8) 報警搜索命令識別并標志超過程序限定溫度(溫度報警條件)的器件;9) 負電壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作。 (2) ds18b20的內(nèi)部結構ds18b20采用3腳pr35封裝,如圖3.2所示;ds18b20的內(nèi)部結構,如圖3.2所示。圖3.2 ds18b

28、20封裝(3) ds18b20內(nèi)部結構主要由四部分組成5:1) 64位光刻rom。開始8位是產(chǎn)品類型的編號,接著是每個器件的惟一的序號,共有48位,最后8位是前56位的crc校驗碼,這也是多個ds18b20可以采用一線進行通信的原因10。64位閃速rom的結構如下.8b檢驗crc48b序列號8b工廠代碼(10h) msb lsb msb lsb msb lsb表3.1 rom結構圖3.3 ds18b20內(nèi)部結構2) 非揮發(fā)的溫度報警觸發(fā)器th和tl,可通過軟件寫入用戶報警上下限值。ds18b20溫度傳感器的內(nèi)部存儲器還包括一個高速暫存ram和一個非易失性的可電擦除的e2pram。高速暫存ram

29、的結構為8字節(jié)的存儲器,結構如圖3.3所示。頭2個字節(jié)包含測得的溫度信息,第3和第4字節(jié)th和tl的拷貝,是易失的,每次上電復位時被刷新。第5個字節(jié),為配置寄存器,它的內(nèi)容用于確定溫度值的數(shù)字轉換分辨率。ds18b20工作時寄存器中的分辨率轉換為相應精度的溫度數(shù)值。它的內(nèi)部存儲器結構和字節(jié)定義如圖3.3所示。低5位一直為,tm是工作模式位,用于設置ds18b20在工作模式還是在測試模式。 byte0溫度測量值lsb(50h)byte1溫度測量值msb(50h)e2prombyte2th高溫寄存器-th高溫寄存器byte3tl低溫寄存器-tl 低溫寄存器byte4配位寄存器-配位寄存器byte5

30、預留(ffh)byte6預留(0ch)byte7預留(ioh)byte8循環(huán)冗余碼校驗(crc)表3.3ds18b20內(nèi)部存儲器結構2) 非揮發(fā)的溫度報警觸發(fā)器th和tl,可通過軟件寫入用戶報警上下限值。3) 高速暫存存儲,可以設置ds18b20溫度轉換的精度。ds18b20出廠時該位被設置為0,用戶要去改動,r1和r0決定溫度轉換的精度位數(shù),來設置分辨率。由表3-1可見,分辨率越高,所需要的溫度數(shù)據(jù)轉換時間越長。因此,在實際應用中要將分辨率和轉換時間權衡考慮。高速暫存ram的第6、7、8字節(jié)保留未用,表現(xiàn)為全邏輯1。第9字節(jié)讀出前面所有8字節(jié)的crc碼,可用來檢驗數(shù)據(jù),從而保證通信數(shù)據(jù)的正確

31、性。當ds18b20接收到溫度轉換命令后,開始啟動轉換。轉換完成后的溫度值就以16位帶符號擴展的二進制補碼形式存儲在高速暫存存儲器的第1、2字節(jié)。單片機可以通過單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時低位在先,高位在后,數(shù)據(jù)格式以0.0625lsb形式表示。當符號位s0時,表示測得的溫度值為正值,可以直接將二進制位轉換為十進制;當符號位s1時,表示測得的溫度值為負值,要先將補碼變成原碼,再計算十進制數(shù)值。 r1r0分辨率/位溫度最大轉向時間/ms00993.750110187.510113751112750表3.4 ds18b20溫度轉換時間表溫度/二進制表示十六進制表示+1250000 0111 110

32、1 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表3.5一部分溫度對應值表4) crc的產(chǎn)生 在64 b rom的最高有效字節(jié)中存儲有循環(huán)冗余校驗碼(crc)。主機根據(jù)rom的前56位來計算crc值,并和存入ds18b20中的crc值做比較,以判斷主機收到的rom數(shù)據(jù)是否正確。另外,

33、由于ds18b20單線通信功能是分時完成的,它有嚴格的時隙概念,因此讀寫時序很重要。系統(tǒng)對ds18b20的各種操作按協(xié)議進行。操作協(xié)議為:初使化ds18b20(發(fā)復位脈沖)發(fā)rom功能命令發(fā)存儲器操作命令處理數(shù)據(jù)。第四章 單片機接口設計4.1 設計原則ds18b20可以采用兩種方式供電,一種是采用電源供電方式,此時ds18b20的1腳接地,2腳作為信號線,3腳接電源。另一種是寄生電源供電方式,如圖3.1所示單片機端口接單線總線,為保證在有效的ds18b20時鐘周期內(nèi)提供足夠的電流,可用一個mosfet管來完成對總線的上拉。本設計采用電源供電方式, p1.1口接單線總線為保證在有效的ds18b2

34、0時鐘周期內(nèi)提供足夠的電流,可用一個mosfet管和89s51的p1.0來完成對總線的上拉。當ds18b20處于寫存儲器操作和溫度a/d變換操作時,總線上必須有強的上拉,上拉開啟時間最大為10 s。采用寄生電源供電方式是vdd和gnd端均接地。由于單線制只有一根線,因此發(fā)送接收口必須是三狀態(tài)的。主機控制ds18b20完成溫度轉換必須經(jīng)過3個步驟:1:初始化;2:rom操作指令;3:存儲器操作指令。4.2 引腳連接4.2.1 晶振電路單片機xial1和xial2分別接30pf的電容,中間再并個12mhz的晶振,形成單片機的晶振電路。4.2.2 串口引腳 p0口接9個2.2k的排阻然后接到顯示電路

35、上。p1.0溫度傳感器ds18b20如圖4.1所示。18b20單 片 機p1.0vccgnd 圖4.1 ds18b20與單片機的接口電路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引腳懸空,復位引腳接到復位電路、vcc接電源、vss接地、ea接第五章 系統(tǒng)整體設計5.1 系統(tǒng)硬件電路設計5.1.1 主板電路設計單片機的p1.0接ds18b20的2號引腳,p0口送數(shù)p2口掃描,p1.

36、1、p1.2控制加熱器和電風扇的繼電器。如附錄2。5.1.2 各部分電路(1) 顯示電路顯示電路采用了7段共陰數(shù)碼管掃描電路,節(jié)約了單片機的輸出端口,便于程序的編寫。圖5.1 顯示電路圖(2) 單片機電路圖5.2 單片機電路引腳圖(3) ds18b20溫度傳感器電路圖5.3 溫度傳感器電路引腳圖(4) 繼電器電路圖中p1.1引腳控制加熱器繼電器。給.p1.1低電平,三極管導通,電磁鐵觸頭放下來開始工作. 圖5.4 繼電器電路圖(5)晶振控制電路圖5.5 晶振控制電路圖(6)復位電路圖5.6復位電路圖5.2 系統(tǒng)軟件設計5.2.1 系統(tǒng)軟件設計整體思路一個應用系統(tǒng)要完成各項功能,首先必須有較完善

37、的硬件作保證。同時還必須得到相應設計合理的軟件的支持,尤其是微機應用高速發(fā)展的今天,許多由硬件完成的工作,都可通過軟件編程而代替。甚至有些必須采用很復雜的硬件電路才能完成的工作,用軟件編程有時會變得很簡單,如數(shù)字濾波,信號處理等。因此充分利用其內(nèi)部豐富的硬件資源和軟件資源,采用與s51系列單片機相對應的51匯編語言和結構化程序設計方法進行軟件編程。程序設計語言有三種:機器語言、匯編語言和高級語言。機器語言是機器唯一能“懂”的語言,用匯編語言或高級語言編寫的程序(稱為源程序)最終都必須翻譯成機器語言的程序(成為目標程序),計算機才能“看懂”,然后逐一執(zhí)行。高級語言是面向問題和計算過程的語言,它可

38、通過于各種不同的計算機,用戶編程時不必仔細了解所用的計算機的具體性能與指令系統(tǒng),而且語句的功能強,常常一個語句已相當于很多條計算機指令,于是用高級語言編制程序的速度比較快,也便于學習和交流,但是本系統(tǒng)卻選用了匯編語言。原因在于,本系統(tǒng)是編制程序工作量不大、規(guī)模較小的單片機微控制系統(tǒng),使用匯編語言可以不用像高級語言那樣占用較多的存儲空間,適合于存儲容量較小的系統(tǒng)。同時,本系統(tǒng)對位處理要求很高,需要解決大量的邏輯控制問題。mcs51指令系統(tǒng)的指令長度較短,它在存儲空間和執(zhí)行時間方面具有較高的效率,編成的程序占用內(nèi)存單元少,執(zhí)行也非常的快捷,與本系統(tǒng)的應用要求很適合。而且mcs51指令系統(tǒng)有豐富的位

39、操作(或稱位處理)指令,可以形成一個相當完整的位操作指令子集,這是mcs51指令系統(tǒng)主要的優(yōu)點之一。對于要求反應靈敏與控制及時的工控、檢測等實時控制系統(tǒng)以及要求體積小、系統(tǒng)小的許多“電腦化”產(chǎn)品,可以充分體現(xiàn)出匯編語言簡明、整齊、執(zhí)行時間短和易于使用的特點。本裝置的軟件包括主程序、讀出溫度子程序、復位應答子程序、寫入子程序、以及有關ds18b20的程序(初始化子程序、寫程序和讀程序)5.2.2 系統(tǒng)程序流圖系統(tǒng)程序主要包括主程序,讀出溫度子程序,復位應答子程序,寫入子程序等。1)主程序主程序的主要功能是負責溫度的實時顯示、讀出并處理ds18b20的測量的當前溫度值,溫度測量每1s進行一次。這樣

40、可以在一秒之內(nèi)測量一次被測溫度,其程序流程見圖示。通過調(diào)用讀溫度子程序把存入內(nèi)存儲中的整數(shù)部分與小數(shù)部分分開存放在不同的兩個單元中,然后通過調(diào)用顯示子程序顯示出來圖5.7 主程序流程圖ds18b20復位、應答子程序跳過rom匹配命令寫入子程序溫度轉換命令寫入子程序顯示子程序(延時)ds18b20復位、應答子程序跳過rom匹配命令寫入子程序讀溫度命令子程序終 止 圖5.8 讀出溫度子程序2)讀出溫度子程序 讀出溫度子程序的主要功能是讀出ram中的9字節(jié),在讀出時需進行crc校驗,校驗有錯時不進行溫度數(shù)據(jù)的改寫。 ds18b20的各個命令對時序的要求特別嚴格,所以必須按照所要求的時序才能達到預期的

41、目的,同時,要注意讀進來的是高位在后低位在前,共有12位數(shù),小數(shù)4位,整數(shù)7位,還有一位符號位。3)復位、應答子程序p1.0口清0開始延時537usp1.0口置1否50us是否有低電平是標志位置1p1.0口置1有234us低電平標志位置1終止圖5.9復位、應答子程序4)寫入子程序開始進位c清0終止r2是否為0p1.0置 0延時46us帶進位右移延時12usp1.0清0圖5.10寫入子程序5)系統(tǒng)總的流程圖開 始初始化ds18b20顯示當前溫度判斷當前溫度值超過設定溫度上限啟動風扇降低溫度紅燈亮設定溫度上、下限啟動電熱爐升高溫度是否低于設定溫度下限是綠燈亮否圖5.11系統(tǒng)總的流程圖5.3 調(diào)試主

42、程序的功能是:啟動ds18b20測量溫度,將測量值與給定值進行比較,若測得溫度小于設定值,則進入加熱階段,置p1.1為低電平,這期間繼續(xù)對溫度進行監(jiān)測,直到溫度在設定范圍內(nèi),置p1.1為高電平斷開可控硅,關閉加熱器,等待下一次的啟動命令。當測得溫度大于設定值,則進入降溫階段,則置p1.2為低電平,這期間繼續(xù)對溫度進行監(jiān)測,直到溫度在設定范圍內(nèi),置p1.2為高電平斷開,關閉風扇,等待下一次的啟動命令。第一次接電調(diào)試,設置溫度上限為90攝氏度,溫度下限為20攝氏度。加熱后,溫度有時超過90攝氏度卻不報警,后經(jīng)檢查,發(fā)現(xiàn)是進位c沒有清0,于是在如下寫入程序中加入進位c清零,便排除了這個異常。wr1:

43、clr p1.0mov r3,#6djnz r3,$rrc amov p1.0,cmov r3,#23djnz r3,$setb p1.0nopdjnz r2,wr1ret; 讀ds18b2再經(jīng)實際接電調(diào)試,一切運行正常。加熱到90攝氏度時,紅燈亮起,自動斷電,而低于20攝氏度時,綠燈亮起,開始加熱。結論本設計使用的溫度控制器結構簡單、測溫準確,具有一定的實際應用價值。該智能溫度控制器只是ds18b20在溫度控制領域的一個簡單實例,還有許多需要完善的地方,例如可以將測得的溫度通過單片機與通訊模塊相連接,以手機短消息的方式發(fā)送給用戶,使用戶能夠隨時對溫度進行監(jiān)控。此外,還能廣泛地應用于其他一些工

44、業(yè)生產(chǎn)領域,如建筑,倉儲等行業(yè)。本溫度控制系統(tǒng)可以應用于多種場合,像的溫度、育嬰房的溫度、水溫的控制。用戶可靈活選擇本設計的用途,有很強的實用價值。參考文獻1李朝青,單片機原理及接口技術(簡明修訂版)m. 北京:北京航空航天大學出版社,19982李廣弟.單片機基礎m. 北京:北京航空航天大學出版社,19943金偉正.單線數(shù)字溫度傳感器的原理與應用j.電子技術與應用,20004李 鋼.1-wire總線數(shù)字溫度傳感器ds18b20原理及應用.現(xiàn)代電子技術j,20055steven f.barrett,daniel j.pack.embedded systemm.北京:電子工業(yè)出版社,20066.

45、陳躍東.ds18b20集成溫度傳感器原理與應用j.安徽機電學院學報,20027. 閻石.數(shù)字電子技術基礎(第三版)m. 北京:高等教育出版社,1989致 謝大學三年的學習和生活就要隨著這篇論文的答辯而結束了。有許許多多的舍不得,也有許許多多的感謝要說。首先要衷心感謝的是我的指導教師周偉偉老師!在我學習期間不僅傳授了做學問的秘訣,還傳授了做人的準則。這些都將使我終生受益。無論是在理論學習階段,還是在論文的選題、資料查詢、開題、研究和撰寫的每一個環(huán)節(jié),無不得到導師的悉心指導和幫助。我愿借此機會向導師表示衷心的感謝!其次要感謝所有教育過我的老師!你們傳授給我的專業(yè)知識是我不斷成長的源泉,也是完成本論

46、文的基礎。我還要向關心和支持我學習的朋友們表示真摯的謝意!感謝他們對我的關心、關注和支持! 大學的生活讓我有了堅強的性格,冷靜的頭腦和永遠樂觀的態(tài)度。最重要的是讓我有了責任感,對自己、對家人和對社會。我愿在未來的學習過程中,以更加豐厚的成果來答謝曾經(jīng)關心、幫助和支持過我的所有領導、老師、同學和朋友。永遠以一顆為人民服務的心來回報。附 錄附錄1電源線插接說明:所提供的電池盒,紅線為正,黑線為負。板子所留出來的電源插口用vcc(表示電源正)和gnd(表示電源負)標明。若沒有標明,我們會刻有記號,刻有+號處為電源正。附錄2主板電路圖附錄3程序代碼org 0000htemper_l equ 29hte

47、mper_h equ 28hflag1 equ 38h;是否檢測到ds18b20標志位a_bit equ 20h ;數(shù)碼管個位數(shù)存放內(nèi)存位置b_bit equ 21h ;數(shù)碼管十位數(shù)存放內(nèi)存位置xs equ 30hmov a,#00hmov p2,amain:lcall get_temper;調(diào)用讀溫度子程序mov a,29hmov b,aclr crlc aclr crlc aclr crlc aclr crlc aswap amov 31h,amov a,bmov c,40h;將28h中的最低位移入crrc amov c,41hrrc amov c,42hrrc amov c,43hrrc

48、 amov 29h,alcall display;調(diào)用數(shù)碼管顯示子程序ajmp main; 這是ds18b20復位初始化子程序init_1820:setb p1.0nopclr p1.0;主機發(fā)出延時537微秒的復位低脈沖mov r1,#3tsr1:mov r0,#107djnz r0,$djnz r1,tsr1setb p1.0;然后拉高數(shù)據(jù)線nopnopnopmov r0,#25htsr2:jnb p1.0,tsr3;等待ds18b20回應djnz r0,tsr2ljmp tsr4 ; 延時tsr3:setb flag1 ; 置標志位,表示ds1820存在ljmp tsr5tsr4:clr flag1 ; 清標志位,表示ds1820不存在ljmp tsr7tsr5:mov r0,#117tsr6:djnz r0,tsr6 ; 時序要求延時一段時間tsr7:setb p1.0ret; 讀出轉換后的溫度值get_temper:setb p1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論