基于DS18B20的溫度報警器設(shè)計_第1頁
基于DS18B20的溫度報警器設(shè)計_第2頁
基于DS18B20的溫度報警器設(shè)計_第3頁
基于DS18B20的溫度報警器設(shè)計_第4頁
基于DS18B20的溫度報警器設(shè)計_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于DS18B20的溫度報警器設(shè)計畢業(yè)設(shè)計論文基于DS18B20的溫度報警器設(shè)計 系 電子信息工程系 專業(yè) 電子信息工程技術(shù) 姓名 康志凌 班級 電子信息122 學(xué)號 1201043206 指導(dǎo)教師 徐敏 N 職稱 講師 設(shè)計時間 2014.10.082015.04.08 摘要本設(shè)計以AT89C51單片機為核心,設(shè)計了一個溫度測量報警系統(tǒng),可以方便的實現(xiàn)溫度采集和顯示。它使用起來相當方便,具有精度高、量程寬、靈敏度高、體積小、功耗低等優(yōu)點,適合于我們?nèi)粘I詈凸まr(nóng)業(yè)中的溫度測量及報警。本設(shè)計由AT89C51單片機、DS18B20溫度傳感器和LED顯示器組成,可以直觀的顯示測量的溫度。本設(shè)計運行

2、過程中,如果外界溫度低于-20或高于70,系統(tǒng)將出發(fā)蜂鳴器,產(chǎn)生報警聲音,且對應(yīng)的LED同步閃爍。關(guān)鍵詞:AT89C51,DS18B20,傳感器,溫度報警器I目錄摘要I目錄II第1章 引言1第2章 方案設(shè)計2第3章 DS18B20簡介33.1 DS18B20性能指標33.2 DS18B20的封裝及內(nèi)部結(jié)構(gòu)43.3 DS18B20工作原理及應(yīng)用43.4 控制器對DS18B20操作流程5第4章 硬件電路設(shè)計74.1 AT89C5184.2 晶振電路94.3 復(fù)位電路94.4 報警電路104.5 74LS245104.6 顯示電路11第5章 軟件設(shè)計125.1 主程序模塊125.2 程序說明12第6

3、章 仿真結(jié)果21參考文獻23致謝24IIII第1章 引言 溫度是一個十分重要的物理量,對他的測量與控制有著十分重要的意義。隨著現(xiàn)代化工農(nóng)業(yè)技術(shù)的發(fā)展及人民對生活環(huán)境要求的提高,人民也迫切需要監(jiān)測和控制溫度.在人類的生活環(huán)境中,溫度扮演著極其重要的角色。無論你生活在哪里,從事什么工作,無時無刻不在跟溫度打著交道。子18世紀工業(yè)革命以來,工業(yè)發(fā)展對是否能掌握溫度有著絕對的聯(lián)系。在冶金、鋼鐵、石化、水泥、玻璃、醫(yī)藥等等行業(yè),可以說幾乎80%的工業(yè)部門都不得不靠路這溫度的因素。信息科學(xué)和航空工業(yè)的飛速發(fā)展給人們生活甚至國家安全帶來了巨大的飛躍。我的實習(xí)單位是航天八五一一研究所,在我工作期間深刻感覺到溫

4、度對焊接工藝的重要性,往往只是高了或低了一二攝氏度,就有可能將電纜或芯片報廢掉,造成嚴重的損失。我們也在重要的位置上放置了一個溫度測量報警器由此可見溫度對我們工作生活的重要性,溫度傳感器以及溫度報警器就顯得格外重要。第2章 方案設(shè)計本設(shè)計主要元件有AT89C51、DS18B20、數(shù)碼管等,其中由AT89C51作為控制器,DS18B20測量溫度,再通過74LS245把AT89C51單片機芯片所處理和轉(zhuǎn)化的數(shù)據(jù)傳輸?shù)綌?shù)碼管中。當DS18B20感知到溫度達到高于70或低于-20臨界值時相應(yīng)的LED閃爍,同時蜂鳴器發(fā)出報警聲。晶振是正弦波震蕩電路,供本設(shè)計數(shù)字電路整形后作時鐘源。復(fù)位電路的作用是把電路

5、恢復(fù)到起始狀態(tài)。本設(shè)計的溫度報警器電路的總體框圖如圖2.1所示。圖2.1 溫度報警器電路的總體框架第3章 DS18B20簡介DS18B20是美國DALLAS半導(dǎo)體公司繼DS1820之后最新推出的一種改進型智能溫度傳感器。與傳統(tǒng)的熱敏電阻相比,他能夠直接讀出被測溫度并且可根據(jù)實際要求通過簡單的編程實現(xiàn)912位的數(shù)字值讀數(shù)方式??梢苑謩e在93.75 ms和750 ms內(nèi)完成9位和12位的數(shù)字量,并且從DS18B20讀出的信息或?qū)懭隓S18B20的信息僅需要一根口線(單線接口)讀寫,溫度變換功率來源于數(shù)據(jù)總線,總線本身也可以向所掛接的DS18B20供電,而無需額外電源。因而使用DS18B20可使系統(tǒng)

6、結(jié)構(gòu)更趨簡單,可靠性更高。他在測溫精度、轉(zhuǎn)換時間、傳輸距離、分辨率等方面較DS1820有了很大的改進,給用戶帶來了更方便的使用和更令人滿意的效果。 3.1 DS18B20性能指標 (1)獨特的單線接口方式:DS18B20與微處理器連接時僅需要一條口線即可實現(xiàn)微處理器與DS18B20的雙向通訊。 (2)在使用中不需要任何外圍元件。 (3)可用數(shù)據(jù)線供電,電壓范圍:+3.0 +5.5 V。 (4)測溫范圍:-55 +125 。固有測溫分辨率為0.5 。 (5)通過編程可實現(xiàn)912位的數(shù)字讀數(shù)方式。 (6)用戶可自設(shè)定非易失性的報警上下限值。 (7)支持多點組網(wǎng)功能,多個DS18B20可以并聯(lián)在惟一

7、的三線上,實現(xiàn)多點測溫。 (8)負壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作。3.2 DS18B20的封裝及內(nèi)部結(jié)構(gòu)DS18B20的封裝如圖3.1所示。圖3.1 DS18B20的封裝DS18B20引腳功能:1、 GND為電源地2、 DQ為數(shù)字信號輸入/輸出端3、VDD為外接供電電源輸入端(在寄生電源接線方式時地) DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器TH和TL、配置寄存器。 3.3 DS18B20工作原理及應(yīng)用DS18B20的溫度檢測與數(shù)字數(shù)據(jù)輸出全集成于一個芯片之上,從而抗干擾力更強。其一個工作周期可分為兩個部分,即

8、溫度檢測和數(shù)據(jù)處理。在講解其工作流程之前我們有必要了解18B20的內(nèi)部存儲器資源。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(常用于溫度報警值儲存)的鏡像。在上電復(fù)位時

9、其值將被刷新。第5個字節(jié)則是用戶第3個EEPROM的鏡像。第6、7、8個字節(jié)為計數(shù)寄存器,是為了讓用戶得到更高的溫度分辨率而設(shè)計的,同樣也是內(nèi)部溫度轉(zhuǎn)換、計算的暫存單元。第9個字節(jié)為前8個字節(jié)的CRC碼。EEPROM 非易失性記憶體,用于存放長期需要保存的數(shù)據(jù),上下限溫度報警值和校驗數(shù)據(jù),DS18B20共3位EEPROM,并在RAM都存在鏡像,以方便用戶操作。3.4 控制器對DS18B20操作流程1. 復(fù)位:首先我們必須對DS18B20芯片進行復(fù)位,復(fù)位就是由控制器(單片機)給DS18B20單總線至少480uS的低電平信號。當18B20接到此復(fù)位信號后則會在1560uS后回發(fā)一個芯片的存在脈沖

10、。2. 存在脈沖:在復(fù)位電平結(jié)束之后,控制器應(yīng)該將數(shù)據(jù)單總線拉高,以便于在1560uS后接收存在脈沖,存在脈沖為一個60240uS的低電平信號。至此,通信雙方已經(jīng)達成了基本的協(xié)議,接下來將會是控制器與18B20間的數(shù)據(jù)通信。如果復(fù)位低電平的時間不足或是單總線的電路斷路都不會接到存在脈沖,在設(shè)計時要注意意外情況的處理。3. 控制器發(fā)送ROM指令:雙方打完了招呼之后最要將進行交流了,ROM指令共有5條,每一個工作周期只能發(fā)一條,ROM指令分別是讀ROM數(shù)據(jù)、指定匹配芯片、跳躍ROM、芯片搜索、報警芯片搜索。ROM指令為8位長度,功能是對片內(nèi)的64位光刻ROM進行操作。其主要目的是為了分辨一條總線上

11、掛接的多個器件并作處理。誠然,單總線上可以同時掛接多個器件,并通過每個器件上所獨有的ID號來區(qū)別,一般只掛接單個18B20芯片時可以跳過ROM指令(注意:此處指的跳過ROM指令并非不發(fā)送ROM指令,而是用特有的一條“跳過指令”)。ROM指令在下文有詳細的介紹。4. 控制器發(fā)送存儲器操作指令:在ROM指令發(fā)送給18B20之后,緊接著(不間斷)就是發(fā)送存儲器操作指令了。操作指令同樣為8位,共6條,存儲器操作指令分別是寫RAM數(shù)據(jù)、讀RAM數(shù)據(jù)、將RAM數(shù)據(jù)復(fù)制到EEPROM、溫度轉(zhuǎn)換、將EEPROM中的報警值復(fù)制到RAM、工作方式切換。存儲器操作指令的功能是命令18B20作什么樣的工作,是芯片控制

12、的關(guān)鍵。5. 執(zhí)行或數(shù)據(jù)讀寫:一個存儲器操作指令結(jié)束后則將進行指令執(zhí)行或數(shù)據(jù)的讀寫,這個操作要視存儲器操作指令而定。如執(zhí)行溫度轉(zhuǎn)換指令則控制器(單片機)必須等待18B20執(zhí)行其指令,一般轉(zhuǎn)換時間為500uS。如執(zhí)行數(shù)據(jù)讀寫指令則需要嚴格遵循18B20的讀寫時序來操作。數(shù)據(jù)的讀寫方法將有下文有詳細介紹。若要讀出當前的溫度數(shù)據(jù)我們需要執(zhí)行兩次工作周期,第一個周期為復(fù)位、跳過ROM指令、執(zhí)行溫度轉(zhuǎn)換存儲器操作指令、等待500uS溫度轉(zhuǎn)換時間。緊接著執(zhí)行第二個周期為復(fù)位、跳過ROM指令、執(zhí)行讀RAM的存儲器操作指令、讀數(shù)據(jù)(最多為9個字節(jié),中途可停止,只讀簡單溫度值則讀前2個字節(jié)即可)。第4章 硬件電

13、路設(shè)計溫度報警器的電路設(shè)計如圖4.1所示,控制器使用單片機AT89C51,溫度傳感器使用DS18B20,用數(shù)碼管實現(xiàn)溫度顯示。本溫度報警器大體分四個工作過程。首先,由DS18B20溫度傳感器芯片測量當前的溫度,并將結(jié)果送入單片機中。其次,再通過單片機AT89C51芯片對送來的測量溫度讀數(shù)進行計算和轉(zhuǎn)化,并將此結(jié)果送入數(shù)碼管。然后,數(shù)碼管顯示溫度數(shù)據(jù)。最后,若溫度超標,則二極管發(fā)光和蜂鳴器響起。由圖4.1可以看到本電路主要由DS18B20溫度傳感器芯片、數(shù)碼管顯示模塊和AT89C51單片機芯片組成。其中,DS18B20溫度傳感器芯片采用“一線制”與單片機相連,它獨立的完成溫度測量以及將測量結(jié)過傳

14、送到單片機的工作。圖4.1 溫度報警器電路設(shè)計原理圖4.1 AT89C51AT89C51是一種帶4K字節(jié)FLASH存儲器(FPEROMFlash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱單片機。單片機的可擦除只讀存儲器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器。AT89C51單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案

15、。引腳排列如圖4.2所示 。圖4.2 AT89C51引腳排列在本設(shè)計中,AT89C51起到控制器的作用。當DS18B20溫度傳感器芯片測量當前的溫度后,把結(jié)果送入AT89C51單片機中。然后,通過AT89C51單片機芯片對送來的測量溫度讀數(shù)進行計算和轉(zhuǎn)換,井將此結(jié)果送入數(shù)碼管模塊。4.2 晶振電路 晶振電路是給單片機提供時鐘信號的。其中,連接在晶振旁的兩個電容叫做負荷電容,一般單片機的晶振工作于并聯(lián)諧振狀態(tài),也可以理解為諧振電容的一部分。晶振電路的原理圖如圖4.3所示。圖4.3 晶振電路的原理圖它是根據(jù)晶振廠家提供的晶振要求負載電容選值的,換句話說,晶振的頻率就是在它提供的負載電容下測得的,能

16、最大限度的保證頻率值的誤差,也能保證溫漂等誤差。兩個電容的取值都是相同的,或者說相差不大,如果相差太大,容易造成諧振的不平衡,容易造成停振或者干脆不起振。本設(shè)計中,負荷電容的值是22PF。4.3 復(fù)位電路復(fù)位電路的作用就是把電路恢復(fù)到起始狀態(tài)。就像計算器的清零按鈕的作用一樣,當你進行完了一個題目的計算后肯定是要清零的是吧!或者你輸入錯誤,計算失誤時都 要進行清零操作。以便回到原始狀態(tài),重新進行計算。和計算器清零按鈕有所不同的是,復(fù)位電路啟動的手段有所不同。一是在給電路通電時馬上進行復(fù)位操作;二是在必要時可以由手動操作;三是根據(jù)程序或者電路運行的需要自動地進行。篡位電路都 是比較簡單的大都是只有

17、電阻和電容組合就可以辦到了。復(fù)位電路的原理圖如圖4.4所示。圖4.4 復(fù)位電路的原理圖4.4 報警電路在本設(shè)計中,溫度報警器的報警溫度設(shè)為高:70,低:-20,當DS18B20感知到溫度達到此臨界值時相應(yīng)的LED閃爍,同時蜂鳴器會發(fā)出報警聲。報警電路的原理圖如圖4.5所示。圖4.5 報警電路的原理圖4.5 74LS24574LS245是我們常用的芯片,用來驅(qū)動led或者其他的設(shè)備,它是8路同相三態(tài)雙向總線收發(fā)器,可雙向傳輸數(shù)據(jù)。其封裝與引腳如圖4.6所示。圖4.6 74LS245的封裝與引腳74LS245還具有雙向三態(tài)功能,既可以輸出,也可以輸入數(shù)據(jù)。當8051單片機的P0口總線負載達到或超過

18、P0最大負載能力時,必須接入74LS245等總線驅(qū)動器。 當片選端/CE低電平有效時,DIR=“0”,信號由 B 向 A 傳輸;(接收)DIR=“1”,信號由 A 向 B 傳輸;(發(fā)送)當CE為高電平時,A、B均為高阻態(tài)。由于P2口始終輸出地址的高8位,接口時74LS245的三態(tài)控制端1G和2G接地,P2口與驅(qū)動器輸入線對應(yīng)相連。P0口與74LS245輸入端相連,E端接地,保證數(shù)據(jù)線暢通。8051的/RD和/PSEN相與后接DIR,使得RD且PSEN有效時,74LS245輸入(P0.1D1),其它時間處于輸出(P0.1D1)。 在設(shè)計中,它主要起到了把AT89C51單片機芯片所處理和轉(zhuǎn)化的數(shù)據(jù)

19、傳輸?shù)綌?shù)碼管中。4.6 顯示電路顯示電路中的數(shù)碼管是8位的,有16個引腳。通過AT89C51芯片對送來的測量溫度讀數(shù)進行計算和轉(zhuǎn)化,并將此結(jié)果送入數(shù)碼管中,由數(shù)碼管來顯示,通過數(shù)碼管可以清楚的看到DS18B20所測得的溫度。數(shù)碼管的封裝圖如圖4.7所示。圖4.7 數(shù)碼管的封裝圖第5章 軟件設(shè)計5.1 主程序模塊 主程序需要設(shè)置初始值和DS18B20的溫度報警值,之后讀取溫度值,將該溫度與所設(shè)置的溫度比較。如果該溫度在所設(shè)溫度的范圍之內(nèi),則程序從頭開始運行。如果該溫度在所設(shè)溫度的范圍之外,則報警器報警。主程序流程圖如圖5.1所示。圖 5.1 主程序流程圖5.2 程序說明具體的程序代碼及其說明(見

20、注釋語句)如下。/-/說明:本例將報警溫度設(shè)為高:70,低:-20,當DS18B20感知到溫度達/ 到次臨界值時相應(yīng)的LED閃爍,同時系統(tǒng)發(fā)出報警聲。/-#include <reg51.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intsbit DQ = P36;sbit BEEP = P37;sbit HI_LED = P14;sbit LO_LED = P15;/共陰數(shù)碼管段碼及空白顯示uchar code DSY_CODE = 0x3F,0x06,0x5B,0x4F,

21、0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x00 ;/溫度小數(shù)位對照表uchar code df_Table = 0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9 ;/-/報警溫度上下限,為進行正負數(shù)比較,此處設(shè)為char類型/取值范圍為-128+127,DS18B20支持范圍為-50+125/-char Alarm_Temp_HL2 = 70,-20;uchar CurrentT = 0; /當前讀取的溫度整數(shù)部分uchar Temp_Value = 0x00,0x00; /從DS18B20讀取的溫度值uchar Display_Digit = 0,0,0,

22、0; /待顯示的各溫度數(shù)位bit HI_Alarm = 0,LO_Alarm = 0; /高低溫報警標志bit DS18B20_IS_OK = 1; /傳感器正常標志uint Time0_Count = 0; /定時器延時累加/-/延時/-void Delay(uint x) while( -x );/-/初始化DS18B20/-uchar Init_DS18B20() uchar status; DQ = 1;Delay(8); DQ = 0;Delay(90); DQ = 1;Delay(8); status = DQ; Delay(100); DQ = 1; return status;

23、/-/讀一字節(jié)/-uchar ReadOneByte() uchar i, dat = 0; DQ = 1; _nop_(); for (i = 0; i < 8; i+) DQ = 0;dat >>= 1; DQ = 1; _nop_();_nop_(); if(DQ) dat | = 0x80;Delay(30); DQ = 1; return dat;/-/寫一字節(jié)/-void WriteOneByte(uchar dat) uchar i; for (i = 0; i < 8; i+) DQ = 0; DQ = dat & 0x01; Delay(5);

24、 DQ = 1; dat>>=1; /-/讀取溫度值/-void Read_Temperature() if( Init_DS18B20() = 1) /DS18B20故障 DS18B20_IS_OK = 0; else WriteOneByte(0xCC); /跳過序列號 WriteOneByte(0x44); /啟動溫度轉(zhuǎn)換 Init_DS18B20(); WriteOneByte(0xCC); /跳過序列號 WriteOneByte(0xBE); /讀取溫度寄存器 Temp_Value0 = ReadOneByte(); /溫度低8位 Temp_Value1 = ReadOn

25、eByte(); /溫度高8位 Alarm_Temp_HL0 = ReadOneByte(); /報警溫度TH Alarm_Temp_HL1 = ReadOneByte(); /報警溫度TL DS18B20_IS_OK = 1; /-/設(shè)置DS18B20溫度報警值/-void Set_Alarm_Temp_Value() Init_DS18B20(); WriteOneByte(0xCC); /跳過序列號 WriteOneByte(0x4E); /將設(shè)定的溫度報警器值寫入DS18B20 WriteOneByte(Alarm_Temp_HL0); /寫TH WriteOneByte(Alarm_

26、Temp_HL1); /寫TL WriteOneByte(0x7F); /12位精度 Init_DS18B20(); WriteOneByte(0xCC); /跳過序列號 WriteOneByte(0x48); /溫度報警值存入DS18B20/-/在數(shù)碼管上顯示溫度/-void Display_Temperature() uchar i; uchar t = 150; /延時值 uchar ng = 0, np = 0; /負數(shù)標識及負號顯示位置 char Signed_Current_Temp; /注意類型為char/如果為負數(shù)則反取加1,并設(shè)置負號標識及負號顯示位置 if ( (Temp_

27、Value1 & 0xF8) = 0xF8) Temp_Value1 = Temp_Value1; Temp_Value0 = Temp_Value0 + 1; if (Temp_Value0 = 0x00) Temp_Value1+; ng = 1; np = 0xFD; /默認負號顯示在左邊第2位 /查表得到溫度小數(shù)部分 Display_Digit0 = df_Table Temp_Value0 & 0x0F ;/獲取溫度整數(shù)部分(無符號) CurrentT = (Temp_Value0 & 0xF0)>>4) | (Temp_Value1 &

28、0x07)<<4);/有符號的當前溫度值,注意定義為char,其值可為-128+127 Signed_Current_Temp = ng? -CurrentT : CurrentT;/高低溫報警標志設(shè)置(與定義為char類型的Alarm_Temp_HL比較,這樣可區(qū)/分正負比較) HI_Alarm = Signed_Current_Temp >= Alarm_Temp_HL0 ? 1 : 0; LO_Alarm = Signed_Current_Temp <= Alarm_Temp_HL1 ? 1 : 0;/將整數(shù)部分分解為三位待顯示數(shù)字 Display_Digit3

29、= CurrentT / 100; Display_Digit2 = CurrentT % 100 / 10; Display_Digit1 = CurrentT % 10; if(Display_Digit3 = 0) /高位為0則不顯示 Display_Digit3 = 10; np = 0xFB; if(Display_Digit2 = 0) /調(diào)整負號位置 Display_Digit2 = 10; np = 0xF7; /調(diào)整負號位置 for (i = 0;i < 30; i+) P0 = 0x39; P2 = 0x7F; Delay(t); P2 = 0xFF; /顯示C P0

30、 = 0x63; P2 = 0xBF; Delay(t); P2 = 0xFF; /顯示º P0 = DSY_CODEDisplay_Digit0; /小數(shù)位 P2 = 0xDF; Delay(t); P2 = 0xFF; P0 = (DSY_CODEDisplay_Digit1) | 0x80; /個位及小數(shù)點 P2 = 0xEF; Delay(t); P2 = 0xFF; P0 = DSY_CODEDisplay_Digit2; /十位 P2 = 0xF7; Delay(t); P2 = 0xFF; P0 = DSY_CODEDisplay_Digit3; /百位 P2 = 0x

31、FB; Delay(t); P2 = 0xFF; if (ng) P0 = 0x40; P2 = np; Delay(t); P2 = 0xFF; /-/定時器中斷,控制警報聲音/-void T0_INT() interrupt 1 TH0 = -1000 / 256; TL0 = -1000 % 256; BEEP = !BEEP; if ( +Time0_Count = 400) Time0_Count = 0; if (HI_Alarm) HI_LED = HI_LED; else HI_LED = 1; if (LO_Alarm) LO_LED = LO_LED; else LO_LE

32、D = 1; /-/主程序/-void main(void) IE = 0x82; TMOD = 0x01; TH0 = -1000 / 256; TL0 = -1000 % 256; TR0 = 0; HI_LED = 1; LO_LED = 1; Set_Alarm_Temp_Value(); Read_Temperature(); Delay(50000); Delay(50000); while(1) Read_Temperature(); if ( DS18B20_IS_OK ) if (HI_Alarm = 1 | LO_Alarm = 1) TR0 = 1; else TR0 = 0; Display_Tempe

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論