AT89S52單片機控制的智能型金屬探測器—畢業(yè)設(shè)計
《AT89S52單片機控制的智能型金屬探測器—畢業(yè)設(shè)計》由會員分享,可在線閱讀,更多相關(guān)《AT89S52單片機控制的智能型金屬探測器—畢業(yè)設(shè)計(47頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、平頂山工學院畢業(yè)設(shè)計(論文) 目錄 摘 要 1 ABSTRACT 2 第一章 緒論 3 1.1選題的意義 3 1.2國內(nèi)外研究現(xiàn)狀及存在問題 3 1.3設(shè)計的基本思路 4 第二章 分析探測金屬的理論依據(jù) 5 2.1線圈介質(zhì)條件的變化 5 2.2 渦流效應(yīng) 6 第三章 硬件電路設(shè)計 7 3.1系統(tǒng)組成 7 3.2硬件電路功能描述 8 3.3整機工作原理描述 28 第四章 系統(tǒng)軟件設(shè)計 29 4.1軟件設(shè)計思想 29 4.2數(shù)字濾波及算法說明 30 4.3主程序流程圖 31 4.4主要子程序模塊設(shè)計 32 第五章 主要技術(shù)指標分析 42 總結(jié) 4
2、3 致謝 44 參考文獻 45 附錄 46 摘 要 木文著重介紹了一種基于AT89S52單片機控制的智能型金屬探測器的硬件組成、軟件設(shè)計、工作原理及主要功能。該金屬探測器以AT89S52單片機為核心,采用線性霍爾元件UGN3503作為傳感器,來感應(yīng)金屬渦流效應(yīng)引起的通電線圈磁場的變化,并將磁場變化轉(zhuǎn)化為電壓的變化,并與設(shè)定的電壓基準值相比較后,判定是否探測到金屬。系統(tǒng)軟件采用匯編語言編寫。在軟件設(shè)計中,采用了數(shù)字濾波技術(shù)消除干擾,提高了探測器的抗干擾能力,確保了系統(tǒng)的準確性。此外,文中還對影響金屬探測器的靈敏度與穩(wěn)定性的因素進行了探討
3、,儀器的工作頻率、檢測線圈的尺寸及匝數(shù)等是影響靈敏度的主要因素;而應(yīng)用現(xiàn)場的環(huán)境溫度、濕度及線圈的制作工藝和供電電源的穩(wěn)定程度是儀器穩(wěn)定性的影響因素。 關(guān)鍵詞:單片機;金屬探測器;線性霍爾元件 ABSTRACT This paper describes the composition of hardware and software,working principles and the functions of an intelligent metal detector which mainly consists o
4、f AT89S52 single Chip Micyoco and linear Hall-Effect Sensor. The equipment adopts UGN3503U linear hall-effect sensor as probe to detect the magnetic field change of the centre of a search coil resulted from eddy current effect and turn this magnetic field change into voltage change. The SCM measures
5、 the peak value of voltage and compares it with reference voltage. The determine whether detect metal or not. In case of detection of metallic mass,the Metal Detector provides an acoustical and optical alarm. The systems software adopts the assembler language to be written. Inside the software,the
6、digital filter technology is utilized to eliminate the jamming. So the stability of system and the measuring veracity are improved. The effect of all factors on sensitivity and stability of Metal Detector are discussed in this paper. It is concluded that the operating frequency,the size of the searc
7、h coil and turns are the main factors effected on the sensitivity of the instrument,the environment temperature and humidity in site,the winding technology of coils and the stability of power supply are the factors effected on stability of instrument. KEYWORDS:SCM (Single Chip Micyoco);metal detect
8、or;linear hall-effect sensor 第一章 緒論 1.1選題的意義 金屬檢測系統(tǒng)作為一種最重要的安全檢查設(shè)備,己被廣泛地應(yīng)用于社會生活和工業(yè)生產(chǎn)的諸多領(lǐng)域。在食品生產(chǎn)過程中對金屬混入物的檢測或交通部門對旅客的安全檢查主要靠金屬探測儀。目前,就連考試也開始啟用金屬探測器來防止考生利用手機等通訊工具進行作弊。 食品在生產(chǎn)加工過程中,常因設(shè)備的磨損、零件的脫落等造成金屬粉末、金屬粒子或針狀不定形的金屬異物混入食品中,給食品安全性帶來極大危害,對食品生產(chǎn)企業(yè)的信譽造成極大損失。因此,常采用金屬探測器對產(chǎn)品進行檢測,杜絕金屬異物在產(chǎn)品中的存
9、在。為了人們能夠吃到安全的食品,設(shè)計一種智能金屬檢測系統(tǒng)來檢測對人們身體健康構(gòu)成危害的金屬異物勢在必行。 1.2國內(nèi)外研究現(xiàn)狀及存在問題 1.2.1 國內(nèi)外研究現(xiàn)狀 隨著科學技術(shù)的發(fā)展,金屬探測器經(jīng)歷了幾代探測技術(shù)的變革,從最初的信號模擬技術(shù)到連續(xù)波技術(shù)直到今天所使用的數(shù)字脈沖技術(shù),金屬探測器簡單的磁場切割原理被引入多種科學技術(shù)成果。無論是靈敏度、分辨率、探測精確度還是工作性能上都有了質(zhì)的飛躍。應(yīng)用領(lǐng)域也隨著產(chǎn)品質(zhì)量的提高延伸到了多個行業(yè)。 金屬探測器的一個重大技術(shù)進步就是分段限時技術(shù)的出現(xiàn),世界幾大著名的金屬探測器生產(chǎn)廠商,如EIPaso、Ceia USA、Ranger &
10、Metorex 等,均投入了相當?shù)馁Y金從事這項研究、開發(fā)工作。它利用探測器的側(cè)面或另一儀表盤上的燈光來指示或顯示出人體中金屬物品的近似位置,可以用在諸如法庭以及其他不允許發(fā)出聲音的地方,雖然關(guān)閉了探測器的音量,但它仍能顯示并提醒操作人員何時何處有金屬物品存在。 金屬探測器對工業(yè)生產(chǎn)及人身安全起著重要的作用。而為了能夠準確判定金屬物品藏匿的位置,就需要金屬探測器具有較高的檢測精度。目前,國外雖然已有較為完善的系列產(chǎn)品(如EIPaso、Ceia USA、Ranger & Metoerx等廠商的產(chǎn)品),但價格極其昂貴;國內(nèi)傳統(tǒng)的金屬探測器則是利用模擬電路進行檢測和控制的,其電路復雜,探測靈敏度低,
11、且整個系統(tǒng)易受外界環(huán)境如溫度、濕度、電焊等諸因素的干擾。 1.2.2存在問題 傳統(tǒng)的方法是傳感器探頭由LC正弦波振蕩電路組成,當金屬物經(jīng)過探頭或?qū)⑻筋^在金屬物附近移動時,由于磁場變化在金屬體內(nèi)產(chǎn)生渦流,導致LC振蕩電路失諧,從而使振蕩輸出電壓發(fā)生改變,據(jù)此信號系統(tǒng)可探測到附近金屬物的存在。這種電路一般采用模擬電路設(shè)計,抗干擾能力差,影響整個系統(tǒng)的穩(wěn)定性,導致波形失真甚至停止振蕩。 由于模擬電路比較復雜,所用的器件太多,導致在金屬接近磁敏探頭時,探測的靈敏度低,環(huán)境變化或元件老化造成電路工作點漂移。 1.3設(shè)計的基本思路 本文介紹的基于單片機控制的智能型金屬探測器,采用靈敏度極
12、高的線性霍爾元件作為傳感器,檢測由于金屬出現(xiàn)引起的探測線圈周圍磁場的變化,提高了檢測精度;處理部件則采用AT89S52單片機作為檢測和控制核心,對檢測結(jié)果進行分析判斷,有效地保證了檢測原理的實施;此外,利用軟件濾波的方法代替了傳統(tǒng)探測器復雜的模擬電路器件,大大提高了系統(tǒng)的可靠性、靈敏度和抗干擾性。適用于固體食品生產(chǎn)過程中對金屬混入物的檢測,也可用于探測隱藏于墻內(nèi)、護墻板內(nèi)側(cè)、空洞和土壤中的上述物品和其他金屬物。 第二章 分析探測金屬的理論依據(jù) 金屬探測器是采用線圈的電磁感應(yīng)原理來探測金屬的。根據(jù)電磁感應(yīng)原理,當有金屬物靠近通電線圈平面附近時,將出現(xiàn)渦流效應(yīng)。 2.
13、1線圈介質(zhì)條件的變化 當金屬物接近通電線圈時,將使通電線圈周圍的磁場發(fā)生變化,如圖2-1,對于半徑為R的單匝與圓形電感線圈,當其中通過交變電流時,線圈周圍空間產(chǎn)生交變磁場,根據(jù)畢奧一薩伐爾定律可計算出線圈中心軸線上一點的磁感應(yīng)強度B為: = (2-1) 式中 ; ——介質(zhì)的磁導率; ——相對磁導率; ——真空磁導率。 對于緊密纏繞N匝的線圈,線圈中心軸線上一點的磁感應(yīng)強度則為: (2-2) 由公式
14、(2-2)可知,當在線圈有效探測范圍內(nèi)沒有金屬物存在時, (非金屬的相對磁導率),線圈中心磁感應(yīng)強度B保持不變,當線圈有效探測范圍內(nèi)出現(xiàn)鐵磁性金屬物時,會變大,B隨也會變大。 圖2-1 圓形電感線圈軸線上磁場的計算 2.2 渦流效應(yīng) 根據(jù)電磁理論,我們知道,當金屬物體被置于變化的磁場中時,金屬導體內(nèi)就會產(chǎn)生自行閉合的感應(yīng)電流,這就是金屬的渦流效應(yīng)。渦流要產(chǎn)生附加的磁場,與外磁場方向相反,削弱外磁場的變化。據(jù)此,將一交流正弦信號接入繞在骨架上的空心線圈,流過線圈的電流會在周圍產(chǎn)生交變磁場,當將金屬靠近線圈時,金屬產(chǎn)生的渦流磁場的去磁作用會削弱線圈磁場的變化。金屬的電導率越大,
15、交變電流的頻率越大,則渦電流強度越大,對原磁場的抑制作用越強。 通過以上分析可知,當有金屬物靠近通電線圈平面附近時,無論是介質(zhì)磁導率的變化,還是金屬的渦流效應(yīng)均能引起磁感應(yīng)強度B的變化。對于非鐵磁性的金屬,包括抗磁體(如:金、銀、銅、鉛、鋅等)和順磁體(如錳、鉻、欽等),,較大,可以認為是導電不導磁的物質(zhì),主要產(chǎn)生渦流效應(yīng),磁效應(yīng)可忽略不計;對于鐵磁性金屬(如:鐵、鉆、鎳)很大,也較大,可認為是既導電又導磁物質(zhì),主要產(chǎn)生磁效應(yīng),同時又有渦流效應(yīng)。 本設(shè)計正是基于這樣的理論,尋找一種適合的傳感器檢測感應(yīng)線圈磁場的變化,并把磁場信號的變化轉(zhuǎn)變成電信號的變化,從而實現(xiàn)單片機的控制。正是本著這樣一
16、個設(shè)計思路來構(gòu)建系統(tǒng)的硬件電路。 第三章 硬件電路設(shè)計 3.1系統(tǒng)組成 如圖3-1所示,整個探測系統(tǒng)以8位單片機AT89S52作為控制核心,其硬件電路分為兩個部分,一部分為線圈振蕩電路,包括:多諧振蕩電路、放大電路和探測線圈;另一部分為控制電路,包括:UGN3503型線性霍爾元件、前置放大電路、峰值檢波電路、ADC0809模數(shù)轉(zhuǎn)換器、AT89S52單片機、LED顯示電路、聲音報警電路及電源電路等。 圖3-1系統(tǒng)結(jié)構(gòu)框圖 具體電路連接見附錄所示電路原理圖。 3.2硬件電路功能描述 3.2.1 線圈振蕩電路 圖3-2 線圈振蕩電
17、路原理圖 工作過程中,由555定時器構(gòu)成一個多諧振蕩器,產(chǎn)生一頻率為24KHz、占空比為的脈沖信號。振蕩器的頻率計算公式為: (3-1) 圖示參數(shù)對應(yīng)的頻率為24KHz。從多諧振蕩器輸出的正脈沖信號經(jīng)過電容輸入到的基極(為的9013H),使其導通,經(jīng)放大之后,就形成了頻率穩(wěn)定度高、功率較大的脈沖信號輸入到探測線圈中,在線圈內(nèi)產(chǎn)生瞬間較強的電流,從而使線圈周圍產(chǎn)生恒定的交變磁場。由于在脈沖信號作用下,處于開關(guān)工作狀態(tài),而導通時間又非常短,所以非常省電,可以利用+9V電池供電。 3.2.2 數(shù)
18、據(jù)采集電路 圖3-3 數(shù)據(jù)采集電路原理圖 (1)線性霍爾傳感器(linear Hall-Effect Sensors) 在電路設(shè)計中,選用了美國ALELGRO公司生產(chǎn)的UGN3503U線性霍爾傳感器,來檢測圖3-2中通電線圈周圍的磁場變化。UGN3503U線性霍爾傳感器的主要功能是可將感應(yīng)到的磁場強度信號線性地轉(zhuǎn)變?yōu)殡妷盒盘?。它的功能框圖示于圖3-4。 圖3-4 UGN3503U的功能框圖 霍爾元件是依據(jù)霍爾效應(yīng)制成的器件。其結(jié)構(gòu)原理如圖3-4所示。 圖 3-5 霍爾效應(yīng)結(jié)構(gòu)原理 在一塊半導體薄片上兩端通以電流I并加上與電流I方向垂直的磁場B,在與電流I和磁場B都垂直
19、的方向上出現(xiàn)一個電壓,如圖3-5的,這種現(xiàn)象就是霍爾效應(yīng)。這種現(xiàn)象的產(chǎn)生,是因為通電半導體片中的載流子在磁場產(chǎn)生的洛侖茲力的作用下,分別向半導體片M、N兩側(cè)偏轉(zhuǎn)和積聚,因而形成一個電場,稱作霍爾電場?;魻栯妶霎a(chǎn)生的電場力和洛侖茲力方向相反,它阻礙載流子繼續(xù)堆積,直到霍爾電場力和洛侖茲力大小相等。這時,半導體片M、N兩側(cè)建立起一個穩(wěn)定的電壓,這就是霍爾電壓。霍爾電壓可用下式表示: (3-2) 式中 —霍爾常數(shù)(); I—電流(A); B—磁感應(yīng)強度(T); d—霍爾元件的厚度(m)。 令,則得到
20、 (V) (3-3) 由上式可知,霍爾電壓的大小正比于控制電流I和磁感應(yīng)強度B。稱為霍爾元件的靈敏度,它與元件材料的性質(zhì)與幾何尺寸有關(guān)。因此當外加電壓源電壓一定時,通過的電流I為一恒值,此時輸出電壓只與加在霍爾元件上的磁場B的大小成正比,即: (V) (3-4) 此時為常數(shù)。因此,任何引起磁場強度變化的物理量都將引起霍爾輸出電壓的變化。據(jù)此,將霍爾元件做成各種形式的探頭,固定在工作系統(tǒng)的適當位置,用它
21、去檢測工作磁場,再根據(jù)霍爾輸出電壓的變化提取被檢信息,這就是線性霍爾元件的基本物理依據(jù)和作用。 本設(shè)計中采用的線性霍爾傳感器UGN3503U就是將霍爾元件、高增益線性差分放大器和射極跟隨器集成在同一半導體基片上,為用戶提供了一個由外電壓源驅(qū)動、使用方便的磁敏傳感器。該器件的磁電轉(zhuǎn)換特性曲線:其輸出電壓和加在霍爾元件上的磁感強度B成比例。它的靈敏度典型值為13.5mV/mT,靜態(tài)輸出電壓為2.5V,輸出電阻為0.05,mini-SIP封裝。具有靈敏度高,線性度好;結(jié)構(gòu)牢固,體積小,重量輕,耐震動,功耗小,壽命長,率高(可達);輸出噪聲低等特點。用它作探頭可測量,的交變和恒定磁場。在測量磁場時,
22、將元件的第一腳(面對標志面從左到右數(shù))接電源(工作電壓為5V),第二腳接地,第三腳接高輸入阻抗()電壓表,通電后,將電路放入被測磁場中,因霍爾器件只對垂直于霍爾片表面的磁感應(yīng)強度敏感,因而必須讓磁力線垂直于電路表面,當沒有磁場()時,靜態(tài)輸出電壓是電源電壓的一半(即),當外加磁場的南極靠近器件標志面時,會使輸出電壓高于靜態(tài)輸出電壓;當外加磁場的北極靠近器件標志面時,會使輸出電壓低于靜態(tài)輸出電壓,但仍然是正值。利用線性霍爾傳感器UGN3503U的上述特性,將其接在數(shù)據(jù)采集電路的前端,并固定在探測線圈的中心,即可感應(yīng)線圈的磁場變化,并將磁場的變化信號轉(zhuǎn)化為電壓信號的變化而被后級電路拾取和放大。
23、(2)放大和峰值檢波電路 由于UGN3503U線性霍爾元件采集到的電壓信號是一個毫伏級的信號,信號十分微弱,所以,在對其進行處理前,首先要進行放大。在設(shè)計中,信號放大電路采用輸入阻抗高、漂移較小、共模抑制比高的集成運算放大器LM324。LM324是四運放集成電路,它采用14腳雙列直插塑料封裝,外形和引腳排列如圖3-6所示。含四組形式完全相同的運算放大器,除電源共用,四組運放相互獨立。 圖 3-6 UGN3503外形和引腳排列 UGN3503線性霍爾元件輸出的微弱信號經(jīng)電容耦合到前級運算放大器U2A的同相輸入端,運算放大器U2A把霍爾元件感應(yīng)到的電壓轉(zhuǎn)換為對地電壓。在電路設(shè)計中,運放L
24、M324采用+5V單電源供電,對于不同強度的信號均可通過調(diào)節(jié)前級放大電路的反饋電位器來改變其放大倍數(shù)。經(jīng)前級運算放大器放大的信號經(jīng)耦合電容輸入到后級峰值檢測電路中。采用阻容耦合的方法可以使前后級電路的靜態(tài)工作點保持獨立,隔離各級靜態(tài)之間的相互影響,使得電路總溫漂不會太大。 峰值檢測電路由兩級運算放大器組成,第一級運放U2B入信號的峰值傳遞到電容上,并保持下來。第二級運放U2C緩沖放大器,將輸出與電容隔離開來。在設(shè)計中,為了獲得優(yōu)良的保持性能和傳輸性能,同樣采用了輸入阻抗高、響應(yīng)速度較快、跟隨精度較好的運算放大器LM324,這樣可有效地利用LM324的資源,減少使用元器件的數(shù)量,降低了成本。當
25、輸入電壓上升時,跟隨上升,使二極管、導通,截止,運放U2B工作在深度負反饋狀態(tài),給電容充電,上升。當輸入電壓下降時,跟隨下降,導通,U2B也工作在深度負反饋狀態(tài),深負反饋保證了二極管、可靠截止,值得以保持。當再次上升使上升并使、導通,截止,再次對電容充電(高于前次充電時電壓),下降時,、又截止,導通,將峰值再次保持。輸出反映的大小,通過峰值檢波和后級緩沖放大電路,將采集到的微弱電壓信號放大至0V~5V的直流電平,以滿足A/D轉(zhuǎn)換器ADC0809所要求的輸入電壓變換范圍,然后通過A/D轉(zhuǎn)換電路將檢測到的峰值轉(zhuǎn)化成數(shù)字量。 (3) A/D轉(zhuǎn)換電路 由于采集到的信號是連續(xù)變化的模擬量,不能被單片
26、機直接處理,所以,必須把這些模擬量轉(zhuǎn)換成數(shù)字量后才能夠輸入到單片機中進行處理,這里選用了經(jīng)濟實用的ADC0809型A/D轉(zhuǎn)換器來完成模數(shù)轉(zhuǎn)換。ADC0809芯片內(nèi)部結(jié)構(gòu)和工作時序示于圖3-7和圖3-8。 圖3-7 ADC0809芯片的內(nèi)部結(jié)構(gòu) 圖3-8 ADC0809的工作時序 ADC0809是8位逐次逼近型啊A/D轉(zhuǎn)換器,片內(nèi)有八路模擬開關(guān),可對八路模擬電壓量實現(xiàn)分時轉(zhuǎn)換,轉(zhuǎn)換速度為(即10千次∕1秒)。址鎖存允許信號ALE=1時,3位地址信號A、B、C送入地址鎖存器,選擇8路模擬量中的一路實現(xiàn)A/D變換。本設(shè)計中只使用通道IN0,地址譯碼器ABC直接接地為000,采用線選法尋
27、址。ADC0809片內(nèi)有三態(tài)輸出緩沖器,可直接與單片機的數(shù)據(jù)總線相連接,這里將它的數(shù)據(jù)輸出口直接與單片機的數(shù)據(jù)總線P0連接,AT89S52的P0口作為數(shù)據(jù)總線,又作為低8位地址總線。ADC0809的片內(nèi)沒有時鐘,時鐘信號必須由外部提供,這里利用AT89S52提供的地址鎖存允許信號ALE經(jīng)計數(shù)器74LS163構(gòu)成的4分頻器分頻獲得。ALE引腳的頻率是單片機時鐘頻率的1/6,單片機時鐘頻率為12MHz,則ALE引腳頻率約為2MHz,再經(jīng)4分頻后為500kHz,所以ADC0809能可靠工作。ADC0809的模擬輸入范圍:單極性0~5V,設(shè)計中采用+5V單電源供電。 如圖3-9所示放大后的電壓信號送
28、入ADC0809的模擬輸入通道IN0進行A/D轉(zhuǎn)換。將P2.7(地址總線的A15)作為片選信號,由AT89S52的寫信號和P2.7控制ADC0809的地址鎖存ALE和轉(zhuǎn)換啟動START,當ADC0809的START啟動信號輸入端為高電平時,A/D開始轉(zhuǎn)換,在時鐘的控制下,一位一位地逼近,比較器一次次進行比較,轉(zhuǎn)換結(jié)束時,送出轉(zhuǎn)換結(jié)束信號EOC(低到高),并將8位數(shù)字量D7~D0存到輸出緩存器。AT89S52的讀信號端發(fā)出一個輸出允許命令輸入到ADC0809的ENABEL(即OE)端,ENABEL(OE)端呈高電位,用以打開三態(tài)輸出鎖存器,AT89S52從ADC0809讀取相應(yīng)電壓數(shù)字量,然后存
29、入數(shù)據(jù)緩沖器中。 圖 3-9 A/D轉(zhuǎn)換電路 3.2.3 系統(tǒng)控制單元 采用AT89S52單片機。AT89S52是一個低功耗,高性能CMOS 8位單片機,片內(nèi)含8K bytes Isp(In-system programmable)的可反復擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術(shù)制造,兼容標準MCS-52指令系統(tǒng)及AT89S52引腳結(jié)構(gòu)(引腳圖如圖3-10所示),芯片內(nèi)集成了通用8位中央處理器和ISP Flash存儲單元。 圖3-10 AT89S52引腳圖 AT89S52片內(nèi)結(jié)構(gòu)如圖3-11所示,它具有如下特點:40個引腳
30、,8K bytes Flash片內(nèi)程序存儲器,256bytes的隨機存取數(shù)據(jù)存儲器(RAM),32個外部雙向輸入/輸出(I/O)口,看門狗定時(WDT)電路,2個數(shù)據(jù)指針,3個16位可編程定時計數(shù)器,5個中斷優(yōu)先級2層中斷嵌套中斷,2個全雙工串行通信口,片內(nèi)時鐘振蕩器。此外,AT89S52設(shè)計和配置了振蕩頻率可為12MHz,并可通過軟件設(shè)置省電模式??臻e模式下,CPU暫停工作,而RAM、定時計數(shù)器、串行口及外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結(jié)振蕩器而保存RAM的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復位。其工作電壓為+5V,晶振頻率采用12MHz。 圖 3-11 AT89S52內(nèi)部結(jié)
31、構(gòu) 3.2.4 時間顯示模塊 1.日歷芯片 (1) DS1302的結(jié)構(gòu)及工作原理 DS1302是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘芯片,它可以對年、月、日、時、分、秒進行計時,且具有閏年補償功能,工作電壓寬達2.5~5.5V。采用三線接口與CPU進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù),可用來保存重要數(shù)據(jù)。該芯片采用串行I/O接口方式。另外,在讀寫時鐘或RAM數(shù)據(jù)時,可采用單字節(jié)或多字節(jié)(串模式)方式傳送數(shù)據(jù)。它可在低功率情況下工作,在小于1,時也可保持數(shù)據(jù)和時鐘信息。DS1302內(nèi)部有一個318的用于臨時性存放數(shù)據(jù)的RAM寄存
32、DS1302是DS1202的升級產(chǎn)品,與DS1202兼容,但增加了主電源/后備電源雙電源引腳,同時提供了對后備電源進行涓細電流充電的能力。 (2)DS1302內(nèi)部結(jié)構(gòu)和引腳說明 DS1302內(nèi)部主要包括實時時鐘(REAL, TIME CLOCK),輸入移位寄存器(INPUT SLRFI, REGIS-TERS),31字節(jié)靜態(tài)RAM、電源控制部分(POWER CONTROL)、命令控制邏輯(COMMAND AND CON-TROL LOGIC)、振蕩器和分頻器(OSCILLATOR AND DIVIDER)等部分。DS1302具有8腳DIP和SOIC封裝形式,其引腳排列如圖3-12所示
33、。 1 5 2 6 3 7 3 7 4 8 DS1302 VCC1 VCC2 DS1302 X1 X2 GND SLCK I/O RST 圖3-12 DS1302內(nèi)部結(jié)構(gòu)和管腳圖 其中1腳VCC1和5腳VCC2為電源電壓引腳,單電源供電時接VCC1腳,雙電源供電時,主工作電源接VCC2腳,備份電源接VCC1腳,備份電源可采用福一鎳充電電池,也可用1uf以上的大容量電容代替。芯片具有可編程選擇的對備份電池進行微電流充電的功能,有效延長了備
34、份電池的使用壽命。若啟用芯片內(nèi)部的微電流充電器,則在主工作電源正常工作時,由主工作電源向充電電池充電。備份電池電壓應(yīng)略低于主工作電源電壓,在系統(tǒng)掉電的情況下,則由備份電池向系統(tǒng)供電,以保證時鐘正常運行,并保持時鐘/日歷信息和31個字節(jié)靜態(tài)RAM中的重要數(shù)據(jù)信息不丟失;2腳X1和3腳X2為32.768KHz晶振引腳;8腳RST為復位端,若其被置為低電平,則中止所有數(shù)據(jù)傳送,I/O腳變?yōu)楦咦钁B(tài),系統(tǒng)復位;7腳I/O為數(shù)據(jù)輸人/輸出端;6腳SCLK為串行時鐘輸入端,所有地址l命令字節(jié)和數(shù)據(jù)字節(jié)都是在時鐘SCLK的同步控制下從I/O腳串行輸入輸出的。DS1302通過SCLK、I/O、RST三根線與外部
35、進行同步串行通信。VCC1為后備電源,VCC2為主電源。在主電源關(guān)閉的情況下,也能保持時鐘的連續(xù)運行。DS1302由VCC1或VCC2兩者中的較大者供電。當VCC2大于VCC1+0.2V時,VCC2給DS1302供電。當VCC2小于VCC1時,DS1302由VCC1供電。X1和X2是振蕩源,外接32.768kHz晶振。RST是復位/片選線,通過把RST輸入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當RST為高電平時,所有的數(shù)據(jù)傳送被初始化,允許對DS1302進行操作。如果
36、在傳送過程中RST置為低電平,則會終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電運行時,在VCC≥2.5V之前,RST必須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平。I/O為串行數(shù)據(jù)輸入輸出端(雙向),后面有詳細說明。SCLK始終是輸入端。 (3) DS1302的寄存器的說明 DS1302有12個寄存器,其中有7個寄存器與日歷、時鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式。 此外,DS1302 還有年份寄存器、控制寄存器、充電寄存器、時鐘突發(fā)寄存器及與RAM相關(guān)的寄存器等。時鐘突發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內(nèi)容。 DS1302與RAM相關(guān)的寄存器分為兩類:一
37、類是單個RAM單元,共31個,每個單元組態(tài)為一個8位的字節(jié),其命令控制字為C0H~FDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;另一類為突發(fā)方式下的RAM寄存器,此方式下可一次性讀寫所有的RAM的31個字節(jié),命令控制字為FEH(寫)、FFH(讀)。 DS1302 內(nèi)部寄存器 CH: 時鐘停止位 寄存器2的第7位:12/24 小時標志 CH=0 振蕩器工作允許 bit7=1,12 小時模式 CH=1 振蕩器停止 bit7=0,24 小時模式 WP: 寫保護位 寄存器2 的第5 位
38、:AM/PM 定義 WP=0 寄存器數(shù)據(jù)能夠?qū)懭? AP=1 下午模式 WP=1 寄存器數(shù)據(jù)不能寫入 AP=0 上午模式 TCS: 涓流充電選擇 DS: 二極管選擇位 TCS=1010 使能涓流充電 DS=01 選擇一個二極管 TCS=其它 禁止涓流充電 DS=10 選擇兩個二極管 DS=00 或11, 即使TCS=1010, 充電功能也被禁止 A時鐘原理圖如圖3-13所示 圖3-13 A 時鐘圖 (4)地址/命令字節(jié)和寄存器格式定義 在數(shù)據(jù)傳送時,首先向DS1302寫人
39、地址/命令字節(jié),該字節(jié)提供地址和命信息,然后輸人或輸出數(shù)據(jù)。 B7為數(shù)據(jù)傳送標志位,要完成數(shù)據(jù)傳送,B7必須為邏輯“1”,否則不能向DS1302進行寫操作。B6為RAM和時鐘寄存器選擇位,若為邏輯“0”,表明系統(tǒng)要對時鐘寄存器進行讀寫操作;B6為邏輯“1”,表明系統(tǒng)要對RAM進行讀寫操作。B1~B5確定要進行讀寫操作的寄存器地址,當B1~B5均為“1”時,選中多字節(jié)串模式傳送方式,則時鐘/日歷數(shù)據(jù)或者RAM數(shù)據(jù)以多字節(jié)串模式進行傳送。B0為讀寫操作選擇位,若為邏輯“0”時,表明將進行寫操作,即向DS1302輸入數(shù)據(jù);B0為邏輯“1”時,則表明將進行讀操作,即從DS1302輸出
40、數(shù)據(jù)。DS1302片內(nèi)有7個時鐘/日歷時標寄存器,以壓縮BCD碼格式存放時鐘舊歷數(shù)據(jù)。秒寄存器的最高位B7是時鐘停止標志,當該位為“1”時,時鐘晶振停止運行;當該位為“0”時,時鐘開始運行。小時寄存器的最高位B7是12/24小時方式選擇位,當為“0”時,選擇24小時方式;當為“1”時,選擇12小時方式,該寄存器的B5是上/下午標志位,B5為“0”表示上午,B5為“1”,表示下午。DS1302片內(nèi)還有控制寄存器,微電流充電寄存器,串模式控制寄存器。控制寄存器的最高位B7是寫保護位,在向時鐘寄存器或RAM中寫入數(shù)據(jù)之前,B7必須為“0”,如為“1”,則禁止對DS1302進行任何寫操作,該寄存器中B
41、0~B6始終被置為“0”。微電流寄存器控制DS1302的微電流充電功能,其中微電流充電選擇位B4~B7控制微電流充電器的選擇,為防止誤操作,只有1010格式才能夠使充電器工作。DS1302在上電時,微電流充電器不被使能,只有在軟件程序中對其進行選擇。二極管選擇位B2~B3和電阻選擇位B0~B1分別選擇連在VCC1和VCC2之間充電通道上的二極管和電阻的數(shù)目。 (5) 讀寫操作時序 在數(shù)據(jù)傳送時,首先傳送地址/命令字節(jié),確定下一步將要執(zhí)行讀操作還是寫操作;將要訪問的是時鐘寄存器還是RAM存儲器及其地址;采用單字節(jié)傳送方式還是多字節(jié)(串模式)傳送方式。在向DS1302寫入地址/命令字節(jié)之后傳送
42、讀寫操作數(shù)據(jù)。單字節(jié)傳送方式讀寫操作時序如圖3-14所示。 圖3-14單字節(jié)傳送方式讀寫操作時序圖 在數(shù)據(jù)傳送時,先將復位端RST置為高電平,此時SCLK必須為低電平。然后,在第一組8個SCLK串行時鐘周期的上升沿,依次將地址/命令字節(jié)的8比特串人移位寄存器。若系統(tǒng)要對DS1302進行寫操作,則把地址/命令字節(jié)寫人移位寄存器之后,數(shù)據(jù)字節(jié)在下一組8個SCLK串行時鐘周期的上升沿輸人DS1302;若系統(tǒng)要對DS1302進行讀操作,則把地址/命令字節(jié)寫入移位寄存器之后,數(shù)據(jù)字節(jié)在下一組8個SCLK串行時鐘周期的下降沿從DS1302輸出。任何字節(jié)均從低位B0開始依次輸
43、人或輸出。 (6) DS1302與微控制器的接口軟件及功能應(yīng)用舉例 電路設(shè)計中采用了DS1302時鐘舊歷芯片,提供時間和日歷用于顯示記錄,并為定時、持續(xù)打印功能提供時鐘。該系統(tǒng)采用ATMEL公司的AT89S52單片機作為核心控制器件,DS1302在該系統(tǒng)中的應(yīng)用電路如圖3-15所示。 DS1302工作在雙電源供電方式下,VCC2腳提供主工作電源,VCC1腳接3.6V鎘~鎳充電電池。通過編程選擇微電流充電功能,由VCC2在內(nèi)部向VCC1腳提供充電電流,對充電電池充電。在系統(tǒng)掉電時,由備份電源供電維持時鐘運行和保持RAM中的重要數(shù)據(jù)不丟失。DS1302的SCLK,I/O,RST端分別與單片機
44、AT89C52 P1口的P2.2,P2.3,P2.4相連,進行雙向串行通信。由于采用真時鐘,可以不占用單片機的定時器資源,減輕軟件設(shè)計量。下面給出用MCS-52匯編語言編寫的單字節(jié)傳送方式讀、寫操作子程序清單。在DS 1302寫子程序W-1302中,累加器A中存放地址/命令字節(jié),其首先被寫人DS1302,發(fā)出寫操作命令;然后把寄存器R1中存放的數(shù)據(jù)字節(jié)寫入DS1302,地址/命令和數(shù)據(jù)字節(jié)均是在SCLK的上升沿輸人給DS1302的。在讀操作子程序READ 1302中,首先將累加器A中存放的地址/命令字節(jié)寫入DS1302,發(fā)出讀操作命令;然后RAM中的數(shù)據(jù)或時鐘數(shù)據(jù)在SCLK的下降沿從DS130
45、2中輸出,并將其存放在累加器A中。 圖3-15 DS1302與單片機的連接圖 最后,經(jīng)過比較其電路圖如3-16 圖3-16 DS1302的外接電路 2.時間顯示模塊 單片機的并行口不能直接驅(qū)動LED顯示器,必須采用專用的驅(qū)動電路的芯片。使之產(chǎn)生足夠大的電流,顯示器才能正常工作。如果驅(qū)動電路能力不足,即負載能力不夠時顯示器就不夠亮,而且驅(qū)動電路長期在低電流下工作容易損壞。因此在實際使用中必須接入LED驅(qū)動 LED驅(qū)動分為兩種:靜態(tài)顯示,動態(tài)顯示。 靜態(tài)顯示:LED驅(qū)動的選擇較為簡單,驅(qū)動能力與顯示器電流
46、相匹配即可,用+5V共陽,接地共陰即可。 動態(tài)顯示:同樣考慮段位的和位位的的驅(qū)動能力,而且段的驅(qū)動能力決定能力決定位的驅(qū)動能力。 在應(yīng)用系統(tǒng)中,設(shè)計要求不同,使用LED的顯示的位數(shù)不同。選擇6位一體的時鐘型LED顯示器用“:”號分開。分別表示“年,月,日”和“時,分,秒”。 此次設(shè)計選擇動態(tài)顯示。 (1)LED顯示器的選擇 對于這種結(jié)構(gòu)的LED顯示器,它的體積和結(jié)構(gòu)都符合設(shè)計要求,由于4位LED陰極的各段已經(jīng)在內(nèi)部接在一起,所以必須使用動態(tài)掃描方式。 (2) LED的段驅(qū)動芯片的選擇。 LED的段驅(qū)動電路有很多種,在本設(shè)計中,可以選擇BCD-7段鎖存/譯碼/驅(qū)動器
47、做為段驅(qū)動電路。這類芯片的型號有74LS47、74LS244、74LS247、74LS248等,這類芯片具有鎖存、譯碼驅(qū)動的功能。即在輸入端輸入要顯示字型的BCD碼,在輸出端就可以得到具有一定驅(qū)動能力的7段顯示字型碼。 (3) LED的位驅(qū)動芯片的選擇 LED位驅(qū)動較常用的芯片有ULN2003A和ULN2803。前者是具有7個達林頓電路的集成芯片,后者是具有8個達林頓電路的集成芯片。此種芯片集電極可以收集最大達500mA的電流,耐壓為30V,能驅(qū)動常規(guī)的LED顯示器。 在本設(shè)計中選用74LS244作為位驅(qū)動電路,將該芯片的輸入端引腳IN0、IN1、IN2、IN3與單片機的P1口或者P3口
48、連接,該芯片的輸出端引腳OUT0、OUT2、OUT3與LED顯示器的4個位碼引腳D1~D4相連接。 (4) LED驅(qū)動電路與單片機的連接 可以采用單片機的P1口作為與LED的輸出接口,即P1口的低四位作為LED的段碼輸出信號,P1口的高四位作為LED位碼的輸出控制信號。 該電路的工作原理是:當P1口的低四位輸出斷碼信號的BCD碼后,通過74LS273芯片的鎖存、74LS244的譯碼和驅(qū)動作用,在其輸出端輸出具有一定驅(qū)動能力的七段字型碼,由于4-LED的段碼輸入引腳是并聯(lián)在一起的,所以每一位LED的段碼輸入引腳都能獲得這個段碼信號。若要控制在每一時刻只有一位LED被點亮,必須靠位碼信號控制
49、。因此P1口的位碼信號在每一時刻只有一位是“1”,其它位全為“0”,然后按時間順序改變輸出“1”的位置,控制在每一時刻只有一位LED被點亮,達到動態(tài)顯示的目的。 (5) 按鍵電路設(shè)計與器件選擇 金屬檢測系統(tǒng)工作時,應(yīng)對當前時間進行調(diào)整。要實現(xiàn)這項功能,可以接入鍵盤輸入電路。在單片機組成的測控系統(tǒng)及智能化儀器中,用的最多的是非編碼鍵盤。鍵盤結(jié)構(gòu)可以分為獨立式鍵盤和行列式鍵盤(矩陣式)兩類。 本設(shè)計采用的是獨立鍵盤。由于要顯示年、月、日、時、分、秒,所需LED太多,所以在正常情況下,只顯示時 、分、秒,當需要顯示年、月、日的時候,按下S4(給單片機PSEN一個信號)即可顯示,時間切換鍵電路如
50、圖3-17所示。 圖3-17 時間顯示切換鍵 3.報警電路 一旦發(fā)現(xiàn)金屬出現(xiàn),,則被測物理量超限由單片機I/O口的P3.4控制發(fā)光二極管進行光報警的同時,P3.5還觸發(fā)無源蜂鳴器用聲報警提醒檢測人員注意,進行必要的定位搜身檢查。 4.查詢電路 由于AT89S52的內(nèi)存比51系列單片機和52系列的一些單片機的內(nèi)存大好多(它的內(nèi)存是8K),而且食品中的金屬相對較少,所以將每次檢測到金屬的相關(guān)數(shù)據(jù)存到AT89S52單片機的內(nèi)存里。 為了以后能查到檢測到金屬的相關(guān)數(shù)據(jù),設(shè)計3個查詢獨立按鍵。當按下S1時,可以調(diào)出最新檢測到的金屬的相關(guān)數(shù)據(jù);按S2可以向上翻,按S3可以向下翻。查詢按鍵電
51、路如圖3-18所示。 圖3-18 查詢按鍵電路 5.電源電路 電路如圖3-19所示,電源供電由9V電池和板內(nèi)穩(wěn)壓電源組成。電路板內(nèi)采用三端穩(wěn)壓集成電路塊LM7805為板內(nèi)元器件供電。LM7805三端正穩(wěn)壓器具有內(nèi)部過流、熱過載和輸出晶體管安全區(qū)保護功能,可將+9VDC的輸入電壓轉(zhuǎn)換為+5V電壓,最大輸出電流0.5A,保證板內(nèi)555定時器、UGN3503U、AT89S52、ADC0809等芯片和元件可靠地工作。 圖3-19 電源電路 3.3整機工作原理描述 在工作過程中,由555定時器構(gòu)成的多諧振蕩器產(chǎn)生一個頻率為24KHz的信號,此脈沖信
52、號經(jīng)過緩沖和放大之后,形成頻率穩(wěn)定度高、功率較大的脈沖信號輸入到探測線圈中,通電的線圈周圍就會產(chǎn)生磁場,此時,固定在線圈L;中心的霍爾元件UGN3503U就會感應(yīng)到線圈周圍的磁場,并將磁場強度信號線性地轉(zhuǎn)變成電壓信號。 在無金屬的情況下,假設(shè)霍爾輸出電壓為,該電壓信號很微弱,屬mV級信號,經(jīng)過放大電路放大,再通過峰值檢波電路,得到相應(yīng)的0V~5V的峰值輸出電壓,以滿足ADC0809的量程,經(jīng)A/D轉(zhuǎn)換后,將的數(shù)字量輸入到單片機儲存起來。此后,以該電壓信號作為基準電壓,與A/D轉(zhuǎn)換器采集到的電壓信號進行比較判斷。 當探測線圈靠近金屬物體時,由于電磁感應(yīng)現(xiàn)象,會使探測電感值發(fā)生變化,從而使其周
53、圍的磁場發(fā)生變化,霍爾元件感應(yīng)到該變化的磁場,并將其線性地轉(zhuǎn)變成電壓信號,該變化的電壓經(jīng)放大電路、峰值檢波電路后,得到相應(yīng)的0V~5V的峰值輸出電壓,然后經(jīng)A/D轉(zhuǎn)換后。轉(zhuǎn)換后,輸入到CPU,由CPU完成與基準電壓的比較,二者比較︱-︱得到一個差值,此差值與預(yù)設(shè)的靈敏度再作比較。當然,大小的設(shè)定決定著系統(tǒng)精度的高低。若︱-︱>,就確定為探測到金屬,CPU輸出口P3.4輸出信號驅(qū)動發(fā)光二極管發(fā)光報警,同時P3.5控制蜂鳴器發(fā)出聲響,進行聲音報警。 第四章 系統(tǒng)軟件設(shè)計 4.1軟件設(shè)計思想 軟件是本系統(tǒng)的靈魂,在設(shè)計軟件中,本文從系統(tǒng)的實用性、可靠性及方便靈活
54、等幾個方面出發(fā),使程序滿足設(shè)計的功能要求。整個系統(tǒng)的軟件包括主程序、一個外部中斷服務(wù)程序、數(shù)字濾波程序、比較判斷子程序及發(fā)光報警等若干個子程序。軟件采用匯編語言編寫,并采用模塊化設(shè)計,使程序結(jié)構(gòu)清晰,便于今后進一步擴展系統(tǒng)的功能。 主程序初始化以后置位AT89S52的中斷控制位EA,使CPU開放中斷。然后通過檢測ARM中21H中數(shù)值的值來判斷是否采集基準電壓,如果未采集過,則啟動ADC0809對通道的模擬輸入量進行A/D轉(zhuǎn)換。在電路設(shè)計中,ADC0809與AT89S52是采用中斷方式連接的,所以系統(tǒng)的數(shù)據(jù)采集處理功能是在中斷服務(wù)程序中完成的,從附錄系統(tǒng)電路原理圖看出,ADC0809的EOC端
55、通過反相器接AT89S52的端,作為中斷申請。采用中斷方式,可大大節(jié)省CPU時間。軟件編程允許AT89S52響應(yīng)外部中斷1,且設(shè)置其響應(yīng)方式為邊沿觸發(fā)。當A/D轉(zhuǎn)換完畢后,ADC0809的EOC端向AT89S52的送入一個中斷申請信號,AT89S52接此信號后響應(yīng)中斷請求,調(diào)用中斷服務(wù)子程序取,中斷服務(wù)程序進行壓棧,保護現(xiàn)場,讀取來自0809數(shù)據(jù)輸出口的8位數(shù)字量,并將數(shù)字量儲存到單片機RAM中,然后啟動ADC0809的下一次轉(zhuǎn)換。經(jīng)過數(shù)據(jù)軟件濾波之后將其存放在單片機RAM 21H中,作為基準電壓。 經(jīng)反復實驗測得的靈敏度的值被存放在單片機RAM地址為20H的存儲器中。在檢測過程中,將A/D
56、轉(zhuǎn)換器采集到的電壓信號經(jīng)數(shù)據(jù)軟件濾波后存入內(nèi)部RAM以30H為首址的數(shù)據(jù)存儲器中,然后將此數(shù)據(jù)和基準電壓進行比較,二者差值U存放在單片機ARM地址為22H的存儲器中。而后再通過判據(jù)算法將此差值U與靈敏度進行比較,以確定是否報警。 4.2數(shù)字濾波及算法說明 金屬探測器的噪聲抑制能力是金屬探測器的主要設(shè)計指標。由于在采集電壓量時經(jīng)常會碰到各種瞬時干擾,而采用硬件濾波存在硬件電路復雜等諸多弊端,因此本設(shè)計中采用算術(shù)平均濾波法,即在一次電壓量的采集中,在很短的時間內(nèi)對它進行6次采集,將它轉(zhuǎn)換為數(shù)字量后求和,分析出6次輸入中的最大值和最小值,然后減去最大值和最小值,除以4得到平均值的方法,完
57、成一次數(shù)據(jù)采集的軟件濾波。用軟件代替硬件,從而省去了復雜的硬件,而且能夠取得好而精確的效果。 在一個采樣周期內(nèi),對信號X的N次測量值進行算術(shù)平均,作為時刻K的輸出x(k),即 其中N為采樣次數(shù),為第i次的采樣值。 顯然N越大,信號平滑度越高,靈敏度就會降低,但是本設(shè)計中需要較高的靈敏度,所以N取值不易過大,這里我選擇了N=6,選擇取6個數(shù)進行計算的原因,就是因為在匯編中做計算是非常麻煩的,取6個數(shù),減去最大值和最小值后,取平均值是除4,計算機的內(nèi)部計算都是二進制,而二進制每除一個2,實際上是向右移一次。所以為了計算方便,我選擇取6個數(shù),最后在算除法的時候,只需要用單片機自帶的右移位命
58、令移2次就行了。 4.3主程序流程圖 圖4-1主程序流程圖 圖4-1主程序流程圖 4.4主要子程序模塊設(shè)計 4.4.1 初始化子程序 ADPORT EQU 7FF8H ;ADC0809通道0地址 EQU 20H ;靈敏度存放在20H EQU 21H ; 基準電壓存放在21H U EQU 22H;差值存放在22H ORG 0000H;主程序起始地址 LJMP MAIN; 轉(zhuǎn)主程序 ORG 0013H ;中斷服務(wù)程序入口 LJMP ; 轉(zhuǎn)NITI中斷服務(wù)程序 ORG 0020H MAN
59、I : MOV SP ,#60 ;設(shè)置堆棧指針 MOV 20H ,#N ;放入靈敏度值(設(shè)靈敏度值為N) Mov ,#FFH ;R7=11111111,初始化讀數(shù)標志 MOV 2IH ,00H ;2IH單元清零 MOV 22H ,00H; 22H單元清零 Mov ,#3OH ;為緩沖區(qū)數(shù)據(jù)地址指針,送數(shù)據(jù)緩沖區(qū)首址 RET 4.4.2 中斷服務(wù)程序 AD:SETB ;當ADC0809的EOC輸出電平上跳沿觸發(fā)中斷1 SETB EA ;打開總中斷開關(guān)(片內(nèi)中斷允許寄存器IE7=EA) SETB ;允許外中斷1中斷 MOV DPTR ,#ADPORT
60、;數(shù)據(jù)指針指向通道頂0通道 MOV A , #00H; MOV ,A; MOVX @DPTR ,A ; 啟動A/D轉(zhuǎn)換 CJNE R7 ,#00H; LOOP :NOP AJMP LOOP; ORG 2100H;中斷服務(wù)程序入口 NITI : PUSH PSW PUSH A PUSH DPL; PUSH DPH; MOV DPTR ,#7FF8H ; 數(shù)據(jù)指針指向通道 MOVX A,@DPTR; 把該通道的A/D轉(zhuǎn)換結(jié)果讀到累加器A中 MOVR ,A ;將A/D結(jié)果存入 LCALL FILTER ;調(diào)用數(shù)字濾波程序 MOV
61、A , #00H: MOVX @DPTR ,A ;再次啟動A/D轉(zhuǎn)換 MOV R7 ,#00H ; 置讀數(shù)標志 POP DPH ; POP DPL ; POP A ; POP PSW ; RETI ;中斷返回 4.4.3 數(shù)字濾波程序設(shè)計 設(shè)一個采樣周期,對通道0連續(xù)采樣6次,然后去掉最大和最小值,把剩余的累加和求算術(shù)平均值作為本周期采樣值。存入內(nèi)部RAM以30H為首址的數(shù)據(jù)存儲器中。其中,寄存器存放最大值,寄存器存放最小值,寄存器存放累加和,存放連續(xù)采樣次數(shù)。 (1) 程序框圖 圖 4-2 數(shù)字濾波程序流程圖 (2)程序清單 FILTER : CL
62、R A ; 、清0 MOV , A ; MOV , A ; MOV , #3FH ; 置最小值初態(tài) MOV , #30H ; 置數(shù)據(jù)區(qū)首地址 MOV , #06H ; 置連續(xù)采樣次數(shù)N= 6 DAV1:ADD A , ; 累加輸入值 MOV ,A ; 累加和輸入 CLR C 清進位標志 MOV A, ;取最大值 SBBB A , ; 最大值一輸入值 JNC DAV2 ; 輸入值>()? MOV A , ; MOV ,A ; 更新最大值 DAV2:CLRC MOV A , ; ?。?D結(jié)果 SBBB A ,
63、 ; 與最小值比較 JNC DAV3 ;判斷輸入值<()?(若C=0,輸入值)>(),則轉(zhuǎn)到DAV3) MOV A , ; MOV , A;更新最小值 DAV3:DJNZ , DAV1 ; 判斷N-1=0?(若輸入值介于最大、最小值間,且-1≠0時轉(zhuǎn)至DAV1) CLR C MOV A,R4; SBBB A, ;N個數(shù)減去最大最小 CLR C CLR A RRC A MOVX @ ,A;將算術(shù)平均值存入以30H為首址的RAM緩沖單元中 INC R ;修改數(shù)據(jù)區(qū)指針 RET 4.4.4 發(fā)光與報警模塊 DI
64、SPLAY: SETB P1.0 LCALL DELAY CLR P1.0 AJAMP DISPLAY ALARM: SETB P1.6 LCALL DELAY DELAY: MOV ,#FFH D1: MOV ,#FFH D2: DJNZ ,D2 DJNZ ,DI REN END 4.4.5 LED顯示程序 1.多字節(jié)傳送方式 當命令字節(jié)為BE或BF時,DS 1302工作在多字節(jié)傳送模式,8個時鐘/日歷寄存器從寄存器0地址開始連續(xù)讀寫,從0位開始的數(shù)據(jù)。當命令字節(jié)為FE或FF時,DS1302工作在多字節(jié)RAM傳送模式,31個
65、RAM寄存器從。地址開始連續(xù)讀寫從。位開始的數(shù)據(jù)。 例如:寫入00年、6月21口、星期三、13時、59分、59秒,程序設(shè)置如下: Write Multiplebyte: MOV Command, #OBEh ;命令字節(jié)為BEh MOV ByteCnt, #8 ;多字節(jié)寫入模式(此模塊為8個) MOV R0, #XmtDat ;數(shù)據(jù)地址覆給R0 MOV XmtDat, #59h;秒單元內(nèi)容為59h MOV XmtDat+1,#59h ;分單元內(nèi)容為59h MOV XmtDat+2,#13h ;時單元內(nèi)容為13h
66、MOV XmtDat+3,#21h;日期單元內(nèi)容為21h MOV XmtDat+4, #06h;月單元內(nèi)容為06h MOV XmtDat+5,#03h;星期單元內(nèi)容為03h MOV XmtDat+6,#0;年單元內(nèi)容為00h MOV XmtDat+7, #0;寫保護單元內(nèi)容為00h ACALL Send ,Byte;調(diào)用寫入數(shù)據(jù)子程序 RET ;返回調(diào)用本子程序處 讀出寄存器0~7的內(nèi)容,程序設(shè)置如下: Read_Multiplebyte: MOV Command,#08Fh;命令字節(jié)為8Fh MOV ByteCnt, #8;多字節(jié)讀出模式(此模塊為8個) MOV R1,#RcvDat;數(shù)據(jù)地址覆給R1 ACALI. Receive Byte;調(diào)用讀出數(shù)據(jù)子程序 RET;返回調(diào)用本子程序處 以上程序調(diào)用了基本數(shù)據(jù)接收(Receive Byte)模塊及一些內(nèi)存中元定義,下面的程序亦使用了這個模塊。 為了使LED顯示的比較均勻,又有足夠的亮度,需要設(shè)置適
- 溫馨提示:
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)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識競賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識測試題庫及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習題含答案
- 2煤礦安全監(jiān)測工種技術(shù)比武題庫含解析
- 1 礦山應(yīng)急救援安全知識競賽試題
- 1 礦井泵工考試練習題含答案
- 2煤礦爆破工考試復習題含答案
- 1 各種煤礦安全考試試題含答案