基于51單片機(jī)的溫度警報器的設(shè)計-單片機(jī)課程設(shè)計
-
資源ID:10681681
資源大?。?span id="zdww6eb" class="font-tahoma">1.80MB
全文頁數(shù):22頁
- 資源格式: DOC
下載積分:15積分
快捷下載
會員登錄下載
微信登錄下載
微信掃一掃登錄
友情提示
2、PDF文件下載后,可能會被瀏覽器默認(rèn)打開,此種情況可以點擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請知曉。
|
基于51單片機(jī)的溫度警報器的設(shè)計-單片機(jī)課程設(shè)計
單片機(jī)原理及應(yīng)用課程設(shè)計任務(wù)書二級學(xué)院:電子信息與電氣工程學(xué)院 專業(yè): 班級: 學(xué)生姓名指導(dǎo)老師 職 稱講師 課題名稱基于51單片機(jī)的溫度警報器的設(shè)計 課題工作內(nèi)容1、 設(shè)計內(nèi)容:硬件電路的設(shè)計、軟件電路的設(shè)計 2、 總體方案的選擇、討論確定。軟件流程圖的設(shè)計,硬件電路各部分的設(shè)計,程序的軟調(diào)試、整機(jī)的調(diào)試。 3、 撰寫設(shè)計報告 指標(biāo)要求1、LED能顯示傳感器的溫度 2、溫度高于30度或者小于15度,蜂鳴器發(fā)出警報 進(jìn)程安排第一天 下達(dá)任務(wù)、講授、查資料 第二天 方案確定 第三天、第四天 軟、硬件設(shè)計 第五天第八天 軟、硬件調(diào)試 第九天 撰寫報告 第十天 答辯考核主要參考文獻(xiàn)1鐘曉偉,宋哲存,基于單片機(jī)的實驗是溫濕度控制系統(tǒng)設(shè)計 A 林業(yè)機(jī)械與木工設(shè)備2葉景,基于單片機(jī)的溫度控制系統(tǒng)的設(shè)計 經(jīng)驗與交流,20083楊光友.單片機(jī)微型計算機(jī)原理及接口技術(shù)M.北京:中國水利水電出版社,2002地點起止日期9.5-9.15 22課 程 設(shè) 計題 目:基于單片機(jī)的數(shù)字溫度報警器的設(shè)計姓 名: 學(xué) 院: 專 業(yè): 班 級: 學(xué) 號: 指導(dǎo)教師:2011年 9月15日目 錄摘要41 引言41.1課題背景41.2研究內(nèi)容和意義62 芯片介紹62.1 DS18B20概述62.1.1 DS18B20封裝形式及引腳功能72.1.2 DS18B20內(nèi)部結(jié)構(gòu)72.1.3 DS18B20供電方式92.1.4 DS18B20的測溫原理102.1.5 DS18B20的ROM命令122.2 AT89C52概述132.2.1單片機(jī)AT89C52介紹132.2.2功能特性概述133 系統(tǒng)硬件設(shè)計143.1 單片機(jī)最小系統(tǒng)的設(shè)計143.2 溫度采集電路的設(shè)計153.3 LED顯示報警電路的設(shè)計164 總結(jié)16致謝17參考文獻(xiàn)18附錄A 總電路圖19附錄B 原器件清單19附錄C 溫度報警器部分程序20摘 要隨著時代的進(jìn)步和發(fā)展,溫度的測試已經(jīng)影響到我們的生活、工作、科研、各個領(lǐng)域,已經(jīng)成為了一種非常重要的事情,因此設(shè)計一個溫度測試的系統(tǒng)勢在必行。本文主要介紹了一個基于AT89C52單片機(jī)的數(shù)字溫度報警器系統(tǒng)。詳細(xì)描述了利用數(shù)字溫度傳感器DS18B20開發(fā)測溫系統(tǒng)的過程,重點對傳感器在單片機(jī)下的硬件連接,軟件編程以及各模塊系統(tǒng)流程進(jìn)行了詳盡分析,對各部分的電路也一一進(jìn)行了介紹,該系統(tǒng)可以方便的實現(xiàn)溫度的采集和報警,并可以根據(jù)需要任意上下限報警溫度,它使用起來相當(dāng)方便,具有精度高、量程寬、靈敏度高、體積小、功耗低等優(yōu)點,適合于我們?nèi)粘I詈凸?、農(nóng)業(yè)生產(chǎn)中的溫度測量,也可以當(dāng)做溫度處理模塊潛入其他系統(tǒng)中,作為其他主系統(tǒng)的輔助擴(kuò)展。DS18B20與AT89C52結(jié)合實現(xiàn)最簡溫度報警系統(tǒng),該系統(tǒng)結(jié)構(gòu)簡單,抗干擾能力強(qiáng),適合于惡劣環(huán)境下進(jìn)行現(xiàn)場溫度測量,有廣泛的應(yīng)用前景。關(guān)鍵詞:單片機(jī);溫度檢測;AT89C52;DS18B20;1 引言1.1課題背景溫度是工業(yè)對象中主要的被控參數(shù)之一,如冶金、機(jī)械、食品、化工各類工業(yè)生產(chǎn)中,廣泛使用的各種加熱爐、熱處理爐、反應(yīng)爐等,對工件的溫度處理要求嚴(yán)格控制。隨著科學(xué)技術(shù)的發(fā)展,要求溫度測量的范圍向深度和廣度發(fā)展,以滿足工業(yè)生產(chǎn)和科學(xué)技術(shù)的要求?;贏T89C51單片機(jī)提高了系統(tǒng)的可移植性、擴(kuò)展性,利于現(xiàn)代測控、自動化、電氣技術(shù)等專業(yè)實訓(xùn)要求。以單片機(jī)為核心設(shè)計的溫度報警器,具有安全可靠、操作簡單方便、智能控制等優(yōu)點。溫度對于工業(yè)生產(chǎn)如此重要,由此推進(jìn)了溫度傳感器的發(fā)展。溫度傳感器主要經(jīng)過了三個發(fā)展階段1:(1)模擬集成溫度傳感器。該傳感器是采用硅半導(dǎo)體集成工藝制成,因此亦稱硅傳感器或單片集成溫度傳感器。此種傳感器具有功能單一(僅測量溫度)、測溫誤差小、價格低、響應(yīng)速度快、傳輸距離遠(yuǎn)、體積小、微功耗等特點,適合遠(yuǎn)距離測溫、控溫,不需要進(jìn)行非線性校準(zhǔn),外圍電路簡單。它是目前在國內(nèi)外應(yīng)用最為普遍的一種集成傳感器,典型產(chǎn)品有AD590、AD592、TMP17、LM135等;(2)模擬集成溫度控制器。模擬集成溫度控制器主要包括溫控開關(guān)、可編程溫度控制器,典型產(chǎn)品有LM56、AD22105和MAX6509。某些增強(qiáng)型集成溫度控制器(例如TC652/653)中還包含了A/D轉(zhuǎn)換器以及固化好的程序,這與智能溫度傳感器有某些相似之處。但它自成系統(tǒng),工作時并不受微處理器的控制,這是二者的主要區(qū)別;(3)智能溫度傳感器 (亦稱數(shù)字溫度傳感器)。智能溫度傳感器是在20世紀(jì)90年代中期問世的,其內(nèi)部都包含溫度傳感器、A/D轉(zhuǎn)換器、信號處理器、存儲器(或寄存器)和接口電路。有的產(chǎn)品還帶多路選擇器、中央控制器(CPU)、隨機(jī)存取存儲器(RAM)和只讀存儲器(ROM)。智能溫度傳感器的特點是能輸出溫度數(shù)據(jù)及相關(guān)的溫度控制量,適配各種微控制器(MCU);并且它是在硬件的基礎(chǔ)上通過軟件來實現(xiàn)測試功能的,其智能化程度也取決于軟件的開發(fā)水平?,F(xiàn)代信息技術(shù)的三大基礎(chǔ)是信息采集2(即傳感器技術(shù))、信息傳輸(通信技術(shù))和信息處理(計算機(jī)技術(shù))。傳感器屬于信息技術(shù)的前沿尖端產(chǎn)品,尤其是溫度傳感器被廣泛用于工農(nóng)業(yè)生產(chǎn)、科學(xué)研究和生活等領(lǐng)域,數(shù)量高居各種傳感器之首。數(shù)字溫度傳感器可以直接將被檢測的溫度信息以數(shù)字化形式輸出,與傳統(tǒng)的模擬式溫度傳感器相比,具有測量精度高、功耗低、穩(wěn)定性好、外圍接口電路簡單特點。而單片機(jī)微處理器越來越豐富的外圍功能模塊,更加方便了數(shù)字式溫度傳感器輸出信號的處理。智能溫度傳感器內(nèi)部都包含溫度傳感器、A/D轉(zhuǎn)化器、信號處理器、存儲器(或寄存器)和接口電路。有的產(chǎn)品還帶多路選擇器、中央處理器(CPU)、隨機(jī)存取存儲器(RAM)和只讀存儲器(ROM)。并且它是在硬件的基礎(chǔ)上通過軟件來實現(xiàn)測試功能的,其智能化程度也取決于軟件的開發(fā)水平。進(jìn)入21世紀(jì)后,智能溫度傳感器正朝著高精度、多功能、總線標(biāo)準(zhǔn)化、高可靠性及安全性、開發(fā)虛擬傳感器和網(wǎng)絡(luò)傳感器、研制單片機(jī)測溫系統(tǒng)等的方向發(fā)展。數(shù)字化溫度傳感器可以直接將溫度量以數(shù)字脈沖信號形式輸出,具有測量精度高、抗干擾能力強(qiáng)、傳輸距離遠(yuǎn)、外圍接口電路簡單等諸多優(yōu)點。同時數(shù)字溫度傳感器還可直接與微處理器進(jìn)行接口,大大方便了傳感器輸出信號的處理.數(shù)字單總線溫度傳感器是目前最新的測溫器件,它集溫度測量,A/D轉(zhuǎn)換于一體,具有單總線結(jié)構(gòu),數(shù)字量輸出,直接與微機(jī)接口等優(yōu)點。1.2研究內(nèi)容和意義本溫度報警器以AT89C51單片機(jī)為控制核心,由一數(shù)字溫度傳感器DS18B20測量被控溫度,結(jié)合7段LED以及驅(qū)動LED的74LS245組合而成。當(dāng)被測量值超出預(yù)設(shè)范圍則發(fā)出警報,且精度高,適用于大多數(shù)工業(yè)生產(chǎn)以及教育教學(xué)領(lǐng)域。溫度是一種最基本的環(huán)境參數(shù),它是與人類的生活、工作關(guān)系最密切的物理量,也是各門學(xué)科與工程研究設(shè)計中經(jīng)常遇到和必須精確測量的物理量。從工業(yè)爐溫、環(huán)境氣溫到人體溫度;從空間、海洋到家用電器,各個技術(shù)領(lǐng)域都離不開測溫和控溫。因此,研究溫度的測量和控制方法具有重要的意義。AT89C52單片機(jī)數(shù)字溫度傳感器雙限報警系統(tǒng)譯碼顯示電路設(shè)計原理2 芯片介紹2.1 DS18B20概述DS18B20是Dallas公司繼DS1820后推出的一種改進(jìn)型智能數(shù)字溫度傳感器,與傳統(tǒng)的熱敏電阻相比,只需一根線就能直接讀出被測溫度值,并可根據(jù)實際需求來編程實現(xiàn)912位數(shù)字值的讀數(shù)方式3。2.1.1 DS18B20封裝形式及引腳功能 圖2.1 DS18B20封裝形式和引腳功能如圖2.1所示,DS18B20的外形如一只三極管,引腳名稱及作用如下:GND:接地端。DQ:數(shù)據(jù)輸入/輸出腳,與TTL電平兼容。VDD:可接電源,也可接地。因為每只DS18B20都可以設(shè)置成兩種供電方式,即數(shù)據(jù)總線供電方式和外部供電方式。采用數(shù)據(jù)總線供電方式時VDD接地,可以節(jié)省一根傳輸線,但完成數(shù)據(jù)測量的時間較長;采用外部供電方式則VDD接+5V,多用一根導(dǎo)線,但測量速度較快。2.1.2 DS18B20內(nèi)部結(jié)構(gòu)64位ROM和單線接口存儲和控制邏輯 高速緩存器溫度傳感器高溫觸發(fā)器TH低溫觸發(fā)器TL匹配寄存器8位CRC發(fā)生器電源檢 測CDQVDD內(nèi)部電源VDD圖2.2 DS18B20內(nèi)部結(jié)構(gòu)圖2.2中出示了DS18B20 的主要內(nèi)部部件,下面對DS18B20內(nèi)部部分進(jìn)行簡單的描述4:(1)64位ROM。64位ROM是由廠家使用激光刻錄的一個64位二進(jìn)制ROM代碼,是該芯片的標(biāo)識號,如表2.1所示:表2.1 64位ROM標(biāo)識8位循環(huán)冗余檢驗48位序列號8位分類編號(10H)MSB LSBMSB LSBMSB LSB 第1個8位表示產(chǎn)品分類編號,DS18B20的分類號為10H;接著為48位序列號。它是一個大于281*1012的十進(jìn)制編碼,作為該芯片的唯一標(biāo)示代碼;最后8位為前56位的CRC循環(huán)冗余校驗碼,由于每個芯片的64位ROM代碼不同,因此在單總線上能夠并接多個DS18B20進(jìn)行多點溫度實習(xí)檢驗。(2)溫度傳感器。溫度傳感器是DS18B20的核心部分,該功能部件可完成對溫度的測量通過軟件編程可將-55125范圍內(nèi)的溫度值按9位、10位、11位、12位的分辨率進(jìn)行量化,以上的分辨率都包括一個符號位,因此對應(yīng)的溫度量化值分別為0.5、0.25、0.125、0.0625,即最高分辨率為0.0625。芯片出廠時默認(rèn)為12位的轉(zhuǎn)換精度。當(dāng)接收到溫度轉(zhuǎn)換命令(44H)后,開始轉(zhuǎn)換,轉(zhuǎn)換完成后的溫度以16位帶符號擴(kuò)展的的二進(jìn)制補(bǔ)碼形式表示,存儲在高速緩存器RAM的第0,1字節(jié)中,二進(jìn)制數(shù)的前5位是符號位。如果測得的溫度大于0,這5位為0,只要將測得的數(shù)值乘上0.0625即可得到實際溫度;如果溫度小于0,這5位為1,測得的數(shù)值需要取反加1再乘上0.0625即可得到實際溫度。(3)高速緩存器。DS18B20內(nèi)部的高速緩存器包括一個高速暫存器RAM和一個非易失性可電擦除的EEPROM。非易失性可點擦除EEPROM用來存放高溫觸發(fā)器TH、低溫觸發(fā)器TL和配置寄存器中的信息。(4)配置寄存器。配置寄存器的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換率。DS18B20工作是按此寄存器的分辨率將溫度轉(zhuǎn)換為相應(yīng)精度的數(shù)值,它是高速緩存器的第5個字節(jié),該字節(jié)定義如表2.2所示:表2.2 匹配寄存器TMR0R111111TM是測試模式位,用于設(shè)置DS18B20在工作模式還是在測試模式,在DS18B20出廠時該位被設(shè)置為0,用戶不要去改動;R1和R0用來設(shè)置分辨率;其余5位均固定為1。DS18B20分辨率的設(shè)置如表2.3所示:表2.3 DS18B20分辨率的設(shè)置R1R0分辨率最大轉(zhuǎn)換時間 /ms009位93.750110位187.51011位3751112位750DS18B20依靠一個單線端口通訊。在單線端口條件下,必須先建立ROM 操作協(xié)議,才能進(jìn)行存儲器和控制操作。因此,控制器必須首先提供下面5個ROM 操作命令之一:1)讀ROM;2)匹配ROM;3)搜索ROM;4)跳過ROM;5)報警搜索。這些命令對每個器件的激光ROM 部分進(jìn)行操作,在單線總線上掛有多個器件時,可以區(qū)分出單個器件,同時可以向總線控制器指明有多少器件或是什么型號的器件。成功執(zhí)行完一條ROM 操作序列后,即可進(jìn)行存儲器和控制操作,控制器可以提供6 條存儲器和控制操作指令中的任一條。一條控制操作命令指示DS18B20完成一次溫度測量。測量結(jié)果放在DS18B20的暫存器里,用一條讀暫存器內(nèi)容的存儲器操作命令可以把暫存器中數(shù)據(jù)讀出。溫度報警觸發(fā)器TH 和TL 各由一個EEPROM字節(jié)構(gòu)成。如果沒有對DS18B20使用報警搜索命令,這些寄存器可以做為一般用途的用戶存儲器使用。可以用一條存儲器操作命令對TH 和TL 進(jìn)行寫入,對這些寄存器的讀出需要通過暫存器。所有數(shù)據(jù)都是以最低有效位在前的方式進(jìn)行讀寫。2.1.3 DS18B20供電方式DS18B20可以采用外部電源供電和寄生電源供電兩種模式。外部電源供電模式是將DS18B20的GND直接接地,DQ與但單總線相連作為信號線,VDD與外部電源正極相連。如圖2.3所示:單片機(jī)DS18B20外部+5V電源VDDDQ4.7KVCC其它單線器件圖2.3 DS18B20外部供電方式圖中DS18B20的DQ端口通過接入一個4.7K的上拉電阻到VCC,從而實現(xiàn)外部電源供電方式。寄生電源供電模式如圖2.4所示:從圖中可知,DS18B20的GND和VDD均直接接地,DQ與單總線相連,單片機(jī)其中一個I/O口與DS18B20的DQ端相連。VCC單片機(jī)DS18B20GND4.7K圖2.4 DS18B20寄生電源供電方式+5V2.1.4 DS18B20的測溫原理DS18B20的測溫原理如圖2.5所示, 其主要由斜率累加器、溫度系數(shù)振蕩器、減法計數(shù)器、溫度存儲器等功能部件組成。圖2.5 DS18B20的測溫原理DS1820 是這樣測溫5的:用一個高溫度系數(shù)的振蕩器確定一個門周期,內(nèi)部計數(shù)器在這個門周期內(nèi)對一個低溫度系數(shù)的振蕩器的脈沖進(jìn)行計數(shù)來得到溫度值。計數(shù)器被預(yù)置到對應(yīng)于-55的一個值。如果計數(shù)器在門周期結(jié)束前到達(dá)0,則溫度寄存器(同樣被預(yù)置到-55)的值增加,表明所測溫度大于-55。同時,計數(shù)器被復(fù)位到一個值,這個值由斜坡式累加器電路確定,斜坡式累加器電路用來補(bǔ)償感溫振蕩器的拋物線特性。然后計數(shù)器又開始計數(shù)直到0,如果門周期仍未結(jié)束,將重復(fù)這一過程。斜坡式累加器用來補(bǔ)償感溫振蕩器的非線性,以期在測溫時獲得比較高的分辨率。這是通過改變計數(shù)器對溫度每增加一度所需計數(shù)的的值來實現(xiàn)的。因此,要想獲得所需的分辨力,必須同時知道在給定溫度下計數(shù)器的值和每一度的計數(shù)值。DS18B20內(nèi)部對此計算的結(jié)果可提供0.5的分辨率。溫度以16bit帶符號位擴(kuò)展的二進(jìn)制補(bǔ)碼形式讀出,表2.4 給出了溫度值和輸出數(shù)據(jù)的關(guān)系。數(shù)據(jù)通過單線接口以串行方式傳輸。DS18B20測溫范圍-55+125,以0.5遞增。表2.4 溫度數(shù)據(jù)關(guān)系溫度數(shù)據(jù)輸出(二進(jìn)制)數(shù)據(jù)輸出(十六進(jìn)制)+12500000000 1111101000FA+2500000000 001100100032+0.500000000 000000010001000000000 000000000000-0.511111111 11111111FFFF-2511111111 11001110FFCE-5511111111 10010010FF92S18B20遵循單總線協(xié)議,每次測溫時都必須有4個過程6: 初始化; 傳送ROM 操作命令; 傳送ROM操作命令; 數(shù)據(jù)交換;2.1.5 DS18B20的ROM命令read ROM(讀ROM).命令代碼為33H,允許主設(shè)備讀出DS18B20的64位二進(jìn)制ROM代碼。該命令只適用于總線上存在單個DS18B20.Match ROM(匹配ROM)。命令代碼為55H,若總線上有多個從設(shè)備時,適用該命令可選中某一指定的DS18B20,即只有和64位二進(jìn)制ROM代碼完全匹配的DS18B20才能響應(yīng)其操作。Skip ROM(跳過ROM)。命令代碼為CCH,在啟動所有DS18B20轉(zhuǎn)換之前或系統(tǒng)只有一個DS18B20時,該命令將允許主設(shè)備不提供64位二進(jìn)制ROM代碼就適用存儲器操作命令。Search ROM(搜索ROM)。命令代碼為F0H,當(dāng)系統(tǒng)初次啟動時,主設(shè)備可能不知縱向上有多少個從設(shè)備或者它們的ROM代碼,適用該命令可確定系統(tǒng)中的從設(shè)備個數(shù)及其RON代碼。Alarm ROM(報警搜索ROM)。命令代碼為ECH,該命令用于鑒別和定位系統(tǒng)中超出程序設(shè)定的報警溫度值。Write scratchpad(寫暫存器)。命令代碼為4EH,允許主設(shè)備向DS18B20的暫存器寫入兩個字節(jié)的數(shù)據(jù),其中第一個字節(jié)寫入TH中,第二個字節(jié)寫入TL中??梢栽谌魏螘r刻發(fā)出復(fù)位命令終止數(shù)據(jù)的寫入。Read scratchpad(讀暫存器)。命令代碼為BEH,允許主設(shè)備讀取暫存器中的內(nèi)容。從第一個字節(jié)開始直到讀完第九個字節(jié)CRC讀完。也可以在任何時刻發(fā)出復(fù)位命令中止數(shù)據(jù)的讀取操作。Copy scratchpad(復(fù)制暫存器)。命令代碼為48H,將溫度報警觸發(fā)器TH和TL中的字節(jié)復(fù)制到非易失性EEPROM。若主機(jī)在該命令之后又發(fā)出讀操作,而DS18B20又忙于將暫存器中的內(nèi)容復(fù)制到EEPROM時,DS18B20就會輸出一個“0”,若復(fù)制結(jié)束,則DS18B20輸出一個“1”。Convert T(溫度轉(zhuǎn)換)。命令代碼為44H,啟動一次溫度轉(zhuǎn)換,若主機(jī)在該命令之后又發(fā)出其它操作,而DS18B20又忙于溫度轉(zhuǎn)換,DS18B20就會輸出一個“0”,若轉(zhuǎn)換結(jié)束,則DS18B20輸出一個“1”。Recall E2(拷回暫存器)。命令代碼為B8H。將溫度報警觸發(fā)器TH和TL中的字節(jié)從EEPROM中拷回到暫存器中。該操作是在DS18B20上電時自動執(zhí)行,若執(zhí)行該命令后又發(fā)出讀操作,DS18B20會輸出溫度轉(zhuǎn)換忙標(biāo)識:0為忙,1完成。Read power supply(讀電源使用模式)。命令代碼為B4H。主設(shè)備將該命令發(fā)給DS18B20后發(fā)出讀操作,DS18B20會返回它的電源使用模式:0為寄生電源,1為外部電源。2.2 AT89C52概述2.2.1單片機(jī)AT89C52介紹AT89C52是一個低電壓,高性能CMOS8位單片機(jī),片內(nèi)含8k bytes的可反復(fù)擦寫的Flash只讀程序存儲器和256 bytes的隨機(jī)存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲單元,AT89C52單片機(jī)在電子行業(yè)中有著廣泛的應(yīng)用。2.2.2 主要功能特性1、兼容MCS51指令系統(tǒng) 2、8k可反復(fù)擦寫(大于1000次)Flash ROM; 3、32個雙向I/O口; 4、256x8bit內(nèi)部RAM; 5、3個16位可編程定時/計數(shù)器中斷; 6、時鐘頻率0-24MHz; 7、2個串行中斷,可編程UART串行通道; 8、2個外部中斷源,共8個中斷源; 9、2個讀寫中斷口線,3級加密位; 10、低功耗空閑和掉電模式,軟件設(shè)置睡眠和喚醒功能; 11、有PDIP、PQFP、TQFP及PLCC等幾種封裝形式,以適應(yīng)不同產(chǎn)品的需求。3 系統(tǒng)硬件設(shè)計3.1 單片機(jī)最小系統(tǒng)的設(shè)計單片機(jī)是一種集成電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU隨機(jī)存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統(tǒng)、定時器/計時器等功能集成到一塊硅片上構(gòu)成的一個小而完善的計算機(jī)系統(tǒng)。本次課程設(shè)計中選用AT89C52式單片機(jī),其最小系統(tǒng)主要由電復(fù)位、振蕩電路組成。單片機(jī)的最小系統(tǒng)如圖3所示。單片機(jī)的復(fù)位電路原理是在單片機(jī)的復(fù)位引腳RST上電阻和電容,實現(xiàn)上電復(fù)位。當(dāng)復(fù)位電平持續(xù)兩個時鐘周期以上時復(fù)位有效。復(fù)位電路由按鍵復(fù)位和上電復(fù)位兩部分組成,上電復(fù)位是在復(fù)位引腳上連接一個電容到VCC,再連接一個電阻到GND;按鍵復(fù)位是在復(fù)位電容上并聯(lián)一個開關(guān),當(dāng)開關(guān)按下時電容被放電、RST也被拉到高電平,而且由于電容的充電,會保持一段時間的高電平來使單片機(jī)復(fù)位。AT89C51單片機(jī)使用12MHZ的晶振最為振蕩源,由于單片機(jī)內(nèi)部有振蕩電路,所以外部只要連接一個晶振和兩個電容即可,電容一般在15pF至50pF之間。外部晶振結(jié)合單片機(jī)內(nèi)部電路產(chǎn)生單片機(jī)所需的時鐘頻率。圖3 單片機(jī)最小系統(tǒng)3.2 溫度采集電路的設(shè)計溫度采集電路部分,采用數(shù)字溫度傳感器DS18B20進(jìn)行溫度采集。DS18B20是DALLAS公司生產(chǎn)的一線式數(shù)字溫度傳感器,具有3個引腳;溫度側(cè)量范圍為-55+125,測量精度為0.5;被測溫度用符號擴(kuò)展的16位數(shù)字量方式串行輸出;CPU只需用一個端口線就可以與DS18B20通信。溫度采集電路如圖4所示。圖4 溫度采集電路3.3 LED顯示報警電路的設(shè)計LED數(shù)碼管與單片機(jī)的P0口相連,單片機(jī)將采集到的溫度值轉(zhuǎn)化為與數(shù)碼管對應(yīng)的數(shù)據(jù),通過P0口輸出顯示。即信號通過譯碼管的端口a、b、c、d、e、f、g 、dp 端來控制每段譯碼管的亮滅與否,同時通過端口1、2、3、4 四個端口來控制四個譯碼管。在本次設(shè)計中,用集成芯片74HC245驅(qū)動數(shù)碼管。同時當(dāng)采集到的溫度值超過所設(shè)置的范圍時,單片機(jī)會輸出一信號,通過三極管放大后驅(qū)動蜂鳴器發(fā)出報警信號。LED數(shù)碼管報警電路4 總結(jié)本設(shè)計是以溫度采集及控制過程設(shè)計為總目標(biāo),以89C52單片機(jī)最小應(yīng)用系統(tǒng)為總控制中心,輔助設(shè)計有溫度采樣電路、A/D轉(zhuǎn)換接口、加熱電路、LED數(shù)碼管動態(tài)串行顯示器等。本設(shè)計的重點、難點是:(1) 要掌握溫度傳感器的原理、結(jié)構(gòu)、應(yīng)用等;(2) 考慮從非電量信號到電量信號的電路實現(xiàn)原理以及與單片機(jī)的接口;(3) 熟悉MCS-51編程的技術(shù),實現(xiàn)單片機(jī)對溫度的調(diào)節(jié)控制;(4) 整體電路的仿真調(diào)試。本次設(shè)計優(yōu)點:采用的單片機(jī)AT89C51 性價比高;熱敏電阻溫度傳感器轉(zhuǎn)化溫度的方法非常簡潔且精度高、測試范圍較廣。由于時間及精力所限,對溫度控制系統(tǒng)做了整體設(shè)計,具體實現(xiàn)了其中的溫度報警部分設(shè)計,即溫度控制系統(tǒng)的采集、顯示及報警模塊。實物圖如下:致謝在論文完成之際,我首先要想車曉巖老師表示最真摯的謝意。車?yán)蠋煏r常督促我抓緊時間做畢業(yè)設(shè)計,并經(jīng)常討論,給我提出好的建議。車?yán)蠋煵粌H工作認(rèn)真,她嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度令我受益匪淺,相信在我以后的生活學(xué)習(xí)帶來深遠(yuǎn)的影響。在此衷心的向車?yán)蠋煴磉_(dá)我的感激之心。我還要特別感謝各位同學(xué)給予了我無私的幫助,他們幫我解決了很多設(shè)計中遇到的難題,并幫我測試程序。由于本人學(xué)識有限,加之時間倉促,文中不免有錯誤和待改進(jìn)之處,真誠歡迎各位師長、同學(xué)提出寶貴意見。參考文獻(xiàn):1鐘曉偉,宋哲存,基于單片機(jī)的實驗是溫濕度控制系統(tǒng)設(shè)計 A 林業(yè)機(jī)械與木工設(shè)備2葉景,基于單片機(jī)的溫度控制系統(tǒng)的設(shè)計 經(jīng)驗與交流,20083楊光友.單片機(jī)微型計算機(jī)原理及接口技術(shù)M.北京:中國水利水電出版社,20024李丹妮,單片機(jī)溫度控制系統(tǒng)設(shè)計J九江學(xué)院報20055ATMLE Corporation,8-Bit Microcontroller AT89C51 DATE SHEET.0265F-A-12/976胡壽松,自動控制原理M北京:科學(xué)出版社,20077劉篤仁,韓保君,傳感器原理及應(yīng)用技術(shù) 西安電子科技大學(xué)出版社,20088梅麗鳳,王艷秋,汪毓鐸,張軍,單片機(jī)原理及接口技術(shù) 清華大學(xué)出版社20069深圳市計算機(jī)行業(yè)協(xié)會,2005年全國單片機(jī)與嵌入式系統(tǒng)學(xué)術(shù)交流會,北京航空航天大學(xué)出版社,200510張義和,陳敵北,例說8051M北京:人民郵電出版社,200611 張開生,郭國法,MCS-51單片機(jī)溫度控制系統(tǒng)的設(shè)計J微型計算機(jī)信息,200512Dallas Semiconductor,Programmable Resolution 1-WIRE Digital Thermometer DS18B20 DATE SHEET.附錄A:總電路圖附錄B:原器件清單序號編號名稱型號數(shù)量1R1 電阻4.7K12R2電阻100K13R3電阻5K14RP1排阻5K15C1、C2電容33P26C3電容100u17S1按鍵開關(guān)18X1晶振12M19Q1三極管PNP110LS1蜂鳴器111U151單片機(jī)AT89C52112U2溫度傳感器DS18B20113U3集成芯片74HC245114U44位7段數(shù)碼管共陽1附錄C:溫度報警器部分程序#include<reg52.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intsbit DQ=P37; sbit beep=P30; void reset(); /DS18B20復(fù)位函數(shù) void write_byte(uchar val); /DS18B20寫命令函數(shù) uchar read_byte(void); /DS18B20讀1字節(jié)函數(shù) void read_temp(); /溫度讀取函數(shù) void LED_display();void alarm();uchar tempH,tempL,num;uchar table10= 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; /09的LED字符編碼 uchar setValue_low=15;uchar setValue_high=30;main() while(1) read_temp(); LED_display(); alarm();void delay(uint t)for(;t>0;t-);void reset() /DS18B20的復(fù)位uchar presence=1;while(presence) while(presence) DQ=1;_nop_();_nop_(); DQ=0; delay(50); DQ=1; delay(6); presence=DQ; delay(45); presence=DQ; DQ=1;void write_byte(uchar val)/DS18B20寫一個字節(jié) uchar i;for(i=8;i>0;i-) DQ=1;_nop_();_nop_(); DQ=0;_nop_();_nop_();_nop_();_nop_();_nop_(); DQ=val&0x01; delay(6); val=val>>1; DQ=1;_nop_();uchar read_byte(void)/DS18B20讀一個字節(jié) uchar i;uchar value=0;for(i=8;i>0;i-) DQ=1;_nop_();_nop_(); value>>=1; DQ=0; _nop_();_nop_();_nop_();_nop_(); DQ=1;_nop_();_nop_();_nop_();_nop_(); if(DQ) value|=0x80; delay(6); DQ=1;return(value);void read_temp() /從DS18B20讀取溫度值 uchar ch1,ch2;reset();write_byte(0xcc);write_byte(0x44);reset();write_byte(0xcc);write_byte(0xbe);ch1=read_byte(); /DS18B20的溫度數(shù)值是16位的二進(jìn)制,精度高,最后四位是溫度的小數(shù)部分,最高五位為符號位(即正負(fù)溫度) ch2=read_byte();num=(ch2<<4)|(ch1>>4); /只取溫度值的中間八位,小數(shù)部分舍去,符號位舍去四位。tempH=num/10;/溫度的十位tempL=num-tempH*10;/溫度的個位void LED_display() /顯示檢測的溫度 P2=0x0; P2=2; P0=tabletempL; delay(50); P2=0x0; P2=1; P0=tabletempH; delay(50); P2=0x0;void alarm() /報警 if(setValue_low<=num && setValue_high>=num) beep=1; /在溫度允許范圍,不報警 else beep=beep;