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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

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

13、 次。 該器件采用 ATMEL 高密度非易失存儲器制造技術制造,與工業(yè)標準的 MCS-51 指令集和輸出管腳相兼容。由于將多功能 8 位 CPU 和閃爍存儲器組合在單個芯 片中,ATMEL 的 AT89C51 是一種高效微控制器。AT89C51 單片機為很多嵌入 式控制系統(tǒng)提供了一種靈活性高且廉價的方案。AT89C51 單片機管腳圖如圖 2-2 所示 圖 2-2 AT89C51 單片機管腳圖 AD單片機轉換 顯示報警 聲音報警 傳感器 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口,也即地址/數據總線

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

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

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

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

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

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

21、器的輸入端 XTAL 則懸空。 2.2 時鐘電路設計 單片機工作時,從取指令到譯碼再進行微操作,必須在時鐘信號控制下才能 有序地進行,時鐘電路就是為單片機工作提供基本時鐘的。單片機的時鐘信號通 常有兩種產生方式:內部時鐘方式和外部時鐘方式。本課題采用內部時鐘方式。 在單片機 XTAL1 和 XTAL2 引腳上跨接上一個晶振和兩個穩(wěn)頻電容,可以與 單片機片內的電路構成一個穩(wěn)定的自激振蕩器。晶振頻率取 12 MHz。外接電容 的作用是對振蕩器進行頻率微調,使振蕩信號頻率與晶振頻率一致,同時起到穩(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ā)生故障都需要復位。 復位電路用于將單片機內部各電路的狀態(tài)恢復到一個確定的初始值,并從這個狀 態(tài)開始工作。 單片機的復位條件:必須使其 RST 引腳上持續(xù)出現兩個(或以上)機器周期的 高電平。 單片機的復位形式:上電復位、按鍵復位。本課題采用按鍵復位。 在單片機啟動 0.1S 后,電容 C 兩端的電壓持續(xù)充電為 5V,這是時候 10K 電 阻兩端的電壓接近于 0V,RST 處于低電

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

24、時鐘電路、復位電路。 圖 2-5 單片機最小系統(tǒng)原理圖 第 3 章 CO 濃度監(jiān)測儀輸入輸出電路設計 3.1 CO 傳感器的選擇 選擇一氧化碳傳感器主要考慮以下的性能指標: (1)輸入和輸出之間成比例,直線性好、靈敏度高、分辨力強、測量范圍寬。 (2)滯后、漂移誤差小 (3)動態(tài)特性好 (4)功耗小 (5)時間老化特性優(yōu)良 (6)與被測體匹配良好,既不因接入傳感器而使得被測對象受到影響,受被測 量之外的影響小。 (7)體積小、重量輕、價格低廉。 (8)故障率低,易于校準和維護。 (9)由于傳感元件的輸出信號一邊比較小,為了便于能夠驅動控制電路,在傳 感器電路中還應該包括放大器。 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 系列傳感器。 半導體一氧化碳傳感器 MQ-7 所使用的氣敏材料是在清潔空氣中電導率較低 的二氧化錫(SnO2)。采用高低溫循環(huán)檢測方式低溫(1.5V 加熱)檢測一氧化碳,傳 感器的電導率隨空氣中一氧化碳氣體濃度增加而增大,高溫(5.0V 加熱)清洗低溫 時吸附的雜散氣體。使用簡單

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

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

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

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

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

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

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

34、轉換器 ADC0809 對模擬信號的轉換是否完成,當 A/D 轉換結束后,ADC0809 發(fā)出結束 EOC(高電平)信號,該信號可供單片機查詢,也可反相后作為向單片機發(fā)出中斷信號, 而本設計正是用的這個方法,使得程序進入中斷取值程序.而程序中所用到的 IT0 中斷,是為產生一個周期為 2S 的方波而設計的,其作用是為看門狗產生喂狗子信號. 具體程序如下: 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 ;設置 INT0 為電平觸發(fā) MOV SCON,#B ;串行口發(fā)送,接收標志位請 0 MOV SP,#60H ;設堆棧指針 MOV TMOD,#01H ;設置 T0 為方式 1 CALL PT0M0 HERE: AJMP HERE ;自身跳轉 PT0M0: MOV TL0,#0CH ;T0 中斷服務程序,T0 重新置初值 MOV TH0,#0FEH SETB TR0 ;啟動 T0 SETB ET0 ;允許 T0 中斷 SETB EA ;CPU 開中斷 RET ITOP: MOV TL0,#0CH ;T0 中斷服務程序,T

36、0 置初值 MOV TH0,0FEH CPL P1.0 ;P1.0 狀態(tài)取反 RETI ACALL LED ;調用 LED 自檢子程序 MOV 33H,#00H ;設置中斷完成標志為 0 MOV DPTR,#0FEFFH ;ADC0809 的端口地址 MOVX DPTR,A ;使 BUS 為高阻抗,令 ADC0809 開始轉換 WAIT:MOV A,33H ;等待 A/D 轉換完成信號 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 ;調用 BCD 碼調整程序 CALL DISP ;顯示當前濃度 CALL ADZERO ;調用零點調整子程序 CALL ALARM ;調用判斷報警程序 CALL BCD CALL DISP ;調用顯示子程序 CLR A ;清除累加器值 JMP START ;返回 在主程序通過對 33H 中數值的判斷斷定 A/D 是否轉換完成,當 33H 中為 1 時,轉換完成,程序調用調零、報警、顯示模塊對輸入數據進行處理。 4.2.2 調零子程序 由于未知問題,可能造成送入單片機中顯示的模擬電壓量與真實電壓存在

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

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

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

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

42、T 這樣把轉換成的 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 將數值送入到 LED 顯示 74LS164 驅動數碼管的過程: 在單片機應用系統(tǒng)中,顯示器顯示常用兩種方法:靜態(tài)顯示和動態(tài)掃描顯示。 所謂靜態(tài)顯示,就是每一個顯示器都要占用單獨的具有鎖存功能的 I/O 接口用于 筆劃段字形代碼。這樣單片

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

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

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

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

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

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

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

50、ADDD ;調用 ADDD 將其與調零預設值 相加,得到調整后的 16 進制 MOV 31H,A ;將調整后的值送入 31H 保存 EMP1: MOV IE,#B ;關閉 INT0 中斷使能,關閉中斷 POP PSW ;至堆棧取回 PSW 值 POP ACC ;至堆棧取回 ACC 值 MOV 33H,#01H ;中斷完成,設置完成標記 33H 為 1 RETI ;* * * * * * * * * * * * * * * * * ; 調整相加子程序 ;* * * * * * * * * * * * * * * * * ADJUST: CLR C SUBB A,#32H ;將 A/D 轉換的值減 50 再除 10 乘 5 可得當前濃度的 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 時送入單片機的數值 為 50250,為了使示數在 099 間變化,編寫數值轉換程序如下: ADJUST: CLR C SUBB A,#32H ;將 A/D 轉換的值減 50 再除 10 乘 5 可得當前濃度 的 16

溫馨提示

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

評論

0/150

提交評論