單片機原理及接口技術(shù)課程設(shè)計(CO氣體濃度監(jiān)測儀設(shè)計)_第1頁
單片機原理及接口技術(shù)課程設(shè)計(CO氣體濃度監(jiān)測儀設(shè)計)_第2頁
單片機原理及接口技術(shù)課程設(shè)計(CO氣體濃度監(jiān)測儀設(shè)計)_第3頁
單片機原理及接口技術(shù)課程設(shè)計(CO氣體濃度監(jiān)測儀設(shè)計)_第4頁
單片機原理及接口技術(shù)課程設(shè)計(CO氣體濃度監(jiān)測儀設(shè)計)_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、單片機原理及接口技術(shù)單片機原理及接口技術(shù) 課程設(shè)計課程設(shè)計 題目:題目: COCO氣體濃度監(jiān)測儀設(shè)計氣體濃度監(jiān)測儀設(shè)計 院(系):院(系): 電氣工程學(xué)院電氣工程學(xué)院 專業(yè)班級:專業(yè)班級: 學(xué)學(xué) 號:號: 學(xué)生姓名:學(xué)生姓名: 指導(dǎo)教師:指導(dǎo)教師: (簽字) 起止時間:起止時間: 課程設(shè)計(論文)任務(wù)及評語課程設(shè)計(論文)任務(wù)及評語 院(系):電氣工程學(xué)院 教研室: 摘 要 本系統(tǒng)利用 51 單片機做核心控制模塊,利用 MQ-7 一氧化碳傳感器探測一 氧化碳。實時監(jiān)控多處一氧化碳濃度變化,如果某處一氧化碳濃度過高,系統(tǒng)將 發(fā)出聲音報警,并顯示報警傳感器號碼,提醒人們及時搶險。本系統(tǒng)可用于家庭

2、環(huán)境,也適用于工業(yè)環(huán)境。由于單片機成本低廉,自動控制功能比較強大,運行 學(xué) 號學(xué)生姓名專業(yè)班級 課程設(shè)計 (論文) 題目 CO氣體濃度監(jiān)測儀設(shè)計 課程設(shè)計(論文)任務(wù) 該監(jiān)測儀主要用于公共場所及某些車間空氣中 CO 濃度的監(jiān)測,檢測標(biāo)準(zhǔn)是:CO 濃度小時均值應(yīng)低于 3mg/m3,日均值應(yīng)低于 4mg/m3。. 設(shè)計任務(wù):設(shè)計任務(wù): 1. CPU 最小系統(tǒng)設(shè)計(包括 CPU 選擇,晶振電路,復(fù)位電路) 2. 傳感器選擇以及模擬量檢測電路設(shè)計 3. 人機對話接口電路設(shè)計(要求強弱電隔離) 4. .程序流程圖設(shè)計機程序清單編寫 技術(shù)參數(shù):技術(shù)參數(shù): 1CO 濃度小時均值應(yīng)低于 3mg/m3,日均值應(yīng)

3、低于 4mg/m3。 2工作電源 220V 設(shè)計要求設(shè)計要求: 1、分析系統(tǒng)功能,選擇合適的單片機及傳感器,模擬量輸入電路設(shè)計等; 2、應(yīng)用專業(yè)繪圖軟件繪制硬件電路圖和軟件流程圖; 3、按規(guī)定格式,撰寫、打印設(shè)計說明書一份,其中程序開發(fā)要有詳細的軟件設(shè)計 說明,詳細闡述系統(tǒng)的工作過程,字數(shù)應(yīng)在 4000 字以上。 進度計劃 第 1 天 查閱收集資料 第 2 天 總體設(shè)計方案的確定 第 3-4 天 CPU 最小系統(tǒng)設(shè)計 第 5 天 傳感器選擇以及模擬量檢測電路設(shè)計 第 6 天人機對話接口電路設(shè)計 第 7 天 程序流程圖設(shè)計 第 8 天 軟件編寫與調(diào)試 第 9 天 設(shè)計說明書完成 第 10 天 答

4、辯 指導(dǎo)教師評語 及成績 平時: 論文質(zhì)量: 答辯: 總成績: 指導(dǎo)教師簽字: 年 月 日 穩(wěn)定,環(huán)境適應(yīng)性好,所以本系統(tǒng)采用單片機做控制的核心元件。 MQ-7 一氧化碳傳感器對一氧化碳的靈敏度高;長壽命,低成本;簡單的驅(qū) 動電路即可。因此,很適用于家庭的一氧化碳檢測。 數(shù)碼管能清晰的顯示報警的房間號碼,即使在光線較暗時,所以選用數(shù)碼管 做顯示模塊。 關(guān)鍵詞:一氧化碳;單片機;檢測;報警 目 錄 目 錄 .IV 第 1 章 緒論 .1 1.1 CO 濃度監(jiān)測儀研究概況 .1 1.2 本文研究內(nèi)容 .1 第 2 章 CPU 最小系統(tǒng)設(shè)計.2 2.1 CO 氣體濃度監(jiān)測儀總體設(shè)計方案 .2 2.2

5、 CPU 的選擇 .3 2.3 時鐘電路設(shè)計 .6 2.4 復(fù)位電路設(shè)計 .7 2.5 單片機最小系統(tǒng)設(shè)計 .7 第 3 章 CO 濃度監(jiān)測儀輸入輸出電路設(shè)計.8 3.1 CO 傳感器的選擇 .8 3.2 運算放大器選擇 .10 3.3 A/D 轉(zhuǎn)換電路 .10 3.4 聲光報警電路 .11 3.5 顯示電路 .12 第 4 章 軟件設(shè)計 .13 4.1 流程圖設(shè)計 .13 4.2 程序編寫 .14 4.2.1 主程序.14 4.2.2 調(diào)零子程序.15 4.2.3 顯示子程序.16 4.2.4 報警子程序.19 4.2.5 中斷取值子程序.19 第 5 章 軟件仿真 .22 第 6 章 課程

6、設(shè)計總結(jié) .24 參考文獻 .25 附錄 硬件原理圖 .26 緒論 1.1 CO 濃度監(jiān)測儀研究概況 燃氣(人工煤氣、天然氣、液化石油氣)的普及,提高了生產(chǎn)效率、市民的生活質(zhì) 量,但在使用燃氣的過程中,因燃氣泄漏、廢氣等原因造成的燃氣爆炸、中毒等 意外事故時有發(fā)生,給人們的生命和財產(chǎn)安全帶來了嚴重的威脅,因此安全使用 燃氣一直是燃氣主管部門工作的重中之重。CO 濃度監(jiān)測儀能有效監(jiān)測環(huán)境中可燃 氣體或毒性氣體 CO 的濃度,一旦其濃度超出報警限定值,就能發(fā)出聲光報警信 號,并且能自動開啟排風(fēng)扇把燃氣排出室外,甚至能通過聯(lián)動裝置自動切斷燃氣 供應(yīng)防止燃氣繼續(xù)泄漏,起到安全防范的作用。但監(jiān)測儀選用得

7、是否合理,直接 關(guān)系到其功能的充分發(fā)揮。該設(shè)計所研究的 CO 濃度監(jiān)測儀正是應(yīng)這種要求而開 發(fā)的。 一氧化碳是一種無色、無味的氣體,它與血液中的血紅素結(jié)合的能力是氧的 240 倍,它與血紅素形成穩(wěn)定的絡(luò)合物,使血紅蛋白喪失了輸送氧氣的能力,從 而導(dǎo)致組織低氧癥,甚至死亡。一氧化碳濃度的高低是評價空氣質(zhì)量好壞的重要 指標(biāo)之一,也是工廠、煤礦井下是否發(fā)生自燃火災(zāi)的重要標(biāo)志之一。為了保證人 們身體健康和環(huán)境潔凈,世界各國都紛紛致力于防止空氣污染的產(chǎn)生 監(jiān)測儀是否靈敏可靠關(guān)系到人身財產(chǎn)安全,因此監(jiān)測儀屬于強制檢定的計量 器具。目前大多數(shù)報警器用戶都使用汽油或液化氣等超過以上高濃度的易揮發(fā)可 燃氣體對報

8、警器進行檢測, 若報警即判斷監(jiān)測儀正常。這樣做雖然省缺了購買可 燃氣體標(biāo)準(zhǔn)物質(zhì)的麻煩和費用, 但實際上達不到保證安全的目的, 從而形成重大 安全隱患, 有時還會造成報警器檢測元件中毒。如果使用標(biāo)準(zhǔn)氣體檢測報警器, 就能保證人身安全, 同時杜絕報警器檢測探頭中毒現(xiàn)象。 1.2 本文研究內(nèi)容 本文所設(shè)計的數(shù)字氣體報警器采用單片機 AT89C51,其價格便宜,易于產(chǎn)品 化。本設(shè)計能將置于測試環(huán)境中的氣體傳感器輸出的模擬電壓通過 A/D 轉(zhuǎn)換器送 入單片機 AT89C51 中進行處理并通過數(shù)碼管顯示,通過設(shè)置報警值,當(dāng)檢測到 的濃度達到或者超過設(shè)定值時,用單片機控制發(fā)光二極管發(fā)光報警,同時打開喇 叭發(fā)

9、出聲音報警,來達到報警的目的,并通過外接排風(fēng)扇與電磁閥對其進行程控, 以防事故的發(fā)生。而當(dāng)系統(tǒng)出現(xiàn)故障時,黃色 LED 亮啟,便于用戶及時對報警器進行維修。 系統(tǒng)以 MQ-7 氣體傳感器和 AT89C51 單片機為核心, 設(shè)計氣體泄漏報警器。 實現(xiàn): 1準(zhǔn)確測量周圍環(huán)境中的可燃性氣體、有毒有害氣體的泄漏; 2實現(xiàn)系統(tǒng)各個模塊的功能控制; 3實現(xiàn)單片機編程語言系統(tǒng)的控制及傳感器電路的控制。 4研究單片機各接口的作用及功能; 5了解 MQ-7 氣體傳感器的具體功能; 6實現(xiàn)對基本報警電路的控制。 第 2 章 CPU 最小系統(tǒng)設(shè)計 CO 氣體濃度監(jiān)測儀總體設(shè)計方案 單片機應(yīng)用系統(tǒng)的結(jié)構(gòu)分三個層次:

10、(1)單片機:通常指應(yīng)用系統(tǒng)主處理機,即所選擇的單片機器件。 (2)單片機系統(tǒng):指按照單片機的技術(shù)要求和嵌入對象的資源要求而構(gòu)成的基 本系統(tǒng),如時鐘電路、復(fù)位電路和擴展存儲器等與單片機構(gòu)成了單片機系統(tǒng)。 (3)單片機應(yīng)用系統(tǒng):能滿足嵌入對象要求的全部電路系統(tǒng)。在單片機系統(tǒng)的基 礎(chǔ)上加上面向?qū)ο蟮慕涌陔娐?,如前向通道、后向通道、人機交互通道(鍵盤、顯 示器、打印機等)和串行通行口(RS232)以及應(yīng)用程序等。 以此理解,一氧化碳報警器同樣具有單片機應(yīng)用系統(tǒng)的三個層次。其中以 AT89C51 單片機為核心構(gòu)成單片機系統(tǒng)。在此系統(tǒng)中,檢測信號進入單片機進行 運算處理。為了更好的理清設(shè)計思路,將整個系

11、統(tǒng)細分為三部分加以設(shè)計說明。 整個報警器由三個部分組成,分為三大模塊:濃度檢測模塊、主控模塊和報警模 塊。在本次設(shè)計中,使用的核心器件是單片機和一氧化碳傳感器。為了保重整個 系統(tǒng)可靠的運行,設(shè)計中必須明確三大部分的實際聯(lián)系:以單片機為中心,其他 各大模塊一一展開。其中,濃度檢測及顯示模塊所實現(xiàn)的功能是將房間中的一氧 化碳濃度值轉(zhuǎn)換成為單片機能夠處理的數(shù)字信號,并且濃度值顯示出來:主控模 塊以單片機為主,對其他模塊的運行進行控制;報警模塊是此系統(tǒng)的外部電路, 它的功能是實現(xiàn)報警。系統(tǒng)框圖如圖 2-1 所示。 2.1 CPU 的選擇 數(shù)據(jù)處理過程是主要由 AT89C51 單片機等芯片完成的。AT8

12、9C51 是一種帶 4K 字 節(jié)的閃爍可編程可擦除只讀存儲器的低電壓,高性能 CMOS8 位微處理器,俗稱單 片機。其中包括 128 字節(jié)內(nèi)部 RAM,32 個 I/O 口線,2 個 16 位定時/計數(shù)器,一 個 5 向量兩級中斷結(jié)構(gòu),一個全雙工串行通信口,片內(nèi)振蕩器及時鐘電路。同時, AT89C51 降至 0Hz 的靜態(tài)邏輯操作,并支持兩種可選的節(jié)電工作模式26??臻e 方式體制 CPU 的工作,但允許 RAM,定時/計數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù) 工作。掉電方式保存 RAM 中的內(nèi)容,但振蕩器體制工作并禁止其他所有不見工作 直到下一個硬件復(fù)位。/單片機的可擦除只讀存儲器可以反復(fù)擦除 100

13、 次。 該器件采用 ATMEL 高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的 MCS-51 指令集和輸出管腳相兼容。由于將多功能 8 位 CPU 和閃爍存儲器組合在單個芯 片中,ATMEL 的 AT89C51 是一種高效微控制器。AT89C51 單片機為很多嵌入 式控制系統(tǒng)提供了一種靈活性高且廉價的方案。AT89C51 單片機管腳圖如圖 2-2 所示 圖 2-2 AT89C51 單片機管腳圖 AD單片機轉(zhuǎn)換 顯示報警 聲音報警 傳感器 E A /V P 31 X 1 19 X 2 18 R E SE T 9 R D 17 W R 16 IN T 0 12 IN T 1 13 T 0 14 T

14、1 15 P1 0 1 P1 1 2 P1 2 3 P1 3 4 P1 4 5 P1 5 6 P1 6 7 P1 7 8 P0 0 39 P0 1 38 P0 2 37 P0 3 36 P0 4 35 P0 5 34 P0 6 33 P0 7 32 P2 0 21 P2 1 22 P2 2 23 P2 3 24 P2 4 25 P2 5 26 P2 6 27 P2 7 28 PS E N 29 A L E /P 30 T X D 11 R X D 10 U 1 89 C5 1 引腳功能說明如下: VCC:電源電壓 GND:地 P0口:P0口是一組8 位漏極開路型雙向I/O口,也即地址/數(shù)據(jù)總線

15、復(fù)用。 作為輸出口用時,每位能吸收電流的方式驅(qū)動8個TTL 邏輯門電路,對端口寫 “1”可作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存儲器或程序存儲器時,這組口 線分時轉(zhuǎn)換地址(低8 位)和數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部上拉電阻。在 Flash 編程時,P0口接受指令字節(jié),而在程序校驗時,輸出指令字節(jié),校驗時, 要求外接上拉電阻。 P1口:P1是一個帶內(nèi)部上拉電阻的8 位雙向I/O口,P1的輸出緩沖級可驅(qū)動 (吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻 把端口拉到高電平,此時可作輸入口。作為輸入口使用時,因為內(nèi)部存在上拉電 阻,某個引腳被外部信號拉低時會輸出一個電流(I

16、IL)。Flash 編程和程序校 驗期間,P1接受低8 位地址。 P2口:P2是一個帶有內(nèi)部上拉電阻的8 位雙向I/O 口,P2的輸出緩沖級可 驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉 電阻把端口拉到高電平,此時可作輸入口。作為輸入口使用時,因為內(nèi)部存在上 拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。在訪問外部程序 存儲器或16位四肢的外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX DPTR指令)時,P2口送出 高8 位地址數(shù)據(jù),在訪問8 位地址的外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX RI 指令) 時,P2口線上的內(nèi)容(也即特殊功能寄存器(SFR)區(qū)中R2 寄存器

17、的內(nèi)容),在 整個訪問期間不改變。Flash編程和程序校驗時,P2也接收高位地址和其他控制 信號。 P3口:P3是一個帶有內(nèi)部上拉電阻的8位雙向I/O口,P3的輸出緩沖級可驅(qū) 動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電 阻把端口拉到高電平,此時可作輸入口。作為輸入口使用時,因為內(nèi)部存在上拉 電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。P3 口還接收一些用 于Flash閃速存儲器編程和程序校驗的控制信號。 RST:復(fù)位輸入。當(dāng)振蕩器工作時,RST引腳出現(xiàn)兩個機器周期以上高電平 將使單片機復(fù)位。 ALE/PROG:當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時,AL

18、E(地址鎖存允許) 輸出脈沖用于鎖存地址的低8位字節(jié)。即使不訪問外部存儲器,ALE仍以時鐘振蕩 頻率的1/6輸出固定的正脈沖信號,因此它可對外輸出時鐘或用于定時目的。要 注意的是,每當(dāng)訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。對Flash存儲器編程 期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過對特殊功能寄存 器(SFR)區(qū)中的8EH單元D0位置位,可禁止ALE操作。該位置,只有一條MOVX和 MOVC指令A(yù)LE 才會被激活。此外,該引腳會被微弱拉高,單片機執(zhí)行外部程序時, 應(yīng)設(shè)置ALE無效。 PSEN:程序存儲允許輸出是外部程序存儲器的讀選通型號,當(dāng)89C51由外 部存儲器取指

19、令(或數(shù)據(jù))時,每個機器周期兩次PSEN有效,即輸出兩個脈沖。 在此期間,當(dāng)訪問外部數(shù)據(jù)存儲器,這兩次有效的PSEN信號不出現(xiàn)。 EA/VPP:外部訪問允許。欲使CPU僅訪問外部程序存儲器(地址為0000H FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程, 復(fù)位時內(nèi)部會鎖存EA端狀態(tài)。如EA端為高電平(接VCC端),CPU則執(zhí)行內(nèi)部程序 存儲器中的指令。Flash存儲器編程時,該引腳加上+12v的編程允許電源VPP,當(dāng) 然這必須是該器件使用12v編程電壓VPP。 XTAL1:振蕩器反相放大器及內(nèi)部時鐘發(fā)生器的輸入端。 XTAL2:振蕩器反相放大器的輸出端。89C

20、51 中有一個用于構(gòu)成內(nèi)部振蕩器 的高增益反相放大器,引腳 XTAL1 和 XTAL2 分別是該放大器的輸入端和輸出端。 這個放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起構(gòu)成自激振蕩器, 外接石英晶體或陶瓷諧振器及電容 C1、C2 接在放大器的反饋回路中構(gòu)成并聯(lián)振 蕩電路。對電容 C1、C2 雖沒有十分嚴格的要求,但電容容量的大小會輕微影響 振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程度及溫度穩(wěn)定性,如果使 用石英晶體,我們推薦電容使用 30Pf10Pf,而如使用陶瓷諧振器建議選擇 40Pf10Pf。用戶也可以采用外部時鐘。這種情況下,外部時鐘脈沖接到 XTAL 端, 即內(nèi)部時鐘發(fā)生

21、器的輸入端 XTAL 則懸空。 2.2 時鐘電路設(shè)計 單片機工作時,從取指令到譯碼再進行微操作,必須在時鐘信號控制下才能 有序地進行,時鐘電路就是為單片機工作提供基本時鐘的。單片機的時鐘信號通 常有兩種產(chǎn)生方式:內(nèi)部時鐘方式和外部時鐘方式。本課題采用內(nèi)部時鐘方式。 在單片機 XTAL1 和 XTAL2 引腳上跨接上一個晶振和兩個穩(wěn)頻電容,可以與 單片機片內(nèi)的電路構(gòu)成一個穩(wěn)定的自激振蕩器。晶振頻率取 12 MHz。外接電容 的作用是對振蕩器進行頻率微調(diào),使振蕩信號頻率與晶振頻率一致,同時起到穩(wěn) 定頻率的作用,本課題選用 33pF 的電容。 易知:本單片機最小系統(tǒng)的振蕩周期=1/(12MHz)=1

22、/12us,時鐘周期=1/6us, 機器周期=1us。 C 1 33p C 2 33p X 1 C RY ST A L 圖 2-3 時鐘電路原理圖 2.3 復(fù)位電路設(shè)計 無論是在單片機剛開始接上電源時,還是運行過程中發(fā)生故障都需要復(fù)位。 復(fù)位電路用于將單片機內(nèi)部各電路的狀態(tài)恢復(fù)到一個確定的初始值,并從這個狀 態(tài)開始工作。 單片機的復(fù)位條件:必須使其 RST 引腳上持續(xù)出現(xiàn)兩個(或以上)機器周期的 高電平。 單片機的復(fù)位形式:上電復(fù)位、按鍵復(fù)位。本課題采用按鍵復(fù)位。 在單片機啟動 0.1S 后,電容 C 兩端的電壓持續(xù)充電為 5V,這是時候 10K 電 阻兩端的電壓接近于 0V,RST 處于低電

23、平所以系統(tǒng)正常工作。當(dāng)按鍵按下的時 候,開關(guān)導(dǎo)通,這個時候電容兩端形成了一個回路,電容被短路,所以在按鍵按 下的這個過程中,電容開始釋放之前充的電量。隨著時間的推移,電容的電壓在 0.1S 內(nèi),從 5V 釋放到變?yōu)榱?1.5V,甚至更小。根據(jù)串聯(lián)電路電壓為各處之和, 這個時候 10K 電阻兩端的電壓為 3.5V,甚至更大,所以 RST 引腳又接收到高電 平。單片機系統(tǒng)自動復(fù)位。 圖 2-4 復(fù)位電路原理圖 2.4 單片機最小系統(tǒng)設(shè)計 單片機的最小系統(tǒng)是由組成單片機系統(tǒng)必需的一些元件構(gòu)成的,除了單片機 R 2 10 0 +5 V C 2 1u f B R 1 1k 之外,還需要包括電源供電電路、

24、時鐘電路、復(fù)位電路。 圖 2-5 單片機最小系統(tǒng)原理圖 第 3 章 CO 濃度監(jiān)測儀輸入輸出電路設(shè)計 3.1 CO 傳感器的選擇 選擇一氧化碳傳感器主要考慮以下的性能指標(biāo): (1)輸入和輸出之間成比例,直線性好、靈敏度高、分辨力強、測量范圍寬。 (2)滯后、漂移誤差小 (3)動態(tài)特性好 (4)功耗小 (5)時間老化特性優(yōu)良 (6)與被測體匹配良好,既不因接入傳感器而使得被測對象受到影響,受被測 量之外的影響小。 (7)體積小、重量輕、價格低廉。 (8)故障率低,易于校準(zhǔn)和維護。 (9)由于傳感元件的輸出信號一邊比較小,為了便于能夠驅(qū)動控制電路,在傳 感器電路中還應(yīng)該包括放大器。 E A /V

25、P 31 X 1 19 X 2 18 R E SE T 9 R D 17 W R 16 IN T 0 12 IN T 1 13 T 0 14 T 1 15 P1 0 1 P1 1 2 P1 2 3 P1 3 4 P1 4 5 P1 5 6 P1 6 7 P1 7 8 P0 0 39 P0 1 38 P0 2 37 P0 3 36 P0 4 35 P0 5 34 P0 6 33 P0 7 32 P2 0 21 P2 1 22 P2 2 23 P2 3 24 P2 4 25 P2 5 26 P2 6 27 P2 7 28 PS E N 29 A L E /P 30 T X D 11 R X D 1

26、0 U 1 89 C5 1 C 1 33 p C 2 33 p X 1 C RY ST A L R 2 10 0 +5 V C 2 1u f B R 1 1k +5 V 鑒于以上選擇要點,本文中用到的傳感器必須具備良好的測量效果、功耗小、 動態(tài)特性良好和體積小、重量輕、價格低廉等幾個主要特性。為此我們選擇了 MQ-7 系列傳感器。 半導(dǎo)體一氧化碳傳感器 MQ-7 所使用的氣敏材料是在清潔空氣中電導(dǎo)率較低 的二氧化錫(SnO2)。采用高低溫循環(huán)檢測方式低溫(1.5V 加熱)檢測一氧化碳,傳 感器的電導(dǎo)率隨空氣中一氧化碳氣體濃度增加而增大,高溫(5.0V 加熱)清洗低溫 時吸附的雜散氣體。使用簡單

27、的電路即可將電導(dǎo)率的變化,轉(zhuǎn)換為與該氣體濃度 相對應(yīng)的輸出信號。MQ-7 氣體傳感器對一氧化碳的靈敏度高,這種傳感器可檢 測多種含一氧化碳的氣體,是一款適合多種應(yīng)用的低成本傳感器。 主要特點及應(yīng)用: 對一氧化碳的高靈敏度。 長壽命,低成本。 簡單的驅(qū)動電路即可 家用氣體泄漏報警器 工業(yè)用一氧化碳報警器 便攜式氣體檢測器 MQ-7 氣敏元件的結(jié)構(gòu)和外形如圖 3-1 所示,由微型 Al2O3 陶瓷管、SnO2 敏感層, 測量電極和加熱器構(gòu)成的敏感元件固定在塑料或不銹鋼制成的腔體內(nèi),為了改善 傳感器的選擇性,傳感器氣室用活性炭過濾層與外界隔開。加熱器為氣敏元件提 供了必要的工作條件。封裝好的氣敏元件

28、有 6 只針狀管腳,其中 4 個用于信號取 出,2 個用于提供加熱電流。 圖 3-1 MQ-7 實物圖 3.2 運算放大器選擇 由于氣體傳感器輸出的電壓值過低,無法直接使用 A/D 讀取,必須要加入放 大電路,對電壓放大然后再經(jīng)過 A/D 讀取。在此,選擇 LM358 作為運算放大器。 LM358 內(nèi)部包括有兩個獨立的、高增益、內(nèi)部頻率補償?shù)碾p運算放大器,適合于 電源電壓范圍很寬的單電源使用,也適用于雙電源工作模式,在推薦的工作條件 下,電源電流與電源電壓無關(guān)。它的使用范圍包括傳感放大器、直流增益模塊和 其他所有可用單電源供電的使用運算放大器的場合。 LM358具備以下特性:內(nèi)部頻率補償;直流

29、電壓增益高(約100dB);單位增益 頻帶寬(約1MHz);電源電壓范圍寬:單電源(3-30V)、雙電源(1.5-15V) ;低功 耗電流,適合于電池供電;低輸入偏流,低輸入失調(diào)電壓和失調(diào)電流;共模輸入 電壓范圍寬,包括接地;差模輸入電壓范圍寬,等于電源電壓范圍;輸出電壓擺 幅大(0 至 Vcc-1.5V) 。 圖 3-2 運算放大器電路原理圖 3.3 A/D 轉(zhuǎn)換電路 為了方便與 AT89C5 單片機的鏈接,本系統(tǒng)采用 AD0809 模數(shù)轉(zhuǎn)換芯片對采集 到的氣體信息進行數(shù)模轉(zhuǎn)換。其分辨率為 8 位,不必進行零點和滿度調(diào)整,且具 有高阻抗斬波穩(wěn)定比較器,8 個通道的多路開關(guān)可直接存取 8 個單

30、端模擬信號中 的一個。利用單片機啟動 AD0809 轉(zhuǎn)換器,轉(zhuǎn)換結(jié)束后再由 AD0809 向 AT89C51 發(fā) 出中斷請求信號, CPU 響應(yīng)中斷請求。通過對譯碼器的讀操作,讀取轉(zhuǎn)換結(jié)果并 送到被測量的響應(yīng)存儲區(qū)。再重新選擇被測量,并再次啟動 AD0809 轉(zhuǎn)換器轉(zhuǎn)換 后中斷返回。AD0809 與單片機 AT89C51 連線線路如圖 3-3 所示。 圖 3-3 AD0809 與單片機 AT89C51 連線線路 3.4 聲光報警電路 系統(tǒng)的聲,光報警電路由發(fā)光二極管和低電壓蜂鳴器構(gòu)成,分別由 PIC 單片 機的 2 個端口控制。發(fā)光二極管 LED 具有體積小,抗沖擊和抗震性能好,可靠性 高,壽

31、命長,工作電壓低,功耗小,響應(yīng)速度快等優(yōu)點,常用于顯示系統(tǒng)的工作 狀態(tài),有益于控制系統(tǒng)的設(shè)計和維護。當(dāng)該部分工作時,整機的工作電流將增加 為未報警狀態(tài)時的電流的數(shù)倍,消耗的功率會比較大,因此采用了分時供電的方 法,通過單片機控制該部分電源的通斷,即質(zhì)量濃度達到報警時才給其供電;另 外,用單片機輸出的周期脈沖報警信號控制振蕩器的啟停,用振蕩器輸出信號控 制蜂鳴器和發(fā)光二極管,振蕩器可以用 TTL 門電路構(gòu)成的多諧振蕩器。采用這 2 種方法可降低該部分的電路的功耗。設(shè)計中,LED 發(fā)光二極管的工作電流為 5- 20mA,最大不超過 50mA,否則會燒壞器件。為了獲得良好的發(fā)光效果,LED 工作 電

32、流控制在 10-15mA 較為合理。在圖 3-4 中所示電路中,D 口得 RD4,RD5,RD6,RD7,接聲,光報警電路,其中 D 口的 RD5-RD7 分別接質(zhì)量濃度 過高,相等,過低的 LED。當(dāng)氣體檢測儀檢測質(zhì)量濃度低于設(shè)定值時,綠燈亮; 當(dāng)氣體質(zhì)量濃度達到某一定值時,黃燈亮;當(dāng)高于設(shè)定值時,紅燈亮并發(fā)出警報 信號。 圖 3-4 聲光報警電路原理圖 3.5 顯示電路 在該設(shè)計中, LED 顯示器的顯示方法采用動態(tài)顯示。 LED 動態(tài)顯示的基 本做法在于分時輪流選通數(shù)碼管的公共端,使得各數(shù)碼管輪流導(dǎo)通,在選通相 應(yīng)的 LED 后,即在顯示字段上得到顯示字形碼。這種方式不但能提高數(shù)碼管 的

33、發(fā)光效率,并且由于各個數(shù)碼管的字段線是并聯(lián)使用的,從而大大簡化了硬 件線路。本設(shè)計中處理結(jié)果采用 4 位 LED 顯示,首次顯示氣體類別,后 3 位顯示氣體濃度。逐位輪流點亮各個LED,每一位保持 1ms,在 10-20ms 之 內(nèi)再一次點亮,重復(fù)不止。這樣利用人的視覺停留,好像4 位 LED 同時點 亮一樣。 圖 3-5 顯示電路原理圖 第 4 章 軟件設(shè)計 4.1 流程圖設(shè)計 圖4-1 軟件流程圖 4.2 程序編寫 4.2.1 主程序 整個程序一共使用了兩個中斷,一個外部中斷即 INT0 中斷,一個定時/計數(shù)器 中斷即 IT0 中斷.這兩個中斷各有其作用,INT0 中斷是用來判斷 A/D

34、轉(zhuǎn)換器 ADC0809 對模擬信號的轉(zhuǎn)換是否完成,當(dāng) A/D 轉(zhuǎn)換結(jié)束后,ADC0809 發(fā)出結(jié)束 EOC(高電平)信號,該信號可供單片機查詢,也可反相后作為向單片機發(fā)出中斷信號, 而本設(shè)計正是用的這個方法,使得程序進入中斷取值程序.而程序中所用到的 IT0 中斷,是為產(chǎn)生一個周期為 2S 的方波而設(shè)計的,其作用是為看門狗產(chǎn)生喂狗子信號. 具體程序如下: ORG 00H JMP START ;主程序入口地址 ORG 03H JMP INTO ;外中斷 INTO 入口 ORG 0BH JMP ITOP ; 定時器 0 中斷入口 ORG 0100H START: MOV IE,#B ;INT0 中

35、斷使能 MOV IP,#B ;INT0 中斷優(yōu)先 MOV TCON,#B ;設(shè)置 INT0 為電平觸發(fā) MOV SCON,#B ;串行口發(fā)送,接收標(biāo)志位請 0 MOV SP,#60H ;設(shè)堆棧指針 MOV TMOD,#01H ;設(shè)置 T0 為方式 1 CALL PT0M0 HERE: AJMP HERE ;自身跳轉(zhuǎn) PT0M0: MOV TL0,#0CH ;T0 中斷服務(wù)程序,T0 重新置初值 MOV TH0,#0FEH SETB TR0 ;啟動 T0 SETB ET0 ;允許 T0 中斷 SETB EA ;CPU 開中斷 RET ITOP: MOV TL0,#0CH ;T0 中斷服務(wù)程序,T

36、0 置初值 MOV TH0,0FEH CPL P1.0 ;P1.0 狀態(tài)取反 RETI ACALL LED ;調(diào)用 LED 自檢子程序 MOV 33H,#00H ;設(shè)置中斷完成標(biāo)志為 0 MOV DPTR,#0FEFFH ;ADC0809 的端口地址 MOVX DPTR,A ;使 BUS 為高阻抗,令 ADC0809 開始轉(zhuǎn)換 WAIT:MOV A,33H ;等待 A/D 轉(zhuǎn)換完成信號 JNZ INTOK JMP WAIT ;未完成則跳回等待 INTOK: MOV A,32H ;將最新的濃度值存入累加器中, (若 A/D 未工作,則 A=0) JNZ L1 MOV A,30H JMP L2 L

37、1: MOV 30H,31H MOV A,31H ;將新濃度載入累加器 L2: CALL BCD ;調(diào)用 BCD 碼調(diào)整程序 CALL DISP ;顯示當(dāng)前濃度 CALL ADZERO ;調(diào)用零點調(diào)整子程序 CALL ALARM ;調(diào)用判斷報警程序 CALL BCD CALL DISP ;調(diào)用顯示子程序 CLR A ;清除累加器值 JMP START ;返回 在主程序通過對 33H 中數(shù)值的判斷斷定 A/D 是否轉(zhuǎn)換完成,當(dāng) 33H 中為 1 時,轉(zhuǎn)換完成,程序調(diào)用調(diào)零、報警、顯示模塊對輸入數(shù)據(jù)進行處理。 4.2.2 調(diào)零子程序 由于未知問題,可能造成送入單片機中顯示的模擬電壓量與真實電壓存在

38、區(qū) 別,這種誤差可以通過在中斷處理中對 A/D 轉(zhuǎn)換的數(shù)值加上一個調(diào)整值來解決。 這樣,我們就能根據(jù)實際情況來對報警器輸出的數(shù)值進行控制,使其記數(shù)更加精 確,使用更方便。我們可以利用對端口的電平高低來判斷是否需要進行調(diào)零處理, 故可將按鍵開關(guān)接于端口 P2.2.若開關(guān)按下,則說明有調(diào)零需要,于是進入調(diào)零處理 程序;若開關(guān)沒有按下,則說明沒有調(diào)零需要,系統(tǒng)進入下一步.通過設(shè)置一個按鍵,既 可保證程序順利進行,又方便用戶使用.具體程序如下: ADZERO: CALL DELAY JB P2.2,JMP1 ;判斷調(diào)零按鈕是否按下,沒按則跳 JMP1 . JMP1: RET 通過對 P2.2 位的判斷

39、來分辨是否有調(diào)零請求,若有則跳入調(diào)零模式,調(diào)零模 式中程序如下: LOOP1:CALL DELAY JNB P2.2,$ ;消除抖動延時 MOV A,40H ;將調(diào)零預(yù)設(shè)值 40H 送入 CLR C ;清除進位標(biāo)志 SUBB A,#01H ;調(diào)零值減 1 JNC LOOP2 ;未借位則跳 LOOP2 MOV A,#05H ;有借位則重設(shè)調(diào)零值為 5 LOOP2:MOV 40H,A ;將調(diào)零值送回 40H 保存 MOV A,R3 ;將當(dāng)前濃度值送入 A JZ XEND DEC A ;當(dāng)前濃度值減 1(響應(yīng)調(diào)整變化) XEND1 :MOV 30H,A ;送回 30H 保存 MOV 31H,A ;送

40、回 31H 保存 CALL BCD ;調(diào)用 BCD 碼調(diào)整 CALL DISP ;調(diào)用顯示子程序 JMP LOOP XEND: MOV A,#63H JMP XEND1 進入調(diào)零模式后,若有按鍵則,LED 數(shù)碼管示數(shù)響應(yīng)按鍵變化。若 3 秒無任 何按鍵,則退出調(diào)零模式返回主程序。 4.2.3 顯示子程序 因為通過 A/D 轉(zhuǎn)換進入單片機 8051 的濃度值以十六進制存在,為了讓 LED 顯示需要轉(zhuǎn)換為 BCD 碼,其 BCD 碼轉(zhuǎn)換程序如下: BCD:MOV 55H,#00H ;存放 BCD 轉(zhuǎn)換中的百位數(shù) MOV 56H,#00H ;存放 BCD 轉(zhuǎn)換中的十位數(shù) CLR C ;清除進位標(biāo)志為

41、下面的 SUBB 準(zhǔn)備 MOV R2,#00H ;清除 R2 CHAN:SUBB A,#64H ;減 100 JC CHAN1 ;不能減,轉(zhuǎn) INC R1 ;百位值 JMP CHAN ;循環(huán)判斷百位 CHAN1: ADD A,#64H ;還原百位數(shù) CLR C ;清除進位標(biāo)志為下面的 SUBB 準(zhǔn)備 CHAN2: SUBB A,#0AH ;減 10 JC CHAN3 ;不夠減,跳 INC R2 ;夠減十位加 1 JMP CHAN2 ;重復(fù)減 10 CHAN3: ADD A,#0AH ;還原十位數(shù) MOV 60H,R2 ;把十位數(shù)放 60H 中 MOV 61H,A ;把個位數(shù)放 61H 中 RE

42、T 這樣把轉(zhuǎn)換成的 BCD 碼,個位存于 61H 中,十位存入 60H 中,再編寫顯示 模塊如下: DISP: MOV R7,#03H MOV R0,#60H LED1: MOV A,R0 MOV DPTR,#TABLE LED2: MOVC A,A+DPTR MOV SBUF,A JNB TI,$ CLR TI INC R0 DJNZ R7,LED1 RET 將數(shù)值送入到 LED 顯示 74LS164 驅(qū)動數(shù)碼管的過程: 在單片機應(yīng)用系統(tǒng)中,顯示器顯示常用兩種方法:靜態(tài)顯示和動態(tài)掃描顯示。 所謂靜態(tài)顯示,就是每一個顯示器都要占用單獨的具有鎖存功能的 I/O 接口用于 筆劃段字形代碼。這樣單片

43、機只要把要顯示的字形代碼發(fā)送到接口電路,就不用 管它了,直到要顯示新的數(shù)據(jù)時,再發(fā)送新的字形碼,因此,使用這種方法單片 機中 CPU 的開銷小??梢蕴峁﹩为氭i存的 I/O 接口電路很多,這里以常用的串并 轉(zhuǎn)換電路 74LS164 為例,介紹一種常用靜態(tài)顯示電路,以使大家對靜態(tài)顯示有一 定的了解。 MCS-51 單片機串行口方式 0 為移位寄存器方式,外接 3 片 74LS164 作為 3 位 LED 顯示器的靜態(tài)顯示接口,把 8031 的 RXD 作為數(shù)據(jù)輸出線,TXD 作為移位 時鐘脈沖。74LS164 為 TTL 單向 8 位移位寄存器,可實現(xiàn)串行輸入,并行輸出。 其中 A、B(第 1、2

44、 腳)為串行數(shù)據(jù)輸入端,2 個引腳按邏輯與運算規(guī)律輸入信 號,共一個輸入信號時可并接。T(第 8 腳)為時鐘輸入端,可連接到串行口的 TXD 端。每一個時鐘信號的上升沿加到 T 端時,移位寄存器移一位,8 個時鐘脈 沖過后,8 位二進制數(shù)全部移入 74LS164 中。R(第 9 腳)為復(fù)位端,當(dāng) R=0 時, 移位寄存器各位復(fù) 0,只有當(dāng) R=1 時,時鐘脈沖才起作用。Q1Q8(第 3-6 和 10-13 引腳)并行輸出端分別接 LED 顯示器的 hga 各段對應(yīng)的引腳上。在給出 了 8 個脈沖后,最先進入 74LS164 的第一個數(shù)據(jù)到達了最高位,然后再來一個脈 沖會有什么發(fā)生呢?再來一個脈

45、沖,第一個脈沖就會從最高位移出,搞清了這一 點,下面讓我們來看電路,3 片 7LS164 首尾相串,而時鐘端則接在一起,這樣, 當(dāng)輸入 8 個脈沖時,從單片機 RXD 端輸出的數(shù)據(jù)就進入到了第一片 74LS164 中 了,而當(dāng)?shù)诙€ 8 個脈沖到來后,這個數(shù)據(jù)就進入了第二片 74LS164,而新的數(shù) 據(jù)則進入了第一片 74LS164,這樣,當(dāng)?shù)诹鶄€ 8 個脈沖完成后,首次送出的數(shù)據(jù) 被送到了最左面的 164 中,其他數(shù)據(jù)依次出現(xiàn)在第一、二、三片 74LS164 中。 由于本設(shè)計采用的是機械按鍵,與地線想連,按鍵按下,輸入為低電平,釋 放按鍵則輸入為高電平。實際上,機械式按鍵的落片存在著輕微的彈

46、跳現(xiàn)象其時 間由操作員按鍵的動作所確定,為了確保 CPU 對按鍵的一次閉合僅做一次處理, 必須去除抖動,一般通過調(diào)用子程序延時來解決,在鍵的穩(wěn)定閉合或釋放時才讀 出鍵的狀態(tài),具體程序如下: DELAY: MOVR 5,#60 設(shè)定 30 毫秒 D1: MOV R6,#248 ;設(shè)定 0.5 毫秒 DJNZ R6,$ DJNZ R5,D1 RET 因為石英晶體為 12MHZ,一個機器周期為 1 微秒,這樣如上程序可達到延時 30 毫秒的目的。 4.2.4 報警子程序 本設(shè)計采用了聲光報警,當(dāng)探測器探測的濃度超過報警設(shè)定值時就會同時產(chǎn)生 音樂報警和燈光報警,此時紅燈亮啟,喇叭發(fā)出音樂,而正常時,喇

47、叭關(guān)閉,紅燈關(guān)閉, 而顯示正常的綠色 LED 亮啟,本設(shè)計為了安全起見,還設(shè)置了事故處理裝置,即出現(xiàn) 危險使,探測器除了報警外,還會使排氣扇的閥門打開,對室內(nèi)進行排氣,以免產(chǎn)生氣 體爆炸或是中毒.具體程序如下 ALARM: MOV A,30H ;將當(dāng)前濃度值送如累加器 CLR C ;清除進位標(biāo)志 SUBB A,50H ;與預(yù)警值進行判斷 JNC GOOD1 ;若無借位,則當(dāng)前濃度值高于或 者等于預(yù)警值,跳 GOOD1 報警 SETB P1.6 ;關(guān)閉聲光報警 SETB P1.7 CLR P2.3 ;關(guān)閉排氣閥門 SETB P1.5 ;關(guān)閉黃色 LED CLR P1.4 ;打開綠色 LED(顯示

48、正常) RET GOOD1: CLR P1.6 ;打開聲光報警(危險報警) CLR P1.7 CLR P2.3 ;打開排氣閥門 SETB P1.5 ;關(guān)閉黃色 LED SETB P1.4 ;關(guān)閉綠色 LED(顯示不正常? RET 4.2.5 中斷取值子程序 從硬件電路圖可以看出,A/D0809 的 INTR 端通過反相器與單片機的外部中 斷 INT0 相連,由 A/D0809 的管腳功能可知,當(dāng) A/D 開始轉(zhuǎn)換送入的模擬電壓時, INTR 端為低電平,轉(zhuǎn)換完成后,INTR 端變成高電平,通過反相器變成低電平使 單片機 89C51 產(chǎn)生外部中斷,進入中斷處理程序: ;* * * * * * *

49、 * * * * * * * * * * INTO: PUSH ACC ;將累加器值壓入堆棧保存 PUSH PSW ;將 PSW 值壓入堆棧保存 MOVX A,DPTR ;將 A/D 轉(zhuǎn)換好的值送入累 加器 MOV 32H,A ;將 A/D 讀得的值存入 32H 保存 CLR C SUBB A,51H ;判斷獲得的電壓是否小于 1V(50) JNC OK1 MOV 32H,#00H ;當(dāng)前 A/D 轉(zhuǎn)換的電壓小于 1V, 則 A/D 轉(zhuǎn)換得的示數(shù)為 00 JMP EMP1 OK1: MOV A,32H CALL ADJUST ;調(diào)用 ADJUST 將其調(diào)整為濃度 對應(yīng)的 16 進制 CALL

50、ADDD ;調(diào)用 ADDD 將其與調(diào)零預(yù)設(shè)值 相加,得到調(diào)整后的 16 進制 MOV 31H,A ;將調(diào)整后的值送入 31H 保存 EMP1: MOV IE,#B ;關(guān)閉 INT0 中斷使能,關(guān)閉中斷 POP PSW ;至堆棧取回 PSW 值 POP ACC ;至堆棧取回 ACC 值 MOV 33H,#01H ;中斷完成,設(shè)置完成標(biāo)記 33H 為 1 RETI ;* * * * * * * * * * * * * * * * * ; 調(diào)整相加子程序 ;* * * * * * * * * * * * * * * * * ADJUST: CLR C SUBB A,#32H ;將 A/D 轉(zhuǎn)換的值減 50 再除 10 乘 5 可得當(dāng)前濃度的 16 進制值 MOV B,#0AH DIV AB MOV B,#05H MUL AB RET ADDD: ADD A,40H TABLE: DB 0C0H,0F9H,0A4H,0B0H,99H DB 92H, 82H, 0F8H,80H, 90H END 在中斷處理過程中,因為 A/D0809 在模擬電壓為 15V 時送入單片機的數(shù)值 為 50250,為了使示數(shù)在 099 間變化,編寫數(shù)值轉(zhuǎn)換程序如下: ADJUST: CLR C SUBB A,#32H ;將 A/D 轉(zhuǎn)換的值減 50 再除 10 乘 5 可得當(dāng)前濃度 的 16

溫馨提示

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

評論

0/150

提交評論