基于C51單片機(jī)的DS18B20溫度報警器設(shè)計與制作_第1頁
基于C51單片機(jī)的DS18B20溫度報警器設(shè)計與制作_第2頁
基于C51單片機(jī)的DS18B20溫度報警器設(shè)計與制作_第3頁
基于C51單片機(jī)的DS18B20溫度報警器設(shè)計與制作_第4頁
基于C51單片機(jī)的DS18B20溫度報警器設(shè)計與制作_第5頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

目錄

1產(chǎn)品功能分析...........................................................................................................1

2設(shè)計方案遴選...........................................................................................................1

2.1單片機(jī)的選擇...............................................................................................1

2.2傳感器的選擇...............................................................................................1

2.3系統(tǒng)框圖設(shè)計...............................................................................................2

3產(chǎn)品硬件設(shè)計...........................................................................................................2

3.1STC89C52RC單片機(jī)最小系統(tǒng)設(shè)計..............................................................2

3.2溫度傳感器介紹...........................................................................................3

3.3按鍵電路設(shè)計...............................................................................................4

3.4LCD1602液晶顯示模塊電路........................................................................5

4產(chǎn)品軟件設(shè)計...........................................................................................................6

4.1主程序流程圖...............................................................................................6

4.2LCD1602液晶顯示程序設(shè)計........................................................................6

4.3產(chǎn)品程序清單...............................................................................................8

5產(chǎn)品使用說明...........................................................................................................8

5.1產(chǎn)品裝配圖...................................................................................................8

5.2產(chǎn)品調(diào)試.......................................................................................................9

5.3產(chǎn)品使用說明...............................................................................................9

6產(chǎn)品設(shè)計技術(shù)標(biāo)準(zhǔn).................................................................................................10

參考資料.....................................................................................................................11

附錄.............................................................................................................................12

附錄1元器件清單............................................................................................12

附錄2電路原理圖............................................................................................13

附錄3PCB設(shè)計圖.............................................................................................14

附錄4產(chǎn)品實物圖..........................................................................................15

附錄5主程序代碼............................................................................................15

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

基于C51單片機(jī)的DS18B20溫度報警器的

設(shè)計與制作

1產(chǎn)品功能分析

在日常生活中,溫度是特別重要的,不管是在生活中,還是工業(yè)中,都是

特別常見的參數(shù),都與物理化學(xué)有關(guān)的,所以自動檢測溫度顯得尤為重要的。

溫度檢測的技術(shù)已經(jīng)比較成熟了,一般使用熱電偶或者熱敏電阻測量,但

是信號轉(zhuǎn)換相對復(fù)雜,需要很多硬件來支持,但我們可以采用一種智能的溫度

傳感器DS18B20來檢測溫度,并且可以直接讀出來,十分方便。

本說明書展示一個基于51單片機(jī)來測量溫度并報警的模塊,使用DS18B20

作為測量溫度的器件,使用顯示屏顯示溫度,并且加上按鈕調(diào)節(jié)溫度報警上下

限,不管是溫度超出還是低于,都會出發(fā)報警器。

2設(shè)計方案遴選

普通的溫度報警器需要單片機(jī)、傳感器等元件模塊,在進(jìn)行硬件電路設(shè)計

的時候,須要選擇合適的元件以便于實現(xiàn)我們想要的結(jié)果。

2.1單片機(jī)的選擇

STM32單片機(jī)是一款性價比不錯且功能強(qiáng)大的單片機(jī),擁有很好的內(nèi)核和

外設(shè),新增很多外設(shè)接口。STM32使用起來也比較簡便,適合運(yùn)行計算,但是

對于多路信號,比較麻煩,需要很多DSP并行處理。

51單片機(jī)應(yīng)用十分廣泛,容易上手,功能也豐富,但就運(yùn)行速度較慢,特

別是雙數(shù)據(jù)指針時,而且保護(hù)能力也差,容易破壞芯片。

但是51單片機(jī)價格便宜,簡單易上手,對我們需要實現(xiàn)的功能也足夠

了,所以我選擇51單片機(jī)系列中的STC89C52RC單片機(jī)。

2.2傳感器的選擇

方案一:使用模擬集成的溫度傳感器,因為集成傳感器是用硅半導(dǎo)體生產(chǎn)

而來的。最常見的就是AD590。它是溫度電流的傳感器,實現(xiàn)了提高系統(tǒng)抗干

擾能力。唯一不足的就是依賴放大電路和模數(shù)轉(zhuǎn)換電路,電路設(shè)計起來十分麻

煩。

1

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

方案二:使用數(shù)字智能溫度傳感器,這個溫度傳感器包含很多的模塊,比

如說模數(shù)轉(zhuǎn)換器模塊。廣泛使用的產(chǎn)品就是DS18B20。DS18B20測量出來的溫

度是用十六位數(shù)字量這個形式給我們展示出來的。

對比上面兩個方案,DS18B20溫度傳感器無需進(jìn)行AD轉(zhuǎn)換,與單片機(jī)接口

連接更為簡單,因此本設(shè)計選用DS18B20溫度傳感器。

2.3系統(tǒng)框圖設(shè)計

以單片機(jī)最小系統(tǒng)作為核心控制電路,通過DS18B20傳感器檢測溫度并采

集溫度數(shù)據(jù)傳輸至單片機(jī);一方面,通過LCD1602液晶顯示屏顯示測量出來的

溫度;另一方面,利用按鈕管理設(shè)置報警閾值,當(dāng)溫度超出設(shè)定溫度范圍,通

過蜂鳴器和LED指示燈實現(xiàn)聲光報警。

DS18B201602液晶

溫度傳感器51

單片機(jī)

蜂鳴器

最小系統(tǒng)

按鍵設(shè)置輸入

LED指示燈

圖2-1系統(tǒng)框圖

3產(chǎn)品硬件設(shè)計

51單片機(jī)系統(tǒng)的功能就是把溫度傳感器測量的溫度顯示到液晶屏上面,同

時,當(dāng)溫度異??刂坡暪鈭缶?/p>

電路板設(shè)置三個控制按鈕,調(diào)低、調(diào)高溫度,確認(rèn)溫度。

在通電后燒入代碼,屏幕顯示溫度,隨著溫度變化來觸發(fā)報警器和led

燈。

3.1STC89C52RC單片機(jī)最小系統(tǒng)設(shè)計

51單片機(jī)最小系統(tǒng)包含晶振電路、復(fù)位電路和電源電路。

晶振電路決定單片機(jī)的運(yùn)行速度,頻率越高,速度越快。而且晶振離單片

機(jī)越近越好,不容易被干擾。復(fù)位電路就像是重啟開關(guān)一樣,可以讓程序重新

開始執(zhí)行,防止程序跑飛。

最后一個電源電路,我采用了USB直接供電,使用P0口里連接顯示屏。

2

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

圖3-151單片機(jī)最小系統(tǒng)圖

3.2溫度傳感器介紹

DS18B20溫度傳感器用來測量溫度,體積小,價格低,精度比較高,接線

十分方便。

3

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

圖3-2溫度傳感器電路設(shè)計原理圖

3.3按鍵電路設(shè)計

按鍵是十分常見的,單片機(jī)上面最多就是使用按鈕鍵盤。

當(dāng)51單片機(jī)感覺到按鈕動了一下后,過來一會,它會先先識別一下是不

是原來的狀態(tài),如果不是,就會實行按鈕功能,否則沒有效果。

我設(shè)計了三個按鈕分別是加溫度,減溫度,還有一個確認(rèn)鍵。按鈕如圖3-

3所示。

K1P32/INT0

K2P33/INT1

K3P34/T0

按鈕模塊

GND

圖3-3按鈕設(shè)計框圖

4

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

3.4LCD1602液晶顯示模塊電路

LCD1602液晶顯示屏的原理圖如圖3-4所示,首先1腳先接地,2腳接

Vcc,2個腳現(xiàn)實顯示屏的電源輸入。3腳連接定位器再接地。4腳是接單片機(jī)

的P2.7腳。5腳接單片機(jī)P2.6腳。6腳連接p2.5腳。7腳到14腳是液晶的八

位總線,接51單片機(jī)的P0口。

圖3-4液晶模塊連接圖

圖3-5液晶模塊實物圖

5

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

4產(chǎn)品軟件設(shè)計

4.1主程序流程圖

開始顯示屏內(nèi)容初始化,然后報警器初始化,接下來死循環(huán)等待內(nèi)容進(jìn)

入,讀取溫度,顯示溫度,判斷溫度,高了,低了,都報警并且led燈亮起,

最后控制溫度,解除報警。

圖4-1主程序流程圖

4.2LCD1602液晶顯示程序設(shè)計

顯示屏還沒有顯示之前,先確定一個位置,輸入想要的坐標(biāo)就可以了,顯

示都是一位一位顯示的,從高位開始顯示,字符串也是這樣,不需要每個字符

都定位一次,顯示屏?xí)詣佣ㄎ坏摹?/p>

6

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

圖4-2顯示屏流程圖

7

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

4.3產(chǎn)品程序清單

4.3產(chǎn)品程序清單

5產(chǎn)品使用說明

5.1產(chǎn)品裝配圖

產(chǎn)品分為五個模塊:單片機(jī)是STC89C52RC單片機(jī),顯示屏是1602,蜂鳴

器和LED,電源和按鍵,DS18B20溫度傳感器模塊。

8

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

圖5-1產(chǎn)品裝配圖

5.2產(chǎn)品調(diào)試

認(rèn)真檢查焊接的萬能板,怕有漏焊,怕有虛焊,不然故障出錯,十分危

險。使用萬用表測量值,看看有沒有錯誤,如果有,馬上立刻處理,上電檢

查,帶入代碼,操作一下產(chǎn)品,看有沒有錯。

5.3產(chǎn)品使用說明

1.接上電,顯示屏顯示溫度,傳感器測量溫度。

2.溫度超過設(shè)定閾值,就會觸發(fā)報警。

3.溫度過低同樣也會報警

4.也可以使用按鍵來調(diào)最高最低溫度。

5.使用酒精降溫。

9

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

6產(chǎn)品設(shè)計技術(shù)標(biāo)準(zhǔn)

[1]J-STD-001E電氣與電子組件的焊接要求

[2]IPC-A-610D(中文版),IPC-A-610E電子組件的可接受性

[3]IPC-7711/21電子組件和電路板的返工&返修

[4]GB/T11457-2006信息技術(shù)軟件工程術(shù)語。

[5]GB/T8566-2007信息技術(shù)軟件生存周期過程標(biāo)準(zhǔn);

[6]GB/T8567-2006計算機(jī)軟件文檔編制規(guī)范。

10

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

參考資料

[1]譚浩強(qiáng).C程序設(shè)計[M].北京:清華大學(xué)出版社,2005:32~34

[2]張毅剛.單片機(jī)原理及應(yīng)用[M].北京:高等教育出版社,2008:45~55

[3]陳桂友,柴遠(yuǎn)斌.單片機(jī)應(yīng)用技術(shù)[M].北京:機(jī)械工業(yè)出版社,2008.8:27~55

[4]秦曾煌.電工學(xué)電子技術(shù)[M].北京:高等教育出版社,2004.7:31~47

[5]熊詩波,黃長藝.機(jī)械工程測試技術(shù)基礎(chǔ)[M].北京:機(jī)械工業(yè)出版社,2006.5:68~79

[6]李曉妮.單片機(jī)溫度控制系統(tǒng)的設(shè)計[J].江學(xué)院學(xué)報(自然科學(xué)版),2005:81~107

[7]余瑾,姚燕.基于DS18B20測溫的單片機(jī)溫度控制系統(tǒng)[J].微計算機(jī)信息,2009(3):17~23

[8]王梅紅.基于單片機(jī)的溫度控制系統(tǒng)設(shè)計與仿真[J].四川兵工學(xué)報,2012(2):67~69

11

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

附錄

附錄1元器件清單

附表1-1元器件清單

12

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

附錄2電路原理圖

附圖2-1產(chǎn)品原理圖

13

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

附錄3PCB設(shè)計圖

附圖3-1產(chǎn)品PCB設(shè)計圖

14

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

附錄4產(chǎn)品實物圖

附圖4-1產(chǎn)品實物圖正面

附錄5主程序代碼

#include<reg52.h>//包含頭文件

#include<intrins.h>

#defineucharunsignedchar

#defineuintunsignedint

sfrISP_DATA=0xe2;//數(shù)據(jù)寄存器

sfrISP_ADDRH=0xe3;//地址寄存器高八位

sfrISP_ADDRL=0xe4;//地址寄存器低八位

sfrISP_CMD=0xe5;//命令寄存器

sfrISP_TRIG=0xe6;//命令觸發(fā)寄存器

sfrISP_CONTR=0xe7;//命令寄存器

15

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

sbitDQ=P1^0;//DS18B20傳感器的引腳定義

sbitLcdEn_P=P2^5;//1602液晶的EN管腳

sbitLcdRw_P=P2^6;//1602液晶的RW管腳

sbitLcdRs_P=P2^7;//1602液晶的RS管腳

sbitLedLow=P1^4;//溫度過低指示燈

sbitLedHig=P1^3;//溫度過高指示燈

sbitBuzzer=P2^0;//蜂鳴器引腳

sbitKeySet_P=P3^2;//“設(shè)置”按鍵的管腳

sbitKeyDown_P=P3^3;//“減”按鍵的管腳

sbitKeyUp_P=P3^4;//“加”按鍵的管腳

intAlarmLow;//存儲溫度下限值

intAlarmHig;//存儲溫度上限值

/*********************************************************/

//單片機(jī)內(nèi)部EEPROM不使能

/*********************************************************/

voidISP_Disable()

{

ISP_CONTR=0;

ISP_ADDRH=0;

ISP_ADDRL=0;

}

/*********************************************************/

//從單片機(jī)內(nèi)部EEPROM讀一個字節(jié),從0x2000地址開始

/*********************************************************/

unsignedcharEEPROM_Read(unsignedintadd)

{

ISP_DATA=0x00;

ISP_CONTR=0x83;

ISP_CMD=0x01;

ISP_ADDRH=(unsignedchar)(add>>8);

ISP_ADDRL=(unsignedchar)(add&0xff);

//對STC89C51系列來說,每次要寫入0x46,再寫入0xB9,ISP/IAP才會生

ISP_TRIG=0x46;

ISP_TRIG=0xB9;

_nop_();

ISP_Disable();

return(ISP_DATA);

}

16

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

/*********************************************************/

//往單片機(jī)內(nèi)部EEPROM寫一個字節(jié),從0x2000地址開始

/*********************************************************/

voidEEPROM_Write(unsignedintadd,unsignedcharch)

{

ISP_CONTR=0x83;

ISP_CMD=0x02;

ISP_ADDRH=(unsignedchar)(add>>8);

ISP_ADDRL=(unsignedchar)(add&0xff);

ISP_DATA=ch;

ISP_TRIG=0x46;

ISP_TRIG=0xB9;

_nop_();

ISP_Disable();

}

/*********************************************************/

//擦除單片機(jī)內(nèi)部EEPROM的一個扇區(qū)

//寫8個扇區(qū)中隨便一個的地址,便擦除該扇區(qū),寫入前要先擦除

/*********************************************************/

voidSector_Erase(unsignedintadd)

{

ISP_CONTR=0x83;

ISP_CMD=0x03;

ISP_ADDRH=(unsignedchar)(add>>8);

ISP_ADDRL=(unsignedchar)(add&0xff);

ISP_TRIG=0x46;

ISP_TRIG=0xB9;

_nop_();

ISP_Disable();

}

/*********************************************************/

//毫秒級的延時函數(shù),time是要延時的毫秒數(shù)

/*********************************************************/

voidDelayMs(uinttime)

{

uinti,j;

for(i=0;i<time;i++)

for(j=0;j<112;j++);

}

17

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

/*********************************************************/

//延時15微秒

/*********************************************************/

voidDelay15us(void)

{

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

}

/*********************************************************/

//復(fù)位DS18B20(初始化)

/*********************************************************/

voidDS18B20_ReSet(void)

{

uchari;

DQ=0;

i=240;

while(--i);

DQ=1;

i=30;

while(--i);

while(~DQ);

i=4;

while(--i);

}

/*********************************************************/

//向DS18B20寫入一個字節(jié)

/*********************************************************/

18

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

voidDS18B20_WriteByte(uchardat)

{

ucharj;

ucharbtmp;

for(j=0;j<8;j++)

{

btmp=0x01;

btmp=btmp<<j;

btmp=btmp&dat;

if(btmp>0)//寫1

{

DQ=0;

Delay15us();

DQ=1;

Delay15us();

Delay15us();

Delay15us();

Delay15us();

}

else//寫0

{

DQ=0;

Delay15us();

Delay15us();

Delay15us();

Delay15us();

DQ=1;

Delay15us();

}

}

}

/*********************************************************/

//讀取溫度值

/*********************************************************/

intDS18B20_ReadTemp(void)

{

ucharj;

intb,temp=0;

19

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

DS18B20_ReSet();//產(chǎn)生復(fù)位脈

DS18B20_WriteByte(0xcc);//忽略ROM指令

DS18B20_WriteByte(0x44);//啟動溫度轉(zhuǎn)換指令

DS18B20_ReSet();//產(chǎn)生復(fù)位脈

DS18B20_WriteByte(0xcc);//忽略ROM指令

DS18B20_WriteByte(0xbe);//讀取溫度指令

for(j=0;j<16;j++)//讀取溫度數(shù)量

{

DQ=0;

_nop_();

_nop_();

DQ=1;

Delay15us();

b=DQ;

Delay15us();

Delay15us();

Delay15us();

b=b<<j;

temp=temp|b;

}

temp=temp*0.0625*10;//合成溫度值并放大10倍

return(temp);//返回檢測到的溫度值

}

/*********************************************************/

//1602液晶寫命令函數(shù),cmd就是要寫入的命令

/*********************************************************/

voidLcdWriteCmd(ucharcmd)

{

LcdRs_P=0;

LcdRw_P=0;

LcdEn_P=0;

P0=cmd;

DelayMs(2);

LcdEn_P=1;

DelayMs(2);

LcdEn_P=0;

}

20

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

/*********************************************************/

//1602液晶寫數(shù)據(jù)函數(shù),dat就是要寫入的數(shù)據(jù)

/*********************************************************/

voidLcdWriteData(uchardat)

{

LcdRs_P=1;

LcdRw_P=0;

LcdEn_P=0;

P0=dat;

DelayMs(2);

LcdEn_P=1;

DelayMs(2);

LcdEn_P=0;

}

/*********************************************************/

//1602液晶初始化函數(shù)

/*********************************************************/

voidLcdInit()

{

LcdWriteCmd(0x38);//16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù)口

LcdWriteCmd(0x0C);//開顯示,不顯示光標(biāo)

LcdWriteCmd(0x06);//地址加1,當(dāng)寫入數(shù)據(jù)后光標(biāo)右移

LcdWriteCmd(0x01);//清屏

}

/*********************************************************/

//液晶光標(biāo)定位函數(shù)

/*********************************************************/

voidLcdGotoXY(ucharline,ucharcolumn)

{

//第一行

if(line==0)

LcdWriteCmd(0x80+column);

//第二行

if(line==1)

LcdWriteCmd(0x80+0x40+column);

}

/*********************************************************/

//液晶輸出字符串函數(shù)

/*********************************************************/

21

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

voidLcdPrintStr(uchar*str)

{

while(*str!='\0')

LcdWriteData(*str++);

}

/*********************************************************/

//液晶顯示內(nèi)容的初始化

/*********************************************************/

voidLcdShowInit()

{

LcdGotoXY(0,0);

LcdPrintStr("T=C");

LcdGotoXY(1,0);

LcdPrintStr("L:H:");

LcdGotoXY(0,10);//溫度單位攝氏度上面的圓圈符號

LcdWriteData(0xdf);

}

/*********************************************************/

//溫度值的顯示

/*********************************************************/

voidLcdPrintTemp(inttemp)

{

if(temp<0)

{

LcdWriteData('-');//顯示負(fù)號

temp=0-temp;//負(fù)數(shù)轉(zhuǎn)為正數(shù)

}

else

{

LcdWriteData(temp/1000+0x30);//顯示百位

}

LcdWriteData(temp%1000/100+0x30);//顯示十位

LcdWriteData(temp%100/10+0x30);//顯示個位

LcdWriteData('.');//顯示小數(shù)點(diǎn)

LcdWriteData(temp%10+0x30);//顯示小數(shù)后一位小數(shù)

}

/*********************************************************/

//報警判斷

/*********************************************************/

22

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

voidAlarmJudge(intdat)

{

if(dat<AlarmLow)//判斷溫度是否過低

{

LedLow=0;

LedHig=1;

Buzzer=0;

}

elseif(dat>AlarmHig)//判斷溫度是否過高

{

LedLow=1;

LedHig=0;

Buzzer=0;

}

else//溫度正常

{

LedLow=1;

LedHig=1;

Buzzer=1;

}

}

/*********************************************************/

//報警值初始化

/*********************************************************/

voidAlarmInit()

{

AlarmLow=(EEPROM_Read(0x2000)*100+EEPROM_Read(0x2001))-1000;

if((AlarmLow<-550)||(AlarmLow>1250))//如果溫度下限值讀取不正常

{

AlarmLow=200;//重新賦值20度

}

AlarmHig=(EEPROM_Read(0x2002)*100+EEPROM_Read(0x2003))-1000;

if((AlarmHig<-550)||(AlarmHig>1250))//如果溫度上限值讀取不

正常

{

AlarmHig=300;//重新賦值30度

}

}

23

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

/*********************************************************/

//按鍵掃描,用于設(shè)置溫度報警范圍

/*********************************************************/

voidKeyScanf()

{

if(KeySet_P==0)//判斷設(shè)置按鍵是否被按下

{

LcdGotoXY(1,6);//光標(biāo)定位

LcdWriteCmd(0x0F);//光標(biāo)閃爍

DelayMs(10);//去除按鍵按下的抖動

while(!KeySet_P);//等待按鍵釋放

DelayMs(10);//去除按鍵松開的抖動

while(1)//設(shè)置溫度的下限值

{

if(KeyDown_P==0)//判斷“減按鍵“是否被按下

{

if(AlarmLow>-550)//只有當(dāng)溫度下限值大于-55時,才

能減0.1

AlarmLow--;

LcdGotoXY(1,2);//重新刷新顯示更改后的溫度下限

LcdPrintTemp(AlarmLow);

LcdGotoXY(1,6);//重新定位閃爍的光標(biāo)位置

DelayMs(300);//延時

}

if(KeyUp_P==0)//判斷“加按鍵“是否被按下

{

if(AlarmLow<1250)//只有當(dāng)溫度下限值小于125時,

才能加0.1

AlarmLow++;

LcdGotoXY(1,2);//重新刷新顯示更改后的溫度下限

LcdPrintTemp(AlarmLow);

LcdGotoXY(1,6);//重新定位閃爍的光標(biāo)位置

DelayMs(300);//延時

}

if(KeySet_P==0)//判斷“設(shè)置按鍵“是否被按下

{

break;//退出溫度下限設(shè)置

}

24

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計

}

LcdGotoXY(1,15);//光標(biāo)定位到溫度上限值

DelayMs(10);//去除按鍵按下的抖動

while(!KeySet_P);//等待按鍵釋放

DelayMs(10);//去除按鍵松開的抖動

while(1)//設(shè)置溫度的上限值

{

if(KeyDown_P==0)//判斷“減按鍵“是否被按下

{

if(AlarmHig>-550)//只有當(dāng)溫度上限值大于-55時,才能

減0.1

AlarmHig--;

LcdGotoXY(1,11);//重新刷新顯示更改后的溫度上限

LcdPrintTemp(AlarmHig);

溫馨提示

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

評論

0/150

提交評論