金屬內(nèi)傷探測(cè)器設(shè)計(jì)研究論文正稿_第1頁(yè)
金屬內(nèi)傷探測(cè)器設(shè)計(jì)研究論文正稿_第2頁(yè)
金屬內(nèi)傷探測(cè)器設(shè)計(jì)研究論文正稿_第3頁(yè)
金屬內(nèi)傷探測(cè)器設(shè)計(jì)研究論文正稿_第4頁(yè)
金屬內(nèi)傷探測(cè)器設(shè)計(jì)研究論文正稿_第5頁(yè)
已閱讀5頁(yè),還剩32頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

./WORD格式整理版金屬內(nèi)傷探測(cè)器設(shè)計(jì)研究摘要本文是基于單片機(jī)AT89S52,利用電感式接近開關(guān)傳感器LJ18A4-10-Z/BD設(shè)計(jì)一個(gè)簡(jiǎn)易金屬探測(cè)器用于檢測(cè)金屬存在并進(jìn)行金屬個(gè)數(shù)計(jì)數(shù),包括硬件電路和軟件設(shè)計(jì)兩大部分。硬件電路由傳感器外圍電路和單片機(jī)外圍電路構(gòu)成。電感式接近開關(guān)傳感器是一個(gè)感應(yīng)金屬物體的線性器件,型號(hào)為L(zhǎng)J18A4-10-Z/BD的接近開關(guān)在沒有檢測(cè)到金屬時(shí)會(huì)輸出一個(gè)電流值,但當(dāng)檢測(cè)到金屬時(shí),輸出電流值會(huì)發(fā)生變化。傳感器輸出為電流信號(hào),不能直接進(jìn)行A/D轉(zhuǎn)換,應(yīng)通過電流電壓轉(zhuǎn)換電路,把傳感器輸出電流信號(hào)轉(zhuǎn)換為滿足A/D轉(zhuǎn)換器PCF8591輸入要求的電壓信號(hào)。經(jīng)過A/D轉(zhuǎn)換后的數(shù)字信號(hào),送入單片機(jī)處理。軟件設(shè)計(jì)主要包括A/D轉(zhuǎn)換、數(shù)據(jù)處理、LCD顯示和報(bào)警程序四大模塊。PCF8591采集系統(tǒng)開機(jī)電壓U0和進(jìn)入金屬檢測(cè)狀態(tài)時(shí)的電壓U<x>。數(shù)據(jù)處理主要完成電壓值的精度轉(zhuǎn)換,要求精確到小數(shù)后第二位;計(jì)算U0和U<x>差值,并判斷電壓差值和傳感器預(yù)設(shè)靈敏度是否相等,從而判斷是否檢測(cè)到金屬。當(dāng)傳感器檢測(cè)到金屬時(shí),蜂鳴器報(bào)警,同時(shí)LCD顯示已檢測(cè)到的金屬個(gè)數(shù)。關(guān)鍵詞:金屬檢測(cè);金屬計(jì)數(shù);單片機(jī)AT89S52;A/D轉(zhuǎn)換器PCF8591;電感式接近開關(guān)LJ18A4-10-Z/BD.AbstractInthispaper,itistodesignasimplemetaldetectorthatcancounttheexistingmetalnumbersonthebasisofmicro-controllerAT89S52andinductiveproximityswitchsensorLJ18A4-10-Z/BD,includingthedesignofhardwarecircuitandsoftware.Thedesignofhardwarecircuitismadeupofthesensor’speripheralcircuitandthemicro-controller’speripheralcircuit.Inductiveproximityswitchislineardevicethatcaninducetheexistingofmetal.LJ18A4-10-Z/BDsensorwilloutputacurrentwithoutmeasuredobject.Untilitinducesmetal,theoutputcurrentwillbechanged.Becausetheoutputcurrentcannotbeconvertedtodigitalsignaldirectly,currenttovoltageconvertingcircuithastobeneeded,whichchangestheoutputcurrentsignalofsensorintovoltagesignalthatsatisfiestheinputrequirementsofPCF8591.Afteranalogtodigitalconverter<ADC>,thedigitalsignalissenttomicro-controllerforprocessing.ThedesignofsoftwarecontainsfourpartswhichareADC,dateprocessing,liquidcrystaldisplay<LCD>andbeepalarming.PCF8591collectstheinitialvoltageUoandU<x>.U<x>isthevoltagewhenthesensorisinconditionofdetectingmetal.Inthemoduleofdataprocessingitcompletestheprecisionchangingofcollectedvoltageandcorrectstheresultsto2decimalplaces,meanwhileitcalculatesthedifferencebetweenthevalueofUoandU<x>,thencomparethedifferencevaluewiththesensor’spre-establishedprecisionvaluetodecidewhetherthesensorhasinducedmetal.TheBeeperalarmsuntildetectingmetal,atthesametimetheLCDdisplaysthenumberofinducedmetals.Keywords:mentaldetection;metalnumbercounting;micro-controllerAT89S52;ADCPCF8591;inductiveproximityswitchLJ18A4-10-Z/BD.目錄第1章緒論 1第2章金屬探測(cè)系統(tǒng)概述 21.1整體設(shè)計(jì)思路 21.2ME500B單片機(jī)開發(fā)系統(tǒng)介紹 3第3章傳感器介紹及硬件電路設(shè)計(jì) 53.1線型接近開關(guān)傳感器 5線性接近開關(guān)傳感器的分類 5電感式接近開關(guān)工作原理 63.2傳感器外圍電路設(shè)計(jì) 63.2.1電流電壓轉(zhuǎn)換電路 63.2.2穩(wěn)壓電路 83.3單片機(jī)及其外圍硬件電路設(shè)計(jì) 93.3.1AT89S52單片機(jī) 93.3.2A/D轉(zhuǎn)換電路 123.3.3LCD1602顯示電路 153.3.4BEEP報(bào)警電路 173.4本章小結(jié) 17第4章軟件設(shè)計(jì) 194.1WAVE6000軟件開發(fā)環(huán)境介紹 194.2軟件設(shè)計(jì)整體概述 21設(shè)計(jì)思想 21.金屬檢測(cè)系統(tǒng)軟件設(shè)計(jì)中單片機(jī)端口定義 22主程序 234.3A/D轉(zhuǎn)換程序設(shè)計(jì) 244.4數(shù)據(jù)處理程序設(shè)計(jì) 264.5LCD顯示程序設(shè)計(jì) 284.6報(bào)警程序設(shè)計(jì) 304.7本章小結(jié) 32第5章結(jié)論 34參考文獻(xiàn) 35致謝 36.第1章緒論金屬探測(cè)器是一種能探測(cè)金屬用的電子儀器,應(yīng)用于各個(gè)領(lǐng)域,如安檢、汽車、機(jī)械工程、機(jī)器人工業(yè)等。工業(yè)上可用于在線監(jiān)測(cè)中,如識(shí)別斷裂的鉆頭、轉(zhuǎn)速測(cè)試、識(shí)別瓶罐和蓋子等。金屬探測(cè)器還可以作為開展青少年國(guó)防教育和科普活動(dòng)的用具。金屬探測(cè)器設(shè)計(jì)使用的元件從電子管、晶體管,乃至集成電路到智能化,有了更新?lián)Q代的發(fā)展,其應(yīng)用范圍幾乎擴(kuò)大到各個(gè)領(lǐng)域,對(duì)工業(yè)生產(chǎn)及人身安全起著重要的作用。當(dāng)今的金屬探測(cè)器已經(jīng)出現(xiàn)了兩種最具特色的技術(shù)功能。其中之一是金屬探測(cè)器的網(wǎng)絡(luò)化功能。具備了這種技術(shù),人們可以在任何一個(gè)地方撥打該金屬探測(cè)器,對(duì)儀器進(jìn)維修,分析所通過的人流量,并可根據(jù)治安的好壞或威脅的大小,調(diào)整金屬探測(cè)器的工作靈敏度。所有這一切都可以遠(yuǎn)距離進(jìn)行操作。另一個(gè)技術(shù)進(jìn)步就是分段限時(shí)技術(shù)的出現(xiàn)。它利用探測(cè)器的側(cè)面或另一儀表盤上的燈光來指示或顯示出人體中金屬物品的近似位置,可以用在諸如法庭以及其他不允許發(fā)出聲音的地方,雖然關(guān)閉了探測(cè)器的音量,但它仍能顯示并提醒操作人員何時(shí)何處有金屬物品存在。本文是設(shè)計(jì)一個(gè)簡(jiǎn)易金屬探測(cè)器用于檢測(cè)金屬并進(jìn)行金屬個(gè)數(shù)計(jì)數(shù)。由于受電感式接近開關(guān)檢測(cè)距離和靈敏度的限制,該探測(cè)器只能近距離檢測(cè)金屬,例如可以用于檢測(cè)食物內(nèi)的金屬顆粒,識(shí)別瓶罐和金屬瓶,探測(cè)墻壁內(nèi)的金屬電線,工業(yè)流水線生產(chǎn)的金屬計(jì)數(shù)等。.第2章金屬探測(cè)系統(tǒng)概述本文是結(jié)合ME500B單片機(jī)綜合開發(fā)系統(tǒng),設(shè)計(jì)一個(gè)簡(jiǎn)易金屬探測(cè)器用于檢測(cè)金屬的存在并實(shí)現(xiàn)金屬個(gè)數(shù)計(jì)數(shù)功能。2.1整體設(shè)計(jì)思路簡(jiǎn)易金屬探測(cè)器設(shè)計(jì),包括硬件電路和軟件設(shè)計(jì)兩大部分。本設(shè)計(jì)結(jié)合ME500B單片機(jī)綜合開發(fā)系統(tǒng),搭建電感式接近開關(guān)傳感器外圍電路,包括電流電壓轉(zhuǎn)換電路和穩(wěn)壓電路,并通過軟件編程完成A/D轉(zhuǎn)換、數(shù)據(jù)處理、LCD顯示和蜂鳴器報(bào)警。硬件電路中的電感式接近開關(guān)傳感器LJ18A4-10-Z/BD輸出為電流信號(hào),不能直接進(jìn)行A/D轉(zhuǎn)換。A/D轉(zhuǎn)換器PCF8591要求輸入幅值小于等于5V的電壓值,故應(yīng)通過電流電壓轉(zhuǎn)換電路,把傳感器輸出的電流信號(hào)轉(zhuǎn)換為電壓信號(hào)。經(jīng)過A/D轉(zhuǎn)換后的數(shù)字信號(hào),送入單片機(jī)AT89S52進(jìn)行處理。由于系統(tǒng)對(duì)電源穩(wěn)定度要求高,故選用三端穩(wěn)壓器LM7812搭建穩(wěn)壓電路,穩(wěn)壓電路的輸出對(duì)傳感器和電流電壓轉(zhuǎn)換電路中的集成運(yùn)算放大器LM358供電。電感式接近開關(guān)電流電壓轉(zhuǎn)換電路A/D轉(zhuǎn)換器MCULCD顯示BEEP報(bào)警傳感器外圍電路單片機(jī)外圍電路穩(wěn)壓電路電源圖2-1簡(jiǎn)易金屬探測(cè)器整體設(shè)計(jì)框圖接近開關(guān)電感式接近開關(guān)電流電壓轉(zhuǎn)換電路A/D轉(zhuǎn)換器MCULCD顯示BEEP報(bào)警傳感器外圍電路單片機(jī)外圍電路穩(wěn)壓電路電源圖2-1簡(jiǎn)易金屬探測(cè)器整體設(shè)計(jì)框圖2.2ME500B單片機(jī)開發(fā)系統(tǒng)介紹ME500B是一款具有實(shí)驗(yàn)儀、編程器、仿真器、ISP下載線四種功能合一的單片機(jī)綜合學(xué)習(xí)開發(fā)系統(tǒng),系統(tǒng)自帶單片機(jī)AT89S52??梢灾С?1系列,AVR系列,PIC系列三種單片機(jī)的實(shí)驗(yàn)和開發(fā)。ME500B硬件資源和接口主要包括:AT89S52單片機(jī);A/D轉(zhuǎn)換器PCF8591;LCD1602顯示接口和LED數(shù)碼顯示管;蜂鳴器;PCF8591外部電壓輸入跳線接口J9;40Pin外擴(kuò)接口;ISP下載接口等。ME500B硬件結(jié)構(gòu)圖如圖2-2所示:圖2-2ME500B硬件結(jié)構(gòu)圖圖2-2ME500B硬件結(jié)構(gòu)圖金屬檢測(cè)系統(tǒng)使用硬件資源和各部分功能介紹如下:金屬檢測(cè)系統(tǒng)中,主要使用ME500B單片機(jī)綜合開發(fā)系統(tǒng)中的單片機(jī)AT89S52、A/D轉(zhuǎn)換芯片PCF8591、LCD顯示屏LCD1602和蜂鳴器。單片機(jī)實(shí)現(xiàn)對(duì)整個(gè)金屬檢測(cè)系統(tǒng)的智能控制,PCF8591完成模擬電壓的采集和轉(zhuǎn)換,蜂鳴器用于檢測(cè)到金屬時(shí)的報(bào)警,LCD1602用于顯示用戶界面和顯示檢測(cè)到金屬的個(gè)數(shù)。.第3章傳感器介紹及硬件電路設(shè)計(jì)金屬檢測(cè)系統(tǒng)式使用電感式接近開關(guān)傳感器來檢測(cè)金屬,該類傳感器屬于線性接近開關(guān)傳感器中的一類。傳感器輸出為電流信號(hào),不能直接送入A/D轉(zhuǎn)換器,需要搭建電流電壓轉(zhuǎn)換電路,實(shí)現(xiàn)電流電壓轉(zhuǎn)換,并搭建穩(wěn)壓電路為傳感器和電流電壓轉(zhuǎn)換電路中的運(yùn)算放大器提供穩(wěn)定的工作電壓。單片機(jī)對(duì)整個(gè)系統(tǒng)進(jìn)行智能控制,其外圍電路主要由A/D轉(zhuǎn)換電路、LCD顯示電路和蜂鳴器電路組成。3.1線型接近開關(guān)傳感器線性接近開關(guān)傳感器是一種屬于物體感應(yīng)的線性器件。接通電源后,在傳感器的感應(yīng)面將產(chǎn)生一個(gè)交變磁場(chǎng),當(dāng)物體接近此感應(yīng)面時(shí),物體中則產(chǎn)生渦流而吸取了振蕩器的能量,使振蕩器輸出幅度線性衰減,然后根據(jù)衰減量的變化來完成無接觸檢測(cè)物體的目的。線性接近開關(guān)傳感器特性如下:非接觸檢測(cè),避免了對(duì)傳感器自身和目標(biāo)物的損壞;無觸點(diǎn)輸出,操作壽命長(zhǎng);即使在有水或油噴濺的苛刻環(huán)境中也能穩(wěn)定檢測(cè);小型探測(cè)頭,安裝靈活。3.1.1線性接近開關(guān)傳感器的分類1、按配置分類〔1電感式接近開關(guān):檢測(cè)物體為金屬,如鐵、鋼、銅等;

〔2電容式接近開關(guān):檢測(cè)物體為任何物體,如玻璃、金屬、塑料、水、油、紙等;〔3霍爾式接近開關(guān):檢測(cè)物體為磁性金屬,如永久性磁鐵。2、按檢測(cè)方法分類〔1通用型:主要檢測(cè)黑色金屬;〔2所有金屬型:在相同的檢測(cè)距離內(nèi)檢測(cè)任何金屬;〔3有色金屬型:主要檢測(cè)鋁一類的有色金屬。簡(jiǎn)易金屬探測(cè)器設(shè)計(jì)中,選用型號(hào)為L(zhǎng)J18A4-10-Z/BD的通用型電感式接近開關(guān)。電感式接近開關(guān)工作原理電感式接近開關(guān)屬于一種有開關(guān)量輸出的位置傳感器,也叫渦流式接近開關(guān),主要由振蕩器、信號(hào)處理和開關(guān)電路組成。金屬物體在接近能產(chǎn)生電磁場(chǎng)的振蕩感應(yīng)頭時(shí),物體內(nèi)部會(huì)產(chǎn)生渦流。這個(gè)渦流反作用于接近開關(guān),使接近開關(guān)振蕩能力衰減,內(nèi)部電路的參數(shù)發(fā)生變化,輸出電流值也發(fā)生變化,由此識(shí)別有無金屬物體接近。這種接近開關(guān)所能檢測(cè)的物體必須是金屬物體。傳感器工作流程圖如圖3-1所示。振蕩器振蕩器感應(yīng)頭被檢測(cè)金屬高頻震蕩電路整形檢波信號(hào)處理開關(guān)量輸出圖3-1傳感器工作流程圖電感式接近開關(guān)LJ18A4-10-Z/BD參數(shù)介紹:開關(guān)類別:電感式接近開關(guān);檢測(cè)距離:10mm;工作電壓:6~36V;輸出狀態(tài):常開;輸出形式:二線直流輸出,輸出電流≤200mA。電感式接近開關(guān)可以用于識(shí)別輪上的固定螺釘以檢查速度和方向,識(shí)別斷裂的鉆頭,識(shí)別瓶罐和金屬蓋子等。3.2傳感器外圍電路設(shè)計(jì)電感式接近開關(guān)傳感器外圍電路設(shè)計(jì)主要包括電流電壓轉(zhuǎn)換電路和穩(wěn)壓電路的設(shè)計(jì)。電流電壓轉(zhuǎn)換電路完成傳感器輸出電流信號(hào)到電壓信號(hào)的轉(zhuǎn)變,穩(wěn)壓電路輸出為傳感器和集成運(yùn)算放大器供電。3.2.1電流電壓轉(zhuǎn)換電路本設(shè)計(jì)是使用集成運(yùn)算放大器LM358搭建一個(gè)電壓電流負(fù)反饋回路[1],實(shí)現(xiàn)電流電壓轉(zhuǎn)換。1、LM358芯片介紹LM358集成運(yùn)算放大器內(nèi)部包括有兩個(gè)獨(dú)立的、高增益、內(nèi)部頻率補(bǔ)償?shù)碾p運(yùn)算放大器,適合于電源電壓范圍很寬的單電源使用,也適用于雙電源工作模式,在推薦的工作條件下,電源電流與電源電壓無關(guān)。它的使用范圍包括傳感放大器、直流增益模塊和其他所有可用單電源供電的使用運(yùn)算放大器的場(chǎng)合。管腳圖如圖3-2所示?!?各管腳功能管腳1:通道A輸出端;管腳2:通道A反向輸入端;管腳3:通道A正向輸入端;管腳4:電源地;管腳5:通道B正向輸入端;管腳6:通道B反向輸入端;圖3-2LM358引腳圖管腳7:通道B輸出端;圖3-2LM358引腳圖管腳8:電源?!?集成運(yùn)算放大器LM358特性內(nèi)部頻率補(bǔ)償;直流電壓增益高<約100dB>;單位增益頻帶寬<約1MHz>;電源電壓范圍寬:?jiǎn)坞娫?lt;3~30V>;低功耗電流,適合于電池供電;輸出電壓擺幅大<0至Vcc-1.5V>。2、電流電壓轉(zhuǎn)換電路設(shè)計(jì)金屬檢測(cè)系統(tǒng)中,傳感器輸出為電流信號(hào),而A/D轉(zhuǎn)換器PCF8591采集的是電壓信號(hào),因而必須使用電流電壓轉(zhuǎn)換電路,把電流信號(hào)轉(zhuǎn)換為電壓信號(hào)。在電流電壓轉(zhuǎn)換電路中,用電阻直接轉(zhuǎn)換電流信號(hào)效率低,信號(hào)衰減大。而用運(yùn)算放大器做電流電壓轉(zhuǎn)換,電路靈活,增益可調(diào)、失真小。在精度要求不高的情況下,可以用電阻直接進(jìn)行轉(zhuǎn)換。本設(shè)計(jì)中傳感器靈敏度低〔實(shí)測(cè)靈敏度為0.04V,故選用集成運(yùn)算放大器LM358來實(shí)現(xiàn)電流電壓轉(zhuǎn)換[1]。電流電壓轉(zhuǎn)換電路的Multisim仿真電路如圖3-3所示。這是一典型的電壓電流負(fù)反饋回路,輸出為電壓,輸入為電流。當(dāng)輸入電流一定時(shí),輸出穩(wěn)定的電壓Uo=I×R=。金屬檢測(cè)系統(tǒng)中選用集成運(yùn)算放大器LM358來搭建電流電壓轉(zhuǎn)換電路,Multisim仿真圖中的模擬電流源在實(shí)際電路中為電感式接近開關(guān)的輸出電流。仿真圖中電壓表測(cè)得的Uo值為輸入A/D轉(zhuǎn)換PCF8591模擬輸入通道1的電壓值。為滿足PCF8591最大輸入電壓為5V的要求,在電路的輸出端并聯(lián)一個(gè)擊穿值為5V的穩(wěn)壓管二極管,當(dāng)輸出電壓值大于5V時(shí),二極管反向擊穿導(dǎo)通,使輸出端短路,輸出電壓為零,起到保護(hù)PCF8591芯片的作用。圖3-3電流電壓轉(zhuǎn)換電路的Multisim仿真電路圖3-3電流電壓轉(zhuǎn)換電路的Multisim仿真電路3.2.2穩(wěn)壓電路由三端穩(wěn)壓器構(gòu)成的直流穩(wěn)壓電路在對(duì)電壓穩(wěn)定度要求高的場(chǎng)合得到廣泛的應(yīng)用。根據(jù)輸出穩(wěn)定電壓值的不同,可以選用不同型號(hào)的三端穩(wěn)壓器。三端固定集成穩(wěn)壓器包含7800和7900兩大系列,7800系列是固定輸出正電壓的穩(wěn)壓器,7900系列是固定輸出負(fù)電壓的穩(wěn)壓器。在本設(shè)計(jì)中基于系統(tǒng)對(duì)電壓穩(wěn)定度、傳感器和集成運(yùn)算放大器LM358對(duì)電源供電的要求,選用了三端穩(wěn)壓器LM7812。三端穩(wěn)壓器LM7812穩(wěn)定輸出12V直流電壓,要求輸入電壓范圍為14~35V。在允許輸入電壓范圍內(nèi),輸入電壓越高,穩(wěn)定輸出效果越好。穩(wěn)壓電路的Multisim仿真電路如圖3-4所示。圖3-4穩(wěn)壓電路的Multism仿真電路圖3-4穩(wěn)壓電路的Multism仿真電路三端集成穩(wěn)壓器LM7812的輸入、輸出端處,分別接入和的電容,其目的是使穩(wěn)壓器在整個(gè)輸入電壓和輸出電流變化范圍內(nèi)〔0~1.5A,提高其工作穩(wěn)定性和改善瞬變響應(yīng)。為了獲得最佳的效果,電容器選用頻率特性好的陶瓷電容。另外為了進(jìn)一步減小輸出電壓的紋波,在集成穩(wěn)壓器的輸出端并入一個(gè)的電解電容。在穩(wěn)壓器的輸入和輸出之間跨接一個(gè)二極管D1,穩(wěn)壓器正常工作時(shí),該二極管處于截止?fàn)顟B(tài),當(dāng)輸入端突然短路時(shí),二極管為輸出端電容器提供泄放通路,起到保護(hù)三端穩(wěn)壓器LM7812的作用[1]。實(shí)際電路中,14V的電源通過一個(gè)可調(diào)直流電源提供。3.3單片機(jī)及其外圍硬件電路設(shè)計(jì)本設(shè)計(jì)是基于單片機(jī)AT89S52,單片機(jī)對(duì)整個(gè)系統(tǒng)實(shí)現(xiàn)智能控制。單片機(jī)外圍電路主要由A/D轉(zhuǎn)換器PCF8591構(gòu)成的模數(shù)轉(zhuǎn)換電路、LCD1602構(gòu)成的液晶顯示電路和蜂鳴器報(bào)警電路組成。3.3.1AT89S52單片機(jī)AT89S52單片機(jī)與MCS-51系列單片機(jī)產(chǎn)品兼容,它具有8K字節(jié)在系統(tǒng)可編程Flash存儲(chǔ)器,可進(jìn)行1000次擦寫操作,具有三級(jí)加密程序存儲(chǔ)器,32個(gè)可編程I/O口線,三個(gè)16位定時(shí)器/計(jì)數(shù)器,八個(gè)中斷源,具有全雙工UART串行通道,掉電標(biāo)識(shí)符等。圖3-5AT89S52管腳圖AT89S52是一種低功耗、高性能CMOS8位微控制器。使用Atmel公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash存儲(chǔ)器,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、有效的解決方案。AT89S52可降至0Hz靜態(tài)邏輯操作,可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。AT89S52管腳圖如圖3-5所示。圖3-5AT89S52管腳圖各管腳功能說明如下:<1>管腳40VCC:電源;<2>管腳20GND:地;<3>管腳32~39P0口:P0口是一個(gè)8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動(dòng)8個(gè)TTL邏輯電平。對(duì)P0端口寫"1"時(shí),引腳用作高阻抗輸入。當(dāng)訪問外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0具有內(nèi)部上拉電阻。在flash編程時(shí),P0口也用來接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn)時(shí),需要外接上拉電阻;<4>管腳1~8P1口:P1口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口,P1輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL邏輯電平。對(duì)P1端口寫"1"時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。此外,P1.0和P1.2分別作定時(shí)器/計(jì)數(shù)器2的外部計(jì)數(shù)輸入和定時(shí)器/計(jì)數(shù)器2的觸發(fā)輸入。在flash編程和校驗(yàn)時(shí),P1口接收低8位地址字節(jié)。P1口第二功能具體見表3-1;表3-1P1口第二功能引腳號(hào)第二功能P1.0T2〔定時(shí)器/計(jì)數(shù)器T2的外部計(jì)數(shù)輸入,時(shí)鐘輸出P1.1定時(shí)器/計(jì)數(shù)器T2的捕捉/重載觸發(fā)信號(hào)和方向控制P1.5MISO〔在系統(tǒng)編程用P1.6MOSI〔在系統(tǒng)編程用P1.7SCK〔在系統(tǒng)編程用<5>管腳21~28P2口:P2口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL邏輯電平。對(duì)P2端口寫"1"時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流。在訪問外部程序存儲(chǔ)器或用16位地址讀取外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口送出高八位地址。在這種應(yīng)用中,P2口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用8位地址訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口輸出P2鎖存器的內(nèi)容。在flash編程和校驗(yàn)時(shí),P2口也接收高8位地址字節(jié)和一些控制信號(hào);〔6管腳10~17P3口:P3口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口,P2口輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL邏輯電平。對(duì)P3端口寫"1"時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流。在flash編程和校驗(yàn)時(shí),P3口也接收一些控制信號(hào)。P3口亦作為AT89S52的第二功能使用,如表2-2所示;〔7管腳9RST:復(fù)位輸入。晶振工作時(shí),RST腳持續(xù)2個(gè)機(jī)器周期高電平將使單片機(jī)復(fù)位??撮T狗計(jì)時(shí)完成后,RST腳輸出96個(gè)晶振周期的高電平;〔8管腳30:當(dāng)訪問訪問外部程序存儲(chǔ)器時(shí),地址鎖存控制信號(hào)有效。在flash編程時(shí),此引腳也用作編程輸入脈沖。在一般情況下,ALE以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時(shí)器或時(shí)鐘使用。然而,特別強(qiáng)調(diào),在每次訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),ALE脈沖將會(huì)跳過。如果需要,通過將地址為8EH的SFR的第0位置"1",ALE操作將無效。這一位置"1",ALE僅在執(zhí)行MOVX或MOVC指令時(shí)有效;表3-2P3口第二功能引腳號(hào)第二功能P3.0RXD〔串行輸入P3.1TXD〔串行輸出P3.2INT0<外部中斷0>P3.3INT0<外部中斷0>P3.4T0〔定時(shí)器0外部輸入P3.5T1〔定時(shí)器1外部輸入P3.6WR<外部數(shù)據(jù)存儲(chǔ)器寫選通>P3.7RD<外部數(shù)據(jù)存儲(chǔ)器讀選通>〔9管腳29:外部程序存儲(chǔ)器選通信號(hào)。當(dāng)AT89S52從外部程序存儲(chǔ)器執(zhí)行外部代碼時(shí),在每個(gè)機(jī)器周期內(nèi)被激活兩次,而在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí)將不被激活;〔10管腳31:訪問外部程序存儲(chǔ)器控制信號(hào)。為使能從0000H到FFFFH的外部程序存儲(chǔ)器讀取指令,必須接GND。為了執(zhí)行內(nèi)部程序指令,應(yīng)該接VCC。在flash編程期間,也接12V的VCC電壓;〔11管腳18XTAL1:振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端;〔12管腳19XTAL2:振蕩器反相放大器的輸出端。金屬檢測(cè)系統(tǒng)中,單片機(jī)和外圍電路的數(shù)據(jù)交換和單片機(jī)對(duì)外圍電路的控制主要使用了單片機(jī)的P1.0、P1.3、P2.0~P2.2、P0和P3.7這些端口,具體連接如下:P1.0口連接PCF8591時(shí)鐘線;P1.3口連接PCF8591數(shù)據(jù)線;P2.0口連接LCD數(shù)據(jù)/命令選擇端;P2.1口連接LCD讀寫選擇端;P2.2口連接LCD使能信號(hào)端;P0口連接LCD數(shù)據(jù)端口;P3.7口連接蜂鳴器。3.3.2A/D轉(zhuǎn)換電路在基于單片機(jī)的控制系統(tǒng)中,如果現(xiàn)場(chǎng)采集量為模擬量,A/D轉(zhuǎn)換芯片是不可缺少的部分。金屬檢測(cè)系統(tǒng)中使用型號(hào)為PCF8591的A/D轉(zhuǎn)換芯片實(shí)現(xiàn)模數(shù)轉(zhuǎn)換。A/D轉(zhuǎn)換器PCF8591介紹如下。PCF8591是具有I2C總線接口的8位A/D及D/A轉(zhuǎn)換器。有4路A/D轉(zhuǎn)換輸入,1路D/A模擬輸出。在與CPU的信息傳輸過程中僅靠時(shí)鐘線SCL和數(shù)據(jù)線SDA就可以實(shí)現(xiàn)。PCF8591轉(zhuǎn)換為逐次比較型,電源電壓典型值為5V。轉(zhuǎn)換精度為:5V/28≈0.02V,完成一次A/D轉(zhuǎn)換的最大時(shí)間由I2C總線的實(shí)際速度決定。PCF8591引腳圖如圖3-6所示。各管腳功能說明如下:〔1管腳1~4AIN0~AIN3:模擬號(hào)輸入端;〔2管腳5~7A0~A2:引腳地址端;〔3管腳8,16VDD、VSS:電源端;〔4管腳9,10SDA、SCL:I2C總線的數(shù)據(jù)線、時(shí)鐘線;〔5管腳11OSC:外部時(shí)鐘輸入端,內(nèi)部時(shí)鐘輸出端;圖3-6PCF8591引腳圖〔6管腳12EXT:內(nèi)部、外部時(shí)鐘選擇線,使用內(nèi)部時(shí)鐘時(shí),圖3-6PCF8591引腳圖〔7管腳13AGND:模擬信號(hào)地;〔8管腳14VREF:基準(zhǔn)電源端;〔9管腳15AOUT:D/A轉(zhuǎn)換輸出端;1、I2C總線協(xié)議I2C<Inter-IntegratedCircuit>總線是一種由PHILIPS公司開發(fā)的兩線式串行總線,用于連接微控制器及其外圍設(shè)備。I2C總線產(chǎn)生于在80年代,最初為音頻和視頻設(shè)備開發(fā),如今主要在服務(wù)器管理中使用,其中包括單個(gè)組件狀態(tài)的通信。例如管理員可對(duì)各個(gè)組件進(jìn)行查詢,以管理系統(tǒng)的配置或掌握組件的功能狀態(tài),如電源和系統(tǒng)風(fēng)扇??呻S時(shí)監(jiān)控內(nèi)存、硬盤、網(wǎng)絡(luò)、系統(tǒng)溫度等多個(gè)參數(shù),增加了系統(tǒng)的安全性,方便了管理。I2C是一種較為常用的串行接口標(biāo)準(zhǔn),具有協(xié)議完善、支持芯片多和占用I/O少等優(yōu)點(diǎn)。I2C總線占用的空間非常小,減少電路板的空間和芯片管腳數(shù)量,降低了互聯(lián)成本??偩€的長(zhǎng)度可高達(dá)25英尺,并且能夠以10Kbps的最大傳輸速率支持40個(gè)組件。I2C總線協(xié)議支持多主控,其中任何能夠進(jìn)行發(fā)送和接收的設(shè)備都可以成為主控器。一個(gè)主控器能夠控制信號(hào)的傳輸和時(shí)鐘頻率。當(dāng)然,在任何時(shí)間點(diǎn)上只能有一個(gè)主控器。2、PCF8591的I2C總線協(xié)議工作原理PCF8591在進(jìn)行A/D轉(zhuǎn)換時(shí),首先是主控器發(fā)出起始信號(hào),然后發(fā)出讀尋址字節(jié),被控器做出應(yīng)答后,主控器從被控器讀出第一個(gè)數(shù)據(jù)字節(jié),主控器發(fā)出應(yīng)答,主控器從被控器讀出第二個(gè)數(shù)據(jù)字節(jié),主控器發(fā)出應(yīng)答…,一直到主控器從被控器中讀出第n個(gè)數(shù)據(jù)字節(jié),主控器發(fā)出非應(yīng)答信號(hào),最后主控器發(fā)出停止信號(hào)。A/D轉(zhuǎn)換讀數(shù)據(jù)過程如圖3-7所示。一次A/D轉(zhuǎn)換周期是在發(fā)送固定的讀尋址字后,開始于時(shí)鐘脈沖的上升沿,傳送當(dāng)前轉(zhuǎn)換結(jié)果的同時(shí)開始一次轉(zhuǎn)換周期,A/D轉(zhuǎn)換時(shí)序圖如圖3-8所示[2]。圖3-7A/D轉(zhuǎn)換讀數(shù)據(jù)過程圖3-7A/D轉(zhuǎn)換讀數(shù)據(jù)過程圖3-8A/D轉(zhuǎn)換時(shí)序圖圖3-8A/D轉(zhuǎn)換時(shí)序圖單片機(jī)向PCF8591發(fā)起始信號(hào)包括尋址字和控制字節(jié),尋址字和控制字節(jié)介紹如下:〔1尋址字PCF8591采用典型的I2C總線接口器件尋址方法,即總線地址由器件地址、引腳地址和方向位組成。飛利蒲公司規(guī)定A/D器件地址為1001。引腳地址為A2、A1、A0,其值由用戶選擇,因此I2C系統(tǒng)中最多可接23=8個(gè)具有I2C總線接口的A/D器件。地址的最后一位為方向位,當(dāng)主控器對(duì)A/D器件進(jìn)行讀操作時(shí)為1,進(jìn)行寫操作時(shí)為0??偩€操作時(shí),由器件地址、引腳地址和方向位組成的從地址為主控器發(fā)送的第一字節(jié)。尋址字結(jié)構(gòu)如圖3-9所示。圖3-9尋址字格式圖3-9尋址字格式〔2控制字節(jié)控制字節(jié)用于實(shí)現(xiàn)器件的各種功能,如模擬信號(hào)由哪幾個(gè)通道輸入等。控制字節(jié)存放在控制寄存器中??偩€操作時(shí)為主控器發(fā)送的第二字節(jié)??刂谱指袷饺鐖D3-10所示。其中:D1、D0兩位是A/D通道編號(hào):00通道0,01通道1,10通道2,11通道3;D2

自動(dòng)增益選擇〔有效位為1;D5、D4模擬量輸入選擇:00為四路單數(shù)入、01為三路差分輸入、10為單端與差分配合混合輸入、11為二路差分輸入。圖3-10控制字格式圖3-10控制字格式3、PCF8591和單片機(jī)的接口電路經(jīng)過電流電壓轉(zhuǎn)化,符合PCF8591芯片輸入值要求的電壓送入PCF8591的模擬信號(hào)輸入通道1,其中通道0為開發(fā)板上內(nèi)部電壓采集口??梢酝ㄟ^J9跳線,短接模擬輸入通道1、通道2和通道3。轉(zhuǎn)換后的數(shù)據(jù)通過數(shù)據(jù)總線SDA輸出,SDA連接單片機(jī)的P1.0口,SCL時(shí)鐘線連接單片機(jī)的P1.0。A/D轉(zhuǎn)換器通過數(shù)據(jù)總線SDA和時(shí)鐘總線SCL來與單片機(jī)實(shí)現(xiàn)數(shù)據(jù)的交互。PCF8591和單片機(jī)的接口電路圖如圖3-11所示。圖3-11PCF8591和單片機(jī)的接口電路圖圖3-11PCF8591和單片機(jī)的接口電路圖3.3.3LCD1602顯示電路金屬探測(cè)器的設(shè)計(jì)中,用LCD1602液晶作顯示模塊,包括英文字符和金屬個(gè)數(shù)的顯示。1、LCD1602介紹LCD1602是一塊通用的液晶顯示模塊。模塊內(nèi)部主要由LCD控制器〔LCDController,LCD顯示屏〔LCDPanel,列驅(qū)動(dòng)器〔Segmentdriver和LED背光〔LEDBacklight組成。結(jié)構(gòu)框圖如圖3-12所示。圖圖3-12LCD結(jié)構(gòu)框圖各管腳說明:VSS:電源地;VDD:電源電壓〔+5V;V0:LCD驅(qū)動(dòng)電壓;RS:寄存器選擇輸入端。輸入單片機(jī)選擇模塊內(nèi)部寄存器類型信號(hào),RS=0,當(dāng)MCU進(jìn)行寫模塊操作,指向指令寄存器;當(dāng)MCU進(jìn)行讀模塊操作,指向地址計(jì)數(shù)器;RS=1,無論MCU讀操還是寫操作,均指向數(shù)據(jù)寄存器;R/W:讀寫控制輸入端;EN:使能信號(hào)輸入端;DB0~DB7:LCD1602和單片機(jī)的數(shù)據(jù)通道;LEDA〔BL+:背光+5V端;LEDK〔BL-:背光0V端。LCD1602特性:圖3-13LCD1602和單片機(jī)的接口電路內(nèi)置192種字符;圖3-13LCD1602和單片機(jī)的接口電路具有64個(gè)字節(jié)的自定義字符RAM;顯示方式:STN、半透、正顯;背光方式:底部LED;通訊方式:8位并口;顯示容量:16×2個(gè)字符。2、LCD1602和單片機(jī)的接口電路LCD1602和單片機(jī)的接口電路如圖2-13。J3為L(zhǎng)CD顯示屏的接口,通過電阻R28可以調(diào)節(jié)LCD的亮度,在實(shí)際電路中,R1固定為。LCD數(shù)據(jù)輸出端連接單片機(jī)的P0口。單片機(jī)的P2.0口控制訪問LCD的指令寄存器和數(shù)據(jù)寄存器。P2.1口控制LCD寄存器的讀寫操作。P2.2口控制LCD的使能端口。BL+接+5V,BL-接地。3.3.4BEEP報(bào)警電路BEEP和單片機(jī)的接口電路如圖3-14。此電路用于檢測(cè)到金屬后的報(bào)警用。電路中的電阻R1和R2用于限流。蜂鳴器連接單片機(jī)的P3.7口,通過P3.7口輸出高低電平信號(hào)控制三極管Q7的通斷,當(dāng)P3.7口輸出低電平時(shí),三極管導(dǎo)通,蜂鳴器響。圖3-14BEEP和單片機(jī)的接口電路3.4本章小結(jié)圖3-14BEEP和單片機(jī)的接口電路金屬探測(cè)器設(shè)計(jì)是基于單片機(jī)AT89S52,利用型號(hào)為L(zhǎng)J18A4-10-Z/BD的電感式接近開關(guān)來檢測(cè)金屬并計(jì)數(shù)。整個(gè)硬件電路的設(shè)計(jì)主要包括電流電壓轉(zhuǎn)換電路和穩(wěn)壓電路。接近開關(guān)傳感器輸出為電流信號(hào),不能直接送入A/D轉(zhuǎn)換器PCF8591進(jìn)行采集,應(yīng)先通過電流電壓轉(zhuǎn)換電路,實(shí)現(xiàn)電流轉(zhuǎn)換為電壓后,再把電壓信號(hào)送入PCF8591。受系統(tǒng)對(duì)電壓穩(wěn)定度的要求,在傳感器外圍電路設(shè)計(jì)中,搭建一個(gè)由三段穩(wěn)壓器LM7812組成的穩(wěn)壓電路,穩(wěn)壓后的輸出為傳感器和電流電壓轉(zhuǎn)換電路中的集成運(yùn)算放大器供電。經(jīng)過電流電壓轉(zhuǎn)換電路后的電壓信號(hào),通過一根2端口杜邦頭實(shí)驗(yàn)線送入ME500B單片機(jī)綜合開發(fā)板上的PCF8591外部電壓輸入接口J9,實(shí)現(xiàn)外圍電路和開發(fā)板的結(jié)合。整個(gè)硬件電路設(shè)計(jì)完成后,進(jìn)行硬件電路測(cè)試,主要是測(cè)試傳感器的實(shí)際靈敏度。用萬(wàn)用表的5V直流電壓檔測(cè)試杜邦頭實(shí)驗(yàn)線的輸出端電壓,也就是測(cè)試送入PCF8591模擬輸入通道的電壓值。經(jīng)過反復(fù)測(cè)試得出如下結(jié)果:傳感器檢測(cè)到金屬前的基準(zhǔn)電壓Uo=2.00V;傳感器檢測(cè)到金屬時(shí)的電壓值U<x>=2.04V,由此可得知傳感器的靈敏度△U為0.04V。金屬檢測(cè)系統(tǒng)中硬件電路的設(shè)計(jì)達(dá)到預(yù)定的目標(biāo),下一步的設(shè)計(jì)是編程實(shí)現(xiàn)A/D轉(zhuǎn)換、數(shù)據(jù)處理、報(bào)警和顯示。.第4章軟件設(shè)計(jì)金屬檢測(cè)系統(tǒng)軟件設(shè)計(jì)是結(jié)合WAVE6000軟件開發(fā)系統(tǒng)完成的,主要在開發(fā)環(huán)境中完成匯編源代碼的編輯、程序調(diào)試和單片機(jī)可執(zhí)行HEX文件的生成等。4.1WAVE6000軟件開發(fā)環(huán)境介紹WAVE仿真器有兩種版本:DOS版本和Windows版本。中文界面,英文界面可任選,并支持ASM,C,PLM語(yǔ)言混合編程,具有項(xiàng)目管理功能,為用戶的資源共享,課題重組提供強(qiáng)有力的手段。有豐富的窗口顯示方式,能多方位,動(dòng)態(tài)地顯示仿真的各種過程??刹捎秒p工作模式:軟件模擬仿真〔不要仿真器也能模擬仿真和硬件仿真。由于編輯、編譯、下載、調(diào)試全部集中在一個(gè)環(huán)境下,為使用者提供了一個(gè)全集成環(huán)境,統(tǒng)一的界面,包含一個(gè)項(xiàng)目管理器,一個(gè)功能強(qiáng)大的編輯器,匯編Make、Build和調(diào)試工具并提供一個(gè)與第三方編譯器的接口,為用戶提供了方便。WAVE仿真器具有強(qiáng)大的邏輯分析儀綜合調(diào)試功能,通過交互式軟件菜單窗口對(duì)系統(tǒng)硬件的邏輯或時(shí)序進(jìn)行同步實(shí)時(shí)采樣,并能實(shí)時(shí)在線調(diào)試分析。WAVE6000軟件開發(fā)環(huán)境的設(shè)置和軟件開發(fā)過程如下。1、WAVE軟件主界面如圖4-1所示。主界面包括項(xiàng)目和數(shù)據(jù)觀察窗口、工作區(qū)窗口和信息窗口,程序開發(fā)主要在工作區(qū)內(nèi)進(jìn)行。項(xiàng)目和數(shù)據(jù)觀察窗口工作區(qū)窗口信息窗口項(xiàng)目和數(shù)據(jù)觀察窗口工作區(qū)窗口信息窗口圖4-1WAVE軟件主界面圖4-1WAVE軟件主界面2、開發(fā)環(huán)境具體設(shè)置步驟如下〔1首先,打開菜單目錄中仿真器下的仿真器設(shè)置對(duì)話框,如圖3-2所示。仿真器設(shè)置對(duì)話框中有四個(gè)選項(xiàng):語(yǔ)言、目標(biāo)文件、仿真器、通信設(shè)置。仿真器各選項(xiàng)卡設(shè)置如圖3-3,設(shè)置完成后,點(diǎn)擊"√好"按鈕,到此仿真器設(shè)置完成。圖4-2仿真器設(shè)置對(duì)話框圖4-2仿真器設(shè)置對(duì)話框圖4-3圖4-3仿真器各選項(xiàng)卡設(shè)置3、軟件開發(fā)首先在工作區(qū)新建一個(gè)空白文檔,在空白文檔內(nèi)用單片機(jī)匯編語(yǔ)言進(jìn)行源代碼的編輯,編輯完成后保存。點(diǎn)擊工具欄的編譯按鈕或按快捷鍵F9進(jìn)行編譯,并生成HEX文件,HEX文件是下載到單片機(jī)中的文件。如果在編譯過程出現(xiàn)錯(cuò)誤,可以通過信息窗口找到源代碼出錯(cuò)位置并進(jìn)行修改。當(dāng)想進(jìn)行單步調(diào)試時(shí),可以按快捷鍵F8進(jìn)行單步調(diào)試,此時(shí)可以通過工程和數(shù)據(jù)窗口中的SFR<特殊功能寄存器>、REG〔段寄存器、DATA<數(shù)據(jù)>按鈕切換到需要觀察的窗口,觀察程序運(yùn)行過程中各寄存器值和數(shù)據(jù)存儲(chǔ)區(qū)值變化過程。4.2軟件設(shè)計(jì)整體概述金屬檢測(cè)系統(tǒng)中軟件設(shè)計(jì)主要由A/D轉(zhuǎn)換、數(shù)據(jù)處理、LCD顯示和蜂鳴器報(bào)警四個(gè)模塊組成。4.2.1設(shè)計(jì)思想金屬檢測(cè)系統(tǒng)開機(jī)后,LCD顯示屏提示用戶系統(tǒng)正在進(jìn)行初始化,此時(shí)無法進(jìn)行金屬的檢測(cè);初始化完畢,系統(tǒng)采集開機(jī)初試電壓值Uo,并把Uo作為基準(zhǔn)電壓值?;鶞?zhǔn)電壓值Uo采集完后,LCD清屏提示用戶此時(shí)系統(tǒng)進(jìn)入金屬檢測(cè)狀態(tài)。以后系統(tǒng)不斷采集電壓值U<x>,并對(duì)U<x>和基準(zhǔn)電壓Uo做減法運(yùn)算后,判斷電壓差值是否等于靈敏度△U。如果差值等于靈敏度,則進(jìn)入報(bào)警子程序,并同時(shí)顯示已經(jīng)檢測(cè)到的金屬個(gè)數(shù)。報(bào)警、計(jì)數(shù)完后,系統(tǒng)進(jìn)入循環(huán)檢測(cè)狀態(tài)。如果電壓差值不滿足等于△U條件,則直接進(jìn)入循環(huán)檢測(cè)狀態(tài)?!鱑值為0.04V,此值為經(jīng)過反復(fù)實(shí)驗(yàn)測(cè)得的傳感器在檢測(cè)到金屬前和檢測(cè)到金屬后電壓差值。在屬檢測(cè)系統(tǒng)中采用︱U<x>-Uo︱的差和△U比較是為了提高檢測(cè)準(zhǔn)確度,消除因干擾而引起的誤檢測(cè)[3]。軟件設(shè)計(jì)整體流程圖如圖4-3所示。軟件設(shè)計(jì)主要模塊介紹:1、A/D轉(zhuǎn)換數(shù)模轉(zhuǎn)換使用芯片PCF8591來實(shí)現(xiàn),主要完成電壓值的采集并轉(zhuǎn)換為數(shù)字信號(hào)送入單片機(jī)。電壓采集包括傳感器檢測(cè)到金屬前的開機(jī)基準(zhǔn)電壓值Uo和傳感器進(jìn)入檢測(cè)狀態(tài)時(shí)的電壓值U<x>。2、數(shù)據(jù)處理數(shù)據(jù)處理主要完成采集電壓值的精度轉(zhuǎn)換,電壓值Uo和U<x>求差,判斷差值電壓和傳感器靈敏度是否相等。3、LCD顯示LCD顯示程序設(shè)計(jì)主要是完成用戶界面的顯示和傳感器檢測(cè)到金屬時(shí)顯示檢測(cè)到金屬的個(gè)數(shù)。4、蜂鳴器報(bào)警報(bào)警程序設(shè)計(jì)主要完成當(dāng)傳感器檢測(cè)到金屬時(shí)的報(bào)警操作。圖4-3軟件設(shè)計(jì)整體流程圖系統(tǒng)初始化開始圖4-3軟件設(shè)計(jì)整體流程圖系統(tǒng)初始化開始采集Uo并存儲(chǔ)報(bào)警,金屬個(gè)數(shù)加1并顯示個(gè)數(shù)N采集U<x>并存儲(chǔ)并啟動(dòng)A/D︱U<x>-Uo︱=△U啟動(dòng)A/DYLCD清屏,進(jìn)入檢測(cè)狀態(tài)提示用戶等待4.2.2金屬檢測(cè)系統(tǒng)軟件設(shè)計(jì)中單片機(jī)端口定義BEEPEQUP3.7;蜂鳴器SCLEQUP1.0;A/D轉(zhuǎn)換器PCF8591時(shí)鐘線SDAEQUP1.3;PCF8591數(shù)據(jù)線LCD_RSEQUP2.0;LCD數(shù)據(jù)/命令選擇端LCD_RWEQUP2.1;LCD讀/寫選擇端LCD_ENEQUP2.2;LCD使能信號(hào)LCD_DATAEQUP0;LCD數(shù)據(jù)端口4.2.3主程序START:MOVSP,#70HLCALLSET_LCD1;提示用戶等待MOVR1,#13MOVR0,#PRECISIONMOVA,#00HMOVR7,A;金屬計(jì)數(shù)單元清零LOOP:MOV@R0,A;存儲(chǔ)單元清零DJNZR1,ADD1MOVPRECISION,#4;預(yù)設(shè)靈敏度,靈敏度的小數(shù)后第二位為4MOVP0,#0FFH;P0口用作輸入口MOVP2,#0FFHMOVR5,#10STRAT1:LCALLDELAY;延時(shí)5ms子程序DJNZR5,STRAT1STRAT2:MOVR1,#U0LCALLPCF_AD;采集UoMOVAD_TEMP,U0;A/D轉(zhuǎn)換臨時(shí)存放單元CALLTUNBCD;顯示數(shù)據(jù)轉(zhuǎn)為三位BCD碼子程序LCALLCONV1;ASCII轉(zhuǎn)換子程序,MOVU0_BFW,ALCALLSET_LCD2;清屏,系統(tǒng)進(jìn)入待機(jī)檢測(cè)狀態(tài)STRAT3:MOVR1,#UXLCALLPCF_AD;采集U<x>MOVAD_TEMP,UXCALLTUNBCDLCALLCONV1MOVU1_BFW,A;保存U<x>值小數(shù)后第二位的ASCII碼值CALLDIFF;電壓差值計(jì)算子程序CALLCOMP;電壓差值和精度比較CALLADD_NUM;金屬計(jì)數(shù)子程序MOVR6,#2;蜂鳴器響周期計(jì)數(shù)CALLBEEP_LCD;報(bào)警程序,并同時(shí)顯示已檢測(cè)到金屬個(gè)數(shù)JMPSTRAT34.3A/D轉(zhuǎn)換程序設(shè)計(jì)在對(duì)A/D轉(zhuǎn)換器PCF8591進(jìn)行數(shù)據(jù)操作時(shí),首先是主控器發(fā)出起始信號(hào),然后發(fā)出讀尋址字節(jié),被控器做出應(yīng)答后,主控器從被控器讀出第一個(gè)數(shù)據(jù)字節(jié),主控器發(fā)出應(yīng)答,主控器從被控器讀出第二個(gè)數(shù)據(jù)字節(jié),主控器發(fā)出應(yīng)答…,一直到主控器從被控器中讀出第n個(gè)數(shù)據(jù)字節(jié),主控器發(fā)出非應(yīng)答信號(hào),最后主控器發(fā)出停止信號(hào)。PCF8591完成一次A/D轉(zhuǎn)換的流程圖如圖4-4所示。初始化總線驅(qū)動(dòng)寫讀尋址字初始化總線驅(qū)動(dòng)寫讀尋址字?jǐn)?shù)據(jù)采集CPU發(fā)非應(yīng)答信號(hào)結(jié)束開始圖4-4PCF8591完成一次A/D轉(zhuǎn)換流程圖圖4-4PCF8591完成一次A/D轉(zhuǎn)換流程圖A/D轉(zhuǎn)換部分程序:PCF_AD:NOPLCALLBUSSTR;總線啟動(dòng)子程序MOVA,#90H;寫PCF8591A/D尋址字LCALLWR0;發(fā)送一個(gè)字節(jié)子程序LCALLCHEK;查詢CPU是否應(yīng)答JBF0,PCF_AD;錯(cuò)誤,重發(fā)MOVA,#01H;A/D控制字,選擇通道1,自動(dòng)增1無效LCALLWR0LCALLCHEKJBF0,PCF_AD;錯(cuò)誤,重發(fā)。PCF_AD1:LCALLBUSSTR;總線啟動(dòng)子程序MOVA,#91H;讀PCF8591A/D尋址字LCALLWR0LCALLCHEKJBF0,PCF_AD1MOVR1,#AD_DATA;數(shù)據(jù)存儲(chǔ)區(qū)首地址WRD3:LCALLRD0;接收一個(gè)字節(jié)子程序,出口參數(shù)為AMOV@R1,A;數(shù)據(jù)放數(shù)據(jù)存儲(chǔ)區(qū)LCALLYIDAF;發(fā)送非應(yīng)答信號(hào)子程序LCALLSTOP;轉(zhuǎn)化結(jié)束RET4.4數(shù)據(jù)處理程序設(shè)計(jì)金屬檢測(cè)系統(tǒng)中,實(shí)驗(yàn)測(cè)得傳感器輸出電壓靈敏度為0.04V。通過比較采集電壓差值小數(shù)點(diǎn)后第二位和靈敏度小數(shù)后第二位是否相等來判斷是否檢測(cè)到金屬。在此過程中,采集電壓值轉(zhuǎn)換為三位BCD碼顯得尤為重要,轉(zhuǎn)換為三位BCD碼是為最終分離出電壓值小數(shù)后第二位的值。數(shù)據(jù)處理思想是對(duì)采集電壓值進(jìn)行除51運(yùn)算,分別分離出個(gè)位數(shù),小數(shù)后第一位和小數(shù)后第二位。電壓值轉(zhuǎn)化為三位BCD碼程序流程圖如圖4-5所示。開始取數(shù)開始取數(shù)除51,分離整數(shù)位取余數(shù)乘10除51,分離小數(shù)后第一位取余數(shù)乘10除51,分離小數(shù)后第二位結(jié)束圖4-5電壓值轉(zhuǎn)換為三位BCD碼程序流程圖三位BCD碼轉(zhuǎn)化部分程序如下:TUNBCD:MOVA,AD_TEMPMOVB,#51DIVABMOVAD_TEMP+2,A;整數(shù)個(gè)位數(shù)放入AD_TEMP+2MOVA,BCLRF0SUBBA,#1AH;相減不夠,C=1表示余數(shù)小于1AH<26>MOVF0,CMOVA,#10MULAB;余數(shù)乘以10,相當(dāng)于補(bǔ)0,繼續(xù)除。MOVB,#51DIVAB;再除以51JBF0,T_BCD1;余數(shù)大于1AH,F0為0,乘法溢出,果加5ADDA,#5T_BCD1:MOVAD_TEMP+1,A;小數(shù)后第一位放入AD_TEMP+1MOVA,BCLRF0SUBBA,#1AHMOVF0,CMOVA,#10MULABMOVB,#51DIVABJBF0,T_BCD2ADDA,#5T_BCD2:MOVAD_TEMP,A;小數(shù)后第二位放入AD_TEMPRET算法分析:A/D最大采集電壓為5V,對(duì)應(yīng)的十六進(jìn)制數(shù)為FFH〔255,由得程序中的除數(shù)51。A/D轉(zhuǎn)換后的數(shù)字電壓直接除51得個(gè)位數(shù)。然后,取余數(shù)乘10,乘積再除51分離小數(shù)后第一位。乘10過程中,當(dāng)余數(shù)大于1AH<26>時(shí),將產(chǎn)生溢出,但在此并未直接考慮乘法溢出的處理,而是通過余數(shù)和1AH作減法運(yùn)算后,把進(jìn)位標(biāo)志C放入標(biāo)志位F0中,F0控制程序的流向。當(dāng)余數(shù)大于1AH時(shí),F0為0,會(huì)對(duì)商值加5,通過商值加5操作來得出有溢出時(shí)的實(shí)際轉(zhuǎn)換值。小數(shù)后第二位的分離思想和小數(shù)后第一位的分離思想類似。4.5LCD顯示程序設(shè)計(jì)本次設(shè)計(jì)中,LCD的顯示包括用戶界面的英文字符顯示和傳感器檢測(cè)到金屬時(shí),金屬個(gè)數(shù)的顯示,金屬個(gè)數(shù)的顯示與報(bào)警同時(shí)進(jìn)行。字符的顯示只需把需要顯示字符的內(nèi)容、位置和LCD的DDRAM地址對(duì)應(yīng)皆可。LCD顯示字符程序流程圖如圖4-6。開始開始LCD初始化寫DDRAM地址取字符結(jié)束碼?寫字符地址加1結(jié)束圖4-6LCD顯示字符程序流程圖YNLCD顯示字符部分程序:LCD_SHOW:CJNEA,#1,LINE2;判斷是否為第一行,是第一行則順序執(zhí)行LINE1:MOVA,#80H;設(shè)置LCD的第一行地址,DDRAM地址設(shè)置CALLWCOM;寫入命令CALLCLR_LINE;清除該行字符數(shù)據(jù)MOVA,#80HCALLWCOM;寫入命令JMPFILLLINE2:MOVA,#0C0H;設(shè)置LCD的第二行地址CALLWCOM;寫入命令CALLCLR_LINE;清除該行字符數(shù)據(jù)MOVA,#0C0HCALLWCOM;寫入命令FILL:CLRA;填入字符子程序MOVCA,@A+DPTR;由消息區(qū)取出字符CJNEA,#0,LC1;判斷是否為結(jié)束碼RETLC1:CALLWDATA;寫入數(shù)據(jù)INCDPTR;指針加1JMPFILL;繼續(xù)填入字符RET4.6報(bào)警程序設(shè)計(jì)金屬檢測(cè)系統(tǒng)中,當(dāng)傳感器檢測(cè)到金屬時(shí),單片機(jī)控制蜂鳴器報(bào)警,提示檢測(cè)到金屬。軟件編程產(chǎn)生頻率分別為500Hz和1KHz的報(bào)警聲。報(bào)警的同時(shí),LCD閃爍顯示已檢測(cè)到金屬個(gè)數(shù),閃爍周期和蜂鳴器的報(bào)警周期相同。報(bào)警程序流程圖如圖4-7所示。開始開始計(jì)數(shù)器賦值顯示金屬個(gè)數(shù)產(chǎn)生500Hz信號(hào)產(chǎn)生1KHz信號(hào)計(jì)數(shù)結(jié)束?結(jié)束NY圖4-7報(bào)警程序流程圖報(bào)警程序部分程序如下:INFO5:DB"DETECTMENTAL",0;第一行顯示信息INFO6:DB"TIMES:",0;第二行顯示信息BEEP_LCD:CLRLCD_EN;LCD使能信號(hào),寫操作下降沿有效CALLINIT_LCD;初始化LCDCALLDELAY1MOVDPTR,#INFO5;指針指到顯示信息5MOVA,#1;顯示在第一行CALLLCD_SHOWMOVDPTR,#INFO6;指針指到顯示信息2MOVA,#2;顯示在第二行CALLLCD_SHOWMOVLCD_X,#11;LCD顯示位置MOVA,NUM_TEMP;加載高四位的ASCII碼值CALLSHOW_DIG2;顯示數(shù)據(jù)MOVA,NUM_TEMP+1;加載低四位的ASCII碼值INCLCD_XCALLSHOW_DIG2;顯示數(shù)據(jù)MOVR2,#200LOOP1:CPLBEEP;輸出頻率500Hz,,周期2msLCALLDELAY500;延時(shí)500usLCALLDELAY500DJNZR2,LOOP1MOVR2,#200LOOP2:CPLBEEP;輸出頻率1KHz,周期1msLCALLDELAY500;延時(shí)500usDJNZR2,LOOP2DJNZR6,BEEP_LCDRET4.7本章小結(jié)金屬檢測(cè)系統(tǒng)中軟件設(shè)計(jì)主要包括A/D轉(zhuǎn)換、數(shù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論