單片機(jī)課程設(shè)計(jì)報(bào)告基于DS18B20的數(shù)字溫度計(jì)設(shè)計(jì)_第1頁
單片機(jī)課程設(shè)計(jì)報(bào)告基于DS18B20的數(shù)字溫度計(jì)設(shè)計(jì)_第2頁
單片機(jī)課程設(shè)計(jì)報(bào)告基于DS18B20的數(shù)字溫度計(jì)設(shè)計(jì)_第3頁
單片機(jī)課程設(shè)計(jì)報(bào)告基于DS18B20的數(shù)字溫度計(jì)設(shè)計(jì)_第4頁
單片機(jī)課程設(shè)計(jì)報(bào)告基于DS18B20的數(shù)字溫度計(jì)設(shè)計(jì)_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、單片機(jī)課設(shè)報(bào)告第 1 頁 共 21 頁桂林電子科技大學(xué)電子工程與自動(dòng)化學(xué)院智能科學(xué)與技術(shù)專業(yè)課程設(shè)計(jì)報(bào)告設(shè)計(jì)題目: 數(shù)字溫度計(jì)設(shè)計(jì) 電子工程與自動(dòng)化 學(xué)院 智能科學(xué)與技術(shù) 專業(yè) 8003902 班姓名: 學(xué)號(hào): 成績:指導(dǎo)老師:趙龍陽目錄:關(guān)鍵字及摘要:*第一頁第一節(jié):設(shè)計(jì)要求* 第一頁第二節(jié):設(shè)計(jì)內(nèi)容 1、ds18b20傳感器原理及程序*第二頁至第九頁 2、lcd1602液晶顯示原理及程序*第十頁至第十四頁3、上下限設(shè)置及程序*第十五頁 4、報(bào)警子程序*第十六頁 5、蜂鳴器發(fā)聲程序*第十七頁 6、主程序main*第十七頁 7、仿真圖*第十七頁8、protel原理圖*第十八頁至十九頁9、pcb

2、圖*第二十頁第三節(jié):總結(jié)*第二十頁第四節(jié):引文*第二十頁關(guān)鍵字:ds18b20 溫度計(jì) 數(shù)字 單片機(jī) 液晶 lcd1602摘要:本次課程設(shè)計(jì)是基于ds18b20的數(shù)字溫度計(jì)設(shè)計(jì),他實(shí)現(xiàn)的溫度的讀取與直接顯示,能夠設(shè)置上下限,并能實(shí)現(xiàn)報(bào)警功能,顯示用液晶顯示(lcd1602)。一、設(shè)計(jì)要求1、基本范圍-10110;2、精度誤差小于0.5;3、直讀顯示數(shù)字溫度值;4、可以任意設(shè)定溫度的上下限報(bào)警功能。二、設(shè)計(jì)內(nèi)容1、ds18b20傳感器原理、ds18b20概述ds18b20是一個(gè)可以通過單線接口進(jìn)行雙向信溫度傳感器。它可以通過數(shù)據(jù)線供電,電源電壓范圍為35.5v,零待機(jī)功耗,測溫范圍為-55+12

3、5,精確度為912位(可通過設(shè)定數(shù)據(jù)位選擇相應(yīng)位數(shù))。9位的分辨率為0.5,12位的溫度分辨率為0.0625,默認(rèn)位數(shù)為12位。由此可以看出用ds18b20進(jìn)行溫度計(jì)設(shè)計(jì)能夠?qū)崿F(xiàn)以上溫度讀取要求。、ds18b20引腳排列 如圖ds18b20有兩種封裝,本次設(shè)計(jì)中選用3引腳封裝(ds18b20 pr35 package)、傳感器溫度讀取ds1820 有三個(gè)主要數(shù)字部件:1)64 位激光 rom;2)溫度傳感器;3)非易失性溫度報(bào)警觸發(fā)器 th 和 tl。ds1820 依靠一個(gè)單線端口通訊。在單線端口條件下,必須先建立 rom 操作協(xié)議,才能進(jìn)行存儲(chǔ)器和控制操作。因此,控制器必須首先提供下面5個(gè)r

4、om操作命令之一:1)讀 rom;2)匹配 rom;3)搜索rom;4)跳過 rom;5)報(bào)警搜索。這些命令對(duì)每個(gè)器件的激光 rom 部分進(jìn)行操作,在單線總線上掛有多個(gè)器件時(shí),可以區(qū)分出單個(gè)器件,同時(shí)可以向總線控制器指明有多少器件或是什么型號(hào)的器件。成功執(zhí)行完一條 rom 操作序列后,即可進(jìn)行存儲(chǔ)器和控制操作,控制器可以提供 6 條存儲(chǔ)器和控制操作指令中的任一條。 一條控制操作命令指示 ds1820 完成一次溫度測量。測量結(jié)果放在 ds1820 的暫存器里,用一條讀暫存器內(nèi)容的存儲(chǔ)器操作命令可以把暫存器中數(shù)據(jù)讀出。溫度報(bào)警觸發(fā)器 th 和 tl 各由一個(gè) eeprom 字節(jié)構(gòu)成。如果沒有對(duì)ds

5、1820 使用報(bào)警搜索命令,這些寄存器可以做為一般用途的用戶存儲(chǔ)器使用??梢杂靡粭l存儲(chǔ)器操作命令對(duì) th 和 tl 進(jìn)行寫入,對(duì)這些寄存器的讀出需要通過暫存器。所有數(shù)據(jù)都是以最低有效位在前的方式進(jìn)行讀寫。溫度數(shù)據(jù)關(guān)系ds1820 是這樣測溫的:用一個(gè)高溫度系數(shù)的振蕩器確定一個(gè)門周期,內(nèi)部計(jì)數(shù)器在這個(gè)門周期內(nèi)對(duì)一個(gè)低溫度系數(shù)的振蕩器的脈沖進(jìn)行計(jì)數(shù)來得到溫度值。計(jì)數(shù)器被預(yù)置到對(duì)應(yīng)于-55的一個(gè)值。如果計(jì)數(shù)器在門周期結(jié)束前到達(dá)0,則溫度寄存器(同樣被預(yù)置到-55)的值增加,表明所測溫度大于-55。 同時(shí),計(jì)數(shù)器被復(fù)位到一個(gè)值,這個(gè)值由斜坡式累加器電路確定,斜坡式累加器電路用來補(bǔ)償感溫振蕩器的拋物線特

6、性。然后計(jì)數(shù)器又開始計(jì)數(shù)直到 0,如果門周期仍未結(jié)束,將重復(fù)這一過程。 斜坡式累加器用來補(bǔ)償感溫振蕩器的非線性,以期在測溫時(shí)獲得比較高的分辨力。這是通過改變計(jì)數(shù)器對(duì)溫度每增加一度所需計(jì)數(shù)的的值來實(shí)現(xiàn)的。因此,要想獲得所需的分辨力,必須同時(shí)知道在給定溫度下計(jì)數(shù)器的值和每一度的計(jì)數(shù)值。 ds1820 內(nèi)部對(duì)此計(jì)算的結(jié)果可提供 0.5的分辨力。溫度以 16bit 帶符號(hào)位擴(kuò)展的二進(jìn)制補(bǔ)碼形式讀出,表 1 給出了溫度值和輸出數(shù)據(jù)的關(guān)系。數(shù)據(jù)通過單線接口以串行方式傳輸。ds1820 測溫范圍-55+125,以 0.5遞增。如用于華氏溫度,必須要用一個(gè)轉(zhuǎn)換因子查找表。、通過單線總線端口訪問 ds1820

7、的協(xié)議如下: 初始化 rom 操作命令 存儲(chǔ)器操作命令 執(zhí)行/數(shù)據(jù) 初始化 通過單線總線的所有執(zhí)行(處理)都從一個(gè)初始化序列開始。初始化序列包括一個(gè)由總線控制器發(fā)出的復(fù)位脈沖和跟有其后由從機(jī)發(fā)出的存在脈沖。 存在脈沖讓總線控制器知道 ds1820 在總線上且已準(zhǔn)備好操作。詳見“單線信號(hào)”節(jié)。 rom 操作命令 一旦總線控制器探測到一個(gè)存在脈沖,它就可以發(fā)出 5 個(gè) rom 命令中的任一個(gè)。所有 rom 操作命令都 8位長度。下面是這些命令:read rom 33h 這個(gè)命令允許總線控制器讀到 ds1820 的 8 位系列編碼、唯一的序列號(hào)和 8 位 crc碼。只有在總線上存在單只 ds1820

8、 的時(shí)候才能使用這個(gè)命令。如果總上有不止一個(gè)從機(jī),當(dāng)所有從機(jī)試圖同時(shí)傳送信號(hào)時(shí)就會(huì)發(fā)生數(shù)據(jù)沖突(漏極開路連在一起開成相與的效果)。 match rom 55h 匹配 rom 命令,后跟64 位 rom 序列,讓總線控制器在多點(diǎn)總線上定位一只特定的ds1820。只有和 64 位rom序列完全匹配的 ds1820 才能響應(yīng)隨后的存儲(chǔ)器操作命令。所有和64位rom序列不匹配的從機(jī)都將等待復(fù)位脈沖。這條命令在總線上有單個(gè)或多個(gè)器件時(shí)都可以使用。 skip rom cch 這條命令允許總線控制器不用提供 64 位 rom 編碼就使用存儲(chǔ)器操作命令, 在單點(diǎn)總線情況下右以節(jié)省時(shí)間。如果總線上不止一個(gè)從機(jī),

9、在 skip rom命令之后跟著發(fā)一條讀命令,由于多個(gè)從機(jī)同時(shí)傳送信號(hào),總線上就會(huì)發(fā)生數(shù)據(jù)沖突(漏極開路下拉效果相當(dāng)于相相與)。search rom f0h 當(dāng)一個(gè)系統(tǒng)初次啟動(dòng)時(shí),總線控制器可能并不知道單線總線上有多少器件或它們的64位rom編碼。搜索 rom命令允許總線控制器用排除法識(shí)別總線上的所有從機(jī)的 64 位編碼。 alarm search ech 這條命令的流程圖和 search rom 相同。然而,只有在最近一次測溫后遇到符合報(bào)警條件的情況, ds1820 才會(huì)響應(yīng)這條命令。 報(bào)警條件定義為溫度高于 th 或低于 tl。 只要ds1820不掉電,報(bào)警狀態(tài)將一直保持,直到再一次測得的

10、溫度值達(dá)不到報(bào)警條件。 i/o 信號(hào) ds1820 需要嚴(yán)格的協(xié)議以確保數(shù)據(jù)的完整性。協(xié)議包括幾種單線信號(hào)類型:復(fù)位脈沖、存在脈沖、寫 0、寫1、讀0 和讀 1。所有這些信號(hào),除存在脈沖外,都是由總線控制器發(fā)出的。 和 ds1820 間的任何通訊都需要以初始化序列開始,初始化序列見圖 11。一個(gè)復(fù)位脈沖跟著一個(gè)存在脈沖表明 ds1820 已經(jīng)準(zhǔn)備好發(fā)送和接收數(shù)據(jù) (適當(dāng)?shù)?rom 命令和存儲(chǔ)器操作命令) 。 備注:1、溫度轉(zhuǎn)換時(shí)間可長達(dá)500ms。接到溫度轉(zhuǎn)換的協(xié)議后,如果器件不是從 vdd 供電的話,i/o線就必須至少保持 500ms 高電平。這樣,發(fā)出一個(gè) convert t 命令之后,單

11、線總線上在這段時(shí)間內(nèi)就不能有其他活動(dòng)。 2、接到 copy scratchpad 協(xié)議后,如果器件不是從vdd 供電的話,i/o 線必須至少保持10ms高電平。這樣,在發(fā)出一個(gè)copy scratchpad 命令后,這段時(shí)間內(nèi)單線總線上就不能有其他活動(dòng)。 總線控制器發(fā)出(tx)一個(gè)復(fù)位脈沖(一個(gè)最少保持480s 的低電平信號(hào)),然后釋放總線,進(jìn)入接收狀態(tài)(rx)。單線總線由 5k 上拉電阻拉到高電平。探測到 i/o 引腳上的上升沿后,ds1820等待 1560s,然后發(fā)出存在脈沖(一個(gè) 60240s 的低電平信號(hào))。 存儲(chǔ)器操作命令: write scratchpad 4e 這個(gè)命令向 ds1

12、820的暫存器中寫入數(shù)據(jù),開始位置在地址 2。接下來寫入的兩個(gè)字節(jié)將被存到暫存器中的地址位置 2 和 3??梢栽谌魏螘r(shí)刻發(fā)出復(fù)位命令來中止寫入。 read scratchpad beh 這個(gè)命令讀取暫存器的內(nèi)容。讀取將從字節(jié)0 開始,一直進(jìn)行下去,直到第 9(字節(jié) 8crc)字節(jié)讀完。如果不想讀完所有字節(jié),控制器可以在任何時(shí)間發(fā)出復(fù)位命令來中止讀取。 copy scratchpad 48h 這條命令把暫存器的內(nèi)容拷貝到ds1820的 e2存儲(chǔ)器里,即把溫度報(bào)警觸發(fā)字節(jié)存入非易失性存儲(chǔ)器里。如果總線控制器在這條命令之后跟著發(fā)出讀時(shí)間隙,而 ds1820 又正在忙于把暫存器拷貝到 e2存儲(chǔ)器,ds

13、1820 就會(huì)輸出一個(gè)“0”,如果拷貝結(jié)束的話,ds1820則輸出“1”。如果使用寄生電源,總線控制器必須在這條命令發(fā)出后立即起動(dòng)強(qiáng)上拉并最少保持10ms。 convert t 44h 這條命令啟動(dòng)一次溫度轉(zhuǎn)換而無需其他數(shù)據(jù)。溫度轉(zhuǎn)換命令被執(zhí)行,而后 ds1820保持等待狀態(tài)。如果總線控制器在這條命令之后跟著發(fā)出讀時(shí)間隙,而ds1820 又忙于做時(shí)間轉(zhuǎn)換的話,ds1820 將在總線上輸出“0”,若溫度轉(zhuǎn)換完成,則輸出“1”。如果使用寄生電源,總線控制器必須在發(fā)出這條命令后立即起動(dòng)強(qiáng)上拉,并保持500ms。 recall e2 b8h 這條命令把報(bào)警觸發(fā)器里的值拷回暫存器。這種拷回操作在 ds1

14、820 上電時(shí)自動(dòng)執(zhí)行,這樣器件一上電暫存器里馬上就存在有效的數(shù)據(jù)了。若在這條命令發(fā)出之后發(fā)出讀時(shí)間隙,器件會(huì)輸出溫度轉(zhuǎn)換忙的標(biāo)識(shí):“0”=忙,“1”=完成。 read power supply b4h 若把這條命令發(fā)給 ds1820 后發(fā)出讀時(shí)間隙,器件會(huì)返回它的電源模式:“0”=寄生電源,“1”=外部電源。 讀/寫時(shí)間隙 ds1820 的數(shù)據(jù)讀寫是通過時(shí)間隙處理位和命令字來確認(rèn)信息交換。當(dāng)主機(jī)把數(shù)據(jù)線從邏輯高電平拉到邏輯低電平的時(shí)候,寫時(shí)間隙開始。有兩種寫時(shí)間隙:寫1 時(shí)間隙和寫 0時(shí)間隙。所有寫時(shí)間隙必須最少持續(xù) 60s,包括兩個(gè)寫周期間至少 1s 的恢復(fù)時(shí)間。 i/o 線電平變低后,d

15、s1820 在一個(gè) 15s 到 60s 的窗口內(nèi)對(duì) i/o 線采樣。如果線上是高電平,就是寫 1,如果線上是低電平,就是寫 0(見下圖)主機(jī)要生成一個(gè)寫時(shí)間隙,必須把數(shù)據(jù)線拉到低電平然后釋放,在寫時(shí)間隙開始后的 15s內(nèi)允許數(shù)據(jù)線拉到高電平。 主機(jī)要生成一個(gè)寫 0 時(shí)間隙,必須把數(shù)據(jù)線拉到低電平并保持 60s。 讀時(shí)間隙 當(dāng)從 ds1820 讀取數(shù)據(jù)時(shí),主機(jī)生成讀時(shí)間隙。當(dāng)主機(jī)把數(shù)據(jù)線從高高平拉到低電平時(shí),寫時(shí)間隙開始。數(shù)據(jù)線必須保持至少 1s;從 ds1820 輸出的數(shù)據(jù)在讀時(shí)間隙的下降沿出現(xiàn)后 15s 內(nèi)有效。因此,主機(jī)在讀時(shí)間隙開始后必須停止把 i/o 腳驅(qū)動(dòng)為低電平 15s,以讀取i/

16、o 腳狀態(tài)(見下圖)。在讀時(shí)間隙的結(jié)尾,i/o 引腳將被外部上拉電阻拉到高電平。所有讀時(shí)間隙必須最少 60s,包括兩個(gè)讀周期間至少 1s 的恢復(fù)時(shí)間。 最大:tinit 和 trc 保持時(shí)間盡可能小;把控制器采樣時(shí)間放到 15s 周期的最后。ds18b20頭文件將ds18b20讀取溫度并返回的程序用一個(gè)頭文件存儲(chǔ),然后調(diào)用,該程序?yàn)椋?ifndef _ds18b20_h_#define _ds18b20_h_sbit dq= p13 ; /定義ds18b20端口dq unsigned char flag_negative_number = 0;/負(fù)數(shù)標(biāo)志void delay_18b20(uns

17、igned int i) while(i-);/ds18b20初始化函數(shù)init_ds18b20(void) unsigned char x=0; dq = 1; /dq復(fù)位 delay_18b20(4); /稍做延時(shí) dq = 0; /單片機(jī)將dq拉低 delay_18b20(100); /精確延時(shí) 大于 480us dq = 1; /拉高總線 delay_18b20(100) ;/讀一個(gè)字節(jié) readonechar(void)unsigned char i=0;unsigned char dat = 0;for (i=8;i0;i-) dq = 0; / 給脈沖信號(hào) dat=1; dq =

18、 1; / 給脈沖信號(hào) if(dq) dat|=0x80; delay_18b20(10); return(dat);/寫一個(gè)字節(jié),調(diào)用后可以向ds18b20寫入命令字 writeonechar(unsigned char dat) unsigned char i=0; for (i=8; i0; i-) dq = 0; dq = dat&0x01; delay_18b20(10); dq = 1; dat=1; /讀取溫度readtemperature(void)unsigned char a=0;unsigned char b=0;unsigned int t=0; init_ds18b2

19、0();writeonechar(0xcc); /跳過讀序號(hào)列號(hào)的操作writeonechar(0xbe); /讀取溫度寄存器等(共可讀9個(gè)寄存器)前兩個(gè)就是實(shí)時(shí)溫度a=readonechar();b=readonechar();/啟動(dòng)下一次溫度轉(zhuǎn)換init_ds18b20();writeonechar(0xcc); / 跳過讀序號(hào)列號(hào)的操作writeonechar(0x44); / 啟動(dòng)溫度轉(zhuǎn)換t=b;t0xfff) /判斷是否為負(fù)溫度t=t+1; /若為負(fù)溫度則取反加一(即求補(bǔ))flag_negative_number = 0xff;/ 若為負(fù)溫度,符號(hào)標(biāo)志為0xffreturn(t);#

20、endif該程序流程圖為:初始化ds18b20寫入命令字讀出溫度啟動(dòng)下一次溫度轉(zhuǎn)換將兩個(gè)8位數(shù)值轉(zhuǎn)換為16位判斷溫度的正負(fù)結(jié)束開始2、lcd1602液晶顯示原理液晶顯示代碼:/*寫入指令,用于設(shè)置液晶顯示模式*/ void wr_com(unsigned char com) delay1ms(1); rs=0; rw=0; en=0; p0=com; delay1ms(1); en=1; delay1ms(1); en=0;/*寫入數(shù)據(jù),用于向1602輸入要顯示的內(nèi)容*/void wr_dat(unsigned char dat) delay1ms(1); rs=1; rw=0; en=0;

21、p0=dat; delay1ms(1); en=1; delay1ms(1); en=0;void lcd_init()delay1ms(15); wr_com(0x38);delay1ms(5);/顯示模式設(shè)置 wr_com(0x08);delay1ms(5); / 顯示關(guān)閉 wr_com(0x01);delay1ms(5); /顯示清屏 wr_com(0x06);delay1ms(5);/顯示光標(biāo)移動(dòng) wr_com(0x0c);delay1ms(5);/顯示開機(jī)光標(biāo)設(shè)置/*顯示溫度*/void disp()temp=readtemperature();/讀取溫度;if (flag_nega

22、tive_number)wr_com(0xc5);wr_dat(-) ; /負(fù)號(hào)顯示else wr_com(0xc5) ; wr_dat( ) ;temp=temp*(0.0625); display3= (int)temp/100%10+0x30; /百位display2 = (int)temp/10%10+0x30;/十位display1= (int)temp%10+0x30; /個(gè)位display0=(int)(temp*10)%10+0x30; /小數(shù)位 if(display3=0x30) /高位為0,不顯示 display3=0x20 ; if(display2=0x30) /次高位

23、為0,不顯示 display2=0x20 ; wr_com(0xc6) ;wr_dat(display3) ; /百位數(shù)顯示 wr_com(0xc7) ;wr_dat(display2) ; /十位數(shù)顯示 wr_com(0xc8) ;wr_dat(display1) ; /個(gè)位數(shù)顯示 wr_com(0xc9) ;wr_dat(.) ; wr_com(0xca) ;wr_dat(display0); /小數(shù)位顯示delay(50); /*顯示上限溫度*/ void dispuptemp()wr_com(0x83);wr_dat(uptemp0) ;wr_com(0x86);wr_dat(upte

24、mp1+0x30) ; /個(gè)位數(shù)顯示 if(uptemp3=0) /高位為0,不顯示 wr_com(0x84);wr_dat(0x20); if(uptemp2=0) wr_com(0x85);wr_dat(0x20) ; /次高位為0,不顯示 else wr_com(0x85);wr_dat(uptemp2+0x30) ; /十位數(shù)顯示 elsewr_com(0x85);wr_dat(uptemp2+0x30) ; /顯示十位 wr_com(0x84) ;wr_dat(uptemp3+0x30) ; /百位數(shù)顯示 delay(50); /*顯示下限溫度*/void dispdowntemp(

25、) wr_com(0x8b);wr_dat(downtemp0) ;wr_com(0x8e);wr_dat(downtemp1+0x30) ; /個(gè)位數(shù)顯示 if(downtemp3=0x00) /高位為0,不顯示 wr_com(0x8c);wr_dat(0x20) ; if(downtemp2=0x00) wr_com(0x8d) ;wr_dat(0x20) ; /十位數(shù)不顯示 elsewr_com(0x8d);wr_dat(downtemp2+0x30) ; /十位數(shù)顯示 elsewr_com(0x8d);wr_dat(downtemp2+0x30) ; wr_com(0x8c);wr_d

26、at(downtemp3+0x30) ; /百位數(shù)顯示 delay(50); 3、上下限設(shè)置用6個(gè)按鍵設(shè)置,有兩個(gè)用于選擇設(shè)置的是上限還是下限,用三個(gè)分別設(shè)置個(gè)位、十位、百位,最后一個(gè)用于設(shè)置符號(hào)。設(shè)置程序如下:/*設(shè)置上限溫度*/ void up() dispuptemp(); while(upbit=0) if( j1=0) /設(shè)置個(gè)位 uptemp1+=1; if(uptemp1=10) uptemp1=0; if( j10=0) /設(shè)置十位 uptemp2+=1; if(uptemp2=10) uptemp2=0; if( j100=0) /設(shè)置百位 uptemp3+=1; if(up

27、temp3=10) uptemp3=0; if(sign=0) /設(shè)置符號(hào) if(uptemp0=0x20) uptemp0=-; else uptemp0=0x20; dispuptemp(); delay1ms(200); /*設(shè)置下限溫度*/ void down() dispdowntemp(); while(downbit=0) if( j1=0) /設(shè)置個(gè)位 downtemp1+=1; if( downtemp1=10) downtemp1=0; if( j10=0) /設(shè)置十位 downtemp2+=1; if( downtemp2=10) downtemp2=0; if( j100=0) /設(shè)置百位 downtemp3+=1; if( downtemp3=10) downtemp3=0;if(sign=0) /設(shè)置符號(hào) if( downtemp0=0x20)downtemp0=-; elsedowntemp0=0x20; dispdowntemp(); delay1ms(200); 4、報(bào)警子程序:用上下限分別與讀取的溫度值比較若超出設(shè)置的范圍則報(bào)警。并且上下不得小于或等于下限。報(bào)警子程序代碼/*報(bào)警*/ void bijiao() int uptemper;int downtemper; downtemper=(downtemp3*100+do

溫馨提示

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

評(píng)論

0/150

提交評(píng)論