畢業(yè)設(shè)計(論文)_基于AT89C51單片機的一氧化碳可燃氣體報警器設(shè)計_第1頁
畢業(yè)設(shè)計(論文)_基于AT89C51單片機的一氧化碳可燃氣體報警器設(shè)計_第2頁
畢業(yè)設(shè)計(論文)_基于AT89C51單片機的一氧化碳可燃氣體報警器設(shè)計_第3頁
畢業(yè)設(shè)計(論文)_基于AT89C51單片機的一氧化碳可燃氣體報警器設(shè)計_第4頁
畢業(yè)設(shè)計(論文)_基于AT89C51單片機的一氧化碳可燃氣體報警器設(shè)計_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、摘要本設(shè)計利用GS系列傳感器,將置于測試環(huán)境中待測氣體的濃度轉(zhuǎn)換為模擬電壓,再通過ADC0809將模擬電壓轉(zhuǎn)換為數(shù)字信號,送入單片機AT89C51中進行處理。為了用戶對氣體濃度進行實時了解,將AT89C51外接3片74LS164作為3位LED顯示器的靜態(tài)顯示接口,把單片機的RXD作為數(shù)據(jù)輸出線,TXD作為移位時鐘脈沖。74LS164為TTL單向8位移位寄存器,可實現(xiàn)串行輸入,并行輸出,通過8位移位寄存器74LS164可進行靜態(tài)顯示。通過設(shè)置報警值,用單片機控制發(fā)光二極管和音樂IC同時報警。利用單片機控制技術(shù),制作了程控一氧化碳報警器。該儀器對一氧化碳(CO)進行實時監(jiān)控,當(dāng)一氧化碳的濃度超過允

2、許值時,控制電路進行報警,并通過外接排風(fēng)扇與電磁閥對其進行程控,以防事故的發(fā)生。另外為了防止程序陷入死循環(huán),還利用x25045芯片組成的看門狗電路在程序陷入死循環(huán)時讓單片機復(fù)位,而不用整個系統(tǒng)斷電,從而保護了硬件電路。由于所設(shè)計的數(shù)字氣體報警器采用單片機AT89C51,其價格便宜,性能穩(wěn)定,易于產(chǎn)品化。以GS氣體傳感器和AT89C51 單片機為核心, 設(shè)計氣體泄漏報警器,該報警器設(shè)計方法簡單易行,使用效果良好,下面給出了氣體泄漏報警器的總體設(shè)計原理,關(guān)鍵的硬件電路和所有的軟件程序設(shè)計。關(guān)鍵詞:一氧化碳; 氣體泄露報警器; AT89C51單片機; GS氣體傳感器AbstractThe desig

3、n of the GS series of sensors, will be placed on the test environment measured the concentration of gas converted to analog voltage, and then through the ADC0809 will be converted to analog voltage digital signal, into the SCM AT89C51 in the process. To users of gas concentrations in real-time under

4、standing, AT89C51 will be linked three 74 LS164 externally as the three LED display static display interface, and the MCU RXD as the output data line, TXD as a shift clock pulse. 74LS164 TTL is a one-way 8-bit register displacement which can be realized enter serial, parallel output, through the 8-b

5、it shift register 74 LS164 can be static display. By setting the alarm level, the MCU control LED and music IC alarm at the same time.SCM control use of technology, produced a program-controlled carbon monoxide alarm. The instrument of carbon monoxide (CO) for real-time monitoring, when the concentr

6、ation of carbon monoxide is more than allowed value, the control circuit for alarm, and through an external electromagnetic valve row fans and their program-controlled, to prevent accidents. In addition procedures to prevent a cycle of death, also used x25045 watchdog circuit chip composed of a deat

7、h in the process so that when the MCU reset cycle, instead of the whole system off, thereby protecting the hardware circuit. As designed by the number of gas alarm using SCM AT89C51, it is cheap, stable performance, easy-production. GS to gas sensors and AT89C51 microcontroller as the core design of

8、 gas leakage alarm, the alarm system design method is simple, use good effect, the following is a gas leakage alarm the general design principles, the key hardware and all The software program design. Keywords: CO; Leaking gases alarm; AT89C51 microcomtuper; GS Gases Sensors目 錄摘要IAbstractII1 緒論1研究背景

9、及意義1 研究目標(biāo)及實現(xiàn)功能21.3研究方案342 單片機相關(guān)知識介紹6 2.1單片機中斷與復(fù)位6單片機中斷系統(tǒng)單片機復(fù)位電路 AT89C51單片機對ADC0809的接口8AT89C51的介紹3 硬件部分的設(shè)計及調(diào)試9硬件部分的設(shè)計9.1系統(tǒng)的組成93.1.2系統(tǒng)各模塊功能93.1.3系統(tǒng)的控制123.1.4系統(tǒng)主要器件的介紹3.2硬件電路的調(diào)試124 軟件部分的設(shè)計及調(diào)試13 軟件部分的設(shè)計13.1主程序144.1.2調(diào)零子程序154.1.3顯示子程序164.1.4報警子程序174.1.5中斷取值子程序19軟件程序的調(diào)試22結(jié)論41致謝23參考文獻24附錄25科技文章摘譯35第1章 緒論研究

10、背景及意義隨著我國燃氣的變革及西氣東輸工程的進行,煤氣或天然氣已成為多數(shù)家庭的燃料。每年因煤氣泄漏造成的煤氣中毒事故中,因使用熱水器不當(dāng)或產(chǎn)品本身的質(zhì)量問題造成的一氧化碳中毒事故全國均有不少事例。更有甚者,因室內(nèi)煤氣濃度過高引起煤氣爆炸的事故也不少見。所以,這樣防止煤氣中毒與爆炸已成為人們迫切需要。家用燃氣報警器更是時下所需,因為它更簡捷易用,方便居民生活。而且,氣體報警器的研發(fā)對于防止煤礦事故也是至關(guān)重要的,據(jù)權(quán)威部門統(tǒng)計,僅去年煤礦事故死亡人數(shù)就高達3786人,同時也造成了巨大的經(jīng)濟損失。我國特大煤礦事故也是非常嚴重的,例如2005年12月,河北唐山劉官屯煤礦發(fā)生特別重大瓦斯煤塵爆炸事故,

11、造成108名礦工死亡,29人受傷,直接經(jīng)濟損失4800多萬元。同年9月1日,黑龍江省雙鴨山礦務(wù)局東保衛(wèi)煤礦發(fā)生瓦斯爆炸事故,14人遇難。 9月5日,山西省大同礦業(yè)集團公司永定莊煤礦發(fā)生特大瓦斯爆炸事故,死亡31人。9月27日,貴州省水城礦務(wù)局木沖溝煤礦發(fā)生特大惡性瓦斯爆炸事故,162人死亡。這是近40年來最嚴重的一次煤礦事故。11月5日,吉林省遼源礦務(wù)局西安礦礦辦小井發(fā)生瓦斯爆炸事故,死亡31人,造成嚴重經(jīng)濟損失。11月25日,內(nèi)蒙古自治區(qū)大雁煤業(yè)公司二礦采煤工作面發(fā)生特大瓦斯爆炸,目前已發(fā)現(xiàn)14人死亡,37人下落不明。由此可見報警器無論是在人們的日常生活中,還是在煤礦等工業(yè)生產(chǎn)中都發(fā)揮著至關(guān)

12、重要的作用,所以實時準(zhǔn)確測量周圍環(huán)境中的可燃性氣體,有毒有害氣體泄露,對保護人民的身體健康和財產(chǎn)安全有重要意義。在國民經(jīng)濟的許多領(lǐng)域中,如油田、礦山、化工等企業(yè)和家庭中有廣泛的應(yīng)用,也是環(huán)境保護的重要項目。如何開發(fā)出穩(wěn)定可靠、高性能價格比的裝置,成為急需解決的課題。由于要求數(shù)字氣體報警器具有體積小巧,監(jiān)控精度高,能長時間穩(wěn)定工作的特點。傳統(tǒng)的純硬件報警器已經(jīng)不能滿足這種要求了,可以用單片機設(shè)計。單片機在工業(yè)控制和儀器儀表智能化的應(yīng)用中扮演著極為重要的角色。其設(shè)計出的產(chǎn)品體積小、成本底、運用靈活、易于產(chǎn)品化、抗干擾能力強、適應(yīng)范圍廣,在各種惡劣的環(huán)境下都能可靠工作。研究目標(biāo)及實現(xiàn)功能本文所設(shè)計的

13、數(shù)字氣體報警器采用單片機AT89C51,其價格便宜,易于產(chǎn)品化。本設(shè)計能將置于測試環(huán)境中的氣體傳感器輸出的模擬電壓通過A/D轉(zhuǎn)換器送入單片機AT89C51中進行處理并通過數(shù)碼管顯示,通過設(shè)置報警值,當(dāng)檢測到的濃度達到或者超過設(shè)定值時,用單片機控制發(fā)光二極管發(fā)光報警,同時打開喇叭發(fā)出聲音報警,來達到報警的目的,并通過外接排風(fēng)扇與電磁閥對其進行程控,以防事故的發(fā)生。而當(dāng)系統(tǒng)出現(xiàn)故障時,黃色LED亮啟,便于用戶及時對報警器進行維修。系統(tǒng)以MQK氣體傳感器和AT89C51 單片機為核心, 設(shè)計氣體泄漏報警器。實現(xiàn):1準(zhǔn)確測量周圍環(huán)境中的可燃性氣體、有毒有害氣體的泄漏;2實現(xiàn)系統(tǒng)各個模塊的功能控制;3實

14、現(xiàn)單片機編程語言系統(tǒng)的控制及傳感器電路的控制。4研究單片機各接口的作用及功能;5了解MQK氣體傳感器的具體功能;6實現(xiàn)對基本報警電路的控制。研究方案設(shè)計是利用單片機控制技術(shù),制作了程控一氧化碳報警器。該儀器對一氧化碳進行實時監(jiān)控,當(dāng)一氧化碳的濃度超過允許值時,單片機控制電路進行報警,并通過外接排風(fēng)扇進行程控,以防事故發(fā)生?;贏T89C51性價比高的優(yōu)勢,主要運用了AT89C51單片機進行控制。而對與報警器而言至關(guān)重要的部分是傳感器,由于GS系列氣敏元件采用半導(dǎo)體敏感材料,其靈敏度、選擇性、穩(wěn)定性、抗干擾性、響應(yīng)時間及壽命等主要性能,均達到國內(nèi)先進水平.用該系列元件組裝成易燃易爆和有毒氣體泄漏

15、報警器及檢測裝置,可廣泛運用于礦山、油田、化工、國防、醫(yī)藥及家庭,所以在設(shè)計中采用的是GS系列傳感器。在模數(shù)轉(zhuǎn)換這塊,利用ADC0809實現(xiàn)模數(shù)轉(zhuǎn)換,ADC0809是8位逐次漸進型的A/D轉(zhuǎn)換器,它采用COMS工藝20個引腳雙列直插式封裝,它有三態(tài)瑣存器,直接驅(qū)動數(shù)據(jù)總線,與微機相連時不需要附加接口電路。為了方便用戶了解濃度信息,好提前準(zhǔn)備,還采用了顯示環(huán)節(jié)。顯示器顯示常用兩種方法:靜態(tài)顯示和動態(tài)掃描顯示。所謂靜態(tài)顯示,就是每一個顯示器都要占用單獨的具有鎖存功能的I/O接口用于筆劃段字形代碼。這樣單片機只要把要顯示的字形代碼發(fā)送到接口電路,就不用管它了,直到要顯示新的數(shù)據(jù)時,再發(fā)送新的字形碼,

16、因此,使用這種方法單片機中CPU的開銷小??梢蕴峁﹩为氭i存的I/O接口電路很多,這里運用了常用的74LS164 8位移位寄存器串并轉(zhuǎn)換電路??偟膩碚f,設(shè)計主要利用了以上的檢測模塊,A/D轉(zhuǎn)換模塊,顯示模塊,事故處理模塊,控制模塊五大模塊,組成了可燃氣體探測報警器。我國報警器行業(yè)的發(fā)展我國電子信息業(yè)在上世紀(jì)八十年代第一次騰飛后,隨著國民經(jīng)濟信息化進程的加快,之后又進入持續(xù)快速發(fā)展的新時期。這個時期電子信息產(chǎn)業(yè)的主要特征表現(xiàn)為:一是正在從單一的制造業(yè)轉(zhuǎn)變?yōu)槲镔|(zhì)生產(chǎn)與知識生產(chǎn),裝備制造與系統(tǒng)集成,硬件制造與軟件制造,工業(yè)生產(chǎn)與信息服務(wù)相結(jié)合的現(xiàn)代信息產(chǎn)業(yè);二是產(chǎn)業(yè)結(jié)構(gòu),產(chǎn)品結(jié)構(gòu),企業(yè)結(jié)構(gòu),運行機制,

17、管理模式等方面發(fā)生了深刻變化;三是我國信息產(chǎn)業(yè)成為國民經(jīng)濟的支柱產(chǎn)業(yè)和先導(dǎo)產(chǎn)業(yè),是新世紀(jì)的戰(zhàn)略產(chǎn)業(yè),為國民經(jīng)濟和社會信息化建設(shè)提供主要技術(shù)和物質(zhì)支撐。 報警器技術(shù)及其產(chǎn)業(yè)的特點是:基礎(chǔ)、應(yīng)用兩頭依附;技術(shù)、投資兩個密集;產(chǎn)品、產(chǎn)業(yè)兩大分散?;A(chǔ)、應(yīng)用兩頭依附,是指報警器技術(shù)的發(fā)展依附于敏感機理、敏感材料、工藝設(shè)備和計測技術(shù)這四塊基石。敏感機理千差萬別,敏感材料多種多樣,工藝設(shè)備各不相同,計測技術(shù)大相徑庭,沒有上述四塊基石的支撐,報警器技術(shù)難以為繼。 應(yīng)用依附是指報警器技術(shù)基本上屬于應(yīng)用技術(shù),其市場開發(fā)多依賴于檢測裝置和自動控制系統(tǒng)的應(yīng)用,才能真正體現(xiàn)出它的高附加效益并形成現(xiàn)實市場。也即發(fā)展報警

18、器技術(shù)要以市場為導(dǎo)向,實行需求牽引。技術(shù)、投資兩個密集技術(shù)密集是指報警器在研制和制造過程中技術(shù)的多樣性、邊緣性、綜合性和技藝性。它是多種高技術(shù)的集合產(chǎn)物。由于技術(shù)密集也自然要求人才密集。投資密集是指研究開發(fā)和生產(chǎn)某一種報警器產(chǎn)品要求一定的投資強度,尤其是在工程化研究以及建立規(guī)模經(jīng)濟生產(chǎn)線時,更要求較大的投資。增加投資和正確的投資方向是提高報警器產(chǎn)業(yè)水平的主要條件之一,也是企事業(yè)決策者謀求最佳經(jīng)濟效益的重要手段。產(chǎn)品、產(chǎn)業(yè)兩大分散,產(chǎn)品結(jié)構(gòu)和產(chǎn)業(yè)結(jié)構(gòu)的兩大分散是指報警器產(chǎn)品門類品種繁多,生產(chǎn)、研究單位分布在除地方外有12個部委(電子、機械、科學(xué)院、航空航天、教委、冶金、船舶、鐵道、輕工、化工、煤

19、炭等),其應(yīng)用滲透到各個產(chǎn)業(yè)部門,它的發(fā)展既是各產(chǎn)業(yè)發(fā)展的推動力。只有按照市場需求,不斷調(diào)整產(chǎn)業(yè)結(jié)構(gòu)和產(chǎn)品結(jié)構(gòu),才能實現(xiàn)報警器產(chǎn)業(yè)的全面、協(xié)調(diào)、持續(xù)發(fā)展。 在國家的支持下,“八五”以來,我國的報警器技術(shù)及其產(chǎn)業(yè)取得了長足進步。 在學(xué)術(shù)交流方面,1989年10月由敏感元器件與報警器分會發(fā)起主辦的“STC89 首屆全國敏感元件與報警器學(xué)術(shù)會議”已延續(xù)至今,固定每兩年召開一次,每逢活動不但國內(nèi)學(xué)者、企業(yè)家云集且有不少其它國家的人士參加。目前,其論值組織機構(gòu)為:“全國敏感元件與報警器學(xué)術(shù)團體聯(lián)合組織委員會”。 在原電子工業(yè)部的努力及敏感元器件與報警器分會的積極組織下,實施的“雙加工程”即:加快力度加快

20、發(fā)展,的方針指導(dǎo)下,建立了我國敏感元器件與報警器生產(chǎn)基地。這三大基地分別為: “安徽基地”,主要是建立力、光敏規(guī)模經(jīng)濟。 “陜西基地”,1990年2月成立了“陜西省敏感技術(shù)產(chǎn)業(yè)集團公司”主要是建立電壓敏、熱敏、汽車電子規(guī)模經(jīng)濟為主要目標(biāo)。 “黑龍江基地”主要建立氣、濕敏規(guī)模經(jīng)濟為主要目標(biāo)。 多年來,三大基地在發(fā)展過程中雖然興衰不一,歷史地看,它對我國敏感元件與報警器行業(yè)的建設(shè)起到了一定的推動作用。 “九五”期間報警器技術(shù)研究國家重點科技攻關(guān)項目取得了51個品種86個規(guī)格的新產(chǎn)品。初步建立了敏感元件與報警器產(chǎn)業(yè)。 產(chǎn)品已進入到億萬人民的家庭生活中,并已在國民經(jīng)濟各部門和國防建設(shè)中得到一定應(yīng)用。

21、近年來,在研發(fā)主力軍的建設(shè)方面,主要表現(xiàn)在:建立了“傳感技術(shù)國家重點實驗室”、“微米/納米國家重點實驗室”、“國家傳感技術(shù)工程中心”等研究開發(fā)基地。 全國已有1688家企事業(yè)從事報警器的研制、生產(chǎn)和應(yīng)用,其中從事MEMS研制生產(chǎn)的已有50多家。目前全行業(yè)正在執(zhí)行“十五”規(guī)劃,MEMS等5項新型報警器已列入研究開發(fā)的重點;國家計委決定從2002年開始組織實施的新型電子元器件產(chǎn)業(yè)化專項中有5項新型敏感元件與報警器已經(jīng)啟動;一些省、市新建立的“報警器產(chǎn)業(yè)基地”、“MEMS科技股份”,呈現(xiàn)出良好的發(fā)展態(tài)勢。單片機相關(guān)知識介紹單片機中斷與復(fù)位1. 中斷的概念中斷是通過硬件來改變CPU程序運行的方向。計算

22、機在執(zhí)行程序的過程中,由于CPU以外的某種原因,有必要盡快中止當(dāng)前程序的執(zhí)行,而去執(zhí)行相應(yīng)的處理程序,在處理結(jié)束后,再回來繼續(xù)執(zhí)行被中止了的源程序。這種程序在執(zhí)行過程中由于外界的原因而被中間打斷的情況稱為“中斷”。2. 89C51 的中斷系統(tǒng)89C51的中斷系統(tǒng)主要由幾個與中斷有關(guān)的特殊功能的寄存器,中斷入口,順序查詢邏輯電路等組成。與中斷有關(guān)的特殊功能寄存器有四個,分別為中斷源寄存器(即專用寄存器TCON和SCON的相關(guān)位),中斷允許控制寄存器IE和中斷優(yōu)先級控制寄存器IP。89C51單片機有5個中斷源,可提供兩個中斷優(yōu)先級,即可實現(xiàn)二級中斷嵌套。5個中斷源的排列順序由中斷優(yōu)先級控制寄存器I

23、P和順序查詢邏輯電路共同決定。5個中斷源對應(yīng)5個固定的中斷入口地址。(1) 中斷請求源: 外部中斷請求源:即外中斷0和1,經(jīng)由外部引腳引入的,在單片機上有兩個引腳,名稱為INT0、INT1,也就是、這兩個引腳。在內(nèi)部的TCON中有四位是與外中斷有關(guān)的。IT0:INT0觸發(fā)方式控制位,可由軟件進和置位和復(fù)位,IT0=0,INT0為低電平觸發(fā)方式,IT0=1,INT0為負跳變觸發(fā)方式。IE0:INT0中斷請求標(biāo)志位。當(dāng)有外部的中斷請求時,這位就會置1(這由硬件來完成),在CPU響應(yīng)中斷后,由硬件將IE0清0。IT1、IE1的用途和IT0、IE0相同。(2)內(nèi)部中斷請求源:TF0:定時器T0的溢出中

24、斷標(biāo)記,當(dāng)T0計數(shù)產(chǎn)生溢出時,由硬件置位TF0。當(dāng)CPU響應(yīng)中斷后,再由硬件將TF0清0。TF1:與TF0類似。TI、RI:串行口發(fā)送、接收中斷。(3) 中斷允許寄存器IE中斷的允許或禁止是由片內(nèi)可進行位尋址的8位中斷允許寄存器IE來控制的。見表2-1 表2-1 8位中斷允許寄存器EAXXESET1EX1ET0EX0其中EA是總開關(guān),如果它等于0,則所有中斷都不允許。ES串行口中斷允許ET1定時器1中斷允許,EX1外中斷1中斷允許。ET0定時器0中斷允許,EX0外中斷0中斷允許。(4)五個中斷源的自然優(yōu)先級與中斷服務(wù)入口地址外中斷0:0003H 定時器0:000BH外中斷1:0013H 定時器

25、1:001BH串口 :0023H它們的自然優(yōu)先級由高到低排列。中斷優(yōu)先級中由中斷優(yōu)先級寄存器IP來置值的,IP中某位設(shè)為1,相應(yīng)的中斷就是高優(yōu)先級,否則就是低優(yōu)先級。XXXPSPT1PX1PT0PX0復(fù)位是單片機的初始化操作,其主要功能是把PC初始化位0000H單元開始執(zhí)行程序。除了進入系統(tǒng)的正常初始化之外,當(dāng)由于程序運行出錯或操作錯誤使系統(tǒng)處于死鎖狀態(tài)時,為擺脫困境,也需按復(fù)位鍵重新啟動。除PC之外,復(fù)位操作還對其它一些專用寄存器有影響,他們的復(fù)位狀態(tài)如下;PC 0000H TCON 00HACC 00H TLO 00HPSW 00H TH0 00HSP 07H TL1 00HDPTR 00

26、00H TH1 00HP0P3 0FFH SCON 00HIP xx000000B SBUF 不定IE 0 x000000B PCON 0 xx0000BTMOD 00H復(fù)位操作還對單片機的個別引腳信號有影響,例如把ALE和信號變?yōu)闊o效狀態(tài),即ALE = 0, = 1。本實驗采用按鍵電平復(fù)位方式,晶振為12MHz,R1為200,R2為2K,C為10uF。復(fù)位電路雖然簡單,但其作用非常重要。一個單片機是否正常工作,首先要檢查是否能復(fù)位成功。 AT89C51單片機對ADC0809的接口MCS-51與ADC接口時必須弄清并處理好三個問題:1要給START線送一個100ns寬的啟動正脈沖;2. 獲取E

27、OC線上的狀態(tài)信息,因為它是A/D轉(zhuǎn)換的結(jié)束標(biāo)志;3.要給“三態(tài)輸出鎖存器”分配一個端口地址,也就是給OE線上送一個地址譯碼器輸出信號。MCS-51和ADC接口通常可以采用查詢和中斷兩種方式。采用查詢法傳送數(shù)據(jù)時MCS-51應(yīng)對EOC線查詢它的狀態(tài):若它為低電平,表示A/D轉(zhuǎn)換正在進行,則MCS-51應(yīng)當(dāng)繼續(xù)查詢;若查詢到EOC變?yōu)楦唠娖?,則給OE線送一個高電平,以便提取A/D轉(zhuǎn)換后的數(shù)字量。采用中斷方式傳送數(shù)據(jù)時,EOC線作為CPU的中斷請求輸入線。CPU響應(yīng)中斷后,應(yīng)字中斷服務(wù)程序中使OE線變?yōu)楦唠娖?,以提取A/D轉(zhuǎn)換后的數(shù)字量。 MCS-51對ADC0809的接口ADC0809內(nèi)部有一個

28、8位“三態(tài)輸出鎖存器”可以鎖存A/D轉(zhuǎn)換后的數(shù)字量,故它本身既可看作一種輸入設(shè)備,也可認為是并行I/O接口芯片。因此,ADC0809可以直接和MCS-51接口,當(dāng)然也可通過像8255這樣的其他芯片連接。但在大多數(shù)情況下,51系列單片機是和ADC0809直接相連的AT89C51的介紹是一個低電壓,高性能CMOS 8位單片機,片內(nèi)含4k bytes的可反復(fù)擦寫的Flash只讀程序存儲器和128 bytes的隨機存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲單元,內(nèi)置功能強大的微型計算機的AT89

29、C51提供了高性價比的解決方案。AT89C51是一個低功耗高性能單片機,40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時內(nèi)含2個外中斷口,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,AT89C51可以按照常規(guī)方法進行編程,也可以在線編程。其將通用的微處理器和Flash存儲器結(jié)合在一起,特別是可反復(fù)擦寫的Flash存儲器可有效地降低開發(fā)成本。硬件部分的設(shè)計及調(diào)試硬件部分的設(shè)計系統(tǒng)的組成整個報警器由三個部分組成:濃度檢測及顯示模塊。主控模塊和報警及事故處理模塊。系統(tǒng)的組成框圖如圖3-4所示。故障處理報警控制濃度顯示AT89C51氣體濃度檢測工作狀態(tài)設(shè)置圖3-4 系統(tǒng)組成框圖系統(tǒng)各模塊

30、功能(GS-A1),該傳感器對一氧化碳具有很高的靈敏度,穩(wěn)定性和抗?jié)裥粤己?加活性碳罩后,可防止乙醇等有機氣體的干擾.檢測結(jié)果經(jīng)高精度運放器OP07放大后,送入ADC0809模P數(shù)轉(zhuǎn)換芯片進行模)數(shù)轉(zhuǎn)換,單個傳感器檢測電路圖如圖5。 在本設(shè)計中,另一重要模塊就是A/D模數(shù)轉(zhuǎn)換模塊。因為模擬信號不能直接送往單片機進行處理,必須進行A/D轉(zhuǎn)換。模數(shù)轉(zhuǎn)換的過程有四個階段,即:采樣,保持,量化和編碼。本設(shè)計利用ADC0809實現(xiàn)模數(shù)轉(zhuǎn)換。ADC0809是8位逐次漸進型的A/D轉(zhuǎn)換器,它采用COMS工藝20個引腳雙列直插式封裝,它有三態(tài)瑣存器,直接驅(qū)動數(shù)據(jù)總線,與微機相連時不需要附加接口電路。ADC08

31、09的主要性能如下:1分辨率為8位。2最大轉(zhuǎn)換誤差為1LSB。3轉(zhuǎn)換時間為100uS。4邏輯點平與COMS和TTL相兼容。5+5V單電源供電。6可對0到+5V的輸入模擬信號進行轉(zhuǎn)換。圖3-5 A/D轉(zhuǎn)換模塊引腳圖程序中預(yù)采用模數(shù)轉(zhuǎn)換電路由ADC0809芯片組成,三路檢測結(jié)果從IN0、IN1、IN2輸入,轉(zhuǎn)換順序由ADDA、ADDB、ADDC控制,轉(zhuǎn)換結(jié)果送單片機P0口供單片機進行數(shù)據(jù)處理。由P0口輸入的數(shù)據(jù),在單片機內(nèi)部進行標(biāo)度變換后,從單片機的串行口輸出進行顯示.系統(tǒng)的工作狀態(tài)和氣體濃度,采用LED數(shù)碼管顯示,每30秒刷新一次.為了不再擴展IPO口,系統(tǒng)采用串行口的移位功能擴展為4位靜態(tài)顯示

32、電路.第一位為系統(tǒng)工作狀態(tài)顯示,后三位為一氧化碳氣體濃度顯示.當(dāng)?shù)谝晃粸椤?0”時,表示系統(tǒng)工作在三點巡回檢測同一個房間狀態(tài);為“8”時表示系統(tǒng)工作在三點巡回檢測同一個房間正常工作狀態(tài);為“1”、“2”、“3”時表示系統(tǒng)工作在單獨檢測狀態(tài),此時后三位顯示的數(shù)據(jù)分別為第1號、第2號、第3號傳感器所檢測到的一氧化碳氣體濃度。濃度顯示單位為為串行輸入,并行輸出寄存器,當(dāng)P2.0=1且AT89C51的TXD端有輸出時,74LS164接收串行數(shù)據(jù),更新顯示;當(dāng)P2.0=0時,顯示的內(nèi)容不變。系統(tǒng)采用單片機進行控制,選用的產(chǎn)品,其指令系統(tǒng)完全與8031/8051兼容,內(nèi)帶4K字節(jié)的內(nèi)存和程序保護系統(tǒng),便于

33、程序的調(diào)試修改和保密,各管腳的功能如下:1)ALE端的功能:ALE端與ADC0809的CLOCK相連,為ADC0809輸入時鐘脈沖.2)P0口的功能:P0口與ADC0809的數(shù)據(jù)輸出口相連,接收APD轉(zhuǎn)換結(jié)果.3)P1口的功能:P1.0端接工作狀態(tài)控制開關(guān),開關(guān)閉合時,系統(tǒng)進入正常工作狀態(tài);P1.1端外接的開關(guān)為三點巡回測量同一個房間控制開關(guān),當(dāng)開關(guān)閉合時有效;P1.2P1.4端接ADC0809的ADDA、ADDB、ADDC三端,控制ADC0809的八路模擬輸入轉(zhuǎn)換.4)P2口的功能:P2.1端與WR端通過外接的與門求反后與ADC0809的START和ALE相連,用以啟動APD轉(zhuǎn)換,且將8路地

34、址鎖存;P2.1端與RD端通過外接的與門求反后與ADC0809的OE端相連,用以允許將APD轉(zhuǎn)換結(jié)果輸出,讓單片機讀取轉(zhuǎn)換結(jié)果;P2.2端用作系統(tǒng)音樂報警信號控制端,高電平有效;P2.3端用作排風(fēng)扇啟動信號控制端,高電平有效;P2.4端用作電磁閥啟動信號控制端,高電平有效.5)P3口的功能:P3.0、P3.1端和P2.0端用于控制系統(tǒng)的顯示輸出.當(dāng)氣體濃度超過允許值時,該模塊動作,發(fā)出警報信號并根據(jù)不同情況進行事故處理.P2.2端為音樂控制端,P2.3端為電磁閥啟動控制端,P2.4為排風(fēng)扇控制端,均為高電平有效.為防止市電對系統(tǒng)的干擾,P2.3和P2.4端都經(jīng)過光電耦合管對電磁閥和排風(fēng)扇進行控

35、制.系統(tǒng)各模塊之間的接線圖如圖6所示.圖5 單個傳感器電路圖 系統(tǒng)的控制1系統(tǒng)要求設(shè)置正常工作狀態(tài),除正常工作狀態(tài)外,電磁閥要求處于關(guān)閉狀態(tài),以切斷煤氣通道,防止煤氣外泄。2在非正常工作狀態(tài)下,當(dāng)室內(nèi)一氧化碳的濃度達到100ppm時系統(tǒng)應(yīng)啟動音樂報警,若2min報警無效,系統(tǒng)應(yīng)啟動排風(fēng)扇進行通風(fēng)排氣。3系統(tǒng)進入正常工作狀態(tài)后,先啟動排風(fēng)扇進行通風(fēng),然后啟動電磁閥供給煤氣。4系統(tǒng)進入正常工作狀態(tài),自45min后,每隔10min音樂響起一次,用來提醒用戶在工作完畢后,停止供氣。5在正常工作狀態(tài)下,當(dāng)系統(tǒng)檢測到一氧化碳的濃度達到300ppm時,應(yīng)關(guān)閉電磁閥,切斷煤氣通道以防止意外事故的發(fā)生。系統(tǒng)主要

36、器件的介紹3.1.4.1 GS傳感器介紹設(shè)計中所用到的氣體傳感器是GS系列傳感器,下面具體介紹一下GS系列氣體傳感器:GS系列氣敏元件采用半導(dǎo)體敏感材料,工藝獨特為國內(nèi)首創(chuàng),其靈敏度、選擇性、穩(wěn)定性、抗干擾性、響應(yīng)時間及壽命等主要性能,均達到國內(nèi)先進水平.用該系列元件組裝成易燃易爆和有毒氣體泄漏報警器及檢測裝置,可廣泛運用于礦山、油田、化工、國防、醫(yī)藥及家庭.GS系列傳感器主要有以下特點:(1)靈敏度高、功耗低,輸出信號強.(2)選擇性好、對被檢測的氣體非常敏感,而對干擾氣體則靈敏度很低(3)穩(wěn)定性、可靠性強(4)具有抗高溫、抗高濕性能(5)元件不含任何貴金屬催化劑,具有抗中毒及抗飽和性能.但

37、由于氣體傳感器是使用半導(dǎo)體材料來制作,不可避免的是有溫度漂移問題,如何處理好氣體傳感器溫度補償問題是報警器設(shè)計的關(guān)鍵(圖3-1、圖 3-2).以前的一般做法是把報警器的報警閥值電壓作補償,這樣的電路會簡單一些,但溫度補償?shù)男Ч惶硐耄饕窃诘蜏丨h(huán)境里,氣體傳感器的表面溫度降低導(dǎo)致氣體傳感器的性能變差,解決的方法是在低溫環(huán)境里提高氣體傳感器的加熱功率,使氣體傳感器的表面溫度維持相對恒定,達到使氣體傳感器穩(wěn)定工作的目的。圖3-1 傳感器輸出特性曲線圖圖3-2 傳感器加溫度補償所需的加熱電壓曲線 氣體傳感器加熱電源的原理見圖 3-3,利用 PIC 單片機的脈沖寬度調(diào)制輸出功能(簡稱 PWM),

38、及 A/D 轉(zhuǎn)換輸入功能實現(xiàn)電源電壓的穩(wěn)定和自我調(diào)整。 如圖所示,是降壓式開關(guān)電源(Buck 式)的基本電路。其中,Vin 為輸入電壓,Vout 為輸出電壓,Q1、Q2 為開關(guān)三極管,R1、R2、R3 為電阻,L 為電感,D 為肖特基二極管;C 為電容,MQK 為氣體傳感器,通常有:,;。0.01V,輸出電流為 120mA,Vp0.1V.該電路的工作原理是:預(yù)先設(shè)定目標(biāo)工作電壓值,輸出 AT89C51 單片機的 PWM,啟動開關(guān)電源工作,通過A/D 轉(zhuǎn)換電路將電源電壓值讀入單片機,如果電壓值偏離給定值,則調(diào)整 PWM 輸出,這樣形成一個電壓調(diào)整的閉合環(huán)路,直到電壓值維持恒定,而環(huán)境溫度將決定電

39、壓給定值的大小,達到隨外界溫度的改變而改變加熱功率的目的,以補償氣體傳感器的溫度變化,同時使用開關(guān)電源減少了線性穩(wěn)壓電源的壓降損耗.該開關(guān)電源電路的電壓穩(wěn)定精度取決于單片機 A/D 和 PWM 的精度,該 AT89C51 單片機基本能夠滿足氣體泄漏報警器的性能需求。圖3-3 傳感器加熱電源原理圖 3.1.4.2 74LS164移位寄存器介紹74LS164 8 位移位寄存器(串行輸入,并行輸出) 簡要說明 164 為 8 位移位寄存器,其主要電特性的典型值如下:當(dāng)清除端(CLEAR)為低電平時,輸出端(QAQH)均為低電平。 串行數(shù)據(jù)輸入端(A,B)可控制數(shù)據(jù)。當(dāng) A、B 任意一個為低電平,則禁

40、 止新數(shù)據(jù)輸入,在時鐘端(CLOCK)脈沖上升沿作用下 Q0 為低電平。當(dāng) A、B 有一個為高電平,則另一個就允許輸入數(shù)據(jù),并在 CLOCK 上升沿作用下決定 Q0 的狀態(tài)。 引出端符號 CLOCK 時鐘輸入端 CLEAR 同步清除輸入端(低電平有效) A,B 串行數(shù)據(jù)輸入端 QAQH 輸出端邏輯及封裝圖雙列直插封裝極限值 電源電壓7V 輸入電壓 5.5V 工作環(huán)境溫度 54164 -070 儲存溫度 -65150真值表H高電平 L低電平 X任意電平 低到高電平跳變 QA0,QB0,QH0 規(guī)定的穩(wěn)態(tài)條件建立前的電平 QAn,QGn 時鐘最近的前的電平時序圖下面再介紹一下74LS164驅(qū)動數(shù)碼

41、管:在單片機應(yīng)用系統(tǒng)中,顯示器顯示常用兩種方法:靜態(tài)顯示和動態(tài)掃描顯示。所謂靜態(tài)顯示,就是每一個顯示器都要占用單獨的具有鎖存功能的I/O接口用于筆劃段字形代碼。這樣單片機只要把要顯示的字形代碼發(fā)送到接口電路,就不用管它了,直到要顯示新的數(shù)據(jù)時,再發(fā)送新的字形碼,因此,使用這種方法單片機中CPU的開銷小。可以提供單獨鎖存的I/O接口電路很多,這里以常用的串并轉(zhuǎn)換電路74LS164為例,介紹一種常用靜態(tài)顯示電路,以使大家對靜態(tài)顯示有一定的了解。 MCS-51單片機串行口方式0為移位寄存器方式,外接6片74LS164作為6位LED顯示器的靜態(tài)顯示接口,把8031的RXD作為數(shù)據(jù)輸出線,TXD作為移位

42、時鐘脈沖。74LS164為TTL單向8位移位寄存器,可實現(xiàn)串行輸入,并行輸出。其中A、B(第1、2腳)為串行數(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ù)到達了最高位,然后再來一個脈沖

43、會有什么發(fā)生呢?再來一個脈沖,第一個脈沖就會從最高位移出,搞清了這一點,下面讓我們來看電路,6片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中。硬件電路的調(diào)試本設(shè)計的元器件較少,所以采用萬用板手工焊接。焊接完成后,檢查有無可能出現(xiàn)的虛焊、漏焊,檢查電源線和接地線。確定無問題后將電路板通電

44、。首先用示波器觀察單片機AT89C51的18、19管腳有無頻率為10MHZ的三角波。若有,表示晶振正常工作,單片機能保證正常工作。若無,檢查晶振電路,排除故障。接著用單片機仿真器向P1口送數(shù)值,檢查LED數(shù)碼管能否正常顯示,若不能,檢查譯碼器7448是否工作,有無電壓輸出,檢查LED是否損壞。最后檢查ADC0809在有電壓15V接入的情況下,有無電壓輸出。若無問題,硬件調(diào)試完畢。軟件部分的設(shè)計及調(diào)試軟件部分的設(shè)計本設(shè)計的主要功能實現(xiàn)在于程序的編寫,流程圖如圖4-1: 圖4-1 軟件流程圖如圖所示,整個報警器程序上分成中斷取值轉(zhuǎn)換、調(diào)零、報警、顯示四大模塊主程序整個程序一共使用了兩個中斷,一個外

45、部中斷即INT0中斷,一個定時/計數(shù)器中斷即IT0中斷.這兩個中斷各有其作用,INT0中斷是用來判斷A/D轉(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中斷

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

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

48、OV A,30H JMP L2L1: 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ù)進行處理。調(diào)零子程序:由于未知問題,可能造成送入單片機中顯示的模擬電壓量與真實電壓存在區(qū)別,

49、這種誤差可以通過在中斷處理中對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 DELAYJB P2.2,JMP1 ;判斷調(diào)零按鈕是否按下,沒按則跳JMP1.JMP1:RET通過對位的判斷來分辨是否有調(diào)零請求,若有則跳入調(diào)零模式,調(diào)零模式中

50、程序如下: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)零值為5LOOP2: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 ;送回31H保存 CALL BCD ;調(diào)用BCD碼調(diào)整 CALL DISP ;調(diào)用顯示

51、子程序JMP LOOPXEND: MOV A,#63H JMP XEND1進入調(diào)零模式后,若有按鍵則,LED數(shù)碼管示數(shù)響應(yīng)按鍵變化。若3秒無任何按鍵,則退出調(diào)零模式返回主程序。顯示子程序因為通過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)志為下面的SUBB準(zhǔn)備 MOV R2,#00H ;清除R2CHAN:SUBB A,#64H ;減100JC CHAN1 ;不能減,轉(zhuǎn)INC R1 ;百位值JM

52、P CHAN ;循環(huán)判斷百位CHAN1: ADD A,#64H ;還原百位數(shù) CLR C ;清除進位標(biāo)志為下面的SUBB準(zhǔn)備CHAN2: SUBB A,#0AH ;減10JC CHAN3 ;不夠減,跳INC R2 ;夠減十位加1JMP CHAN2 ;重復(fù)減10CHAN3: ADD A,#0AH ;還原十位數(shù)MOV 60H,R2 ;把十位數(shù)放60H中MOV 61H,A ;把個位數(shù)放61H中RET這樣把轉(zhuǎn)換成的BCD碼,個位存于61H中,十位存入60H中,再編寫顯示模塊如下:DISP: MOV R7,#03H MOV R0,#60HLED1: MOV A,R0 MOV DPTR,#TABLELED

53、2: 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接口用于筆劃段字形代碼。這樣單片機只要把要顯示的字形代碼發(fā)送到接口電路,就不用管它了,直到要顯示新的數(shù)據(jù)時,再發(fā)送新的字形碼,因此,使用這種方法單片機中CPU的開銷小。可以提供單獨鎖存的I/O接口電路很多,這里以常用的串并轉(zhuǎn)換電路74LS164為例,介紹一種常用靜態(tài)顯示電路,以使

54、大家對靜態(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腳)為串行數(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時,時鐘脈沖

55、才起作用。Q1Q8(第3-6和10-13引腳)并行輸出端分別接LED顯示器的hga各段對應(yīng)的引腳上。在給出了8個脈沖后,最先進入74LS164的第一個數(shù)據(jù)到達了最高位,然后再來一個脈沖會有什么發(fā)生呢?再來一個脈沖,第一個脈沖就會從最高位移出,搞清了這一點,下面讓我們來看電路,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)在

56、第一、二、三片74LS164中。由于本設(shè)計采用的是機械按鍵,與地線想連,按鍵按下,輸入為低電平,釋放按鍵則輸入為高電平。實際上,機械式按鍵的落片存在著輕微的彈跳現(xiàn)象其時間由操作員按鍵的動作所確定,為了確保CPU對按鍵的一次閉合僅做一次處理,必須去除抖動,一般通過調(diào)用子程序延時來解決,在鍵的穩(wěn)定閉合或釋放時才讀出鍵的狀態(tài),具體程序如下:DELAY: MOVR 5,#60 設(shè)定30毫秒D1: MOV R6,#248 ;設(shè)定毫秒DJNZ R6,$ DJNZ R5,D1 RET因為石英晶體為12MHZ,一個機器周期為1微秒,這樣如上程序可達到延時30毫秒的目的。報警子程序本設(shè)計采用了聲光報警,當(dāng)探測器

57、探測的濃度超過報警設(shè)定值時就會同時產(chǎn)生音樂報警和燈光報警,此時紅燈亮啟,喇叭發(fā)出音樂,而正常時,喇叭關(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)閉聲光報警 CLR P2.3 ;關(guān)閉排氣閥門 SETB P1.5 ;

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

59、* * * * * * *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 ADDD ;調(diào)用ADDD將其與調(diào)零預(yù)設(shè)值相加,得到調(diào)整后的1

60、6進制 MOV 31H,A ;將調(diào)整后的值送入31H保存 EMP1: MOV IE,#10000000B ;關(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

溫馨提示

  • 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

提交評論