基于AT89C51數(shù)字溫度報警器論文_第1頁
基于AT89C51數(shù)字溫度報警器論文_第2頁
基于AT89C51數(shù)字溫度報警器論文_第3頁
基于AT89C51數(shù)字溫度報警器論文_第4頁
基于AT89C51數(shù)字溫度報警器論文_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、I 畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文) 學(xué)學(xué) 生生 姓姓 名:名: 學(xué)學(xué) 號:號: 專專 業(yè)業(yè) :應(yīng)用電子技術(shù) 院院 系系 : 電子工程學(xué)院 設(shè)計設(shè)計(論文論文)題目題目:基于 AT89S51 溫度報警器 指指 導(dǎo)導(dǎo) 教教 師師: 20132013 年年 6 6 月月 3 3 日日 II 摘要摘要 隨著時代的進步和發(fā)展,單片機技術(shù)已經(jīng)普及到我們生活,工作,科研,各個領(lǐng)域, 已經(jīng)成為一種比較成熟的技術(shù),本文將介紹一種基于單片機控制的數(shù)字溫度計,本溫度計屬 于多功能溫度計,可以設(shè)置上下報警溫度,當(dāng)溫度不在設(shè)置范圍內(nèi)時,可以報警。 關(guān)鍵詞:單片機關(guān)鍵詞:單片機 溫度計溫度計 DS18B20DS18B2

2、0 AT89C51AT89C51 1 目錄目錄 前 言.2 1 總體設(shè)計方案.3 1.1 計設(shè)要求.3 1.2 數(shù)字溫度計設(shè)計方案論證.3 1.3 總體設(shè)計框圖 .3 2系統(tǒng)組成及工作原理.4 2.1 DS18B20 溫度傳感器與單片機的接口電路 .4 2.2 7 段 LED 數(shù)碼管電路及原理 .8 2.3 系統(tǒng)整體硬件電路.9 3軟件部分.11 3.1 主程序 .12 3.2 讀出溫度子程序 .13 3.3 溫度轉(zhuǎn)換命令子程序 .13 3.4 計算溫度子程序.14 3.5 顯示數(shù)據(jù)刷新新子程序 .15 3.6 PROTEUS 軟件和 KEIL 軟件聯(lián)合仿真建立 .15 4實驗、調(diào)試及測試結(jié)果

3、分析.16 4.1 硬件調(diào)試.16 5總結(jié)與體會.17 參 考 文 獻.18 附錄一 程序代碼.19 附錄二 元器件清單.25 2 前前 言言 隨著人們生活水平的不斷提高,單片機控制無疑是人們追求的目標(biāo)之一,它所給人帶來 的方便也是不可否定的,其中數(shù)字溫度計就是一個典型的例子,但人們對它的要求越來越高, 要為現(xiàn)代人工作、科研、生活、提供更好的更方便的設(shè)施就需要從數(shù)單片機技術(shù)入手,一切 向著數(shù)字化控制,智能化控制方向發(fā)展。 目前,甲型 H1N1 流感入境,為了把好關(guān),需對流動人口進行人體體溫測量。由于溫度 傳感器 DS18B20 具有獨特的單線接口僅需要一個端口引腳進行通信,可實現(xiàn)多點組網(wǎng)功能,

4、 零待機功耗,電壓范圍僅為 3.05.5而且具有讀數(shù)方便,測溫范圍廣,測溫準(zhǔn)確的特點, 最主要的是用戶可定義報警設(shè)置,報警搜索命令識別并標(biāo)志超過程序限定溫度(溫度報警條 件) ,那么只要檢測到溫度超過設(shè)定的正常人體體溫就會發(fā)出報警,這樣就能更有效的防止 流感的擴散。出于對此問題的探索,我們通過上網(wǎng)查閱及相關(guān)資料的收集,做了本設(shè)計。 本設(shè)計所介紹的數(shù)字溫度計與傳統(tǒng)的溫度計相比,具有讀數(shù)方便,測溫范圍廣,測溫準(zhǔn) 確,其輸出溫度采用數(shù)字顯示,主要用于對測溫比較準(zhǔn)確的場所,該設(shè)計控制器使用單片機 AT89C51,測溫傳感器使用 DS18B20,用 4 位共陽極 LED 數(shù)碼管以串口傳送數(shù)據(jù),實現(xiàn)溫度顯

5、 示,能準(zhǔn)確達到以上要求。 3 1 1 總體設(shè)計方案總體設(shè)計方案 1.1 計設(shè)要求 (1)基本范圍低于-20或高于 70 (2)精度誤差小于 0.5 (3)LED 數(shù)碼直讀顯示 (4)可以任意設(shè)定溫度的上下限報警功能 1.2 數(shù)字溫度計設(shè)計方案論證 方案一 由于本設(shè)計是測溫電路,可以使用熱敏電阻之類的器件利用其感溫效應(yīng),在將隨被測溫 度變化的電壓或電流采集過來,進行 A/D 轉(zhuǎn)換后,就可以用單片機進行數(shù)據(jù)的處理,在顯示 電路上,就可以將被測溫度顯示出來,這種設(shè)計需要用到 A/D 轉(zhuǎn)換電路,感溫電路比較麻煩。 方案二 進而考慮到用溫度傳感器,在單片機電路設(shè)計中,大多都是使用傳感器,所以這是非常

6、容易想到的,所以可以采用一只溫度傳感器 DS18B20,此傳感器,可以很容易直接讀取被測 溫度值,進行轉(zhuǎn)換,就可以滿足設(shè)計要求。 從以上兩種方案,很容易看出,采用方案二,電路比較簡單,軟件設(shè)計也比較簡單,故 采用了方案二。 1.3 總體設(shè)計框圖 溫度計電路設(shè)計總體設(shè)計方框圖如圖 1 所示,控制器采用單片機 STC89S52,溫度傳感器 采用 DS18B20,用 4 位 LED 數(shù)碼管以串口傳送數(shù)據(jù)實現(xiàn)溫度顯示。 主 控 制 器 LE D 顯 示 溫 度 傳 感 器 單片機復(fù)位 時鐘振蕩 報警點按鍵調(diào)整 4 圖 1.1總體設(shè)計方框圖 5 2 2系統(tǒng)組成及工作原理系統(tǒng)組成及工作原理 2.1 DS1

7、8B20 溫度傳感器與單片機的接口電路 DS18B20 溫度傳感器是美國 DALLAS 半導(dǎo)體公司最新推出的一種改進型智能溫度傳感器, 與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據(jù)實際要求通過簡單 的編程實現(xiàn) 912 位的數(shù)字值讀數(shù)方式。DS18B20 的性能特點如下: 獨特的單線接口僅需要一個端口引腳進行通信; 多個 DS18B20 可以并聯(lián)在惟一的三線上,實現(xiàn)多點組網(wǎng)功能; 無須外部器件; 可通過數(shù)據(jù)線供電,電壓范圍為 3.05.5; 零待機功耗; 溫度以 9 或 12 位數(shù)字; 用戶可定義報警設(shè)置; 報警搜索命令識別并標(biāo)志超過程序限定溫度(溫度報警條件)的器件; 負電

8、壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作; DS18B20 采用 3 腳 PR35 封裝或 8 腳 SOIC 封裝,其內(nèi)部結(jié)構(gòu)框圖如圖 2.1 所示。 圖 2.1 DS18B20 內(nèi)部結(jié)構(gòu) 64 位 ROM 的結(jié)構(gòu)開始 8 位是產(chǎn)品類型的編號,接著是每個器件的惟一的序號,共有 48 位,最后 8 位是前面 56 位的 CRC 檢驗碼,這也是多個 DS18B20 可以采用一線進行通信的原 因。溫度報警觸發(fā)器和,可通過軟件寫入戶報警上下限 TO92 封裝的 DS18B20 的引腳排列見下圖 2.2,其引腳功能描述見下: I/O C 64 位 ROM 和 單 線 接 口 高 速

9、 緩 存 存儲器與控制邏輯 溫度傳感器 高溫觸發(fā)器 TH 低溫觸發(fā)器 TL 配置寄存器 8 位 CRC 發(fā)生器 Vdd 6 1GND 地信號 2DQ 數(shù)據(jù)輸入/輸出引腳。開漏單總線接口引腳。當(dāng)被用著在寄生電源下,也可以向器件提供電 源。 3VDD 可選擇的 VDD 引腳。當(dāng)工作于寄生電源時,此引腳必須接地。 圖 2.2 18B20 管腳圖 DS18B20 溫度傳感器的內(nèi)部存儲器還包括一個高速暫存和一個非易失性的可電擦 除的 EERAM。高速暫存 RAM 的結(jié)構(gòu)為 8 字節(jié)的存儲器,結(jié)構(gòu)如圖 3 所示。頭 2 個字節(jié)包含測 得的溫度信息,第 3 和第 4 字節(jié)和的拷貝,是易失的,每次上電復(fù)位時被

10、刷新。第 5 個字節(jié),為配置寄存器,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。DS18B20 工作時寄 存器中的分辨率轉(zhuǎn)換為相應(yīng)精度的溫度數(shù)值。該字節(jié)各位的定義如圖 2.3 所示。低位一直 為,是工作模式位,用于設(shè)置 DS18B20 在工作模式還是在測試模式,DS18B20 出廠時 該位被設(shè)置為 0,用戶要去改動,R1 和0 決定溫度轉(zhuǎn)換的精度位數(shù),來設(shè)置分辨率。 TM R1 1R01111 . . . 圖 2.3 DS18B20 字節(jié)定義 7 表 2.1 R0R1 0 0 0 1 0 1 1 1 9 10 11 12 分辨率/位 溫度最大轉(zhuǎn)向時間/ms 93.75 187.5 375 750

11、. . . 由表 2.1 可見,DS18B20 溫度轉(zhuǎn)換的時間比較長,而且分辨率越高,所需要的溫度數(shù)據(jù) 轉(zhuǎn)換時間越長。因此,在實際應(yīng)用中要將分辨率和轉(zhuǎn)換時間權(quán)衡考慮。 高速暫存的第 6、7、8 字節(jié)保留未用,表現(xiàn)為全邏輯。第 9 字節(jié)讀出前面所有 8 字節(jié)的 CRC 碼,可用來檢驗數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。 當(dāng) DS18B20 接收到溫度轉(zhuǎn)換命令后,開始啟動轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以 16 位帶 符號擴展的二進制補碼形式存儲在高速暫存存儲器的第 1、2 字節(jié)。單片機可以通過單線接 口讀出該數(shù)據(jù),讀數(shù)據(jù)時低位在先,高位在后,數(shù)據(jù)格式以 0.0625LSB 形式表示。 當(dāng)符號位0 時,表示

12、測得的溫度值為正值,可以直接將二進制位轉(zhuǎn)換為十進制;當(dāng) 符號位時,表示測得的溫度值為負值,要先將補碼變成原碼,再計算十進制數(shù)值。表 2.2 是一部分溫度值對應(yīng)的二進制溫度數(shù)據(jù)。 DS18B20 完成溫度轉(zhuǎn)換后,就把測得的溫度值與 RAM 中的 TH、T字節(jié)內(nèi)容作比較。若 TH 或 TTL,則將該器件內(nèi)的報警標(biāo)志位置位,并對主機發(fā)出的報警搜索命令作出響應(yīng)。 因此,可用多只 DS18B20 同時測量溫度并進行報警搜索。 DS18B20 的測溫原理,器件中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生 固定頻率的脈沖信號送給減法計數(shù)器;高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變, 所產(chǎn)生的信號作

13、為減法計數(shù)器 2 的脈沖輸入。器件中還有一個計數(shù)門,當(dāng)計數(shù)門打開時, DS18B20 就對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖進行計數(shù)進而完成溫度測量。計數(shù)門的開啟 時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將55所對應(yīng)的一個基數(shù)分別置入減 法計數(shù)器、溫度寄存器中,計數(shù)器和溫度寄存器被預(yù)置在55所對應(yīng)的一個基數(shù)值。 減法計數(shù)器 1 對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行減法計數(shù),當(dāng)減法計數(shù)器 1 的預(yù)置 值減到 0 時,溫度寄存器的值將加 1,減法計數(shù)器 1 的預(yù)置將重新被裝入,減法計數(shù)器 1 重 新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行計數(shù),如此循環(huán)直到減法計數(shù)器計數(shù)到 0 時, 停止溫度寄存器的

14、累加,此時溫度寄存器中的數(shù)值就是所測溫度值。其輸出用于修正減法計 數(shù)器的預(yù)置值,只要計數(shù)器門仍未關(guān)閉就重復(fù)上述過程,直到溫度寄存器值大致被測溫度值。 8 二進制表示十六進制表示 +1250000 0111 1101 0000 07D0H +850000 0101 0101 0000 0550H +25.06250000 0001 1001 0000 0191H +10.1250000 0000 1010 0001 00A2H +0.50000 0000 0000 0010 0008H 00000 0000 0000 1000 0000H -0.51111 1111 1111 0000 FFF8

15、H -10.1251111 1111 0101 1110 FF5EH -25.06251111 1110 0110 1111 FE6FH -551111 1100 1001 0000 FC90H 表 2.2一部分溫度對應(yīng)值表 另外,由于 DS18B20 單線通信功能是分時完成的,它有嚴(yán)格的時隙概念,因此讀寫時序 很重要。系統(tǒng)對 DS18B20 的各種操作按協(xié)議進行。操作協(xié)議為:初使化 DS18B20(發(fā)復(fù)位脈 沖)發(fā) ROM 功能命令發(fā)存儲器操作命令處理數(shù)據(jù)。 DS18B20 可以采用兩種方式供電,一種是采用電源供電方式,此時 DS18B20 的 1 腳接地, 9 2 腳作為信號線,3 腳接電

16、源。另一種是寄生電源供電方式,如圖 2.4 所示單片機端口接單 線總線,為保證在有效的 DS18B20 時鐘周期內(nèi)提供足夠的電流,可用一個 MOSFET 管來完成 對總線的上拉。 當(dāng) DS18B20 處于寫 存儲器操作和溫度 A/D 轉(zhuǎn)換操作時,總線上必須有強的上拉,上拉開啟時間最大為 10us。采用寄生電源供電方式時 VDD 端接地。由于單線制只有一根線,因此發(fā)送接口必須是 三態(tài)的。 DS 18B 20DS 18B 20DS 18B 20 4.7 K GNDGNDGND VCC VCC單 片 機 . . . . 圖 2.4 DS18B20 與單片機的接口電路 2.2 7 段 LED 數(shù)碼管電

17、路及原理 7 段 LED 數(shù)碼管是利用 7 個 LED(發(fā)光二極管)外加一個小數(shù)點的 LED 組合而成的顯 示設(shè)備,可以顯示 09 等 10 個數(shù)字和小數(shù)點,使用非常廣泛。 這類數(shù)碼管可以分為共陽極與共陰極兩種,共陽極就是把所有 LED 的陽極連接到共同接點 com,而每個 LED 的陰極分別為 a、b、c、d、e、f、g 及 dp(小數(shù)點);共陰極則是把所有 LED 的陰極連接到共同接點 com,而每個 LED 的陽極分別為 a、b、c、d、e、f、g 及 dp(小 數(shù)點),如下圖 2.5 所示。圖中的 8 個 LED 分別與上面那個圖中的 ADP 各段相對應(yīng),通過 控制各個 LED 的亮滅

18、來顯示數(shù)字。 10 圖 2.5 還有一種比較常用的是四位數(shù)碼管,內(nèi)部的 4 個數(shù)碼管共用 adp 這 8 根數(shù)據(jù)線,為人們 的使用提供了方便,因為里面有 4 個數(shù)碼管,所以它有 4 個公共端,加上 adp,共有 12 個 引腳,下面便是一個共陰的四位數(shù)碼管的內(nèi)部結(jié)構(gòu)圖(共陽的與之相反)。引腳排列依然是 從左下角的那個腳(1 腳)開始,以逆時針方向依次為 112 腳,下圖中的數(shù)字與之一一對 應(yīng)。 11 2.3 系統(tǒng)整體硬件電路 溫度計電路設(shè)計原理圖如圖 2.6 所示,控制器使用單片機 STC89C52,溫度傳感器使用 DS18B20,用 8 位共陽 LED 數(shù)碼管以動態(tài)掃描法實現(xiàn)溫度顯示。 圖

19、2.6 數(shù)字溫度計電路原理圖 12 3 3軟件部分軟件部分 KeilKeil 簡介簡介 Keil 是由美國 keil software 公司出品的單片機開發(fā)工具,它是目前最流行的單片機開 發(fā)工 具之一,該軟甲平臺主要包括:C51 交叉編譯器、A51 宏匯編器、BL51 連接/重定位器、 LIB51 庫管理器、OH51 Intel HEX 格式文件轉(zhuǎn)換器、RTX-51 實時操作系統(tǒng)以單片機軟件仿 真 Dscope51,它將項目管理、源代碼編譯、程序調(diào)試等集成帶一個功能強大的 Windows 32 平臺中,支持 51 匯編、PLM 和 C 語言的混合編程,功能強大、界面友好、易學(xué)易用。 Prote

20、usProteus 簡介簡介 Proteus 軟件是來自英國 Labcenter electronics 公司的 EDA 工具軟件,是一個電子設(shè)計 的教學(xué)平臺、實驗平臺和創(chuàng)新平臺,涵蓋了電工電子實驗室、電子技術(shù)實驗室、單片機應(yīng)用 實驗室等的全部功能。它是一種組合了高級原理布圖、混合模式 SPICE 仿真、PCB 設(shè)計以及 自動布線進行完整的電子設(shè)計的軟件。采用 Proteus 仿真軟件進行虛擬單片機實驗,可以仿 真單片機及其外圍器件電路,可采用仿真 51 系列、AVR、PIC 等常用的 MCU 及其外圍電路, 具有比較明顯的優(yōu)勢,如涉及到的實驗實習(xí)內(nèi)容全面、硬件投入少、學(xué)生可以自行實驗、實 驗

21、過程中損耗小、與工程實踐最為接近等。它提供了 30 多個元件庫,數(shù)千種元件,涉及到 數(shù)字和模擬、交流和直流等,并且有豐富的儀表資源。 系統(tǒng)程序的設(shè)計系統(tǒng)程序的設(shè)計 系統(tǒng)程序主要包括主程序,讀出溫度子程序,溫度轉(zhuǎn)換命令子程序,計算溫度子程序, 顯示數(shù)據(jù)刷新子程序等。 13 3.1 主程序 主程序的主要功能是負責(zé)溫度的實時顯示、讀出并處理 DS18B20 的測量的當(dāng)前溫度值, 溫度測量每 1s 進行一次。這樣可以在一秒之內(nèi)測量一次被測溫度,其程序流程見圖 3.1 所 示。 圖 3.1 主程序流程圖 初始化 調(diào)用顯示子程序 1S 到? 初次上電 讀出溫度值溫度 計算處理顯示數(shù) 據(jù)刷新 發(fā)溫度轉(zhuǎn)換開始

22、命令 N Y N Y 14 3.2 讀出溫度子程序 讀出溫度子程序的主要功能是讀出 RAM 中的 9 字節(jié),在讀出時需進行 CRC 校驗,校驗有 錯時不進行溫度數(shù)據(jù)的改寫。其程序流程圖如圖 3.2 示 圖 3.2 讀溫度流程圖 3.3 溫度轉(zhuǎn)換命令子程序 溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令,當(dāng)采用 12 位分辨率時轉(zhuǎn)換時間約為 750ms,在本程序設(shè)計中采用 1s 顯示程序延時法等待轉(zhuǎn)換的完成。溫度轉(zhuǎn)換命令子程序流程 圖如圖 3.3 所示。 Y 發(fā) DS18B20 復(fù)位命令 發(fā)跳過 ROM 命令 發(fā)讀取溫度命令 讀取操作,CRC 校驗 9 字節(jié)完? CRC 校驗正? 確? 移入溫度暫存

23、器 結(jié)束 N N Y 15 發(fā) DS18B20 復(fù)位命 令 發(fā)跳過 ROM 命令 發(fā)溫度轉(zhuǎn)換開始命令 結(jié)束 圖 3.3 溫度轉(zhuǎn)換流程圖 3.4 計算溫度子程序 計算溫度子程序?qū)?RAM 中讀取值進行 BCD 碼的轉(zhuǎn)換運算,并進行溫度值正負的判定,其 程序流程圖如圖 3.4 所示。 圖 3.4計算溫度流程圖 開始 溫度零下? 溫度值取補碼置“”標(biāo)志 計算小數(shù)位溫度 BCD 值 計算整數(shù)位溫度 BCD 值 結(jié)束 置“+”標(biāo) 志 N Y 16 3.5 顯示數(shù)據(jù)刷新新子程序 顯示數(shù)據(jù)刷新子程序主要是對顯示緩沖器中的顯示數(shù)據(jù)進行刷新操作,當(dāng)最高顯示位為 0 時將符號顯示位移入下一位。程序流程圖如圖 3.

24、5。 圖 3.5顯示數(shù)據(jù)刷新流程圖 3.6 Proteus 軟件和 Keil 軟件聯(lián)合仿真建立 整個軟件通過 C 語言編程,先在 Kile C51 集成開發(fā)環(huán)境下將編好的程序進行編譯、調(diào)試, 調(diào)試通過后會生成數(shù)碼管.HEX 文件,運行 Proteus 如圖 3-6 模擬仿真軟件,打開已繪制好 的仿真電路原理圖,選中單片機 AT89C51,左鍵點擊 AT889C51,出現(xiàn)對應(yīng)的對話框如圖 3-7 在 Program File 中找到已編譯好的“數(shù)碼管.HEX”文件,然后點擊 OK 就可以仿真了。 圖 3-7 溫度數(shù)據(jù)移入顯示寄存器 十位數(shù) 0? 百位數(shù) 0? 十位數(shù)顯示符號百 位數(shù)不顯示 百位數(shù)

25、顯示數(shù)據(jù) (不顯示符號) 結(jié)束 N N Y Y 17 4 4實驗、調(diào)試及測試結(jié)果分析實驗、調(diào)試及測試結(jié)果分析 4.1 硬件調(diào)試 檢查印制板及焊接的質(zhì)量情況,在檢查無誤后可通電檢查 LED 顯示器。若亮度不理想,可以 調(diào)整 P0 口的電阻大小,一般情況取 200 歐電阻即可 4.2 軟件調(diào)試 在 KeilC51 編譯下進行,源程序編譯及仿真調(diào)試應(yīng)分段或以子程序為單位逐個進行, 最后結(jié)合硬件實時調(diào)試 通過以上檢查后,將電路通電查看是否按要正常工作,實驗最終結(jié)果顯示實驗成功。 18 5 5總結(jié)與體會總結(jié)與體會 在本次畢業(yè)設(shè)計的過程中,發(fā)現(xiàn)很多的問題,雖然以前還做過類似這樣的課程設(shè)計,但 是這次畢業(yè)設(shè)

26、計,從一無所有到最終產(chǎn)品的完成真的是一個很艱難的過程。我們不僅要選好 材料,還要學(xué)著把這些材料合理的組織起來。所以我們要學(xué)會如何尋找和搜索自己需要的電 路圖。而且還要知道各個部位的作用。每個環(huán)節(jié)都不是一件簡單的事。通過這次設(shè)計,也學(xué) 到了許多,了解了傳感器能夠把自然的各種非電量轉(zhuǎn)換為電信號的物理思想,并且可將報警 裝置應(yīng)用到與自己專業(yè)相關(guān)的行業(yè)中去。有好多東西只有我們?nèi)L試做了,才能真正的掌握, 只學(xué)習(xí)理論有些東西還是很難理解的,更談不上掌握。因此要理論與實踐并重。 從這次的畢業(yè)論文設(shè)計中,我們真正的意識到,在以后的學(xué)習(xí)中,要理論聯(lián)系實際,把我們 所學(xué)的理論知識用到實際當(dāng)中,實踐事檢驗真理的唯

27、一標(biāo)準(zhǔn)。我們電子專業(yè)的學(xué)習(xí)更是如此, 不僅要有豐富的理論知識,還要有很強的動手能力,只有理論與實踐并重,我們的專業(yè)水平 才能提高,這就是我們在這次畢業(yè)設(shè)計中的最大收獲。 最后要感謝王曉君王老師及各位老師們在畢業(yè)設(shè)計過程中對我們畢業(yè)設(shè)計的關(guān)心和支持! 其次要向同班同學(xué)表示感謝,在我們遇到困難的時候,他們能夠幫助我,俗話說,三個 臭皮匠頂個諸葛亮,在大家你一點我一點的意見幫助下,我們才能順利的完成這次設(shè)計,謝 謝同窗好友們! 19 參參 考考 文文 獻獻 1 樓然苗,李光飛 編著 單片機課程設(shè)計指導(dǎo) 北京航空航天大學(xué)出版社 2011 年第一版 2 張俊謨編著 單片機中級教程原理與應(yīng)用 北京航空航天

28、大學(xué)出版社 2011 年第二版 3 李鋼,趙彥峰1-Wire 總線數(shù)字溫度傳感器 DS18B20 原理及應(yīng)用長安大學(xué)信息工 程學(xué)院 , 2010 4 劉建亭,毛善坤DS18B20 工作原理及基于 C 語言的接口設(shè)計河南科技大 學(xué)機電工程學(xué)院 2010 5 陳躍東DS18B20 集成溫度傳感器原理及其應(yīng)用安徽工程科技學(xué)院 2011 6 顧振宇 劉魯源 杜振輝DS18B20 接口的 C 語言程序設(shè)計天津大學(xué) 2011 7 周月霞 孫傳友DSl8B20 硬件連接及軟件編程傳感器世界雜志 2011 8 魏英智 DSl8B20 在溫度控制中的應(yīng)用黑龍江科技學(xué)院 9 張培仁MCS-51 單片機原理與應(yīng)用北

29、京:清華大學(xué)出版社,2011 10 趙亮,侯國銳單片機 C 語言編程與實例北京:人民郵電出版社,2011。 11 張粵,倪偉。DSISB20 在分布式測溫系統(tǒng)中的應(yīng)用淮陰工學(xué)報2010 12 藏榮,游風(fēng)荷,周景霞由單片機和多片 DS1820 組成的多點電溫度測控系 2011 20 附錄一附錄一 程序代碼程序代碼 /* / 名稱:用數(shù)碼管與 DS18B20 設(shè)計溫度報警器 /* / 說明:本例將報警溫度設(shè)為高:70,低:-20,當(dāng) DS18B20 感知到溫度達到此 臨界值時相應(yīng)的 LED 閃爍,同時系統(tǒng)發(fā)出報警聲。 /* #include #include #define uchar unsig

30、ned char #define uint unsigned int Sbit DQ =P36 Sbit BEEP =P37 ; Sbit HI_LED =P14; Sbit LO_LED = P15; /共陰數(shù)碼管段碼及空白顯示 Uchar code DSY_CODE = 0 x3F,0 x06,0 x5B,0 x4F,0 x66,0 x6D,0 x7D,0 x07,0 x7F,0 x6F.0 x00; /溫度小數(shù)位對照表 Uchar code df_Table=0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9; /- /報警溫度上下限,為進行正負數(shù)比較,此處注意設(shè)為 char

31、 類型 /取值范圍為-128-+127,DS18B20 支持范圍為-50-+125 /- 21 Char Alarm_Temp_HL2 = 70,-20; /- uchar CurrentT = 0; /當(dāng)前讀取的溫度整數(shù)部分 Uchar Temp_VAlue =0 x00,0 x00 /從 DS18B20 讀取的溫度值 Uchar Display_Digit【】 、0,0, ,0,0,; /待顯示的各溫度數(shù)位 Bit HI_ALarm =0 ,LO_Alarm = 0; /高低溫報警標(biāo)志 Bit DS18B20_TS_OK = 1; /傳感器正常標(biāo)志 Uint Time0_Count = 0

32、; /定位器延時累加 /- /延時 /- Void Delayuint x ( While( -x ); ) /* /初始化 DS18B20 /* Uchar Init_DS18B20 ( Uchar status; DQ =1; Delay(8); DQ =0; Delay(90); DQ =1; Delay(8); Status = DQ; 22 Delay(100); DQ = 1; Return status; /初始化成功時返回 0 ) /* / 讀一字節(jié) /* Uchar ReadOneBytel ( Uchar i,dat = o DQ=1;_nop-(); For 9( I =

33、 0 ;i 8; i+) DQ = 0:;dar =1; DQ=1;_nop_(); If(DQ) dat =0*80;Delay(30) ;DQ=1; Return dat; /寫一字節(jié) /- Void WwriteOneByte(uchar dat) uchar I; for (i=0;i=1; 23 /- /讀取溫度值 /- Void Read_ Temperature() If (Init_DS18B20()=1) /DS18B20 故障 DS18B20_is_ok=0; Else WriteOneByte(O*cc); /跳過序列號 WriteOneByte(O*44); /啟動溫度

34、轉(zhuǎn)換 Init_DS18B2090; WriteOneByte(O*cc); /跳過序列號 WriteOneByte(O*BB); /讀取溫度寄存器 Temp_Value2=Radonebte(); /溫度第 8 位 Temp_Value1=Radonebte(); /溫度高 8 位 Alarm_Temp_HL0=ReadOneByte(); / /報警溫度 TH Alarm_Temp_HL1=ReadOneByte(); /報警溫度 TL Ds18b20_is_OK=1; /- - /設(shè)置 DS18B20 溫度報警值 /- - Void Set_A1arm_Temp_Value() 24 I

35、nit_DS18B20( ) writeOneBYte(0*CC); /跳過序列號 writeOneBYte(0*4E); /將設(shè)定的溫度報警值寫入 DS18B20 writeOneBYte(Alarm_Temp_HL0);); / 寫 TL writeOneBYte(Alarm_Temp_HL1); /寫 TL writeOneBYte(0*7f); /12 位精度 Init _DS18B20( ) writeOneBYte(0*CC); /跳過序列號 writeOneBYte(0*48); /溫度報警值存入 DS18N20 /- - /在數(shù)碼管上顯示溫度 /- - Void Display

36、_Temperature( ) Uchar i; Uchar t = 150; /延時值 Uchar ng =, np =0; /負數(shù)標(biāo)識及負號顯示位置 Char Signed_Current_Temp; /注意類型為 char /如果為負數(shù)則取反加 1,并設(shè)置負號標(biāo)識及負號顯示位置 If (Temp_Value【1】 LO_Alarm =Signed_Current_Temp =ALarm_TEemp_HL1 ? 1:0; /將整數(shù)部分分解為三位待顯示數(shù)字 Display_Digit3 =CurrentT ./ 100; Display_Digit2 =CurrentT DIsplay_Di

37、git1 =CurrentT If(DISplay_Digit3 = 0) /高位為 0 則不顯示 Display_Digit3 = 10; Np = 0 xFB /調(diào)整負號位置 If(Display_Digit2 = 0? ( Display_Digit2 = 10; Np = 0 xF7; ) /調(diào)整負號位置 26 /刷新顯示若干時間 For (i = 0;i 30 ; i+) P0 =0X39; P2 = 0X7F; Delay(t) ;P2 = 0XFF; /顯示 C P0 = 0X63;P2 = 0XBF; Delay(t) ; P2 = 0 xFF; /顯示 P0 = DSY_CODEDisplay_Digit0; /小

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論