基于單片機的多路數(shù)據(jù)采集系統(tǒng)設(shè)計(附源程序及原理圖)_第1頁
基于單片機的多路數(shù)據(jù)采集系統(tǒng)設(shè)計(附源程序及原理圖)_第2頁
基于單片機的多路數(shù)據(jù)采集系統(tǒng)設(shè)計(附源程序及原理圖)_第3頁
基于單片機的多路數(shù)據(jù)采集系統(tǒng)設(shè)計(附源程序及原理圖)_第4頁
基于單片機的多路數(shù)據(jù)采集系統(tǒng)設(shè)計(附源程序及原理圖)_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

中北大學(xué)信息商務(wù)學(xué)院本科生畢業(yè)論文PAGEV基于單片機的多路數(shù)據(jù)采集系統(tǒng)設(shè)計TheDesignOfMulti-channelDataAcquisitionSystemBasedOnSCM摘要本文介紹了基于單片機的數(shù)據(jù)采集的硬件設(shè)計和軟件設(shè)計,數(shù)據(jù)采集系統(tǒng)是模擬域與數(shù)字域之間必不可少的紐帶,它的存在具有著非常重要的作用。本文介紹的重點是數(shù)據(jù)采集系統(tǒng),而該系統(tǒng)硬件部分的重心在于單片機。數(shù)據(jù)采集與通信控制采用了模塊化的設(shè)計,數(shù)據(jù)采集與通信控制采用了單片機AT89S52來實現(xiàn),硬件部分是以單片機為核心,還包括A/D模數(shù)轉(zhuǎn)換模塊,顯示模塊,和串行接口部分。該系統(tǒng)從機負(fù)責(zé)數(shù)據(jù)采集并應(yīng)答主機的命令。8路被測電壓通過模數(shù)轉(zhuǎn)換器ADC0809進(jìn)行模數(shù)轉(zhuǎn)換,實現(xiàn)對采集到的數(shù)據(jù)進(jìn)行模擬量到數(shù)字量的轉(zhuǎn)換,并將轉(zhuǎn)換后的數(shù)據(jù)通過串行口MAX232傳輸?shù)缴衔粰C,由上位機負(fù)責(zé)數(shù)據(jù)的接受、處理和顯示,并用LED數(shù)碼顯示器來顯示所采集的結(jié)果。軟件部分應(yīng)用VC++編寫控制軟件,對數(shù)據(jù)采集系統(tǒng)、模數(shù)轉(zhuǎn)換系統(tǒng)、數(shù)據(jù)顯示、數(shù)據(jù)通信等程序進(jìn)行了設(shè)計。關(guān)鍵詞:數(shù)據(jù)采集89C52單片機ADC0809MAX232AbstractThisarticledescribesthehardwaredesignandsoftwaredesignofthedataonwhichbasedonsignal-chipmicrocomputer.Thedatacollectionsystemisthelinkbetweenthedigitaldomainandanalogdomain.Ithasanveryimportantfunction.Theintroductivepointofthistextisadatatocollectthesystem.Thehardwareofthesystemfocusesonsignal-chipmicrocomputer.Datacollectionandcommunicationcontrolusemodulardesign.Thedatacollectedtocontrolwithcorrespondencetoadoptamachine8051tocarryout.Thepartofhardware’scoreisAT89S52,isalsoincludesA/Dconversionmodule,displaymodule,andtheserialinterface.Slavemachineisresponsiblefordataacquisitionandansweringthehostmachine.8roadsweremeasuredtheelectricvoltagetopasstheingeneralusemold-fewconversionofADC0809,therealizationcarriesontheconversionthatimitatestomeasurethenumeraltomeasuretowardsthedatathatcollect.ThensendthedatatothehostmachinethroughMAX232.thehostmachineisresponsiblefordataanddisplay,LEDdigitaldisplayisresponsibledisplaythedata.ThesoftwareispartlyprogrammedwithVC++.Thesoftwarecanrealizethefunctionofmonitoringandcontrollingthewholesystem.Itdesignsmuchprogramlikedata-acquisitiontreatment,data-displayanddata-communicationect.Keyword:dataacquisitionAT89C52ADC0809MAX232目錄第一章緒論 11.1研究背景及其目的意義 11.2國內(nèi)外研究現(xiàn)狀 21.3該課題研究的主要內(nèi)容內(nèi)容 2第二章數(shù)據(jù)采集 42.1數(shù)據(jù)采集系統(tǒng) 42.2方案論證 52.2.1A/D模數(shù)轉(zhuǎn)換的選擇 52.2.2單片機的選擇 52.2.3串行口的選擇 52.2.4顯示部分 62.2.5按鍵 6第三章硬件部分 83.1主機部分 83.1.1主機部分原理圖設(shè)計 83.1.2單片機 93.2從機部分 133.2.1從機的電路原理圖設(shè)計 133.2.2單片機之間的通信 143.2.3模數(shù)轉(zhuǎn)換器ADC0809 18第四章軟件部分 224.1簡介KeilUvision2 224.2主機程序設(shè)計 264.3從機部分程序設(shè)計 30第五章調(diào)試結(jié)果 33總結(jié) 34致謝 35參考文獻(xiàn) 36附錄1 37附錄2 38PAGE30第一章緒論1.1研究背景及其目的意義近年來,數(shù)據(jù)采集及其應(yīng)用受到了人們越來越廣泛的關(guān)注,數(shù)據(jù)采集系統(tǒng)也有了迅速的發(fā)展,它可以廣泛的應(yīng)用于各種領(lǐng)域。數(shù)據(jù)采集系統(tǒng)起始于20世紀(jì)50年代,1956年美國首先研究了用在軍事上的測試系統(tǒng),目標(biāo)是測試中不依靠相關(guān)的測試文件,由非成熟人員進(jìn)行操作,并且測試任務(wù)是由測試設(shè)備高速自動控制完成的。由于該種數(shù)據(jù)采集測試系統(tǒng)具有高速性和一定的靈活性,可以滿足眾多傳統(tǒng)方法不能完成的數(shù)據(jù)采集和測試任務(wù),因而得到了初步的認(rèn)可。大概在60年代后期,國內(nèi)外就有成套的數(shù)據(jù)采集設(shè)備和系統(tǒng)多屬于專用的系統(tǒng)。[11]20世紀(jì)70年代后期,隨著微型機的發(fā)展,誕生了采集器、儀表同計算機溶為一體的數(shù)據(jù)采集系統(tǒng)。由于這種數(shù)據(jù)采集系統(tǒng)的性能優(yōu)良,超過了傳統(tǒng)的自動檢測儀表和專用數(shù)據(jù)采集系統(tǒng),因而獲得了驚人的發(fā)展。從70年代起,數(shù)據(jù)采集系統(tǒng)發(fā)展過程中逐漸分為兩類,一類是實驗室數(shù)據(jù)采集系統(tǒng),一類是工業(yè)現(xiàn)場數(shù)據(jù)采集系統(tǒng)。[11]20世紀(jì)80年代隨著計算機的普及應(yīng)用,數(shù)據(jù)采集系統(tǒng)得到了很大的發(fā)展,開始出現(xiàn)了通用的數(shù)據(jù)采集與自動測試系統(tǒng)。該階段的數(shù)據(jù)采集系統(tǒng)主要有兩類,一類以儀表儀器和采集器、通用接口總線和計算機組成。這類系統(tǒng)主要應(yīng)用于實驗室,在工業(yè)生產(chǎn)現(xiàn)場也有一定的應(yīng)用。第二類以數(shù)據(jù)采集卡、標(biāo)準(zhǔn)總線和計算機構(gòu)成,這一類在工業(yè)現(xiàn)場應(yīng)用較多。20世紀(jì)80年代后期,數(shù)據(jù)采集發(fā)生了很大的變化,工業(yè)計算機、單片機和大規(guī)模集成電路的組合,用軟件管理,是系統(tǒng)的成本減低,體積變小,功能成倍增加,數(shù)據(jù)處理能力大大加強。[11]20世紀(jì)90年代至今,在國際上技術(shù)先進(jìn)的國家,數(shù)據(jù)采集系統(tǒng)已成功的運用到軍事、航空電子設(shè)備及宇航技術(shù)、工業(yè)等領(lǐng)域。由于集成電路制造技術(shù)的不斷提高,出現(xiàn)了高性能、高可靠的單片機數(shù)據(jù)采集系統(tǒng)(DAS)。數(shù)據(jù)采集技術(shù)已經(jīng)成為一種專門的技術(shù),在工業(yè)領(lǐng)域得到了廣泛的應(yīng)用。該階段的數(shù)據(jù)采集系統(tǒng)采用模塊式結(jié)構(gòu),根據(jù)不同的應(yīng)用要求,通過簡單的增加和更改模塊,并結(jié)合系統(tǒng)編程,就可擴(kuò)展或修改系統(tǒng),迅速組成一個新的系統(tǒng)。[11]盡管現(xiàn)在以微機為核心的可編程數(shù)據(jù)采集與處理采集技術(shù)的發(fā)展方向得到了迅速的發(fā)展,而且組成一個數(shù)據(jù)采集系統(tǒng)只需要一塊數(shù)據(jù)采集卡,把它插在微機的擴(kuò)展槽內(nèi)并輔以應(yīng)用軟件,就能實現(xiàn)數(shù)據(jù)采集功能,但這并不會對基于單片機為核心的數(shù)據(jù)采集系統(tǒng)產(chǎn)生影響。相較于數(shù)據(jù)采集板卡成本和功能的限制,單片機具多功能、高效率、高性能、低電壓、低功耗、低價格等優(yōu)點,而雙單片機又具有精度較高、轉(zhuǎn)換速度快、能夠?qū)Χ帱c同時進(jìn)行采集,因此能夠開發(fā)出能滿足實際應(yīng)用要求的、電路結(jié)構(gòu)簡單的、可靠性高的數(shù)據(jù)采集系統(tǒng)。這就使得以單片機為核心的數(shù)據(jù)采集系統(tǒng)在許多領(lǐng)域得到了廣泛的應(yīng)用。1.2國內(nèi)外研究現(xiàn)狀數(shù)據(jù)采集系統(tǒng)是通過采集傳感器輸出的模擬信號并轉(zhuǎn)換成數(shù)字信號,并進(jìn)行分析、處理、傳輸、顯示、存儲和顯示。它起始于20世紀(jì)中期,在過去的幾十年里,隨著信息領(lǐng)域各種技術(shù)的發(fā)展,在數(shù)據(jù)采集方面的技術(shù)也取得了長足的進(jìn)步,采集數(shù)據(jù)的信息化是目前社會的發(fā)展主流方向。各種領(lǐng)域都用到了數(shù)據(jù)采集,在石油勘探、科學(xué)實驗、飛機飛行、地震數(shù)據(jù)采集領(lǐng)域已經(jīng)得到應(yīng)用。我國的數(shù)字地震觀測系統(tǒng)主要采用TDE-124C型TDE-224C型地震數(shù)據(jù)采集系統(tǒng)。近年來,又成功研制了動態(tài)范圍更大、線性度更高、兼容性更強、低功耗可靠性的TDE-324C型地震數(shù)據(jù)采集系統(tǒng)。該數(shù)據(jù)采集對拾震計輸出的電信號模擬放大后送至A/D數(shù)字化,A/D采用同時采樣,采樣數(shù)據(jù)經(jīng)DSP數(shù)字濾波處理后,變成數(shù)字地震信號。該數(shù)據(jù)采集系統(tǒng)具備24位A/D轉(zhuǎn)化位數(shù),采樣率有50HZ、100HZ、200HZ。[11]由美國PASCO公司生產(chǎn)的“科學(xué)工作室”是將數(shù)據(jù)采集應(yīng)用于物理實驗的嶄新系統(tǒng),它由3部分組成:(1)傳感器:利用先進(jìn)的傳感技術(shù)可實時采集技術(shù)可實時采集物理實驗中各物理量的數(shù)據(jù);(2)計算機接口:將來自傳感器的數(shù)據(jù)信號輸入計算機,采樣速率最高為25萬次/S;(3)軟件:中文及英文的應(yīng)用軟件。[11]受需求牽引,新一代機載數(shù)據(jù)采集系統(tǒng)為滿足飛行實驗應(yīng)用也在快速地發(fā)展。如愛爾蘭ACRA公司2000年研發(fā)推出的新一代KAM500機載數(shù)據(jù)采集系統(tǒng)到了2006年。本系統(tǒng)采用16位(A/D)模擬數(shù)字變換,總采樣率達(dá)500K/S,同步時間為+/-250ns,可以利用方式組成高達(dá)1000通道的大容量的分布式采集系統(tǒng)。1.3該課題研究的主要內(nèi)容內(nèi)容數(shù)據(jù)采集技術(shù)是信息科學(xué)的重要分支之一,它研究信息數(shù)據(jù)的采集、存儲、處理以及控制等問題。它是對傳感器信號的測量與處理,以微型計算機等高技術(shù)為基礎(chǔ)而形成的一門綜合應(yīng)用技術(shù)。數(shù)據(jù)采集也是從一個或多個信號獲取對象信息的過程。隨著微型計算機技術(shù)的飛速發(fā)展和普及,數(shù)據(jù)采集監(jiān)測已成為日益重要的檢測技術(shù),廣泛應(yīng)用于工農(nóng)業(yè)等需要同時監(jiān)控溫度、濕度和壓力等場合。數(shù)據(jù)采集是工業(yè)控制等系統(tǒng)中的重要環(huán)節(jié),通常采用一些功能相對獨立的單片機系統(tǒng)來實現(xiàn),作為測控系統(tǒng)不可缺少的部分,數(shù)據(jù)采集的性能特點直接影響到整個系統(tǒng)。盡管現(xiàn)在以微機為核心的可編程數(shù)據(jù)采集與處理技術(shù)作為數(shù)據(jù)采集技術(shù)的發(fā)展方向得到了迅速的發(fā)展,并且適于通用微機(如IBMPC系列)使用的板卡級數(shù)據(jù)采集產(chǎn)品也已大量出現(xiàn),組成一個數(shù)據(jù)采集系統(tǒng)簡單到只需要一塊數(shù)據(jù)采集卡,把它插在微機的擴(kuò)展槽內(nèi),并輔以應(yīng)用軟件,就能實現(xiàn)數(shù)據(jù)采集功能,但這并不會對基于單片機為核心的數(shù)據(jù)采集系統(tǒng)產(chǎn)生影響,因為單片機功能強大、抗干擾能力強、可靠性高、靈活性好、開發(fā)容易等優(yōu)點,使得基于單片機為核心的數(shù)據(jù)采集系統(tǒng)在許多領(lǐng)域得到了廣泛的應(yīng)用.傳統(tǒng)的基于單片機的數(shù)據(jù)采集系統(tǒng)由于沒有上位機的支持,不管采用什么樣的數(shù)據(jù)存儲器,它的存儲容量都是有限的,所以不得不對存儲的歷史數(shù)據(jù)進(jìn)行覆蓋刷新,這樣不利于用戶對數(shù)據(jù)進(jìn)行整體分析,因而也不能對生產(chǎn)過程的狀況進(jìn)行準(zhǔn)確的把握。本系統(tǒng)采用下位機負(fù)責(zé)模擬數(shù)據(jù)的采集,從單片機負(fù)責(zé)采集八路數(shù)據(jù),并應(yīng)答主機發(fā)送的命令,上位機即主機是負(fù)責(zé)處理接受過來的數(shù)字量的處理及顯示,主機和從機之間用RS-232進(jìn)行通信。這樣用戶可以在上位機上編寫各種程序?qū)ξ募械臄?shù)據(jù)進(jìn)行有效查詢和分析,有利于工業(yè)過程的長期正常運行和檢查。該系統(tǒng)采用的是AT89S52單片機,此芯片功能比較強大,能夠滿足設(shè)計要求。第二章數(shù)據(jù)采集2.1數(shù)據(jù)采集系統(tǒng)數(shù)據(jù)采集,又稱數(shù)據(jù)獲取,是利用一種裝置,從系統(tǒng)外部采集數(shù)據(jù)并輸入到系統(tǒng)內(nèi)部的一個接口。數(shù)據(jù)采集技術(shù)廣泛引用在各個領(lǐng)域。70年代初,隨著計算機技術(shù)及大規(guī)模集成電路的發(fā)展,特別是微處理器及高速A/D轉(zhuǎn)換器的出現(xiàn),數(shù)據(jù)采集系統(tǒng)結(jié)構(gòu)發(fā)生了重大變革。原來由小規(guī)模集成的數(shù)字邏輯電路及硬件程序控制器組成的采集系統(tǒng)被微處理器控制的采集系統(tǒng)所代替。由微處理器去完成程序控制,數(shù)據(jù)處理及大部分邏輯操作,使系統(tǒng)的靈活性和可靠性大大地提高,系統(tǒng)硬件成本和系統(tǒng)的重建費用大大地降低。在該系統(tǒng)中需要將模擬量轉(zhuǎn)換為數(shù)據(jù)量,而A/D是將模擬量轉(zhuǎn)換為數(shù)字量的器件,他需要考慮的指標(biāo)有:分辨率、轉(zhuǎn)換時間、轉(zhuǎn)換誤差等等。而單片機是該系統(tǒng)的基本的微處理系統(tǒng),它完成數(shù)據(jù)讀取、處理及邏輯控制,數(shù)據(jù)傳輸?shù)纫幌盗械娜蝿?wù)。在該系統(tǒng)中采用的是8051系列的單片機。雙機通信的串行口可以采用RS232C標(biāo)準(zhǔn)接口,由芯片MAX232實現(xiàn)雙機的通信。而數(shù)據(jù)的顯示則采用的是LED數(shù)碼管,該器件比較簡單,在生活中接觸也較多。數(shù)據(jù)采集系統(tǒng)一般由信號調(diào)理電路,多路切換電路,采樣保持電路,A/D,單片機等組成。完成畢業(yè)設(shè)計所需要的系統(tǒng)框圖如圖2.1所示:A/D轉(zhuǎn)換器A/D轉(zhuǎn)換器單片機單片機LED顯示器鍵盤MAX232采集信號圖2.1系統(tǒng)框圖2.2方案論證2.2.1A/D模數(shù)轉(zhuǎn)換的選擇A/D轉(zhuǎn)換器的種類很多,就位數(shù)來說,可以分為8位、10位、12位和16位等。位數(shù)越高其分辨率就越高,價格也就越貴。A/D轉(zhuǎn)換器型號很多,而其轉(zhuǎn)換時間和轉(zhuǎn)換誤差也各不相同。(1)逐漸逼近式A/D轉(zhuǎn)換器:它是一種速度快、精度較高、成本較低的直接式轉(zhuǎn)換器,其轉(zhuǎn)換時間在幾微秒到幾百微秒之間。(2)雙積分A/D轉(zhuǎn)換器:它是一種間接式的A/D轉(zhuǎn)換器,優(yōu)點是抗干擾能力強,精度比較高,缺點是數(shù)度很慢,適用于對轉(zhuǎn)換數(shù)度要求不高的系統(tǒng)。(3)并行式A/D轉(zhuǎn)換器:它又被稱為flash(快速)型,它的轉(zhuǎn)換數(shù)度很高,但她采用了很多個比較器,而n位的轉(zhuǎn)換就需要2n-1個比較器,因此電路規(guī)模也極大,價格也很貴,只適用于視頻A/D轉(zhuǎn)換器等數(shù)度特別高的領(lǐng)域。鑒于上面三種方案,在價格、轉(zhuǎn)換速度等多種標(biāo)準(zhǔn)考量下,在本設(shè)計選用的是逐漸逼近式A/D轉(zhuǎn)換器——ADC080單片機的選擇單片機是一種面向大規(guī)模的集成電路芯片,是微型計算機中的一個重要的分支。此系統(tǒng)是由CPU、隨即存取數(shù)據(jù)存儲器、只讀程序存儲器、輸入輸出電路(I/O口),還有可能包括定時/計數(shù)器、串行通信口、顯示驅(qū)動電路(LCD和LED驅(qū)動電路)、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器及A/D轉(zhuǎn)換器等電路集成到一個單塊芯片上,構(gòu)成了一個最小但完善的計算機任務(wù)。單片機要使用特定的組譯和編譯軟件編譯程序,在用keiluvision2把程序下載到單片機內(nèi)。而本設(shè)計選用的是AT89C串行口的選擇該串行口我選用了標(biāo)準(zhǔn)RS-232C接口,它是電平與TTL電平轉(zhuǎn)換驅(qū)動電路。常用的芯片是MAX232,MAX232的優(yōu)點是:(1)一片芯片可以完成發(fā)送轉(zhuǎn)換和接收轉(zhuǎn)換的雙重功能。(2)單一電源+5V供電(3)它的電路設(shè)計與連接比較簡單而且功能齊全。2.2.4顯示部分LED數(shù)碼顯示管是一種由LED發(fā)光二極管組合顯示字符的顯示器件。它使用了8個LED顯示管,其中7個用于顯示字符,1個用來顯示小數(shù)點,故通常稱之為八段發(fā)光二極管數(shù)碼顯示器。對LED數(shù)碼顯示器的控制可以采用按時間向它提供具有一定驅(qū)動能力的位選和段選信號。LED數(shù)碼顯示有動態(tài)掃描顯示法和靜態(tài)顯示。在單片機中,為了節(jié)省硬件資源,多采用動態(tài)掃描顯示法。2.2.5按鍵鍵盤是一種常見的輸入設(shè)備,用戶可以向計算機輸入數(shù)據(jù)或命令。根據(jù)案件的識別方法分類,有編碼鍵盤和非編碼鍵盤兩種。通過硬件識別的鍵盤稱編碼鍵盤;通過軟件識別的鍵盤成為非編碼鍵盤。非編碼鍵盤有兩種接口方法:一種是獨立按鍵接口;另一種是矩陣式按鍵接口。1、獨立按鍵接口在單片機中,如果所需的按鍵較少,可采用獨立式鍵盤。每只按鍵接單片機的一條I/O線,通過對線的查詢,即可識別各按鍵的狀態(tài)。如圖2.2所示。4只按鍵分別宇單片機的P1.0~P1.3I/O線上。無按鍵按下時,P1.0~P1.3線上均輸入高電平。當(dāng)某按鍵按下時,與其相連的I/O線將得到低電平輸入。圖2.2獨立按鍵接口圖2.矩陣式按鍵接口在單片機中需要的按鍵較多時,通常把鍵排成矩陣形式,這樣可以節(jié)省硬件資源。如對于20只按鍵接口,如采用按鍵獨立方式,需要20個I/O口。如采用矩陣式按鍵方式,則只需要9個I/O口。如圖2.3所示。單片機系統(tǒng)中的非編碼式鍵盤程序主要由判別是否有鍵按下子程序、鍵的識別子程序、找到閉合鍵后,讀入相應(yīng)的鍵值,再轉(zhuǎn)到相應(yīng)的鍵處理程序幾個部分組成。圖2.3矩陣式按鍵接口圖在該系統(tǒng)中所用到的按鍵有9個,所以采取矩陣式按鍵接口方式。第三章硬件部分3.1主機部分該系統(tǒng)是一個主從式多路數(shù)據(jù)采集系統(tǒng),主機和從機均用單片機實現(xiàn),它的主機部分負(fù)責(zé)數(shù)據(jù)處理和顯示,主機和從機之間用RS-232進(jìn)行通信。它由AT89S52、MAX232、LED數(shù)碼顯示器組成。3.1.1主機部分原理圖設(shè)計由于主機要對從機有一個命令,所以用到按鍵,將按鍵接到單片機AT89C52的P3.4的端口上,按鍵的一端接地,當(dāng)P3.4這條I/O線是一個低電平時,則表示按鍵按下。主機還要負(fù)責(zé)對采集到的數(shù)據(jù)進(jìn)行處理和LED顯示,用兩個74HC573,一個與單片機AT89C52的P2.7口相連用于位選,一個與單片機AT89C52的P2.6口相連用于段選。單片機的P0口的8位數(shù)據(jù)線與用于段選的74HC573的D0~D7相連,用于數(shù)碼管上具體的數(shù)字的顯示。單片機P0口的八位數(shù)據(jù)線與用于位選的74HC573的D0~D7相連,用于在哪個數(shù)碼管上顯示。主機跟從機的連接,又涉及到一個串行口雙機通信的問題,根據(jù)單片機雙機通信距離、抗干擾性等要求,選擇RS-232C串行接口方法,選擇串行口MAX232來連接主機和從機,將MAX232的11、12腳分別與單片機AT89C52的P3.1,P3.2腳相連,再將MAX232上的13、14腳分別與db-9的3、6腳相連。單片機AT89C52的18、19腳與它的晶振電路相連,第9腳與它的復(fù)位電路相連。其原理圖如圖3.1所示圖3.1主機部分電路原理圖3.1.2單片機(1)單片機的概述單片機是一種集成的電路芯塊采用了超大規(guī)模技術(shù)把具有運算能力(如算術(shù)運算、邏輯運算、數(shù)據(jù)傳送、中斷處理)的微處理器(CPU),隨機存取數(shù)據(jù)存儲器(RAM),只讀程序存儲器(ROM),輸入輸出電路(I/O口),可能還包括定時計數(shù)器,串行通信口(SCI),顯示驅(qū)動電路(LCD或LED驅(qū)動電路),脈寬調(diào)制電路(PWM),模擬多路轉(zhuǎn)換及A/D轉(zhuǎn)換器等電路集成到一塊單片機上,構(gòu)成一個最小然而很完善的計算機系統(tǒng)。這些電路能在軟件的控制下準(zhǔn)確快速的完成程序設(shè)計者事先規(guī)定的任務(wù)。總的而言單片機的特點可以歸納為以下幾個方面:集成度高、存儲容量大、外部擴(kuò)展能力強、控制功能強、低電壓、低功耗、性能價格比高、可靠性高這幾個方面。[8]單片機按內(nèi)部數(shù)據(jù)通道的寬度,可分為4位、8位、16位及32位單片機。它們被應(yīng)用在不同領(lǐng)域里,8位單片機由于功能強大,被廣泛的應(yīng)用在工業(yè)控制、智能接口、儀表儀器等各個領(lǐng)域。8位單片機在中、小規(guī)模應(yīng)用場合仍占主流地位,代表了單片機的發(fā)展方向,在單片機應(yīng)用領(lǐng)域發(fā)揮越來越大的作用。隨著移動通訊、網(wǎng)絡(luò)技術(shù)、多媒體技術(shù)等高科技產(chǎn)品進(jìn)入家庭,32位單片機應(yīng)用得到了長足發(fā)展??v觀單片機的發(fā)展過程,可以預(yù)示單片機的發(fā)展趨勢:微型單片化低功耗CMOS3、與多品種共存4、可靠性和應(yīng)用水平越來越高單片機有著微處理器所不具備的功能,它可以獨立地完成現(xiàn)代工業(yè)控制所要求的智能化控制功能這就是單片機的最大特點。然而單片機又不同于單板機,芯片在沒有開發(fā)前,它只是具備功能極強的超大規(guī)模集成電路,如果賦予它特定的程序,它便是一個最小的、完整的微機控制系統(tǒng)。它與單板機或個人電腦有著本質(zhì)的區(qū)別,單片機屬于芯片級應(yīng)用,需要用戶了解單片機芯片的結(jié)構(gòu)和指令系統(tǒng)以及其它集成電路應(yīng)用技術(shù)和系統(tǒng)設(shè)計所需要的理論和技術(shù),用這樣特定的芯片設(shè)計應(yīng)用程序,從而使芯片具備特定的智能。[8](2)簡介AT89C52AT89C52是一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲器。使用Atmel公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。[8]AT89S52具有以下標(biāo)準(zhǔn)功能:8k字節(jié)Flash,256字節(jié)RAM,32位I/O口線,看門狗定時器,2個數(shù)據(jù)指針,三個16位定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時鐘電路。另外,AT89S52可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機一切工作停止,直到下一個中斷或硬件復(fù)位為止。[8]其引腳圖,如圖3.2所示圖3.2AT89C52的引腳圖它一共有40個引腳,引腳又分為四類。其中有四個電源引腳,用來接入單片機的工作電源。工作電源又分主電源、備用電源和編程電源。還有兩個時鐘引腳XTAL1、XTAL2。還有由P0口、P1口、P2口、P3口的所有引腳構(gòu)成的單片機的輸入/輸出(I\O)引腳。最后一種是控制引腳,控制引腳有四條,部分引腳具有復(fù)位功能。綜上所述,單片機的引腳特點是:單片機多功能,少引腳,使得引腳復(fù)用現(xiàn)象較多。單片機具有四種總線形式:P0和P2組成的16位地址地址總線;P0分時復(fù)用為8位數(shù)據(jù)總線;ALE、PSEN、RST、EA和P3口的INT0、INT1、T0、T1、WR、RD以及P1口的T2、T2EX組成控制總線;而P3口的RXD、TXD組成串行通信總線。89C52單片機的主要功能與MCS-51單片機產(chǎn)品兼容8K字節(jié)在系統(tǒng)可編程Flash存儲器1000次擦寫周期全靜態(tài)操作:0Hz~33Hz三級加密程序存儲器32個可編程I/O口線三個16位定時器/計數(shù)器八個中斷源全雙工UART串行通道低功耗空閑和掉電模式掉電后中斷可喚醒看門狗定時器雙數(shù)據(jù)指針掉電標(biāo)識符3.1.3LED數(shù)碼顯示器的應(yīng)用原理簡單的講,LED數(shù)碼顯示器就是由發(fā)光二極管組成的,其內(nèi)部結(jié)構(gòu)如圖3.3所示,LED數(shù)碼顯示器有兩種連接方式:(1)共陰極接法:把發(fā)光二極管的陰極連在一起構(gòu)成公共陰極,使用時公共陰極接地。每個發(fā)光二極管的陽極與輸入端相連。如圖3.4所示(2)共陽極接法。把發(fā)光二極管的陽極連在一起構(gòu)成公共陽極,使用時公共陽極接+5V,每個發(fā)光二極管的陰極通過電阻與輸入端相連。如圖3.5所示圖3.2LED內(nèi)部結(jié)構(gòu)圖3.3共陰極接法圖3.4共陽極接法為了顯示字符,要為LED顯示器提供顯示段碼(或稱字形代碼),組成一個“8”字的七段,再加上1個小數(shù)點位,共計八段。各段位碼位的對應(yīng)關(guān)系如表3.1所示。[8]表3.1段位碼對應(yīng)關(guān)系段位碼D7D6D5D4D3D2D1D0位碼段dpgfedcba3.2從機部分該系統(tǒng)的從機負(fù)責(zé)A/D模數(shù)轉(zhuǎn)換,并應(yīng)答主機的命令,需要用到ADC0809、AT59C52,又由于它們兩個的時鐘頻率不一樣,所以又要用到一個74LS74。3.2.1從機的電路原理圖設(shè)計該部分需要對模擬量進(jìn)行一次模數(shù)轉(zhuǎn)換,則要用到一個ADC0809,又因為它們之間的時鐘頻率不一樣又需要用到一個74LS74對其進(jìn)行一個二分頻的工作,這個只需要將74LS74的第3根引腳與單片機AT89C52的第30根引腳相連,將74LS74的第9根引腳與ADC0809的時鐘信號引腳相連。單片機AT89C52的P0口與ADC0809的D0~D7相連,而ADC0809的ADDA、ADDB、ADDC分別與P0口的低三位相連。其用到的MAX232與主機部分的電路連接方法一樣。其電路圖如3.5所示圖3.5從機部分電路設(shè)計圖3.2.2單片機之間的通信(1)串口通信RS-232C計算機與計算機或計算機與終端之間的數(shù)據(jù)傳送可以采用串行通訊和并行通訊二種方式。由于串行通訊方式具有使用線路少、成本低,特別是在遠(yuǎn)程傳輸時,避免了多條線路特性的不一致而被廣泛采用。在串行通訊時,要求通訊雙方都采用一個標(biāo)準(zhǔn)接口,使不同的設(shè)備可以方便地連接起來進(jìn)行通訊。RS-232-C接口(又稱EIARS-232-C)是目前最常用的一種串行通訊接口。它是在1970年由美國電子工業(yè)協(xié)會(EIA)聯(lián)合貝爾系統(tǒng)、調(diào)制解調(diào)器廠家及計算機終端生產(chǎn)廠家共同制定的用于串行通訊的標(biāo)準(zhǔn)。它的全名是“數(shù)據(jù)終端設(shè)備(DTE)和數(shù)據(jù)通訊設(shè)備(DCE)之間串行二進(jìn)制數(shù)據(jù)交換接口技術(shù)標(biāo)準(zhǔn)”該標(biāo)準(zhǔn)規(guī)定采用一個25個腳的DB25連接器,對連接器的每個引腳的信號內(nèi)容加以規(guī)定,還對各種信號的電平加以規(guī)定。(1)接口的信號內(nèi)容實際上RS-232-C的25條引線中有許多是很少使用的,在計算機與終端通訊中一般只使用3-9條引線。RS-232-C最常用的9條引線的信號內(nèi)容。見表3.2所示(2)接口的電氣特性在RS-232-C中任何一條信號線的電壓均為負(fù)邏輯關(guān)系。即:邏輯“1”,-5—-15V;邏輯“0”+5—+15V。噪聲容量為2V。即要求接收器能識別低至+3V的信號作為邏輯“0”,高于—3V的信號作為邏輯“1”。表3.2常用引線的信號內(nèi)容引腳序號信號名稱符號流向功能2發(fā)送數(shù)據(jù)TXDDTE->DCEDTE發(fā)送串行數(shù)據(jù)3接收數(shù)據(jù)RXDDTE<-DCEDTE接收串行數(shù)據(jù)4請求發(fā)送RTSDTE->DCEDTE請求DCE將線路切換到發(fā)送方式5允許發(fā)送CTSDTE<-DCEDCE告訴DTE線路已接通可以發(fā)送數(shù)據(jù)6數(shù)據(jù)設(shè)備準(zhǔn)備好DSRDTE<-DCEDCE準(zhǔn)備好7信號地信號公共地8載波檢測DCDDTE<-DCE表示DCE接收到遠(yuǎn)程載波20數(shù)據(jù)終端準(zhǔn)備好DTRDTE->DCEDTE準(zhǔn)備好22振鈴指示RIDTE<-DCE表示DCE與線路接通,出現(xiàn)振鈴(3)接口的物理結(jié)構(gòu)RS-232C接口連接器一般使用型號為DB-25的25芯插頭座,通常插頭在DCE端,插座在DTE端。一些設(shè)備與PC機連接的RS-232-C接口,因為不使用對方的傳送控制信號,只需三條接口線,即“發(fā)送數(shù)據(jù)”、“接收數(shù)據(jù)”和“信號地”。所以采用DB-9的9芯插頭座,傳輸線采用屏蔽雙絞線。兩個DB-9的連接如圖3.6所示圖3.6兩個DB-9的連接圖(4)傳輸電纜長度由RS-232C標(biāo)準(zhǔn)規(guī)定在碼元畸變小于4%的情況下,傳輸電纜長度應(yīng)為50英尺,其實這個4%的碼元畸變是很保守的,在實際應(yīng)用中,約有99%的用戶是按碼元畸變10-20%的范圍工作的,所以實際使用中最大距離會遠(yuǎn)超過50英尺。(2)簡介MAX232MAX232芯片是美信公司專門為電腦的RS-232標(biāo)準(zhǔn)串口設(shè)計的接口電路,使用+5v單電源供電,可以實現(xiàn)TTL電平與RS-232C電平相互轉(zhuǎn)換的IC芯片。MAX內(nèi)部結(jié)構(gòu)圖如圖3.7所示圖3.7MAX232的內(nèi)部結(jié)構(gòu)圖內(nèi)部結(jié)構(gòu)基本可分三個部分:第一部分是電荷泵電路。由1、2、3、4、5、6腳和4只電容構(gòu)成。功能是產(chǎn)生+12v和-12v兩個電源,提供給RS-232串口電平的需要。第二部分是數(shù)據(jù)轉(zhuǎn)換通道。由7、8、9、10、11、12、13、14腳構(gòu)成兩個數(shù)據(jù)通道。其中13腳(R1IN)、12腳(R1OUT)、11腳(T1IN)、14腳(T1OUT)為第一數(shù)據(jù)通道。8腳(R2IN)、9腳(R2OUT)、10腳(T2IN)、7腳(T2OUT)為第二數(shù)據(jù)通道。TTL/CMOS數(shù)據(jù)從T1IN、T2IN輸入轉(zhuǎn)換成RS-232數(shù)據(jù)從T1OUT、T2OUT送到電腦DB9插頭;DB9插頭的RS-232數(shù)據(jù)從R1IN、R2IN輸入轉(zhuǎn)換成TTL/CMOS數(shù)據(jù)后從R1OUT、R2OUT輸出。第三部分是供電。15腳GND、16腳VCC(+5v)。引腳結(jié)構(gòu)圖如圖3.8所示:圖3.8MAX232的引腳結(jié)構(gòu)圖其中引腳1-6(C1+、V+、C1_、C2+、C2-、V-)用于電源電壓轉(zhuǎn)換,只要在外部接入相應(yīng)電解電容即可;引腳7-10和引腳11-14構(gòu)成兩組TTL信號電平與RS-232C信號電平的轉(zhuǎn)換電路,對應(yīng)引腳可直接與單片機串行口的TTL電平引腳和PC的RS-232C電平引腳相連。單片機與MAX232的連接如圖3.9所示圖3.9單片機與MAX232的連接圖3.2.3模數(shù)轉(zhuǎn)換器ADC0809在我們所測控的信號中軍事連續(xù)變化的物理量,而要對這些信號進(jìn)行處理,則需要將其轉(zhuǎn)換為數(shù)字量,A/D轉(zhuǎn)換器就是為了將連續(xù)變化的模擬量轉(zhuǎn)換成計算機能接受的數(shù)字量。按模擬量轉(zhuǎn)換成數(shù)字量的原理可以分為3種:雙積分式、逐次逼近式及并行式A/D轉(zhuǎn)換器。而該系統(tǒng)選用的是ADC0809,下面就具體的介紹一下ADC0809的工作原理。C0809的介紹ADC0809是八通道的八位逐次逼近式A/D轉(zhuǎn)換器。由單一的5V電源供電,片內(nèi)帶有鎖存功能的8選1的模擬開關(guān)。由C、B、A的編碼來決定所選的模擬通道。轉(zhuǎn)換時間為100us。轉(zhuǎn)換誤差為1/2LSB。它的引腳的排列及其功能,其引腳圖見3.10圖3.10ADC0809的引腳圖IN7~IN0:八個通道的模擬輸入量。ADDA、ADDB、ADDC:模擬通道地址線。當(dāng)CBA=000時,IN0輸入,當(dāng)CBA=111時,IN7輸入。ALE:地址鎖存信號。START:轉(zhuǎn)換啟動信號,高電平有效。D7~D0:數(shù)據(jù)輸出線。三態(tài)輸出,D7是最高位,D0是最低位。OE:輸出允許信號,高電平有效。CLK:時鐘信號,最高頻率為640KHZ。EOC:轉(zhuǎn)換結(jié)束狀態(tài)信號。上升沿后高電平有效。Vcc:+5V電源。Vref:參考電壓。2、ADC0809時序圖及其接口電路ADC0809的時序圖如圖3.11所示:圖3.11ADC0809的時序圖其工作過程是:ALE的上升沿將A、B、C端選擇的通道地址鎖存到8位A/D轉(zhuǎn)換器的輸入端。START的下降驗啟動8位A/D轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換。A/D轉(zhuǎn)換開始使EOC端輸出低電平。A/D轉(zhuǎn)換結(jié)束,EOC輸出高電平。該信號通??勺鳛橹袛嗌暾埿盘?。OE為讀出數(shù)據(jù)允許信號。OE端為高電平時,可以讀出轉(zhuǎn)換的數(shù)字量。硬件電路設(shè)計時,需根據(jù)時序關(guān)系及軟件進(jìn)行設(shè)計。ADC0809與AT89C52單片機的接口方式,如圖3.12所示:圖3.12ADC0809與單片機的連接圖由于ADC0809具有輸出3態(tài)鎖存器,其八位數(shù)據(jù)輸出引腳可直接與數(shù)據(jù)總線相連。地址譯碼引腳A、B、C分別與地址總線低三位A0、A1、A2相連,以選通IN0~IN7中的一個通道。在啟動A/D轉(zhuǎn)換時,由單片機的P3.4控制A/D轉(zhuǎn)換器的地址鎖存和轉(zhuǎn)換啟動,由于ALE和START連在一起,因此AD0809在鎖存通道的同時,也啟動了A/D轉(zhuǎn)換器。在讀取轉(zhuǎn)換結(jié)果時,用低電平的讀信號RD,產(chǎn)生的正脈沖作為OE信號,用以打開三態(tài)輸出鎖存器。將轉(zhuǎn)換結(jié)果輸出。而低電平的寫信號WR則表示轉(zhuǎn)換結(jié)束狀態(tài)信號。第四章軟件部分4.1簡介KeilUvision2Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(UVISION)將這些組合在一起。Keil有以下幾個特點:全功能的源代碼編輯器;器件庫用來配置開發(fā)工具設(shè)置;項目管理器用來創(chuàng)建和維護(hù)用戶的項目;集成的MAKE工具可以匯編、編譯和連接用戶嵌入式應(yīng)用;所有開發(fā)工具的設(shè)置都是對話框形式的;真正的源代碼級的對CPU和外圍器件的調(diào)試器;高級GDI(AGDI)接口用來在目標(biāo)硬件上進(jìn)行軟件調(diào)試以及和Monitor-51進(jìn)行通信其使用的過程為:首先打開KeilUvision2,在KEIL系統(tǒng)中,每做個獨立的程序,都視為工程。首先從菜單中的工程中“新建工程”,建立我們將要做的工程項目:接下來Keil環(huán)境要求我們?yōu)?2工程選擇一個單片機型號;我們選擇Ateml公司的89C51(雖然我使用的是AT89S52,但由于89S51與89C51內(nèi)外部的結(jié)構(gòu)完全一樣,所以這里仍然用“89C51”)?!按_定”后工程就算建立好了。立了工程項目以后現(xiàn)在就要為工程添加程序,點擊“文件”中的新建,新建一個空白文檔;這個空白文檔就是我們編寫單片機程序的場所。在這里可以進(jìn)行編輯、修改等操作。根據(jù)題意,在文檔中寫入代碼,寫完后再檢查一下,然后保存,然后再將保存好的文檔添加到工程中,具體做法如下:程序文件添加完畢后,對其進(jìn)行編譯當(dāng)前程序、編譯修改過的文件并生成應(yīng)用程序、重新編譯所有文件并生成應(yīng)用程序后,再點擊TARGET,則其頁面為:再點擊圖案上的Output鍵接下來就是點擊上圖中的selectfolderforobjects鍵,得到下圖將其產(chǎn)生的HEX文件存儲在E盤zh文件夾中。最后一步就是利用STC-ISP將HEX文件燒錄到單片機里。4.2主機程序設(shè)計本軟件系統(tǒng)有一個主程序,五個子程序,五個子程序分別為向串口發(fā)送數(shù)據(jù)子程序putc_to_serialport()、鍵盤掃描子程序Keys_Scan()、LED數(shù)據(jù)顯示子程序Display_Result(intd)、延時子程序Delay()、主機串口接受中斷子程序Serial_INT()interrupt4。(1)主程序主程序?qū)ο到y(tǒng)進(jìn)行初始化,主要是進(jìn)行定時/計數(shù)的初始化,然后調(diào)用鍵盤掃描程序Keys_Scan(),再根據(jù)按下的鍵來調(diào)用向串口發(fā)送數(shù)據(jù)子程序putc_to_serialport()將相應(yīng)的數(shù)據(jù)發(fā)送給串行口。當(dāng)沒有鍵按下時,則送一個數(shù)F給LED顯示器。其流程圖見圖4.1(2)向串口發(fā)送數(shù)據(jù)子程序putc_to_serialport()該程序首先將數(shù)據(jù)發(fā)送到串行口,當(dāng)T1=0時,表明傳送結(jié)束。其流程圖如4.2所示(3)鍵盤掃描子程序Keys_Scan()該程序是先將行選好,然后再選定列就可以確定到具體的哪一個按鍵。其流程圖如圖4.3所示(4)LED顯示程序Display_Result(intd)該子程序用的數(shù)碼管動態(tài)顯示方式。先將單片機的P2.7口選通進(jìn)行位選,然后將位選的值發(fā)送給單片機P1口。接著將單片機的P2.6口選通進(jìn)行段選,然后將要顯示的數(shù)字的值發(fā)送給P0口。然后調(diào)用延時,接著將P2.7、P2.6口置0,下面是重復(fù)上面的過程,直到要顯示的數(shù)字全部顯示在數(shù)碼上。其流程圖如4.4所示。(5)主機串口接受中斷子程序Serial_INT()interrupt4。當(dāng)RI=1時,接受串口過來的數(shù)據(jù),并對該數(shù)據(jù)進(jìn)行X*05H/0FFH的處理,接下來用處理過的數(shù)據(jù)調(diào)用LED顯示程序Display_Result(intd)。如圖4.4所示開始開始初始化啟動定時器1開中斷再根據(jù)掃描到的鍵盤號,發(fā)送相應(yīng)的數(shù)據(jù)給串口,調(diào)用一個Display()在LED上顯示F判斷是否有按鍵按下YN圖4.1主程序數(shù)據(jù)發(fā)送到串行口數(shù)據(jù)發(fā)送到串行口當(dāng)T1=0時,則傳送結(jié)束TI=0圖4.2向串口發(fā)送數(shù)據(jù)子程序putc_to_serialport()開始開始先將低4位置1選定4行然后判斷該按鍵發(fā)生在哪一列是否有按鍵按下YN將列數(shù)賦給KeyNoKeyNo=16將高4位置1選定4列再判斷發(fā)生在那一行0—3行分別附加起始值0,4,8,12返回圖4.3鍵盤掃描子程序Keys_Scan()開始開始顯示個位顯示十分位顯示百分位顯示小數(shù)點結(jié)束圖4.4LED顯示程序Display_Result(intd)開始開始接受數(shù)據(jù)對數(shù)據(jù)進(jìn)行相關(guān)處理調(diào)用Display_Result(m)圖4.5主機串口接受中斷子程序Serial_INT()interrupt44.3從機部分程序設(shè)計該部分的程序包括一個主程序、三個子程序,三個子程序分別為從機串口接受中斷函數(shù)Serial_INT()interrupt4、向串口發(fā)送數(shù)據(jù)子程序putc_to_SerialPort(ucharc)和模數(shù)轉(zhuǎn)換子程序ADCON。(1)主程序主程序是進(jìn)行系統(tǒng)的初始化,由于主從兩個單片機要進(jìn)行通信,所以兩個單片機的初始化應(yīng)該是相同的,并調(diào)用A/D轉(zhuǎn)換。其流程圖如圖4.6所示(2)從機串口接受中斷函數(shù)Serial_INT()interrupt4因為發(fā)送完成和接受到新字節(jié)都會觸發(fā)串口中斷,因此串口中斷程序里用if(RI)來表示接受中斷,然后將RI清0。再判斷接受到的數(shù)據(jù)第4位是否為1,如果為1,則按照主機發(fā)送過來的通道進(jìn)行采集,如果為0,則調(diào)用循環(huán)采集程序。如圖4.7所示(3)模數(shù)轉(zhuǎn)換子程序ADCON先要選通ADC0809,又因為ADC0809具有8個通道,利用For循環(huán)進(jìn)行8次采集,接下來選擇轉(zhuǎn)換通道,F(xiàn)8H~FFH用以選擇輸入模擬信號的通道IN0~IN7的選擇,首先從第一個通道開始,然后執(zhí)行一條讀取轉(zhuǎn)換結(jié)果的指令,再將轉(zhuǎn)換得到的結(jié)果送給串行口,再依次循環(huán),將通道號自增1,直到8個通道全部轉(zhuǎn)換完。其流程圖如圖4.8所示(4)向串口發(fā)送數(shù)據(jù)子程序putc_to_SerialPort(ucharc)程序首先將數(shù)據(jù)發(fā)送到串行口,當(dāng)T1=0時,表明傳送結(jié)束。如圖4.2所示開始開始初始化啟動定時器1開中斷調(diào)用Adcon()結(jié)束圖4.6主程序開始開始接收串口數(shù)據(jù)判斷接受到的數(shù)據(jù)第4位是否為1YN按選定的通道號采集選定循環(huán)采集方式結(jié)束圖4.7從機串口接受中斷函數(shù)Serial_INT()interrupt4開始開始選定通道號開始轉(zhuǎn)換轉(zhuǎn)換結(jié)束將得到的數(shù)據(jù)發(fā)送給串口結(jié)束圖4.8模數(shù)轉(zhuǎn)換子程序ADCON第五章調(diào)試結(jié)果這個系統(tǒng)是一個主從式的數(shù)據(jù)采集系統(tǒng)。系統(tǒng)調(diào)試以程序為主,硬件調(diào)試應(yīng)先檢測電路的焊接是否正確,然后用外用表檢測或通電檢測其是否有短路或斷路。軟件調(diào)試包括調(diào)試程序和對硬件準(zhǔn)確性的調(diào)試。在整個系統(tǒng)中,主機用到了9個按鍵,按鍵0按下后,發(fā)送一個00H的數(shù)據(jù)給從機,而從機接收到這個信號就開始調(diào)用一個循環(huán)采集方式,然后從機采集完數(shù)據(jù)后再將轉(zhuǎn)換好的數(shù)據(jù)和采集線路的通道號發(fā)送給主機并用LED數(shù)據(jù)顯示器顯示出來;按鍵1-8用于選擇采集方式,分別送相應(yīng)的采集線路的通道號給從機,然后再將從機轉(zhuǎn)換好的數(shù)據(jù)和采集線路的通道號發(fā)送給主機并用LED數(shù)據(jù)顯示器顯示出來;當(dāng)主機沒有按鍵按下時,則發(fā)送一個數(shù)0給LED。總結(jié)本設(shè)計主要完成了基于AT89S51單片機控制的數(shù)據(jù)采集系統(tǒng)的硬件電路設(shè)計以及相應(yīng)的軟件設(shè)計。本系統(tǒng)的硬件設(shè)計主要包括:多路轉(zhuǎn)換開關(guān)及前置放大電路的設(shè)計,采樣保持電路的設(shè)計,模數(shù)轉(zhuǎn)換電路的設(shè)計,數(shù)模轉(zhuǎn)換電路的設(shè)計。多路轉(zhuǎn)換開關(guān)及前置放大電路的設(shè)計中重點介紹了多路開關(guān)的選擇、AD521放大倍數(shù)的計算以及多路開關(guān)CD4051和放大器AD521硬件連接電路。采樣保持電路的設(shè)計中重點介紹了采樣保持電路的原理和主要參數(shù)以及采樣保持器的選擇和連接電路。模數(shù)轉(zhuǎn)換電路的設(shè)計中重點介紹了系統(tǒng)A/D通道的選擇和A/D轉(zhuǎn)換器的各項誤差分析以及A/D轉(zhuǎn)換器AD574的介紹、輸入方式和連接電路。數(shù)模轉(zhuǎn)換電路的設(shè)計中重點介紹了D/A通道的選擇,D/A轉(zhuǎn)換器的選擇以及D/A轉(zhuǎn)換器DAC0832的介紹、連接電路和DAC0832的輸出方式。硬件設(shè)計中還介紹了單片機的選擇,單片機AT89S51的時鐘電路和復(fù)位電路。本系統(tǒng)的軟件設(shè)計主要包括編譯器的選擇,各部分的流程圖以及程序的設(shè)計。本設(shè)計中還分析了系統(tǒng)的性能及誤差。當(dāng)然,因為時間緊湊以及自己的知識水平有限等原因,本次設(shè)計也留下了一點遺憾。比如不能對所設(shè)計的整個系統(tǒng)進(jìn)行調(diào)試及仿真,因而也就沒能做出實物出來。畢業(yè)設(shè)計是對大學(xué)階段所學(xué)知識的一個總結(jié)。由于本身知識水平以及時間有限,可能有很多問題還沒有發(fā)現(xiàn),希望老師和同學(xué)給予指出致謝從論文選題到搜集資料,從寫稿到反復(fù)修改,期間經(jīng)歷了喜悅、聒噪、痛苦和彷徨,在寫作論文的過程中心情是如此復(fù)雜。如今,伴隨著這篇畢業(yè)論文的最終成稿,復(fù)雜的心情煙消云散,自己甚至還有一點成就感。這篇畢業(yè)論文的就是我的舞臺,以下的言語便是有點成就感后在舞臺上發(fā)表的發(fā)自肺腑的誠摯謝意與感想。研究及學(xué)位論文是在我的導(dǎo)師孫運強老師的親切關(guān)懷和悉心指導(dǎo)下完成的。他嚴(yán)肅的科學(xué)態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神,精益求精的工作作風(fēng),深深地感染和激勵著我。孫老師不僅在學(xué)業(yè)上給我以精心指導(dǎo),同時還在思想、生活上給我以無微不至的關(guān)懷,在此謹(jǐn)向?qū)O在論文即將完成之際,我的心情無法平靜,從開始進(jìn)入課題到論文的順利完成,有多少可敬的師長、同學(xué)、朋友給了我無言的幫助,在這里請接受我誠摯的謝意!最后我還要感謝培養(yǎng)我長大含辛茹苦的父母,謝謝你們!最后,再次對關(guān)心、幫助我的老師和同學(xué)表示衷心地感謝!參考文獻(xiàn)[1]嚴(yán)潔.單片機原理及其接口技術(shù).機械工業(yè)出版社,2010,65-105[2]范紅剛.51單片機自學(xué)筆記.北京航空航天大學(xué)出版社,2009[3]高云.基于MSP430的溫室多路數(shù)據(jù)采集系統(tǒng).農(nóng)機化研究,2009,No.8[4]常鐵原,王欣,陳文軍.多路數(shù)據(jù)采集系統(tǒng)的設(shè)計.電子技術(shù)應(yīng)用,2008,No.11[5]葉紅海,李麗敏.基于單片機的多路數(shù)據(jù)采集系統(tǒng)的設(shè)計與實現(xiàn).2008,No.4[6]彭偉.單片機C語言程序設(shè)計實訓(xùn)100例.電子工業(yè)出版社,2009,46-48,104-110[7]楊居義,楊曉琴,王益斌等.單片機課程設(shè)計指導(dǎo).清華大學(xué)出版社,2009,135-141[8]劉剛,秦永左,朱杰斌.單片機原理及應(yīng)用.北京大學(xué)出版社,2006,76-98,134-155[9]林祝亮,武林,楊金華.基于雙單片機的多路數(shù)據(jù)采集系統(tǒng)設(shè)計.儀器儀表學(xué)報,2006,No.6[10]元增民,張文希.單片機原理與應(yīng)用基礎(chǔ).國防科技大學(xué)出版社,2006,205-266[11]王琳,商周,王學(xué)偉.數(shù)據(jù)采集的發(fā)展及應(yīng)用.電測與儀表,2004,No.464[12]V.Schmidt,Control,dataacquisition,andremoteparticipationforfusionresearch,FusionEng.Des.81(2006)1702–1712.[13]A.Neto,H.Fernandes,A.Duarte,Firesignal-Dataacquisitionandcontrolsystemsoftware.FusionEngineeringandDesign82(2007)1359-1364.附錄1系統(tǒng)硬件圖附錄2主機部分程序#include<reg52.h>#defineucharunsignedchar#defineuintunsignedintsbitk1=P3^4;sbitsmgd=P2^6;sbitsmgk=P2^7;ucharPre_KeyNo=16,KeyNo=16;ucharcodeLEDData[]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,0X77,0X7C,0X39,0X5E,0X79,0X71}/*****延時子程序*****/voidDelay(uintx){uchari;while(x--)for(i=0;i<120;i++);}/**************LED顯示子程序***************/voidDisplay_Result(intd){smgk=1;P0=0X7C;smgd=1;P0=LEDData[d/100];//顯示百位Delay(5);smgd=0;smgk=0;smgk=1;P0=0X7D;smgd=1;P0=LEDData[d/10%10];//顯示十位Delay(5);smgd=0;smgk=0;P0=0x7E;smgd=1;P0=LEDData[d%10];//顯示個位Delay(5);smgk=0;smgd=0;smgk=1;P0=0X7C;smgd=1;P0=0x80;//顯示小數(shù)點Delay(5);smgd=0;smgk=0;}/************鍵盤掃描子程序**************/voidKeys_Scan(){ucharTmp,An;P3=0XF0;//低四位置1,放入4行Delay(1);An=P3^0XF0;//按鍵后11110000將變成XXXX0000,X中有一個為0,3個仍為1,而異或操作會把3個1變成0,唯一的0變成1Tmp=An>>4;//該表達(dá)式將高4位移到低四位swith(Tmp)//判斷按鍵發(fā)生在哪列{case1:KeyNo=0;break;case2:KeyNo=1;break;case4:KeyNo=2;break;case8:KeyNo=3;break;default:KeyNo=16;//無鍵按下}P3=0X0F;//高4位置0,放入4列Delay(1);Tmp=P3^0xF0;//按鍵后00001111將變成0000XXXX,X中有一個為0,3個仍為1,而異或操作會把3個1變成0,唯一的0變成1switch(Tmp)//0—3行分別附加起始值0,4,8,12{case1:KeyNo+=0;break;case2:KeyNo+=4;break;case4:KeyNo+=8;break;case8:KeyNo+=12;break;}}/********向串口發(fā)送數(shù)據(jù)子程序*********/voidputc_to_serialport(ucharC){SBUF=C;whil

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論