基于單片機(jī)的室內(nèi)甲醛檢測(cè)_第1頁(yè)
基于單片機(jī)的室內(nèi)甲醛檢測(cè)_第2頁(yè)
基于單片機(jī)的室內(nèi)甲醛檢測(cè)_第3頁(yè)
基于單片機(jī)的室內(nèi)甲醛檢測(cè)_第4頁(yè)
基于單片機(jī)的室內(nèi)甲醛檢測(cè)_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

基于單片機(jī)的室內(nèi)甲醛檢測(cè)儀的設(shè)計(jì)摘要:甲醛對(duì)人體危害極大,對(duì)此研究并設(shè)計(jì)了一種用于室內(nèi)具有檢測(cè)及超限報(bào)警功能的甲醛智能測(cè)試儀。其設(shè)計(jì)方案基于STC89C52單片機(jī),選擇英國(guó)達(dá)特公司的甲醛傳感器。系統(tǒng)將傳感器輸出的電流經(jīng)放大后信號(hào)通過(guò)A/D轉(zhuǎn)換電路調(diào)理后,經(jīng)由單片機(jī)進(jìn)行數(shù)據(jù)處理,最后由LCD顯示甲醛濃度值。關(guān)鍵詞:甲醛、STC89C52、傳感器、A/D、LCD1602液晶1.引言1.1甲醛的特性及危害甲醛是一種無(wú)色,有強(qiáng)烈刺激性氣味的氣體。易溶于水、醇和醚。甲醛在常溫下是氣態(tài),通常以水溶液形式出現(xiàn)。其37%的水溶液稱為福爾馬林,醫(yī)學(xué)和科研部門常用于標(biāo)本的防腐保存。在我國(guó)有毒化學(xué)品優(yōu)先控制名單中甲醛列居第二位。甲醛已被世界衛(wèi)生組織確定為致癌和致畸形物質(zhì)。[1]甲醛能與蛋白質(zhì)結(jié)合,吸入高濃度甲醛后會(huì)出現(xiàn)呼吸道的嚴(yán)重刺激和水腫、眼刺痛、頭痛,也可發(fā)生支氣管哮喘皮膚直接接觸甲醛,可引起皮炎、色斑、壞死。經(jīng)常吸入少量甲醛,能引起慢性中毒,出現(xiàn)粘膜充血、皮膚刺激癥、過(guò)敏性皮炎、指甲角化和脆弱等。全身病癥有頭痛、乏力、心悸、失眠、體重減輕以及植物神經(jīng)紊亂等。[2]1.2甲醛的來(lái)源1.室內(nèi)裝修所用的合成板材,如膠合板、細(xì)木工板、高密度板、刨花板。這些板材中甲醛起膠合劑、防腐劑的作用,主要用于加強(qiáng)板材的硬度、防蟲(chóng)、防腐。板材中殘留的和未參與反響的甲醛逐漸向周圍環(huán)境釋放,是室內(nèi)空氣中甲醛的主要來(lái)源。2.用合成板材制造的家具,廠家為了追求利潤(rùn)使用不合格的板材,再粘貼面材料時(shí)使用不合格的膠水,造成家具中甲醛含量超標(biāo)。3.含有甲醛成分并有可能向外界散發(fā)的各類裝飾材料,如壁紙、地毯、油漆。2.總體設(shè)計(jì)方案2.1系統(tǒng)設(shè)計(jì)根本要求本次設(shè)計(jì)的主要內(nèi)容是設(shè)計(jì)一種基于單片機(jī)的室內(nèi)甲醛檢測(cè)儀,主要利用單片機(jī)和放大電路對(duì)甲醛傳感器的輸出信號(hào)進(jìn)行采集處理。設(shè)計(jì)根本要求:1.快速檢測(cè)功能:當(dāng)將儀器至于封閉環(huán)境時(shí)能快速測(cè)出甲醛濃度并顯示。2.超標(biāo)報(bào)警功能:當(dāng)甲醛濃度超出國(guó)標(biāo)時(shí)給予報(bào)警提示。2.2系統(tǒng)設(shè)計(jì)思路隨著現(xiàn)代電子技術(shù)的迅速開(kāi)展,傳感技術(shù)已形成一個(gè)獨(dú)立的新興的高科技領(lǐng)域。傳感器的高度自動(dòng)化、微型化與集成化,減少了對(duì)使用者環(huán)境和技術(shù)的要求,其便攜式的特點(diǎn)尤其適合于野外、現(xiàn)場(chǎng)分析的需要。本設(shè)計(jì)擬采用英國(guó)達(dá)特公司生產(chǎn)的CH20甲醛傳感器,傳感器的貴金屬電極與揮發(fā)的甲醛氣體發(fā)生反響,產(chǎn)生與揮發(fā)的甲醛濃度成正比的電信號(hào)。由于甲醛傳感器產(chǎn)生的電信號(hào)十分微弱,不能直接與控制電路相連接使用,我們將其首先經(jīng)過(guò)一個(gè)放大電路,將信號(hào)放大,再經(jīng)過(guò)模/數(shù)轉(zhuǎn)換器將模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),在單片機(jī)電路的作用下,通過(guò)LCD將空氣中甲醛含量的濃度用數(shù)字顯示出來(lái)。創(chuàng)新點(diǎn):1.使化學(xué)檢測(cè)轉(zhuǎn)化為電信號(hào)檢測(cè)。2.應(yīng)用單片機(jī)來(lái)顯示最后結(jié)果,本錢低。 3.設(shè)備便于攜帶,操作簡(jiǎn)單。4.實(shí)現(xiàn)單片機(jī)控制的智能化。3系統(tǒng)硬件電路設(shè)計(jì)3.1主控器AT89C52實(shí)物圖:AT89C52是51系列單片機(jī)的一個(gè)型號(hào),它是ATMEL公司生產(chǎn)的。AT89C52是一個(gè)低電壓,高性能CMOS8位單片機(jī),片內(nèi)含8kbytes的可反復(fù)擦寫(xiě)的Flash只讀程序存儲(chǔ)器和256bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器〔RAM〕,器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲(chǔ)單元,功能強(qiáng)大的AT89C52單片機(jī)可為您提供許多較復(fù)雜系統(tǒng)控制應(yīng)用場(chǎng)合。AT89C52有40個(gè)引腳,32個(gè)外部雙向輸入/輸出〔I/O〕端口,同時(shí)內(nèi)含2個(gè)外中斷口,3個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,2個(gè)讀寫(xiě)口線,AT89C52可以按照常規(guī)方法進(jìn)行編程,但不可以在線編程(S系列的才支持在線編程)。其將通用的微處理器和Flash存儲(chǔ)器結(jié)合在一起,特別是可反復(fù)擦寫(xiě)的Flash存儲(chǔ)器可有效地降低開(kāi)發(fā)本錢。兼容MCS51指令系統(tǒng)·8k可反復(fù)擦寫(xiě)(>1000次〕FlashROM32個(gè)雙向I/O口·256x8bit內(nèi)部RAM·3個(gè)16位可編程定時(shí)/計(jì)數(shù)器中斷,時(shí)鐘頻率0-24MHz·2個(gè)串行中斷·可編程UART串行通道·2個(gè)外部中斷源·共6個(gè)中斷源·2個(gè)讀寫(xiě)中斷口線·3級(jí)加密位全雙工增強(qiáng)型UART。3個(gè)16位定時(shí)/計(jì)數(shù)器,T0、T1〔標(biāo)準(zhǔn)80C51〕和增加的T2〔捕獲和比擬〕。全靜態(tài)工作方式:0~24MHz。3.2模數(shù)轉(zhuǎn)換電路ADC08093.2.1ADC0809ADC0809是帶有8位A/D轉(zhuǎn)換器、8路多路開(kāi)關(guān)以及微處理機(jī)兼容的控制邏輯的CMOS組件。它是逐次逼近式A/D轉(zhuǎn)換器,可以和單片機(jī)直接接口。ADC0809由一個(gè)8路模擬開(kāi)關(guān)、一個(gè)地址鎖存與譯碼器、一個(gè)A/D轉(zhuǎn)換器和一個(gè)三態(tài)輸出鎖存器組成。多路開(kāi)關(guān)可選通8個(gè)模擬通道,允許8路模擬量分時(shí)輸入,共用A/D轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換。三態(tài)輸出鎖器用于鎖存A/D轉(zhuǎn)換完的數(shù)字量,當(dāng)OE端為高電平時(shí),才可以從三態(tài)輸出鎖存器取走轉(zhuǎn)換完的數(shù)據(jù)。ADC0809各腳功能如下:

D7-D0:8位數(shù)字量輸出引腳。

IN0-IN7:8位模擬量輸入引腳。

VCC:+5V工作電壓。

GND:地。

REF〔+〕:參考電壓正端。

REF〔-〕:參考電壓負(fù)端。

START:A/D轉(zhuǎn)換啟動(dòng)信號(hào)輸入端。

ALE:地址鎖存允許信號(hào)輸入端。〔以上兩種信號(hào)用于啟動(dòng)A/D轉(zhuǎn)換〕.

EOC:轉(zhuǎn)換結(jié)束信號(hào)輸出引腳,開(kāi)始轉(zhuǎn)換時(shí)為低電平,當(dāng)轉(zhuǎn)換結(jié)束時(shí)為高電平。

OE:輸出允許控制端,用以翻開(kāi)三態(tài)數(shù)據(jù)輸出鎖存器。

CLK:時(shí)鐘信號(hào)輸入端〔一般為500KHz〕。

A、B、C:地址輸入線。CBA選擇的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN73.2.2AADC0809是美國(guó)國(guó)家半導(dǎo)體公司生產(chǎn)的CMOS工藝8通道,8位逐次逼近式A/D模數(shù)轉(zhuǎn)換器。其內(nèi)部有一個(gè)8通道多路開(kāi)關(guān),它可以根據(jù)地址碼鎖存譯碼后的信號(hào),只選通8路模擬輸入信號(hào)中的一個(gè)進(jìn)行A/D轉(zhuǎn)換。ADC0809對(duì)輸入模擬量要求:信號(hào)單極性,電壓范圍是0-5V,假設(shè)信號(hào)太小,必須進(jìn)行放大;輸入的模擬量在轉(zhuǎn)換過(guò)程中應(yīng)該保持不變,如假設(shè)模擬量變化太快,那么需在輸入前增加采樣保持電路。地址輸入和控制線:4條ALE為地址鎖存允許輸入線,高電平有效。當(dāng)ALE線為高電平時(shí),地址鎖存與譯碼器將A,B,C三條地址線的地址信號(hào)進(jìn)行鎖存,經(jīng)譯碼后被選中的通道的模擬量進(jìn)入轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換。A,B和C為地址輸入線,用于選通IN0-IN7上的一路模擬量輸入。通道選擇表如下表所示。ST為轉(zhuǎn)換啟動(dòng)信號(hào)。當(dāng)ST上跳沿時(shí),所有內(nèi)部存放器清零;下跳沿時(shí),開(kāi)始進(jìn)行A/D轉(zhuǎn)換;在轉(zhuǎn)換期間,ST應(yīng)保持低電平。EOC為轉(zhuǎn)換結(jié)束信號(hào)。當(dāng)EOC為高電平時(shí),說(shuō)明轉(zhuǎn)換結(jié)束;否那么,說(shuō)明正在進(jìn)行A/D轉(zhuǎn)換。OE為輸出允許信號(hào),用于控制三條輸出鎖存器向單片機(jī)輸出轉(zhuǎn)換得到的數(shù)據(jù)。OE=1,輸出轉(zhuǎn)換得到的數(shù)據(jù);OE=0,輸出數(shù)據(jù)線呈高阻狀態(tài)。D7-D0為數(shù)字量輸出線。CLK為時(shí)鐘輸入信號(hào)線。因ADC0809的內(nèi)部沒(méi)有時(shí)鐘電路,所需時(shí)鐘信號(hào)必須由外界提供,通常使用頻率為500KHZ,VREF〔+〕,VREF〔-〕為參考電壓輸入。3.3甲醛檢測(cè)電路的設(shè)計(jì)甲醛傳感器工作原理其實(shí)物圖如下:主要參數(shù)如下:一、尺寸:32mmX22mmX27mm長(zhǎng)X寬X高二、主要芯片:LM393、MQ-138甲醛傳感器三、工作電壓:直流5伏四、特點(diǎn):1、具有信號(hào)輸出指示。;2、雙路信號(hào)輸出〔模擬量輸出及TTL電平輸出〕;3、TTL輸出有效信號(hào)為低電平?!伯?dāng)輸出低電平時(shí)信號(hào)燈亮,可直接接單片機(jī)〕;4、模擬量輸出0~5V電壓,濃度越高電壓越高;5、對(duì)醛、醇、酮芳族化合物具有很高的靈敏度;6、具有長(zhǎng)期的使用壽命和可靠的穩(wěn)定性;7、快速的響應(yīng)恢復(fù)特性;3.3.2甲醛傳感器與ADC0809模數(shù)轉(zhuǎn)換器的接口電路顯示電路的設(shè)計(jì)實(shí)物圖如下:LCD1602液晶操作原理:工業(yè)字符型液晶,能夠同時(shí)顯示16x02即32個(gè)字符?!?6列2行〕注:為了表示的方便,后文皆以1表示高電平,0表示低電平。1602液晶也叫1602字符型液晶,它是一種專門用來(lái)顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣型液晶模塊。它由假設(shè)干個(gè)5X7或者5X11等點(diǎn)陣字符位組成,每個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符,每位之間有一個(gè)點(diǎn)距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因?yàn)槿绱怂运荒芎芎玫仫@示圖形〔用自定義CGRAM,顯示效果也不好〕。1602LCD是指顯示的內(nèi)容為16X2,即可以顯示兩行,每行16個(gè)字符液晶模塊〔顯示字符和數(shù)字〕。市面上字符液晶大多數(shù)是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780寫(xiě)的控制程序可以很方便地應(yīng)用于市面上大局部的字符型液晶。LCD1602引腳圖1602采用標(biāo)準(zhǔn)的16腳接口,其中:第1腳:VSS為電源地第2腳:VCC接5V電源正極第3腳:V0為液晶顯示器比照度調(diào)整端,接正電源時(shí)比照度最弱,接地電源時(shí)比照度最高〔比照度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影〞,使用時(shí)可以通過(guò)一個(gè)10K的電位器調(diào)整比照度〕。第4腳:RS為存放器選擇,高電平1時(shí)選擇數(shù)據(jù)存放器、低電平0時(shí)選擇指令存放器。第5腳:RW為讀寫(xiě)信號(hào)線,高電平(1)時(shí)進(jìn)行讀操作,低電平(0)時(shí)進(jìn)行寫(xiě)操作。第6腳:E(或EN)端為使能(enable)端,高電平〔1〕時(shí)讀取信息,負(fù)跳變時(shí)執(zhí)行指令。第7~14腳:D0~D7為8位雙向數(shù)據(jù)端。第15~16腳:空腳或背燈電源。15腳背光正極,16腳背光負(fù)極。其與單片機(jī)的連線情況如下:3.5系統(tǒng)報(bào)警電路設(shè)計(jì)當(dāng)電路檢測(cè)到甲醛濃度超過(guò)國(guó)標(biāo)的限制時(shí),將產(chǎn)生一個(gè)信號(hào)給報(bào)警電路。使報(bào)警電路報(bào)警從而提醒工作人員注意,超限報(bào)警電路如圖7所示。它是有AT89C52單片機(jī)控制的,當(dāng)傳感器檢測(cè)到的濃度超過(guò)程序設(shè)定的濃度值時(shí),P0.4就會(huì)出現(xiàn)一個(gè)高電平,經(jīng)過(guò)一個(gè)達(dá)林頓管以后,P0.4又出現(xiàn)一個(gè)低電平,電路接通,蜂鳴器開(kāi)始發(fā)聲。圖7報(bào)警電路4系統(tǒng)軟件局部設(shè)計(jì)對(duì)于單片機(jī)的開(kāi)發(fā)應(yīng)用中,逐漸引入了高級(jí)語(yǔ)言,C語(yǔ)言就是其中的一種。匯編語(yǔ)言的可控性較高級(jí)語(yǔ)言來(lái)說(shuō)更具優(yōu)越性。程序編寫(xiě)語(yǔ)言比擬常見(jiàn)的有C語(yǔ)言、匯編語(yǔ)言。匯編語(yǔ)言的機(jī)器代碼生成效率高,控制性好,但就是移植性不高。C語(yǔ)言編寫(xiě)的程序比用匯編編寫(xiě)的程序更符合人們的思考習(xí)慣。還有很多處理器都支持C編譯器,這樣意味著處理器也能很快上手。且具有良好的模塊化、容易閱讀、維護(hù)等優(yōu)點(diǎn),且編寫(xiě)的模塊程序易于移植[8]?;贑語(yǔ)言和匯編語(yǔ)言的優(yōu)缺點(diǎn),本系統(tǒng)采用C語(yǔ)言編寫(xiě)方法。主程序流程圖:5誤差分析及改良方法由于實(shí)驗(yàn)室條件限制,無(wú)法購(gòu)置先進(jìn)的甲醛檢測(cè)設(shè)備進(jìn)行校準(zhǔn),因此會(huì)出現(xiàn)無(wú)法校驗(yàn)和誤差較大的現(xiàn)象,且本次設(shè)計(jì)采用的是8位的AD轉(zhuǎn)換芯片ADC0809,精度在應(yīng)用中算是中等,這方面在以后改良中可以加以校驗(yàn)、提升。6設(shè)計(jì)總結(jié)通過(guò)本次課程設(shè)計(jì),使我收獲很多,從最初的對(duì)元器件的初步認(rèn)識(shí),再到圖書(shū)館以及網(wǎng)上找了很多有關(guān)元器件的使用方法,把本次課程設(shè)計(jì)所有用到的元器件都有一個(gè)比擬系統(tǒng)的認(rèn)識(shí),然后就根據(jù)本次設(shè)計(jì)要求設(shè)計(jì)出實(shí)現(xiàn)該功能的原理圖。本次課程設(shè)計(jì)通過(guò)親自上網(wǎng)找資料,親自去電子市場(chǎng)購(gòu)置元器件以及親自焊接實(shí)物及調(diào)試整個(gè)過(guò)程,從遇到問(wèn)題,到分析問(wèn)題,再到解決問(wèn)題整個(gè)過(guò)程親自體會(huì)了一遍,使我深深地體會(huì)到了要做出一樣成功的作品有多么的不容易。它需要嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度,細(xì)心耐心的鉆研精神。致謝本次課程設(shè)計(jì)是在肖慧榮老師的悉心指導(dǎo)下完成的。老師嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度,精益求精的工作作風(fēng),誨人不倦的高尚師德,嚴(yán)以律己、寬以待人的崇高風(fēng)范,平易近人的人格魅力對(duì)我影響深遠(yuǎn)。不僅使我樹(shù)立了遠(yuǎn)大的學(xué)術(shù)目標(biāo)、掌握了根本的研究方法,還使我明白了許多待人接物與為人處世的道理。在此,謹(jǐn)向肖老師表示崇高的敬意和衷心的感謝!參考文獻(xiàn)[1]潘政華.淺論甲醛對(duì)人體健康的影響及治理措施[J].《現(xiàn)代農(nóng)業(yè)》,2023.[2]石靖芳.手術(shù)室人員職業(yè)危險(xiǎn)因素分析及防護(hù)[J].《齊齊哈爾醫(yī)學(xué)院學(xué)報(bào)》,2023.[3]田清華.基于電化學(xué)敏感電極的甲醛測(cè)試儀的研[D].燕山大學(xué),2007.[4]宏晶科技《STC12C5A[5]長(zhǎng)沙太陽(yáng)人電子《SMC1602A》數(shù)據(jù)手冊(cè)[S].2006.[6]DART公司《甲醛傳感器》數(shù)據(jù)手冊(cè)[S].2004.[7]葛化敏,葉小嶺.基于MSP430F449的甲醛檢測(cè)儀設(shè)計(jì)[J]-工業(yè)儀表與自動(dòng)化裝置,2023(3).[8]馬忠梅等.《單片機(jī)的C語(yǔ)言應(yīng)用程序設(shè)計(jì)》[M].北京航空航天大學(xué)出版社,1997.[9]劉剛等.Multisim在漏電開(kāi)關(guān)保護(hù)技術(shù)設(shè)計(jì)中的應(yīng)用[J].《計(jì)算機(jī)仿真》,2023.附錄一:總原理圖附錄二:總程序#include<reg52.h>#include<intrins.h>#include"ds18b20.h"#defineucharunsignedchar#defineuintunsignedint//adc0809模塊接線#defineucharunsignedcharsbitSTR=P0^0;//單片機(jī)P1.0接模塊STR引腳,啟動(dòng)轉(zhuǎn)換信號(hào)sbitEOC=P0^1;//單片機(jī)P1.1接模塊EOC,轉(zhuǎn)換結(jié)束信號(hào),高電平有效sbitOE=P0^2;//單片機(jī)P1.2接模塊OE,輸出允許信號(hào),高電平有效sbitCLK=P0^3;//單片機(jī)P1.3接CLK,ADC0809時(shí)鐘,輸入50-800KHZ的頻率//一般選用500K/*地址選擇A接HB接HC接L選擇通到IN3,當(dāng)然也可以通過(guò)軟件設(shè)置地址REF+接VCCREF-接GND這樣AD=256*(VIN-(VREF-))/(VREF+)-(VREF-)(VREF+)=5V;〔VREF-)=0V;AD=256*VIN/5所以IN3口的電壓VIN=AD*5/256;*/ucharAD_DATA[1];//保存IN0通道轉(zhuǎn)換后的數(shù)據(jù)uintaddata2;//==============LCD1602接口連接方法=====================/*-----------------------------------------------------|DB0-----P0.0|DB4-----P0.4|RW-------P2.6||DB1-----P0.1|DB5-----P0.5|RS-------P2.5||DB2-----P0.2|DB6-----P0.6|E--------P2.7||DB3-----P0.3|DB7-----P0.7|---------------------------------------------------*///================================================*/#defineLCM_DataP1//LCD1602數(shù)據(jù)接口#defineBusy0x80//用于檢測(cè)LCM狀態(tài)字中的Busy標(biāo)識(shí)sbitLCM_RW=P2^6;//讀寫(xiě)控制輸入端,LCD1602的第五腳sbitLCM_RS=P2^5;//存放器選擇輸入端,LCD1602的第四腳sbitLCM_E=P2^7;//使能信號(hào)輸入端,LCD1602的第6腳//------------------蜂鳴器發(fā)聲引腳定義--------------------------------------sbitbuzz=P0^4;//**************函數(shù)聲明***************************************voidWriteDataLCM (ucharWDLCM);//LCD模塊寫(xiě)數(shù)據(jù)voidWriteCommandLCM (ucharWCLCM,BuysC);//LCD模塊寫(xiě)指令ucharReadStatusLCM(void);//讀LCD模塊的忙標(biāo)voidDisplayOneChar(ucharX,ucharY,ucharASCII);//在第X+1行的第Y+1位置顯示一個(gè)字符voidLCMInit(void);//LCD初始voiddelayms(uintms);//1MS基準(zhǔn)延時(shí)程序voiddelay(uchari);//延時(shí)函數(shù)2voidDisplayListChar(ucharX,ucharY,uchardelayms,ucharcode*DData);voidjudge_xianshi(void);//顯示處理程序voidbaojing();//報(bào)警函數(shù) voidinit();//系統(tǒng)初始化設(shè)置voidAD();//讀取AD數(shù)據(jù)ucharflag1;//***********************主程序******************************main(){uinttemp;init();//系統(tǒng)初始化設(shè)置LCMInit();while(1){AD(); if(AD_DATA[0]>102)baojing();judge_xianshi();delayms(100);}}/*********系統(tǒng)初始化***********/voidinit(){buzz=0;EA=1;//開(kāi)總中斷TMOD=0x02;//設(shè)定定時(shí)器T0工作方式TH0=216;//利用T0中斷產(chǎn)生CLK信號(hào)TL0=216;TR0=1;//啟動(dòng)定時(shí)器T0ET0=1;STR=0;OE=0;}voidjudge_xianshi(){addata2=AD_DATA[0]*100;//把數(shù)據(jù)擴(kuò)大100,為下面求取小數(shù)位后2位做準(zhǔn)備//DisplayListChar(0,1,0,"Lixinguang");//在液晶的第一行顯示字符"Lixinguang"DisplayListChar(0,0,0,"AD=");//在液晶的第二行第0位開(kāi)始顯示"AD="DisplayOneChar(0,3,AD_DATA[0]/100+0x30);//顯示AD數(shù)據(jù)的百位DisplayOneChar(0,4,AD_DATA[0]/10%10+0x30);//顯示AD數(shù)據(jù)的十位DisplayOneChar(0,5,AD_DATA[0]%10+0x30);//顯示AD數(shù)據(jù)的各位DisplayListChar(0,7,0,"Vin=");//在液晶的第二行第8位開(kāi)始顯示"Vin="http://根據(jù)VIN=AD*5/256,求取IN3通到輸入的電壓DisplayOneChar(0,11,AD_DATA[0]/51+0x30);//顯示輸入電壓的整數(shù)位DisplayListChar(0,12,0,".");//顯示小數(shù)點(diǎn)DisplayOneChar(0,13,addata2/51/10%10+0x30);//顯示輸入電壓小數(shù)后1位DisplayOneChar(0,14,addata2/51%10+0x30);//顯示輸入電壓小樹(shù)后2位DisplayListChar(0,15,0,"V");}/************報(bào)警函數(shù)*******/voidbaojing(){inti;for(i=0;i<3;i++){buzz=1; delayms(200); buzz=0; delayms(200); } buzz=0;}/***********AD轉(zhuǎn)換函數(shù)**********/voidAD(){STR=0;//ADDR這樣如果不是通道0,可以在這邊加一條其他地址的程序delay(10);STR=1;//啟動(dòng)AD轉(zhuǎn)換delay(10);STR=0;while(0==EOC);//等待轉(zhuǎn)換結(jié)束OE=1;AD_DATA[0]=adc0809_data;//讀取AD數(shù)據(jù),數(shù)據(jù)范圍為0-255OE=0;}/***********T0中斷效勞程序************/voidt0(void)interrupt1using0{CLK=~CLK;}/*====================================================================按指定位置顯示一串字符:第X行,第y列注意:字符串不能長(zhǎng)于16個(gè)字符======================================================================*/voidDisplayListChar(ucharX,ucharY,ucharms,ucharcode*DData){unsignedcharListLength;ListLength=0;X&=0x1;Y&=0xF;//限制X不能大于15,Y不能大于1while(DData[ListLength]!='\0')//假設(shè)到達(dá)字串尾那么退出{if(Y<=0xF)//X坐標(biāo)應(yīng)小于0xF{DisplayOneChar(X,Y,DData[ListLength]);//顯示單個(gè)字符ListLength++;Y++; delayms(ms);//延時(shí)顯示字符串}else break;//跳出循環(huán)體}}/*======================================================================LCM初始化======================================================================*/voidLCMInit(void){LCM_Data=0;WriteCommandLCM(0x38,0);//三次顯示模式設(shè)置,不檢測(cè)忙信號(hào)delayms(5);WriteCommandLCM(0x38,0);delayms(5);WriteCommandLCM(0x38,0);delayms(5);WriteCommandLCM(0x38,1);//顯示模式設(shè)置,開(kāi)始要求每次檢測(cè)忙信號(hào)WriteCommandLCM(0x08,1);//關(guān)閉顯示W(wǎng)riteCommandLCM(0x01,1);//顯示清屏WriteCommandLCM(0x06,1);//顯示光標(biāo)移動(dòng)設(shè)置WriteCommandLCM(0x0C,1);//顯示開(kāi)及光標(biāo)設(shè)置delayms(100);}//==============================LCD1602顯示子程序================================================//寫(xiě)數(shù)據(jù)函數(shù):E=高脈沖RS=1RW=0//======================================================================*/voidWriteDataLCM(ucharWDLCM){ReadStatusLCM();//檢測(cè)忙LCM_Data=WDLCM;LCM_RS=1;LCM_RW=0;LCM_E=0;//假設(shè)晶振速度太高可以在這后加小的延時(shí)LCM_E=0;//延時(shí)LCM_E=1;}/*====================================================================寫(xiě)指令函數(shù):E=高脈沖RS=0RW=0======================================================================*/voidWriteCommandLCM(ucharWCLCM,BuysC)//BuysC為0時(shí)忽略忙檢測(cè){if(BuysC)ReadStatusLCM();//根據(jù)需要檢測(cè)忙LCM_Data=WCLCM;LCM_RS=0;LCM_RW=0;LCM_E=0;LCM_E=0;LCM_E=

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論