溫度自動(dòng)控制畢業(yè)設(shè)計(jì)--基于51單片機(jī)的溫度自動(dòng)控制系統(tǒng)設(shè)計(jì)研究_第1頁
已閱讀1頁,還剩39頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p>  本 科 畢 業(yè) 設(shè) 計(jì)(論文)</p><p>  題目 基于51單片機(jī)的溫度自動(dòng)控制 </p><p>  系統(tǒng)設(shè)計(jì)研究 </p><p>  院(系部) 電氣與自動(dòng)化工程系 </p><p>  專業(yè)名稱 通信工程 </p><p>

2、  年級班級 09-2通信 </p><p>  學(xué)生姓名 </p><p>  指導(dǎo)教師 </p><p>  2013年05月10日</p><p><b>  摘 要</b></p><p>  基于單片機(jī)的溫度控制器,

3、采用DS18B20溫度傳感器采集所要測量的當(dāng)前環(huán)境的溫度,通過單片機(jī)進(jìn)行處理并加以顯示。單片機(jī)采用的是AT89S52系列單片機(jī)。溫度傳感器DS18B20具有12位精度,可較為精確的測量當(dāng)前環(huán)境的溫度。</p><p>  該溫度控制器具有設(shè)定溫度上、下限的功能,通過控制繼電器控制外部降溫、加熱裝置,從而實(shí)現(xiàn)環(huán)境溫度處于設(shè)定溫度上、下限范圍內(nèi)。</p><p>  該溫度控制器的顯示部分采用

4、LED數(shù)碼管顯示,具有顯示當(dāng)先溫度、溫度上、下限值的功能。按鍵部分采用四個(gè)按鍵,每個(gè)按鍵的功能不同,通過按鍵的配合使用,可以實(shí)現(xiàn)切換LED數(shù)碼管顯示,調(diào)節(jié)溫度上下限的功能。</p><p>  該系統(tǒng)結(jié)構(gòu)簡單,精度高、量程寬、靈敏度高、體積小、功耗低,抗干擾能力強(qiáng),適合于惡劣環(huán)境下進(jìn)行現(xiàn)場溫度測量,有廣泛的應(yīng)用前景。</p><p>  關(guān)鍵詞:單片機(jī) AT89S52 DS18B20 數(shù)碼

5、管 繼電器</p><p><b>  Abstract</b></p><p>  Temperature controller based on MCU, using the current environment to measure the temperature of sensor DS18B20, processing and display by MCU

6、. The microcontroller is series of MCU AT89S52. The temperature of sensor DS18B20, with 12 accuracy, can accurately measure the current environment temperature.</p><p>  The temperature controller can set te

7、mperature, and have the lower limit function,control the relay to control the external cooling, heate device. So as to realize the environmental temperature at the setting temperature, and lower bounds.</p><p&

8、gt;  The temperature controller with the display parts, adopts LED digital tube display. Displaying the current temperature, lower value. The part of the four keys, with defferent function , can realize the switch LED di

9、gital tube display, adjust the temperature upper limition .</p><p>  This system is simple, high precision, wide range, high sensitivity, small size, low power consumption, strong anti-jamming capability, su

10、itable for harsh environments on-site temperature measurement, has a broad application prospection.</p><p>  Key words: MCU AT89S52 DS18B20 digitron relay目 錄</p><p><b>  前 言1</b>&

11、lt;/p><p>  1 系統(tǒng)方案設(shè)計(jì)2</p><p>  1.1 方案論證2</p><p>  1.1.1 方案一2</p><p>  1.1.2 方案二2</p><p>  1.2 系統(tǒng)設(shè)計(jì)框圖3</p><p>  2 系統(tǒng)硬件設(shè)計(jì)4</p><p&g

12、t;  2.1 單片機(jī)選擇4</p><p>  2.1.1 AT89S52 特點(diǎn)4</p><p>  2.1.2 AT89S52 功能描述5</p><p>  2.1.3 AT89S52 引腳功能5</p><p>  2.2 溫度傳感器的選擇6</p><p>  2.2.1 DS18B20簡單介紹

13、6</p><p>  2.2.2 DS18B20性能特點(diǎn)7</p><p>  2.2.3 DS18B20內(nèi)部結(jié)構(gòu)7</p><p>  2.2.4 DS18B20測溫原理8</p><p>  2.2.5 DS18B20工作時(shí)序10</p><p>  2.3 硬件電路設(shè)計(jì)11</p>&l

14、t;p>  2.3.1 測溫電路11</p><p>  2.3.2 顯示電路13</p><p>  2.3.3 報(bào)警電路15</p><p>  2.3.4 降溫、加熱電路15</p><p>  2.3.5 其他電路16</p><p>  3 系統(tǒng)軟件設(shè)計(jì)18</p><p

15、>  3.1軟件設(shè)計(jì)18</p><p><b>  4 系統(tǒng)調(diào)試20</b></p><p>  4.1 軟件調(diào)試20</p><p>  4.2 元器件調(diào)試20</p><p><b>  5 總 結(jié)22</b></p><p><b>  致

16、 謝23</b></p><p><b>  參考文獻(xiàn)24</b></p><p><b>  附錄一25</b></p><p><b>  附錄二34</b></p><p><b>  前 言</b></p>&

17、lt;p>  溫度是工業(yè)生產(chǎn)中常見的工藝參數(shù)之一,任何物理變化和化學(xué)反應(yīng)過程都與溫度密切相關(guān),因此溫度控制是生產(chǎn)自動(dòng)化的重要任務(wù)。例如:在農(nóng)業(yè)溫室大棚生產(chǎn)、冶金工業(yè)、化工生產(chǎn)、電力工程、造紙行業(yè)、機(jī)械制作、和食品加工等諸多領(lǐng)域中,人們都需要對各類環(huán)境、加熱爐、熱處理爐、反應(yīng)爐和鍋爐中的溫度進(jìn)行檢測和控制。采用單片機(jī)對溫度進(jìn)行控制,不僅具有控制方便、組態(tài)簡單和靈活性大等優(yōu)點(diǎn),而且可以大幅度提高被控溫度的技術(shù)指標(biāo),從而能夠大大提高產(chǎn)品

18、的質(zhì)量和數(shù)量。因此,單片機(jī)對溫度的控制問題是一個(gè)工業(yè)中經(jīng)常遇到的問題。</p><p>  基于單片機(jī)的溫度控制系統(tǒng)可以實(shí)現(xiàn)溫度的顯示、預(yù)警等功能,對于工業(yè)生產(chǎn)效率的提高,可以起到很大的作用。科學(xué)技術(shù)是第一生產(chǎn)力,對溫度實(shí)現(xiàn)比較系統(tǒng)化的檢測控制使人們的生產(chǎn)節(jié)奏有一個(gè)良好的循環(huán)。從而將節(jié)約更多的人力物力,降低生產(chǎn)過程中可以省略的一些繁瑣的細(xì)節(jié)。一個(gè)簡單有效地控制系統(tǒng)可以在一定程度上使工廠的生產(chǎn)效益上一個(gè)臺階,只要運(yùn)

19、用得當(dāng),就有可能做到。</p><p>  本設(shè)計(jì)是基于當(dāng)前社會發(fā)展的良好形勢,經(jīng)過慎重考慮后決定的,也是對自己所學(xué)知識的一次檢驗(yàn),期望能夠獲得溫故而知新的效果。只有不斷地學(xué)習(xí)才能不斷的進(jìn)步。結(jié)合社會的實(shí)際情況,然后根據(jù)自己的特點(diǎn),更好的去了解自己,充分挖掘自己的潛力。學(xué)以致用是老師要求我們的努力方向,現(xiàn)今社會要求我們對知識的應(yīng)用越來越熟練,只有靠自己鍥而不舍的奮發(fā)圖強(qiáng),才能爭取自己的一片天地。</p>

20、;<p><b>  1 系統(tǒng)方案設(shè)計(jì)</b></p><p><b>  1.1 方案論證</b></p><p>  由于本方案是基于溫度傳感器的溫度自動(dòng)控制??梢圆捎脙煞N方案:一種是使用熱敏電阻之類的元件;另一種是使用數(shù)字溫度傳感器</p><p><b>  1.1.1 方案一</b&

21、gt;</p><p>  選用熱敏電阻電路,測溫部分選用熱敏電阻,將隨被測溫度變化的電壓或電流采樣,進(jìn)行A/D轉(zhuǎn)換后就可以用單片機(jī)進(jìn)行數(shù)據(jù)處理,實(shí)現(xiàn)溫度顯示。這種設(shè)計(jì)需要用到A/D轉(zhuǎn)換電路,增大了電路的復(fù)雜性,而且要做到高精度也比較困難。</p><p><b>  1.1.2 方案二</b></p><p>  考慮到單片機(jī)屬于數(shù)字系統(tǒng),容

22、易想到數(shù)字溫度傳感器,可選用DS18B20數(shù)字溫度傳感器,此傳感器為單總線數(shù)字溫度傳感器,體積小、構(gòu)成的系統(tǒng)結(jié)構(gòu)簡單,它可直接將溫度轉(zhuǎn)化成數(shù)字信號給單片機(jī)處理。另外DS18B20具有3引腳的小體積封裝,測溫范圍為-55~+125攝氏度,測溫分辨率可達(dá)0.0625攝氏度,其測量范圍與精度都能符合設(shè)計(jì)要求。</p><p>  以上兩種方案相比較,第二種方案的電路、軟件設(shè)計(jì)更簡單,此方案設(shè)計(jì)的系統(tǒng)在功耗、測量精度、范

23、圍等方面都能很好地達(dá)到要求,故本設(shè)計(jì)采用方案二。</p><p>  1.2 系統(tǒng)設(shè)計(jì)框圖</p><p>  本方案設(shè)計(jì)的系統(tǒng)由單片機(jī)系統(tǒng)、數(shù)字溫度傳感器、數(shù)碼管顯示模塊、按鍵控制模塊、溫度報(bào)警模塊、溫度控制模塊組成,其總體架構(gòu)如圖1-1所示</p><p><b>  圖1-1 系統(tǒng)框圖</b></p><p>&l

24、t;b>  2 系統(tǒng)硬件設(shè)計(jì)</b></p><p><b>  2.1 單片機(jī)選擇</b></p><p>  AT89S52作為溫度測試系統(tǒng)的核心器件。該器件是INTEL公司生產(chǎn)的MCS-51系列單片機(jī)中的基礎(chǔ)產(chǎn)品,采用可靠的CMOS工藝制造技術(shù),具有高性能的8位單片機(jī),屬于標(biāo)準(zhǔn)的MCS-51產(chǎn)品。單片機(jī)AT89S52具有低電壓供電和體積小等特點(diǎn)

25、,四個(gè)端口只需要兩個(gè)口就能滿足電路系統(tǒng)的設(shè)計(jì)需要,單片機(jī)如圖2-1所示。</p><p>  2.1.1 AT89S52 特點(diǎn)</p><p>  與MCS-51 兼容;</p><p>  4K字節(jié)可編程閃爍存儲器;</p><p>  壽命:1000寫/擦循環(huán);</p><p>  數(shù)據(jù)保留時(shí)間:10年;</

26、p><p>  全靜態(tài)工作:0MHz-33MHz;</p><p>  三級程序存儲器鎖定;</p><p>  128*8位內(nèi)部RAM;</p><p>  32位可編程I/O線;</p><p>  兩個(gè)16位定時(shí)器/計(jì)數(shù)器;</p><p><b>  5個(gè)中斷源;</b>

27、;</p><p><b>  可編程串行通道;</b></p><p>  低功耗的閑置和掉電模式;</p><p>  片內(nèi)振蕩器和時(shí)鐘電路。</p><p>  圖2-1 AT89S52單片機(jī)</p><p>  2.1.2 AT89S52 功能描述</p><p>

28、  AT89S52是一種低損耗、高性能、CMOS八位微處理器,片內(nèi)有4k字節(jié)的在線可重復(fù)編程、快速擦除、快速寫入程序的存儲器,能承復(fù)寫入/擦除1000次,數(shù)據(jù)保存時(shí)間為十年。它與MCS-51系列單片機(jī)在指令系統(tǒng)和引腳上完全兼容,不僅可完全代替MCS-51系列單片機(jī),而且能使系統(tǒng)具有許多MCS-51系列產(chǎn)品沒有的功能[]。</p><p>  AT89S52可構(gòu)成真正的單片機(jī)最小應(yīng)用系統(tǒng),縮小系統(tǒng)休積,增加系統(tǒng)的可

29、靠性,降低系統(tǒng)的成本。只要程序長度小于4K,四個(gè)I/O全部提供給用戶??捎?V電壓編程,而且擦寫時(shí)間僅擊10毫秒,僅為8751/87C51的擦除時(shí)間的百分之一,與8751/87C51的12V電壓擦寫相比,不易損壞器件,沒有兩種電源的需求,可以直接在5V電壓下進(jìn)行編程,不需要12V電源。改寫時(shí)不拔下芯片,適合許多嵌入式控制領(lǐng)域。工作電壓范圍寬,全靜態(tài)工作,工作頻率寬在0MHz-33MHz之間,比8751/87C51等51系列的6MHz-1

30、2MHz更具有靈活性。 AT89S52芯片提供三級程序存儲器加密,提供了方便靈活而可靠的硬加密于段,能完全保證程序或系統(tǒng)不被仿制。</p><p>  2.1.3 AT89S52 引腳功能</p><p>  AT89S52 單片機(jī) P3 口第二功能如圖2-2所示[]。</p><p>  圖2-2 P3口的第二功能</p><p>  2.

31、2 溫度傳感器的選擇</p><p>  由于傳統(tǒng)的熱敏電阻等測溫元件測出的一般都是電壓,再轉(zhuǎn)換成對應(yīng)的溫度,需要比較多的外部元件支持,且硬件電路復(fù)雜,制作成本相對較高。這里采用DALLAS公司的數(shù)字溫度傳感器DS18B20作為測溫元件。</p><p>  2.2.1 DS18B20簡單介紹</p><p>  DALLAS 最新單線數(shù)字溫度傳感器DS18B20是

32、一種新型的“一線器件”,其體積更小、更適用于多種場合、且適用電壓更寬、更經(jīng)濟(jì)。DALLAS 半導(dǎo)體公司的數(shù)字化溫度傳感器DS18B20是世界上第一片支持“一線總線”接口的溫度傳感器。溫度測量范圍為-55~+125 攝氏度,可編程為9位~12 位轉(zhuǎn)換精度,測溫分辨率可達(dá)0.0625攝氏度,分辨率設(shè)定參數(shù)以及用戶設(shè)定的報(bào)警溫度存儲在EEPROM 中,掉電后依然保存。被測溫度用符號擴(kuò)展的16位數(shù)字量方式串行輸出;其工作電源既可以在遠(yuǎn)端引入,也

33、可以采用寄生電源方式產(chǎn)生;多個(gè)DS18B20可以并聯(lián)到3 根或2 根線上,CPU只需一根端口線就能與諸多DS18B20 通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。因此用它來組成一個(gè)測溫系統(tǒng),具有線路簡單,在一根通信線,可以掛很多這樣的數(shù)字溫度計(jì),十分方便。</p><p>  2.2.2 DS18B20性能特點(diǎn)</p><p> ?。?)獨(dú)特的單線接口方式,DS18B20在

34、與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊。</p><p>  (2)DS18B20支持多點(diǎn)組網(wǎng)功能,多個(gè)DS18B20可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)組網(wǎng)多點(diǎn)測溫</p><p>  (3)DS18B20在使用中不需要任何外圍元件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)</p><p> ?。?)適應(yīng)電壓范圍更寬,電壓范

35、圍:3.0~5.5V,在寄生電源方式下可由數(shù)據(jù)線供電</p><p>  (5)測溫范圍-55℃~+125℃,在-10~+85℃時(shí)精度為±0.5℃</p><p> ?。?)可編程的分辨率為9~12位,對應(yīng)的可分辨溫度分別為0.5℃、0.25℃、0.125℃和0.0625℃,可實(shí)現(xiàn)高精度測溫</p><p>  (7)在9位分辨率時(shí)最多在93.75ms內(nèi)把

36、溫度轉(zhuǎn)換為數(shù)字,12位分辨率時(shí)最多在750ms內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,速度更快</p><p> ?。?)測量結(jié)果直接輸出數(shù)字溫度信號,以"一線總線"串行傳送給CPU,同時(shí)可傳送CRC校驗(yàn)碼,具有極強(qiáng)的抗干擾糾錯(cuò)能力</p><p>  2.2.3 DS18B20內(nèi)部結(jié)構(gòu)</p><p>  DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM

37、、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL、配置寄存器。</p><p>  圖2-3為DS18B20的內(nèi)部框圖,它主要包括寄生電源、溫度傳感器、64位激光ROM單線接口、存放中間數(shù)據(jù)的高速暫存器(內(nèi)含便箋式RAM),用于存儲用戶設(shè)定的溫度上下限值的TH和TL觸發(fā)器存儲與控制邏輯、8位循環(huán)冗余校驗(yàn)碼(CRC)發(fā)生器等七部分,如圖2-3所示。</p><p>  圖2-3 DS18B20

38、內(nèi)部結(jié)構(gòu)框圖</p><p>  2.2.4 DS18B20測溫原理</p><p>  DS18B20的測溫原理如圖2-4所示,圖中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小用于產(chǎn)生固定頻率的脈沖信號送給減法計(jì)數(shù)器1,高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產(chǎn)生的信號作為減法計(jì)數(shù)器2的脈沖輸入,圖中還隱含著計(jì)數(shù)門,當(dāng)計(jì)數(shù)門打開時(shí),DS18B20就對低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖進(jìn)行計(jì)

39、數(shù),進(jìn)而完成溫度測量.計(jì)數(shù)門的開啟時(shí)間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將-55 ℃所對應(yīng)的基數(shù)分別置入減法計(jì)數(shù)器1和溫度寄存器中,減法計(jì)數(shù)器1和溫度寄存器被預(yù)置在-55 ℃所對應(yīng)的一個(gè)基數(shù)值。</p><p>  減法計(jì)數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行減法計(jì)數(shù),當(dāng)減法計(jì)數(shù)器1的預(yù)置值減到0時(shí)溫度寄存器的值將加1,減法計(jì)數(shù)器1的預(yù)置將重新被裝入,減法計(jì)數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)

40、行計(jì)數(shù),如此循環(huán)直到減法計(jì)數(shù)器2計(jì)數(shù)到0時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即為所測溫圖2中的斜率累加器用于補(bǔ)償和修正測溫過程中的非線性其輸出用,于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)門仍未關(guān)閉就重復(fù)上述過程,直至溫度寄存器值達(dá)到被測溫度值,這就是DS18B20的測溫原理。如圖2-4所示。</p><p>  另外,由于DS18B20單線通信功能是分時(shí)完成的,他有嚴(yán)格的時(shí)隙概念,因此讀寫時(shí)序很重要。系統(tǒng)

41、對DS18B20的各種操作必須按協(xié)議進(jìn)行。操作協(xié)議為:初始化DS18B20(發(fā)復(fù)位脈沖)→發(fā)ROM功能命令→發(fā)存儲器操作命令→處理數(shù)據(jù)。</p><p>  圖2-4 DS18B20測溫原理圖</p><p>  2.2.5 DS18B20工作時(shí)序</p><p>  圖2-5為時(shí)序圖中各總線狀態(tài)。</p><p><b>  圖2

42、-5工作時(shí)序圖</b></p><p>  (1)初始化(時(shí)序圖見圖2-6)。</p><p>  圖2-6 初始化時(shí)序圖</p><p>  ① 先將數(shù)據(jù)線置高電平1。</p><p> ?、?延時(shí)(改時(shí)間要求不是很嚴(yán)格,但是要盡可能短一點(diǎn))。</p><p> ?、?數(shù)據(jù)線拉到低電平0.</p&g

43、t;<p>  ④ 延時(shí)750us(改時(shí)間范圍可以在480-960us)。</p><p> ?、?數(shù)據(jù)線拉到高電平1。</p><p> ?、?延時(shí)等待。如果初始化成功則在15-60ms 內(nèi)產(chǎn)生一個(gè)有DS18B20 返回的低電平0,據(jù)該狀態(tài)可以確定它的存在。但是應(yīng)注意不能無限的等待,不然會使程序進(jìn)入死循環(huán),所以要進(jìn)行超時(shí)判斷。</p><p> ?、?/p>

44、 若CPU 讀到數(shù)據(jù)線上的低電平0 后,還要進(jìn)行延時(shí),其延時(shí)的時(shí)間從發(fā)出高電平算起(第5 步的時(shí)間算起)最少要480us。</p><p> ?、?將數(shù)據(jù)線再次拉到高電平1 后結(jié)束。</p><p>  (2)DS18B20 寫數(shù)據(jù)</p><p> ?、?數(shù)據(jù)線先置低電平0。</p><p> ?、?延時(shí)確定的時(shí)間為15us。</p&

45、gt;<p> ?、?按從低位到高位的順序發(fā)送數(shù)據(jù)(一次只發(fā)送一位)。</p><p>  ④ 延時(shí)時(shí)間為45us。</p><p> ?、?將數(shù)據(jù)線拉到高電平1。</p><p> ?、?重復(fù)①-⑤步驟,直到發(fā)送完整個(gè)字節(jié)。</p><p> ?、?最后將數(shù)據(jù)線拉到高電平1。</p><p> ?。ǎ常?/p>

46、DS18B20 讀數(shù)據(jù)</p><p> ?、?將數(shù)據(jù)線拉到高電平1。</p><p><b> ?、?延時(shí)2us。</b></p><p> ?、?將數(shù)據(jù)線拉低到0。</p><p><b> ?、?延時(shí)6us。</b></p><p> ?、?將數(shù)據(jù)線拉高到1。</

47、p><p><b> ?、?延時(shí)4us。</b></p><p> ?、?讀數(shù)據(jù)線的狀態(tài)得到一個(gè)狀態(tài)位,并進(jìn)行數(shù)據(jù)處理。</p><p><b> ?、?延時(shí)30us。</b></p><p> ?、?重復(fù)①-⑦步驟,直到讀完一個(gè)字節(jié)。</p><p>  2.3 硬件電路設(shè)計(jì)&

48、lt;/p><p>  2.3.1 測溫電路</p><p>  本設(shè)計(jì)采用DS18B20溫度傳感器作為溫度采集電路核心部件。DS18B20是美國DALLAS 半導(dǎo)體公司推出的第一片支持“一線總線”接口的溫度傳感器,它具有微型化、低功耗、高性能、抗干擾能力強(qiáng)、易配微處理器等優(yōu)點(diǎn),可直接將溫度轉(zhuǎn)化成串行數(shù)字信號供處理器處理。</p><p>  目前常用的單片機(jī)與外設(shè)之間

49、進(jìn)行數(shù)據(jù)傳輸?shù)拇锌偩€主要有I²C 總線以同步串行二線方式進(jìn)行通信(一條時(shí)鐘線,一條數(shù)據(jù)線),SPI總線則以同步串行三線方式進(jìn)行通信(一條時(shí)鐘線,一條數(shù)據(jù)輸入線,一條數(shù)據(jù)輸出線),而SCI 總線是以異步方式進(jìn)行通信的(一條數(shù)據(jù)輸入線,一條數(shù)據(jù)輸出線)。這些總線至少需要兩條或兩條以上的信號線,而DS18B20使用的單總線技術(shù)與上述總線不同,它采用單條信號線,既可傳輸時(shí)鐘,又可傳輸數(shù)據(jù),而且數(shù)據(jù)傳輸是雙向的,因而單總線技術(shù)具有線路

50、簡單,硬件開銷少,成本低廉,便于總線擴(kuò)展和維護(hù)等優(yōu)點(diǎn)。單總線適用于單主機(jī)系統(tǒng),能夠控制一個(gè)或多個(gè)從機(jī)設(shè)備。主機(jī)可以是微控制器,從機(jī)可以是單總線器件,他們之間的數(shù)據(jù)交換只通過一條信號線。當(dāng)只有一個(gè)從機(jī)設(shè)備時(shí),系統(tǒng)可按單節(jié)點(diǎn)系統(tǒng)操作;當(dāng)有從機(jī)設(shè)備時(shí),系統(tǒng)則按多節(jié)點(diǎn)系統(tǒng)操作。設(shè)備(主機(jī)或從機(jī))通過一個(gè)漏極開路或三態(tài)端口連至該數(shù)據(jù)線,以允許設(shè)備在不發(fā)送數(shù)據(jù)時(shí)能夠釋放出總線,而讓其他設(shè)備使用總線。單總線要求外接4.7kΩ的上拉電阻。本設(shè)計(jì)系統(tǒng)的溫

51、度采集電路圖如圖2-7所示[]。</p><p><b>  圖2-7 測溫電路</b></p><p>  由圖可以看出,DS18B20 和單片機(jī)的連接非常簡單,單片機(jī)只需要一個(gè)I/O 口就可以控制DS18B20。這個(gè)圖的接法是單片機(jī)與一個(gè)DS18B20 通信,如果要控制多個(gè)DS18B20 進(jìn)行溫度采集,只要將所有的DS18B20 的I/O 口全部連在一起就可以了。

52、在具體操作時(shí),通過讀取每個(gè)DS18B20 內(nèi)部芯片的序列號來識別。本系統(tǒng)僅操作一個(gè)DS18B20 進(jìn)行溫度采集。</p><p>  2.3.2 顯示電路</p><p>  單片機(jī)應(yīng)用系統(tǒng)中,通常都需要進(jìn)行人機(jī)對話,這包括人對應(yīng)用系統(tǒng)的狀態(tài)干預(yù)與數(shù)據(jù)輸入,以及應(yīng)用系統(tǒng)向人們顯示運(yùn)行狀態(tài)與運(yùn)行結(jié)果等。</p><p>  LED 顯示電路由段驅(qū)動(dòng)電路和位驅(qū)動(dòng)電路組成

53、。由于單片機(jī)的并行口不能驅(qū)動(dòng)LED 顯示器,必須采用專門的驅(qū)動(dòng)電路芯片,使之產(chǎn)生足夠大的電流,顯示器才能正常工作。如果驅(qū)動(dòng)電路能力差,即負(fù)載能力不夠,顯示器亮度就低,而且驅(qū)動(dòng)電路長期在超負(fù)荷下運(yùn)行容易損壞。</p><p>  LED 顯示器的顯示控制方式分為靜態(tài)顯示和動(dòng)態(tài)顯示兩種,若選擇靜態(tài)顯示,則LED 驅(qū)動(dòng)器的選擇較為簡單,只要驅(qū)動(dòng)器的驅(qū)動(dòng)能力與顯示器的電流相匹配即可;動(dòng)態(tài)顯示則不同,由于一位數(shù)據(jù)的顯示是由

54、段和位選信號共同配合完成的,因此,要同時(shí)考慮段和位的驅(qū)動(dòng)能力,而且段的驅(qū)動(dòng)能力決定位的驅(qū)動(dòng)能力[]。數(shù)碼管位選代碼如圖2-8所示。</p><p>  圖2-8 數(shù)碼管位選代碼</p><p>  2.3.3 報(bào)警電路</p><p>  當(dāng)溫度超過設(shè)定溫度時(shí),實(shí)現(xiàn)聲光報(bào)警,蜂鳴器鳴叫、二極管閃爍。蜂鳴器由單片機(jī)P3~7口控制,用三極管驅(qū)動(dòng),電路如圖2-9所示[]。

55、</p><p><b>  圖2-9 報(bào)警電路</b></p><p>  2.3.4 降溫、加熱電路</p><p>  繼電器是一種電子控制器件,它具有控制系統(tǒng)(又稱輸入回路)和被控制系統(tǒng)(又稱輸出回路),通常應(yīng)用于自動(dòng)控制電路中,它實(shí)際上是用較小的電流去控制較大電流的一種“自動(dòng)開關(guān)”。故在電路中起著自動(dòng)調(diào)節(jié)、安全保護(hù)、轉(zhuǎn)換電路等作用。&

56、lt;/p><p>  當(dāng)溫度超過設(shè)定溫度后,單片機(jī)控制繼電器,繼電器通過三極管驅(qū)動(dòng),但三極管由導(dǎo)通變?yōu)榻刂箷r(shí),繼電器繞組感生出一個(gè)較大的自感電壓。它與電源電壓疊加后加到控制繼電器線圈的三極管上,使發(fā)射結(jié)有可能被擊穿。為了消除這個(gè)感應(yīng)電動(dòng)勢的有害影響,在繼電器線圈兩端反向并聯(lián)抑制二極管,以吸收該電動(dòng)勢,保證三極管的安全。降溫、加熱電路如圖2-10所示。</p><p>  圖2-10 降溫、加

57、熱電路</p><p>  2.3.5 其他電路</p><p><b>  按鍵輸入電路</b></p><p>  考慮到系統(tǒng)的要求,還需設(shè)計(jì)按鍵輸入電路,基于單片機(jī)的溫度控制系統(tǒng)工作時(shí)應(yīng)具備以下功能:可以切換顯示實(shí)時(shí)溫度和溫度上限值??梢哉{(diào)節(jié)溫度上、下限。要實(shí)現(xiàn)這些功能,可以通過按鍵輸入電路。</p><p>  

58、鍵盤結(jié)構(gòu)可分為獨(dú)立式鍵盤和行列式鍵盤(矩陣式)兩類,由于本系統(tǒng)只采用4 個(gè)按鍵,因此可選用獨(dú)立式按鍵,按鍵采用輕觸開關(guān)。這4個(gè)按鍵的功能分別是:調(diào)整溫度上限、加1、減1,復(fù)位。如圖2-11所示。</p><p>  圖2-11 按鍵電路</p><p><b>  電源電路</b></p><p>  由于該系統(tǒng)需要穩(wěn)定的5V 電源,因此設(shè)計(jì)時(shí)

59、必須采用能滿足電壓,電流和穩(wěn)定性要求的電源。本電源采用三端集成穩(wěn)壓器LM7805。它僅有輸入端、輸出端及公共端三個(gè)引腳。其內(nèi)部設(shè)有過流保護(hù),過熱保護(hù)及調(diào)整管安全保護(hù)電路。由于所需外接元件少,使用方便、可靠,因此可作為穩(wěn)壓電源。圖2-12為電源電路連接圖[]。</p><p>  圖2-12 電源電路</p><p><b>  3 系統(tǒng)軟件設(shè)計(jì)</b></p&g

60、t;<p><b>  3.1軟件設(shè)計(jì)</b></p><p>  整個(gè)系統(tǒng)的功能是由硬件電路配合軟件來實(shí)現(xiàn)的,當(dāng)硬件基本定型后,軟件的功能也就基本定下來了。按照軟件的功能,把軟件分為兩大類:一是監(jiān)控軟件(主程序),它是整個(gè)控制系統(tǒng)的核心,專門用來協(xié)調(diào)各執(zhí)行模塊和操作者的關(guān)系。二是執(zhí)行軟件(子程序),它是用來完成各種實(shí)質(zhì)性的功能如測量、計(jì)算、顯示、通訊等。每一個(gè)執(zhí)行軟件也就是一

61、個(gè)小的功能執(zhí)行模塊。這里將各執(zhí)行模塊一一列出,并為每一個(gè)執(zhí)行模塊進(jìn)行功能定義和接口定義。各執(zhí)行模塊規(guī)劃好后,就可以規(guī)劃監(jiān)控程序了。首先要根據(jù)系統(tǒng)的總體功能選擇一種最合適的監(jiān)控程序結(jié)構(gòu),然后根據(jù)實(shí)時(shí)性的要求,合理地安排監(jiān)控軟件和各執(zhí)行模塊之間地調(diào)度關(guān)系。圖3-1為讀取數(shù)據(jù)流程圖,具體代碼參考附錄一[]。</p><p><b>  N</b></p><p><b

62、>  Y</b></p><p>  圖3-1 數(shù)據(jù)讀取流程圖[]</p><p><b>  4 系統(tǒng)調(diào)試</b></p><p><b>  4.1 軟件調(diào)試</b></p><p>  本次設(shè)計(jì)采用preteus仿真,測試采用模擬溫度測試,測試結(jié)果如下。</p>

63、<p>  當(dāng)環(huán)境溫度大于38度時(shí),蜂鳴器報(bào)警,并啟動(dòng)繼電器,模擬降溫裝置啟動(dòng)。當(dāng)環(huán)境溫度小于5度時(shí),蜂鳴器報(bào)警,并啟動(dòng)繼電器,模擬加熱裝置啟動(dòng)。</p><p>  在用proteus仿真過程中出現(xiàn)一些問題,包括以下幾個(gè)方面。</p><p>  數(shù)碼管顯示亂碼,出現(xiàn)這種情況主要是程序錯(cuò)誤,我用的是四位共陰數(shù)碼管,而在編寫程序時(shí),卻誤用成了共陽數(shù)碼管的代碼,經(jīng)改正后顯示正常。

64、</p><p>  降溫、加熱電路啟動(dòng)錯(cuò)誤,在沒有超過報(bào)警溫度時(shí),電路啟動(dòng),超過報(bào)警溫度后,卻又關(guān)閉,經(jīng)排查是單片機(jī)引腳是高電平,而降溫加熱子程序中,設(shè)置的是高電平啟動(dòng)。設(shè)置成低電平啟動(dòng)時(shí),電路工作正常。</p><p>  按鍵電路沒反應(yīng),在按下設(shè)置鍵以及調(diào)整鍵時(shí),系統(tǒng)沒有反應(yīng)。經(jīng)排查后發(fā)現(xiàn)是按鍵沒接地。接地后按鍵電路工作正常。</p><p><b>

65、;  4.2 元器件調(diào)試</b></p><p>  在系統(tǒng)元件的焊接中出現(xiàn)過很多問題,在經(jīng)過逐一排查后,系統(tǒng)最終運(yùn)行起來,其中出現(xiàn)的包括以下幾個(gè)方面。</p><p>  開機(jī)后系統(tǒng)顯示亂碼,系統(tǒng)不起作用,經(jīng)排查后發(fā)現(xiàn)晶振電路用錯(cuò)了電容,換成22pF后系統(tǒng)工作,但仍顯示亂碼。查資料后發(fā)現(xiàn),由于用的是片內(nèi)存儲器,但EA/Vpp沒有接高電平,接上高電平后數(shù)碼管顯示正常。</

66、p><p>  系統(tǒng)工作不正常,溫度一直顯示85度,確定程序沒有問題后,經(jīng)排查后發(fā)現(xiàn)由于之前把傳感器接反,導(dǎo)致DS18B20燒壞,重新更換后問題解決,顯示正常。</p><p>  數(shù)碼管顯示太暗,系統(tǒng)運(yùn)行后發(fā)現(xiàn),數(shù)碼管顯示的太暗,看不太清楚,故在數(shù)碼管位選腳上加上拉電阻,經(jīng)測試后,數(shù)碼管顯示正常。</p><p><b>  5 總 結(jié)</b>

67、</p><p>  此次課程設(shè)計(jì)中,難點(diǎn)在于DS18B20的使用,即對它的時(shí)序控制、初始化以及字節(jié)讀寫方法,任何一個(gè)環(huán)節(jié)出錯(cuò)或是時(shí)序控制不到位的話就不能得到正確的數(shù)據(jù)。一旦學(xué)會了正確的使用方法,就能感覺到它帶來的便利是熱電偶不能比擬的,以后再次使用的話就能很快上手了。</p><p>  軟件設(shè)計(jì)中,把程序按功能分模塊的話能提高編程效率,把問題一一解決,同時(shí)畫流程圖能幫助理清思路,使問題

68、簡單化。定義變量時(shí),盡量定義局部變量,在字符型變量能達(dá)到要求的情況下就不用定義成整形變量了,以節(jié)省內(nèi)存空間。同時(shí)局部變量應(yīng)避免與全局變量取同名,否則全局變量將被屏蔽或與局部變量相沖突而達(dá)不到設(shè)計(jì)的效果。另一方面,取變量名時(shí)也要講究技巧,應(yīng)盡量使其見名知意,同樣地,寫程序時(shí)加注釋確是非常必要的,否則隔一段時(shí)間后,想再改進(jìn)或做擴(kuò)展的話就比較困難了,因?yàn)榧词故亲约簩懙某绦蛞沧兊秒y讀難懂了。在做鍵盤消抖時(shí),延時(shí)的時(shí)間比較重要,一般為10ms左右

69、,延時(shí)太短就會使按鍵太過靈敏,按一下就使數(shù)字跳變幾次;而延時(shí)過長則可能使按鍵按下了卻無響應(yīng),在外部定義初始化一個(gè)延時(shí)函數(shù)的入口參量則能很方便地調(diào)整延時(shí)時(shí)間,以達(dá)到比較好的效果。另外,如果對按鍵進(jìn)行釋放判斷的話就能解決長時(shí)間按鍵導(dǎo)致按鍵重復(fù)響應(yīng)的問題。</p><p>  總的來說,自己從這次獨(dú)立的畢業(yè)設(shè)計(jì)中收獲了一些知識與經(jīng)驗(yàn),一些從書本中學(xué)之不來的東西,不是說理論無用,而這恰恰是在理論的土壤中開出的花朵,是在理

70、論的肩膀望見的更寬廣的道路!成功來之不易,自主動(dòng)手動(dòng)腦實(shí)踐,小小的成果亦能帶來碩大的喜悅。</p><p><b>  致 謝</b></p><p>  首先,我要感謝河南理工大學(xué)萬方科技學(xué)院,感謝電氣系對我四年的培養(yǎng),讓我學(xué)到了許許多多的知識,感謝各位老師在這四年里對我的關(guān)懷與照顧,在此致以我深深的謝意。</p><p>  本論文從選題

71、到最后定稿成文,本校趙鴻圖老師一直給予了悉心指導(dǎo),趙老師那種嚴(yán)謹(jǐn)求實(shí)的作風(fēng),廣博深邃的洞察力,孜孜不倦的開拓精神和敬業(yè)精神令我深受啟迪和教益,謹(jǐn)向我的指導(dǎo)老師趙鴻圖老師致以深深的謝意。</p><p>  我國古代有句成語叫做“管中窺豹,略見一斑”,本文是基于單片機(jī)及溫度傳感器,組成溫度自動(dòng)控制裝置。但是,由于我水平有限,在理論的描述、資料的運(yùn)用等方面難免有不當(dāng)、不深、不周之處,有些觀點(diǎn)也尚欠成熟,敬請各位老師批

72、評指正。 </p><p>  最后,我還要向所有曾經(jīng)幫助過我的同學(xué)和朋友們致敬。你們的鼓勵(lì)和幫助永遠(yuǎn)是我前進(jìn)的動(dòng)力。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 郭天祥.51單片機(jī)C語言教程--入門、提高、開發(fā)、拓展全攻略[M].北京:電子工業(yè)出版社,2009.</p><p>  [2]

73、 蔡美琴、毛敏等.MCS-51系列單片機(jī)系統(tǒng)及其應(yīng)用[M].北京:高等教育出版社,2009.</p><p>  [3] 閆勝利.Altium Designer實(shí)用寶典-原理圖與PCB設(shè)計(jì)[M]. 北京,電子工業(yè)出版社,2007.</p><p>  [4] 朱清惠等.Prnteus教程:電子線路設(shè)計(jì)制版與仿真[M].北京:清華大學(xué)出版社,2008.</p><p>

74、;  [5] 康華光.電子技術(shù)基礎(chǔ)一模擬部分[M].北京:高等教育出版社,2008.</p><p>  [6] 康華光.電子技術(shù)基礎(chǔ)一數(shù)字部分[M].北京:高等教育出版社,2009.</p><p>  [7] 鈴術(shù)雅成.晶體管電路設(shè)計(jì)[M].科學(xué)出版社,2010.</p><p>  [8] 譚浩強(qiáng).C程序設(shè)計(jì)[M].北京:清華人學(xué)出版社, 2008.</

75、p><p><b>  附錄一 </b></p><p><b>  源程序:</b></p><p>  /*************************************************************</p><p>  程序名稱:DS18B20溫度測量、報(bào)警系統(tǒng)<

76、/p><p>  簡要說明:DS18B20溫度計(jì),溫度測量范圍0~99.9攝氏度</p><p>  可設(shè)置上限報(bào)警溫度、下限報(bào)警溫度</p><p>  即高于上限值或者低于下限值時(shí)蜂鳴器報(bào)警,并啟動(dòng)降溫、加熱電路</p><p>  默認(rèn)上限報(bào)警溫度為38℃、默認(rèn)下限報(bào)警溫度為5℃</p><p>  報(bào)警值可設(shè)置范圍

77、:最低上限報(bào)警值等于當(dāng)前下限報(bào)警值</p><p>  最高下限報(bào)警值等于當(dāng)前上限報(bào)警值</p><p>  將下限報(bào)警值調(diào)為0時(shí)為關(guān)閉下限報(bào)警功能 </p><p>  *************************************************************/</p><p>  #include &

78、lt;AT89X52.h></p><p>  #include "DS18B20.h" </p><p>  #define uint unsigned int</p><p>  #define uchar unsigned char //宏定義</p><p>  #define SET P3_1

79、 //定義調(diào)整鍵</p><p>  #define DEC P3_2 //定義減少鍵</p><p>  #define ADD P3_3 //定義增加鍵</p><p>  #define BEEP P3_7 //定義蜂鳴器</p><p>  #define Cool P3_5 //定義降溫</p>

80、<p>  #define Hot P3_0 //定義加熱</p><p>  bit shanshuo_st; //閃爍間隔標(biāo)志</p><p>  bit beep_st; //蜂鳴器間隔標(biāo)志</p><p>  sbit DIAN = P2^7; //小數(shù)點(diǎn)</p><p>  ucha

81、r x=0; //計(jì)數(shù)器</p><p>  signed char m; //溫度值全局變量</p><p>  uchar n; //溫度值全局變量</p><p>  uchar set_st=0; //狀態(tài)標(biāo)志</p><p>  signed char shangxian=38; //上限報(bào)警溫

82、度,默認(rèn)值為38</p><p>  signed char xiaxian=5; //下限報(bào)警溫度,默認(rèn)值為5</p><p>  uchar code LEDData[]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f};</p><p>  uchar code ALARMData[]={0x3f

83、,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f};</p><p>  /*****延時(shí)子程序*****/</p><p>  void Delay(uint num)</p><p><b>  {</b></p><p>  while( --num );</p&g

84、t;<p><b>  }</b></p><p>  /*****初始化定時(shí)器0*****/</p><p>  void InitTimer(void)</p><p><b>  {</b></p><p><b>  TMOD=0x1;</b></p

85、><p><b>  TH0=0x3c;</b></p><p>  TL0=0xb0; //50ms(晶振12M)</p><p><b>  }</b></p><p>  /*****定時(shí)器0中斷服務(wù)程序*****/</p><p>  void timer0(vo

86、id) interrupt 1</p><p><b>  {</b></p><p><b>  TH0=0x3c;</b></p><p><b>  TL0=0xb0;</b></p><p><b>  x++;</b></p>&l

87、t;p><b>  }</b></p><p>  /*****外部中斷0服務(wù)程序*****/</p><p>  void int0(void) interrupt 0</p><p><b>  {</b></p><p>  EX0=0; //關(guān)外部中斷0</p>

88、<p>  if(DEC==0&&set_st==1)</p><p><b>  {</b></p><p>  shangxian--;</p><p>  if(shangxian<xiaxian)shangxian=xiaxian;</p><p><b>  }<

89、;/b></p><p>  else if(DEC==0&&set_st==2)</p><p><b>  {</b></p><p>  xiaxian--;</p><p>  if(xiaxian<0)xiaxian=0;</p><p><b> 

90、 }</b></p><p><b>  }</b></p><p>  /*****外部中斷1服務(wù)程序*****/</p><p>  void int1(void) interrupt 2</p><p><b>  {</b></p><p>  EX1=0

91、; //關(guān)外部中斷1</p><p>  if(ADD==0&&set_st==1)</p><p><b>  {</b></p><p>  shangxian++;</p><p>  if(shangxian>99)shangxian=99;</p><p>

92、;<b>  }</b></p><p>  else if(ADD==0&&set_st==2)</p><p><b>  {</b></p><p>  xiaxian++;</p><p>  if(xiaxian>shangxian)xiaxian=shangxian

93、;</p><p><b>  } </b></p><p><b>  }</b></p><p>  /*****讀取溫度*****/</p><p>  void check_wendu(void)</p><p><b>  {</b><

94、/p><p>  uint a,b,c;</p><p>  c=ReadTemperature()-5; //獲取溫度值并減去DS18B20的溫漂誤差</p><p>  a=c/100; //計(jì)算得到十位數(shù)字</p><p>  b=c/10-a*10; //計(jì)算得到個(gè)位數(shù)字</p><p>  m=c

95、/10; //計(jì)算得到整數(shù)位</p><p>  n=c-a*100-b*10; //計(jì)算得到小數(shù)位</p><p>  if(m<0){m=0;n=0;} //設(shè)置溫度顯示上限</p><p>  if(m>99){m=99;n=9;} //設(shè)置溫度顯示上限 </p><p><b>  

96、}</b></p><p>  /*****顯示開機(jī)初始化等待畫面*****/</p><p>  Disp_init() </p><p><b>  {</b></p><p>  P0 = 0xf7;</p><p>  Delay(200);</p><

97、;p>  P0 = 0xfb;</p><p>  Delay(200); </p><p>  P0 = 0xfd;</p><p>  Delay(200);</p><p>  P0 = 0xfe;</p><p>  Delay(200);</p><p>  P2 = 0xb

98、f; //顯示-</p><p>  P0 = 0xff; //關(guān)閉顯示</p><p><b>  }</b></p><p>  /*****顯示溫度子程序*****/</p><p>  Disp_Temperature() //顯示溫度</p><p>&

99、lt;b>  {</b></p><p>  P0 = 0xf7;</p><p>  P2 =LEDData[n]; //顯示個(gè)位</p><p>  Delay(300);</p><p>  P0 = 0xfb;</p><p>  P2 =LEDData[m%10]; //顯示十位

100、</p><p>  DIAN = 1; //顯示小數(shù)點(diǎn)</p><p>  Delay(300);</p><p>  P0 = 0xfd;</p><p>  P2 =LEDData[m/10]; //顯示百位</p><p>  Delay(300);</p><p>

101、;  P0 = 0xff; //關(guān)閉顯示</p><p><b>  }</b></p><p>  /*****顯示報(bào)警溫度子程序*****/</p><p>  Disp_alarm(uchar baojing)</p><p><b>  {</b></p>&l

102、t;p>  P0 = 0xf7;</p><p>  P2 =ALARMData[baojing%10]; //顯示十位</p><p>  Delay(200);</p><p>  P0 = 0xfb;</p><p>  P2 =ALARMData[baojing/10]; //顯示百位</p><p> 

103、 Delay(200);</p><p>  P0 = 0xfd;</p><p>  if(set_st==1)P2 =0x76;</p><p>  else if(set_st==2)P2 =0x38; //上限H、下限L標(biāo)示</p><p>  Delay(200);</p><p>  P0 = 0xff;

104、 //關(guān)閉顯示</p><p><b>  }</b></p><p>  /*****報(bào)警子程序*****/</p><p>  void Alarm()</p><p><b>  {</b></p><p>  if(x>=10){beep_st=~

105、beep_st;x=0;}</p><p>  if((m>=shangxian&&beep_st==1)||(m<xiaxian&&beep_st==1))BEEP=0;</p><p>  else BEEP=1;</p><p><b>  }</b></p><p> 

106、 /*****降溫子程序*****/</p><p>  void jiangwen()</p><p><b>  {</b></p><p>  if(m>shangxian-1) Cool=0;</p><p>  else Cool=1;</p><p><b>  }&l

107、t;/b></p><p>  /*****加熱子程序*****/</p><p>  void jiare()</p><p><b>  {</b></p><p>  if(m<xiaxian) Hot=0;</p><p>  else Hot=1;</p&g

108、t;<p><b>  }</b></p><p>  /*****主函數(shù)*****/</p><p>  void main(void)</p><p><b>  {</b></p><p><b>  uint z;</b></p><p

109、>  InitTimer(); //初始化定時(shí)器</p><p>  EA=1; //全局中斷開關(guān)</p><p><b>  TR0=1;</b></p><p>  ET0=1; //開啟定時(shí)器0</p><p>  IT0=1; </p><p>

110、;<b>  IT1=1;</b></p><p>  check_wendu();</p><p>  check_wendu();</p><p>  for(z=0;z<300;z++)</p><p><b>  {</b></p><p>  Disp_ini

111、t(); </p><p><b>  }</b></p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  if(SET==0)</p><p><b>  {</b

112、></p><p>  Delay(2000);</p><p>  do{}while(SET==0);</p><p>  set_st++;x=0;shanshuo_st=1;</p><p>  if(set_st>2)set_st=0;</p><p><b>  }</b>

113、</p><p>  if(set_st==0)</p><p><b>  {</b></p><p>  EX0=0; //關(guān)閉外部中斷0</p><p>  EX1=0; //關(guān)閉外部中斷1</p><p>  check_wendu();</p><p>

114、;  Disp_Temperature();</p><p>  Alarm(); //報(bào)警檢測</p><p>  jiangwen();</p><p><b>  jiare();</b></p><p><b>  }</b></p><p>  else if(

115、set_st==1)</p><p><b>  {</b></p><p>  BEEP=1; //關(guān)閉蜂鳴器</p><p>  EX0=1; //開啟外部中斷0</p><p>  EX1=1; //開啟外部中斷1</p><p>  if(x>=10){shansh

116、uo_st=~shanshuo_st;x=0;}</p><p>  if(shanshuo_st) {Disp_alarm(shangxian);}</p><p><b>  }</b></p><p>  else if(set_st==2)</p><p><b>  {</b></p

117、><p>  BEEP=1; //關(guān)閉蜂鳴器</p><p>  EX0=1; //開啟外部中斷0</p><p>  EX1=1; //開啟外部中斷1</p><p>  if(x>=10){shanshuo_st=~shanshuo_st;x=0;}</p><p>  if(shanshuo_

118、st) {Disp_alarm(xiaxian);}</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  /*****END*****/</p><p><b&

溫馨提示

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

最新文檔

評論

0/150

提交評論