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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

溫馨提示

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

評論

0/150

提交評論