基于51單片機火災(zāi)自動滅火系統(tǒng)設(shè)計與制作_第1頁
基于51單片機火災(zāi)自動滅火系統(tǒng)設(shè)計與制作_第2頁
基于51單片機火災(zāi)自動滅火系統(tǒng)設(shè)計與制作_第3頁
基于51單片機火災(zāi)自動滅火系統(tǒng)設(shè)計與制作_第4頁
基于51單片機火災(zāi)自動滅火系統(tǒng)設(shè)計與制作_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(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單片機的選擇...............................................1

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

2.2.1溫度傳感器...........................................1

2.2.2煙霧傳感器...........................................2

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

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

3.1STC89C52RC單片機核心電路設(shè)計..............................3

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

3.3數(shù)碼管顯示模塊電路.........................................5

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

4.1主程序流程圖...............................................5

4.2濾波程序設(shè)計...............................................6

4.3顯示程序設(shè)計...............................................7

4.4產(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).................................................9

參考資料..........................................................10

附錄..............................................................11

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

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

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

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

I

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

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

II

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

基于51單片機火災(zāi)自動滅火系統(tǒng)設(shè)計與制作

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

合理正確的使用火能給人們帶來無情無盡的便利,但是如果錯誤不合理合

法的使用也會給人們帶來無窮無盡的災(zāi)禍?;鸬闹匾院筒豢扇笔允羌矣鲬?/p>

曉人盡皆知的。但除了我們需要正確的合理合法的使用火也需要合法合規(guī)使用

電,與此同時也需要在火災(zāi)發(fā)生時及時的科學(xué)滅火。隨著科技的進(jìn)步,我們生

活也逐漸智能化,此產(chǎn)品的設(shè)計與制作選擇了STC89C52單片機為主控,MQ.2型

半導(dǎo)體電阻式煙霧傳感器和繼電器控制自動抽水滅火。單片機通過將該由變頻

器的自動泵送滅火傳感器電壓變化進(jìn)行線性化、A/D變換、濾波,然后再將壓力

值變換為溫度和燃?xì)鉂舛炔⑺椭罫ED顯示屏,以便于對其做出評估,一旦其上線

后,即發(fā)出報警聲光并做出滅火處理,是為防止火災(zāi)事故而設(shè)置的主動消防系統(tǒng)。

2設(shè)計方案遴選

2.1單片機的選擇

STC89C52單片機是本產(chǎn)品所使用的一款單片機,是一種穩(wěn)定性高靈活性高

且高效的微控制器。在電子行業(yè)中STC89C52RC單片機被廣泛使用著,選用該單

片機因為它是一個雖然功率小,但是高性能抗干擾好的元件,眾多嵌入式的應(yīng)用

系統(tǒng)的高效率和高靈活性的解決方案,由STC89C52RC的嵌入式單片機實現(xiàn)。

2.2傳感器的選擇

2.2.1溫度傳感器

溫度傳感器選用的是DS18B20,數(shù)字信號的輸出并且眾多數(shù)字溫度傳感器中

經(jīng)常被使用的就是DS18B20。精度相對高,硬件的開銷少,抗干擾實力龐大和所

占空間小都是他所具有的特點。除此之外他的接線十分方便并且封裝后可以被

應(yīng)用于多種的場合,適用于各種空間狹小設(shè)備控制領(lǐng)域和數(shù)字測溫。技術(shù)性能

方面,DS18B20為與眾不同的單線接口形式,他只要一個口線便能完成DS18B20

與微處理器的雙向通訊。需注意的是,單線通訊接口必須在先完成ROM設(shè)定,

不然控制與記憶功能將無法使用。與此同時還支持多點組網(wǎng)功能,可并聯(lián)幾個

DS18B20在1個三線的的上面,8個是其并聯(lián)的極限個數(shù),多點測溫就因為這個

1

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

特性才得以能夠得到實現(xiàn)。若超過了所確定的那個極限會出現(xiàn)相應(yīng)的問題——

導(dǎo)致供電電源電壓過小,使得信號傳輸?shù)牟环€(wěn)定。另外,DS18B20的測溫和讀寫

時序原理與DS1820相同,但溫度值得位數(shù)會因為分辨率的差異和不相同。

DS18B20有兩種供電方式,分別為寄生電源的供電方式和電源供電的方式,

單片機的端口接總線,為了保證供給總需要的電流在有效DS18B20的時鐘周期

內(nèi),用一個三極管對總線進(jìn)行上拉可實現(xiàn)所需,這就是寄生電源的供電方式。

用DS18B20的1腳接地、2腳為信號線、3腳來接電源就為電源供電的方式。本

次產(chǎn)品的設(shè)計就是使用電源供電的方式來完成。

2.2.2煙霧傳感器

煙霧傳感器是煙霧報警器用來收集信號,煙霧傳感器能夠?qū)舛扔嘘P(guān)的信

息及其氣體的種類轉(zhuǎn)換為電信號,依據(jù)所收集來的的電信號的強弱便可以獲得

與即將需要檢測的氣體所存在環(huán)境中的含量情況相關(guān)的信息,于是可得到檢測、

監(jiān)控、報警的這些功能的實現(xiàn)。

煙霧傳感器屬于氣敏傳感器也是模擬傳感器和氣電變換器,可燃性氣體在

空氣中的濃度能被他轉(zhuǎn)化成電流或者電壓信號,模擬量通過A/D轉(zhuǎn)換電路轉(zhuǎn)換

成了數(shù)字量后就會送達(dá)到單片機,然后就由單片機進(jìn)一步的完成完成濃度處理、

報警控制、及數(shù)據(jù)處理等其他的相關(guān)工作??諝庵袩熿F所含有的濃度其變量能

被他轉(zhuǎn)換成有一定對應(yīng)關(guān)系的輸出信號的裝置。通過監(jiān)測所存在的環(huán)境中空氣

中所含煙霧濃度來完成所需的火災(zāi)防范就是煙霧型傳感器的用途。煙霧傳感器

分為許多種,但一般來說會把它們分為濕式、干式氣體傳感器。其中包括接觸

燃燒式傳感器、半導(dǎo)體煙霧傳感器(半導(dǎo)體氣敏傳感器)、電化學(xué)傳感器、高

分子煙霧傳感器和離子感煙傳感器。對于各型各樣的報警器檢測煙霧種類的不

相同的要求,半導(dǎo)體煙霧傳感器被大家廣泛選擇。絕大部分的煙霧傳感器的應(yīng)

用特性與其對比,可以得出優(yōu)點更加突出的是半導(dǎo)體煙霧傳感器。因為響應(yīng)快、

體積小、靈敏度高、使用方便、價格便宜且結(jié)構(gòu)簡單等優(yōu)點半導(dǎo)體煙霧傳感器

都一一具有,而且還不會發(fā)生探頭阻緩及中毒現(xiàn)象,維護(hù)所需的成本相比也較

低,從而獲得了人們的廣泛應(yīng)用。所以,MQ.2半導(dǎo)體氣體煙霧傳感器成為了本

次煙霧傳感器的選擇。

MQ-2半導(dǎo)體傳感器是N型半導(dǎo)體氣敏元件且清潔空氣中電導(dǎo)率較低的金屬

氧化物二氧化錫(SnO2)是他的主體。如果傳感器所存在的環(huán)境中含有煙霧氣體

的情況,傳感器的電導(dǎo)率將會因為存在環(huán)境的空氣中煙霧氣體含量的增多而增

大。想把電導(dǎo)率的變化轉(zhuǎn)換為的輸出信號與該氣體濃度相對應(yīng)中需要在設(shè)計報

2

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

警器時應(yīng)用簡便的電路就可達(dá)成目的。平常的半導(dǎo)體煙霧傳感器電導(dǎo)率變化大、

靈敏度高、抗干擾能力強、響應(yīng)和恢復(fù)時間短、壽命長、工作穩(wěn)定、輸出信號

大等優(yōu)點他都具備,所以在市面上他也被十分廣泛的應(yīng)用。

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

電源

顯示電路

AD采集STC89C

報警電路

52

電路

單片機

按鍵控制

滅火

電源開關(guān)

圖1系統(tǒng)框圖

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

3.1STC89C52RC單片機核心電路設(shè)計

單片機最小系統(tǒng)包括單片機、復(fù)位電路、時鐘電路構(gòu)成。單片機內(nèi)部具有

一個高增益反相放大器,用于構(gòu)成振蕩器。通常在引腳XTALl和XTAL2跨接石

英晶體和兩個補償電容構(gòu)成自激振蕩器,可以根據(jù)情況選擇6MHz、8MHz或12MHz

等頻率的石英晶體,補償電容通常選擇20.30pF左右的瓷片電容。

單片機最小系統(tǒng)的復(fù)位操作采用手動按鍵復(fù)位和上電自動復(fù)位兩種方式實

現(xiàn)。如果在接通了其電源后能夠自動實現(xiàn)復(fù)位操作及為上電復(fù)位。值得一提的

是該復(fù)位方式是使用電容C3充電來完成的。若是已經(jīng)接通了電源的情況下,在

這個單片機他所運行的時間里,單片機復(fù)位是用按鈕開關(guān)完成的,那么就為手

動復(fù)位且他是通過按扭將R2電阻與VCC接通來完成。

單片機的時鐘電路相當(dāng)于人的心臟,因為單片機工作節(jié)奏被他所掌控,振

蕩電路又相當(dāng)于時鐘電路。反向放大器的輸出和輸入分別是XTAL2和XTAL1,

若XTAL2應(yīng)不接,則可能外部時鐘源驅(qū)動器件被采用了。因為六個狀態(tài)周期是1

個機器周期,又兩個振蕩周期為一個狀態(tài)周期,則十二個振蕩周期為1個機器

周期。

3

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

本產(chǎn)品采用的STC單片機執(zhí)行速度快,串口對STC進(jìn)行燒寫,下載程序相對方

便,看門狗電路在STC89C52單片機內(nèi)部集成了且富有十分有力的抗干擾實力。

圖2STC89C52RC最小系統(tǒng)原理圖

STC89C52RC單片機實物圖:

圖3STC89C52RC單片機實物圖

3.2按鍵電路設(shè)計

按鍵電路的設(shè)計上,所設(shè)計的按鍵包括一個加鍵、設(shè)置鍵、一個減鍵和一

個緊急報警鍵,如果遇到特殊的緊急情況下,報警鍵被按下就會進(jìn)行報警,然

后繼電器控制水泵抽水滅火。若想取消報警滅火的話,按下加鍵或者減鍵就可

以停止報警滅火。按下設(shè)置鍵可進(jìn)入設(shè)置模式,設(shè)置報警滅火溫度,在設(shè)置模

式時按下加鍵增高報警滅火溫度,按下減鍵降低報警滅火溫度。

4

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

圖4按鍵電路原理圖

3.3數(shù)碼管顯示模塊電路

所選用的數(shù)碼管為四位一體共陰數(shù)碼管,所有l(wèi)ed的陰極連接到共同接點

COM接通電源就為共陰極數(shù)碼管。共陰數(shù)碼管是一類數(shù)字形式的顯示屏,相對的

電流被不同的管腳輸入會讓它發(fā)光然后顯示出相應(yīng)的數(shù)字,而顯示的數(shù)字可對

應(yīng)為所需的溫度,時間,日期等等。便宜的價格和簡單的操作讓它被廣泛的使

用著。此設(shè)計就采用了共陰極數(shù)碼管,數(shù)碼管的第一位顯示煙霧可燃?xì)怏w值,

取值范圍0~9,后兩位顯示溫度值,按下設(shè)置鍵進(jìn)入設(shè)置模式加減鍵可改變其

數(shù)值。

圖5數(shù)碼管實物圖

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

4.1主程序流程圖

先將傳感器進(jìn)行預(yù)熱,如果所選用的核心設(shè)計為MQ.2型半導(dǎo)體電阻式煙霧

傳感器在一段時間不通電放置,再次通電的時候,煙霧信息不能被傳感器立即

采集,預(yù)熱后就可以避免該問題的發(fā)生。當(dāng)程序初始化結(jié)束后,就進(jìn)入監(jiān)視狀

態(tài),如圖6所示。

5

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

圖6主程序流程圖

4.2濾波程序設(shè)計

一些脈沖干擾現(xiàn)象的出現(xiàn)會出現(xiàn)在傳感器信號采樣的時候,一些采樣點的

數(shù)據(jù)就很有可能被影響,如果被影響的話其他采樣點數(shù)據(jù)與數(shù)據(jù)就容易有較大

的相差。為了避免這個現(xiàn)象的發(fā)生,便采用了防脈沖?擾平均值濾波法也就是

中位值平均濾波法,該方法就是對N個采樣數(shù)據(jù)進(jìn)??較,去掉其中最?和最?

的兩個數(shù)據(jù),對剩下的數(shù)據(jù)進(jìn)?算數(shù)平均值。小的隨機干擾和脈沖干擾都可以

被這種方法濾去,這樣煙霧濃度的準(zhǔn)確性,減小誤報、錯報的可能得到了保障。

濾波子程序流程圖如圖7所示。

6

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

圖7濾波子流程圖

4.3顯示程序設(shè)計

本次設(shè)計的實現(xiàn)是接通電源后,當(dāng)前溫度若超過設(shè)定的溫度或煙霧濃度超

標(biāo)則都會自動報警,在打開了蜂鳴器同時會打開由繼電器控制的水泵進(jìn)行抽水

滅火。設(shè)定的溫度和煙霧的濃度可以自己按設(shè)置鍵進(jìn)入設(shè)置模式再按加減鍵自

己設(shè)置,進(jìn)入設(shè)置,按下設(shè)置鍵則進(jìn)入溫度設(shè)置,再按下設(shè)置鍵則進(jìn)入煙霧濃

度設(shè)置,若按下設(shè)置鍵30s無操作則會退出設(shè)置模式。也可以按手動報警鍵手

動報警,若有個別特別的情況下需要手動報警,設(shè)置的參數(shù)不會變化仍然存在

單片機里面的EEPOM中這就是所具有的掉電保存能力。若有氣體的出現(xiàn),氣體

的種類以及濃度有關(guān)的信息能被煙霧傳感器轉(zhuǎn)換為電信號,依靠這些電信號的

強弱就可以獲得與待測氣體在環(huán)境中存在的情況有關(guān)的信息,從而實現(xiàn)檢測、

監(jiān)控和報警抽水滅火的功能。若煙霧傳感器他檢測到煙霧為火災(zāi)釋放出的煙霧

時,信號將會由ADC0832進(jìn)行處理模數(shù)轉(zhuǎn)化然后再到達(dá)單片機進(jìn)行處理,當(dāng)檢

測到煙霧的濃度已經(jīng)完全超過所設(shè)定的溫度時,震耳欲聾的鳴笛聲就會從蜂鳴

7

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

器中傳出來與此同時會打開繼電器控制的水泵抽水滅火。

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

圖8C51單片機火災(zāi)自動滅火程序清單圖

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

5.1產(chǎn)品裝配圖

產(chǎn)品是由STC89C52RC單片機,煙霧傳感器,蜂鳴器,開關(guān)按鈕,四位一體

共陰極數(shù)碼管等構(gòu)成,裝備圖如圖9所示。

圖9裝配圖

8

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

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

使用萬能表檢查每個焊接地方是否存在虛焊,漏焊,焊錯等情況,在焊前

記得用萬用表檢查每個器件是否為正常的,焊接完成也要檢查是否短路情況出

現(xiàn),各個焊接是否完好。檢查都合格就通電調(diào)試。燒入程序。

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

1、通電后再打開電源開關(guān)。

2、可先按設(shè)置鍵進(jìn)入設(shè)置模式,再按減鍵或加鍵進(jìn)行報警滅火溫度設(shè)置,

給予所需數(shù)值。設(shè)置完成再按設(shè)置鍵退出設(shè)置。

3、可直接按報警鍵測試報警滅火效果,關(guān)閉效果按加鍵或減鍵。

4、測試溫度報警時使用打火機燒溫度傳感器不要少太久,使用不防風(fēng)打火

機吹滅火焰湊近煙霧傳感器。

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計算機軟件文檔編制規(guī)范

9

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

參考資料

[1]李華.MCS一52系列單片機實用接口技術(shù)[M].北京航空航天大學(xué)出版社.

[2]張毅.坤等單片微型計算機原理及應(yīng)用[M].西安電子科技大學(xué)出版社,2006.

[3]朱明程等.一氧化碳傳感器MGS1100原理及應(yīng)用電子技術(shù)[J].1998.1期.

[4]劉迎.春傳感.器原理設(shè)計及應(yīng)用[M].哈爾濱工業(yè)大學(xué)出社.

[5]劉廣玉.新型傳感器技術(shù)及應(yīng)用[M].北京航空航天大學(xué)出版社,1989.

[6]何立民.單片機實用文集[M].北京航空航天大學(xué)出版,1993.

[7]余成波.傳感器與自動檢測技術(shù)[M].高等教育出版社,2004.

10

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

附錄

附錄1元器件清單

11

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

附錄2電路原理圖

12

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

附錄3PCB設(shè)計圖

13

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

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

14

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

附錄5主程序代碼

//基于c51單片機火災(zāi)滅火系統(tǒng)設(shè)計與制作

#include<reg51.h>//調(diào)用單片機頭文件

#defineucharunsignedchar//

#defineuintunsignedint//無符號整型

#include<intrins.h>

#include"eeprom52.h"

ucharcode

smg_du[]={0x5f,0x44,0x9d,0xd5,0xc6,0xd3,0xdb,0x45,0xdf,0xd7,0x40,0xf

d/*-*/};//數(shù)碼管位選定義

ucharcodesmg_we[]={0x7f,0xbf,0xdf,0xef};

uchardis_smg[8]={0xa0,0x84,0x62,0x2a,0x39,0x2c,0x24,0xba};

sbitCS=P2^3;//CS定義為P3口的第2位腳,連接ADC0832CS腳PCB

sbitSCL=P2^0;//SCL定義為P3口的第3位腳,連接ADC0832SCL

sbitDO=P2^1;//DO定義為P3口的第4位腳,連接ADC0832DO腳

sbitledy=P1^6;//溫度報警指示燈

sbitledr=P1^7;//煙霧報警指示燈x

sbitdq=P1^5;//18b20IO口的定義

sbitbeep=P3^6;//蜂鳴器IO口定義

sbitfen=P3^7;//風(fēng)扇

uinttemperature,s_temp;//溫度的變量

uchardengji,s_dengji;//煙物等級

ucharshoudong;//手動報警鍵

bitflag_300ms=1;

ucharkey_can;//按鍵值的變量

ucharmenu_1;//菜單設(shè)計的變量

/**********1ms延時函數(shù)*****************************/

voiddelay_1ms(uintq)

{

uinti,j;

15

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

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

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

}

/***********************小延時函數(shù)*****************************/

voiddelay_uint(uintq)

{

while(q--);

}

/*********把數(shù)據(jù)保存到單片機內(nèi)部eeprom中******************/

voidwrite_eeprom()

{

SectorErase(0x2000);

byte_write(0x2000,s_temp);

byte_write(0x2001,s_dengji);

byte_write(0x2060,a_a);

}

/********把數(shù)據(jù)從單片機內(nèi)部eeprom中讀出來*****************/

voidread_eeprom()

{

s_temp=byte_read(0x2000);

s_dengji=byte_read(0x2001);

a_a=byte_read(0x2060);

}

/**************開機自檢eeprom初始化*****************/

voidinit_eeprom()

{

read_eeprom();//先讀

if(a_a!=1)//新的單片機初始單片機內(nèi)問eeprom

{

s_temp=50;

s_dengji=5;

a_a=1;

write_eeprom();//保存數(shù)據(jù)

16

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

}

}

/***********18b20初始化函數(shù)*****************************/

voidinit_18b20()

{

bitq;

dq=1;//把總線拿高

delay_uint(1);//15us

dq=0;//給復(fù)位脈沖

delay_uint(80);//750us

dq=1;//把總線拿高等待

delay_uint(10);//110us

q=dq;//讀取18b20初始化信號

delay_uint(20);//200us

dq=1;//把總線拿高釋放總線

}

/*************寫18b20內(nèi)的數(shù)據(jù)***************/

voidwrite_18b20(uchardat)

{

uchari;

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

{//寫數(shù)據(jù)是低位開始

dq=0;//把總線拿低寫時間隙開始

dq=dat&0x01;//向18b20總線寫數(shù)據(jù)了

delay_uint(5);//60us

dq=1;//釋放總線

dat>>=1;

}

}

/*************讀取18b20內(nèi)的數(shù)據(jù)***************/

ucharread_18b20()

{

uchari,value;

17

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

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

{

dq=0;//把總線拿低讀時間隙開始

value>>=1;//讀數(shù)據(jù)是低位開始

dq=1;//釋放總線

if(dq==1)//開始讀寫數(shù)據(jù)

value|=0x80;

delay_uint(5);//60us

}

returnvalue;//返回數(shù)據(jù)

}

/*************讀取溫度的值讀出來的是小數(shù)***************/

uintread_temp()

{

uintvalue;

ucharlow;//在讀取溫度的時候如果中斷的太頻繁了,就應(yīng)

該把中斷給關(guān)了,否則會影響到18b20的時序

init_18b20();//初始化18b20

EA=0;

write_18b20(0xcc);//跳過64位ROM

write_18b20(0x44);//啟動一次溫度轉(zhuǎn)換命令

EA=1;

delay_uint(50);//500us

init_18b20();//初始化18b20

EA=0;

write_18b20(0xcc);//跳過64位ROM

write_18b20(0xbe);//發(fā)出讀取暫存器命令

EA=1;

EA=0;

low=read_18b20();//讀溫度低字節(jié)

value=read_18b20();//讀溫度高字節(jié)

18

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

EA=1;

value<<=8;//把溫度的高位左移8位

value|=low;//把讀出的溫度低位放到value的低八位中

value*=0.0625;//轉(zhuǎn)換到溫度值

returnvalue;//返回讀出的溫度

}

/***********讀數(shù)模轉(zhuǎn)換數(shù)據(jù)****************************/

//請先了解ADC0832模數(shù)轉(zhuǎn)換的串行協(xié)議,再來讀本函數(shù),主要是對應(yīng)時

序圖來理解,本函數(shù)是模擬0832的串行協(xié)議進(jìn)行的

unsignedcharad0832read(bitSGL,bitODD)

{

unsignedchari=0,value=0,value1=0;

SCL=0;

DO=1;

CS=0;//開始

SCL=1;//第一個上升沿

SCL=0;

DO=SGL;

SCL=1;//第二個上升沿

SCL=0;

DO=ODD;

SCL=1;//第三個上升沿

SCL=0;//第三個下降沿

DO=1;

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

{

SCL=1;

SCL=0;//開始從第四個下降沿接收數(shù)據(jù)

value<<=1;

if(DO)

value++;

}

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

19

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

{//接收校驗數(shù)據(jù)

value1>>=1;

if(DO)

value1+=0x80;

SCL=1;

SCL=0;

}

CS=1;

SCL=1;

if(value==value1)//與校驗數(shù)據(jù)比較,正確返回數(shù)據(jù),否則返回0

returnvalue;

return0;

}

/**********數(shù)碼顯示函數(shù)*****************************/

voiddisplay()

{

uchari;

P0=0x00;//消隱

P2=smg_we[i];//位選

P0=dis_smg[i];//段選

i++;

if(i>=4)//4位數(shù)碼管顯示

i=0;

}

/*************定時器0初始化程序***************/

voidtime_init()

{

EA=1;//開總中斷

TMOD=0X01;//定時器0、定時器1工作方式1

ET0=1;//開定時器0中斷

TR0=1;//允許定時器0定時

}

/********************獨立按鍵程序*****************/

20

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

ucharkey_can;//按鍵值

voidkey()//獨立按鍵程序

{

staticucharkey_new;

key_can=20;//按鍵值還原

P1|=0x0f;

if((P1&0x0f)!=0x0f)//按鍵按下

{

delay_1ms(1);//按鍵消抖動

if(((P1&0x0f)!=0x0f)&&(key_new==1))

{//確認(rèn)是按鍵按下

key_new=0;

switch(P1&0x0f)

{

case0x0e:key_can=4;break;//得到k1鍵值

case0x0d:key_can=3;break;//得到k2鍵值

case0x0b:key_can=2;break;//得到k3鍵值

case0x07:key_can=1;break;//得到k4鍵值

}

}

}

else//按鍵松開

key_new=1;

}

/****************按鍵處理數(shù)碼管顯示函數(shù)***************/

voidkey_with()

{

if(key_can==4)//緊急報警鍵手動報警

{

if(menu_1==0)

shoudong=1;

}

21

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

if(key_can==1)//設(shè)置鍵

{

menu_1++;

if(menu_1>=3)

{

menu_1=0;

}

}

if(menu_1==0)

{

if((key_can==2)||(key_can==3))

shoudong=0;//取消手動報警

}

if(menu_1==1)//設(shè)置高溫報警

{

if(key_can==2)

{

s_temp++;//高溫報警值加1

if(s_temp>99)

s_temp=99;

}

if(key_can==3)

{

s_temp--;//高溫報警值減1

if(s_temp<=10)

s_temp=10;

}

dis_smg[0]=smg_du[s_temp%10];//取個位顯示

dis_smg[1]=smg_du[s_temp/10%10];//取十位顯示

dis_smg[2]=0x80;

dis_smg[3]=0x1b;//顯示c

write_eeprom();//保存數(shù)據(jù)

}

22

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

if(menu_1==2)//設(shè)置煙物報警

{

if(key_can==2)

{

s_dengji++;//煙物報警值加1

if(s_dengji>=9)

s_dengji=9;

}

if(key_can==3)

{

s_dengji--;//煙物報警值減1

if(s_dengji<=1)

s_dengji=1;

}

dis_smg[0]=smg_du[s_dengji%10];//取個位顯示

dis_smg[1]=0x80;

dis_smg[2]=0x80;

dis_smg[3]=0xc7;//顯示q

write_eeprom();//保存數(shù)據(jù)

}

}

/****************報警函數(shù)***************/

voidclock_h_l()

{

staticucharvalue;

if((dengji>=s_dengji)||(temperature>=s_temp)||(shoudong

==1))//報警

{

value++;

if(value>=2)

{

value=10;

beep=~beep;//蜂鳴器報警

23

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

fen=0;

溫馨提示

  • 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

提交評論