畢業(yè)設(shè)計基于STC12C5A60S2單片機的室內(nèi)甲醛檢測儀的設(shè)計_第1頁
畢業(yè)設(shè)計基于STC12C5A60S2單片機的室內(nèi)甲醛檢測儀的設(shè)計_第2頁
畢業(yè)設(shè)計基于STC12C5A60S2單片機的室內(nèi)甲醛檢測儀的設(shè)計_第3頁
畢業(yè)設(shè)計基于STC12C5A60S2單片機的室內(nèi)甲醛檢測儀的設(shè)計_第4頁
畢業(yè)設(shè)計基于STC12C5A60S2單片機的室內(nèi)甲醛檢測儀的設(shè)計_第5頁
已閱讀5頁,還剩53頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、青島農(nóng)業(yè)大學(xué)畢 業(yè) 論 文(設(shè)計) 題 目: 基于單片機的室內(nèi)甲醛檢測儀的設(shè)計 姓 名: 王振宇 學(xué) 院: 機電工程學(xué)院 專 業(yè): 電氣工程及其自動化 班 級: 2008.01 學(xué) 號: 20082396 指導(dǎo)教師: 岳丹松 2012年6月18日 目 錄摘 要iabstractii1 緒論11.1 引言11.2 甲醛檢測儀的種類12 整體設(shè)計方案32.1 系統(tǒng)設(shè)計的基本要求32.2 系統(tǒng)設(shè)計的思想32.3 系統(tǒng)設(shè)計方案的對比選擇33 設(shè)計開發(fā)工具介紹53.1 單片機的概念和特點53.2 單片機的發(fā)展和趨勢63.3 stc12c5a60s2單片機63.4 ltc1049cn8運算放大器73.5

2、lcd1602液晶顯示屏83.6 甲醛傳感器94 系統(tǒng)硬件設(shè)計114.1 系統(tǒng)整體電路的原理114.2 系統(tǒng)晶振電路的設(shè)計124.3 系統(tǒng)復(fù)位電路的設(shè)計124.4 系統(tǒng)放大電路的設(shè)計144.5 系統(tǒng)單片機及顯示電路的設(shè)計144.6 系統(tǒng)報警電路設(shè)計155 系統(tǒng)軟件設(shè)計175.1 程序編寫語言介紹175.2 編譯軟件介紹175.3 主程序模塊225.4 模數(shù)轉(zhuǎn)換225.5 按鍵模塊245.6 液晶顯示模塊266 設(shè)計總結(jié)306.1 全文總結(jié)306.2 心得體會30參考文獻32致謝33附錄34基于單片機的室內(nèi)甲醛檢測儀的設(shè)計摘 要 眾所周知,甲醛對人體的危害很大, 在當(dāng)今的社會中甲醛通過各種途徑侵

3、入人們的生活,特別是在房屋裝修的過程中,裝修材料中殘留大量的甲醛,所以應(yīng)如何快速高效的檢測室內(nèi)甲醛的含量是否超標(biāo)就顯得尤為重要。傳統(tǒng)的檢測方法操作麻煩,而且精度不夠高,于此本研究設(shè)計了一種在室內(nèi)具有檢測和超限報警功能的智能甲醛檢測儀。該設(shè)計方案基于stc12c5a60s2單片機,選擇英國達特公司生產(chǎn)的甲醛傳感器。該系統(tǒng)將傳感器輸出的電流信號放大后,通過a / d轉(zhuǎn)換電路調(diào)整,再通過單片機進行數(shù)據(jù)處理,最后由lcd顯示甲醛濃度值。本設(shè)計具有顯示報警功能,并且具有功耗低、精度高、便于攜帶等特點。關(guān)鍵詞:甲醛;stc12c5a60s2;傳感器;a / d;lcddesign of indoor fo

4、rmaldehyde detector based on scm abstractas is known to all, formaldehyde does great harm to human body. nowadays, peoples life is influence by formaldehyde through different ways, especially when buildings have been decorated. there are amount of the residual formaldehyde in the room. thus, it is i

5、mportant to detect accurately that if the content of indoor formaldehyde is out of limits. the operation of traditional test methods is troublesome and of low accuracy. compared with which, an intelligent formaldehyde analyzer which can test the content of indoor formaldehyde and alarm when the form

6、aldehyde is out of limits is designed. based on the stc12c5a60s2 microcontroller, the design needs a formaldehyde sensor produced by dartmouth company. in the system, current signal output by sensor will be amplified and will be adjusted through the a/d converter. then through the single-chip microc

7、omputer data processing, formaldehyde chrome value will be showed in the liquid crystal displays (lcd). this design has the function of showing alarms and has lots of advantages such as low power consumption, high precision, easy to carry, etc.keywords: formaldehyde; stc12c5a60s2; sensors; a/d; lcd1

8、 緒論1.1 引言甲醛是一種無色有強刺激性氣味的氣體。溶于水、醇類和醚。甲醛在室溫下是氣體,通常以水溶液的形式存在。37%的水溶液稱為福爾馬林,醫(yī)療和科研部門通常用來做標(biāo)本的防腐保存。在我們國家有毒化學(xué)物質(zhì)優(yōu)先控制名單中甲醛位居第二。甲醛一直是世界衛(wèi)生組織確定為癌癥和導(dǎo)致畸形的物質(zhì)材料1。甲醛可以和蛋白質(zhì)結(jié)合,吸入高濃度甲醛會引起呼吸道嚴(yán)重的刺激和水腫、眼痛、頭痛,也可能發(fā)生支氣管哮喘,人的皮膚直接接觸甲醛,可能會引起皮炎、皮膚色斑、皮膚壞死。經(jīng)常吸入甲醛,也能導(dǎo)致慢性中毒,出現(xiàn)黏膜充血、皮膚刺激疾病、過敏性皮炎、指甲角化以及脆弱等。全身癥狀有頭痛、疲勞、心悸、失眠、體重減輕和植物神經(jīng)紊亂等2

9、。甲醛的來源途徑一般有這個方面:1室內(nèi)裝飾材料里面的合成板材,如膠合板、細(xì)木工板、高密度板、刨花板。甲醛在這些板材中起膠合劑、防腐劑的角色,主要用于加強材料的硬度、防蟲、腐蝕。板材里的殘余和未參與反應(yīng)的甲醛向周圍生態(tài)環(huán)境逐步釋放甲醛,是室內(nèi)空氣中甲醛的主要來源。2使用合成板制造家具,廠家為追求利潤的不惜使用不合格的木料板材,再粘貼材料表面時使用不合格的膠水,導(dǎo)致家具的甲醛含量超標(biāo)。3含有甲醛并且可能會向周圍環(huán)境發(fā)出的各種裝飾材料,如墻紙、地毯、油漆等。1.2 甲醛檢測儀的種類目前,市場的甲醛檢測器有許多不同的種類,其中比較常見的是使用試驗紙光電光度法,當(dāng)甲醛吹到浸有發(fā)色劑的試紙上時,浸有發(fā)色劑

10、的tab組合就會發(fā)生化學(xué)反應(yīng)使標(biāo)簽顏色發(fā)生變化。在接觸甲醛后溶解在試紙里的試藥就會和甲醛發(fā)生化學(xué)反應(yīng)產(chǎn)生化合物,試紙的顏色會從白色變成黃色。顏色改變的程度可以反映出所受光的反射光量,反射光量的強度變化率強度可以作為被測氣體的甲醛含量的預(yù)測值。預(yù)先設(shè)定檢測線,可以通過測量反應(yīng)率來檢測甲醛濃度的含量。在收集氣體的方法上有的是使用自動吸引方式(內(nèi)置微型空氣泵),一些使用擴散式。用測試紙光電光度法分析甲醛的濃度,它的優(yōu)點是靈敏度高,操作簡單,快速測定。但是這種方法在分析甲醛濃度時,往往是目視比色法,它的缺點是:(1)因為許多有色溶液是不夠穩(wěn)定的,不能長久保存,經(jīng)常需要在測定的時候現(xiàn)配制溶液,比較費時費

11、力費事。(2)目視比色法的精度低,準(zhǔn)確率不高,一般相對誤差為520。本文設(shè)計的便攜式甲醛檢測儀所使用的甲醛傳感器是電化學(xué)傳感器。它可以使甲醛的濃度轉(zhuǎn)換成微弱的電流信號。這樣可以通過電流電壓變換電路使微弱的電流信號轉(zhuǎn)換為可以測量的穩(wěn)定的電壓信號,增強了該電信號的穩(wěn)定性。2 整體設(shè)計方案2.1 系統(tǒng)設(shè)計的基本要求本次設(shè)計的主要內(nèi)容是設(shè)計一種基于單片機的室內(nèi)甲醛檢測儀,主要利用單片機和放大電路對甲醛傳感器的輸出信號進行采集處理。設(shè)計基本要求:(1)快速檢測功能:當(dāng)將儀器至于封閉環(huán)境時能快速測出甲醛濃度并顯示。(2)超標(biāo)報警功能:當(dāng)甲醛濃度超出國標(biāo)時給予報警提示。2.2 系統(tǒng)設(shè)計的思想隨著現(xiàn)代電子技術(shù)

12、的迅速發(fā)展,傳感技術(shù)已形成一個獨立的新興的高科技領(lǐng)域。傳感器的高度自動化、微型化與集成化,減少了對使用者環(huán)境和技術(shù)的要求,其便攜式的特點尤其適合于野外、現(xiàn)場分析的需要。本設(shè)計擬采用英國達特公司生產(chǎn)的ch20甲醛傳感器,傳感器的貴金屬電極與揮發(fā)的甲醛氣體發(fā)生反應(yīng),產(chǎn)生與揮發(fā)的甲醛濃度成正比的電信號。由于甲醛傳感器產(chǎn)生的電信號十分微弱,不能直接與控制電路相連接使用,我們將其首先經(jīng)過一個放大電路,將信號放大,再經(jīng)過模數(shù)轉(zhuǎn)換器將模擬信號轉(zhuǎn)換成數(shù)字信號,在單片機電路的作用下,通過lcd將空氣中甲醛含量的濃度用數(shù)字顯示出來3。創(chuàng)新點:(1)使化學(xué)檢測轉(zhuǎn)化為電信號檢測。(2)應(yīng)用單片機來顯示最后結(jié)果,成本低

13、。(3)設(shè)備便于攜帶,操作簡單。(4)實現(xiàn)單片機控制的智能化。2.3 系統(tǒng)設(shè)計方案的對比選擇方案一:基于普通51單片機和國產(chǎn)mq138傳感器的設(shè)計方案國產(chǎn)mq138傳感器中能基本實現(xiàn)甲醛測量需要,其信號可以經(jīng)過放大電路,在經(jīng)過ad轉(zhuǎn)換芯片后送給單片機進行處理最后顯示。其工作模塊可以分為:傳感器、放大電路、ad電路、單片機、顯示電路。通過這幾個部分的結(jié)合可以基本實現(xiàn)設(shè)計的功能,但是由于mq138傳感器的線性度極其不理想,而且其測量范圍為1ppm10ppm,最低測量值已經(jīng)遠遠超過國家標(biāo)準(zhǔn)的最低值0.8ppm。系統(tǒng)所采用的單片機只能進行數(shù)據(jù)處理,仍需要另外購買ad芯片,給系統(tǒng)造成成本增加,且對電路的

14、性能會造成影響。方案二:基于增強型單片機和進口傳感器的設(shè)計方案英國達特(dart)公司的甲醛傳感器雖然價格為mq138的兩倍,但其擁有穩(wěn)定的線性度,且靈敏度達到0.01ppm,可以滿足測量國家標(biāo)準(zhǔn)。系統(tǒng)工作模塊也分為傳感器、放大電路、ad電路、單片機、顯示電路。系統(tǒng)才用的是增強型51單片機即stc12c5a60s2單片機,不但擁有超高的執(zhí)行速度而且內(nèi)置了10位的ad轉(zhuǎn)換,可以簡單化電路,更可以節(jié)約一定的成本,對整體電路的穩(wěn)定性能更有保障。兩個方案的比較:方案一,雖然基本滿足測量需求,但是01ppm的范圍為盲區(qū),無法測量更無法在超過國標(biāo)時及時提醒,系統(tǒng)整體穩(wěn)定性不高。方案二,完全能夠滿足測量需求

15、,精度高,功耗更低,電路設(shè)計簡單,穩(wěn)定性高,更加可靠,所以選用方案二。3 設(shè)計開發(fā)工具介紹3.1 單片機的概念和特點現(xiàn)代社會中,盡管pc機的應(yīng)用已經(jīng)相當(dāng)普遍,但是,在工控領(lǐng)域,在日益追求小而精、輕而薄的自動化控制器、自動化儀器儀表、家電產(chǎn)品等方面,pc機仍有所不相適宜的地方。而工業(yè)控制、儀器儀表、家電產(chǎn)品等市場廣闊,要求pc機技術(shù)與之相適應(yīng)。在這種情況下,單片機應(yīng)運而生了(也稱作微型計算機)。微型計算機的基本機構(gòu)是由中央處理器、儲存器、和i/o設(shè)備構(gòu)成的。所謂的單片機是指將微型計算機3個單元的多個分體中的主要功能用1個集成電路芯片來實現(xiàn),該芯片具有一個微型計算機的基本功能。這種超大規(guī)模集成電路

16、芯片即稱為單片微型計算機,通常簡稱單片機。單片機具有以下特點:(1) 受集成度限制,片內(nèi)存儲容量較小,一般8位單片機的rom小于8/16k字節(jié),ram小于256字節(jié),但可在外部擴展,通常rom、ram可分別擴展至64k字節(jié)。(2) 可靠性好。芯片本身是按工業(yè)測控環(huán)境要求設(shè)計的,其抗工業(yè)噪聲干擾優(yōu)于一般通用cpu;程序指令及常數(shù)、表格固化在rom中不易破壞;許多信號通道均在一個芯片內(nèi),故可靠性高。(3) 易擴展。片內(nèi)具有計算機正常運行所必需的部件。芯片外部有許多供擴展用的三總線及并行、串行輸入/輸出管腳,很容易構(gòu)成各種規(guī)模的計算機應(yīng)用系統(tǒng)。(4) 控制功能強。為了滿足工業(yè)控制要求,一般單片機的指

17、令系統(tǒng)中具有極豐富的條件分支轉(zhuǎn)移指令、i/o口的邏輯操作以及位處理功能。一般說來,單片機的邏輯控制功能及運行速度均高于同一檔次的微處理器。(5) 一般單片機內(nèi)無監(jiān)控程序或系統(tǒng)通用管理軟件,只放置有用戶調(diào)試好的應(yīng)用程序。但近年來也開始出現(xiàn)了在片內(nèi)固化有basic解釋程序的單片機。3.2 單片機的發(fā)展和趨勢由于單片機具有以上特點,因此在工業(yè)控制、數(shù)據(jù)采集、智能儀器儀表、智能化設(shè)備和各種家用電器等領(lǐng)域得到廣泛的應(yīng)用。隨著微電子工藝水平的提高,近十年來單片微型計算機有了飛速的發(fā)展。歸納起來,它是沿著兩條路發(fā)展的:1.改進集成電路制造工藝,提高芯片的工作速度,降低工作電壓和降低功耗:2.在保留共同的cp

18、u體系結(jié)構(gòu),最基本的外設(shè)裝置(如異步串行口,定時器等)和一套公用的指令系統(tǒng)的基礎(chǔ)上,根據(jù)不同的應(yīng)用領(lǐng)域,把不同的外設(shè)裝置集成到芯片內(nèi),在同一個家族內(nèi)繁衍滋生出各種型號的單片機。另外在單片機的應(yīng)用中,可靠性是首要因素,為了擴大單片機的應(yīng)用范圍和領(lǐng)域,提高單片機自身的可靠性是一種有效方法。近年來,單片機的生產(chǎn)廠家在單片機設(shè)計上采用了各種提高可靠性的新技術(shù),主要表現(xiàn)在一下幾點:(1)eft(electrical fast transient)技術(shù)(2)低噪音布線技術(shù)及驅(qū)動技術(shù)(3)采用低頻時鐘總之,單片機在目前的發(fā)展形勢下,表現(xiàn)出幾大趨勢:(1)可靠性及應(yīng)用水平越來越高,和internet連接已是一

19、種明顯的走向;(2)所集成的部件越來越多;(3)功耗越來越低;(4)和模擬電路結(jié)合越來越多。3.3 stc12c5a60s2單片機stc12c5a60s2單片機(引腳如圖3-1)是宏晶科技生產(chǎn)的一種能夠與傳統(tǒng)8051完全兼容的新型單片機,它執(zhí)行速度是傳統(tǒng)51單片機的812倍,內(nèi)部集成max810專用復(fù)位電路,2路pwm,8路高速10位a/d轉(zhuǎn)換(即p1口),因此具有很強大的數(shù)據(jù)處理能力,本身自帶的10位a/d轉(zhuǎn)換更是為本設(shè)計節(jié)約了成本。其基本參數(shù)如下4:1.與mcs-51產(chǎn)品指令和引腳完全兼容。2.60k字節(jié)可重擦寫flash閃存存儲器。3.100000次寫/擦循環(huán)。4.時鐘頻率:0hz35m

20、hz相當(dāng)于普通單片機的0420m。5.三級加密存儲器。6.1280字節(jié)內(nèi)部ram。7.36/40/44個可編程i/o口線。 8.4個16位定時/計數(shù)器,7個中斷源。9.2路pwm。 10.低功耗的空閑和掉電模式。 11.片內(nèi)振蕩器和時鐘電路。圖3-1 stc12c5a60s2 規(guī)范引腳3.4 ltc1049cn8運算放大器ltc1049(引腳如圖3-2)是一種高性能,低功耗的零漂移運算放大器。此外,ltc1049提供優(yōu)越的dc和ac性能,其理論供應(yīng)電流僅為200a。ltc1049擁有典型失調(diào)電壓漂移0.02v/c, 0.1hz到10hz輸入噪聲電壓的3v。轉(zhuǎn)換速度電壓增益為與典型的160db與

21、增益帶寬產(chǎn)品的0.8mhz。超載從飽和狀態(tài)的恢復(fù)時間6ms,比削波器放大器顯著改善使用外部電容器,可以在ltc1049是一個插件替換與大多數(shù)標(biāo)準(zhǔn)運算amps大幅度提高dc性能和降低功耗。其基本參數(shù)如下:1.低電源電流:200a2.無需外部元件3.最大失調(diào)電壓:10v4.最大偏移電壓漂移:0.1v/c5.單電源供電:4.75v到16v6.輸入共模范圍包括地面8.典型的過載恢復(fù)時間:6ms9.在8-pin可用,以便和pdip軟件包兼容圖3-2 ltc1049cn8 的引腳圖3.5 lcd1602液晶顯示屏lcd顯示有很多種,常用的有1602和12864兩種,由于本設(shè)計中顯示的甲醛含量屬于較簡單的字

22、符,可以考慮使用1602,lcd1602具有顯示內(nèi)容豐富,接口電路簡單,人機交流性強等特點,適合本次設(shè)計的研究。其具體參數(shù)如表3-1,接口信號參數(shù)如表3-24。具體參數(shù):表3-1 lcd1602技術(shù)參數(shù)顯示容量:162個字符芯片工作量:4.55.5v工作電流:2.0ma(5.0v)模塊最佳工作電壓:5.0v字符尺寸:2.954.35(wh)mm接口信號參數(shù):表3-2 lcd1602接口信號表格編號符號引腳說明編號符號引腳說明1vss電源地9d2data i/o2vss電源正極10d3data i/o3vl液晶顯示偏壓信號11d4data i/o4rs數(shù)據(jù)/命令選擇端12d5data i/o5r

23、/w讀/寫選擇端13d6data i/o6e使能信號14d7data i/o7d0data i/o15bla背光源正極8d1data i/o16blk背光源負(fù)極3.6 甲醛傳感器本甲醛檢測儀采用英國達特(dart)公司生產(chǎn)的甲醛傳感器如圖3。該傳感器是兩電極電化學(xué)型的傳感器,通過擴散原理實現(xiàn),因此不需要外部采樣硬件。當(dāng)有甲醛氣體存在的時候,將會有一個很小的直流產(chǎn)生;傳感器本身不需要電源供應(yīng),但是產(chǎn)生的這個電流需要外部的數(shù)據(jù)采集將其變?yōu)榭勺x的信號。主要參數(shù)如下6:1.正常檢測0一10ppm,最大值50ppm;2.輸出信號250300nappm;3.分辨率001ppm;4.響應(yīng)時間30s;5.最大

24、零點沮度漂移(+20一+40c)lppm;6.工作溫度-10一40;7.基線飄移0.03/ppm;8.壽命3年。圖3-3 甲醛傳感器的實物圖4 系統(tǒng)硬件設(shè)計4.1 系統(tǒng)整體電路的原理基于上述的首選設(shè)備,提出了硬件設(shè)計功能框圖如圖4-1所示:傳感器ch2o放大電路stc12c5a60s2單片機(a/d轉(zhuǎn)換及數(shù)據(jù)處理)lcd1602按鍵圖4-1 硬件功能框圖報警電路圖4-1 硬件功能框圖通過查閱資料提出整體的設(shè)計框架(如下3點),通過電腦仿真來完成功率放大電路和傳感器的研究工作,通過單片機開發(fā)板軟件和硬件的結(jié)合設(shè)計出a/d轉(zhuǎn)換程序及l(fā)cd顯示模塊,最后綜合在一起,通過實驗室進行各項技術(shù)指標(biāo)的測量不

25、斷改進、完善。1.信號轉(zhuǎn)換部分:該部分由氣體傳感器組成,其功能是將被測物濃度變成電信號。2.信號處理部分:該部分由信號變換組成。 信號變換由氣體傳感器產(chǎn)生的電信號較小且和要求輸出的信號不成比例關(guān)系,必須經(jīng)放大后才能得到標(biāo)準(zhǔn)輸出信號及控制信號。信號經(jīng)處理后,輸出模擬信號。通過a/d轉(zhuǎn)化為數(shù)字信號進入單片機,最后lcd顯示,溫度信號經(jīng)變換后供控制和計算用。 3.輸出部分:該部分由模擬信號輸出和lcd 數(shù)字輸出兩部分組成(通過單片機來實現(xiàn)),由傳感器出來的信號經(jīng)過放大電路進行放大后由單片機經(jīng)過a/d轉(zhuǎn)換并經(jīng)過數(shù)字濾波和進制轉(zhuǎn)換后送到lcd1602顯示,由按鍵來控制其它功能,當(dāng)檢測到得甲醛含量超過上限

26、值則發(fā)出報警。4.2 系統(tǒng)晶振電路的設(shè)計單片機在工作時的每個指令的微操作在時間上都有嚴(yán)格的秩序,這樣的微操作時間順序稱為時序,單片機時鐘信號用于給單片機芯片里的各種微操作提供了一個時間基準(zhǔn), stc12c5a60s2的時鐘生產(chǎn)方式分為兩種,一種是內(nèi)部時鐘方式,一是外部時鐘方式10。內(nèi)部時鐘的方式就是在單片機外部連接一個晶振電路和單片機內(nèi)部的振蕩器發(fā)生作用產(chǎn)生時鐘脈沖信號。外部時鐘形式是把現(xiàn)有的外部時鐘信號引入到控制器在里面,這種方法通常被用于多片stc12c5a60s2單片機同時工作時,為了方便單片機系統(tǒng)的同步,一般要求外部信號的高電平的持續(xù)時間超過20 ns,且為頻率低于12mhz的方波11

27、。該系統(tǒng)以盡量降低功耗的原則使用了內(nèi)部時鐘模式。圖4-2 晶振電路圖在stc12c5a60s2單片機內(nèi)部有一個震蕩電路,只要在單片機的處理器的xtal1和xtal2引腳外接石英晶體(簡稱晶振)就構(gòu)成了自激振蕩器并且在單片機內(nèi)部產(chǎn)生時鐘脈沖信號,圖中的電容器c2和c3穩(wěn)定頻率和快速起振,電容值在530pf,典型值是22 pf,晶振cys選擇的是12 mhz。4.3 系統(tǒng)復(fù)位電路的設(shè)計復(fù)位的含義:單片機開始工作的時候,必須處于一種確定的狀態(tài),否則,不知哪是第一條程序和如何開始運行程序。端口線電平和輸入輸出狀態(tài)不確定可能使外圍設(shè)備誤動作,導(dǎo)致嚴(yán)重事故的發(fā)生;內(nèi)部一些控制寄存器(專用寄存器)內(nèi)容不確定

28、可能導(dǎo)致定時器溢出、程序尚未開始就要中斷及串口亂傳向外設(shè)發(fā)送數(shù)據(jù)。因此,任何單片機在開始工作前,都必須進行一次復(fù)位過程,使單片機處于一種確定的狀態(tài) 12。復(fù)位電路原理:當(dāng)在stc12c5a60s2單片機的rst引腳接入高電平并且保持2個機器周期時,單片機內(nèi)部就執(zhí)行復(fù)位操作(若該引腳持續(xù)保持高電平,單片機就處于循環(huán)復(fù)位狀態(tài))。實際的應(yīng)用中,復(fù)位操作有兩種基本類型:一種是上電復(fù)位,另一種是上電和按鍵都有效的復(fù)位,要求接通電源后,單片機自動實現(xiàn)復(fù)位操作。本次設(shè)計中的復(fù)位電路采用的是開關(guān)復(fù)位電路,開關(guān)s9沒有按下時是上電復(fù)位電路,上電復(fù)位電路在上電的瞬間,由于電容上的電壓不能突變,電容充電(導(dǎo)通)狀態(tài)

29、,所以rst引腳的電壓和vcc相同。隨著電容的充電,rst引腳上的電壓會逐漸降低。選擇合理的充電常數(shù),就可以保證開關(guān)按下時rst端有兩個機器周期以上的高電平,從而使stc12c5a60s2內(nèi)部復(fù)位。開關(guān)按下時是手動復(fù)位電路,rst端口通過電阻與vcc電源相接通,通過電阻的分壓來可以實現(xiàn)單片機的復(fù)位。電路圖見圖4-3。圖4-3 復(fù)位電路圖4.4 系統(tǒng)放大電路的設(shè)計由于傳感器的輸出信號非常微弱,因此放大器需要選擇高放大倍數(shù)的運放。電路設(shè)計和元器件的選擇因此顯得非常關(guān)鍵。校準(zhǔn)可以通過調(diào)整電路的放大倍數(shù),從而在軟件中實現(xiàn)校準(zhǔn)。具體放大電路如圖4-4,其中電流源模擬甲醛傳感器輸出電流,放大器對其進行轉(zhuǎn)換

30、放大,其放大電路的具體參數(shù)及轉(zhuǎn)換放大原理圖如圖5所示。在系統(tǒng)中的高精度測量放大電路設(shè)計中,反饋電阻選為470 k,同時并聯(lián)一個4.7f的鉭電容在沒有反向響應(yīng)時間的情況下降噪7。圖4-4 放大電路原理圖4.5 系統(tǒng)單片機及顯示電路的設(shè)計因為stc12c5a60s2單片機和普通51單片機的引腳相同并且完全兼容,因此在該電路設(shè)計時,可采用普通的單片機最小系統(tǒng)板來布局就可以了,放大電路的信號可以在經(jīng)過p1口進入單片機進行a/d轉(zhuǎn)換和數(shù)據(jù)處理后經(jīng)過連接p0口的lcd1062從而來進行顯示。具體電路如圖4-5所示。圖4-5 顯示電路和stc12c5a60s24.6 系統(tǒng)報警電路設(shè)計當(dāng)電路測試到甲醛濃度超過

31、國家標(biāo)準(zhǔn)的限制性時,將產(chǎn)生一個信號給報警電路。讓報警電路報警以此來提醒工作人員查看解決,超限報警電路如下圖4-6所示。這是由stc12c5a60s2的p2.6口來進行控制,當(dāng)超過設(shè)置的數(shù)值0.08 ppm時,通過預(yù)設(shè)的程序使p2.6口值變?yōu)楦唠娖?從而使三極管導(dǎo)通,報警電路接通,使蜂鳴器發(fā)出警號聲。這個任務(wù)的實現(xiàn)主要依靠程序來完成。圖4-6 報警電路5 系統(tǒng)軟件設(shè)計5.1 程序編寫語言介紹對于單片機的開發(fā)應(yīng)用中,逐漸引入了高級語言,c語言就是其中的一種。匯編語言的可控性較高級語言來說更具優(yōu)越性。程序編寫語言比較常見的有c語言、匯編語言。匯編語言的機器代碼生成效率高,控制性好,但就是移植性不高。

32、c語言編寫的程序比用匯編編寫的程序更符合人們的思考習(xí)慣。還有很多處理器都支持c編譯器,這樣意味著處理器也能很快上手。且具有良好的模塊化、容易閱讀、維護等優(yōu)點,且編寫的模塊程序易于移植8?;赾語言和匯編語言的優(yōu)缺點,本系統(tǒng)采用c語言編寫方法。 編寫軟件的主要思想是把要實現(xiàn)的系統(tǒng)功能按照不同的模塊進行劃分,然后再根據(jù)每個模塊最終要實現(xiàn)的功能逐個的編寫程序。本設(shè)計是采用查詢的方式來編寫整個程序的。5.2 編譯軟件介紹keil軟件簡介:在單片機的開發(fā)利用的過程中軟件同硬件一樣都是離不開的,人們編寫的匯編語言源程序要成為一個cpu可以執(zhí)行的機器代碼有兩種方法手工匯編和機器匯編,現(xiàn)在手工匯編基本上不用了

33、。機器匯編是用匯編軟件把源程序編寫成機器代碼,隨著單片機的發(fā)展越來越趨向成熟, 從普遍使用匯編語言到逐漸使用高級語言開發(fā),單片機的相關(guān)軟件開發(fā)也在不斷地發(fā)展,使用最普遍的匯編軟件就是keil軟件。本設(shè)計就采用了keil軟件。1.系統(tǒng)概述 keil c51是美國keil software公司出品的51系列兼容單片機c語言軟件開發(fā)系統(tǒng),與匯編相比,c語言在功能上、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學(xué)易用。用過匯編語言后再使用c來開發(fā),體會更加深刻。 keil c51軟件提供豐富的庫函數(shù)和功能強大的集成開發(fā)調(diào)試工具,全windows界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就

34、能體會到keil c51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。2. keil c51單片機軟件開發(fā)系統(tǒng)的整體結(jié)構(gòu)c51工具包整體結(jié)構(gòu),如圖5-1所示, 其中的ishell和uvision分別是c51 for dos和for windows的集成開發(fā)環(huán)境,能夠完成編輯、編譯、連接、調(diào)試和仿真等整個開發(fā)過程。開發(fā)人員可以使用ide本身或者其他編輯器編輯c語言或者匯編源文件。然后分別通過a51和c51編譯器編譯生成目標(biāo)文件。 目標(biāo)文件可以通過lib51來生成庫文件, 也可以與庫文件一起經(jīng)l51連接定位生成絕對目標(biāo)文件。絕對目標(biāo)文件

35、由oh51轉(zhuǎn)換成標(biāo)準(zhǔn)的hex文件,以供調(diào)試器dscope51或tscope51使用進行源代碼級調(diào)試,也可由仿真器使用直接對目標(biāo)板進行調(diào)試,也可以直接寫入程序存貯器如eprom中17。 圖5-1 c51工具包的整體結(jié)構(gòu)圖3. 運行keil51軟件見圖5-2 圖 5-2 軟件運行圖4.建立項目(1)單擊project菜單,再單擊下拉菜單的new project,接著彈出一個windows文件的對話框,在“文件名”輸入你的第一個c程序項目的名稱,“保存”文件擴展名為uv2,然后可以通過點擊這個文件來打開以前做的項目。(2)選擇需要的單片機,本設(shè)計用的是宏晶的stc12c5a60s2單片機。完成以上的

36、步驟,現(xiàn)在可以寫程序了。(3)首先我們要在項目中創(chuàng)建新的程序文件或加入舊程序文件。如果你沒有現(xiàn)成的程序,那么就要新建一個程序文件。(4)點擊保存新建的程序,也可以用菜單filesave或快捷鍵ctrl+s進行保存。我們把第一個程序命名為test1.c,保存在項目所在的目錄中,這時你會發(fā)現(xiàn)程序單詞有了不同的顏色,說明keil的c語法檢查生效了。鼠標(biāo)在屏幕左邊的source group1文件夾圖標(biāo)上右擊彈出菜單,在這里可以做在項目中增加減少文件等操作。然后點擊“quot;add file to group source group 1”彈出文件窗口,選擇剛剛保存的文件,按add按鈕,關(guān)閉文件窗,程

37、序文件已加到項目中了。這時在source group1文件夾圖標(biāo)左邊出現(xiàn)了一個小+號說明,文件組中有了文件,點擊它可以展開查看。(5) c程序文件已被我們加到了項目中了,下面就剩下編譯運行了。如圖5-3,圖中1、2、3都是編譯按鈕,不同是1是用于編譯單個文件。2是編譯當(dāng)前項目,如果先前編譯過一次之后文件沒有做動編輯改動,這時再點擊是不會再次重新編譯的。3是重新編譯,每點擊一次均會再次編譯鏈接一次,不管程序是否有改動。在3右邊的是停止編譯按鈕,只有點擊了前三個中的任一個,停止按鈕才會生效。在4中可以看到編譯的錯誤信息和使用的系統(tǒng)資源情況等,以后我們要查錯就靠它了。6是有一個小放大鏡的按鈕,這就是

38、開啟關(guān)閉調(diào)試模式的按鈕,它也存在于菜單debugstartstop debug session,快捷鍵為ctrl+f5。(6)進入調(diào)試模式,軟件窗口樣式大致如圖所示。圖中5-4為運行,當(dāng)程序處于停止?fàn)顟B(tài)時才有效,2為停止,程序處于運行狀態(tài)時才有效。3是復(fù)位,模擬芯片的復(fù)位,程序回到最開頭處執(zhí)行。按4我們可以打開5中的串行調(diào)試窗口,這個窗口我們可以看到從51芯片的串行口輸入輸出的字符,這里的第一個項目也正是在這里看運行結(jié)果。首先按4打開串行調(diào)試窗口,再按運行按鈕。要停止程序運行回到文件編輯模式中,就要先按停止按鈕再按開啟關(guān)閉調(diào)試模式按鈕。然后我們就可以進行關(guān)閉keil等相關(guān)操作了。 圖5-3 編

39、譯運行圖 圖5-4 調(diào)試窗口圖(7)hex文件的生成hex文件格式是英特爾公司提出的把數(shù)據(jù)信息按照地址進行排列的數(shù)據(jù)信息,數(shù)據(jù)寬度為字節(jié) ,所有的數(shù)據(jù)使用16進制數(shù)字表示。右擊圖 5-5上的1項目文件夾,彈出項目功能菜單, 選options for targettarget1 ,出現(xiàn)項目選項設(shè)置窗口,選擇項目文件夾圖標(biāo)。打開項目選項窗口,轉(zhuǎn)向頁面輸出選項頁,如圖5-6所示,1是選擇編譯輸出途徑,2設(shè)置編譯輸出生成的文件名,3是決定要不要再創(chuàng)建hex文件。圖5-5 項目窗口圖圖5-6 項目窗口圖5.3 主程序模塊主程序?qū)崿F(xiàn)的功能: 圖5-7 主程序流程圖5.4 模數(shù)轉(zhuǎn)換 (1)模數(shù)轉(zhuǎn)換模塊的主要

40、功能就是把經(jīng)放大器放大的模擬電壓信號轉(zhuǎn)化為單片機能夠處理的數(shù)字信號,并傳送給單片機。(2)stc12c5a60s2轉(zhuǎn)換的流程圖見下圖5-8所示。 圖5-8 數(shù)模轉(zhuǎn)換流程圖#define uint unsigned int /常量/變量定義/uchar k,i,j;float xdata lv;sbit adcs =p31; /adc0832 chip seclect /接口定義/ /其它引腳略uchar xdata dsw20; /存放sprintf轉(zhuǎn)換字符uchar xdata value149; /點陣字符儲存uchar code table= /字符查表unsigned int adc0

41、832(unsigned char channel) /ad轉(zhuǎn)換,返回結(jié)果 uchar i=0; adcs=0;/拉低cs端 _nop_(); _nop_(); adclk=1;/拉高clk端 _nop_(); _nop_(); adclk=0;/拉低clk端,形成下降沿1 _nop_();_nop_();adclk=1;/拉高clk端 addi=1;/控制命令結(jié)束 _nop_(); _nop_(); dat=0; for(i=0;i8;i+) dat|=addo;/收數(shù)據(jù) j=0; j=j|addo;/收數(shù)據(jù) adclk=1; _nop_(); _nop_(); adclk=0;/形成一次時

42、鐘脈沖5.5 按鍵模塊(1)按鍵是顯示人機對話的一個控制按鈕,通過對按鍵的操作,對系統(tǒng)進行發(fā)送操作指令,后經(jīng)與單片機串行通信,然后在液晶上顯示。(2)按鍵查詢式的流程圖見下圖 圖5-9 按鍵流程圖uchar get_key() /讀鍵 uchar pass,kcodebuf;static uchar lastkcode,keytime=0; /定義為靜態(tài)變量,外部不可見,但需要常駐內(nèi)存.static uchar havekey=0;static uchar keylock=0;kcodebuf=p1 & 0xff;keytime+;if (kcodebuf!=lastkcode) keytim

43、e=0;if (kcodebuf=0xff) havekey=0;keylock=0;keytime=0;pass=0;else pass=nusekey;lastkcode=kcodebuf;return(pass);5.6 液晶顯示模塊本系統(tǒng)使用1602液晶顯示??刂瞥绦蛑饕腥糠郑合蛞壕е袑懭胫噶睿幌蛞壕е袑懭霐?shù)據(jù);液晶測試忙碌狀態(tài)。寫命令時,首先測液晶是否忙碌,液晶忙碌信號消失后,置rs及rw引腳低電平,然后使能端en為高電平,下一條指令en為低電平,有一定延時。之后液晶將開始處理這條指令,置位忙碌信號,在指令處理期間將不再響應(yīng)其他指令或數(shù)據(jù)請求;寫數(shù)據(jù),先測是否忙碌,液晶忙碌信號消

44、失后;置rs=1,rw=0,然后使能端en=1;下一條指令en=0,之后液晶將開始處理這條指令,置位忙碌信號,在指令處理期間將不再響應(yīng)其他指令或數(shù)據(jù)請求。圖5-10 液晶顯示的操作流程圖液晶的程序主要由初始化函數(shù)、寫入函數(shù)、清ram函數(shù),其中初始化液晶的工作狀態(tài),包括光標(biāo)歸位,顯示設(shè)置,顯示移位等,屏幕清空等命令,是使用液晶前必須要執(zhí)行的函數(shù)。子程序流程圖如下圖所示。圖5-11 液晶顯示的操作流程圖sbit rs=p20; /寄存器選擇位,將rs位定義為p2.0引腳sbit rw=p21; /讀寫選擇位,將rw位定義為p2.1引腳sbit e=p22; /使能信號位,將e位定義為p2.2引腳s

45、bit bf=p07; /忙碌標(biāo)志位,將bf位定義為p0.7引腳函數(shù)功能:判斷液晶模塊的忙碌狀態(tài)返回值:result。result=1,忙碌;result=0,不忙unsigned char busytest(void) bit result;rs=0; /根據(jù)規(guī)定,rs為低電平,rw為高電平時,可以讀狀態(tài) rw=1; e=1; /e=1,才允許讀寫 _nop_(); /空操作 _nop_(); _nop_(); _nop_(); /空操作四個機器周期,給硬件反應(yīng)時間 result=bf; /將忙碌標(biāo)志電平賦給result e=0; /將e恢復(fù)低電平 return result; void w

46、riteinstruction (unsigned char dictate) while(busytest()=1); /如果忙就等待 rs=0; /根據(jù)規(guī)定,rs和r/w同時為低電平時,可以寫入指令 rw=0; e=0; /e置低電平(根據(jù)表8-6,寫指令時,e為高脈沖, / 就是讓e從0到1發(fā)生正跳變,所以應(yīng)先置0 delay(1); /空操作兩個機器周期,給硬件反應(yīng)時間 p0=dictate; /將數(shù)據(jù)送入p0口,即寫入指令或地址 delay(1); /空操作四個機器周期,給硬件反應(yīng)時間 e=1; /e置高電平 delay(1); /空操作四個機器周期,給硬件反應(yīng)時間 e=0; /當(dāng)e

47、由高電平跳變成低電平時,液晶模塊開始執(zhí)行命令 void writeaddress(unsigned char x) writeinstruction(x|0x80); /顯示位置的確定方法規(guī)定為80h+地址碼x void writedata(unsigned char y) while(busytest()=1); rs=1; /rs為高電平,rw為低電平時,可以寫入數(shù)據(jù) rw=0; e=0; /e置低電平(根據(jù)表8-6,寫指令時,e為高脈沖, / 就是讓e從0到1發(fā)生正跳變,所以應(yīng)先置0 p0=y; /將數(shù)據(jù)送入p0口,即將數(shù)據(jù)寫入液晶模塊 delay(1); /空操作四個機器周期,給硬件反

48、應(yīng)時間 e=1; /e置高電平 delay(1); /空操作四個機器周期,給硬件反應(yīng)時間 e=0; /當(dāng)e由高電平跳變成低電平時,液晶模塊開始執(zhí)行命令 void lcdinitiate(void) delay(15); /延時15ms,首次寫指令時應(yīng)給lcd一段較長的反應(yīng)時間 writeinstruction(0x38); /顯示模式設(shè)置:162顯示,57點陣,8位數(shù)據(jù)接口delay(5); /延時5ms,給硬件一點反應(yīng)時間 writeinstruction(0x38);delay(5);writeinstruction(0x38); /連續(xù)三次,確保初始化成功delay(5);writein

49、struction(0x0c); /顯示模式設(shè)置:顯示開,無光標(biāo),光標(biāo)不閃爍delay(5);writeinstruction(0x06); /顯示模式設(shè)置:光標(biāo)右移,字符不移delay(5);writeinstruction(0x01); /清屏幕指令,將以前的顯示內(nèi)容清除delay(5);6 設(shè)計總結(jié)6.1 全文總結(jié)本文就基于單片機的室內(nèi)甲醛檢測儀進行了整體的研究和設(shè)計,總結(jié)此設(shè)計的課題結(jié)果,可以大致歸結(jié)為以下幾個方面:(1)學(xué)習(xí)了單片機的發(fā)展路程、硬件結(jié)構(gòu)及其特點,深入學(xué)習(xí)了stc12c5a60s2單片機的硬件和軟件編程及調(diào)試方法,深入學(xué)習(xí)了相關(guān)系統(tǒng)電路的分類作用及其特點,以及一些與之相

50、關(guān)的程序編寫方法。(2)了解了傳感器的相關(guān)知識,并且對又英國達特公司生產(chǎn)的甲醛傳感器做了深入的對比認(rèn)知,認(rèn)識了傳感器的整體結(jié)構(gòu)及其在國內(nèi)外的發(fā)展情況。(3)對匯編語言在整體上做了了解和認(rèn)知,深入學(xué)習(xí)了c語言的優(yōu)缺點,同時掌握了基本的c語言編程。 (4)對于系統(tǒng)的編譯有一個全新的認(rèn)識,了解了在windows環(huán)境下利用keil軟件進行程序編譯的基本方法。 通過以上所做的內(nèi)容為課題的進一步研究奠定了一定的基礎(chǔ),但本人的水平有限,在研究上的程度不夠深入,論文中存在諸多不足,這需要在以后的學(xué)習(xí)研究中進一步提高,概括起來有以下幾點:(1)對單片機的理論知識方面的學(xué)習(xí)還需要進一步的加強,同時要結(jié)合實際情況對

51、單片機系統(tǒng)的整體設(shè)計進行改進,使之更加符合工業(yè)和實際需要。(2)在匯編語言的運用上還需要進一步的加強,完善程序編輯,使之更加簡潔有效,使語言更加符合設(shè)計標(biāo)準(zhǔn)。(3)在硬件系統(tǒng)的整體設(shè)計上還需要進一步的完善,根據(jù)不同的現(xiàn)場情況進一步改善,使之更加的安全方便。6.2 心得體會畢業(yè)的腳步越來越近,畢業(yè)設(shè)計也接近了尾聲,經(jīng)過3個多月的學(xué)習(xí)研究,在老師的悉心指導(dǎo)和同學(xué)的熱心幫助下,自己的理論水平和動手能力都有了很大的提高,但同時也發(fā)現(xiàn)了一些問題。首先來說,意識到自己現(xiàn)在所學(xué)的知識還是有太多的欠缺,對于單片機的運用和設(shè)計還有許多知識需要學(xué)習(xí),特別是理論研究和實踐相結(jié)合的部分需要重點提高;其次,由于在本次設(shè)計中遇到許多電路設(shè)計上的困難,在老師的悉心指導(dǎo)下,明白了其中一些系統(tǒng)功能的實現(xiàn)方法,但是自己還需要進一步學(xué)習(xí);最后,在設(shè)計和學(xué)習(xí)中要多向別人學(xué)習(xí),多進行溝通交流,只有那樣才能快速的提高自己。以上是我在本次畢業(yè)設(shè)計過程中的一些心得。參考文獻1潘政華.甲醛對人體健康的影響及治理措施j.現(xiàn)代農(nóng)業(yè),2011,38(6):24-27.3田清華.基于電化學(xué)敏感電極的甲醛測試儀的研究d.河北:燕山大學(xué),2007:29-31.4宏晶

溫馨提示

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

評論

0/150

提交評論