環境溫度檢測與報警課程設計_第1頁
環境溫度檢測與報警課程設計_第2頁
環境溫度檢測與報警課程設計_第3頁
環境溫度檢測與報警課程設計_第4頁
環境溫度檢測與報警課程設計_第5頁
已閱讀5頁,還剩31頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、湖南工程學院課 程 設 計課程名稱 單片機原理與應用 課題名稱 環境溫度檢測與報警 專 業 電氣工程及其自動化 班 級 學 號 姓 名 指導教師 王迎旭 李曉秀 汪超 趙葵銀2012年 9月 14日湖南工程學院課 程 設 計 任 務 書 課程名稱 單片機與應用 課 題 環境溫度檢測與報警 專業班級 學生姓名 學 號 指導老師 王迎旭 李曉秀 汪超 趙葵銀 審 批 王迎旭 李曉秀 汪超 趙葵銀 任務書下達日期 2012年 9月 3日任務完成日期 2012年 9月 14日設計內容與設計要求設計內容:本課題要求以單片機為核心設計一個環境溫度檢測與報警系統,要求測溫范圍為10125,精度誤差在0.1以

2、內,led數碼管直讀顯示,可以由用戶自己設定上限溫度,如果環境溫度超過實際溫度或在3秒內溫度變化超過5度則會發出聲光報警。設計任務包括控制系統硬件設計和應用程序設計。要求焊接好開發板,在開發板上進行調試。設計要求:1)確定系統設計方案; 2)進行系統的硬件設計;3)完成必要元器件選擇;4)開發板焊接及測試5)系統軟件設計及調試;6)系統聯調及操作說明7)寫說明書主 要 設 計 條 件1、 mcs-51單片機實驗操作臺1臺;2、 pc機及單片機調試軟件;3、 開發板1塊; 4、 制作工具1套;5、系統設計所需的元器件。說 明 書 格 式封面課程設計任務書目錄第1章 概述(課題設計的要求、目的及意

3、義)第2章 系統總體方案選擇與說明(系統硬件電路設計框圖與工作原理)第3章 硬件電路設計(各部分電路設計、原理、參數計算、i/o分配等)第4章 應用軟件設計(流程圖、算法等)*第5章 系統仿真調試第6章 硬件調試與結果分析(開發板焊接、性能測試、結果、操作說明)第7章 結束語(系統設計小結:已完成的工作、效果、特色、不足與展望)致謝參考文獻 附錄a 系統硬件電路原理圖附錄b 程序清單評分表進 度 安 排 設計時間分為二周第一周星期一、上午:布置課題任務,課題介紹及講課。下午:借閱有關資料,總體方案討論。星期二、分班級焊接開發板星期三、確定總體方案,學習與設計相關內容。星期四、各部分方案設計,各

4、部分設計。星期五、設計及上機調試。星期六、設計并調試第二周星期一:設計及上機調試。星期二:調試,中期檢查。星期三:調試、寫說明書。星期四-星期五上午:寫說明書、完成電子版并打印成稿。星期五下午:答辯。參 考 文 獻1 王迎旭等.單片機原理及及應用.機械工業出版社.2012年2 三恒星科技.mcs-51單片機原理與應用實例m.電子工業出版社.2008年3 戴仙金.51單片機及其c語言程序開發實例m.清華大學出版社.2008年4 陳海宴.51單片機原理及應用基于keil c與proteusm.北京航空航天大學出版社.2010年 目錄第1章 概述11.1 課題的設計要求、目的及意義1第2章 總體方案

5、22.1 方案的選擇22.2 系統結構框圖及工作原理3第3章 硬件電路設計53.1 復位電路的設計53.2 時鐘振蕩電路53.3 顯示電路63.4 數字溫度傳感器ds18b2073.5 按鍵查詢電路93.6 單片機硬件資源分配10第4章 應用軟件設計114.1 主函數的設計114.2 鍵盤掃描函數的設計124.3 讀出溫度子程序134.4 報警子程序13第5章 硬件調試與結果分析145.1 調試方法145.2 調試中出現的問題及解決辦法145.3 調試結果14第6章 設計總結 17參 考 文 獻18附錄a 系統硬件原理圖19附錄b 程序清單20第1章 概述1.1 課題的設計要求、目的及意義 單

6、片機技術作為計算機技術的一個重要分支,廣泛應用于工業控制,智能化儀器儀表,家用電器,甚至電子玩具等各個領域,它具有體積小,功能多,價格低廉,使用方便,系統設計靈活等優點,因此越來越受工程技術人員的重視與親睞。 伴隨著科學技術和生產的不斷發展,需要對各種參數進行溫度測量。溫度控制和測量在各行各業中發揮著重要的作用。如在日趨發達的工業之中,利用測量與控制溫度來保證生產的正常運行。在農業中,用于保證蔬菜大棚的恒溫保產等。在單片機溫度測量系統中的關鍵是測量溫度、控制溫度和保持溫度,溫度測量是工業對象中主要的被控參數之一,具有現實意義. 本課題以單片機為核心,實現溫度的檢測和控制。用溫度感應器件模擬溫度

7、的輸入量,當溫度低于度時,發出長嘀聲報警,當溫度高于度時,啟動直流電機散熱。測量溫度范圍在0-99度。用溫度的檢測和控制,并用四位數碼顯示管顯示各路溫度,并且設置按鍵可實現對溫度的報警上下限進行控制.以此簡易的溫度檢測和控制系統來達到初步應用單片機,同時對各門學科知識作一個較好的整合,對單片機在實際溫度控制的實現形成較好的概念和理解. 第2章 系統總體方案選擇與說明2.1 方案的選擇 溫度芯片ds18b20 測量溫度,輸出信號全數字化。便于單片機處理及控制,省去傳統的測溫方法的很多外圍電路。且該芯片的物理化學性很穩定,它能用做工業測溫元件,此元件線形較好。在0100 攝氏度時,最大線形偏差小于

8、1 攝氏度。ds18b20 的最大特點之一采用了單總線的數據傳輸,由數字溫度計ds18b20和微控制器at89c52構成的溫度測量裝置,它直接輸出溫度的數字信號,可直接與計算機連接。這樣,測溫系統的結構就比較簡單,體積也不大。采用51 單片機控制,軟件編程的自由度大,可通過編程實現各種各樣的算術算法和邏輯控制,而且體積小,硬件實現簡單,安裝方便。既可以單獨對多ds18b20控制工作,還可以與pc 機通信上傳數據,另外at89c52 在工業控制上也有著廣泛的應用,編程技術及外圍功能電路的配合使用都很成熟.該系統利用at89c52芯片控制溫度傳感器ds18b20進行實時溫度檢測并顯示,能夠實現快速

9、測量環境溫度,并可以根據需要設定上下限報警溫度,利用鍵盤來進行調時和溫度查詢。這種方法測溫裝置電路簡單、精確度較高、實現方便、軟件設計也比較簡單,故本次設計采用了此法。2.2 系統結構框圖及工作原理 2.2.1系統原理該數字溫度檢測系統如圖2-2所示有四部分組成:溫度檢測,顯示控制,溫度顯示,報警。 圖2-2 系統原理(1)溫度檢測該模塊由ds18b20負責對測試點的溫度進行測量,單片機89c52對ds18b20進行控制。由于ds18b20只有一根數據線,所以系統中的數據交換,控制都由這根線完成,只需將ds18b20掛接到單片機的一個數據接口就可以直接使用。(2)顯示控制由于ds18b20是通

10、過單總線方式與單片機進行通訊的,所以對程序編寫的要求比較高。主要的程序流程是這樣的:首先由單片機發出對ds18b20進行初始化的信號,在ds18b20初始化成功后,發送指令cc跳過讀序列號的操作,接著發送指令44啟動溫度轉換,此時在對ds18b20進行初始化,在發送指令cc跳過讀序列號操作,最后發送指令be讀暫存存儲器。至此完成一個周期,當前溫度值所對應的二進制編碼已經被保存在ds18b20的rom上,我們只需將rom上的溫度值讀取出來,然后轉換成相應的十進制,就可以拿來做后面的運算和顯示了。(3)溫度顯示這部分模塊由四位八段共陽極的數碼管組成,段選部分直接與單片機相連。(4) 報警 報警裝置

11、由蜂鳴器構成,當溫度超過設定值時報警。第3章 硬件電路設計3.1復位電路的設計采用47uf的c3和10k的r2可以保證加在引腳上的高電平持續2個機器周期,即使單片機有效地復位。按鍵可以隨時使電路復位,當鍵按下時1k的r1和10k的r2串聯分壓使rst為高電平,即復位,如圖3-1所示。 圖3-1 復位電路3.2時鐘振蕩電路時鐘電路在單片機系統中起著非常重要的作用,是保證系統正常工作的基礎。晶振頻率的大小決定了單片機系統工作的快慢。本次設計采用內部方式的外部時鐘接法。為達到振蕩周期是12mhz的要求,這里要采用12mhz的晶振,電容c1、c2對頻率有微調作用,故外接晶振時,c1和c2在本設計中選擇

12、30pf,振蕩頻率取12mhz。晶振的兩個引腳分別連到xtal1和xtal2振蕩脈沖輸入引腳。具體連接圖如圖3-2所示: crystalxtal1xtal2 圖3-2 時鐘振蕩電路3.3 顯示電路本次設計中采用共陰極數碼管作為顯示器。led的驅動電路簡單,使用方便,具有耗電少、成本低廉、配置簡單靈活、安裝方便、耐振動、使用壽命長等優點。led顯示器與單片機的接口一般有動態顯示與靜態顯示接口兩種電路。本次設計中,由于單片機本身提供的i/o口有限,本次設計采用動態顯示,數碼管采用的是共陽極接法。用at89c52的p0口作段碼輸出時, 在本次設計中我們將數碼管各段加上拉電阻后接單片機p0口。我們把p

13、2口的輸出信號直接接到數碼管的位選端作為位選信號,低電平有效,具體連接如圖3-3所示。 圖3-33.4 數字溫度傳感器ds18b20本次設計的硬件電路簡單,關鍵的地方在ds18b20,也是最復雜難懂的。溫度傳感器采用的是dallas公司的單總線數字溫度傳感器ds18b20。它采用獨特的單線接口方式,僅需一個信號線發送或接收信息。測量范圍為-55125,cpu用p3.6口與ds18b20通信,如圖3-4-1即為溫度傳感器。 圖3-4-1 溫度傳感器下圖為ds18b20的內部結構框圖c64 位rom和單線接口高速緩存存儲器與控制邏輯溫度傳感器高溫觸發器th低溫觸發器tl配置寄存器8位crc發生器v

14、dd 圖3-4-2 ds18b20的內部結構框圖64位rom的結構開始8位是產品類型的編號,接著是每個器件的惟一的序號,共有48位,最后8位是前面56位的crc檢驗碼,這也是多個ds18b20可以采用一線進行通信的原因。溫度報警觸發器th和tl,可通過軟件寫入戶報警上下限。ds18b20溫度傳感器的內部存儲器還包括一個高速暫存和一個非易失性的可電擦除的eeram。高速暫存ram的結構為8字節的存儲器,結構如圖3-4所示。 表3-4 分辨率轉換頭2個字節包含測得的溫度信息,第3和第4字節th和tl的拷貝,是易失的,每次上電復位時被刷新。第5個字節, 為配置寄存器,它的內容用于確定溫度值的數字轉換

15、分辨率。ds18b20 工作時寄存器中的分辨率轉換為相應精度的溫度數值。該字節各位的定義如圖3所示。低5位一直為1,tm是工作模式位,用于設置ds18b20在工作模式還是在測試模式,ds18b20出廠時該位被設置為0,用戶要去改動,r1和r0決定溫度轉換的精度位數,來設置分辨率。ds18b20溫度轉換的時間比較長,而且分辨率越高,所需要的溫度數據轉換時間越長。因此,在實際應用中要將分辨率和轉換時間權衡考慮。當ds18b20接收到溫度轉換命令后,開始啟動轉換。轉換完成后的溫度值就以16位帶符號擴展的二進制補碼形式存儲在高速暫存存儲器的第1、2字節。單片機可以通過單線接口讀出該數據,讀數據時低位在

16、先,高位在后,數據格式以0.0625lsb形式表示。下表為ds18b20溫度轉換時間表。 減法計數器1對低溫度系數晶振產生的脈沖信號進行減法計數,當減法計數器1的預置值減到0時,溫度寄存器的值將加1,減法計數器1的預置將重新被裝入,減法計數器1重新開始對低溫度系數晶振產生的脈沖信號進行計數,如此循環直到減法計數器計數到0時,停止溫度寄存器的累加,此時溫度寄存器中的數值就是所測溫度值。其輸出用于修正減法計數器的預置值,只要計數器門仍未關閉就重復上述過程,直到溫度寄存器值大致被測溫度值。另外,由于ds18b20單線通信功能是分時完成的,它有嚴格的時隙概念,因此讀寫時序很重要。系統對ds18b20的

17、各種操作按協議進行。操作協議為:初使化ds18b20(發復位脈沖)發rom功能命令發存儲器操作命令處理數據。3.5 按鍵查詢電路 本系統設有四個獨立按鈕,如圖3-4所示。為確保隨時可以控制進入和退出查詢狀態,所以設有一個進入和退出查詢狀態的復用按鍵,自進入查詢狀態時,再按對應的通道查尋鍵即可查詢各通道信息,例如按下通道0查詢,假若當前顯示的是通道0的當前溫度及對應的數字量為上線,如果再次按下該鍵,則顯示的是為報警的下線,如果超溫次數大于設定值,則會出現報警現象,提示需對該路的控制對象進行必要的檢查。 圖3-5 按鍵電路3.6 單片機硬件資源分配 i/o口配表p0口p0.0led數碼管a段p2口

18、p2.0led數碼管w3位選端p0.1led數碼管b段p2.1led數碼管w1位選端p0.2led數碼管c段p2.2led數碼管w2位選端p0.3led數碼管d段p2.3led數碼管w4位選端p0.4led數碼管e段p2.4獨立鍵盤的s4列選端p0.5led數碼管f段p2.5獨立鍵盤的s3列選端p0.6led數碼管g段p2.6獨立鍵盤的s2列選端p0.7led數碼管dp段p2.7獨立鍵盤的s1列選端p3口p3.7蜂鳴器p3.6ds18b20接口 第4章 應用軟件設計4.1 主函數的設計整個系統的功能是由硬件電路配合軟件來實現的,當硬件基本定型后,軟件的功能也就基本定下來了。從軟件的功能不同可分

19、為兩大類:一是監控軟件(主程序),它是整個控制系統的核心,專門用來協調各執行模塊和操作者的關系。二是執行軟件(子程序),它是用來完成各種實質性的功能如測量、計算、顯示、通訊等。每一個執行軟件也就是一個小的功能執行模塊。這里將各執行模塊一一列出,并為每一個執行模塊進行功能定義和接口定義。各執行模塊規劃好后,就可以規劃監控程序了。首先要根據系統的總體功能選擇一種最合適的監控程序結構,然后根據實時性的要求,合理地安排監控軟件和各執行模塊之間地調度關系。主程序流程見圖4-1。 圖4-1 主函數流程4.2 鍵盤掃描函數的設計 圖4-2為鍵盤掃描函數流程圖,為防止誤讀電平,讀引腳時先寫“1”。本系統在p2

20、口低四位接有四個開關,故將低四位寫“1”。首先判斷有無鍵按下,然后延時去抖動后再次判有無鍵按下,然后等待鍵的釋放,最后是鍵的識別。假若p2.0按下,則k1=1,因為四個鍵均為復用鍵,所以d0+表示當前是查詢該路的溫度,對于其他2路通道也照此設計。 圖4-2 鍵盤掃描函數流程4.3 讀出溫度子程序讀出溫度子程序的主要功能是讀出ram中的9字節,在讀出時需進行crc校驗,校驗有錯時不進行溫度數據的改寫,流程如圖4-3所示。 如圖4-34.4 報警子程序 報警根據通過鍵盤設定的上下限溫度值來比較是否觸發報警裝置。流程如圖4-4所示。 圖4-4 報警子程序函數第5章 硬件調試與結果分析5.1 調試方法

21、 首先將用keil編譯好的程序進行編譯,程序無錯誤運行后產生hex文件,然后用單片機連接電腦用軟件下載到單片機中試運行看結果。 調試時單片機p0口一次連接顯示管a到dp,將j6用線短接,s1到s4分別連接單片機p2.4到p2.7顯示管位選連接單片機p2.0到p2.3,溫度檢測原件ds18b20連接p3.6,連接好電源都打開調試。5.2 調試中出現的問題及解決辦法 單片機調試時出現顯示閃爍太大,以至于顯示看不清,應看顯示抖動程序是否正確,調試時按鍵加減顯示過快出現跳躍式顯示,應該看看按鍵顯示程序的延時是否符合標準,5.3 調試結果(1)開機正常顯示溫度 圖5-3-1 開機顯示(2)按下矩陣鍵盤最

22、后一排第一個鍵顯示上限定,按兩下為下限設定。 圖5-3-2 上線顯示(3)按下矩陣鍵盤最后一排第二個鍵顯示加一功能。 圖5-3-3 上線加一(4) 按下矩陣鍵盤最后一排第三個鍵顯示減一功能。 圖5-3-4 上線減一(5)按下矩陣鍵盤最后一排第四個鍵顯示反回。 圖5-3-5 返回顯示界面 第6章 設計總結 經過兩周的努力,老師任務書交代的基本內容都已經通過單片機實現,效果不錯,(1)可以很穩定的通過ds18b20檢測顯示溫度,(2)可以自由的通過鍵盤修改溫度報警上下限,(3)當溫度超出設定范圍是,有報警提示。但是本次設計的不足之處在沒能更好的實現溫度突變報警,還有沒有顯示四位溫度,希望在以后的接

23、觸過程中更加的了解單片機,學到更多的應用。以后有什么問題要勇敢的面對,遇到的多了,自然而然的我們會自信的解決這些問題。這就是我在這次課程設計中的最大收獲。最后感謝老師和同一課題的彭瓊和姚波同學的幫助和指點,特別是王迎旭老師的熱心指導,沒有老師們的幫助我們不可能順利解決一些疑惑和難題,再次謝謝老師們的幫助和辛勤的付出。 參 考 文 獻1 王迎旭.單片機原理與應用m.北京:機械工業出版社,2004.2 三恒星科技.mcs-51單片機原理與應用實例m.北京:電子工業出版社,2008.3 戴仙金.51單片機及其c語言程序開發實例m.北京:清華大學出版社,2008.4 陳海宴.51單片機原理及應用基于k

24、eil c與proteusm.北京:北京航空航天大學出版社,2010.5 何立民.單片機高級教程應用與設計m.2版.北京:北京航空航天大學出版社,2007.附錄a 系統硬件原理圖附錄b 程序清單#include<reg52.h>#include <intrins.h>#define uchar unsigned char #define uint unsigned intsbit data = p36; /ds18b20接入口uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0

25、x7c,0x39,0x5e,0x79,0x71;/int temp; /溫度值int ss;/中間的一個變量int dd;int j;uchar data b;/定時器中斷次數uchar data buf4;/字型顯示中間變量int alarmh=500; /默認報警值int alarml=-10;/定義開關的接入口sbit k1=p25;/+sbit k2=p26;/-sbit k3=p27;/確認sbit k4=p24;sbit bell=p10;sbit hlight=p12;sbit llight=p13;sbit red=p16;sbit green=p17;bit set=0;bi

26、t flag=0;int n;/函數的聲明區void key_to1();void key_to2();void delay(uint);void key();void show();/函數的定義區/*延時子函數*/void delay(uint num)while(num-) ;/ds18b20溫度傳感器所需函數,分為初始化,讀寫字節,讀取溫度4個函數init_ds18b20(void) /傳感器初始化 uchar x=0; data = 1; /dq復位 delay(10); /稍做延時 data = 0; /單片機將dq拉低 delay(80); /精確延時 大于 480us /450

27、data = 1; /拉高總線 delay(20); x=data; /稍做延時后 如果x=0則初始化成功 x=1則初始化失敗 delay(30);readonechar(void) /讀一個字節uchar i=0;uchar dat = 0;for (i=8;i>0;i-) data = 0; / 給脈沖信號 dat>>=1; data = 1; / 給脈沖信號 if(data) dat|=0x80; delay(8); return(dat);writeonechar(unsigned char dat)/寫一個字節 uchar i=0; for (i=8; i>0

28、; i-) data = 0; data = 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); / 跳過讀序號列號的操作writeonechar(0x44); / 啟動溫度轉換init_ds18b20();writeonechar(0xcc); /跳過讀序號列號的操作writeonechar(0xbe); /讀取溫度寄存

29、器等(共可讀9個寄存器) 前兩個就是溫度a=readonechar();/低位b=readonechar();/高位t=b;t<<=8;t=t|a;tt=t*0.0625;t= tt*10+0.5; return(t);void display00() /*顯示負值子函數 dd=-(temp-1); buf1=dd/100;buf2=dd/100;buf3=dd%100/10;buf0=dd%10;/動態顯示for(j=0;j<5;j+) p2=0xff; / 初始燈為滅的 p0=0x00;p2=0xfd; /顯示小數點p0=0x80; /顯示小數點delay(100); p

30、2=0xff; / 初始燈為滅的 p0=0x00; p2=0xf7; /片選led1 p0=0x40;delay(100); p2=0xff; p0=0x00; p2=0xfb; /片選led2 p0=tablebuf2;delay(100);p2=0xff; p0=0x00;p2=0xfd; /片選led3p0=tablebuf3;delay(100);p2=0xff; p0=0x00;p2=0xfe;p0=tablebuf0; /片選led4delay(100);p2=0xff; /顯示正值子函數void display()buf1=temp/1000;/顯示百位buf2=temp/100

31、%10;/顯示十位buf3=temp%100/10;/顯示個位buf0=temp%10; /第4位 南北秒個位for(j=0;j<3;j+) p2=0xff; / 初始燈為滅的 p0=0x00;p2=0xfd; /顯示小數點p0=0x80; /顯示小數點delay(300); p2=0xff; / 初始燈為滅的 p0=0x00; p2=0xf7; /片選led1 p0=tablebuf1;delay(300); p2=0xff; p0=0x00; p2=0xfb; /片選led2 p0=tablebuf2;delay(300);p2=0xff; p0=0x00;p2=0xfd; /片選l

32、ed3p0=tablebuf3;delay(300);p2=0xff; p0=0x00;p2=0xfe;p0=tablebuf0; /片選led4delay(300);p2=0xff;void key()/按鍵掃描子程序 if(k1!=1) delay(20); if(k1!=1) while(k1!=1) key_to1(); for(n=0;n<8;n+) show(); if(k2!=1)delay(20);if(k2!=1) while(k2!=1) key_to2(); for(n=0;n<8;n+) show(); if(k3!=1)tr0=1; /復位,開定時 temp=readtemperature();if(k4!=1) delay(20); if(k4!=1) while(k4!=1); set=!set; if(set=0) red=0;green=1; else green=0;red=1; void key_to1() tr0=0; /關定時

溫馨提示

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

評論

0/150

提交評論