




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
桂林電子科技大學(xué)畢業(yè)設(shè)計(論文)報告用紙引言隨著我國工農(nóng)業(yè)的快速發(fā)展,現(xiàn)在的很多人已經(jīng)過上了小康的生活,現(xiàn)在的家庭中都普遍用煤氣或者天然氣替代以前的柴火作為家庭的燃料已越來越受到工廠和城市居民的歡迎,這些燃料給我們的生活帶來了很多的方便,煤氣用戶的增多,輸送可燃性氣體的各項設(shè)備也大量的增加,由于管理和使用不當(dāng),會造成氣體的泄露,帶來了不小的麻煩和危害,將空氣污染,輕者令人頭昏或嘔吐,重者會引起中毒、爆炸、火災(zāi)等。這些危害當(dāng)中最為突出的問題就是煤氣、天然氣中毒或者爆炸事件。幾乎每一天都會發(fā)生這樣的慘劇,報紙、網(wǎng)頁的頭版頭條幾乎都是這類悲痛的事件。每年因煤氣泄漏造成的煤氣中毒事故中,因使用熱水器不當(dāng)或產(chǎn)品本身的質(zhì)量問題造成的一氧化碳中毒事故全國均有不少事例,更有甚者,因室內(nèi)煤氣濃度過高引起煤氣爆炸的事故也不少見。所以為了防止這類悲痛的事故再是發(fā)生,保護(hù)人民的生命財產(chǎn)安全,必須要找到一個解決的辦法。而便攜式可燃?xì)怏w檢測儀就是為了防止這類的事故再是發(fā)生的設(shè)計出來的。當(dāng)今社會,出現(xiàn)許多種可燃?xì)怏w報警器,而這些產(chǎn)品大都是針對煤氣的泄漏作相應(yīng)的報警,即為家庭式。但是隨著社會的發(fā)展,煤氣報警器也在由單一的家庭式發(fā)展為小區(qū)監(jiān)控。對某個區(qū)域的燃?xì)庑孤┻M(jìn)行監(jiān)控,這是今后的發(fā)展趨勢。隨著人民物質(zhì)生活水平的提高,燃?xì)馐褂寐什粩嘣黾?,對于燃?xì)庑孤┑臋z測越來越引起大家的重視,我國許多城市已制定了一些新建住宅必須安裝燃?xì)庑孤﹫缶鞯南嚓P(guān)規(guī)定,該型可燃?xì)怏w報警器針對以上問題開發(fā)的一種安全裝置,該報警器能根據(jù)可燃?xì)怏w檢測濃度進(jìn)行聲光報警,并控制相應(yīng)設(shè)備進(jìn)行工作,實現(xiàn)安全保護(hù),是城市燃?xì)夤こ讨兴匦璧漠a(chǎn)品,所以市場前景良好,同時這也為城市居民使用燃?xì)饨獬撕箢欀畱n?,F(xiàn)在的城市居民居住基本上高樓大廈,每棟大廈基本上都有管理員管理,而本次設(shè)計的便攜式可燃?xì)怏w檢測儀就更能發(fā)揮其作用了,只要家庭安裝了這種裝置,并且與管理員的上位機(jī)進(jìn)行連接,就能讓管理員實時監(jiān)測。便攜式可燃?xì)怏w檢測儀因為便捷實用,方便居民生活,所以它是當(dāng)下家庭的所需。便攜式可燃?xì)怏w不僅能在家庭當(dāng)中使用,還可以在工業(yè)當(dāng)中使用,例如它安裝在煤礦井中檢測甲烷氣體的濃度,防止瓦斯爆炸,保護(hù)礦井地下工人的人生安全,也可以安裝在容易泄露可燃?xì)怏w的工廠車間中。根據(jù)網(wǎng)上數(shù)據(jù)顯示5月11日14時20分,四川省瀘州市瀘縣富集鎮(zhèn)桃子溝"煤礦發(fā)生瓦斯爆炸事故,截至目前,事故導(dǎo)致28人遇難,8人重傷,10人輕傷。此次事故是一起重大責(zé)任事故,事故原因初步分析為,桃子溝煤礦涉嫌非法組織生產(chǎn),在未批區(qū)域違規(guī)設(shè)置多個作業(yè)點,在通風(fēng)性差的條件下作業(yè),導(dǎo)致瓦斯?jié)舛仍龃?,遇火爆炸。貴州省安順市平壩縣大山煤礦5月10日晚發(fā)生瓦斯爆炸事故,已造成12人死亡、2人受傷。由此可見便攜式可燃?xì)怏w檢測儀不僅在人們的日常生活中扮演重要角色,而且在煤礦等工業(yè)中也發(fā)揮著至關(guān)重要的作用,所以實時準(zhǔn)確測量周圍環(huán)境中的可燃性氣體,有毒有害氣體泄露,對保護(hù)人民的身體健康和財產(chǎn)安全有重要意義。如何開發(fā)出穩(wěn)定可靠、高性能價格比的裝置,成為急需解決的課題。1研究課題概述可燃?xì)怏w檢測儀是一種檢測泄露氣體濃度的儀器儀表工具,主要是指便攜式/手持式氣體檢測器。本課題研究的是便攜式可燃?xì)怏w檢測儀,它的主要工作原理是利用不同的可燃?xì)怏w氣體傳感器來檢測周圍環(huán)境中存在的可燃?xì)怏w種類以及各種氣體的成份和含量。一般認(rèn)為,氣體傳感器的定義是以檢測目標(biāo)為分類基礎(chǔ)的,也就是說,凡是用于檢測氣體成份和濃度的傳感器都稱作氣體傳感器(氣體檢測儀),不管它是用物理方法,還是用化學(xué)方法。比如,檢測氣體流量的傳感器不被看作氣體傳感器,但是熱導(dǎo)式氣體分析儀卻屬于重要的氣體傳感器,盡管它們有時使用大體一致的檢測原理。1.1研究目標(biāo)本文所設(shè)計的可燃?xì)怏w數(shù)字報警器是利用AT89S52單片機(jī)為控制核心。以MQ-X系列可燃?xì)怏w傳感器為采集器件,將氣體傳感器放置于檢測的環(huán)境中,氣體傳感器根據(jù)可燃?xì)怏w濃度的變化輸出電壓的值,然后通過TLC549進(jìn)行模數(shù)轉(zhuǎn)換,模數(shù)轉(zhuǎn)換完成后送入主控芯片AT89S52進(jìn)行處理,把處理得到的濃度值通過串口與上位機(jī)通信,把濃度值在上位機(jī)界面顯示出來和在液晶顯示屏LCD1602顯示出來,以便與進(jìn)行實時監(jiān)測。通過外圍的按鍵電路可以實現(xiàn)對報警濃度的上限值設(shè)置,當(dāng)所檢測到的濃度高于設(shè)置的濃度值時,主控芯片控制外圍的報警電路,使發(fā)光二極管發(fā)光和蜂鳴器發(fā)出聲音從而達(dá)到報警的目的。系統(tǒng)以AT89S52為核心,以可燃?xì)怏w傳感器為采集器件,TLC549作為模數(shù)轉(zhuǎn)換器件,LCD1602液晶顯示屏來顯示實時的濃度值,MAX232串口模塊為通信橋梁設(shè)計的。實現(xiàn):1.能夠準(zhǔn)確的測量周圍環(huán)境中的可燃?xì)怏w的泄露;2.實現(xiàn)把采集到的模擬信號轉(zhuǎn)換成數(shù)字信號;3.實現(xiàn)液晶屏和上位機(jī)的濃度顯示;4.實現(xiàn)主控芯片AT89S52與上位機(jī)的通信;5實現(xiàn)主控芯片對各個模塊的控制;6.基本實現(xiàn)對報警電路的控制;1.2研究方案設(shè)計是利用單片機(jī)控制技術(shù),制作了一氧化碳、乙炔、甲烷三種氣體與一體的報警器。該儀器對這三種氣體進(jìn)行實時監(jiān)控,當(dāng)這些氣體的濃度超過上限值時,單片機(jī)發(fā)送所接收到的氣體濃度給上位機(jī)進(jìn)行實時的監(jiān)測,并且單片機(jī)控制電路進(jìn)行發(fā)聲發(fā)光報警,時刻提醒人們,以防事故發(fā)生?;贏T89S52性價比高的優(yōu)勢,主要運用了AT89S52單片機(jī)進(jìn)行控制。而對與報警器而言至關(guān)重要的部分是傳感器,由于MQ-X系列氣敏元件采用半導(dǎo)體敏感材料,其靈敏度、選擇性、穩(wěn)定性、抗干擾性、響應(yīng)時間及壽命等主要性能,均達(dá)到國內(nèi)先進(jìn)水平.用該系列元件組裝成易燃易爆氣體泄漏報警器及檢測裝置,可廣泛運用于礦山、油田、化工、國防、醫(yī)藥及家庭,所以在設(shè)計中采用的是MQ-X系列傳感器。在模數(shù)轉(zhuǎn)換這塊,利用TLC549實現(xiàn)模數(shù)轉(zhuǎn)換,TLC549是8位逐次漸進(jìn)型的A/D轉(zhuǎn)換器,它采用COMS工藝8個引腳雙列直插式封裝,與微機(jī)相連時不需要附加接口電路。為了方便用戶了解濃度信息,好提前準(zhǔn)備,還采用了顯示環(huán)節(jié)。顯示環(huán)節(jié)又分為液晶顯示和上位機(jī)顯示。顯示器顯示常用兩種方法:靜態(tài)顯示和動態(tài)掃描顯示。所謂靜態(tài)顯示,就是每一個顯示器都要占用單獨的具有鎖存功能的I/O接口用于筆劃段字形代碼。這樣單片機(jī)只要把要顯示的字形代碼發(fā)送到接口電路,就不用管它了,直到要顯示新的數(shù)據(jù)時,再發(fā)送新的字形碼,因此,使用這種方法單片機(jī)中CPU的開銷小。可以提供單獨鎖存的I/O接口電路很多。上位機(jī)顯示就是通過串口連接上位機(jī)機(jī),把要顯示在上位機(jī)上的數(shù)據(jù)通過串口發(fā)送到上位機(jī)上面??偟膩碚f,本次設(shè)計主要利用了以上的檢測模塊,A/D轉(zhuǎn)換模塊,顯示模塊,控制模塊四大模塊,組成了可燃?xì)怏w探測報警器。而最核心的控制器又是由AT89S52單片機(jī)控制其余的外圍電路的。所以叫基于AT89S52單片機(jī)的便攜式可燃?xì)怏w檢測儀。1.3國內(nèi)外報警行業(yè)的發(fā)展隨著我國的改革開放,我國的經(jīng)濟(jì)科技得到了飛躍的發(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),運行機(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ì)支撐。報警器技術(shù)及其產(chǎn)業(yè)的特點是:基礎(chǔ)、應(yīng)用兩頭依附;技術(shù)、投資兩個密集;產(chǎn)品、產(chǎn)業(yè)兩大分散?;A(chǔ)、應(yīng)用兩頭依附,是指報警器技術(shù)的發(fā)展依附于敏感機(jī)理、敏感材料、工藝設(shè)備和計測技術(shù)這四塊基石。敏感機(jī)理千差萬別,敏感材料多種多樣,工藝設(shè)備各不相同,計測技術(shù)大相徑庭,沒有上述四塊基石的支撐,報警器技術(shù)難以為繼。儀器儀表行業(yè)在中國經(jīng)過一個階段的發(fā)展,已經(jīng)趨近成熟。而氣體報警器作為工業(yè)儀器儀表的一個重要項目,它不僅代表了儀器儀表的發(fā)展?fàn)顩r,也反映了工業(yè)化的發(fā)展程度。用于氣體報警器的傳感器也在經(jīng)歷著飛速的變化,經(jīng)過了多次的技術(shù)創(chuàng)新和更新?lián)Q代,傳感器行業(yè),可燃?xì)怏w報警器行業(yè)又迎來了新的發(fā)展和突破。在傳感器行業(yè),一直在進(jìn)行著反復(fù)試驗,希望通過工程創(chuàng)新方法來改善傳感器的靈敏度,但遺憾的是業(yè)界并沒有一個新的框架來總括所有的經(jīng)驗法則,以作為新一代傳感器的設(shè)計方法。而來自美國普度大學(xué)的工程師補(bǔ)足了這個遺憾,為設(shè)計可燃?xì)怏w報警器傳感器提供了新的途徑。為了測試他們的可燃?xì)怏w報警器傳感器設(shè)計法則系統(tǒng),他們著手研究使用哪一種納米級傳感器設(shè)計,是透過目標(biāo)分子進(jìn)行感測最適合的材料。研究人員過去就已經(jīng)發(fā)現(xiàn),當(dāng)感測單個分子時(例如氣體煙霧探測器或生物、化學(xué)探測器),感測組件越小越好,但其原因一直沒有一個理論來解釋和證實,是否與目標(biāo)分子的擴(kuò)散情況會限制傳感器運作速度有關(guān)系。而艾姆和尼爾宣稱已經(jīng)證實了以上理論。首先,他們比較了傳統(tǒng)的平面?zhèn)鞲衅鹘M件與圓柱形的單納米管傳感器組件,結(jié)果顯示較小的圓柱形傳感器的靈敏度至少高出傳統(tǒng)的平面?zhèn)鞲衅?00倍,這足以證明感測器組建越小越好的理論是正確的。2主要元件簡介2.1AT89S52單片機(jī)2.1.1AT89S52單片機(jī)簡介AT89S52為ATMEL所生產(chǎn)的一種低功耗,高性能的8位微控制器,具有8K的可編程Flash存儲器。是一個低電壓,高性能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ī)的AT89C51提供了高性價比的解決方案。
AT89C51是一個低功耗高性能單片機(jī),40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時內(nèi)含2個外中斷口,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,AT89C51可以按照常規(guī)方法進(jìn)行編程,也可以在線編程。其將通用的微處理器和Flash存儲器結(jié)合在一起,特別是可反復(fù)擦寫的Flash存儲器可有效地降低開發(fā)成本。2.1.2AT89S52主要功能1、擁有靈巧的8位CPU和在系統(tǒng)可編程Flash2、晶片內(nèi)部具時鐘振蕩器(傳統(tǒng)最高工作頻率可至12MHz)3、內(nèi)部程序存儲器(ROM)為8KB4、內(nèi)部數(shù)據(jù)存儲器(RAM)為256字節(jié)5、32個可編程I/O口線6、8個中斷向量源7、三個16位定時器/計數(shù)器8、三級加密程序存儲器9、全雙工UART串行通道2.1.3AT89S52單片機(jī)芯片引腳描述及應(yīng)用AT89S52單片機(jī)如圖2.1.3(a)所示:VCC:AT89S52電源正端輸入,接+5V。VSS:電源地端。圖2.1.3(a)XTAL1:單芯片系統(tǒng)時鐘的反相放大器輸入端。XTAL2:P0口是一個8位寬的開路汲極(OpenDrain)雙向輸出入端口,共有8個位,P0.0表示位0,P0.1表示位1,依此類推。其他三個I/O端口(P1、P2、P3)則不具有此電路組態(tài),而是內(nèi)部有一提升電路,P0在當(dāng)做I/O用時可以推動8個LS的TTL負(fù)載。如果當(dāng)EA引腳為低電平時(即取用外部程序代碼或數(shù)據(jù)存儲器),P0就以多工方式提供地址總線(A0~A7)及數(shù)據(jù)總線(D0~D7)。設(shè)計者必須外加一鎖存器將端口0送出的地址栓鎖住成為A0~A7,再配合端口2所送出的A8~A15合成一完整的16位地址總線,而定址到64K的外部存儲器空間。PORT2(P2.0~P2.7):P2口是具有內(nèi)部提升電路的雙向I/O端口,每一個引腳可以推動4個LS的TTL負(fù)載,若將端口2的輸出設(shè)為高電平時,此端口便能當(dāng)成輸入端口來使用。P2除了當(dāng)做一般I/O端口使用外,若是在AT89S52擴(kuò)充外接程序存儲器或數(shù)據(jù)存儲器時,也提供地址總線的高字節(jié)A8~A15,這個時候P2便不能當(dāng)做I/O來使用了。PORT1(P1.0~P1.7):P1口也是具有內(nèi)部提升電路的雙向I/O端口,其輸出緩沖器可以推動4個LSTTL負(fù)載,同樣地若將端口1的輸出設(shè)為高電平,便是由此端口來輸入數(shù)據(jù)。如果是使用8052或是8032的話,P1.0又當(dāng)做定時器2的外部脈沖輸入腳,而P1.1可以有T2EX功能,可以做外部中斷輸入的觸發(fā)腳位。PORT3(P3.0~P3.7):P3口也具有內(nèi)部提升電路的雙向I/O端口,其輸出緩沖器可以推動4個TTL負(fù)載,同時還多工具有其他的額外特殊功能,包括串行通信、外部中斷控制、計時計數(shù)控制及外部數(shù)據(jù)存儲器內(nèi)容的讀取或?qū)懭肟刂频裙δ?。其引腳分配如下:P3.0:RXD,串行通信輸入。P3.1:TXD,串行通信輸出。本次設(shè)計使主控芯片能夠與上位機(jī)通信的就是通過串行通信輸出口來實現(xiàn)的。串行口發(fā)送數(shù)據(jù)時,從片內(nèi)總線向發(fā)送SBUF寫入數(shù)據(jù)(MOVSBUF,A),啟動發(fā)送過程,由硬件電路自動在字符的始、末加上起始位(低電平)、停止位(高電平),A中的數(shù)據(jù)送入SBUF,在發(fā)送控制器控制下,按設(shè)定的波特率,每來一個移位脈沖,數(shù)據(jù)移出移位,先發(fā)送一位起始位(低電平),再由地位到高位一位一位通過TXD(P3.1)把數(shù)據(jù)發(fā)送到外部電纜上,數(shù)據(jù)發(fā)送完畢,最后發(fā)一位停止位(高電平),一幀數(shù)據(jù)發(fā)送結(jié)束。發(fā)送控制寄存器通過或門向CPU發(fā)出中斷請求(TI=1),CPU可以通過查詢TI或者相應(yīng)中斷的方式,將下幀一數(shù)據(jù)送入SBUF,開始發(fā)送下幀一數(shù)據(jù)。P3.2:INT0,外部中斷0輸入。P3.3:INT1,外部中斷1輸入。P3.4:T0,計時計數(shù)器0輸入。P3.5:T1,計時計數(shù)器1輸入。P3.6:WR:外部數(shù)據(jù)存儲器的寫入信號。P3.7:RD,外部數(shù)據(jù)存儲器的讀取信號。RST——復(fù)位輸入。當(dāng)振蕩器工作時,RST引腳出現(xiàn)兩個機(jī)器周期以上高電平將是單片機(jī)復(fù)位。
ALE/PROG——當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時鐘振蕩頻率的1/6輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。
對FLASH存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。
如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會被微弱拉高,單片機(jī)執(zhí)行外部程序時,應(yīng)設(shè)置ALE禁止位無效。
PSEN——程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當(dāng)AT89C52由外部程序存儲器取指令(或數(shù)據(jù))時,每個機(jī)器周期兩次PSEN有效,即輸出兩個脈沖,在此期間,當(dāng)訪問外部數(shù)據(jù)存儲器,將跳過兩次PSEN信號。
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。AT89S52發(fā)送與接收時序圖如圖2.1.3(b)所示:、圖2.1.3(b)AT89s52發(fā)送與接收時序圖2.2MQ-X系列可燃?xì)怏w傳感器2.2.1傳感器的定義與組成傳感器是能感受規(guī)定的被測量并按照一定規(guī)律轉(zhuǎn)換成可用輸出信號的器件或裝置。在有些國家和有些科學(xué)領(lǐng)域,也將傳感器稱為變換器、檢測器或探測器等。一般來講,傳感器由敏感元件和轉(zhuǎn)換元件組成。但是,由于傳感器輸出的信號一般都很微弱,需要有信號調(diào)節(jié)與轉(zhuǎn)換電路將其放大或轉(zhuǎn)換為容易傳輸、處理、記錄和顯示的形式。隨著半導(dǎo)體器件與集成技術(shù)在傳感器中的應(yīng)用,傳感器的信號調(diào)節(jié)與轉(zhuǎn)換電路可能安裝在傳感器的殼體里或與敏感元件一起集成在同一芯片上。因此,信號調(diào)節(jié)與轉(zhuǎn)換電路以及所需電源都應(yīng)作為傳感器組成的一部分。常見的信號調(diào)節(jié)與轉(zhuǎn)換電路有放大器、電橋、振蕩器、變阻器等等。圖2.2.1為傳感器組成方塊圖圖2.2.1傳感器組成方塊圖2.2.2MQ-X系列可燃?xì)怏w傳感器工作原理MQ系列氣體傳感器的敏感材料是活性很高的金屬氧化物半導(dǎo)體,最常用的如SnO2。金屬氧化物半導(dǎo)體在空氣中被加熱到一定溫度時,氧原子被吸附在帶負(fù)電荷的半導(dǎo)體表面,半導(dǎo)體表面的電子會被轉(zhuǎn)移到吸附氧上,氧原子就變成了氧負(fù)離子,同時在半導(dǎo)體表面形成一個正的空間電荷層,導(dǎo)致表面勢壘升高,從而阻礙電子流動(見圖1)。在敏感材料內(nèi)部,自由電子必須穿過金屬氧化物半導(dǎo)體微晶粒的結(jié)合部位(晶界)才能形成電流。由氧吸附產(chǎn)生的勢壘同樣存在于晶界而阻礙電子的自由流動,傳感器的電阻即緣于這種勢壘。在工作條件下當(dāng)傳感器遇到還原性氣體時,氧負(fù)離子因與還原性氣體發(fā)生氧化還原反應(yīng)而導(dǎo)致其表面濃度降低,勢壘隨之降低(圖2和圖3)。導(dǎo)致傳感器的阻值減小。在給定的工作條件下和適當(dāng)?shù)臍怏w濃度范圍內(nèi),傳感器的電阻值和還原性氣體濃度之間的關(guān)系可近似由下面方程表示:其中:Rs:傳感器電阻A:常數(shù)[C]:氣體濃度α:Rs曲線的斜率MQ-X系列傳感器屬于催化燃燒行傳感器。催化型可燃性氣體檢測儀是利用難熔金屬鉑絲加熱后的電阻變化來測定可燃?xì)怏w濃度。當(dāng)可燃?xì)怏w進(jìn)入探測器時,在鉑絲表面引起氧化反應(yīng)(無焰燃燒),其產(chǎn)生的熱量使鉑絲的溫度升高,而鉑絲的電阻率便發(fā)生變化,所以當(dāng)遇到高溫等因素時鉑絲的溫度發(fā)生變化,而鉑絲的電阻率便發(fā)生變化,探測的數(shù)據(jù)也會發(fā)生變化。2.2.3MQ-X系列可燃?xì)怏w傳感器操作注意事項1必須避免的情況1.1暴露于有機(jī)硅蒸氣中1.2高腐蝕性的環(huán)境1.3堿、堿金屬鹽、鹵素的污染1.4接觸到水1.5結(jié)冰1.6施加電壓過高2盡可能避免的情況2.1凝結(jié)水2.2處于高濃度氣體中2.3長期貯存2.4長期暴露在極端環(huán)境中2.5振動2.6沖擊VcVHGNDRLVcVHGNDRLVRL圖2.2.3傳感器測試電路圖是傳感器的基本測試電路。該傳感器需要施加2個電壓:加熱器電壓(VH)和測試電壓(VC)。其中VH用于為傳感器提供特定的工作溫度。VC則是用于測定與傳感器串聯(lián)的負(fù)載電阻(RL)上的電壓(VRL)。這種傳感器具有輕微的極性,VC需用直流電源。在滿足傳感器電性能要求的前提下,VC和VH可以共用同一個電源電路。為更好利用傳感器的性能,需要選擇恰當(dāng)?shù)腞L值。2.3TLC549芯片2.3.1TLC549簡介TLC549是TI公司生產(chǎn)的一種低價位、高性能的8位A/D轉(zhuǎn)換器,它以8位開關(guān)電容逐次逼近的方法實現(xiàn)A/D轉(zhuǎn)換,其轉(zhuǎn)換速度小于17us,最大轉(zhuǎn)換速率為40000HZ,4MHZ典型內(nèi)部系統(tǒng)時鐘,電源為3V至6V。它能方便地采用三線串行接口方式與各種微處理器連接,構(gòu)成各種廉價的測控應(yīng)用系統(tǒng)。2.3.2TLC549引腳及各引腳功能REF+:正基準(zhǔn)電壓輸入2.5V≤REF+≤Vcc+0.1。REF-:負(fù)基準(zhǔn)電壓輸入端,-0.1V≤REF-≤2.5V。且要求:(REF+)-(REF-)≥1V。VCC:系統(tǒng)電源3V≤Vcc≤6V。GND:接地端。/CS:芯片選擇輸入端,要求輸入高電平VIN≥2V,輸入低電平VIN≤0.8V。DATAOUT:轉(zhuǎn)換結(jié)果數(shù)據(jù)串行輸出端,與TTL電平兼容,輸出時高位在前,低位在后。ANALOGIN:模擬信號輸入端,0≤ANALOGIN≤VCC,當(dāng)ANALOGIN≥REF+電壓時,轉(zhuǎn)換結(jié)果為全“1”(0FFH),ANALOGIN≤REF-電壓時,轉(zhuǎn)換結(jié)果為全“0”(00H)。I/OCLOCK:外接輸入/輸出時鐘輸入端,同于同步芯片的輸入輸出操作,無需與芯片內(nèi)部系統(tǒng)時鐘同步。模數(shù)轉(zhuǎn)換芯片TLC549的引腳圖如圖3.2.2所示:圖2.3.2TLC549引腳圖2.3.3TLC549工作原理當(dāng)/CS變?yōu)榈碗娖胶?,TLC549芯片被選中,同時前次轉(zhuǎn)換結(jié)果的最高有效位MSB(A7)自DATAOUT端輸出,接著要求自I/OCLOCK端輸入8個外部時鐘信號,前7個I/OCLOCK信號的作用,是配合TLC549輸出前次轉(zhuǎn)換結(jié)果的A6-A0位,并為本次轉(zhuǎn)換做準(zhǔn)備:在第4個I/OCLOCK信號由高至低的跳變之后,片內(nèi)采樣/保持電路對輸入模擬量采樣開始,第8個I/OCLOCK信號的下降沿使片內(nèi)采樣/保持電路進(jìn)入保持狀態(tài)并啟動A/D開始轉(zhuǎn)換。轉(zhuǎn)換時間為36個系統(tǒng)時鐘周期,最大為17us。直到A/D轉(zhuǎn)換完成前的這段時間內(nèi),TLC549的控制邏輯要求:或者/CS保持高電平,或者I/OCLOCK時鐘端保持36個系統(tǒng)時鐘周期的低電平。由此可見,在自TLC549的I/OCLOCK端輸入8個外部時鐘信號期間需要完成以下工作:讀入前次A/D轉(zhuǎn)換結(jié)果;對本次轉(zhuǎn)換的輸入模擬信號采樣并保持;啟動本次A/D轉(zhuǎn)換開始。I/OCLOCK:外接輸入/輸出時鐘輸入端,同于同步芯片的輸入輸出操作,無需與芯片內(nèi)部系統(tǒng)時鐘同步。工作時序圖2.3.3TLC549工作時序圖TLC549是SPI總線器件,采用簡化為三線的SPI總線它,工作時序見圖2.3.3所示。當(dāng)/CS變?yōu)榈碗娖胶?,TLC549芯片被選中,同時前次A/D轉(zhuǎn)換結(jié)果的最高有效位MSB(A7)自DATAOUT端輸出,接著要求自I/OCLOCK端輸入8個外部時鐘信號,前7個時鐘信號的作用,是配合TLC549輸出前次轉(zhuǎn)換結(jié)果的A6-A0七位,并為本次轉(zhuǎn)換做準(zhǔn)備:在第4個I/OCLOCK信號由高至低的跳變之后,其片內(nèi)采樣/保持電路對輸入模擬量開始采樣,并在第8個I/OCLOCK信號的下降沿使片內(nèi)采樣/保持電路進(jìn)入保持狀態(tài)并啟動A/D開始轉(zhuǎn)換。完成一次轉(zhuǎn)換的時間為36個系統(tǒng)時鐘周期,最大為17us。在A/D轉(zhuǎn)換完成前的這段時間內(nèi),TLC549的控制邏輯要求:/CS保持高電平,或I/OCLOCK時鐘端保持36個系統(tǒng)時鐘周期的低電平。
由此可見,在TLC549的I/OCLOCK端輸入8個主控器件發(fā)來的時鐘信號期間,需要完成以下工作:讀入前次A/D轉(zhuǎn)換結(jié)果;對本次轉(zhuǎn)換的輸入模擬信號采樣并保持;啟動本次A/D轉(zhuǎn)換開始。2.4MAX232芯片2.4.1MAX232芯片簡介MAX232芯片是美信(MAXIM)公司專為RS-232標(biāo)準(zhǔn)串口設(shè)計的單電源電平轉(zhuǎn)換芯片,使用+5v單電源供電。2.4.2MAX232芯片主要特點芯片MAX232電路結(jié)構(gòu)如圖2.4.2所示,以及芯片所擁有的一些特性如下:符合所有的RS-232C技術(shù)標(biāo)準(zhǔn)圖2.4.2MAX232芯片的內(nèi)外部電路
2、只需要單一+5V電源供電
3、片載電荷泵具有升壓、電壓極性反轉(zhuǎn)能力,能夠產(chǎn)生+10V和-10V電壓V+、V-
4、功耗低,典型供電電流5mA
5、內(nèi)部集成2個RS-232C驅(qū)動器
6、高集成度,片外最低只需4個電容即可工作。2.4.3MAX232芯片標(biāo)準(zhǔn)應(yīng)用電路電容器應(yīng)選擇1μF的電解電容。注意,由于RS232電平較高,在接通時產(chǎn)生的瞬時電涌非常高,很有可能擊毀max232,所以在使用中應(yīng)盡量避免熱插拔。
2.5液晶顯示LCD16022.5.1LCD1602液晶顯示屏簡介工業(yè)字符型液晶,能夠同時顯示16x02即32個字符(16列2行),圖2.5.1是LCD1602引腳圖。圖2.5.1LCD1602引腳圖注:為了表示的方便,后文皆以1表示高電平,0表示低電平。1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊。它由若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符,每位之間有一個點距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因為如此所以它不能很好地顯示圖形(用自定義CGRAM,顯示效果也不好)。1602LCD是指顯示的內(nèi)容為16X2,即可以顯示兩行,每行16個字符液晶模塊(顯示字符和數(shù)字)。市面上字符液晶大多數(shù)是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780寫的控制程序可以很方便地應(yīng)用于市面上大部分的字符型液晶。2.5.2LCD1602液晶顯示屏的基本參數(shù)及引腳功能1602采用標(biāo)準(zhǔn)的16腳接口,其中:第1腳:VSS為電源地第2腳:VCC接5V電源正極第3腳:V0為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高(對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度)。第4腳:RS為寄存器選擇,高電平1時選擇數(shù)據(jù)寄存器、低電平0時選擇指令寄存器。第5腳:RW為讀寫信號線,高電平(1)時進(jìn)行讀操作,低電平(0)時進(jìn)行寫操作。第6腳:E(或EN)端為使能(enable)端,高電平(1)時讀取信息,負(fù)跳變時執(zhí)行指令。第7~14腳:D0~D7為8位雙向數(shù)據(jù)端。第15~16腳:空腳或背燈電源。15腳背光正極,16腳背光負(fù)極。2.5.3LCD1602工作時序①當(dāng)要寫指令字,設(shè)置LCD1602的工作方式時:需要把RS置為低電平,RW置為低電平,然后將數(shù)據(jù)送到數(shù)據(jù)口D0~D7,最后E引腳一個高脈沖將數(shù)據(jù)寫入。
②當(dāng)要寫入數(shù)據(jù)字,在1602上實現(xiàn)顯示時:需要把RS置為高電平,RW置為低電平,然后將數(shù)據(jù)送到數(shù)據(jù)口D0~D7,最后E引腳一個高脈沖將數(shù)據(jù)寫入。如下圖分別是LCD1602的寫操作時序圖、時序參數(shù)圖如圖2.5.3(a)、2.5.3(b)圖所示圖2.5.3(a)LCD1602寫操作時序圖圖2.5.3(b)LCD1602操作時序參數(shù)3硬件設(shè)計思路3.1系統(tǒng)基本原理便攜式可燃?xì)怏w檢測儀主要有三部分組成,一是檢測儀器,也就是甲烷,一氧化碳,乙炔三個傳感器采集空氣中的可燃?xì)怏w,安裝在可燃?xì)怏w釋放源的附近環(huán)境中,當(dāng)這些檢測儀器檢測到附近的環(huán)境中有可燃?xì)怏w時,這些檢測儀器就能將可燃?xì)怏w濃度的變化轉(zhuǎn)換成相應(yīng)的模擬電信號;二是轉(zhuǎn)換器,轉(zhuǎn)換器的作用就是把檢測儀器輸出的模擬電信號轉(zhuǎn)換成數(shù)字信號;三是控制器,控制器的作用是把轉(zhuǎn)換器輸出的數(shù)字信號進(jìn)行處理并把處理過的信號濃度送到LCD1602液晶屏上顯示,并能在濃度超過一定值時發(fā)出信號控制報警電路;四是顯示器包括LCD1602和上位機(jī)界面,他們能實時顯示控制器輸出的可燃?xì)怏w濃度。3.2系統(tǒng)硬件設(shè)計3.2.1單片機(jī)最小系統(tǒng)復(fù)位電路如圖3.2.1(a)所示復(fù)位電路的作用圖3.2.1(a)AT89S52單片機(jī)復(fù)位電路在上電或復(fù)位過程中,控制CPU的復(fù)位狀態(tài):這段時間內(nèi)讓CPU保持復(fù)位狀態(tài),而不是一上電或剛復(fù)位完畢就工作,防止CPU發(fā)出錯誤的指令、執(zhí)行錯誤操作,也可以提高電磁兼容性能。
無論用戶使用哪種類型的單片機(jī),總要涉及到單片機(jī)復(fù)位電路的設(shè)計。而單片機(jī)復(fù)位電路設(shè)計的好壞,直接影響到整個系統(tǒng)工作的可靠性。許多用戶在設(shè)計完單片機(jī)系統(tǒng),并在實驗室調(diào)試成功后,在現(xiàn)場卻出現(xiàn)了“死機(jī)”、“程序走飛”等現(xiàn)象,這主要是單片機(jī)的復(fù)位電路設(shè)計不可靠引起的?;镜膹?fù)位方式單片機(jī)在啟動時都需要復(fù)位,以使CPU及系統(tǒng)各部件處于確定的初始狀態(tài),并從初態(tài)開始工作。89系列單片機(jī)的復(fù)位信號是從RST引腳輸入到芯片內(nèi)的施密特觸發(fā)器中的。當(dāng)系統(tǒng)處于正常工作狀態(tài)時,且振蕩器穩(wěn)定后,如果RST引腳上有一個高電平并維持2個機(jī)器周期(24個振蕩周期)以上,則CPU就可以響應(yīng)并將系統(tǒng)復(fù)位。單片機(jī)系統(tǒng)的復(fù)位方式有:手動按鈕復(fù)位和上電復(fù)位
1、手動按鈕復(fù)位
手動按鈕復(fù)位需要人為在復(fù)位輸入端RST上加入高電平。一般采用的辦法是在RST端和正電源VCC之間接一個按鈕。當(dāng)人為按下按鈕時,則VCC的+5V電平就會直接加到RST端。手動按鈕復(fù)位的電路如所示。由于人的動作再快也會使按鈕保持接通達(dá)數(shù)十毫秒,所以,完全能夠滿足復(fù)位的時間要求。上電復(fù)位只要在RST復(fù)位輸入引腳上接一電容至VCC端,下接一個電阻到地即可。對于CMOS型單片機(jī),由于在RST端內(nèi)部有一個下拉電阻,故可將外部電阻去掉,而將外接電容減至1μF。上電復(fù)位的工作過程是在加電時,復(fù)位電路通過電
容加給RST端一個短暫的高電平信號,此高電平信號隨著VCC對電容的充電過程而逐漸回落,即RST端的高電平持續(xù)時間取決于電容的充電時間。為了保證系統(tǒng)能夠可靠地復(fù)位,RST端的高電平信號必須維持足夠長的時間。上電時,VCC的上升時間約為10ms,而振蕩器的起振時間取決于振蕩頻率,如晶振頻率為10MHz,起振時間為1ms;晶振頻率為1MHz,起振時間則為10ms。在圖2的復(fù)位電路中,當(dāng)VCC掉電時,必然會使RST端電壓迅速下降到0V以下,但是,由于內(nèi)部電路的限制作用,這個負(fù)電壓將不會對器件產(chǎn)生損害。另外,在復(fù)位期間,端口引腳處于隨機(jī)狀態(tài),復(fù)位后,系統(tǒng)將端口置為全“l(fā)”態(tài)。如果系統(tǒng)在上電時得不到有效的復(fù)位,則程序計數(shù)器PC將得不到一個合適的初值,因此,CPU可能會從一個未被定義的位置開始執(zhí)行程序。時鐘電路圖3.2.1(b)AT89S52單片機(jī)時鐘電路單片機(jī)最小系統(tǒng)的時鐘電路如圖3.2.1(a)所示,在內(nèi)部方式時鐘電路中必須在XTAL1和XTAL2引腳兩端跨接石英晶體振蕩器和兩個微調(diào)電容構(gòu)成振蕩電路通常C1和C2一般取30pF晶振的頻率取值在1.2MHz12MHz之間。對于外接時鐘電路要求XTAL1接地XTAL2腳接外部時鐘對于外部時鐘信號并無特殊要求只要保證一定的脈沖寬度時鐘頻率低于12MHz即可。晶體振蕩器的振蕩信號從XTAL2端送入內(nèi)部時鐘電路它將該振蕩信號二分頻產(chǎn)生一個兩相時鐘信號P1和P2供單片機(jī)使用。時鐘信號的周期稱為狀態(tài)時間S它是振蕩周期的2倍P1信號在每個狀態(tài)的前半周期有效在每個狀態(tài)的后半周期P2信號有效。CPU就是以兩相時鐘P1和P2為基本節(jié)拍協(xié)調(diào)單片機(jī)各部分有效工作的。整個單片機(jī)最小系統(tǒng)單片機(jī)單片機(jī)最小系統(tǒng)就有上面的復(fù)位電路,時鐘電路,在加上AT89S52單片機(jī)組成。在制作單片機(jī)最小系統(tǒng)板時還要特別注意要在P0口上加上拉電阻,因為P0口與其他的端口不一樣,AT89S52單片機(jī)內(nèi)部的P0口沒有上拉電阻,所以得加個排阻上去,單片機(jī)最小系統(tǒng)的電路圖如圖2.3.1(c)所示:圖3.2.1(c)AT89S52單片機(jī)最小系統(tǒng)。3.2.2報警電路的設(shè)計報警電路是聲光報警,電路由蜂鳴器和發(fā)光二極管以及一些三極管和電阻組成,如圖2.3.2圖所示的報警電路。三極管是為了放大從單片機(jī)輸出的信號使蜂鳴器和二極管能夠被驅(qū)動圖3.2.2報警電路電阻為了保護(hù)單片機(jī)和蜂鳴器和發(fā)光二極管。3.2.3可燃?xì)怏w傳感器模塊設(shè)計與制作圖3.2.3可燃?xì)怏w傳感器模塊電路所使用的可燃?xì)怏w傳感器都是MQ-X系列,它們的模塊電路圖都一樣,所以可以共用一個電路圖,電路圖如圖3.2.3所示的可燃?xì)怏w傳感器模塊電路圖。一氧化碳、甲烷、乙炔傳感器的引腳都一樣都是六個,每邊三個;一邊的1、2、3引腳都是接VCC,另一邊的中間那個5引腳接個5.1歐姆的電阻R3后接地,4、6引腳短接后接個1k的電阻R5然后接地,在4、6引腳之間引線連到排針4腳,4腳就是輸出的信號腳,電容C1是用來濾波的。整個可燃?xì)怏w的硬件設(shè)計如下圖所示3.2.4按鍵模塊設(shè)計按鍵電路按鍵電路共由五個按鍵組成,這五個按鍵的作用分別是,設(shè)置,模式,加,減,進(jìn)式。這五個按鍵的一端分別接P1口的P1^0、P1^1、P^2、P1^3、P^4,另一端接地。S1是設(shè)置鍵、S2是加鍵、S3是減鍵、S4是模式鍵、S5是進(jìn)式鍵,如圖3.2.4所示的按鍵電路圖所示。當(dāng)按鍵S1按下時,LCD1602液晶顯示屏轉(zhuǎn)入設(shè)置報警濃度界面,按完S1再按S4是報警界面之間的轉(zhuǎn)換,可以在甲烷、乙炔、一氧化碳報警界面之間進(jìn)行轉(zhuǎn)換,然后進(jìn)行加或者減,按鍵S3是進(jìn)行進(jìn)式轉(zhuǎn)換,當(dāng)按下一次加或者減就有加或者減1變?yōu)榧踊蛘邷p10,再按一次則加或者減100,再按一次又返回加或者減1,依此循環(huán);當(dāng)設(shè)置完成之后再按一次設(shè)置則回到原來的界面。圖3.2.4按鍵電路3.2.5液晶顯示模塊設(shè)計LCD1602液晶顯示模塊的設(shè)計如圖3.2.5所示電路;LCD1602的RS、RW、E分別接AT89S52單片機(jī)的P2^7、P2^6、P2^5引腳,數(shù)據(jù)口接AT89S52單片機(jī)的P0口。在LCD1602的第三引腳還用連接一個滑動變阻器以便達(dá)到改變LCD1602的亮度,調(diào)節(jié)到合適的亮度。圖3.2.5液晶顯示電路3.2.6模數(shù)轉(zhuǎn)換模塊設(shè)計A/D轉(zhuǎn)換器是將模擬電壓或電流轉(zhuǎn)換成數(shù)字量的器件和設(shè)備,它是模擬系統(tǒng)和數(shù)字設(shè)備或計算機(jī)之間的接口。它的實現(xiàn)方法有很多。用于和微型計算機(jī)系統(tǒng)接口的A/D轉(zhuǎn)換基本方法有:計數(shù)式(又稱二進(jìn)制斜坡法)、逐次逼近法、雙積分法、電壓到頻率轉(zhuǎn)換法、并行比較法等。其中逐次逼近法和雙積分法目前應(yīng)用較多,許多A/D轉(zhuǎn)換器根據(jù)此原理制成。TLC549模數(shù)轉(zhuǎn)換模塊如圖3.2.6所示:圖3.2.6模數(shù)轉(zhuǎn)換模塊3.2.7串口下載模塊設(shè)計計算機(jī)與外界進(jìn)行信息交換稱之為通信。它既包括計算機(jī)與外部之間,也包括計算機(jī)和計算機(jī)之間的信息交換。計算機(jī)的通信可分為并行通信和串行通信兩種方式。同時傳送多位數(shù)據(jù)的方式成為并行通信,如圖3.2.6(a)所示,并行通信的特點是數(shù)據(jù)傳輸速度快,但需要的傳輸線多,一次成本高,適合近距離的數(shù)據(jù)通信;逐位依次傳輸數(shù)據(jù)的方式成為串行通信,如圖3.2.6(b)所示,串行通信的特點是數(shù)據(jù)傳輸速度慢,但最少需要一條傳輸線,故成本低,適合遠(yuǎn)距離的數(shù)據(jù)通信。圖3.2.6(a)圖3.2.6(b)并行通信串行通信串口模塊主要有max232芯片和外圍的電容組成的,其電路如圖3.2.6(c)圖所示。串口模塊起著連接主控芯片AT89S52和上位機(jī)的作用,沒有串口模塊的連接就不可能達(dá)到通信作用。外圍的電容根據(jù)max232芯片的型號決定多大。max232芯片的引腳T2-I、R2-O起著從單片機(jī)接收、發(fā)送的作用,而T2-O、R2-I則起著往上位機(jī)發(fā)送和接收上位機(jī)發(fā)來的數(shù)據(jù)的作用。3.2.6(c)串口模塊電路4系統(tǒng)軟件設(shè)計4.1編程軟件KEIL的介紹KeilC51是美國KeilSoftware公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uVision)將這些部分組合在一起。運行Keil軟件需要WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。如果你使用C語言編程,那么Keil幾乎就是你的不二之選,即使不使用C語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會令你事半功倍。KeilC51開發(fā)系統(tǒng)基本知識⒈系統(tǒng)概述KeilC51軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到Keil的優(yōu)勢。下面詳細(xì)介紹KeilC51開發(fā)系統(tǒng)各部分功能和使用。⒉KeilC51單片機(jī)軟件開發(fā)系統(tǒng)的整體結(jié)構(gòu)C51工具包的整體結(jié)構(gòu),uVision與Ishell分別是C51forWindows和forDos的集成開發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個開發(fā)流程。開發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51及C51編譯器編譯生成目標(biāo)文件(.OBJ)。目標(biāo)文件可由LIB51創(chuàng)建生成庫文件,也可以與庫文件一起經(jīng)L51連接定位生成絕對目標(biāo)文件(.ABS)。ABS文件由OH51轉(zhuǎn)換成標(biāo)準(zhǔn)的Hex文件,以供調(diào)試器dScope51或tScope51使用進(jìn)行源代碼級調(diào)試,也可由仿真器使用直接對目標(biāo)板進(jìn)行調(diào)試,也可以直接寫入程序存貯器如EPROM中。使用獨立的Keil仿真器時,注意事項*仿真器標(biāo)配11.0592MHz的晶振,但用戶可以在仿真器上的晶振插孔中換插其他頻率的晶振。*仿真器上的復(fù)位按鈕只復(fù)位仿真芯片,不復(fù)位目標(biāo)系統(tǒng)。*仿真芯片的31腳(/EA)已接至高電平,所以仿真時只能使用片內(nèi)ROM,不能使用片外ROM;但仿真器外引插針中的31腳并不與仿真芯片的31腳相連,故該仿真器仍可插入到擴(kuò)展有外部ROM(其CPU的/EA引腳接至低電平)的目標(biāo)系統(tǒng)中使用。4.2系統(tǒng)主程序設(shè)計4.2.1系統(tǒng)主程序流程圖圖4.2.1主程序系統(tǒng)流程圖可燃?xì)怏w被傳感器檢測到,然后經(jīng)過模數(shù)轉(zhuǎn)換后送入單片機(jī)處理,并在顯示屏和上位機(jī)上實時顯示出來,報警濃度可由鍵盤設(shè)定,當(dāng)所設(shè)置的報警濃度低于所測得的濃度時,控制芯片AT89S52控制報警電路報警。系統(tǒng)的主程序流程圖如圖4.2.1圖所示4.2.2系統(tǒng)主程序設(shè)計要點系統(tǒng)主程序由采集程序,顯示程序,按鍵程序,報警程序還有串口發(fā)送程序組成。在設(shè)計程序的時候要學(xué)會利用模塊化編程,模塊化編程比較容易理解也更容易發(fā)現(xiàn)錯誤。模塊化程序編寫的原則是:不該讓外界知道的信息就不應(yīng)該出現(xiàn)在頭文件里面,而外界調(diào)用模塊內(nèi)借口或者是借口變量所必須的信息就一定出現(xiàn)在頭文件里面,否則,外界就無法正確的調(diào)用我們提供的借口功能。因而為了讓外部函數(shù)或者文件調(diào)用我們提供的這個借口描述文件即頭文件。同時我們自身模塊也需要包含這份模塊頭文件(因為其包含了模塊遠(yuǎn)文件中所需要的宏定義或者是結(jié)構(gòu)體)。4.3模數(shù)轉(zhuǎn)換子程序模數(shù)轉(zhuǎn)換子程序就是TLC549所進(jìn)行的模數(shù)轉(zhuǎn)換程序。ucharTLC549ADC(void){ uchari,x; CLK=0;DAT=1;CS=0; for(i=0;i<8;i++) { CLK=1; x<<=1; if(DAT==1)x++; CLK=0; } CS=1; return(x);}4.4上位機(jī)界面程序usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.IO.Ports;namespaceSafetySystem{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}privateSerialPortcomm=newSerialPort();privateStringBuilderbuilder=newStringBuilder();privateboolisClosing=false;//是否正在關(guān)閉串口privateboolListening=false;privateboolisAll=false;privateintlines=0;privatevoidForm1_Load(objectsender,EventArgse){//初始化下拉串口名稱列表框string[]ports=SerialPort.GetPortNames();Array.Sort(ports);cboPortName.Items.AddRange(ports);cboPortName.SelectedIndex=cboPortName.Items.Count>0?0:-1;cboBaudRate.SelectedIndex=cboBaudRate.Items.IndexOf("9600");if(cboPortName.Items.Count<=0){lblInfo.Text="未找到串口";lblInfo.ForeColor=Color.Red;btnOpenClose.Enabled=false;}lblInfo.Text="找到"+cboPortName.Items.Count.ToString()+"串口";//添加事件注冊comm.DataReceived+=comm_DataReceived;}voidcomm_DataReceived(objectsender,SerialDataReceivedEventArgse){if(isClosing)return;try{Listening=true;intn=comm.BytesToRead;byte[]buf=newbyte[n];//聲明一個臨時數(shù)組存儲當(dāng)前來的串口數(shù)據(jù)stringstrData;comm.Read(buf,0,n);//讀取緩沖數(shù)據(jù)if(isAll){builder.Clear();//清除字符串構(gòu)造器的內(nèi)容}this.Invoke((EventHandler)(delegate{//直接按ASCII規(guī)則轉(zhuǎn)換成字符串builder.Append(Encoding.ASCII.GetString(buf));strData=builder.ToString();txtReceive.AppendText(strData);lines++;if(strData.Contains("#")&&strData.Contains("*")){strData=strData.Replace("\0",string.Empty);strData=strData.Replace("\r\n",string.Empty);strData=strData.Replace("\r",string.Empty);strData=strData.Replace("\n",string.Empty);intstart=strData.IndexOf("*");strData=strData.Substring(start+1);strData=strData.TrimEnd('#');txtReceive.AppendText(strData+"\r\n");isAll=true;}else{isAll=false;}if(lines>10){lines=0;txtReceive.Clear();}if(isAll){string[]data=strData.Split(';');foreach(stringdatindata){string[]value=dat.Split(':');if(value[0].ToLower()=="ch4"){lblCH4.Text=Convert.ToInt32(value[1])+"PMM";}elseif(value[0].ToLower()=="co"){lblCO.Text=Convert.ToInt32(value[1])+"PMM";}elseif(value[0].ToLower()=="c2h2"){lblC2H2.Text=Convert.ToInt32(value[1])+"PMM";}}}}));}finally{Listening=false;}}privatevoidbtnOpenClose_Click(objectsender,EventArgse){//根據(jù)當(dāng)前串口對象,來判斷操作if(comm.IsOpen){isClosing=true;while(Listening)Application.DoEvents();//打開時點擊,則關(guān)閉串口comm.Close();}else{//關(guān)閉時點擊,則設(shè)置好端口,波特率后打開comm.PortName=cboPortName.Text;comm.BaudRate=int.Parse(cboBaudRate.Text);comm.ReceivedBytesThreshold=1;comm.RtsEnable=true;try{comm.Open();isClosing=false;}catch(Exceptionex){//捕獲到異常信息,創(chuàng)建一個新的comm對象。MessageBox.Show(ex.Message);comm=newSerialPort();comm.PortName=cboPortName.Text;comm.BaudRate=int.Parse(cboBaudRate.Text);comm.ReceivedBytesThreshold=1;comm.DataReceived+=comm_DataReceived;}}//設(shè)置按鈕的狀態(tài)btnOpenClose.Text=comm.IsOpen?"關(guān)閉串口":"打開串口";lblInfo.Text=comm.IsOpen?"已打開":"已關(guān)閉";}}}4.5按鍵程序設(shè)計voidset_nongdu(){if(moshi==1&&set==1&&jia==1&&jian==1&&jinshi==1);else{keyon=1;out=0; if(set==0)keytype=0; if(jia==0)keytype=1; if(jian==0)keytype=2; if(moshi==0)keytype=3; if(jinshi==0)keytype=4;} if(keyon==1&&moshi==1&&set==1&&jia==1&&jian==1&&jinshi==1) { if(n==1) { if(keytype==3) {m++; if(m>=3)m=0; } if(m==0) { if(keytype==4)count++; if(count%3==1) { if(keytype==1)O+=1; if(keytype==2)O-=1; } if(count%3==2) { if(keytype==1)O+=10; if(keytype==2)O-=10; } if(count%3==0) { if(keytype==1)O+=100; if(keytype==2)O-=100; } } if(m==1) { if(keytype==4)count++; if(count%3==1) { if(keytype==1)W+=1; if(keytype==2)W-=1; } if(count%3==2) { if(keytype==1)W+=10; if(keytype==2)W-=10; } if(count%3==0) { if(keytype==1)W+=100; if(keytype==2)W-=100; } } if(m==2) { if(keytype==4)count++; if(count%3==1) { if(keytype==1)Q+=1; if(keytype==2)Q-=1; } if(count%3==2) { if(keytype==1)Q+=10; if(keytype==2)Q-=10; } if(count%3==0) { if(keytype==1)Q+=100; if(keytype==2)Q-=100; } } } if(keytype==0) {keyon=0; n++; if(n>1) {n=0; out=1; } } keyon=0; }}5系統(tǒng)調(diào)試調(diào)試一般都是在發(fā)生錯誤與意外的情況下使用的。如果程序能正常執(zhí)行,調(diào)試很多時候都是用不上的。所以,最高效率的程序開發(fā)還是程序員自己做好規(guī)范,而不是指望調(diào)試來解決問題。而AT89S52單片機(jī)的程序調(diào)試分為兩種,一種是使用軟件模擬調(diào)試,第二種是硬件調(diào)試。5.1硬件調(diào)試在單片機(jī)開發(fā)過程中,從硬件設(shè)計到軟件設(shè)計幾乎是開發(fā)者針對本系統(tǒng)特點親自完成的。這樣雖然可以降低系統(tǒng)成本,提高系統(tǒng)的適應(yīng)性,但是每個系統(tǒng)的調(diào)試占去了總開發(fā)時間的2/3,可見調(diào)試的工作量比較大。單片機(jī)系統(tǒng)的硬件調(diào)試和軟件調(diào)試是不能分開的,許多硬件錯誤是在軟件調(diào)試中被發(fā)現(xiàn)和糾正的。但通常是先排除明顯的硬件故障以后,再和軟件結(jié)合起來調(diào)試以進(jìn)一步排除故障??梢娪布恼{(diào)試是基礎(chǔ),如果硬件調(diào)試不通過,軟件設(shè)計則是無從做起。硬件調(diào)試方法大致可以分為:5.1.1排除邏輯故障這類故障往往由于設(shè)計和加工制板過程中工藝性錯誤所造成的。主要包括錯線、開路、短路。排除的方法是首先將加工的印制板認(rèn)真對照原理圖,看兩者是否一致。應(yīng)特別注意電源系統(tǒng)檢查,以防止電源短路和極性錯誤,并重點檢查系統(tǒng)總線(地址總線、數(shù)據(jù)總線和控制總線)是否存在相互之間短路或與其它信號線路短路。必要時利用數(shù)字萬用表的短路測試功能,可以縮短排錯時間。5.1.2排除元器件失效
造成這類錯誤的原因有兩個:一個是元器件買來時就已壞了;另一個是由于安裝錯誤,造成器件燒壞??梢圆扇z查元器件與設(shè)計要求的型號、規(guī)格和安裝是否一致。在保證安裝無誤后,用替換方法排除錯誤。
5.1.3排除電源故障
在通電前,一定要檢查電源電壓的幅值和極性,否則很容易造成集成塊損壞。加電后檢查各插件上引腳的電位,一般先檢查VCC與GND之間電位,若在5V~4.8V之間屬正常。若有高壓,聯(lián)機(jī)仿真器調(diào)試時,將會損壞仿真器等,有時會使應(yīng)用系統(tǒng)中的集成塊發(fā)熱損壞。本次設(shè)計遇到過多種多樣的問題,例如最普通的就是短路、斷路,短路有些是由于腐蝕電路板的時候沒有腐蝕干凈,有些是在焊接電路板的時候焊錫連上去的,這些問題都可以通過萬用表把它測出來,斷路就是在腐蝕的過程中腐蝕過度導(dǎo)致上面線路的覆銅被腐蝕的斷開,或者在焊接的時候虛焊;還有電子元件的反接,電容、二極管等這些元件比較容易反接,所以在焊接這些電子元件的時候要注意正負(fù)極,在這次設(shè)計當(dāng)中我就因為AT89S52單片機(jī)的P0口上拉電阻接反因而在液晶屏上沒有顯示。后面遵循硬件調(diào)試的方法終于找出問題的所在,使系統(tǒng)能正常運行。5.2軟件調(diào)試使用軟件模擬調(diào)試,就是用計算機(jī)去模擬單片機(jī)的指令執(zhí)行,并虛擬單片機(jī)片內(nèi)資源,從而實現(xiàn)調(diào)試的目的。但是軟件調(diào)試存在一些問題,不可能像真正的單片機(jī)運行環(huán)境那樣執(zhí)行的指令能在同一個時間完成(往往比單片機(jī)慢)。軟件調(diào)試只能是一種初步的,小型工程的調(diào)試,比如一個只有幾百上千行的代碼的程序,軟件調(diào)試能很好的完成。本次設(shè)計的軟件調(diào)試還應(yīng)用到了仿真軟件Proteus.Keilc51軟件提供了編寫程序的平臺,而Proteus仿真軟件則提供了仿真平臺,這兩者的結(jié)合就能很好的進(jìn)行對設(shè)計系統(tǒng)的軟件調(diào)試,仿真。5.3問題及解決方法在制作電路板的PCB圖時,經(jīng)常遇到這樣那樣的問題導(dǎo)致后面做出來的電路板不能用,或者設(shè)計得不科學(xué),從而導(dǎo)致重復(fù)的畫圖再做板,要解決這個問題就必須在畫PCB圖的時候非常的小心,以及在不懂的時候多問同學(xué)。在系統(tǒng)的硬件部分經(jīng)常遇到電路的虛短或者虛斷等等問題,這些問題有些是焊接不好導(dǎo)致的,有些則是因為制作電路板的PCB圖不對而導(dǎo)致的,這些問題可以耐心地通過萬用表來檢測。而在編寫程序時也遇到不少的問題,如對一些指令不清楚、不熟悉,這時就要復(fù)習(xí)前面學(xué)過的C語言課本和單片機(jī)課本。5.4測試情況5.4.1可燃?xì)怏w傳感器數(shù)據(jù)采集測試可燃?xì)怏w傳感器所采集到的信號都是轉(zhuǎn)換為電壓號然后進(jìn)行A/D轉(zhuǎn)換送入單片機(jī)的。所以所檢測到的相應(yīng)電壓的大小就對應(yīng)相應(yīng)濃度的大小。表格5.4.1是傳感器輸出的電壓與顯示屏濃度對應(yīng)關(guān)系:表5.4.1電壓與濃度關(guān)系對應(yīng)表輸入電壓V00.511.522.533.544.55顯示電壓V0.040.540.941.541.942.542.943.444.044.444.94A/D結(jié)果05099150199250298349400449498所對應(yīng)的可燃?xì)怏w濃度050991501992502983494004494985.4.2串口模塊測試首先利用開發(fā)板上的串口對系統(tǒng)版進(jìn)行測試,并在互聯(lián)網(wǎng)上下載串口助手,如果開發(fā)板上面的串口能進(jìn)行發(fā)送和并且能在串口助手界面上能接收數(shù)據(jù)后;改為利用自己做的串口模塊板進(jìn)行測試,若不能在串口助手上正常的發(fā)送和接收數(shù)據(jù)則表明是串口模塊出現(xiàn)了問題,就得重新對照PCB圖進(jìn)行測試一下串口模塊的電路圖。若仍然找不出問題再看一下芯片max232外圍的電容是否與其匹配。5.4.3按鍵模塊測試本次設(shè)計使用的按鍵都是兩腳按鍵,所以硬件電路比較容易檢測,檢測完硬件電路之后,連接系統(tǒng)的全部電路并往主控芯片中下載程序,然后在開發(fā)板測試按鍵能不能用,如果在開發(fā)板上能用再在電路板上測試,如果在電路板上沒有反應(yīng),則電路板上面的按鍵有問題。這時就應(yīng)該再一次檢查電路板上面的電路特別是按鍵電路。5.4.4液晶顯示模塊測試首先先測試所使用的液晶LCD1602是好是壞,如果是好的話,當(dāng)做好電路板,并檢測電路板沒有硬件問題之后,燒錄一個能用的LCD1602顯示程序進(jìn)AT89S52,連接系統(tǒng)電路,放上液晶屏看有沒有在液晶上顯示出來。如果還是沒有,檢查一下程序中的引腳程序有沒有對應(yīng),特別是RW,RW,E,以及數(shù)據(jù)口,然后旋轉(zhuǎn)一下調(diào)節(jié)亮度的滑動變阻器。在這次設(shè)計中,就遇到過這樣的問題,把LCD1602的數(shù)據(jù)口與AT89S52的P2口放反,后面沒有成功,但是硬件改過來之后就能顯示出來。6結(jié)論通過這次畢業(yè)設(shè)計,使我對理論和實踐之間的相互關(guān)系有了更清楚的認(rèn)識,而在實踐的過程中又是對理論知識的加深,所謂理論是實踐的基礎(chǔ),只有扎實的理論知識是做好工作的前提條件。完成這個軟硬結(jié)合的綜合性設(shè)計,不僅使我的專業(yè)知識有所加深,而且還在設(shè)計的過程中學(xué)到了不少新的知識,特別是強(qiáng)化了自己充分
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高中數(shù)學(xué)分層練習(xí)(壓軸題)06:函數(shù)與導(dǎo)數(shù)(30題)【含解析】
- 水池專項施工方案
- 洗手洗腳池施工方案
- 電梯施工方案模板
- 基于涉入理論的高爾夫球手地方依戀研究
- 6到12歲的感統(tǒng)訓(xùn)書籍
- consider的固定搭配和例句總結(jié)
- 2025年往年英語a b級試題及答案
- 燈火闌珊處高情商回復(fù)
- 4-氨基-丁酸叔丁酯醋酸鹽
- 日常采購維修合同范本
- 2024-2025年第二學(xué)期一年級語文教學(xué)進(jìn)度表
- 企業(yè)員工職務(wù)犯罪預(yù)防
- 2025年貴州省高職單招醫(yī)學(xué)類職業(yè)技能測試題庫及答案(備考刷題)
- 5《水污染》教學(xué)設(shè)計-2023-2024學(xué)年科學(xué)六年級下冊冀人版
- 2025年安徽電氣工程職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 幼兒園開學(xué)教職工安全教育培訓(xùn)
- 2025-2030年中國發(fā)酵豆粕行業(yè)運行態(tài)勢及投資前景規(guī)劃研究報告
- 酒店建設(shè)項目施工總承包合同
- 2025年政府采購代理機(jī)構(gòu)考試題庫及答案
- 第14課《第一次世界大戰(zhàn)》中職高一下學(xué)期高教版(2023)世界歷史全一冊
評論
0/150
提交評論