畢業(yè)論文-可燃?xì)怏w報(bào)警器_第1頁
畢業(yè)論文-可燃?xì)怏w報(bào)警器_第2頁
畢業(yè)論文-可燃?xì)怏w報(bào)警器_第3頁
畢業(yè)論文-可燃?xì)怏w報(bào)警器_第4頁
畢業(yè)論文-可燃?xì)怏w報(bào)警器_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

.PAGE.摘要本設(shè)計(jì)利用GS系列傳感器,將置于測試環(huán)境中待測氣體的濃度轉(zhuǎn)換為模擬電壓,再通過ADC0809將模擬電壓轉(zhuǎn)換為數(shù)字信號,送入單片機(jī)AT89C51中進(jìn)行處理。為了用戶對氣體濃度進(jìn)行實(shí)時了解,將AT89C51外接3片74LS164作為3位LED顯示器的靜態(tài)顯示接口,把單片機(jī)的RXD作為數(shù)據(jù)輸出線,TXD作為移位時鐘脈沖。74LS164為TTL單向8位移位寄存器,可實(shí)現(xiàn)串行輸入,并行輸出,通過8位移位寄存器74LS164可進(jìn)行靜態(tài)顯示。通過設(shè)置報(bào)警值,用單片機(jī)控制發(fā)光二極管和音樂IC同時報(bào)警。利用單片機(jī)控制技術(shù),制作了程控一氧化碳報(bào)警器。該儀器對一氧化碳〔CO進(jìn)行實(shí)時監(jiān)控,當(dāng)一氧化碳的濃度超過允許值時,控制電路進(jìn)行報(bào)警,并通過外接排風(fēng)扇與電磁閥對其進(jìn)行程控,以防事故的發(fā)生。另外為了防止程序陷入死循環(huán),還利用x25045芯片組成的看門狗電路在程序陷入死循環(huán)時讓單片機(jī)復(fù)位,而不用整個系統(tǒng)斷電,從而保護(hù)了硬件電路。由于所設(shè)計(jì)的數(shù)字氣體報(bào)警器采用單片機(jī)AT89C51,其價(jià)格便宜,性能穩(wěn)定,易于產(chǎn)品化。以GS氣體傳感器和AT89C51單片機(jī)為核心,設(shè)計(jì)氣體泄漏報(bào)警器,該報(bào)警器設(shè)計(jì)方法簡單易行,使用效果良好,下面給出了氣體泄漏報(bào)警器的總體設(shè)計(jì)原理,關(guān)鍵的硬件電路和所有的軟件程序設(shè)計(jì)。關(guān)鍵詞:一氧化碳;氣體泄露報(bào)警器;AT89C51單片機(jī);GS氣體傳感器AbstractThedesignoftheGSseriesofsensors,willbeplacedonthetestenvironmentmeasuredtheconcentrationofgasconvertedtoanalogvoltage,andthenthroughtheADC0809willbeconvertedtoanalogvoltagedigitalsignal,intotheSCMAT89C51intheprocess.Tousersofgasconcentrationsinreal-timeunderstanding,AT89CAsdesignedbythenumberofgasalarmusingSCMAT89C51,itischeap,stableperformance,easy-production.GStogassensorsandAT89C51microcontrollerasthecoredesignofgasleakagealarm,thealarmsystemdesignmethodissimple,usegoodeffect,thefollowingisagasleakagealarmthegeneraldesignprinciples,thekeyhardwareandallThesoftwareprogramdesign.Keywords:CO;Leakinggasesalarm;AT89C51microcomtuper;GSGasesSensors目錄摘要 IAbstract II1緒論 11.1研究背景及意義 11.2研究目標(biāo)及實(shí)現(xiàn)功能 21.3研究方案 31.4我國報(bào)警器行業(yè)的發(fā)展 42單片機(jī)相關(guān)知識介紹 62.1單片機(jī)中斷與復(fù)位 6單片機(jī)中斷系統(tǒng) 2.1.2單片機(jī)復(fù)位電路 2.2AT89C51單片機(jī)對ADC0809的接口 82.3AT89C51的介紹 3硬件部分的設(shè)計(jì)及調(diào)試 93.1硬件部分的設(shè)計(jì) 93.1.1系統(tǒng)的組成3.1.2系統(tǒng)各模塊功能 93.1.3系統(tǒng)的控制123.1.4系統(tǒng)主要器件的介紹 3.2硬件電路的調(diào)試 124軟件部分的設(shè)計(jì)及調(diào)試 134.1軟件部分的設(shè)計(jì) 134.1.1主程序 4.1.24.1.34.1.44.1.54.2軟件程序的調(diào)試 22結(jié)論 41致謝23參考文獻(xiàn)24附錄25科技文章摘譯35..第1章緒論研究背景及意義隨著我國燃?xì)獾淖兏锛拔鳉鈻|輸工程的進(jìn)行,煤氣或天然氣已成為多數(shù)家庭的燃料。每年因煤氣泄漏造成的煤氣中毒事故中,因使用熱水器不當(dāng)或產(chǎn)品本身的質(zhì)量問題造成的一氧化碳中毒事故全國均有不少事例。更有甚者,因室內(nèi)煤氣濃度過高引起煤氣爆炸的事故也不少見。所以,這樣防止煤氣中毒與爆炸已成為人們迫切需要。家用燃?xì)鈭?bào)警器更是時下所需,因?yàn)樗喗菀子?方便居民生活。而且,氣體報(bào)警器的研發(fā)對于防止煤礦事故也是至關(guān)重要的,據(jù)權(quán)威部門統(tǒng)計(jì),僅去年煤礦事故死亡人數(shù)就高達(dá)3786人,同時也造成了巨大的經(jīng)濟(jì)損失。我國特大煤礦事故也是非常嚴(yán)重的,例如20XX12月,XXXX劉官屯煤礦發(fā)生特別重大瓦斯煤塵爆炸事故,造成108名礦工死亡,29人受傷,直接經(jīng)濟(jì)損失4800多萬元。同年9月1日,XX省雙鴨山礦務(wù)局東保衛(wèi)煤礦發(fā)生瓦斯爆炸事故,14人遇難。9月5日,XX省XX礦業(yè)集團(tuán)公司永定莊煤礦發(fā)生特大瓦斯爆炸事故,死亡31人。9月27日,XX省水城礦務(wù)局木沖溝煤礦發(fā)生特大惡性瓦斯爆炸事故,162人死亡。這是近40年來最嚴(yán)重的一次煤礦事故。11月5日,XX省XX礦務(wù)局XX礦礦辦小井發(fā)生瓦斯爆炸事故,死亡31人,造成嚴(yán)重經(jīng)濟(jì)損失。11月25日,XX自治區(qū)大雁煤業(yè)公司二礦采煤工作面發(fā)生特大瓦斯爆炸,目前已發(fā)現(xiàn)14人死亡,37人下落不明。由此可見報(bào)警器無論是在人們的日常生活中,還是在煤礦等工業(yè)生產(chǎn)中都發(fā)揮著至關(guān)重要的作用,所以實(shí)時準(zhǔn)確測量周圍環(huán)境中的可燃性氣體,有毒有害氣體泄露,對保護(hù)人民的身體健康和財(cái)產(chǎn)安全有重要意義。在國民經(jīng)濟(jì)的許多領(lǐng)域中,如油田、礦山、化工等企業(yè)和家庭中有廣泛的應(yīng)用,也是環(huán)境保護(hù)的重要項(xiàng)目。如何開發(fā)出穩(wěn)定可靠、高性能價(jià)格比的裝置,成為急需解決的課題。由于要求數(shù)字氣體報(bào)警器具有體積小巧,監(jiān)控精度高,能長時間穩(wěn)定工作的特點(diǎn)。傳統(tǒng)的純硬件報(bào)警器已經(jīng)不能滿足這種要求了,可以用單片機(jī)設(shè)計(jì)。單片機(jī)在工業(yè)控制和儀器儀表智能化的應(yīng)用中扮演著極為重要的角色。其設(shè)計(jì)出的產(chǎn)品體積小、成本底、運(yùn)用靈活、易于產(chǎn)品化、抗干擾能力強(qiáng)、適應(yīng)范圍廣,在各種惡劣的環(huán)境下都能可靠工作。研究目標(biāo)及實(shí)現(xiàn)功能本文所設(shè)計(jì)的數(shù)字氣體報(bào)警器采用單片機(jī)AT89C51,其價(jià)格便宜,易于產(chǎn)品化。本設(shè)計(jì)能將置于測試環(huán)境中的氣體傳感器輸出的模擬電壓通過A/D轉(zhuǎn)換器送入單片機(jī)AT89C51中進(jìn)行處理并通過數(shù)碼管顯示,通過設(shè)置報(bào)警值,當(dāng)檢測到的濃度達(dá)到或者超過設(shè)定值時,用單片機(jī)控制發(fā)光二極管發(fā)光報(bào)警,同時打開喇叭發(fā)出聲音報(bào)警,來達(dá)到報(bào)警的目的,并通過外接排風(fēng)扇與電磁閥對其進(jìn)行程控,以防事故的發(fā)生。而當(dāng)系統(tǒng)出現(xiàn)故障時,黃色LED亮啟,便于用戶及時對報(bào)警器進(jìn)行維修。系統(tǒng)以MQK氣體傳感器和AT89C51單片機(jī)為核心,設(shè)計(jì)氣體泄漏報(bào)警器。實(shí)現(xiàn):1.準(zhǔn)確測量周圍環(huán)境中的可燃性氣體、有毒有害氣體的泄漏;2.實(shí)現(xiàn)系統(tǒng)各個模塊的功能控制;3.實(shí)現(xiàn)單片機(jī)編程語言系統(tǒng)的控制及傳感器電路的控制。4.研究單片機(jī)各接口的作用及功能;5.了解MQK氣體傳感器的具體功能;6.實(shí)現(xiàn)對基本報(bào)警電路的控制。研究方案設(shè)計(jì)是利用單片機(jī)控制技術(shù),制作了程控一氧化碳報(bào)警器。該儀器對一氧化碳進(jìn)行實(shí)時監(jiān)控,當(dāng)一氧化碳的濃度超過允許值時,單片機(jī)控制電路進(jìn)行報(bào)警,并通過外接排風(fēng)扇進(jìn)行程控,以防事故發(fā)生?;贏T89C51性價(jià)比高的優(yōu)勢,主要運(yùn)用了AT89C51單片機(jī)進(jìn)行控制。而對與報(bào)警器而言至關(guān)重要的部分是傳感器,由于GS系列氣敏元件采用半導(dǎo)體敏感材料,其靈敏度、選擇性、穩(wěn)定性、抗干擾性、響應(yīng)時間及壽命等主要性能,均達(dá)到國內(nèi)先進(jìn)水平.用該系列元件組裝成易燃易爆和有毒氣體泄漏報(bào)警器及檢測裝置,可廣泛運(yùn)用于礦山、油田、化工、國防、醫(yī)藥及家庭,所以在設(shè)計(jì)中采用的是GS系列傳感器。在模數(shù)轉(zhuǎn)換這塊,利用ADC0809實(shí)現(xiàn)模數(shù)轉(zhuǎn)換,ADC0809是8位逐次漸進(jìn)型的A/D轉(zhuǎn)換器,它采用COMS工藝20個引腳雙列直插式封裝,它有三態(tài)瑣存器,直接驅(qū)動數(shù)據(jù)總線,與微機(jī)相連時不需要附加接口電路。為了方便用戶了解濃度信息,好提前準(zhǔn)備,還采用了顯示環(huán)節(jié)。顯示器顯示常用兩種方法:靜態(tài)顯示和動態(tài)掃描顯示。所謂靜態(tài)顯示,就是每一個顯示器都要占用單獨(dú)的具有鎖存功能的I/O接口用于筆劃段字形代碼。這樣單片機(jī)只要把要顯示的字形代碼發(fā)送到接口電路,就不用管它了,直到要顯示新的數(shù)據(jù)時,再發(fā)送新的字形碼,因此,使用這種方法單片機(jī)中CPU的開銷小。可以提供單獨(dú)鎖存的I/O接口電路很多,這里運(yùn)用了常用的74LS1648位移位寄存器串并轉(zhuǎn)換電路??偟膩碚f,設(shè)計(jì)主要利用了以上的檢測模塊,A/D轉(zhuǎn)換模塊,顯示模塊,事故處理模塊,控制模塊五大模塊,組成了可燃?xì)怏w探測報(bào)警器。我國報(bào)警器行業(yè)的發(fā)展我國電子信息業(yè)在上世紀(jì)八十年代第一次騰飛后,隨著國民經(jīng)濟(jì)信息化進(jìn)程的加快,之后又進(jìn)入持續(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),運(yùn)行機(jī)制,管理模式等方面發(fā)生了深刻變化;三是我國信息產(chǎn)業(yè)成為國民經(jīng)濟(jì)的支柱產(chǎn)業(yè)和先導(dǎo)產(chǎn)業(yè),是新世紀(jì)的戰(zhàn)略產(chǎn)業(yè),為國民經(jīng)濟(jì)和社會信息化建設(shè)提供主要技術(shù)和物質(zhì)支撐。報(bào)警器技術(shù)及其產(chǎn)業(yè)的特點(diǎn)是:基礎(chǔ)、應(yīng)用兩頭依附;技術(shù)、投資兩個密集;產(chǎn)品、產(chǎn)業(yè)兩大分散?;A(chǔ)、應(yīng)用兩頭依附,是指報(bào)警器技術(shù)的發(fā)展依附于敏感機(jī)理、敏感材料、工藝設(shè)備和計(jì)測技術(shù)這四塊基石。敏感機(jī)理千差萬別,敏感材料多種多樣,工藝設(shè)備各不相同,計(jì)測技術(shù)大相徑庭,沒有上述四塊基石的支撐,報(bào)警器技術(shù)難以為繼。應(yīng)用依附是指報(bào)警器技術(shù)基本上屬于應(yīng)用技術(shù),其市場開發(fā)多依賴于檢測裝置和自動控制系統(tǒng)的應(yīng)用,才能真正體現(xiàn)出它的高附加效益并形成現(xiàn)實(shí)市場。也即發(fā)展報(bào)警器技術(shù)要以市場為導(dǎo)向,實(shí)行需求牽引。技術(shù)、投資兩個密集技術(shù)密集是指報(bào)警器在研制和制造過程中技術(shù)的多樣性、邊緣性、綜合性和技藝性。它是多種高技術(shù)的集合產(chǎn)物。由于技術(shù)密集也自然要求人才密集。投資密集是指研究開發(fā)和生產(chǎn)某一種報(bào)警器產(chǎn)品要求一定的投資強(qiáng)度,尤其是在工程化研究以及建立規(guī)模經(jīng)濟(jì)生產(chǎn)線時,更要求較大的投資。增加投資和正確的投資方向是提高報(bào)警器產(chǎn)業(yè)水平的主要條件之一,也是企事業(yè)決策者謀求最佳經(jīng)濟(jì)效益的重要手段。產(chǎn)品、產(chǎn)業(yè)兩大分散,產(chǎn)品結(jié)構(gòu)和產(chǎn)業(yè)結(jié)構(gòu)的兩大分散是指報(bào)警器產(chǎn)品門類品種繁多,生產(chǎn)、研究單位分布在除地方外有12個部委〔電子、機(jī)械、科學(xué)院、航空航天、教委、冶金、船舶、鐵道、輕工、化工、煤炭等,其應(yīng)用滲透到各個產(chǎn)業(yè)部門,它的發(fā)展既是各產(chǎn)業(yè)發(fā)展的推動力。只有按照市場需求,不斷調(diào)整產(chǎn)業(yè)結(jié)構(gòu)和產(chǎn)品結(jié)構(gòu),才能實(shí)現(xiàn)報(bào)警器產(chǎn)業(yè)的全面、協(xié)調(diào)、持續(xù)發(fā)展。在國家的支持下,"八五"以來,我國的報(bào)警器技術(shù)及其產(chǎn)業(yè)取得了長足進(jìn)步。在學(xué)術(shù)交流方面,1989年10月由敏感元器件與報(bào)警器分會發(fā)起主辦的"STC〃89首屆全國敏感元件與報(bào)警器學(xué)術(shù)會議"已延續(xù)至今,固定每兩年召開一次,每逢活動不但國內(nèi)學(xué)者、企業(yè)家云集且有不少其它國家的人士參加。目前,其論值組織機(jī)構(gòu)為:"全國敏感元件與報(bào)警器學(xué)術(shù)團(tuán)體聯(lián)合組織委員會"。在原電子工業(yè)部的努力及敏感元器件與報(bào)警器分會的積極組織下,實(shí)施的"雙加工程"即:加快力度加快發(fā)展,的方針指導(dǎo)下,建立了我國敏感元器件與報(bào)警器生產(chǎn)基地。這三大基地分別為:"XX基地",主要是建立力、光敏規(guī)模經(jīng)濟(jì)。"XX基地",1990年2月成立了"XX省敏感技術(shù)產(chǎn)業(yè)集團(tuán)公司"主要是建立電壓敏、熱敏、汽車電子規(guī)模經(jīng)濟(jì)為主要目標(biāo)。"XX基地"主要建立氣、濕敏規(guī)模經(jīng)濟(jì)為主要目標(biāo)。多年來,三大基地在發(fā)展過程中雖然興衰不一,歷史地看,它對我國敏感元件與報(bào)警器行業(yè)的建設(shè)起到了一定的推動作用。"九五"期間報(bào)警器技術(shù)研究國家重點(diǎn)科技攻關(guān)項(xiàng)目取得了51個品種86個規(guī)格的新產(chǎn)品。初步建立了敏感元件與報(bào)警器產(chǎn)業(yè)。產(chǎn)品已進(jìn)入到億萬人民的家庭生活中,并已在國民經(jīng)濟(jì)各部門和國防建設(shè)中得到一定應(yīng)用。近年來,在研發(fā)主力軍的建設(shè)方面,主要表現(xiàn)在:建立了"傳感技術(shù)國家重點(diǎn)實(shí)驗(yàn)室"、"微米/納米國家重點(diǎn)實(shí)驗(yàn)室"、"國家傳感技術(shù)工程中心"等研究開發(fā)基地。全國已有1688家企事業(yè)從事報(bào)警器的研制、生產(chǎn)和應(yīng)用,其中從事MEMS研制生產(chǎn)的已有50多家。目前全行業(yè)正在執(zhí)行"十五"規(guī)劃,MEMS等5項(xiàng)新型報(bào)警器已列入研究開發(fā)的重點(diǎn);國家計(jì)委決定從20XX開始組織實(shí)施的新型電子元器件產(chǎn)業(yè)化專項(xiàng)中有5項(xiàng)新型敏感元件與報(bào)警器已經(jīng)啟動;一些省、市新建立的"報(bào)警器產(chǎn)業(yè)基地"、"MEMS科技股份",呈現(xiàn)出良好的發(fā)展態(tài)勢。單片機(jī)相關(guān)知識介紹單片機(jī)中斷與復(fù)位2.1.1單片機(jī)中斷系統(tǒng)1.中斷的概念中斷是通過硬件來改變CPU程序運(yùn)行的方向。計(jì)算機(jī)在執(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單片機(jī)有5個中斷源,可提供兩個中斷優(yōu)先級,即可實(shí)現(xiàn)二級中斷嵌套。5個中斷源的排列順序由中斷優(yōu)先級控制寄存器IP和順序查詢邏輯電路共同決定。5個中斷源對應(yīng)5個固定的中斷入口地址。<1>中斷請求源:外部中斷請求源:即外中斷0和1,經(jīng)由外部引腳引入的,在單片機(jī)上有兩個引腳,名稱為INT0、INT1,也就是P3.2、P3.3這兩個引腳。在內(nèi)部的TCON中有四位是與外中斷有關(guān)的。IT0:INT0觸發(fā)方式控制位,可由軟件進(jìn)和置位和復(fù)位,IT0=0,INT0為低電平觸發(fā)方式,IT0=1,INT0為負(fù)跳變觸發(fā)方式。IE0:INT0中斷請求標(biāo)志位。當(dāng)有外部的中斷請求時,這位就會置1〔這由硬件來完成,在CPU響應(yīng)中斷后,由硬件將IE0清0。IT1、IE1的用途和IT0、IE0相同。<2>內(nèi)部中斷請求源:TF0:定時器T0的溢出中斷標(biāo)記,當(dāng)T0計(jì)數(shù)產(chǎn)生溢出時,由硬件置位TF0。當(dāng)CPU響應(yīng)中斷后,再由硬件將TF0清0。TF1:與TF0類似。TI、RI:串行口發(fā)送、接收中斷。<3>中斷允許寄存器IE中斷的允許或禁止是由片內(nèi)可進(jìn)行位尋址的8位中斷允許寄存器IE來控制的。見表2-1表2-18位中斷允許寄存器EAXXESET1EX1ET0EX0其中EA是總開關(guān),如果它等于0,則所有中斷都不允許。ES-串行口中斷允許ET1-定時器1中斷允許,EX1-外中斷1中斷允許。ET0-定時器0中斷允許,EX0-外中斷0中斷允許。<4>五個中斷源的自然優(yōu)先級與中斷服務(wù)入口地址外中斷0:0003H 定時器0:000BH外中斷1:0013H 定時器1:001BH串口:0023H它們的自然優(yōu)先級由高到低排列。中斷優(yōu)先級中由中斷優(yōu)先級寄存器IP來置值的,IP中某位設(shè)為1,相應(yīng)的中斷就是高優(yōu)先級,否則就是低優(yōu)先級。XXXPSPT1PX1PT0PX02.1.2單片機(jī)復(fù)位電路復(fù)位是單片機(jī)的初始化操作,其主要功能是把PC初始化位0000H單元開始執(zhí)行程序。除了進(jìn)入系統(tǒng)的正常初始化之外,當(dāng)由于程序運(yùn)行出錯或操作錯誤使系統(tǒng)處于死鎖狀態(tài)時,為擺脫困境,也需按復(fù)位鍵重新啟動。除PC之外,復(fù)位操作還對其它一些專用寄存器有影響,他們的復(fù)位狀態(tài)如下;PC0000HTCON00HACC00HTLO 00HPSW00HTH000HSP07HTL100HDPTR0000HTH100HP0—P30FFHSCON00HIPxx000000BSBUF不定IE0x000000BPCON0xx0000BTMOD00H復(fù)位操作還對單片機(jī)的個別引腳信號有影響,例如把ALE和信號變?yōu)闊o效狀態(tài),即ALE=0,=1。本實(shí)驗(yàn)采用按鍵電平復(fù)位方式,晶振為12MHz,R1為200Ω,R2為2K,C為10uF。復(fù)位電路雖然簡單,但其作用非常重要。一個單片機(jī)是否正常工作,首先要檢查是否能復(fù)位成功。AT89C51單片機(jī)對ADC0809的接口MCS-51與ADC接口時必須弄清并處理好三個問題:1.要給START線送一個100ns寬的啟動正脈沖;2.獲取EOC線上的狀態(tài)信息,因?yàn)樗茿/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)換正在進(jì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)部有一個8位"三態(tài)輸出鎖存器"可以鎖存A/D轉(zhuǎn)換后的數(shù)字量,故它本身既可看作一種輸入設(shè)備,也可認(rèn)為是并行I/O接口芯片。因此,ADC0809可以直接和MCS-51接口,當(dāng)然也可通過像8255這樣的其他芯片連接。但在大多數(shù)情況下,51系列單片機(jī)是和ADC0809直接相連的AT89C51的介紹是一個低電壓,高性能CMOS8位單片機(jī),片內(nèi)含4kbytes的可反復(fù)擦寫的Flash只讀程序存儲器和128bytes的隨機(jī)存取數(shù)據(jù)存儲器〔RAM,器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲單元,內(nèi)置功能強(qiáng)大的微型計(jì)算機(jī)的AT89C51提供了高性價(jià)比的解決方案。

AT89C51是一個低功耗高性能單片機(jī),40個引腳,32個外部雙向輸入/輸出〔I/O端口,同時內(nèi)含2個外中斷口,2個16位可編程定時計(jì)數(shù)器,2個全雙工串行通信口,AT89C51可以按照常規(guī)方法進(jìn)行編程,也可以在線編程。其將通用的微處理器和Flash存儲器結(jié)合在一起,特別是可反復(fù)擦寫的Flash存儲器可有效地降低開發(fā)成本。硬件部分的設(shè)計(jì)及調(diào)試硬件部分的設(shè)計(jì)系統(tǒng)的組成整個報(bào)警器由三個部分組成:濃度檢測及顯示模塊。主控模塊和報(bào)警及事故處理模塊。系統(tǒng)的組成框圖如圖3-4所示。故障處理報(bào)警控制濃度顯示AT89C51氣體濃度檢測工作狀態(tài)設(shè)置故障處理報(bào)警控制濃度顯示AT89C51氣體濃度檢測工作狀態(tài)設(shè)置圖3-4系統(tǒng)組成框圖系統(tǒng)各模塊功能1.氣體濃度檢測模塊系統(tǒng)采用三點(diǎn)單獨(dú)檢測的方法,可用來巡回檢測三個不同的房間;也可用來巡回檢測同一個房間的不同方位.檢測器件選用高溫一氧化碳?xì)怏w傳感器<GS-A1>,該傳感器對一氧化碳具有很高的靈敏度,穩(wěn)定性和抗?jié)裥粤己?加活性碳罩后,可防止乙醇等有機(jī)氣體的干擾.檢測結(jié)果經(jīng)高精度運(yùn)放器OP07放大后,送入ADC0809模P數(shù)轉(zhuǎn)換芯片進(jìn)行模>數(shù)轉(zhuǎn)換,單個傳感器檢測電路圖如圖5。2.模數(shù)轉(zhuǎn)換模塊在本設(shè)計(jì)中,另一重要模塊就是A/D模數(shù)轉(zhuǎn)換模塊。因?yàn)槟M信號不能直接送往單片機(jī)進(jìn)行處理,必須進(jìn)行A/D轉(zhuǎn)換。模數(shù)轉(zhuǎn)換的過程有四個階段,即:采樣,保持,量化和編碼。本設(shè)計(jì)利用ADC0809實(shí)現(xiàn)模數(shù)轉(zhuǎn)換。ADC0809是8位逐次漸進(jìn)型的A/D轉(zhuǎn)換器,它采用COMS工藝20個引腳雙列直插式封裝,它有三態(tài)瑣存器,直接驅(qū)動數(shù)據(jù)總線,與微機(jī)相連時不需要附加接口電路。ADC0809的主要性能如下:1.分辨率為8位。2.最大轉(zhuǎn)換誤差為1LSB。3.轉(zhuǎn)換時間為100uS。4.邏輯點(diǎn)平與COMS和TTL相兼容。5.+5V單電源供電。6.可對0到+5V的輸入模擬信號進(jìn)行轉(zhuǎn)換。圖3-5A/D轉(zhuǎn)換模塊引腳圖程序中預(yù)采用模數(shù)轉(zhuǎn)換電路由ADC0809芯片組成,三路檢測結(jié)果從IN0、IN1、IN2輸入,轉(zhuǎn)換順序由ADDA、ADDB、ADDC控制,轉(zhuǎn)換結(jié)果送單片機(jī)P0口供單片機(jī)進(jìn)行數(shù)據(jù)處理。3.顯示電路由P0口輸入的數(shù)據(jù),在單片機(jī)內(nèi)部進(jìn)行標(biāo)度變換后,從單片機(jī)的串行口輸出進(jìn)行顯示.系統(tǒng)的工作狀態(tài)和氣體濃度,采用LED數(shù)碼管顯示,每30秒刷新一次.為了不再擴(kuò)展IPO口,系統(tǒng)采用串行口的移位功能擴(kuò)展為4位靜態(tài)顯示電路.第一位為系統(tǒng)工作狀態(tài)顯示,后三位為一氧化碳?xì)怏w濃度顯示.當(dāng)?shù)谝晃粸?00"時,表示系統(tǒng)工作在三點(diǎn)巡回檢測同一個房間狀態(tài);為"8"時表示系統(tǒng)工作在三點(diǎn)巡回檢測同一個房間正常工作狀態(tài);為"1"、"2"、"3"時表示系統(tǒng)工作在單獨(dú)檢測狀態(tài),此時后三位顯示的數(shù)據(jù)分別為第1號、第2號、第3號傳感器所檢測到的一氧化碳?xì)怏w濃度。濃度顯示單位為5ppm.74LS164為串行輸入,并行輸出寄存器,當(dāng)P2.0=1且AT89C51的TXD端有輸出時,74LS164接收串行數(shù)據(jù),更新顯示;當(dāng)P2.0=0時,顯示的內(nèi)容不變。4.主控模塊系統(tǒng)采用單片機(jī)進(jìn)行控制,選用AT89C51單片機(jī).該單片機(jī)為ATMEL公司的產(chǎn)品,其指令系統(tǒng)完全與8031/8051兼容,內(nèi)帶4K字節(jié)的內(nèi)存和程序保護(hù)系統(tǒng),便于程序的調(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)進(jìn)入正常工作狀態(tài);P1.1端外接的開關(guān)為三點(diǎn)巡回測量同一個房間控制開關(guān),當(dāng)開關(guān)閉合時有效;P1.2~P1.4端接ADC0809的ADDA、ADDB、ADDC三端,控制ADC0809的八路模擬輸入轉(zhuǎn)換.4>P2口的功能:P2.1端與WR端通過外接的與門求反后與ADC0809的START和ALE相連,用以啟動APD轉(zhuǎn)換,且將8路地址鎖存;P2.1端與RD端通過外接的與門求反后與ADC0809的OE端相連,用以允許將APD轉(zhuǎn)換結(jié)果輸出,讓單片機(jī)讀取轉(zhuǎn)換結(jié)果;P2.2端用作系統(tǒng)音樂報(bào)警信號控制端,高電平有效;P2.3端用作排風(fēng)扇啟動信號控制端,高電平有效;P2.4端用作電磁閥啟動信號控制端,高電平有效.5>P3口的功能:P3.0、P3.1端和P2.0端用于控制系統(tǒng)的顯示輸出.5.報(bào)警與事故處理模塊當(dāng)氣體濃度超過允許值時,該模塊動作,發(fā)出警報(bào)信號并根據(jù)不同情況進(jìn)行事故處理.P2.2端為音樂控制端,P2.3端為電磁閥啟動控制端,P2.4為排風(fēng)扇控制端,均為高電平有效.為防止市電對系統(tǒng)的干擾,P2.3和P2.4端都經(jīng)過光電耦合管對電磁閥和排風(fēng)扇進(jìn)行控制.系統(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)一氧化碳的濃度達(dá)到100ppm時系統(tǒng)應(yīng)啟動音樂報(bào)警,若2min報(bào)警無效,系統(tǒng)應(yīng)啟動排風(fēng)扇進(jìn)行通風(fēng)排氣。3.系統(tǒng)進(jìn)入正常工作狀態(tài)后,先啟動排風(fēng)扇進(jìn)行通風(fēng),然后啟動電磁閥供給煤氣。4.系統(tǒng)進(jìn)入正常工作狀態(tài),自45min后,每隔10min音樂響起一次,用來提醒用戶在工作完畢后,停止供氣。5.在正常工作狀態(tài)下,當(dāng)系統(tǒng)檢測到一氧化碳的濃度達(dá)到300ppm時,應(yīng)關(guān)閉電磁閥,切斷煤氣通道以防止意外事故的發(fā)生。系統(tǒng)主要器件的介紹3.1.4.1GS傳感器介紹設(shè)計(jì)中所用到的氣體傳感器是GS系列傳感器,下面具體介紹一下GS系列氣體傳感器:GS系列氣敏元件采用半導(dǎo)體敏感材料,工藝獨(dú)特為國內(nèi)首創(chuàng),其靈敏度、選擇性、穩(wěn)定性、抗干擾性、響應(yīng)時間及壽命等主要性能,均達(dá)到國內(nèi)先進(jìn)水平.用該系列元件組裝成易燃易爆和有毒氣體泄漏報(bào)警器及檢測裝置,可廣泛運(yùn)用于礦山、油田、化工、國防、醫(yī)藥及家庭.GS系列傳感器主要有以下特點(diǎn):〔1靈敏度高、功耗低,輸出信號強(qiáng).〔2選擇性好、對被檢測的氣體非常敏感,而對干擾氣體則靈敏度很低〔3穩(wěn)定性、可靠性強(qiáng)〔4具有抗高溫、抗高濕性能〔5元件不含任何貴金屬催化劑,具有抗中毒及抗飽和性能.但由于氣體傳感器是使用半導(dǎo)體材料來制作,不可避免的是有溫度漂移問題,如何處理好氣體傳感器溫度補(bǔ)償問題是報(bào)警器設(shè)計(jì)的關(guān)鍵〔圖3-1、圖3-2.以前的一般做法是把報(bào)警器的報(bào)警閥值電壓作補(bǔ)償,這樣的電路會簡單一些,但溫度補(bǔ)償?shù)男Ч惶硐?主要是在低溫環(huán)境里,氣體傳感器的表面溫度降低導(dǎo)致氣體傳感器的性能變差,解決的方法是在低溫環(huán)境里提高氣體傳感器的加熱功率,使氣體傳感器的表面溫度維持相對恒定,達(dá)到使氣體傳感器穩(wěn)定工作的目的。圖3-1傳感器輸出特性曲線圖圖3-2傳感器加溫度補(bǔ)償所需的加熱電壓曲線氣體傳感器加熱電源的原理見圖3-3,利用PIC單片機(jī)的脈沖寬度調(diào)制輸出功能〔簡稱PWM,及A/D轉(zhuǎn)換輸入功能實(shí)現(xiàn)電源電壓的穩(wěn)定和自我調(diào)整。如圖所示,是降壓式開關(guān)電源〔Buck式的基本電路。其中,Vin為輸入電壓,Vout為輸出電壓,Q1、Q2為開關(guān)三極管,R1、R2、R3為電阻,L為電感,D為肖特基二極管;C為電容,MQK為氣體傳感器,通常有:,;。其中,N為脈寬占空比,Ton為開關(guān)三極管導(dǎo)通時間,Toff為開關(guān)三極管關(guān)閉時間,Rx為開關(guān)電源的負(fù)載電阻,Vp為輸出紋波電壓.實(shí)際使用開關(guān)速度為20KHz,輸出的電壓為2.25±0.01V,輸出電流為120mA,Vp≤0.1V.該電路的工作原理是:預(yù)先設(shè)定目標(biāo)工作電壓值,輸出AT89C51單片機(jī)的PWM,啟動開關(guān)電源工作,通過A/D轉(zhuǎn)換電路將電源電壓值讀入單片機(jī),如果電壓值偏離給定值,則調(diào)整PWM輸出,這樣形成一個電壓調(diào)整的閉合環(huán)路,直到電壓值維持恒定,而環(huán)境溫度將決定電壓給定值的大小,達(dá)到隨外界溫度的改變而改變加熱功率的目的,以補(bǔ)償氣體傳感器的溫度變化,同時使用開關(guān)電源減少了線性穩(wěn)壓電源的壓降損耗.該開關(guān)電源電路的電壓穩(wěn)定精度取決于單片機(jī)A/D和PWM的精度,該AT89C51單片機(jī)基本能夠滿足氣體泄漏報(bào)警器的性能需求。圖3-3傳感器加熱電源原理圖3.1.4.274LS164移位寄存器介紹74LS1648位移位寄存器〔串行輸入,并行輸出簡要說明164為8位移位寄存器,其主要電特性的典型值如下:當(dāng)清除端〔CLEAR為低電平時,輸出端〔QA-QH均為低電平。串行數(shù)據(jù)輸入端〔A,B可控制數(shù)據(jù)。當(dāng)A、B任意一個為低電平,則禁止新數(shù)據(jù)輸入,在時鐘端〔CLOCK脈沖上升沿作用下Q0為低電平。當(dāng)A、B有一個為高電平,則另一個就允許輸入數(shù)據(jù),并在CLOCK上升沿作用下決定Q0的狀態(tài)。引出端符號CLOCK時鐘輸入端CLEAR同步清除輸入端〔低電平有效A,B串行數(shù)據(jù)輸入端QA-QH輸出端邏輯及封裝圖雙列直插封裝極限值電源電壓…7V輸入電壓…5.5V工作環(huán)境溫度54164…-0~70℃儲存溫度…-65℃~150℃真值表H-高電平L-低電平X-任意電平↑-低到高電平跳變QA0,QB0,QH0-規(guī)定的穩(wěn)態(tài)條件建立前的電平QAn,QGn-時鐘最近的↑前的電平時序圖下面再介紹一下74LS164驅(qū)動數(shù)碼管:在單片機(jī)應(yīng)用系統(tǒng)中,顯示器顯示常用兩種方法:靜態(tài)顯示和動態(tài)掃描顯示。所謂靜態(tài)顯示,就是每一個顯示器都要占用單獨(dú)的具有鎖存功能的I/O接口用于筆劃段字形代碼。這樣單片機(jī)只要把要顯示的字形代碼發(fā)送到接口電路,就不用管它了,直到要顯示新的數(shù)據(jù)時,再發(fā)送新的字形碼,因此,使用這種方法單片機(jī)中CPU的開銷小。可以提供單獨(dú)鎖存的I/O接口電路很多,這里以常用的串并轉(zhuǎn)換電路74LS164為例,介紹一種常用靜態(tài)顯示電路,以使大家對靜態(tài)顯示有一定的了解。

MCS-51單片機(jī)串行口方式0為移位寄存器方式,外接6片74LS164作為6位LED顯示器的靜態(tài)顯示接口,把8031的RXD作為數(shù)據(jù)輸出線,TXD作為移位時鐘脈沖。74LS164為TTL單向8位移位寄存器,可實(shí)現(xiàn)串行輸入,并行輸出。其中A、B〔第1、2腳為串行數(shù)據(jù)輸入端,2個引腳按邏輯與運(yùn)算規(guī)律輸入信號,共一個輸入信號時可并接。T〔第8腳為時鐘輸入端,可連接到串行口的TXD端。每一個時鐘信號的上升沿加到T端時,移位寄存器移一位,8個時鐘脈沖過后,8位二進(jìn)制數(shù)全部移入74LS164中。R〔第9腳為復(fù)位端,當(dāng)R=0時,移位寄存器各位復(fù)0,只有當(dāng)R=1時,時鐘脈沖才起作用。Q1…Q8〔第3-6和10-13引腳并行輸出端分別接LED顯示器的hg···a各段對應(yīng)的引腳上。在給出了8個脈沖后,最先進(jìn)入74LS164的第一個數(shù)據(jù)到達(dá)了最高位,然后再來一個脈沖會有什么發(fā)生呢?再來一個脈沖,第一個脈沖就會從最高位移出,搞清了這一點(diǎn),下面讓我們來看電路,6片7LS164首尾相串,而時鐘端則接在一起,這樣,當(dāng)輸入8個脈沖時,從單片機(jī)RXD端輸出的數(shù)據(jù)就進(jìn)入到了第一片74LS164中了,而當(dāng)?shù)诙€8個脈沖到來后,這個數(shù)據(jù)就進(jìn)入了第二片74LS164,而新的數(shù)據(jù)則進(jìn)入了第一片74LS164,這樣,當(dāng)?shù)诹鶄€8個脈沖完成后,首次送出的數(shù)據(jù)被送到了最左面的164中,其他數(shù)據(jù)依次出現(xiàn)在第一、二、三、四、五片74LS164中。硬件電路的調(diào)試本設(shè)計(jì)的元器件較少,所以采用萬用板手工焊接。焊接完成后,檢查有無可能出現(xiàn)的虛焊、漏焊,檢查電源線和接地線。確定無問題后將電路板通電。首先用示波器觀察單片機(jī)AT89C51的18、19管腳有無頻率為10MHZ的三角波。若有,表示晶振正常工作,單片機(jī)能保證正常工作。若無,檢查晶振電路,排除故障。接著用單片機(jī)仿真器向P1口送數(shù)值,檢查LED數(shù)碼管能否正常顯示,若不能,檢查譯碼器7448是否工作,有無電壓輸出,檢查LED是否損壞。最后檢查ADC0809在有電壓1~5V接入的情況下,有無電壓輸出。若無問題,硬件調(diào)試完畢。軟件部分的設(shè)計(jì)及調(diào)試軟件部分的設(shè)計(jì)本設(shè)計(jì)的主要功能實(shí)現(xiàn)在于程序的編寫,流程圖如圖4-1:圖4-1軟件流程圖如圖所示,整個報(bào)警器程序上分成中斷取值轉(zhuǎn)換、調(diào)零、報(bào)警、顯示四大模塊主程序整個程序一共使用了兩個中斷,一個外部中斷即INT0中斷,一個定時/計(jì)數(shù)器中斷即IT0中斷.這兩個中斷各有其作用,INT0中斷是用來判斷A/D轉(zhuǎn)換器ADC0809對模擬信號的轉(zhuǎn)換是否完成,當(dāng)A/D轉(zhuǎn)換結(jié)束后,ADC0809發(fā)出結(jié)束EOC<高電平>信號,該信號可供單片機(jī)查詢,也可反相后作為向單片機(jī)發(fā)出中斷信號,而本設(shè)計(jì)正是用的這個方法,使得程序進(jìn)入中斷取值程序.而程序中所用到的IT0中斷,是為產(chǎn)生一個周期為2S的方波而設(shè)計(jì)的,其作用是為看門狗產(chǎn)生喂狗子信號.具體程序如下:ORG00HJMPSTART;主程序入口地址ORG03HJMPINTO;外中斷INTO入口ORG0BHJMPITOP;定時器0中斷入口ORG0100HSTART:MOVIE,#10000001B;INT0中斷使能MOVIP,#00000001B;INT0中斷優(yōu)先MOVTCON,#00000000B;設(shè)置INT0為電平觸發(fā)MOVSCON,#00000000B;串行口發(fā)送,接收標(biāo)志位請0MOVSP,#60H;設(shè)堆棧指針MOVTMOD,#01H;設(shè)置T0為方式1CALLPT0M0HERE:AJMPHERE;自身跳轉(zhuǎn)PT0M0:MOVTL0,#0CH;T0中斷服務(wù)程序,T0重新置初值MOVTH0,#0FEHSETBTR0;啟動T0SETBET0;允許T0中斷SETBEA;CPU開中斷RETITOP:MOVTL0,#0CH;T0中斷服務(wù)程序,T0置初值MOVTH0,0FEHCPLP1.0;P1.0狀態(tài)取反RETIACALLLED;調(diào)用LED自檢子程序MOV33H,#00H;設(shè)置中斷完成標(biāo)志為0MOVDPTR,#0FEFFH;ADC0809的端口地址MOVXDPTR,A;使BUS為高阻抗,令A(yù)DC0809開始轉(zhuǎn)換WAIT:MOVA,33H;等待A/D轉(zhuǎn)換完成信號JNZINTOKJMPWAIT;未完成則跳回等待INTOK:MOVA,32H;將最新的濃度值存入累加器中,<若A/D未工作,則A=0>JNZL1MOVA,30HJMPL2L1:MOV30H,31HMOVA,31H;將新濃度載入累加器L2:CALLBCD;調(diào)用BCD碼調(diào)整程序CALLDISP;顯示當(dāng)前濃度CALLADZERO;調(diào)用零點(diǎn)調(diào)整子程序CALLALARM;調(diào)用判斷報(bào)警程序CALLBCDCALLDISP;調(diào)用顯示子程序CLRA;清除累加器值JMPSTART;返回在主程序通過對33H中數(shù)值的判斷斷定A/D是否轉(zhuǎn)換完成,當(dāng)33H中為1時,轉(zhuǎn)換完成,程序調(diào)用調(diào)零、報(bào)警、顯示模塊對輸入數(shù)據(jù)進(jìn)行處理。調(diào)零子程序:由于未知問題,可能造成送入單片機(jī)中顯示的模擬電壓量與真實(shí)電壓存在區(qū)別,這種誤差可以通過在中斷處理中對A/D轉(zhuǎn)換的數(shù)值加上一個調(diào)整值來解決。這樣,我們就能根據(jù)實(shí)際情況來對報(bào)警器輸出的數(shù)值進(jìn)行控制,使其記數(shù)更加精確,使用更方便。我們可以利用對端口的電平高低來判斷是否需要進(jìn)行調(diào)零處理,故可將按鍵開關(guān)接于端口P2.2.若開關(guān)按下,則說明有調(diào)零需要,于是進(jìn)入調(diào)零處理程序;若開關(guān)沒有按下,則說明沒有調(diào)零需要,系統(tǒng)進(jìn)入下一步.通過設(shè)置一個按鍵,既可保證程序順利進(jìn)行,又方便用戶使用.具體程序如下:ADZERO: CALLDELAYP2.2,JMP1 ;判斷調(diào)零按鈕是否按下,沒按則跳JMP1 ………..JMP1: RET通過對P2.2位的判斷來分辨是否有調(diào)零請求,若有則跳入調(diào)零模式,調(diào)零模式中程序如下:LOOP1: CALLDELAY JNBP2.2,$;消除抖動延時 MOVA,40H;將調(diào)零預(yù)設(shè)值40H送入 CLRC;清除進(jìn)位標(biāo)志 SUBBA,#01H;調(diào)零值減1 JNCLOOP2;未借位則跳LOOP2 MOVA,#05H;有借位則重設(shè)調(diào)零值為5LOOP2: MOV40H,A;將調(diào)零值送回40H保存 MOVA,R3;將當(dāng)前濃度值送入AJZXEND DECA;當(dāng)前濃度值減1〔響應(yīng)調(diào)整變化XEND1:MOV30H,A;送回30H保存MOV31H,A;送回31H保存CALLBCD;調(diào)用BCD碼調(diào)整 CALLDISP;調(diào)用顯示子程序JMPLOOPXEND:MOVA,#63HJMPXEND1進(jìn)入調(diào)零模式后,若有按鍵則,LED數(shù)碼管示數(shù)響應(yīng)按鍵變化。若3秒無任何按鍵,則退出調(diào)零模式返回主程序。顯示子程序因?yàn)橥ㄟ^A/D轉(zhuǎn)換進(jìn)入單片機(jī)8051的濃度值以十六進(jìn)制存在,為了讓LED顯示需要轉(zhuǎn)換為BCD碼,其BCD碼轉(zhuǎn)換程序如下:BCD: MOV55H,#00H;存放BCD轉(zhuǎn)換中的百位數(shù)MOV56H,#00H;存放BCD轉(zhuǎn)換中的十位數(shù) CLRC;清除進(jìn)位標(biāo)志為下面的SUBB準(zhǔn)備MOVR2,#00H;清除R2CHAN: SUBBA,#64H;減100 JCCHAN1;不能減,轉(zhuǎn) INCR1;百位值 JMPCHAN;循環(huán)判斷百位CHAN1:ADDA,#64H;還原百位數(shù)CLRC;清除進(jìn)位標(biāo)志為下面的SUBB準(zhǔn)備CHAN2:SUBBA,#0AH;減10 JCCHAN3;不夠減,跳 INCR2;夠減十位加1 JMPCHAN2;重復(fù)減10CHAN3:ADDA,#0AH;還原十位數(shù) MOV60H,R2;把十位數(shù)放60H中 MOV61H,A;把個位數(shù)放61H中 RET這樣把轉(zhuǎn)換成的BCD碼,個位存于61H中,十位存入60H中,再編寫顯示模塊如下:DISP:MOVR7,#03HMOVR0,#60HLED1:MOVA,R0MOVDPTR,#TABLELED2:MOVCA,A+DPTRMOVSBUF,AJNBTI,$CLRTIINCR0DJNZR7,LED1RET將數(shù)值送入到LED顯示74LS164驅(qū)動數(shù)碼管的過程:在單片機(jī)應(yīng)用系統(tǒng)中,顯示器顯示常用兩種方法:靜態(tài)顯示和動態(tài)掃描顯示。所謂靜態(tài)顯示,就是每一個顯示器都要占用單獨(dú)的具有鎖存功能的I/O接口用于筆劃段字形代碼。這樣單片機(jī)只要把要顯示的字形代碼發(fā)送到接口電路,就不用管它了,直到要顯示新的數(shù)據(jù)時,再發(fā)送新的字形碼,因此,使用這種方法單片機(jī)中CPU的開銷小??梢蕴峁﹩为?dú)鎖存的I/O接口電路很多,這里以常用的串并轉(zhuǎn)換電路74LS164為例,介紹一種常用靜態(tài)顯示電路,以使大家對靜態(tài)顯示有一定的了解。

MCS-51單片機(jī)串行口方式0為移位寄存器方式,外接3片74LS164作為3位LED顯示器的靜態(tài)顯示接口,把8031的RXD作為數(shù)據(jù)輸出線,TXD作為移位時鐘脈沖。74LS164為TTL單向8位移位寄存器,可實(shí)現(xiàn)串行輸入,并行輸出。其中A、B〔第1、2腳為串行數(shù)據(jù)輸入端,2個引腳按邏輯與運(yùn)算規(guī)律輸入信號,共一個輸入信號時可并接。T〔第8腳為時鐘輸入端,可連接到串行口的TXD端。每一個時鐘信號的上升沿加到T端時,移位寄存器移一位,8個時鐘脈沖過后,8位二進(jìn)制數(shù)全部移入74LS164中。R〔第9腳為復(fù)位端,當(dāng)R=0時,移位寄存器各位復(fù)0,只有當(dāng)R=1時,時鐘脈沖才起作用。Q1…Q8〔第3-6和10-13引腳并行輸出端分別接LED顯示器的hg···a各段對應(yīng)的引腳上。在給出了8個脈沖后,最先進(jìn)入74LS164的第一個數(shù)據(jù)到達(dá)了最高位,然后再來一個脈沖會有什么發(fā)生呢?再來一個脈沖,第一個脈沖就會從最高位移出,搞清了這一點(diǎn),下面讓我們來看電路,3片7LS164首尾相串,而時鐘端則接在一起,這樣,當(dāng)輸入8個脈沖時,從單片機(jī)RXD端輸出的數(shù)據(jù)就進(jìn)入到了第一片74LS164中了,而當(dāng)?shù)诙€8個脈沖到來后,這個數(shù)據(jù)就進(jìn)入了第二片74LS164,而新的數(shù)據(jù)則進(jìn)入了第一片74LS164,這樣,當(dāng)?shù)诹鶄€8個脈沖完成后,首次送出的數(shù)據(jù)被送到了最左面的164中,其他數(shù)據(jù)依次出現(xiàn)在第一、二、三片74LS164中。由于本設(shè)計(jì)采用的是機(jī)械按鍵,與地線想連,按鍵按下,輸入為低電平,釋放按鍵則輸入為高電平。實(shí)際上,機(jī)械式按鍵的落片存在著輕微的彈跳現(xiàn)象其時間由操作員按鍵的動作所確定,為了確保CPU對按鍵的一次閉合僅做一次處理,必須去除抖動,一般通過調(diào)用子程序延時來解決,在鍵的穩(wěn)定閉合或釋放時才讀出鍵的狀態(tài),具體程序如下:DELAY: MOVR5,#60設(shè)定30毫秒D1: MOVR6,#248;設(shè)定0.5毫秒DJNZR6,$ DJNZR5,D1 RET因?yàn)槭⒕w為12MHZ,一個機(jī)器周期為1微秒,這樣如上程序可達(dá)到延時30毫秒的目的。報(bào)警子程序本設(shè)計(jì)采用了聲光報(bào)警,當(dāng)探測器探測的濃度超過報(bào)警設(shè)定值時就會同時產(chǎn)生音樂報(bào)警和燈光報(bào)警,此時紅燈亮啟,喇叭發(fā)出音樂,而正常時,喇叭關(guān)閉,紅燈關(guān)閉,而顯示正常的綠色LED亮啟,本設(shè)計(jì)為了安全起見,還設(shè)置了事故處理裝置,即出現(xiàn)危險(xiǎn)使,探測器除了報(bào)警外,還會使排氣扇的閥門打開,對室內(nèi)進(jìn)行排氣,以免產(chǎn)生氣體爆炸或是中毒.具體程序如下ALARM:MOVA,30H;將當(dāng)前濃度值送如累加器CLRC;清除進(jìn)位標(biāo)志SUBBA,50H;與預(yù)警值進(jìn)行判斷JNCGOOD1;若無借位,則當(dāng)前濃度值高于或者等于預(yù)警值,跳GOOD1報(bào)警SETBP1.6;關(guān)閉聲光報(bào)警SETBP1.7CLRP2.3;關(guān)閉排氣閥門SETBP1.5;關(guān)閉黃色LEDCLRP1.4;打開綠色LED〔顯示正常RETGOOD1:CLRP1.6;打開聲光報(bào)警〔危險(xiǎn)報(bào)警CLRP1.7CLRP2.3;打開排氣閥門SETBP1.5;關(guān)閉黃色LEDSETBP1.4;關(guān)閉綠色LED〔顯示不正常?RET中斷取值子程序:從硬件電路圖可以看出,A/D0809的INTR端通過反相器與單片機(jī)的外部中斷INT0相連,由A/D0809的管腳功能可知,當(dāng)A/D開始轉(zhuǎn)換送入的模擬電壓時,INTR端為低電平,轉(zhuǎn)換完成后,INTR端變成高電平,通過反相器變成低電平使單片機(jī)89C51產(chǎn)生外部中斷,進(jìn)入中斷處理程序:;*****************INTO:PUSHACC;將累加器值壓入堆棧保存PUSHPSW;將PSW值壓入堆棧保存MOVXA,DPTR;將A/D轉(zhuǎn)換好的值送入累加器MOV32H,A;將A/D讀得的值存入32H保存CLRCSUBBA,51H;判斷獲得的電壓是否小于1V<50>JNCOK1MOV32H,#00H;當(dāng)前A/D轉(zhuǎn)換的電壓小于1V,則A/D轉(zhuǎn)換得的示數(shù)為00JMPEMP1OK1:MOVA,32HCALLADJUST;調(diào)用ADJUST將其調(diào)整為濃度對應(yīng)的16進(jìn)制CALLADDD;調(diào)用ADDD將其與調(diào)零預(yù)設(shè)值相加,得到調(diào)整后的16進(jìn)制MOV31H,A;將調(diào)整后的值送入31H保存EMP1:MOVIE,#10000000B;關(guān)閉INT0中斷使能,關(guān)閉中斷POPPSW;至堆棧取回PSW值POPACC;至堆棧取回ACC值MOV33H,#01H;中斷完成,設(shè)置完成標(biāo)記33H為1RETI;*****************;調(diào)整相加子程序;*****************ADJUST:CLRCSUBBA,#32H;將A/D轉(zhuǎn)換的值減50再除10乘5可得當(dāng)前濃度的16進(jìn)制值MOVB,#0AHDIVABMOVB,#05HMULABRETADDD:ADDA,40HTABLE:DB0C0H,0F9H,0A4H,0B0H,99HDB92H,82H,0F8H,80H,90HEND在中斷處理過程中,因?yàn)锳/D0809在模擬電壓為1~5V時送入單片機(jī)的數(shù)值為50~250,為了使示數(shù)在0~99間變化,編寫數(shù)值轉(zhuǎn)換程序如下:ADJUST:CLRCSUBBA,#32H;將A/D轉(zhuǎn)換的值減50再除10乘5可得當(dāng)前濃度的16進(jìn)制值 MOVB,#0AH DIVAB MOVB,#05H MULAB RET中斷處理過程中斷處理過程可分為三個階段,即中斷響應(yīng),中斷處理和中斷返回。圖2-1單片機(jī)中斷流程圖圖中,保護(hù)現(xiàn)場之后的開中斷是為了允許有更高級中斷打斷此中斷服務(wù)程序。軟件程序的調(diào)試程序輸入完后就進(jìn)入調(diào)試階段。調(diào)試時采用逐個調(diào)試的方法,即先調(diào)試其中每個子程序,確保無誤后再對整個程序進(jìn)行整體調(diào)試,直到程序順利運(yùn)行,達(dá)到設(shè)計(jì)目的。事實(shí)證明了調(diào)試過程是極其緩慢與艱苦的,在軟件調(diào)試過程中,由于對中斷操作的處理不當(dāng),使我很長時間一直停滯不前,通過對自己耐心極限的挑戰(zhàn),最終發(fā)現(xiàn)了問題,我相信這是對自己獨(dú)立工作能力的一個很好的鍛煉,一次難得的經(jīng)歷。結(jié)論通過這次畢業(yè)設(shè)計(jì),使我對理論和實(shí)踐之間的相互關(guān)系有了更清楚的認(rèn)識,理論是實(shí)踐的基礎(chǔ),扎實(shí)的理論知識是做好工作的前提條件。完成這個軟硬結(jié)合的綜合性設(shè)計(jì),不僅使我鞏固了四年來所學(xué)的專業(yè)知識,而且還學(xué)到了不少新的知識,特別是強(qiáng)化了自己充分利用圖書館資源,獨(dú)立思考問題、解決問題的能力。通過這次設(shè)計(jì),我深深地體會到搞技術(shù)是一件非常嚴(yán)謹(jǐn)?shù)氖虑椤闹形业玫搅瞬簧賹氋F的經(jīng)驗(yàn)和教訓(xùn),我相信這些會讓我在今后的工作中取得更好的成績打下堅(jiān)實(shí)的基礎(chǔ)。通過準(zhǔn)備這次設(shè)計(jì),我全面的復(fù)習(xí)了匯編語言和MCS-51單片機(jī),用到了電路設(shè)計(jì)的各種知識,在工作前夕起到一個大練兵的作用,為我以后的工作帶來極大的方便。同時通過這次設(shè)計(jì)我充分認(rèn)識到自己知識的貧乏,需要學(xué)習(xí)的東西還很多,充分激發(fā)自己的求知欲望。這是一次寶貴的經(jīng)驗(yàn),必將使我終生難忘。致謝整個設(shè)計(jì)過程中,我得到了老師們的精心指導(dǎo),老師們嚴(yán)謹(jǐn)?shù)墓ぷ髯黠L(fēng)以及對事業(yè)的熱愛,對學(xué)生的關(guān)心,給我留下了深刻的印象,在今后的工作、學(xué)習(xí)中我要以導(dǎo)師為榜樣,把認(rèn)真的工作態(tài)度和嚴(yán)謹(jǐn)?shù)墓ぷ髯黠L(fēng)帶到工作中去。在此,請?jiān)试S我向培養(yǎng)我的李兵老師表示深深地感謝和敬意,感謝他對我細(xì)心的教導(dǎo),每當(dāng)我遇到問題時,李兵老師總會對我耐心解答,給我的畢業(yè)設(shè)計(jì)提出了很多寶貴的意見,讓我受益非淺,學(xué)到了很多東西,萬分的感謝他。我還要感謝和我同組的同學(xué)聶添武,雖然他做的是硬件,但在軟件方面,他也給過我很多建議。最后,我還要感謝我的同學(xué),當(dāng)我在設(shè)計(jì)中遇到困難時,他們也會和我一起解決,給我信心和鼓勵,相信沒有他們對我到全力支持,單憑我一個人,是很難完成這個艱巨任務(wù)的,謝謝他們。參考文獻(xiàn)1何道清編著傳感器與傳感器技術(shù)2004北京:科學(xué)出版社2喻萍郭文川主編《單片機(jī)原理與接口技術(shù)》2005化工出版社3先鋒工作室編著單片機(jī)程序設(shè)計(jì)實(shí)例2002北京:清華大學(xué)出版社4吳金戊沈慶陽郭庭吉編著8051單片機(jī)實(shí)踐與應(yīng)用2002.12北京:清華大學(xué)出版社5馬平姚萬業(yè)王炳謙編著微機(jī)原理及應(yīng)用2002.12北京:中國電力出版社6張迎新杜小平等編著單片機(jī)初級教程2000.6北京:北京航空航天大學(xué)出版社7張金鐸編著《傳感器及其應(yīng)用》XX電子科技大學(xué)出版社8.張慶雙編著《使用電子電路200例》機(jī)械工業(yè)出版社附錄軟件設(shè)計(jì)源程序;30H:存放舊濃度地址 31H:現(xiàn)在濃度值〔A/D轉(zhuǎn)換后換算取得的新濃度;40H:初始調(diào)零值=032H:A/D轉(zhuǎn)換后的值33H:A/D轉(zhuǎn)換完成〔中斷完成標(biāo)志;50H:初始預(yù)警值=50 55H:存放BCD轉(zhuǎn)換中的百位數(shù);56H:存放BCD轉(zhuǎn)換中的十位數(shù) 60H:轉(zhuǎn)換完的個位存放地址;61H:轉(zhuǎn)換完的十位存放地址 62H:轉(zhuǎn)換完的百位存放地址;63H:存放轉(zhuǎn)換完的壓縮BCD碼供顯示用 R1:BCD轉(zhuǎn)換中存放的百位數(shù)〔可做百位報(bào)警;R2:BCD轉(zhuǎn)換中存放十位數(shù)>60H R3:當(dāng)前濃度值保存;R4:設(shè)置改變模式延時時間 R5,R6:延時程序中用到;SP:堆棧->#70H;*****************;可燃?xì)怏w探測報(bào)警器;*****************;*****************;各引腳用途及系統(tǒng)功能說明;P1.4接綠燈,指示正常;P1.5接黃燈,指示故障;P1.6接紅燈,燈光報(bào)警;P1.7接喇叭,音樂報(bào)警;P2.0接ADC0809;P2.2接調(diào)零開關(guān);P2.3接繼電器,控制排氣閥門;*****************;主程序;*****************ORG00HJMPSTART;主程序入口地址ORG03HJMPINTO;外中斷INTO入口ORG0BHJMPITOP;定時器0中斷入口ORG0100HSTART:MOVIE,#10000001B;INT0中斷使能MOVIP,#00000001B;INT0中斷優(yōu)先MOVTCON,#00000000B;設(shè)置INT0為電平觸發(fā)MOVSCON,#00000000B;串行口發(fā)送,接收標(biāo)志位請0MOVSP,#60H;設(shè)堆棧指針MOVTMOD,#01H;設(shè)置T0為方式1CALLPT0M0HERE:AJMPHERE;自身跳轉(zhuǎn)PT0M0:MOVTL0,#0CH;T0中斷服務(wù)程序,T0重新置初值MOVTH0,#0FEHSETBTR0;啟動T0SETBET0;允許T0中斷SETBEA;CPU開中斷RETITOP:MOVTL0,#0CH;T0中斷服務(wù)程序,T0置初值MOVTH0,0FEHCPLP1.0;P1.0狀態(tài)取反RETIACALLLED;調(diào)用LED自檢子程序MOV33H,#00H;設(shè)置中斷完成標(biāo)志為0MOVDPTR,#0FEFFH;ADC0809的端口地址MOVXDPTR,A;使BUS為高阻抗,令A(yù)DC0809開始轉(zhuǎn)換WAIT:MOVA,33H;等待A/D轉(zhuǎn)換完成信號JNZINTOKJMPWAIT;未完成則跳回等待INTOK:MOVA,32H;將最新的濃度值存入累加器中,<若A/D未工作,則A=0>JNZL1MOVA,30HJMPL2L1:MOV30H,31HMOVA,31H;將新濃度載入累加器L2:CALLBCD;調(diào)用BCD碼調(diào)整程序CALLDISP;顯示當(dāng)前濃度CALLADZERO;調(diào)用零點(diǎn)調(diào)整子程序CALLALARM;調(diào)用判斷報(bào)警程序CALLBCDCALLDISP;調(diào)用顯示子程序CLRA;清除累加器值JMPSTART;返回;在主程序通過對33H中數(shù)值的判斷斷定A/D是否轉(zhuǎn)換完成;當(dāng)33H中為1時,轉(zhuǎn)換完成,程序調(diào)用調(diào)零、報(bào)警、顯示模塊對輸入數(shù)據(jù)進(jìn)行處理。;*****************;LED自檢子程序;*****************LED:CLRP1.4;綠燈CLRP1.5;黃燈CLRP1.6;紅燈CALLDELAY2sDELAY2s:MOVR5,#100DLY1:MOVR6,#100DLY2:MOVR7,#100DJNZR7,$DJNZR6,DLY2DJNZR5,DLY1RETSETBP1.4SETBP1.5SETBP2.6RET;*****************;調(diào)零子程序;〔初始報(bào)警值為50;*****************ADZERO:CALLDELAY20msP2.2,JMP1;判斷調(diào)零按紐是否按下,沒有則跳JMP1LOOP1:CALLDELAY20msJNBP2.2,$;消除抖動延時MOVA,40H;將調(diào)零預(yù)設(shè)值40H送入CLRC;清除進(jìn)位標(biāo)志SUBBA,#01H;調(diào)零值減1JNCLOOP2;未借位則跳LOOP2MOVA,#05H;有借位則重設(shè)調(diào)零值為5LOOP2:MOV40H,A;將調(diào)零值送回40H保存MOVA,R3;將當(dāng)前濃度值送入AJZXENDDECA;當(dāng)前濃度值減1<響應(yīng)調(diào)整變化>XEND1:MOV30H,A;送回30H保存MOV31H,A;送回31H保存CALLBCDCALLDISPJMPLOOP1XEND:MOVA,#63HJMPXEND1JMP1:RET;*****************;3位串行靜態(tài)顯示子程序;*****************BCD:MOV55H,#00H;存放BCD轉(zhuǎn)換中的百位數(shù)MOV56H,#00H;存放BCD轉(zhuǎn)換中的十位數(shù)CLRC;清楚進(jìn)位標(biāo)志為下面的SUBB準(zhǔn)備MOVR2,#00H;清楚R2CHAN:SUBBA,#64H;減100JCCHAN1;不能減,轉(zhuǎn)INCR1;百位值JMPCHAN;循環(huán)判斷百位CHAN1:ADDA,#64H;還原百位數(shù)CLRC;清楚進(jìn)位標(biāo)志為下面的SUBB準(zhǔn)備CHAN2:SUBBA,#0AH;減10JCCHAN3;不夠減,跳INCR2;夠減十位加1JMPCHAN2;重復(fù)減10CHAN3:ADDA,#0AH;還原十位數(shù)MOV61H,R2;把十位數(shù)放61HMOV60H,A;把個位數(shù)放60HMOV62H,R1;把百位數(shù)放62HRETDISP:MOVR7,#03HMOVR0,#60HLED1:MOVA,R0MOVDPTR,#TABLELED2:MOVCA,A+DPTRMOVSBUF,AJNBTI,$CLRTIINCR0DJNZR7,LED1RETDELAY20ms:MOVR5,#40;設(shè)定20毫秒D1:MOVR6,#248DJNZR6,$DJNZR5,D1RET;*****************;報(bào)警子程序;*****************ALARM:MOVA,30H;將當(dāng)前濃度值送如累加器CLRC;清除進(jìn)位標(biāo)志SUBBA,50H;與預(yù)警值進(jìn)行判斷JNCGOOD1;若無借位,則當(dāng)前濃度值高于或者等于預(yù)警值,跳GOOD1報(bào)警SETBP1.6;關(guān)閉聲光報(bào)警SETBP1.7CLRP2.3;關(guān)閉排氣閥門SETBP1.5;關(guān)閉黃色LEDCLRP1.4;打開綠色LED〔顯示正常RETGOOD1:CLRP1.6;打開聲光報(bào)警〔危險(xiǎn)報(bào)警CLRP1.7CLRP2.3;打開排氣閥門SETBP1.5;關(guān)閉黃色LEDSETBP1.4;關(guān)閉綠色LED〔顯示不正常?RET;*****************

溫馨提示

  • 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

提交評論