摘 要
隨著經(jīng)濟和科學技術(shù)的快速發(fā)展,人們對生活質(zhì)量的提高和生活環(huán)境的改善越來越重視。天然氣作為一種清潔型能源進入家庭得到廣泛使用,為人們的生活帶來了方便,減少了城市的污染,提高了生活質(zhì)量和效率,但是同時,天然氣也是潛在的“危險品”,天然氣在使用過程中,若管道和閥門密封不好,一旦泄漏出去極易爆炸,危及人們的生命財產(chǎn)安全。面對燃氣泄漏而造成的種種事故威脅,我們需要一個解決辦法。然而使用天燃氣檢測系統(tǒng)成為了一個重要的研究課題。
本畢業(yè)設(shè)計的題目是基于單片機的天然氣泄漏檢測系統(tǒng)設(shè)計。本設(shè)計主要是由一個MQ-4傳感器采集氣體濃度信號,系統(tǒng)建立濃度與電壓關(guān)系,進行濃度電壓轉(zhuǎn)換,濃度顯示,聲光報警構(gòu)成的報警裝置。本系統(tǒng)由ADC0832處理數(shù)據(jù),MCU采用STC89C52,完成氣體濃度信號的采集顯示內(nèi)容的傳輸、顯示等功能。本設(shè)計的可燃氣體報警器由六個部分組成:傳感器、數(shù)碼管顯示器、聲光報警器、控制電路、A/D轉(zhuǎn)換和電源模塊。軟件上采用C語言編程,結(jié)構(gòu)簡單運行穩(wěn)定。
該檢測系統(tǒng)能夠檢測天然氣濃度,當檢測天然氣濃度低于設(shè)定報警閾值的時候,數(shù)碼管顯示器僅僅顯示測得的可燃氣體濃度;當檢測天然氣濃度超出設(shè)定報警閾值時給出聲光報警,并伴有語音提醒。
目 錄
摘 要
Abstract
緒 論
1基于單片機的天然氣泄漏檢測系統(tǒng)概述
1.1天然氣泄漏檢測報警器的概述
1.2家用天然氣泄漏檢測報警器現(xiàn)狀
1.3家庭燃氣泄漏報警的發(fā)展趨勢
1.4天然氣泄漏檢測報警設(shè)計意義
2天然氣泄露檢測報警系統(tǒng)的方案設(shè)計
2.1天然氣泄漏檢測報警系統(tǒng)簡介
2.2氣體傳感器的選型
2.3 天然氣泄露報警系統(tǒng)的整體設(shè)計方案
2.3.1天然氣泄漏報警器工作原理
2.3.2天然氣泄漏報警器的結(jié)構(gòu)
2.3.3報警器各模塊的功能
3天然氣泄露報警的硬件部分設(shè)計
3.1主控電路設(shè)計
3.1.1STC89C52單片機簡介
3.1.2 STC89C52單片機的基本結(jié)構(gòu)
3.1.3 STC89C52RC單片機的引腳
3.2電源電路設(shè)計
3.3可燃氣體信號采集部分
3.4 MQ-4氣體傳感器
3.5 A/D轉(zhuǎn)換部分
3.5.1 A/D轉(zhuǎn)換電路
3.6 氣體結(jié)果測量計算
3.7 聲光報警部分
3.8 計數(shù)器譯碼顯示電路
3.8.1 LED 的綜述
3.8.2 LED 的結(jié)構(gòu)
3.8.3 LED數(shù)碼管的顯示方法
3.9 復(fù)位電路
3.10 最小系統(tǒng)及按鍵
4燃氣泄漏檢測報警系統(tǒng)的軟件部分
4.1程序設(shè)計流程與編程
4.2系統(tǒng)調(diào)試
結(jié) 論
參考文獻
附錄A 基于單片機的天然氣泄漏檢測系統(tǒng)原理圖
附錄B 基于單片機的天然氣泄漏檢測系統(tǒng)結(jié)果圖
附錄C C程序
致 謝
緒 論隨著人民生活水平的提高及環(huán)保意識的增強,世界需求干凈能源的呼聲高漲,各國政府也透過立法程序來傳達這種趨勢,天然氣曾被視為最干凈的能源之一,再加上1990年中東的波斯灣危機,加深美國及主要石油國家研發(fā)替代能源的決心,因此,在還未發(fā)現(xiàn)真正的替代能源前,天然氣需求量自然消耗會增加。 天然氣是一種高效、清潔、經(jīng)濟、穩(wěn)定的生活能源。近年來,隨著我國燃氣的變革及西氣東輸工程的進行,天然氣通過管道走進了千家萬戶,極大地方便我們的生產(chǎn)生活,同時也帶來了不少的安全隱患。 從工農(nóng)業(yè)生產(chǎn)的各個領(lǐng)域到人們家庭生活的各個方面,人們直接或間接接觸各種有毒有害氣體的機會大大增加,由此而引起的中毒,火災(zāi)和爆炸事故屢見不鮮,嚴重威脅到人們的生命和財產(chǎn)安全,成為一種新的社會公害。因此對環(huán)境氣體進行檢測和分析技術(shù)的研究日益受到人們的重視。傳統(tǒng)的分析氣體組分和濃度的方法是以色譜法為代表的各種化學計量方法,盡管其測量精度很高,但操作手續(xù)繁雜,實驗周期長,無法對有毒、有害氣體進行實時、連續(xù)、瞬時檢測,而氣體傳感器則滿足這種要求,并且在人們?nèi)粘I钪袑p少氣體爆炸、火災(zāi)等事故已經(jīng)發(fā)揮著越來越大的作用。 目前世界各大強國都把傳感器技術(shù)列為國家發(fā)展的重點技術(shù),國防現(xiàn)代化、工業(yè)生產(chǎn)過程自動化、家庭電器化都與傳感器的發(fā)展休戚相關(guān),今天的傳感器技術(shù)已滲透到國民經(jīng)濟的各個領(lǐng)域,日益突出它的重要作用。集成化、多功能化、智能化、加工技術(shù)微精細化、指標高精度化和性能高穩(wěn)定、高可靠化已經(jīng)成為人們開發(fā)和研究傳感器的重要方向。 泄漏檢測報警系統(tǒng)被廣泛的應(yīng)用于各個領(lǐng)域,如石油化工企業(yè)、石油運輸管線、城市自來水地下管線、鍋爐爐管、發(fā)動機箱體、缸蓋等各種領(lǐng)域。 泄漏檢測技術(shù)在管道檢測之中的應(yīng)用得到了很好的發(fā)展。對于管道的泄漏檢測要滿足以下幾個要求: 1.準確可靠地判斷泄漏的發(fā)生,并能夠在較短的時間內(nèi)判斷出泄漏點具體的位置。 2.準確可靠地判斷泄漏程度,能對較小量的泄漏做出判斷。 3.檢測原理簡單,易于操作和維護。
1基于單片機的天然氣泄漏檢測系統(tǒng)概述
1.1天然氣泄漏檢測報警器的概述天然氣泄漏檢測報警器是燃氣安全設(shè)備非常重要的一部分,它是由氣敏傳感器、單片機和報警器組成。它是安全使用城市燃氣的最后一道保護設(shè)備。天然氣泄漏檢測報警器通過氣敏傳感器探測周圍環(huán)境中的天然氣濃度,在通過采樣電路,將探測到的模擬信號轉(zhuǎn)換成數(shù)字信號傳遞給控制器或控制電路。當檢測氣體濃度低于設(shè)定報警閾值的時候,數(shù)碼管顯示器僅僅顯示測得的可燃氣體濃度;當檢測氣體濃度超出設(shè)定報警閾值時給出聲光報警。氣敏傳感器是一種檢測特定氣體的傳感器。它主要包括半導體氣敏傳感器、接觸燃燒式氣敏傳感器和電化學氣敏傳感器等,這些傳感器都是通過對周圍環(huán)境中的可燃氣體的吸附,在傳感器表面產(chǎn)生化學反應(yīng)或電化學反應(yīng),造成傳感器的電物理特性的改變,經(jīng)單片機處理后轉(zhuǎn)換成檢測氣體的響應(yīng)濃度 。其中用的最多的是半導體氣敏傳感器。 1.2家用天然氣泄漏檢測報警器現(xiàn)狀現(xiàn)在每家每戶只要安裝天然氣管道的都必須安裝天然氣報警器。對于目前市場上天然氣報警存在以下問題:1、對天然氣的檢測不敏感或者檢測到天然氣泄漏并不能及時報警作出相應(yīng)處理;2、對于天然氣檢測過于敏感,正常做飯燒水時難免會有少數(shù)天然氣溢出,此時報警器就不停關(guān)閥報警嚴重影響生活效率;3、存在謊報誤報的現(xiàn)象,當空氣中存油煙時也會關(guān)閥報警所以很多家庭對探測報警器束之高閣當成擺設(shè),買了并不安裝;4、功能簡單,當天然氣發(fā)生泄漏時只會關(guān)閥報警,倘若家中無人閥門不緊,不能及時處理險情通知戶主。所以市面上的天然氣泄漏檢測報警器亟待于改進,從而才能更好地保障我們的生命財產(chǎn)安全,提高我們的生活質(zhì)量。 1.3家庭燃氣泄漏報警的發(fā)展趨勢二十多年前,我國的安防報警產(chǎn)品剛剛起步,無論產(chǎn)品技術(shù)含量、產(chǎn)品系列完整性、使用性,還是社會影響程度都是相當?shù)偷摹獾漠a(chǎn)品和品牌卻占領(lǐng)我們的大部分市場。由于中國的建設(shè)正在面臨飛速發(fā)展,我們應(yīng)該抓住廣闊的市場空間,慶幸的是中國企業(yè)抓住了這次機遇,頂住了挑戰(zhàn),先是一批國家的科研院所,后是一批國營企業(yè)、民營企業(yè),業(yè)內(nèi)也吸引和凝聚一大批國內(nèi)的技術(shù)和管理精英,花了多年時間,通過幾次產(chǎn)品更新?lián)Q代,就使自己的產(chǎn)品緊緊跟上了國際水平,并且奪回了大部分國內(nèi)市場,使得現(xiàn)在大多國外產(chǎn)品只有招架之勢,這是典型的自力更生,走自己的路。當然目前而言,我們基本占據(jù)的是國內(nèi)市場,對外還剛剛啟動。但是,中國企業(yè)已經(jīng)做好準備進軍海外市場。 1.4天然氣泄漏檢測報警設(shè)計意義天然氣泄漏造成的事故給我們帶來了不少的警示,而市場上的天然氣檢測報警器并不能為我們提供完善的安全保障,為此我們要設(shè)計功能更加完善,探測更加精確的天然氣報警器是對付燃氣無形殺手的重要手段之一。燃氣專家指出,燃氣泄漏或廢氣排放而大量產(chǎn)生的一氧化碳是燃氣中毒事件的根源,如采用天燃氣泄漏報警器就能得到及時的警示。有關(guān)部門經(jīng)長期測試得出結(jié)論,天燃氣報警器防止天然氣泄漏事故發(fā)生的有效率達95%以上。 計算機的普及和信息技術(shù)的迅猛發(fā)展,人們己不滿足于傳統(tǒng)的居住環(huán)境,對家庭及住宅小區(qū)提出了更高的要求,智能化被引入家庭,并迅速在世界各地發(fā)展起來。人們對居住環(huán)境要求的日見增高,體現(xiàn)在希望住宅不僅更便利、舒適而且更安全。 單片機在日用電子產(chǎn)品中的應(yīng)用越來越廣泛,燃氣泄漏則是人們?nèi)粘I钪谐3P枰獪y量和控制的一個問題。單片機有利于為現(xiàn)代人工作、科研、生活、提供更好的更方便的設(shè)施。為了防止中毒事件再次發(fā)生,提出利用單片機系統(tǒng)進行有效的預(yù)防對策。所以怎樣防止燃氣中毒與爆炸已成為人們的迫切需要。
2天然氣泄露檢測報警系統(tǒng)的方案設(shè)計
2.1天然氣泄漏檢測報警系統(tǒng)簡介天然氣泄漏檢測報警系統(tǒng)不僅能夠檢測環(huán)境中的天然氣濃度,同時具有報警功能。儀器的最基本組成部分應(yīng)包括:氣體信號采集電路、模數(shù)轉(zhuǎn)換電路、單片機控制電路。 氣體信號采集電路一般由氣敏傳感器和模擬放大電路組成,將氣體信號轉(zhuǎn)化為模擬的電信號。模數(shù)轉(zhuǎn)換電路將從燃氣檢測電路送出的模擬信號轉(zhuǎn)換成單片機可識別的數(shù)字信號后送入單片機。單片機對該數(shù)字信號進行處理,并對處理后的數(shù)據(jù)進行分析,看是否大于或等于某個預(yù)設(shè)值(報警限),當檢測氣體濃度低于設(shè)定報警閾值的時候,數(shù)碼管顯示器僅僅顯示測得的可燃氣體濃度;當檢測氣體濃度超出設(shè)定報警閾值時給出聲光報警。同時報警裝置會通過語音模塊向戶主發(fā)送語音提醒以便讓戶主及時做出判斷處理。為使報警裝置更加完善,可以在聲音報警基礎(chǔ)上,加入閃光報警,變化的光信號可以引起用戶注意,彌補嘈雜環(huán)境中聲音報警的局限。以上是根據(jù)檢測報警器應(yīng)具備的功能,提出的整體設(shè)計思路。 氣敏傳感器及單片機是燃氣泄漏報警器的兩大核心,根據(jù)報警器功能的需要,選擇合適、精確、經(jīng)濟的氣敏傳感器及單片機芯片是至關(guān)重要的。傳感器的選型將在后面介紹。單片機作為硬件電路的核心,它的概況將在第三章詳述。 2.2氣體傳感器的選型氣體傳感器屬于氣敏傳感器。氣敏傳感器是用來檢測氣體類別、濃度和成分的傳感器。它將氣體種類及其濃度等有關(guān)的信息轉(zhuǎn)換成電信號,根據(jù)這些電信號的強弱便可獲得與待測氣體在環(huán)境中存在情況有關(guān)的信息。所以氣體傳感器是儀表的核心組成部分之一。由此可見,氣體傳感器的選型是非常重要的。 該設(shè)計的天然氣泄漏報警器主要應(yīng)用在廚房中,根據(jù)報警器檢測氣體種類的要求,一般選用接觸燃燒式氣敏傳感器或半導體氣敏傳感器。接觸燃燒式氣敏傳感器的探頭會出現(xiàn)阻緩及中毒的問題。阻緩是當在氣體與空氣含硫物質(zhì)混合的情況下,則有可能在無焰燃燒的同時,有些固態(tài)物質(zhì)附著在催化元件表面,阻塞載體的微孔,從而引起響應(yīng)緩慢反應(yīng)滯緩,靈敏度降低。雖然將阻緩的傳感器再放回新鮮空氣環(huán)境中有得到某種程度的恢復(fù)的可能,但是如果長期暴露在這樣的環(huán)境中,其靈敏度會不斷下降,導致該傳感器最終喪失檢測煙霧的能力。中毒是如果環(huán)境空氣中含有硅烷之類的物質(zhì)時,則傳感器將使催化元件產(chǎn)生不可逆轉(zhuǎn)的中毒,以致靈敏度很快就喪失。當懷疑檢測環(huán)境中存在這些物質(zhì)時,需要經(jīng)常對探頭進行標定。經(jīng)常對傳感器進行標定,是保證其準確性的必要的途徑。一般連續(xù)使用兩個月后應(yīng)對傳感器進行量程校準,這種經(jīng)常性對傳感器的維護需要專業(yè)人員和相應(yīng)設(shè)備,特此排除接觸式氣體傳感器,剩下只能選用半導體氣敏傳感器。半導體氣敏傳感器包括用氧化物半導體陶瓷材料作為敏感體制作的氣體傳感器以及用單晶半導體器件制作的氣體傳感器,它具有靈敏度高,響應(yīng)快、體積小、結(jié)構(gòu)簡單,使用方便、價格便宜等優(yōu)點,因而得到廣泛應(yīng)用。半導體氣敏傳感器的性能主要看其靈敏度、選擇性(抗干擾性)和穩(wěn)定性(使用壽命)。 經(jīng)過對比上述兩種氣敏傳感器的應(yīng)用特性,發(fā)現(xiàn)半導體氣敏傳感器的優(yōu)點更加突出:靈敏度高、響應(yīng)快、抗干擾性好、使用方便、價格便宜,且不會發(fā)生探頭阻緩及中毒現(xiàn)象,維護成本較低等。因此,本設(shè)計采用半導體氣敏傳感器作為報警器氣體信息采集部分的核心。而在眾多半導體氣敏傳感器中,本設(shè)計選用MQ-4型氣敏傳感器,這種型號的傳感器對天然氣有很高的靈敏度對乙醇的靈敏度很低,具有快速反應(yīng)快速恢復(fù)、使用壽命長、穩(wěn)定可靠等優(yōu)點。 2.3 天然氣泄露報警系統(tǒng)的整體設(shè)計方案
2.3.1天然氣泄漏報警器工作原理本論文中的天然氣泄漏報警器以STC89C52單片機為控制核心,通過MQ-4型電阻式半導體傳感器采集空氣中天然氣濃度。氣體傳感器MQ-4輸出的是模擬量,其作用是把探測到空氣中的天然氣的濃度轉(zhuǎn)換成對應(yīng)的電壓信號,電壓信號送入模數(shù)轉(zhuǎn)換芯片ADC0832轉(zhuǎn)換成數(shù)字信號,轉(zhuǎn)換成的數(shù)字信號送入STC89C52單片機,單片機對數(shù)據(jù)進行線性化處理,將數(shù)字化電壓信號轉(zhuǎn)化成為對應(yīng)的濃度值顯示到數(shù)碼管上,同時判斷氣體濃度值是否超出報警限,當檢測氣體濃度低于設(shè)定報警閾值的時候,數(shù)碼管顯示器僅僅顯示測得的可燃氣體濃度;當檢測氣體濃度超出設(shè)定報警閾值時給出聲光報警。 2.3.2天然氣泄漏報警器的結(jié)構(gòu)隨著信息技術(shù)的發(fā)展,家用電器趨向于智能化、網(wǎng)絡(luò)化、信息化。為了滿足家庭對可燃性易爆氣體安全性要求,同時為了符合時代發(fā)展的潮流,在傳統(tǒng)的天然氣泄漏檢測報警器的基礎(chǔ)上對其的硬件結(jié)構(gòu)上特進行如下設(shè)計: 天然氣泄露檢測報警系統(tǒng)結(jié)構(gòu)框圖如圖2.1所示,該系統(tǒng)以STC89C52單片機為核心,天然氣檢測報警系統(tǒng)要完成天然氣信號采集處理、顯示和控制報警3大功能?煞譃殡娫茨K、天然氣信號采集模塊、A/D轉(zhuǎn)換模塊、聲光報警模塊、數(shù)碼管顯示模塊和單片機控制模塊。STC89C52單片機是51系列單片機的一個成員,是8051單片機的升級版,和51系列單片機的指令和輸出管腳相兼容。氣體檢測模塊依靠MQ-4傳感器和ADC0832轉(zhuǎn)換芯片、顯示模塊依靠數(shù)碼管完成顯示功能。
圖2.1天然氣泄露檢測報警系統(tǒng)結(jié)構(gòu)框圖圖 2.3.3報警器各模塊的功能(1)電源模塊:提供電源、保護電路、電壓變換、穩(wěn)壓; (2)天然氣信號采集模塊:實時采集氣體濃度; (3)A/D轉(zhuǎn)換模塊:把采集的模擬信號轉(zhuǎn)變成數(shù)字信號傳送給單片機; (4)聲光報警模塊:當檢測到氣體泄漏值超過報警限時,發(fā)生報警; (5)顯示模塊:顯示氣體濃度和報警限; (6)鍵盤模塊:通過按動上下鍵調(diào)節(jié)報警限; (7)語音模塊:向戶主提供語音提醒;
3天然氣泄露報警的硬件部分設(shè)計3.1主控電路設(shè)計3.1.1STC89C52單片機簡介本設(shè)計采用STC89C52單片機作為系統(tǒng)的處理器, STC89C52是STC公司生產(chǎn)的一種低功耗、高性能CMOS 8位微控制器,具有8K在系統(tǒng)可編程Flash存儲器。 具有以下標準功能:8k字節(jié)Flash,512字節(jié)RAM,32 位I/O 口線,MAX810復(fù)位電路,3個16 位定時器/計數(shù)器,4個外部中斷,一個7向量4級中斷結(jié)構(gòu)(兼容傳統(tǒng)51的5向量2級中斷結(jié)構(gòu)),全雙工串行口?臻e模式下,CPU停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機一切工作停止,直到下一個中斷或硬件復(fù)位為止。最高運作頻率35MHz,6T/12T可選。 它有幾個主要組成部分:中央處理器、存儲器、并行I/O口、定時器/計數(shù)器。STC89C52構(gòu)成的單片機系統(tǒng)是具有簡單的結(jié)構(gòu)、低廉的價格、高效的微控系統(tǒng),具有較高的性價比。STC89C52的主要性能:首先它是8051單片機的升級版,具有6時鐘/機器周期和12時鐘/機器周期可以任意選擇的特點,其指令代碼完全兼容傳統(tǒng)的8051。在IO口方面,通用I/O口(32個),復(fù)位后:P1/P2/P3是準雙向口/弱上拉,P0口是漏極開路輸出,作為總線擴展用時,不必加上拉電阻,當作為I/O口用時,要加上拉電阻。具有EEPROM功能和看門狗功能,3個16位定時器/計數(shù)器(即定時器T0、T1、T2),4路外部中斷,下降沿中斷或低電平觸發(fā)電路。 3.1.2 STC89C52單片機的基本結(jié)構(gòu)STC89C52單片機的基本結(jié)構(gòu)如圖3.1所示。
                
圖3.1基本結(jié)構(gòu)圖 由圖可見,STC89C52單片機主要由以下部分組成: (1)CPU系統(tǒng):8位CPU和閃爍存儲器;時鐘電路;總線控制邏輯。 (2)存儲器系統(tǒng):8KB的程序存儲器(ROM/EPROM/Flash);512字節(jié)數(shù)據(jù)存儲器(RAM)。 (3)I/O口和其他動能單元:4個并行I/O口;3個16位定時/計數(shù)器;2個全雙工串行通信口;中斷系統(tǒng)(5個中斷源) 3.1.3 STC89C52RC單片機的引腳

圖3.2 STC89C52管腳示意圖 1.引腳的分類 (1)主電源及時鐘引腳:VCC、GND等。 (2)P0端口(P0.0~P0.7,39~32引腳)。P0口是一個漏極開路的8位雙向I/O口。作為輸出端口,每個引腳能驅(qū)動8個TTL負載,對端口P0寫入“1”時,可以作為高阻抗輸入。在訪問外部程序和數(shù)據(jù)存儲器時,P0口也可以提供低8位地址和8位數(shù)據(jù)的復(fù)用總線。此時,P0口內(nèi)部上拉電阻有效。在Flash ROM編程時,P0端口接收指令字節(jié);而在校驗程序時,則輸出指令字節(jié)。驗證時,要求接10K的上拉電阻。 (3)P1端口(P1.0~P1.7,1~8引腳):P1口是一個內(nèi)部自帶上拉的8位雙向I/O口。P1的輸出緩沖器可以直接驅(qū)動4個TTL的輸入。給端口寫“1”時,利用內(nèi)部上拉電阻可以把端口拉高。當把P1口用作輸入口來使用時,因為有內(nèi)部上拉電阻,那些被外部拉低的端口就會輸出電流。 表3.1 P1.0和P1.1引腳復(fù)用功能 | | | T2(定時器/計數(shù)器2外部計數(shù)輸入),時鐘輸出 | | T2EX(定時器/計數(shù)器2捕獲/重裝觸發(fā)和方向控制) |
(4)P2端口(P2.0~P2.7,21~28引腳):P2口是一個內(nèi)部帶上拉的8位雙向I/O端口。P2的輸出緩沖器也可以驅(qū)動4個TTL的輸入。當給端口寫入1時,利用內(nèi)部的上拉電阻可以把端口拉到高,此時P2口可以被用作輸入口。P2作為輸入口使用時,因為內(nèi)部存在上拉電阻,那些被外部器件拉低的引腳就會輸出電流。P2口也可以訪問外部存儲芯片,訪問16位的存儲器時,P2送出的是高8位的地址。在訪問8位地址的外部芯片存儲器時,P2口引腳上的內(nèi)容(就是專用寄存器的SFR區(qū)中的,P2口寄存器的內(nèi)容),在訪問的整個期間都不改變。 (5)P3端口(P3.0~P3.7,10~17引腳):P3是一個內(nèi)部帶上拉的8位雙向I/O端口。P3口的輸出緩沖器可直接驅(qū)動4個TTL輸入。給端口寫1時,利用內(nèi)部的上拉電阻把端口拉高,這時P3口就可以作為輸入口。當P3用做輸入口使用時,因為內(nèi)部有上拉電阻,那些被外部器件拉低的引腳就會輸入一個電流。 在對Flash ROM編程或程序校驗時,P3還接收一些控制信號,P1接收低8位地址。 RST(9引腳):復(fù)位輸入。當連續(xù)輸入兩個機器周期以上的高電平時才能有效,用來完成單片機的復(fù)位初始化操作?撮T狗計時完成后,RST引腳輸出96個晶振周期的高電平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以取消此功能。DISRTO位的默認狀態(tài)是復(fù)位高電平有效。 ALE(30引腳):地址鎖存控制信號的作用在訪問外部的存儲器時,鎖存低8位地址的脈沖。在Flash編程時,在此引腳(PROG)也用做編程輸入脈沖在一般情況下,ALE會以晶振頻率的1/6的頻率出脈沖,可以用來作為外部器件的定時器或 時鐘來使用(本設(shè)計就用到單片機的ALE管腳通過四分頻后為ADC0809提供時鐘)。  PSEN(29引腳):外部程序存儲器的選通管腳。當STC89C52執(zhí)行外部程序存儲器的程序代碼時,PSEN需要在每個機器周期內(nèi)需要被激活兩次,而訪問外部的數(shù)據(jù)存儲器時,PSEN就不需要被激活。
   EA/VPP(31引腳):訪問外部程序存儲器的控制管腳。為了使從外部程序存儲器的0000H到FFFFH讀取指令,EA必須接地。注意加密方式1時,EA將內(nèi)部鎖定位RESET。若是執(zhí)行內(nèi)部的程序指令,EA需要接VCC。
XTAL1(19引腳):振蕩器反相放大器和時鐘發(fā)生電路的輸入管腳。 XTAL2(18引腳):振蕩器反相放大器的輸出端。 振蕩器特性: XTAL1和XTAL2分別是反向放大器的輸入輸出端。該反向放大器可以被配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩都可以被采用。若采用的是外部時鐘源驅(qū)動器件,XTAL2則不能接。有余輸入至內(nèi)部時鐘信號要通過一個二分頻的觸發(fā)器,所以說對外部時鐘信號的脈寬沒有任何要求,但必須要保證脈沖的高低電平所要求的寬度。 P3口除作為一般I/O口外,還有其他一些復(fù)用功能,如表3.2所示: 表3.2 P3口管腳 | | | | | | | | | | | | | | | WR(外部數(shù)據(jù)存儲區(qū)間的寫入端口) | | RD(外部數(shù)據(jù)存儲區(qū)間的讀取端口) |
3.2電源電路設(shè)計如圖3.3,由USB接口提供電源,VCC接5V電壓,GND接地構(gòu)成電源模塊。

圖3.3 電源模塊 3.3可燃氣體信號采集部分如圖3.4,天然氣信號采集部分是由氣敏傳感器MQ-4、AD轉(zhuǎn)換器組成。

圖3.4 信號采集部分 3.4 MQ-4氣體傳感器MQ-4氣體傳感器所使用的氣敏材料是在清潔空氣中電導率較低的二氧化錫(SnO2)。當傳感器所處環(huán)境中存在可燃氣體時,傳感器的電導率隨空氣中可燃氣體濃度的增加而增大。使用簡單的電路即可將電導率的變化轉(zhuǎn)換為與該氣體濃度相對應(yīng)的輸出信號。 MQ-4氣體傳感器對液化氣、甲烷、丙烷、氫氣的靈敏度高,對天然氣和其它可燃蒸汽的檢測也很理想。這種傳感器可檢測多種可燃性氣體,是一款適合多種應(yīng)用的低成本傳感器。 表3.3 MQ-4材料組成
 
圖3.5 MQ-4基本電路 MQ-4基本電路中有如公式3.5:
(3.1)
濃度與電壓的關(guān)系函數(shù)如公式3.2:
濃度=(0.7-(10-10*ADdata)/1.4*14.43*ADdata)10^4 (ppm) (3.2)
3.5 A/D轉(zhuǎn)換部分3.5.1 A/D轉(zhuǎn)換電路MQ-4傳感器采集到的電壓信號接單片機P1.1。

圖3.6 A/D轉(zhuǎn)換部分 3.5.2 A/D 轉(zhuǎn)換芯片 ADC0832 ADC0832 是美國國家半導體公司生產(chǎn)的一種8 位分辨率、雙通道A/D轉(zhuǎn)換芯片。由于它體積小,兼容性,性價比高而深受單片機愛好者及企業(yè)歡迎,其目前已經(jīng)有很高的普及率。學習并使用ADC0832 可是使我們了解A/D轉(zhuǎn)換器的原理,有助于我們單片機技術(shù)水平的提高。 ADC0832 具有以下特點: 8位分辨率; 逐次逼近式A/D轉(zhuǎn)換器; 雙通道A/D轉(zhuǎn)換; 輸入輸出電平與TTL/CMOS相兼容; 5V電源供電時輸入電壓在0~5V之間; 工作頻率為250KHZ,轉(zhuǎn)換時間為32μS; 一般功耗僅為15mW; 8P、14P—DIP(雙列直插)、PICC 多種封裝; 商用級芯片溫寬為0°C to +70°C,工業(yè)級芯片溫寬為?40°C to +85°C。 如圖3.7,ADC0832 芯片頂視圖:    
圖3.7 ADC0832頂視圖 芯片接口說明: CS_片選使能,低電平芯片使能。 CH0 模擬輸入通道0,或作為IN+/-使用。 CH1 模擬輸入通道1,或作為IN+/-使用。 GND 芯片參考0 電位(地)。 DI 數(shù)據(jù)信號輸入,選擇通道控制。 DO 數(shù)據(jù)信號輸出,轉(zhuǎn)換數(shù)據(jù)輸出。 CLK 芯片時鐘輸入。 Vcc/REF 電源輸入及參考電壓輸入(復(fù)用)。 3.6 氣體結(jié)果測量計算
圖3.8 MQ-4氣敏的靈敏度特性 其中X軸表示外界可燃氣體的濃度,Y軸表示變化內(nèi)阻與固定電阻的值(Rs/Ro)。 Rs:元件在不同氣體,不同濃度下的電阻值。 Ro:元件在潔凈空氣中的電阻值。(Ro=14.43 K ) 3.7 聲光報警部分采集到的數(shù)字信號經(jīng)過單片機計算后,如果天然氣濃度達到報警器設(shè)置的臨界點時,單片機將控制蜂鳴器報警,同時LED亮。LED的正極與PNP三極管的集電極c相連,負極接2K電阻后接地。蜂鳴器采用PNP三極管來驅(qū)動,三極管發(fā)射極e接電源正極(+5V),基極接1K電阻后接單片機P3.4端,集電極接蜂鳴器,通過蜂鳴器后接地。

圖3.9 聲光報警電路 3.8 計數(shù)器譯碼顯示電路3.8.1 LED 的綜述在單片機的應(yīng)用系統(tǒng)中,為了便于人們觀察和監(jiān)視單片機的運行情況,常常需要用顯示器顯示運行的中間結(jié)果、狀態(tài)等信息,因此顯示器也是不可缺少的外部設(shè)備之一。LED顯示屏是八十年代后期在全球迅速發(fā)展起來的新型信息顯示媒體,顯示屏由幾萬到幾十萬個半導體發(fā)光二極管像素點均勻排列組成。利用不同的材料可以制造不同色彩的LED像素點。目前應(yīng)用最廣的是紅色、綠色、黃色。而藍色和純綠色LED的開發(fā)已經(jīng)達到了實用階段。LED顯示屏可以顯示變化的數(shù)字、文字、圖形圖像;不僅可以用于室內(nèi)環(huán)境還可以用于室外環(huán)境,具有投影儀、電視墻、液晶顯示屏無法比擬的優(yōu)點。 在短短的十來年中,LED點陣顯示屏就以亮度高、工作電壓低、功耗小、小型化、壽命長、耐沖擊和性能穩(wěn)定的優(yōu)點迅速成長為平板顯示的主流產(chǎn)品,在信息顯示領(lǐng)域得到了廣泛的應(yīng)用。LED的發(fā)展前景極為廣闊,目前正朝著更高亮度、更高耐氣候性、更高的發(fā)光密度、更高的發(fā)光均勻性、可靠性、全色化方向發(fā)展。 LED顯示屏的應(yīng)用涉及社會經(jīng)濟的許多領(lǐng)域,主要包括:證券交易、金融信息顯示。(2)機場航班動態(tài)信息顯示。(3)港口、車站旅客引導信息顯示。(4)體育場館信息顯示。(5)道路交通信息顯示。(6)調(diào)度指揮中心信息顯示。(7)郵政、電信、商場購物中心等服務(wù)領(lǐng)域的業(yè)務(wù)宣傳及信息顯示。(8)廣告媒體新產(chǎn)品等。 3.8.2 LED 的結(jié)構(gòu)LED數(shù)碼管顯示器是由發(fā)光的二極管顯示字段組成的。在單片機應(yīng)用系統(tǒng)中使用最多的就是七段LED數(shù)碼管,有共陰極和共陽極兩種。七段LED數(shù)碼管顯示器有8個發(fā)光二極管,其中從a~g管腳輸入顯示代碼,可顯示不同的數(shù)字或字符,Dp顯示小數(shù)點。共陰極LED數(shù)碼管顯示器的公共端為發(fā)光二極管陰極,通常接地,當發(fā)光二極管的陽極為高電平時,發(fā)光二極管點亮。共陽極的LED數(shù)碼管顯示器的公共端為發(fā)光二極管的陽極,通常接+5V電源,當發(fā)光二極管的陰極為低電平時,發(fā)光二極管點亮。 本設(shè)計的顯示采用LED數(shù)碼管動態(tài)掃描來顯示。1個3位的共陽極LED數(shù)碼管組成3位顯示上次測量的數(shù)據(jù)。單片機的P0口控制顯示字型,P2口控制顯示字位。顯示電路如圖3.10。

圖3.10 顯示電路 3.8.3 LED數(shù)碼管的顯示方法靜態(tài)顯示方式是指當顯示器顯示某一字符時,發(fā)光二極管的位選始終被選中。在這種顯示方式下,每一個LED數(shù)碼管顯示器都需要一個8位的輸出口進行控制。由于單片機本身提供的I/O口有限,實際使用中,通常通過擴展I/O口的形式解決輸出口數(shù)量不足的問題。靜態(tài)顯示主要的優(yōu)點是顯示穩(wěn)定,在發(fā)光二極管導通電流一定的情況下顯示器的亮度大,系統(tǒng)運行過程中,在需要更新顯示內(nèi)容時,CPU才去執(zhí)行顯示更新子程序,這樣既節(jié)約了CPU的時間,又提高了CPU的工作效率。其不足之處是占用硬件資源較多,每個LED數(shù)碼管需要獨占8條輸出線。隨著顯示器位數(shù)的增加,需要的I/O口線也將增加。 動態(tài)顯示方式是指一位一位地輪流點亮每位顯示器(稱為掃描),即每個數(shù)碼管的位選被輪流選中,多個數(shù)碼管公用一組段選,段選數(shù)據(jù)僅對位選選中的數(shù)碼管有效。對于每一位顯示器來說,每隔一段時間點亮一次。顯示器的亮度既與導通電流有關(guān),也與點亮時間和間隔時間的比例有關(guān)。通過調(diào)整電流和時間參數(shù),可以既保證亮度,又保證顯示。若顯示器的位數(shù)不大于8位,則顯示器的公共端只需一個8位I/O口進行動態(tài)掃描(稱為掃描口),控制每位顯示器所顯示的字形也需一個8位口(稱為段碼輸出)。 通過比較,我們可以發(fā)現(xiàn)LED靜態(tài)顯示更加適合本設(shè)計,所以采用此方法。 3.9 復(fù)位電路單片機在啟動時都需要復(fù)位,以使CPU及系統(tǒng)各部件處于確定的初始狀態(tài),并從初態(tài)開始工作。52系列單片機的復(fù)位信號是從RST引腳輸入到芯片內(nèi)的施密特觸發(fā)器中的。當系統(tǒng)處于正常工作狀態(tài)時,且振蕩器穩(wěn)定后,如果RST引腳上有一個高電平并維持2個機器周期(24個振蕩周期)以上,則CPU就可以響應(yīng)并將系統(tǒng)復(fù)位。

圖3.11 復(fù)位電路 3.10 最小系統(tǒng)及按鍵STC89C52單片機的最小系統(tǒng)由起振電路、復(fù)位電路、STC89C52芯片組成。單片機接+5V電源;晶體振蕩器頻率為12MHz(11.0592MHz),晶振的兩個引腳分別連接在單片機的XTAL1和XTAL2端,晶振的兩端再分別連接一個30pF電容后接地;復(fù)位電路經(jīng)電源正極(+5V)接10uF電容后接10k歐姆電阻接地,單片機復(fù)位端RST接在電容和電阻之間。 本次設(shè)計電路中加入4個按鍵,用于人為報警和設(shè)置報警的上限值。按鍵分別接單片機P1.4、P1.5、P1.6、P1.7端。S1是數(shù)字鍵加,S2是數(shù)字鍵減,S3是確認鍵,S4是模擬報警鍵,當按下S4時蜂鳴器報警,LED亮;再次按下S4用來取消報警。

圖3.12 最小系統(tǒng)及按鍵電路
4燃氣泄漏檢測報警系統(tǒng)的軟件部分4.1程序設(shè)計流程與編程程序流程圖如圖4.1所示,軟件設(shè)計包含AD采樣程序、數(shù)據(jù)處理程序、數(shù)碼管顯示程序、按鍵掃描程序、系統(tǒng)報警程序。
N
Y
圖4.1 程序設(shè)計流程圖 STC89C52單片機對ADC0832傳送的氣體濃度信號進行處理,將濃度值與報警限設(shè)定值相比較,判斷是否報警。對采集的數(shù)字信號進行處理和判斷,運用一定的算法計算出待檢測氣體成分及濃度并送到數(shù)碼管顯示器顯示出來。當檢測氣體濃度低于設(shè)定報警閥值的時候,數(shù)碼管顯示器僅僅顯示測得的可燃氣體濃度;當檢測氣體濃度超出設(shè)定報警閥值時給出聲光報警。 在程序設(shè)計上我采用的是C語言編程。C語言是一種編譯型程序設(shè)計語言,它兼顧了多種高級語言的特點,并具備匯編語言的功能。C語言擁有功能豐富的庫函數(shù),運算速度快、編譯效率高,有良好的可移植性,可以直接對系統(tǒng)硬件實現(xiàn)控制。C語言是一種結(jié)構(gòu)化的程序設(shè)計語言,它支持目前程序設(shè)計中被廣泛采用的由頂向下的結(jié)構(gòu)化程序設(shè)計。此外,C語言程序還具有完善的模塊程序結(jié)構(gòu),從而為軟件設(shè)計中采用的模塊化程序設(shè)計方法提供了有力的保障。因此,使用C語言進行程序設(shè)計已成為軟件開發(fā)的一個主流。用C語言來編寫目標系統(tǒng)軟件,會大大縮短開發(fā)周期,且明顯地增加軟件的可讀性,便于改進和擴充,從而研制出規(guī)模更大、性能更完備的系統(tǒng),用C語言進行單片機程序設(shè)計是單片機開發(fā)與應(yīng)用的必然趨勢。所以一個技術(shù)全面并涉足較大規(guī)模的軟件系統(tǒng)開發(fā)的單片機開發(fā)人員最好能夠掌握基本的C語言編程。編寫C 語言要使用到C 編譯軟件,以便把寫好的C 程序編譯為機器碼,這樣單片機才能執(zhí)行編寫好的程序。 4.2系統(tǒng)調(diào)試在系統(tǒng)調(diào)試階段我是分模塊分階段進行的。我先調(diào)試的是氣體濃度檢測部分,該部分就是把模擬量變成數(shù)字量,其原理和數(shù)字電壓表的設(shè)計是一樣的。所以該部分的系統(tǒng)調(diào)試在設(shè)計數(shù)字電壓表的原理基礎(chǔ)上進行調(diào)試的。然后調(diào)試數(shù)碼管顯示器,首先通過按鍵對報警閾值進行設(shè)置,最后把氣體濃度與按鍵值統(tǒng)籌在一起就組成了報警閾值調(diào)節(jié)部分。然后添加進語音報警、聲光報警。經(jīng)過不斷的實驗測試,形成了系統(tǒng)整體程序。 在設(shè)計好硬件的基礎(chǔ)上,下載程序。系統(tǒng)通上電,報警限顯示為18ppm,按動上下鍵可以進行調(diào)節(jié)。將打火機排出的氣體對準傳感器時,顯示屏上的氣體濃度立即不斷升高;當氣體濃度上升到報警限時,聲光報警器立即開啟,并開始語音提醒:鄧曉佳提醒您,存在安全隱患,請您注意。
結(jié) 論氣體檢測報警器可保障生產(chǎn)與生活的安全,避免火災(zāi)和爆炸事故以及煤氣中毒的發(fā)生,它是防火、防爆和安全生產(chǎn)所必備的儀器,具有廣闊的市場空間與發(fā)展前景。 本文設(shè)計的天然氣泄漏檢測報警系統(tǒng)采用性價比很高的STC89C52單片機作為主控芯片,利用其強大的處理能力和較豐富的外圍接口,合理選用I/O端口,較好地完成了天然氣泄漏檢測報警系統(tǒng)的設(shè)計。本論文設(shè)計的氣體報警器由氣體信號采集電路與單片機控制電路兩大部分構(gòu)成。 根據(jù)設(shè)計要求、使用環(huán)境、成本等因素,選用MQ-4型半導體電阻式氣體傳感器。該傳感器是對以烷類氣體為主的多種氣體有良好敏感特性的廣譜型半導體敏感器件。它的靈敏度適中,具有響應(yīng)與恢復(fù)特性好,長期工作穩(wěn)定性、重現(xiàn)性、不易受環(huán)境影響及抗溫濕度影響等優(yōu)點。 本系統(tǒng)能夠?qū)崿F(xiàn)對空氣中天然氣濃度的實時監(jiān)測并顯示,當檢測氣體濃度低于設(shè)定報警閾值的時候,數(shù)碼管顯示器僅僅顯示測得的可燃氣體濃度;當檢測氣體濃度超出設(shè)定報警閾值時給出聲光報警。該設(shè)計的天然氣泄漏檢測報警系統(tǒng)的綜合功能遠高于市面上的天然氣報警系統(tǒng),減少誤報關(guān)閥的困擾。本設(shè)計在電路方案采用模塊化設(shè)計,可以方便實現(xiàn)功能擴展,從而滿足特殊應(yīng)用領(lǐng)域中的功能和可靠性需求。在下一步的工作中,可將GPRS模塊的功能進行設(shè)計改善,以實現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)共享,也可以在本系統(tǒng)的基礎(chǔ)上加上手機遠程控制防火滅火報警燈功能。 在元件及調(diào)制方面,由于采用的電路使用了很多集成電路。外圍元件不是很多,所以調(diào)試不太難。電路中除集成電路外,對各電子元件也無特別要求。未來的時代是個物聯(lián)網(wǎng)時代,等我具備編寫電腦軟件的能力后,我會開發(fā)出對天然氣檢測報警的聯(lián)網(wǎng)控制,從而可以與消防隊進行數(shù)據(jù)共享。
附錄A 基于單片機的天然氣泄漏檢測系統(tǒng)原理圖   
附錄B 基于單片機的天然氣泄漏檢測系統(tǒng)結(jié)果圖

致謝通過這一階段的努力,我的畢業(yè)論文《基于單片機的天然氣泄漏報警系統(tǒng)設(shè)計》終于完成了,這意味著大學生活即將結(jié)束。在大學期間,我在學習上和思想上都受益良多,這除了自身的努力外,與各位老師、同學和朋友的關(guān)心、支持和鼓勵是分不開的。 嚴謹?shù)男oL校紀、良好的學術(shù)氛圍、動手動腦的求學理念、全面發(fā)展的育人思想以及老師們對我們的淳淳教誨,讓我在學到專業(yè)知識的同時也樹立了正確的人生觀、世界觀、價值觀,為我走向社會參加工作打下良好的基礎(chǔ)。 在本論文的寫作過程中,我的導師王鋼老師傾注了大量的心血,從選題到開題報告,從寫作提綱,到一遍又一遍地指出每稿中的具體問題,嚴格把關(guān),循循善誘。在王鋼老師的精心指導、嚴格要求以及熱情鼓勵下,我順利地完成畢業(yè)設(shè)計。在此,向王鋼老師致以崇高的敬意和由衷的感謝!同時我還要感謝在我學習期間給我極大關(guān)心和支持的各位老師以及關(guān)心我的同學和朋友。 即將走出校門,有太多說不出的感慨。感謝我在大學遇到的所有老師。感謝四年以來同窗好友對我的幫助。在此謹向大學所有老師和我的同窗好友們表示衷心的感謝!
單片機源程序如下:
- #include<reg52.h> //包含頭文件,一般情況不需要改動,
- //頭文件包含特殊功能寄存器的定義
- #include <intrins.h> //Keil library
- #include <math.h> //Keil library
- #include <stdio.h> //Keil library
- #define uchar unsigned char
- #define uint unsigned int
- #define ulong unsigned long
- #define K_MG_MV 120/66
- unsigned char code dispcode0[]={0xc0,0xf9,0xa4,0xb0,
- 0x99,0x92,0x82,0xf8,
- 0x80,0x90};//顯示段碼值0~9,不包含DP點
-
- uchar code table1[]={0x40,0x79,0x24,0x30,
- 0x19,0x12,0x02,0x78,
- 0x00,0x10};//顯示段碼值0~9,包含DP點
- uchar code table3[]={0x89,0xC7};//H L
- sbit bADcs=P1^2;
- sbit bADcl=P1^0;
- sbit bADda=P1^1;
- sbit LED0=P0^1;//定義第0個數(shù)碼管
- sbit LED1=P0^3;//定義第1個數(shù)碼管
- sbit LED2=P0^5;//定義第2個數(shù)碼管
- sbit LED3=P0^7;//定義第3個數(shù)碼管
-
- sbit alarm=P3^3;//蜂鳴器接口
- sbit key_up=P1^4;//數(shù)字鍵加+
- sbit key_down=P1^5;//數(shù)字鍵減-
- sbit key_ok=P1^6;//確認鍵
- sbit key_manual=P1^7;//模擬手動報警和解除報警按鍵
- bit SetUpFlag=0;
- bit set_manual=0;
- uchar key_manual_num=0;
- ulong gas_uplimit=150;
- /********定義變量*********/
- unsigned char data1;
- unsigned char count;
- unsigned char cycle;
- unsigned long data2;
- long Value,num=0;
- uchar temp,getdata;
- uchar jian,bai,shi,ge;
- uchar time_ms1;
-
-
- //微秒顯示函數(shù)
- void Delayus(uchar i)
- {
- while(--i);
- }
- //毫秒顯示函數(shù)
- void delay1ms(uint z)
- {
- uint x,y;
- for(x=z;x>0;x--)
- for(y=110;y>0;y--);
- }
- void ad(void) //ad采樣函數(shù)
- {
- uchar i;
- //data1=0;
- bADcs = 0;//當ADC0832未工作時其CS輸入端應(yīng)為高電平,此時芯片禁用.
- bADcl=0;
- bADda=1;
- bADcl=1;
- bADcl=0;//i down
- bADda=1;
- bADcl=1;
- bADcl=0; // 2 down
- bADda=0;
- bADcl=1;
- bADcl=0; // 3 down
- bADda=1;
- bADcl=1;
- bADcl=0; // 4 down
-
- for(i=8;i>0;i--)
- {
-
- data1<<=1;
- bADcl=0;
- bADcl=1;
- if(bADda==1) data1|=0x01;
- bADda=1;
- }
- bADcs=1;
-
- }
-
- void cal() //計算把采樣到的值轉(zhuǎn)換成實際電壓值
- {
- Value=data1*1.0/256*500;
- Value=Value*K_MG_MV;
- Value=Value-5;
- if(Value<0)Value=0;
- }
- void display_temp(int Value)
- {
- temp=(uchar)(Value/1000);//分離千分位
- jian=temp;
- temp=(uchar)((Value%1000)/100); //分離百分位
- bai=temp;
- temp=(uchar)((Value%100)/10);//分離十位
- shi=temp;
- temp=(uchar)(Value%10);//分離個位
- ge=temp;
-
- ////////////////////////////////////
- //////////////先顯示個位////////////
- LED0=1;
- LED1=0;
- LED2=0;
- LED3=0;
- P2=dispcode0[ge];
- delay1ms(5);
- /////////////接著顯示十位/////////
- LED0=0;
- LED1=1;
- LED2=0;
- LED3=0;
- P2=dispcode0[shi];
- delay1ms(5);
- //////////////////////////////////
- /////////////再接著顯示百位////
- LED0=0;
- LED1=0;
- LED2=1;
- LED3=0;
- P2=dispcode0[bai];
- delay1ms(5);
-
- ///////////////////////////
- if(key_up==0)
- {
- delay1ms(10);
- if(key_up==0)
- {
- SetUpFlag=1;
- gas_uplimit++;
- if(gas_uplimit==999)gas_uplimit=0;
-
- while(!key_up);//等待按鍵釋放
- }
-
- }
- //////////////////////////////////
- ///////////////////////////
- if(key_down==0)
- {
- delay1ms(10);
- if(key_down==0)
- {
-
- SetUpFlag=1;
- gas_uplimit--;
- if(gas_uplimit==0)gas_uplimit=999;
-
- while(!key_down);//等待按鍵釋放
- }
-
- }
- //////////////////////////////////
- ///////////////////////////
- if(key_ok==0)
- {
- delay1ms(10);
- if(key_ok==0)
- {
-
- SetUpFlag=0;
-
-
- while(!key_ok);//等待按鍵釋放
- }
-
- }
- //////////////////////////////////
- }
- void manual_simulate()
- {
- if(key_manual==0)
- {
- delay1ms(10);
- if(key_manual==0)
- { TR1=0;
- key_manual_num++;
-
- set_manual=1;
- alarm=0;
-
- if(key_manual_num==2)
- {
- alarm=1;
-
- TR1=1;
- set_manual=0;
- key_manual_num=0;
- }
- while(!key_manual);//等待按鍵釋放
- }
- }
- }
- void Alarm_Limit()
- {
- if(Value>=gas_uplimit)//判斷可燃氣體的濃度是否超出設(shè)定范圍,如超出LED亮并報警。
- {
- alarm=0;
- }
- else
- {
- alarm=1;
- }
- }
- void SysInit_two(void)//初始化定時器T0
- {
- TMOD=0x01; //定時器工作在方式1
- ET0=1;
- EA=1;
- TH0=(65536-50000)/256; //對TH0 TL0賦值
- TL0=(65536-50000)%256; //使定時器0.05秒中斷一次
- TR0=1; //開始計時
- }
- /*------------------------------------------------
- 主函數(shù)
- ------------------------------------------------*/
- void main()
- {
- SysInit_two();//初始化定時器T0
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼
以上圖文的Word格式文檔下載(內(nèi)容和本網(wǎng)頁上的一模一樣,方便保存):
基于單片機的天然氣泄漏檢測系統(tǒng)設(shè)計論文.doc
(1.01 MB, 下載次數(shù): 150)
2018-11-1 13:35 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|