基于AT89C2051單片機的溫度測控器(共67頁)_第1頁
基于AT89C2051單片機的溫度測控器(共67頁)_第2頁
基于AT89C2051單片機的溫度測控器(共67頁)_第3頁
基于AT89C2051單片機的溫度測控器(共67頁)_第4頁
基于AT89C2051單片機的溫度測控器(共67頁)_第5頁
已閱讀5頁,還剩69頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、PAGE PAGE 74鄭州科技(kj)學院單片機原理(yunl)及應用課程設(shè)計 TOC o 1-3 h z u HYPERLINK l _Toc432675854 摘 要 PAGEREF _Toc432675854 h 3 HYPERLINK l _Toc432675855 引言(ynyn) PAGEREF _Toc432675855 h 3 HYPERLINK l _Toc432675856 1. 方案(fng n)論證 PAGEREF _Toc432675856 h 5 HYPERLINK l _Toc432675857 1.1 系統(tǒng)功能(gngnng)定義 PAGEREF _Toc43

2、2675857 h 5 HYPERLINK l _Toc432675858 1.2 總體方案 PAGEREF _Toc432675858 h 5 HYPERLINK l _Toc432675859 2. 系統(tǒng)硬件電路設(shè)計 PAGEREF _Toc432675859 h 6 HYPERLINK l _Toc432675860 2.1 系統(tǒng)硬件框圖 PAGEREF _Toc432675860 h 6 HYPERLINK l _Toc432675861 2.2 測溫模塊 PAGEREF _Toc432675861 h 7 HYPERLINK l _Toc432675862 2.2.1 DS18B20

3、的主要特征有以下幾點 PAGEREF _Toc432675862 h 7 HYPERLINK l _Toc432675863 2.2.2 DS18B20的工作原理 PAGEREF _Toc432675863 h 9 HYPERLINK l _Toc432675864 2.3 主控模塊 PAGEREF _Toc432675864 h 12 HYPERLINK l _Toc432675865 2.3.1 主控模塊功能分析 PAGEREF _Toc432675865 h 12 HYPERLINK l _Toc432675866 2.3.2 AT89C2051芯片的功能特性 PAGEREF _Toc4

4、32675866 h 12 HYPERLINK l _Toc432675867 2.4 顯示模塊 PAGEREF _Toc432675867 h 14 HYPERLINK l _Toc432675868 2.5 報警模塊 PAGEREF _Toc432675868 h 15 HYPERLINK l _Toc432675869 2.6 電路原理圖的繪制和電路的焊接 PAGEREF _Toc432675869 h 17 HYPERLINK l _Toc432675870 2.6.1 PROTEL簡介 PAGEREF _Toc432675870 h 17 HYPERLINK l _Toc432675

5、871 2.6.2 電路的焊接 PAGEREF _Toc432675871 h 18 HYPERLINK l _Toc432675872 3. 系統(tǒng)軟件設(shè)計 PAGEREF _Toc432675872 h 18 HYPERLINK l _Toc432675873 3.1 主控程序設(shè)計 PAGEREF _Toc432675873 h 18 HYPERLINK l _Toc432675874 3.2 溫度信息的采集 PAGEREF _Toc432675874 h 19 HYPERLINK l _Toc432675875 3.3 溫度的顯示操作 PAGEREF _Toc432675875 h 20

6、HYPERLINK l _Toc432675876 4調(diào)試與總結(jié) PAGEREF _Toc432675876 h 21 HYPERLINK l _Toc432675877 致 謝 PAGEREF _Toc432675877 h 22 HYPERLINK l _Toc432675878 參考文獻 PAGEREF _Toc432675878 h 24 HYPERLINK l _Toc432675879 附 錄 PAGEREF _Toc432675879 h 24 HYPERLINK l _Toc432675880 附錄一 電路原理圖 PAGEREF _Toc432675880 h 24 HYPER

7、LINK l _Toc432675881 附錄二 實物圖 PAGEREF _Toc432675881 h 26 HYPERLINK l _Toc432675882 附錄(fl)三 系統(tǒng)(xtng)主程序 PAGEREF _Toc432675882 h 27摘 要: 本次實習中選擇了單片機89C2051并和DS18B20傳感器搭建硬件電路,最終(zu zhn)實現(xiàn)了基于89C2051的單片機溫度控制器的設(shè)計。DS18B20是新型數(shù)字溫度傳感器,采用它與單片機連接測量溫度可簡化溫度控制器的電路,提高可靠性。關(guān)鍵詞: 89C2051 單片機;DS18B20 溫度(wnd)控制器引言(ynyn)計算機

8、的發(fā)展日新月異,其技術(shù)也突飛猛進,而嵌入式計算機這種專用計算機在當今科學的發(fā)展過程中更是不可或缺的。 嵌入式系統(tǒng)是近年來發(fā)展很快的計算機方面的學科(xuk)方向,并迅速滲透到控制、自動化、儀器儀表等學科。 嵌入式方向包括了軟硬件協(xié)同設(shè)計、嵌入式體系結(jié)構(gòu)、實時操作系統(tǒng)、嵌入式產(chǎn)品設(shè)計等方面的知識,需要掌握嵌入式系統(tǒng)設(shè)計的典型開發(fā)工具,培訓學生具備嵌入式系統(tǒng)軟、硬件的開發(fā)能力,對于特定行業(yè)領(lǐng)域(如移動終端、數(shù)字家庭、信息家電以及對傳統(tǒng)產(chǎn)業(yè)信息化改造)已經(jīng)逐步形成了特定的嵌入式開發(fā)方法與手段。 隨著現(xiàn)代化信息技術(shù)的飛速發(fā)展,能獨立工作的溫度檢測系統(tǒng)已廣泛應用與諸多的領(lǐng)域。傳統(tǒng)的溫度檢測大多以熱敏電阻

9、為傳感器,但熱敏電阻可靠性差、測量溫度準確率低,且必須經(jīng)過專門的接口電路轉(zhuǎn)換成數(shù)字信號后才能進行處理。它具有微型化、低功耗、高性能、抗干擾能力強等優(yōu)點,特別適合于構(gòu)成溫度檢測系統(tǒng),可直接將溫度轉(zhuǎn)化成串行數(shù)字信號進行處理。DS18B20的單片機溫度控制器具有電路簡單、可靠性高的優(yōu)點。本溫度控制器對溫度進行實時測量并顯示,用戶(yngh)可設(shè)定最高限報警溫度值和最低限報警溫度值,有一定的溫度控制功能。溫度是農(nóng)業(yè)生產(chǎn)中常見的工藝參數(shù)之一,任何物理變化和化學反應過程都與溫度密切相關(guān),因此溫度 控制是工業(yè)現(xiàn)代化的重要任務。對于不同生產(chǎn)情況和工藝要求下的溫度控制,所采用的加熱方式(fngsh)、燃料、控制

10、方案也有所不同。單片機又稱單片微控制器,是把一個計算機系統(tǒng)集成到一個芯片上,它的體積小、質(zhì)量輕、價格便宜,應用和開發(fā)十分便利。本文選用AT89C2051芯片做為控制器,并采用ds18b20數(shù)碼管顯示及12M晶振產(chǎn)生時鐘信號,分析了系統(tǒng)硬件各組成之間的通訊協(xié)議。1. 方案(fng n)論證1.1 系統(tǒng)功能(gngnng)定義根據(jù)設(shè)計要求,可以(ky)先大致勾勒出要完成設(shè)計,需要幾個模塊具有如下圖所示的的功能, 圖1.1功能模塊框圖 1.2 總體方案 通過對系統(tǒng)功能的定義,可以將基于單片機的數(shù)字溫度計采用溫度傳感器DS18B20作為測溫元件用來滿足溫度測量,并將溫度信號經(jīng)由其本身所具有的A/D轉(zhuǎn)換

11、功能,轉(zhuǎn)換成數(shù)字信號經(jīng)單片機處理顯示于數(shù)碼管顯示器,從而完成溫度的測量和顯示。 整個系統(tǒng)控制將由AT89C2051單片機芯片為核心構(gòu)成。選用(xunyng)DS18B20作為測溫元件,數(shù)碼管作為顯示器件,各個檢測信號、顯示信號可由單片機的I/O口進行。 設(shè)計任務(rn wu):用單片機設(shè)計一個測溫范圍在55125的數(shù)字(shz)溫度計。 設(shè)計要求:完成該系統(tǒng)的軟硬件設(shè)計,學習掌握單片機采集溫度的設(shè)計方法提高學習新知識、新技能的能力,培養(yǎng)獨立設(shè)計的能力2. 系統(tǒng)硬件電路設(shè)計2.1 系統(tǒng)硬件框圖 根據(jù)系統(tǒng)功能要求,可以先大致勾勒出完成任務所需的系統(tǒng)硬件框圖如下: 圖2.1 硬件結(jié)構(gòu)(jigu)框圖

12、 主控模塊采用性價比較高的單片機芯片,在其內(nèi)部(nib)將預設(shè)好的程序儲存,可通過程序的運行控制測溫模塊進行測溫,測溫模塊主要是由DS18B20構(gòu)成,將其與所測對象進行接觸即可獲取被測對象的溫度數(shù)據(jù),報警模塊只有當溫度超出預定值時才會工作,而所測得的溫度將通過顯示模塊的液晶顯示器以數(shù)字形式顯示。2.2 測溫模塊(m kui) 本設(shè)計的測溫元件采用的是DS18B20測溫元件,DS18B20是由DALLAS(達拉斯)公司生產(chǎn)的一種溫度傳感器。超小的體積,超低的硬件開消,抗干擾能力強,精度高,附加功能強,使得DS18B20很受歡迎。這是世界上第一片支持“一線總線”接口的溫度傳感器。DS18B20數(shù)字

13、溫度計提供9位(二進制)溫度讀數(shù),指示器件的溫度。信息經(jīng)過單線接口送入DS18B20或從DS18B20送出,因此從單片機到DS18B20僅需一條線連接即可。它可在1秒鐘(典型值)內(nèi)把溫度變換成數(shù)字。2.2.1 DS18B20的主要(zhyo)特征有以下幾點全數(shù)字溫度轉(zhuǎn)換(zhunhun)及輸出; 先進(xinjn)的單總線數(shù)據(jù)通信; 最高12位分辨率,精度可達土0.5; 12位分辨率時的最大工作周期為750毫秒; 可選擇寄生工作方式; 檢測溫度范圍為55+125; 內(nèi)置EEPROM,限溫報警功能; 64位光刻ROM,內(nèi)置產(chǎn)品序列號,方便多機掛接; 多樣封裝形式,適應不同硬件系統(tǒng)。 圖2.2 D

14、S18B20管腳排列(pili)及封裝結(jié)構(gòu)圖 圖2.3 DS18B20實物圖 由其引腳可看出(kn ch),其3 個引腳: GND為電壓地直接接地(jid);DQ為單數(shù)據(jù)總線用來與單片機相連接,本系統(tǒng)中DQ與單片機P3.5接口連接,僅此一個連接就能保證DS18B20與單片機之間的數(shù)據(jù)交換;VDD引腳接電源電壓12。 圖2.4 DS18B20寄生電源工作(gngzu)方式 圖2.5 DS18B20 外接電源工作(gngzu)方式2.2.2 DS18B20的工作(gngzu)原理 DS18B20的溫度檢測與數(shù)字數(shù)據(jù)輸出全集成于一個芯片之上,從而抗干擾力更強。一個工作周期可分為兩個部分,即溫度檢測和

15、數(shù)據(jù)處理。18B20共有三種形態(tài)的存儲器資源,分別是:ROM 只讀存儲器,用于存放DS18B20ID編碼 ,其前8位是單線系列編碼(DS18B20 的編碼是19H),后面48位是芯片唯一的序列號,最后8位是以上56的位的CRC碼(冗余校驗)。數(shù)據(jù)在出產(chǎn)時設(shè)置不由用戶更改。DS18B20共64位ROM, RAM 數(shù)據(jù)暫存器,用于內(nèi)部計算和數(shù)據(jù)存取,數(shù)據(jù)在掉電后丟失,DS18B20共9個字節(jié)RAM,每個字節(jié)為 8位。第1、2個字節(jié)是溫度轉(zhuǎn)換后的數(shù)據(jù)值信息,第3、4個字節(jié)是用戶 EEPROM(常用于溫度報警值儲存)的鏡像。在上電復位時其值將被刷新。第5個字節(jié)則是用戶第3個EEPROM的鏡像。第6、7

16、、8個字節(jié)為計數(shù)寄存器,是為了讓用戶得到更高的溫度分辨率而設(shè)計的,同樣也是內(nèi)部溫度轉(zhuǎn)換、計算的暫存單元。第9個字節(jié)為前8 個字節(jié)的CRC碼。EEPROM 非易失性記憶體,用于存放長期需要保存的數(shù)據(jù),上下限溫度報警值和校驗數(shù)據(jù),DS18B20共3位EEPROM,并在RAM都存在鏡像,以方便用戶操作。我們在每一次讀溫度之前都必須進行復雜的且精準時序的處理,因為DS18B20的硬件簡單結(jié)果就會導致軟件的巨大開消。 圖2.6 DS18B20的內(nèi)部結(jié)構(gòu)框圖(kungt) 低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號送給減法計數(shù)器 1 ,為計數(shù)器提供一頻率穩(wěn)定的計數(shù)脈沖。高溫度系數(shù)

17、晶振隨溫度變化其震蕩頻率明顯改變,很敏感的振蕩器,所產(chǎn)生的信號作為減法計數(shù)器 2 的脈沖輸入,為計數(shù)器 2 提供一個頻率隨溫度變化的計數(shù)脈沖。圖中還隱含著計數(shù)門,當計數(shù)門打開(d ki)時, DS18B20 就對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖后進行計數(shù),進而完成溫度測量。計數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將 -55 所對應的基數(shù)分別置入減法(jinf)計數(shù)器 1 和溫度寄存器中,減法計數(shù)器 1 和溫度寄存器被預置在 -55 所對應的一個基數(shù)值。減法計數(shù)器 1 對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行減法計數(shù),當減法計數(shù)器 1 的預置值減到 0 時溫度寄存器的值將加 1 ,減法

18、計數(shù)器 1 的預置將重新被裝入,減法計數(shù)器 1 重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行計數(shù),如此循環(huán)直到減法計數(shù)器 2 計數(shù)到 0 時,停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即為所測溫度。斜率累加器用于補償和修正測溫過程中的非線性,其輸出用于修正減法計數(shù)器的預置值,只要計數(shù)門仍未關(guān)閉就重復上述過程,直至溫度寄存器值達到被測溫度值。 圖2.7 DS18B20的內(nèi)部測溫電路(dinl)框圖2.3 主控模塊(m kui)2.3.1 主控模塊(m kui)功能分析 在本系統(tǒng)中,主控模塊居于非常重要的地位。它是整個系統(tǒng)的中樞,系統(tǒng)運行所需的每個操作指令都要由其發(fā)出。它一方面控制著測溫模塊進行

19、溫度信息的采集,另一方面也控制著顯示模塊的工作。最重要的是,由測溫模塊所采集到的溫度信息必須經(jīng)由主控模塊的處理才能在顯示模塊上顯示,從而使整個系統(tǒng)進行正常的運轉(zhuǎn)和工作。針對以上分析本系統(tǒng)主控模塊中的單片機芯片采用了AT89C2051芯片,此芯片功能強大,能夠完全滿足系統(tǒng)運行的需求。2.3.2 AT89C2051芯片的功能特性 AT89C2051是美國Atmel公司生產(chǎn)的低電壓、高性能CMOS 8位單片機6-7,片內(nèi)含有 2 KB 的反復擦寫的只讀程序存儲器和128 B 的隨機存取數(shù)據(jù)存儲器(RAM)。美國DALLAS半導體公司生產(chǎn)的DS18B20 型單線智能溫度傳感器,屬于新一代適配微處理器的

20、智能傳感器。數(shù)字溫度計是以 DS18B20 為檢測元件, 由AT89C2051 作為主控制器的溫度計,具有功耗低、結(jié)構(gòu)簡單、讀數(shù)方便、測溫范圍廣、測溫準確的特點。 AT89C2051是MCS-51產(chǎn)品(chnpn)的兼容型,它具有2k的 HYPERLINK /stock-ic/FLASH.html t _blank FLASH ROM、128字ROM,15根I/O HYPERLINK /product/searchfile/11629.html t _blank 引線(ynxin)、兩個(lin )16位定時/ HYPERLINK /product/searchfile/3037.html t

21、 _blank 計數(shù)器、一個五向量兩級中斷結(jié)構(gòu)、一個全雙工串行口、一個精密模擬 HYPERLINK /product/searchfile/4176.html t _blank 比較器以及片內(nèi) HYPERLINK /info/4152.html t _blank 振蕩電路和時鐘電路。它的 P1口和P3口是雙向I/O口,其中P1.2P1.7、P3.0P3.5和P3.7帶有內(nèi)部上拉 HYPERLINK /product/searchfile/294.html t _blank 電阻。在AT89C2051用作輸入端時,將首先向 HYPERLINK /product/searchfile/10231.

22、html t _blank 引腳寫“1”而使內(nèi)部 HYPERLINK /data/iccompany/detail243.html t _blank MOS管截止以便引腳處于懸浮狀態(tài),從而可獲得高阻抗輸入。 其主要性能如下:與MCS-51單片機產(chǎn)品兼容2K字節(jié)在系統(tǒng)可編程Flash存儲器1000次擦寫周期全靜態(tài)操作:0Hz24Hz兩級加密程序存儲器15個可編程I/O口線兩個16位定時器/計數(shù)器六個中斷源可編串行UART通道1288位內(nèi)部(nib)RAM 直接(zhji)LED驅(qū)動輸出 低功耗空載(kn zi)和掉電方式 片內(nèi)模擬比較器2.7V6V的操作范圍 圖2.8 AT89C2051的引腳結(jié)

23、構(gòu)2.4 顯示模塊 本系統(tǒng)最突出的特點就是能方便直觀地對所測溫度進行讀取,因此顯示模塊的選取極為重要,由三位共陽數(shù)碼管(溫度值顯示)作為顯示模塊。采用動態(tài)掃描的方法,其中P3.0,P3.1,P3.2,P3.3控制位選,P1控制段選。由P3.0,P3.1,P3.2,P3.3向各位輪流輸出掃描信號,使每一瞬間只有一個數(shù)碼管被選通,然后由 P1送入該位所要顯示的字形碼,點亮該位字形段顯示的字形。在P1送出的碼段和P3.0,P3.1,P3.2,P3.3送出的位段的配合控制下,使各個數(shù)碼管輪流點亮顯示各自的字形。 注:下為三位共陽數(shù)碼管圖,顯示(xinsh)攝氏度符號的一位共陽數(shù)碼管倒置焊接即可。 圖2

24、.9 三位共陽數(shù)碼管圖圖2.10 七段數(shù)碼管引腳圖2.5 報警(bo jng)模塊 本系統(tǒng)采用3 mm的發(fā)光(f un)二極管作為報警裝置,發(fā)光(f un) HYPERLINK /view/1016.htm t _blank 二極管簡稱為LED。由鎵(Ga)與砷(AS)、磷(P)的化合物制成的二極管,當電子與 HYPERLINK /view/194378.htm t _blank 空穴復合時能輻射出 HYPERLINK /view/68621.htm t _blank 可見光,因而可以用來制成發(fā)光二極管。在電路及 HYPERLINK /view/56517.htm t _blank 儀器中作為

25、指示燈,或者組成文字或數(shù)字顯示。磷 HYPERLINK /view/34646.htm t _blank 砷化鎵二極管發(fā)紅光, HYPERLINK /view/158655.htm t _blank 磷化鎵二極管發(fā)綠光, HYPERLINK /view/9636.htm t _blank 碳化硅二極管發(fā)黃光。 發(fā)光二極管的核心部分是由 HYPERLINK /view/84698.htm t _blank P型半導體和N型半導體組成的 HYPERLINK /view/1201023.htm t _blank 晶片,在P型半導體和N型半導體之間有一個過渡層,稱為PN結(jié)。在某些半導體材料的PN結(jié)中,

26、注入的少數(shù) HYPERLINK /view/394083.htm t _blank 載流子與多數(shù)載流子復合時會把多余的能量以光的形式釋放出來,從而把電能直接轉(zhuǎn)換為光能。PN結(jié)加 HYPERLINK /view/2979173.htm t _blank 反向電壓,少數(shù)載流子難以注入,故不發(fā)光。這種利用 HYPERLINK /view/2243347.htm t _blank 注入式電致發(fā)光原理制作的二極管 叫發(fā)光二極管,通稱LED 。 當它處于正向 HYPERLINK /view/670206.htm t _blank 工作狀態(tài)時(即兩端加上正向電壓),電流從LED HYPERLINK /vie

27、w/767315.htm t _blank 陽極流向陰極時,半導體 HYPERLINK /view/51869.htm t _blank 晶體就發(fā)出從紫外到紅外不同顏色的光線,光的強弱與電流有關(guān)。圖2.11 發(fā)光(f un)二極管的構(gòu)造圖 選用發(fā)光(f un)二極管的好處: 1.效能(xionng): 消耗能量較同光效的 HYPERLINK /view/23342.htm t _blank 白熾燈減少80% 2.適用性: 體積很小,每個單元LED小片是3-5mm的正方形,所以可以制備成各種形狀的器件,并且適合于易變的環(huán)境 3.穩(wěn)定性: 10萬小時,光衰為初始的50% 4.響應時間: 其白熾燈的

28、 HYPERLINK /view/84619.htm t _blank 響應時間為毫秒級, HYPERLINK /view/59252.htm t _blank LED 燈的響應時間為納秒級對環(huán)境污染 無有害金屬汞 2.6 電路原理圖的繪制和電路的焊接 在硬件的設(shè)計前期,根據(jù)框圖對電路中可能出現(xiàn)的電路,進行了模擬實驗,并根據(jù)實驗結(jié)果對后期的硬件設(shè)計進行了合理化的修改完善。在第一章中已分析了系統(tǒng)并繪制了框圖,并根據(jù)框圖分別設(shè)計了各部分電路。由于溫度傳感器 DS18B20集成度較高,所以在硬件電路設(shè)計時不需要太多其他元件即可實現(xiàn)預期功能。因此在PROTEL上對原理圖進行了繪制,從而得出了最終的完整

29、電路原理圖附錄一。2.6.1 PROTEL簡介(jin ji) PROTEL是PORTEL公司在80年代末推出的EDA軟件,在電子行業(yè)的CAD軟件中,它當之無愧地排在眾多EDA軟件的前面(qin mian),是電子設(shè)計者的首選軟件,它包含了電原理圖繪制、模擬電路與數(shù)字電路混合信號仿真、多層印制電路板設(shè)計(包含印制電路板自動布線)、可編程邏輯器件設(shè)計、圖表生成、電子表格生成、支持宏操作等功能,并具有Client/Server (客戶/服務器)體系結(jié)構(gòu),同時還兼容一些其它設(shè)計軟件的文件格式,如ORCAD,PSPICE,EXCEL等,其多層印制線路板的自動布線可實現(xiàn)高密度PCB的100布通率。Pro

30、tel 99SE采用數(shù)據(jù)庫的管理方式。該軟件沿襲了Protel以前版本方便易學的特點,內(nèi)部界面與Protel 99大體相同,新增加了一些功能模塊,功能更加強大。新增的層堆棧管理功能,可以設(shè)計32個信號層,16 個地電層,16個機械層。新增的3D功能在加工印制版之前可以看到板的三維效果。其具有的打印功能,可以輕松修改打印設(shè)置控制(kngzh)打印結(jié)果。Protel 99SE容易使用的特性還體現(xiàn)在其幫助功能,按下右上角的小問號,然后輸入你所要的信息,可以很快地看到特性的功能,然后用到設(shè)計中,按下狀態(tài)欄末端的按鈕,使用幫助顧問。2.6.2 電路(dinl)的焊接 當通過PROTEL繪制出完整的電路原

31、理圖后,就可以按照繪制好的原理圖進行電路的焊接,焊接時要注意虛焊和短路情況出現(xiàn)。焊接是要先焊單片機的主電路,以便于對各部分電路的測試。當焊完一部分子電路后,要先輸入子程序進行檢測,看是否有輸入或輸出。焊完后,就可以進行電路總體(zngt)性能測試了。 在測試之前,一定要先對電路檢測,看是否有短路情況出現(xiàn),以免芯片(xn pin)損壞。電源輸入電壓也是關(guān)鍵因素,在供電之前先量量。3. 系統(tǒng)軟件設(shè)計3.1 主控程序設(shè)計 通過對系統(tǒng)工作原理的了解,我們可以大致知道系統(tǒng)軟件運行工作的流程圖如下: 圖3.1 系統(tǒng)(xtng)運行流程圖 當接通電源開始工作后,單片機中的程序開始運行,將對DS18B20進行

32、(jnxng)初始化,以便單片機芯片和DS18B20達成通信協(xié)議。完成初始化后,由于本系統(tǒng)只有一個測溫元件,單片機會向其發(fā)出跳過ROM指令,接下來便可向其發(fā)送操作指令,設(shè)定溫度上下限,啟動測溫程序。測溫過程完成后,發(fā)出溫度轉(zhuǎn)換指令,從而便可將溫度轉(zhuǎn)化成數(shù)字模式進行顯示讀取。 3.2 溫度信息(xnx)的采集 通過DS18B20單線總線的所有執(zhí)行處理都從一個初始化序列開始。初始化序列包括一個由總線控制器發(fā)出的復位脈沖和隨后由從機發(fā)出的存在脈沖: 1、復位:首先我們(w men)必須對DS18B20芯片進行(jnxng)復位,復位就是由控制器(單片機)給DS18B20單總線至少(zhsho)480

33、uS的低電平信號。當18B20接到此復位信號后則會在1560uS后回發(fā)一個芯片的存在脈沖。 2、存在脈沖:在復位電平結(jié)束之后,控制器應該將數(shù)據(jù)單總線拉高,以便于在1560uS后接收存在脈沖,存在脈沖為一個60240uS的低電平信號。至此,通信雙方已經(jīng)達成了基本的協(xié)議,接下來將會是控制器與18B20間的數(shù)據(jù)通信。 3、控制器發(fā)送ROM指令:雙方打完了招呼之后最要將進行交流了,ROM指令共有5條,每一個工作周期只能發(fā)一條,ROM指令分別是讀ROM數(shù)據(jù)、指定匹配芯片、跳躍ROM、芯片搜索、報警芯片搜索。 4、控制器發(fā)送存儲器操作指令:在ROM指令發(fā)送給18B20之后,緊接著(不間斷)就是發(fā)送存儲器操

34、作指令了。操作指令同樣為8位,共6條,存儲器操作指令分別是寫RAM數(shù)據(jù)、讀RAM數(shù)據(jù)、將RAM數(shù)據(jù)復制到EEPROM、溫度轉(zhuǎn)換、將EEPROM中的報警值復制到RAM、工作方式切換。 5、執(zhí)行或數(shù)據(jù)讀寫:一個存儲器操作指令結(jié)束后則將進行指令執(zhí)行或數(shù)據(jù)的讀寫,這個操作要視存儲器操作指令而定。3.3 溫度的顯示(xinsh)操作 如電路正常(zhngchng),接通電源后,只顯示“C”符號(fho),無溫度值;按下AN3,先顯示上次存貯下來的設(shè)定溫度(報警控制)值,然后再顯示環(huán)境溫度值,并隨環(huán)境溫度的變化而變化;再按一下AN3,溫度數(shù)字閃爍,待調(diào)節(jié);接著按AN1或AN2: 按AN1為報警溫度值變大,

35、最大為125C;按AN2為報警溫度值變小 ,最小為-55C;調(diào)好后再按一下AN3,調(diào)好的報警溫度值被存貯,數(shù)碼管又顯示環(huán)境溫度。當溫度達到存貯的報警值時,電路發(fā)出報警信號和動作。4調(diào)試與總結(jié) 在硬件電路焊接和軟件程序設(shè)計分別完成的基礎(chǔ)之上,進行軟硬件的結(jié)合與調(diào)試。通過下載將在電腦上已完成的程序下載到單片機芯片中。在調(diào)試中發(fā)現(xiàn)軟件中存在的問題,及時解決問題,確保系統(tǒng)能正常工作并達到設(shè)計要求。通過反復的調(diào)試與實驗,可以證明該系統(tǒng)能夠較好地完成設(shè)計所需的基本要求。即能夠方便準確的對被測對象進行溫度測量。同時在完成設(shè)計要求的前提下,充分考慮到了外觀,成本等問題,在性能和價格之間作了比較好的平衡。雖然整

36、體性能良好,但尚存在些許不足,系統(tǒng)穩(wěn)定性不夠,需要增強自己的焊接水平以便以后避免出現(xiàn)類似問題。本溫度采集系統(tǒng)實用性強,結(jié)構(gòu)較為簡單,成本低,外接元件少。在實際應用(yngyng)中工作性能穩(wěn)定,測量溫度準確,精度較高。系統(tǒng)在硬件設(shè)計上充分考慮到了可擴展性,經(jīng)過一定的添加或改造,很容易增加功能。本系統(tǒng)適用范圍廣泛,可以單獨使用作為監(jiān)控儀,應用于農(nóng)業(yè)溫室大棚監(jiān)測植物生長的環(huán)境變化,工業(yè)廠房測量各部分的工作溫度等等。也可以作為智能控制系統(tǒng)的一部分,與其它設(shè)備協(xié)同工作。系統(tǒng)移植性強,只需改變前端測量用的傳感器類型,可在此基礎(chǔ)上修改為其 他非電量參數(shù)的測量系統(tǒng)。致 謝 通過此次畢業(yè)設(shè)計,我學到了很多知識

37、。在實物的設(shè)計和論文的寫作過程中,通過查資料和搜集有關(guān)的文獻,培養(yǎng)了自學能力。通過對硬件電路的設(shè)計和焊接,增強了自己的動手能力。并且由原來的被動接受知識轉(zhuǎn)換為主動的尋求知識,學會了更好地讓所學知識與實踐相結(jié)合,讓書本上的知識與實際生活(shnghu)中的具體應用相結(jié)合。讓自己切實感覺到了學有所用。并在此期間鞏固復習了在大學4年內(nèi)學過的知識,尤其是單片機和模電,數(shù)電方面的知識。同時通過這次畢業(yè)設(shè)計提高了自己的單片機編程的能力,尤其是獲得的軟件調(diào)試經(jīng)驗,同時也讓自己知道了自己不足和缺陷,從而(cng r)為自己能更好的改進提供了幫助。 在此,首先感謝我的老師,感謝各位老師這四年中在學習中、生活上的

38、關(guān)心和照顧;其次感謝各位同學,同學們在生活中給予很大的幫助,在學習上也給極大的鼓舞。指導老師項仕標教授和葛明濤講師治學嚴謹,學識淵博,平易近人,在我做設(shè)計和論文期間對我的教誨和指導將使我終生受益。無論是在平時的階段,還是在論文的選題、資料(zlio)查詢、開題、研究、設(shè)計和撰寫的每一個環(huán)節(jié),都得到導師的悉心指導和幫助。借此機會向項仕標教授和葛明濤講師表示衷心的感謝!在畢業(yè)設(shè)計的這段時間里,其他老師們也都言傳身教,以他們廣博的知識,敏銳的洞察力,多年的教學和實際工作經(jīng)驗,在畢業(yè)設(shè)計上給予我很大的幫助。在本次設(shè)計中我學到的不僅是科學知識和工作方法,更學到了作為一個研究人員應有的治學態(tài)度以及為人處世

39、的道理,這一切都將使我終身受益。謹在此向各位老師致以崇高的敬意和衷心的感謝! 感謝幾年來傳授我知識的老師們,更要感謝我的家人對我學業(yè)(xuy)上的支持和鼓勵,感謝所有關(guān)心幫助過我的人。 參考文獻1 譚浩強 C程序設(shè)計(chn x sh j) 清華大學出版社 1999.122 李群芳 肖看 單片機原理(yunl),接口及應用 清華大學出版社 2005.33 張義和 王敏男 例說51單片機 人民郵電出版社 2008.4 4 蔡美琴 張為民 MCS-51系列(xli)單片機系統(tǒng)及其應用 高等教育出版社 19925 高峰(gofng) 單片微機應用系統(tǒng)設(shè)計及實用技術(shù) 機械工程出版社 20046 楊全勝

40、 現(xiàn)代微機原理(yunl)與接口技術(shù) 電子工業(yè)出版社 20047 全國大學生電子設(shè)計競賽組委會 全國大學生電子設(shè)計競賽獲 獎作品精選 (19941999) 北京理工大學出版社 2003.8 謝淑如 鄭光欽 楊渝生 Protel PCB 99SE電路版設(shè)計 清華大學出版社9 何立民 單片機應用技術(shù)選編 北京航空航天大學出版社,1993.210 段九洲 放大電路實用設(shè)計手冊 遼寧科學技術(shù)出版社,2002.511 李炎清 畢業(yè)論文寫作與范例 廈門大學出版社 2006.10附 錄附錄一 電路原理圖 附錄(fl)二 實物圖附錄(fl)三 系統(tǒng)(xtng)主程序/*溫度(wnd)控制器V1.5顯示為三個共

41、陽極LED溫度傳感器用單總線DS18B20CPU為2051,三個按鍵,分別為UP,DOWN,SET溫度調(diào)節(jié)上限為125度,下限為-55度只能用于單只18B20*/#include #include #define Key_UP P3_0 /上調(diào)溫度#define Key_DOWN P3_1 /下調(diào)溫度#define Key_SET P1_7 /設(shè)定鍵(溫度設(shè)定,長按開電源)#define RelayOutPort P3_5 /繼電器輸出#define LEDPort P1 /LED控制口#define LEDOneC P3_2 /LED DS1控制(百位)#define LEDTwoC P3_

42、3 /LED DS2控制(十位)#define LEDThreeC P3_4 /LED DS3控制(kngzh)(個位)#define TMPortP3_7/DS1820 DataPortunsigned char code LEDDis=0 xC0,0 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80,0 x90,0 xFF,0 xBF; /0-9的LED筆劃(b hu),0 xFF為空,0 xF7為負號static unsigned char bdata StateREG;/可位尋址的狀態(tài)(zhungti)寄存器sbit DS1820ON = St

43、ateREG0; /DS1820是否存在sbit SetTF = StateREG1; /是否是在溫度設(shè)置狀態(tài)sbit KeySETDown = StateREG2; /是否已按過SET鍵標識sbit PowTF = StateREG3; /電源電源標識sbit KeyTF = StateREG4;/鍵盤是否允許/sbit KeySETDowning = StateREG5;/SET是否正在按下static unsigned char bdata TLV _at_ 0 x0029; /溫度變量(binling)高低位static unsigned char bdata THV _at_ 0 x

44、0028;static signed char TMV; /轉(zhuǎn)換(zhunhun)后的溫度值static unsigned char KeyV,TempKeyV; /鍵值static signed char TMRomV _at_ 0 x0027; /高溫(gown)限制static signed char TMSetV _at_ 0 x0026; /溫度設(shè)定值static unsigned char KSDNum; /SET鍵連按時的采集次數(shù)static unsigned char IntNum,IntNum2,IntNum3; /中斷發(fā)生次數(shù),IntNum用于SET長按檢測,IntNum2

45、用于設(shè)定狀態(tài)時LED閃爍static signed char LED_One,LED_Two,LED_Three; /LED的顯示位 LED_One為十位,LED_Two為個位static unsigned char Sign; /負號標識void main(void)void InitDS1820(void); /定義(dngy)函數(shù)void ROMDS1820(void);void TMVDS1820(void);void TMRDS1820(void);void TMWDS1820(void);void TMREDS1820(void);void TMERDS1820(void);voi

46、d ReadDS1820(void);void WriteDS1820(void);void Delay_510(void);void Delay_110(void);void Delay_10ms(void);void Delay_4s(void);void V2ToV(void);StateREG = 0; /初始化變量(binling)SetTF = 1;PowTF = 1;/關(guān)電源(dinyun)THV = 0;TLV = 0;TMV = 0;KeyV = 0;TempKeyV = 0;KSDNum = 0;IntNum = 0;IntNum2 = 0;IntNum3 = 0;LED_

47、One = 0;LED_Two= 0;InitDS1820(); /初始化ROMDS1820(); /跳過ROMTMERDS1820(); /E2PRAM中溫度(wnd)上限值調(diào)入RAMInitDS1820(); /初始化ROMDS1820(); /跳過ROMTMRDS1820(); /讀出溫度(wnd)指令ReadDS1820(); /讀出溫度(wnd)值和上限值TMSetV = TMRomV; /拷貝保存在DS18B20ROM里的上限值到TMSetVEA = 1;/允許CPU中斷ET0 = 1; /定時器0中斷打開TMOD = 0 x1;/設(shè)定時器0為模式1,16位模式TH0=0 xB1;

48、TL0=0 xDF;/設(shè)定時值為20000us(20ms)TR0 = 1;/開始定時while(1);/定時器0中斷(zhngdun)外理中鍵掃描和顯示void KeyAndDis_Time0(void) interrupt 1 using 2 TH0=0 xB1;TL0=0 xDF;/設(shè)定(sh dn)時值為20000us(20ms)LEDPort = 0 xFF; if (!Key_UP) KeyV = 1; if (!Key_DOWN) KeyV = 2; if (!Key_SET) KeyV = 3;/KeySETDowning = 0; /清除(qngch) if (KeyV !=

49、0) /有鍵按下 Delay_10ms(); /延時防抖 按下10ms再測 if (!Key_UP) TempKeyV = 1; if (!Key_DOWN) TempKeyV = 2; if (!Key_SET) TempKeyV = 3; if (KeyV = TempKeyV) /兩次值相等(xingdng)為確定接下了鍵 if (KeyV = 3) /按下SET鍵,如在SET狀態(tài)(zhungti)就退出,否則進入 /KeySETDowning = 1; /表明(biomng)SET正在按下 PowTF = 0; /電源(dinyun)標識開if (!KeyTF) if (SetTF)

50、SetTF = 0; /標識(biozh)位標識退出設(shè)定InitDS1820(); /初始化 ROMDS1820(); /跳過ROM TMWDS1820(); /寫溫度上限指令WriteDS1820(); /寫溫度上限到DS18B20ROMWriteDS1820(); /寫溫度上限到DS18B20ROMWriteDS1820(); /寫溫度(wnd)上限到DS18B20ROMInitDS1820(); /初始化 ROMDS1820(); /跳過ROM TMREDS1820(); /溫度(wnd)上限值COPY回E2PRAM else SetTF = 1; if (!KeySETDown) /沒

51、有(mi yu)第一次按下SET時,KeySETDown標識置1 KeySETDown = 1; else KSDNum = KSDNum + 1; /前一秒內(nèi)有按過SET則開始計數(shù) if (SetTF) /在SET狀態(tài)(zhungti)下 if (KeyV = 1) & (!KeyTF) TMSetV = TMSetV + 1; /上調(diào)(shn dio)溫度 if (KeyV = 2) & (!KeyTF) TMSetV = TMSetV - 1; /下調(diào)(xi dio)溫度 if (TMSetV = 125) TMSetV = 125; if (!KeyTF) & (IntNum3 = 0

52、) KeyTF = 1; /當鍵盤處于可用時,鎖定 if (KeySETDown) /在2秒內(nèi)按下了SET則計中斷(zhngdun)發(fā)生次數(shù)用于長按SET時計時用 IntNum = IntNum + 1; if (IntNum 55) /中斷發(fā)生(fshng)了55次時(大約1.2秒)75為1.5秒左右 IntNum = 0;KeySETDown = 0; if (KSDNum = 55) /如一直(yzh)長按了SET1.2秒左右 RelayOutPort = 1; /關(guān)閉繼電器輸出 PowTF = 1; /電源標識關(guān) LEDOneC = 0; LEDTwoC = 0; LEDThreeC

53、= 0; LEDPort = 0 xBF; /顯示- Delay_4s(); /延時 LEDOneC = 1; LEDTwoC = 1; /關(guān)顯示(xinsh) LEDThreeC = 1; Delay_4s(); IntNum = 0; IntNum2 = 0; IntNum3 = 0; KSDNum = 0; KeyV = 0; TempKeyV = 0; /清空(qn kn)變量準備下次鍵掃描 if (!PowTF) InitDS1820();/初始化 ROMDS1820(); /跳過ROM TMVDS1820(); /溫度轉(zhuǎn)換(zhunhun)指令 Delay_510(); Delay

54、_510(); /延時等待轉(zhuǎn)換(zhunhun)完成 InitDS1820(); /初始化 ROMDS1820(); /跳過ROM TMRDS1820(); /讀出溫度(wnd)指令 ReadDS1820(); /讀出溫度值 V2ToV(); /轉(zhuǎn)換顯示值 if (TMV TMSetV) /根據(jù)采集到的溫度值控制繼電器 RelayOutPort = 0; else RelayOutPort = 1; if (SetTF) IntNum2 = IntNum2 + 1; /用于閃爍(shn shu)計數(shù) if (IntNum2 50 ) IntNum2 = 0;if (KeyTF) IntNum3

55、 = IntNum3 + 1; /用于防止(fngzh)按鍵連按if (IntNum3 25) IntNum3 = 0;KeyTF = 0; if (SetTF) & (IntNum2 4; THV = THV 7; /取符號 else Sign = TMV 7;if (Sign) if (SetTF | !Key_SET) LED_One = (TMSetV-1) / 100; /SET狀態(tài)(zhungti)下顯示設(shè)定值 LED_Two = (TMSetV-1) - LED_One * 100)/10; LED_Three = (TMSetV-1) - LED_One * 100 - LED

56、_Two * 10; else LED_One = (TMV) / 100;/轉(zhuǎn)換(zhunhun)百位值 LED_Two = (TMV) - LED_One * 100)/10; LED_Three = (TMV) - LED_One * 100 - LED_Two * 10;else if (SetTF | !Key_SET) LED_One = (TMSetV) / 100; /SET狀態(tài)(zhungti)下顯示設(shè)定值 LED_Two = (TMSetV - LED_One * 100)/10; LED_Three = TMSetV - LED_One * 100 - LED_Two *

57、 10; else LED_One = (TMV) / 100;/轉(zhuǎn)換(zhunhun)百位值 LED_Two = (TMV - LED_One * 100)/10; LED_Three = TMV - LED_One * 100 - LED_Two * 10; /轉(zhuǎn)LED字段if (LED_One) /超過(chogu)百時十位的處理LED_Two = LEDDisLED_Two;elseif (LED_Two = 0)LED_Two = LEDDis10;elseLED_Two = LEDDisLED_Two;if (Sign)LED_One = LEDDis11;elseif (LED_

58、One = 0)LED_One = LEDDis10;elseLED_One = LEDDisLED_One;LED_Three = LEDDisLED_Three;void InitDS1820(void)/初始化DS1820TMPort = 1;/拉高TMPort_nop_(); /保持(boch)一個周期TMPort = 0;/拉低TMPort Delay_510(); /延時 DS1820復位(f wi)時間要500us的低電平 TMPort = 1; /拉高TMPort_nop_(); /保持(boch) _nop_();_nop_(); Delay_110(); /延時110us

59、等待DS1820回應 if (!TMPort) /回應信號為低電平 DS1820ON = 1; else DS1820ON = 0; Delay_110(); /延時 Delay_110(); TMPort = 1; /拉高TMPortvoid ROMDS1820(void) /跳過ROM匹配(ppi)#pragma asm MOV A,#0CCH MOV R2,#8 CLR C WR1: CLR P3_7 MOV R3,#6 DJNZ R3,$ RRC A MOV P3_7,C MOV R3,#23 DJNZ R3,$ SETB P3_7 NOP DJNZ R2,WR1 SETB P3_7#pragma endasmvoid TMVDS1820(void) /溫度(wnd)轉(zhuǎn)換指令#pragma asm MOV A,#44H MOV R2,#8 CLR C WR2: CLR P3_7 MOV R3,#6 DJNZ R3,$ RRC A MOV P3_7,C MOV R3,#23 DJNZ R3,$ SETB P3_7 NOP DJNZ R

溫馨提示

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

評論

0/150

提交評論