多路數(shù)據(jù)采集系統(tǒng)畢業(yè)論文_第1頁
已閱讀1頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  學號:########</p><p><b>  畢 業(yè) 論 文</b></p><p><b>  ( 2013 屆)</b></p><p><b>  二○一三年印制</b></p><p> 年 級09級

2、 </p><p> 專 業(yè) 班 級</p><p> 學 生 姓 名###### </p><p> 指導教師姓名###### </p><p> 指導教師職稱副教授 </p><p>

3、; 論文完成時間</p><p>  本科生畢業(yè)論文(設計、創(chuàng)作)承諾書</p><p>  說明:學生畢業(yè)論文(設計、創(chuàng)作)如有保密等要求,請在備注中明確,承諾內(nèi)容第2 條即以備注為準。</p><p>  2013 屆畢業(yè)論文(設計、創(chuàng)作)任務書</p><p>  指導教師簽名 年 月

4、日</p><p>  2013 屆畢業(yè)論文(設計、創(chuàng)作)中期檢查表</p><p><b>  目 錄</b></p><p><b>  摘 要11</b></p><p>  ABSTRACT12</p><p>  第1章 緒 論1</p&

5、gt;<p>  1.1 課題來源1</p><p>  1.2 課題背景1</p><p>  1.3 國內(nèi)外在該方向的研究現(xiàn)狀及分析2</p><p>  1.3.1 國內(nèi)在該方向的研究現(xiàn)狀2</p><p>  1.3.2 國外在該方向的研究現(xiàn)狀3</p><p>  1.4 該

6、課題研究的主要內(nèi)容3</p><p>  第2章 數(shù)據(jù)采集系統(tǒng)的設計5</p><p>  2.1 數(shù)據(jù)采集系統(tǒng)5</p><p>  2.2 數(shù)據(jù)采集的目的5</p><p>  2.3 數(shù)據(jù)采集系統(tǒng)框圖5</p><p>  2.3.1 主要芯片6</p><p>  

7、2.3.2涉及到的軟件7</p><p>  2.4 基本功能要求7</p><p>  第3章 硬件設計8</p><p>  3.1 系統(tǒng)框圖8</p><p>  3.2 單片機最小系統(tǒng)8</p><p>  3.3 PCF8591芯片9</p><p>  3.3

8、.1 IIC串行總線9</p><p>  3.3.2 PCF8591 AD轉(zhuǎn)換的應用13</p><p>  3.4 LCD1602器件14</p><p>  3.4 單片機外圍電路圖15</p><p>  第4章 軟件設計16</p><p>  4.1 主程序16</p>

9、<p>  4.1.1 主程序流程圖16</p><p>  4.1.2 LCD1602與PCF8591程序流程圖17</p><p>  4.1.3 數(shù)據(jù)處理程序流程圖18</p><p>  4.1.4 按鍵檢測程序流程圖19</p><p>  4.2 上位機程序介紹20</p><p&

10、gt;  4.2.1 Visual C++ 6.020</p><p>  4.2.2 MSComm控件[9]20</p><p>  4.2 硬件與軟件調(diào)試21</p><p><b>  結 論22</b></p><p><b>  參考文獻23</b></p>

11、<p><b>  摘 要</b></p><p>  目前,數(shù)據(jù)采集系統(tǒng)廣泛應用在科研、教育、工業(yè)、水利等眾多領域。本系統(tǒng)基于89C52單片機,采用PCF8591串行AD芯片,完成對多路模擬信號的數(shù)據(jù)采集,并由LCD1602把數(shù)據(jù)顯示出來。本系統(tǒng)帶有按鍵輸入,可通過按鍵實現(xiàn)轉(zhuǎn)換通道的選擇。在windows桌面環(huán)境下,使用Visual C++可視化軟件開發(fā)工具,調(diào)用MSComm

12、控件,開發(fā)一個集存儲與顯示的上位機程序,以便用計算機對大量數(shù)據(jù)的處理。</p><p>  關鍵詞 89C52 ;PCF8591;LCD1602 ;Visual C++ ;MSComm控件</p><p><b>  ABSTRACT</b></p><p>  At present, the data acquisition system i

13、s widely used in scientific research, education, industry, water conservancy, and many other fields. This system based on 89C52, using serial AD chip PCF8591, complete the multi-channel analog signal data acquisition, an

14、d data by the LCD1602 display. With pressed key input, the system can be realized through key conversion channel choice. In Windows desktop environments, the use of Visual c + + visualization software development tools,

15、invoke the MSComm c</p><p>  Keywords: 89C52; PCF8591; LCD1602; Visual C++; MSComm</p><p><b>  第1章 緒 論</b></p><p>  本章主要介紹數(shù)據(jù)采集系統(tǒng)歷史及發(fā)展,讓我們對數(shù)據(jù)采集系統(tǒng)有個初步了解。</p><

16、;p><b>  1.1 課題來源</b></p><p><b>  自定題目。</b></p><p><b>  1.2 課題背景</b></p><p>  近年來,數(shù)據(jù)采集及其應用受到了人們越來越廣泛的關注,數(shù)據(jù)采集系統(tǒng)也有了迅速的發(fā)展,它可以廣泛的應用于各種領域。</p&g

17、t;<p>  數(shù)據(jù)采集系統(tǒng)起始于20世紀50年代,1956年美國首先研究了用在軍事上的測試系統(tǒng),日標是測試中不依靠相關的測試文件,由非成熟人員進行操作,并且測試任務是由測試設備高速自動控制完成的。由于該種數(shù)據(jù)采集測試系統(tǒng)具有高速性和一定的靈活性,可以滿足眾多傳統(tǒng)方法不能完成的數(shù)據(jù)采集和測試任務,因而得到了初步的認可。大概在60年代后期,國內(nèi)外就有成套的數(shù)據(jù)采集</p><p>  設備和系統(tǒng)多屬于

18、專用的系統(tǒng)。[1]</p><p>  20世紀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)。[1]</p><p>  20世紀80年代隨著計算機的普

19、及應用,數(shù)據(jù)采集系統(tǒng)得到了很大的發(fā)展,</p><p>  開始出現(xiàn)了通用的數(shù)據(jù)采集與自動測試系統(tǒng)。該階段的數(shù)據(jù)采集系統(tǒng)主要有兩類,一類以儀表儀器和采集器、通用接口總線和計算機組成。這類系統(tǒng)主要應用</p><p>  于實驗室,在工業(yè)生產(chǎn)現(xiàn)場也有一定的應用。第二類以數(shù)據(jù)采集卡、標準總線和</p><p>  計算機構成,這一類在工業(yè)現(xiàn)場應用較多。20世紀80年代后

20、期,數(shù)據(jù)采集發(fā)生</p><p>  了很大的變化,工業(yè)計算機、單片機和大規(guī)模集成電路的組合,用軟件管理,使系統(tǒng)的成本減低,體積變小,功能成倍增加,數(shù)據(jù)處理能力大大加強。[1]</p><p>  20世紀90年代至今,在國際上技術先進的國家,數(shù)據(jù)采集系統(tǒng)己成功的運用到軍事、航空電子設備及宇航技術、工業(yè)等領域。由于集成電路制造技術的不斷提高,出現(xiàn)了高性能、高可靠的單片機數(shù)據(jù)采集系統(tǒng)(DAS

21、)。數(shù)據(jù)采集技術已經(jīng)成為一種專門的技術,在工業(yè)領域得到了廣泛的應用。該階段的數(shù)據(jù)采集系統(tǒng)采用模塊式結構,根據(jù)不同的應用要求,通過簡單的增加和更改模塊,井結合系統(tǒng)編程,就可擴展或修改系統(tǒng),迅速組成一個新的系統(tǒng)。[1]</p><p>  盡管現(xiàn)在以微機為核心的可編程數(shù)據(jù)采集與處理采集技術的發(fā)展方向得到了迅速的發(fā)展,而且組成一個數(shù)據(jù)采集系統(tǒng)只需要一塊數(shù)據(jù)采集卡,把它插在微機的擴展槽內(nèi)并輔以應用軟件,就能實現(xiàn)數(shù)據(jù)采集功

22、能,但這井不會對基于單片機為核心的數(shù)據(jù)采集系統(tǒng)產(chǎn)生影響。相較于數(shù)據(jù)采集板卡成本和功能的限制,單片機其多功能、高效率、高性能、低電壓、低功耗、低價格等優(yōu)點,而單片機又其有精度較高、轉(zhuǎn)換速度快、能夠?qū)Χ帱c同時進行采集,因此能夠開發(fā)出能滿足實際應用要求的、電路結構簡單的、可靠性高的數(shù)據(jù)采集系統(tǒng)。這就使得以單片機為核心的數(shù)據(jù)采集系統(tǒng)在許多領域得到了廣泛的應用。</p><p>  1.3 國內(nèi)外在該方向的研究現(xiàn)狀及分析

23、</p><p>  數(shù)據(jù)采集系統(tǒng)是通過采集傳感器輸出的模擬信號并轉(zhuǎn)換成數(shù)字信號,并進行析、處理、傳輸、顯示、存儲和顯示。它起始于20世紀中期,在過去的幾十年里,隨著信息領域各種技術的發(fā)展,在數(shù)據(jù)采集方面的技術也取得了長足的進步,采集數(shù)據(jù)的信息化是日前社會的發(fā)展主流方向。各種領域都用到了數(shù)據(jù)采集,在石油勘探、科學實驗、飛機飛行、地震數(shù)據(jù)采集、衛(wèi)星遙感成像、無人機、艦載傳感器系統(tǒng)領域已經(jīng)得到應用。[1]</p

24、><p>  1.3.1 國內(nèi)在該方向的研究現(xiàn)狀</p><p>  早期,對于大部分制造業(yè)企業(yè),測量儀器的自動數(shù)據(jù)采集一直是個令人煩惱的事情,即使儀器已經(jīng)具有RS232/485等接口,但仍然在使用一邊測量,一邊手工記錄到紙張,最后再輸入到PC中處理的方式,不但工作繁重,同時也無法保證數(shù)據(jù)的準確性,常常管理人員得到的數(shù)據(jù)已經(jīng)是滯后了一兩天的數(shù)據(jù);而對于現(xiàn)場的不良產(chǎn)品信息及相關的產(chǎn)量數(shù)據(jù),如何

25、實現(xiàn)高效率、簡潔、實時的數(shù)據(jù)采集更是一大難題。由研究人員研發(fā)的生產(chǎn)現(xiàn)場實時數(shù)據(jù)采集系統(tǒng)解決了這一問題,整個系統(tǒng)采用分布式結構,軟、硬件均采用了模塊化設計。數(shù)據(jù)采集部分采用自行開發(fā)的帶光隔離的RS-485網(wǎng),通信效率高,安全性好,結構簡單。后臺系統(tǒng)可根據(jù)實際被監(jiān)控系統(tǒng)規(guī)模大小及要求,構成485網(wǎng)、Novell網(wǎng)及Windows NT網(wǎng)等分布式網(wǎng)絡。由于軟、硬件均為分布式、模塊化結構,因而便于系統(tǒng)升級、維護,且根據(jù)需要組成不同的系統(tǒng)。.數(shù)據(jù)

26、處理在Windows NT平臺上采用Visual C++語言編程,處理能力強、速度快、界面友好,可實現(xiàn)網(wǎng)絡數(shù)據(jù)共享。[2]</p><p>  我國的數(shù)字地震觀測系統(tǒng)主要采用TDE-124C型地震數(shù)據(jù)采集系統(tǒng)。近年來,又成功研制了動態(tài)范圍更大、線性度更高,.兼容性更強、低功耗可靠性的TDE-3240型地震數(shù)據(jù)采集系統(tǒng)。該數(shù)據(jù)采集對地震計輸出的電信號模擬放大后送至A/D數(shù)字化,A/D采用同時采樣,采樣數(shù)據(jù)經(jīng)DSP數(shù)

27、字濾波處理后,變成數(shù)字地震信號。該數(shù)據(jù)采集系統(tǒng)具備24位A/D轉(zhuǎn)換芯片,采樣率有5 0HZ,100HZ,200HZ。[1]</p><p>  1.3.2 國外在該方向的研究現(xiàn)狀</p><p>  由美國PASCO公司生產(chǎn)的“科學工作室”是將數(shù)據(jù)采集應用于物理實驗的嶄新系統(tǒng),它由3部分組成:(1)傳感器:利用先進的傳感技術可實時采集技術可實時采集物理實驗中各物理量的數(shù)據(jù);(2)計算機接

28、口:將來自傳感器的數(shù)據(jù)信號輸入計算機,采樣速率最高為25萬次/S;(3)軟件:中文及英文的應用軟件。[1]</p><p>  受需求牽引,新一代機載數(shù)據(jù)采集系統(tǒng)為滿足飛行實驗應用也在快速地發(fā)展。如愛爾蘭ACRA公司2000年研發(fā)推出的新一代KAM500機載數(shù)據(jù)采集系統(tǒng)。到了2006年。本系統(tǒng)采用16位模數(shù)轉(zhuǎn)換芯片,總采樣率達500K/s,可以利用方式組成高達1000通道的大容量的分布式采集系統(tǒng)。[1]</

29、p><p>  1.4 該課題研究的主要內(nèi)容</p><p>  數(shù)據(jù)采集技術是信息科學的重要分支之一,它研究信息數(shù)據(jù)的采集、存儲、</p><p>  處理以及控制等問題。它是對傳感器信一號的測量與處理,以微型計算機等高技術為基礎而形成的一門綜合應用技術。數(shù)據(jù)采集也是從一個或多個信號獲取對象信息的過程。隨著微型計算機技術的飛速發(fā)展和普及,數(shù)據(jù)采集監(jiān)測已成為日益重要的檢

30、測技術,廣泛應用上工農(nóng)業(yè)等需要同時監(jiān)控溫度、濕度和壓力等場合。數(shù)據(jù)采集是工業(yè)控制等系統(tǒng)中的重要環(huán)節(jié),通常采用一些功能相對獨立的單片機系統(tǒng)來實現(xiàn),作為測控系統(tǒng)不可缺少的部分,數(shù)據(jù)采集的性能特點直接影響到整個系統(tǒng)。</p><p>  盡管現(xiàn)在以微機為核心的可編程數(shù)據(jù)采集與處理技術作為數(shù)據(jù)采集技術的發(fā)展方向得到了迅速的發(fā)展,并且適于通用微機(IBM PC系列)使用的板卡級</p><p>  

31、數(shù)據(jù)采集產(chǎn)品也已大量出現(xiàn),組成一個數(shù)據(jù)采集系統(tǒng)簡單到只需要一塊數(shù)據(jù)采集</p><p>  卡,把它插在微機的擴展槽內(nèi),并輔以應用軟什,就能實現(xiàn)數(shù)據(jù)采集功能,但這并不會對基于單片機為核心的數(shù)據(jù)采集系統(tǒng)產(chǎn)生影響,因為單片機功能強大、抗干擾能力強、可靠性高、靈活性好、開發(fā)容易等優(yōu)點,使得基于單片機為核心的數(shù)據(jù)采集系統(tǒng)在許多領域得到了廣泛的應用。</p><p>  傳統(tǒng)的基于單片機的數(shù)據(jù)采集系

32、統(tǒng)由于沒有上位機的支持,不管采用什么樣的數(shù)據(jù)存儲器,它的存儲容量都是有限的,所以不得不對存儲的歷史數(shù)據(jù)進行覆蓋刷新,這樣不利于用戶對數(shù)據(jù)進行整體分析,因而也不能對生產(chǎn)過程的狀況進行準確的把握。</p><p>  本系統(tǒng)采用下位機負責模擬數(shù)據(jù)的采集,從單片機負責采集八路數(shù)據(jù),并應答主機發(fā)送的命令,上位機即主機是負責處理接受過來的數(shù)字量的處理、存儲及顯示,主機和從機之間用RS-232進行通信。這樣用戶可以在上位機上

33、編寫各種程序?qū)ξ募械臄?shù)據(jù)進行有效查詢和分析,有利于工業(yè)過程的長期正常運行和檢查。由于本人能力有限并未實現(xiàn)上位機功能,只利用現(xiàn)有硬件實現(xiàn)了下位機功能。</p><p>  第2章 數(shù)據(jù)采集系統(tǒng)的設計</p><p><b>  數(shù)據(jù)采集系統(tǒng)簡介。</b></p><p>  2.1 數(shù)據(jù)采集系統(tǒng)</p><p>  

34、數(shù)據(jù)采集(DAQ),是指從轉(zhuǎn)感器和其它待測設備等模擬和數(shù)字被測一單元中自動采集非電量或者電量信一號,送到上位機中進行分析,處理。數(shù)據(jù)采集系統(tǒng)是結合基于計算機或者其他專用測試平臺的測量軟硬件產(chǎn)品來實現(xiàn)靈活的、用戶自定義的測量系統(tǒng)。數(shù)據(jù)采集技術廣泛引用在各個領域。</p><p>  通常,必須在數(shù)據(jù)采集設備采集之前調(diào)制傳感器信號,包括對其進行增益或衰減和隔離,放大,濾波等.對待某些傳感器,還需要提供激勵信號.數(shù)據(jù)采

35、集系統(tǒng)可以將多路模擬信號自動地進行采集并進行數(shù)字化測量,再送到計算機中進行處理、傳輸、顯示、存儲或打印,從而獲得有關被測對象的大量數(shù)據(jù)。數(shù)據(jù)采集系統(tǒng)具有廣泛的應用前景,如工廠為對生產(chǎn)過程進行自動控制,必須實時測量出反映工藝流程和產(chǎn)品質(zhì)的各種參量。因此,在工農(nóng)業(yè)、科研、國防、環(huán)保及日常</p><p>  生活等各個領域,為了實現(xiàn)過程控制、狀態(tài)監(jiān)測、故障診斷、質(zhì)量檢測等任務,大多要應用數(shù)據(jù)采集系統(tǒng)。</p&g

36、t;<p>  70年代初,隨著計算機技術及大規(guī)模集成電路的發(fā)展,特別是微處理器及</p><p>  高速A/D轉(zhuǎn)換器的出現(xiàn),數(shù)據(jù)采集系統(tǒng)結構發(fā)生了重大變革。原來由小規(guī)模集</p><p>  成的數(shù)字邏輯電路及硬件程序控制器組成的采集系統(tǒng)被微處理器控制的采集系統(tǒng)所代替。由微處理器去完成程序控制,數(shù)據(jù)處理及大部分邏輯操作,使系統(tǒng)的</p><p> 

37、 靈活性和可靠性大大地提高,系統(tǒng)硬件成本和系統(tǒng)的重建費用大大地降低。</p><p>  2.2 數(shù)據(jù)采集的目的</p><p>  數(shù)據(jù)采集的目的是為了測量電壓、電流、溫度或聲音等物理現(xiàn)象。給予PC的數(shù)據(jù)采集,通過模塊化硬件、應用軟件和計算機的結合,進行測量。盡管數(shù)據(jù)采集系統(tǒng)根據(jù)不同的應用需求有不同的定義,但各個系統(tǒng)采集、分析和顯示信息的目的卻都相同。數(shù)據(jù)采集系統(tǒng)結合了信號、傳感器、激

38、勵器、信號調(diào)理、數(shù)據(jù)采集設備和應用軟件。</p><p>  數(shù)據(jù)采集技術是單片機應用技術的主要分支。外部現(xiàn)實對象(廣義的外部設備)通過接口和計算機交換信息,在現(xiàn)實對象中,.信息表現(xiàn)為不同的形式并有明確的物理意義,通過對數(shù)據(jù)采集系統(tǒng)的設計來掌握單片機對數(shù)據(jù)的采集及其處理的過程,并將學習到的理論知識聯(lián)系到實際應用當中。</p><p>  2.3 數(shù)據(jù)采集系統(tǒng)框圖</p>&

39、lt;p>  數(shù)據(jù)采集系統(tǒng)一般由信號調(diào)理電路,多路切換電路,采樣保持電路,A/D轉(zhuǎn)換芯片,單片機或ARM等組成。本系統(tǒng)只對0V-5V的電壓信號進行采集并轉(zhuǎn)換,所以只包含A/D轉(zhuǎn)換芯片,單片機/ARM等。</p><p>  數(shù)據(jù)采集系統(tǒng)框圖如圖2-1:</p><p>  圖2-1 多路采集系統(tǒng)系統(tǒng)框圖</p><p>  2.3.1 主要芯片</p&

40、gt;<p>  (1)89C52是INTEL公司MCS-51系列單片機中基本的產(chǎn)品,它采用ATMEL公司可靠的CMOS工藝技術制造的高性能8位單片機,屬于標準的MCS-51的HCMOS產(chǎn)品。它結合了CMOS的高速和高密度技術及CMOS的低功耗特征,它基于標準的MCS-51單片機體系結構和指令系統(tǒng),屬于89C51增強型單片機版本,集成了時鐘輸出和向上或向下計數(shù)器等更多的功能,適合于類似馬達控制等應用場合。89C52內(nèi)置8位

41、中央處理單元、256字節(jié)內(nèi)部數(shù)據(jù)存儲器RAM、8k片內(nèi)程序存儲器(ROM)32個雙向輸入/輸出(I/O)口、3個16位定時/計數(shù)器和5個兩級中斷結構,一個全雙工串行通信口,片內(nèi)時鐘振蕩電路。此外,89C52還可工作于低功耗模式,可通過兩種軟件選擇空閑和掉電模式。在空閑模式下凍結CPU而RAM定時器、串行口和中斷系統(tǒng)維持其功能。掉電模式下,保存RAM數(shù)據(jù),時鐘振蕩停止,同時停止芯片內(nèi)其它功能。89C52有PDIP(40pin)和PLCC(

42、44pin)兩種封裝形式。[2]</p><p>  (3)PCF8591是一個單片集成、單獨供電、低功耗、8-bit CMOS數(shù)據(jù)獲取器件。PCF8591具有4個模擬輸入、1個模擬輸出和1個串行I2C總線接口。PCF8591的3個地址引腳A0, A1和A2可用于硬件地址編程,允許在同一個I2C總線上接入8個PCF8591器件,而無需額外的硬件。在PCF8591器件上輸入輸出的地址、控制和數(shù)據(jù)信號都是通過雙線雙向

43、I2C總線以串行的方式進行傳輸。[3] </p><p>  (4)LCD1602 工業(yè)字符型液晶,能夠同時顯示16x02即32個字符。(16列2行)1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊。它由若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符,每位之間有一個點距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因為如此所以它不能

44、很好地顯示圖形。[4]</p><p><b>  涉及到的軟件</b></p><p>  (1)KEIL C51是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結構性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學易用。KEIL提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā)

45、方案,通過一個集成開發(fā)環(huán)境( uVision )將這些部分組合在一起。運行K e I l軟件需要WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。[5]</p><p>  (2)Visual C++ 6.0,簡稱VC或者VC6.0,是微軟推出的一款C++編譯器,將“高級語言”翻譯為“機器語言(低級語言)”的程序。Visual C++是一個功能強大的可視化軟件開發(fā)工具。自1993年Microsoft公司推出

46、Visual C++1.0后,隨著其新版本的不斷問世,Visual C++已成為專業(yè)程序員進行軟件開發(fā)的首選工具。雖然微軟公司推出了 Visual C++.NET(Visual C++7.0),但它的應用有很大的局限性,只適用于Windows 2000、Windows XP和Windows NT4.0。所以實際中,更多的是以Visual C++6.0為平臺。[6]</p><p>  2.4 基本功能要求<

47、;/p><p>  (1)利用兩片PCF8591實現(xiàn)八通道A/D轉(zhuǎn)換按鍵,S0、S1切換當前選中的通道,LCD1602把當前通道號和轉(zhuǎn)換后的電壓顯示出來。</p><p>  (2)在windows桌面環(huán)境下,使用Visual C++可視化軟件開發(fā)工具,調(diào)用MSCOMM控件,開發(fā)一個集存儲與顯示的上位機程序,以便用計算機對大量數(shù)據(jù)的處理。(本次畢業(yè)設計未實現(xiàn)此功能)</p>&l

48、t;p><b>  第3章 硬件設計</b></p><p>  硬件系統(tǒng)由89C52單片機最小系統(tǒng)、LCD1602外圍電路、PCF8591外圍電路、獨立按鍵電路等組成。</p><p><b>  3.1 系統(tǒng)框圖</b></p><p>  單片機系統(tǒng)框圖如圖3-1所示。</p><p&g

49、t;  圖3-1 單片機系統(tǒng)框圖</p><p>  3.2 單片機最小系統(tǒng)</p><p>  單片機最小系統(tǒng)由復位電路、晶振電路、電源(VCC和GND)。</p><p>  復位電路包括上電復位和按鍵復位,由10uf電解電容、按鍵、1.2K電阻組成;晶振電路由12MHZ晶振、2個30pf陶瓷電容組成;VCC=5V,GND=0V。[7]</p>

50、<p>  單片機最小系統(tǒng)如圖3-1所示,</p><p>  圖3-2 單片機最小系統(tǒng)</p><p>  3.3 PCF8591芯片</p><p>  PCF8591是一個單片集成、單獨供電、低功耗、8-bit CMOS數(shù)據(jù)獲取器件。PCF8591具有4個模擬輸入、1個模擬輸出和1個串行I2C總線接口。PCF8591的3個地址引腳A0、A1和A2可

51、用于硬件地址編程,允許在同一個IIC總線上接入8個PCF8591器件,而無需額外的硬件。在PCF8591器件上輸入輸出的地址、控制和數(shù)據(jù)信號都是通過雙線雙向I2C總線以串行的方式進行傳輸。</p><p>  3.3.1 IIC串行總線</p><p>  I2C總線是PHLIPS公司推出的一種串行總線,是具備多主機系統(tǒng)所需的包括總線裁決和高低速器件同步功能的高性能串行總線。</p

52、><p>  I2C總線只有兩根雙向信號線。一根是數(shù)據(jù)線SDA,另一根是時鐘線SCL。</p><p>  如圖3-3所示IIC總線工作原理圖。[8]</p><p>  圖3-3 IIC總線工作原理圖</p><p>  I2C總線通過上拉電阻接VCC。當總線空閑時,兩根線均為高電平。連到總線上的任一器件輸出的低電平,都將使總線的信號變低,即

53、各器件的SDA及SCL都是線“與”關系。如圖3-4所示,R p常取10K。[8]</p><p>  圖3-4 IIC總線硬件連接圖</p><p>  每個接到I2C總線上的器件都有唯一的地址。主機與其它器件間的數(shù)據(jù)傳送可以是由主機發(fā)送數(shù)據(jù)到其它器件,這時主機即為發(fā)送器。由總線上接收數(shù)據(jù)的器件則為接收器。[8]</p><p>  起始和終止信號都是由主機發(fā)出的

54、,在起始信號產(chǎn)生后,總線就處于被占用的狀態(tài);在終止信號產(chǎn)生后,總線就處于空閑狀態(tài)。[8]</p><p>  連接到I2C總線上的器件,若具有I2C總線的硬件接口,則很容易檢測到起始和終止信號。對于不具備I2C總線硬件接口的有些單片機來說,為了檢測起始和終止信號,必須保證在每個時鐘周期內(nèi)對數(shù)據(jù)線SDA采樣兩次。[8] </p><p>  接收器件收到一個完整的數(shù)據(jù)字節(jié)后,有可能需要完成

55、一些其它工作,如處理內(nèi)部中斷服務等,可能無法立刻接收下一個字節(jié),這時接收器件可以將SCL線拉成低電平,從而使主機處于等待狀態(tài)。直到接收器件準備好接收下一個字節(jié)時,再釋放SCL線使之為高電平,從而使數(shù)據(jù)傳送可以繼續(xù)進行。[8]</p><p>  想對IIC總線進行操作就要熟悉IIC常涉及的幾個信號,如起始信號 S,終止信號 P,應答信號和非應答信號。如圖3-5所示。[8]</p><p>

56、  圖3-5 信號工作圖</p><p>  以下是IIC總線涉及的信號在C語言上的實現(xiàn)。[8]</p><p><b>  (1)起始信號 S</b></p><p>  void iic_start() //i2c起始信號</p><p><b>  {</b></p><p

57、><b>  sda=1;</b></p><p><b>  _nop_();</b></p><p><b>  scl=1;</b></p><p><b>  somenop;</b></p><p><b>  sda=0;<

58、;/b></p><p><b>  somenop;</b></p><p><b>  scl=0;</b></p><p><b>  }</b></p><p><b>  (2)終止信號 P</b></p><p>

59、;  void iic_stop()</p><p><b>  {</b></p><p><b>  sda=0;</b></p><p><b>  _nop_();</b></p><p><b>  scl=1;</b></p>&

60、lt;p><b>  somenop;</b></p><p><b>  sda=1;</b></p><p><b>  }</b></p><p><b>  (3)應答信號</b></p><p>  void ack()</p>

61、;<p><b>  {</b></p><p>  unsigned char i=0;</p><p>  scl=1;somenop;while((sda==1)&&(i<200))</p><p>  i++;scl=0;</p><p><b>  }</b&

62、gt;</p><p><b>  (4)發(fā)送一個字</b></p><p>  void iic_sendbyte(unsigned char byt)</p><p><b>  {</b></p><p>  unsigned char i;</p><p>  for

63、(i=0;i<8;i++)</p><p><b>  {</b></p><p>  if(byt&0x80)</p><p><b>  sda=1;</b></p><p><b>  else</b></p><p><b&g

64、t;  sda=0;</b></p><p><b>  somenop;</b></p><p><b>  scl=1;</b></p><p><b>  byt<<=1;</b></p><p><b>  somenop;</b

65、></p><p><b>  scl=0;</b></p><p><b>  }</b></p><p><b>  ack();</b></p><p><b>  }</b></p><p><b>  (5

66、)接收一個字</b></p><p>  unsigned char iic_recbyte()</p><p><b>  {</b></p><p>  uchar i,da;</p><p>  for(i=0;i<8;i++)</p><p><b>  {&l

67、t;/b></p><p><b>  scl=1;</b></p><p><b>  somenop;</b></p><p><b>  da<<=1;</b></p><p><b>  if(sda)</b></p>

68、<p><b>  da|=0x01;</b></p><p><b>  scl=0;</b></p><p><b>  somenop;</b></p><p><b>  }</b></p><p>  return da;</

69、p><p><b>  }</b></p><p>  (6)以上程序中的somenop由以下兩條程序?qū)崿F(xiàn):</p><p>  #include <intrins.h></p><p>  #define somenop{_nop_();_nop_();_nop_();_nop_();_nop_();}<

70、/p><p>  3.3.2 PCF8591 AD轉(zhuǎn)換的應用</p><p>  FCF8591引腳圖如圖3-6所示。</p><p>  圖3-6 PCF8591引腳圖</p><p>  PCF8591芯片的datasheet知AIN0-AIN3為四通道模擬輸入端,A0-A2為編程端口,用于多片PCF8591的情形。當IIC總線系統(tǒng)中只有

71、一片PCF8591時,可以把A0-A2都接GND。本系統(tǒng)使用了兩個PCF8591,其中的一片A0-A2都接GND。另一片A2、A1接GND,A0接VCC。VDD接VCC,VREF接VCC,故模擬通道測量范圍是0V到5V。AGND和EXT都接GND,使用的是內(nèi)部時鐘。SCL和SDA接單片機的P2^0、P2^1。</p><p>  進行AD轉(zhuǎn)換的操作順序。</p><p>  (1)對于芯片

72、1是:</p><p><b>  IIC起始信號 </b></p><p>  先寫0X90;//告訴芯片要進行寫操作</p><p>  再寫控制字;//常用的由0X00,0X01,0X02,0X03</p><p>  //0X00選擇通道0,0X01選擇通道</p><p>  //1,0

73、X02選擇通道2,0X03選擇</p><p><b>  //通道3;</b></p><p><b>  IIC停止信號</b></p><p><b>  延時5us</b></p><p><b>  IIC起始信號</b></p>

74、<p><b>  寫0X91</b></p><p><b>  讀轉(zhuǎn)換結果 </b></p><p>  (2)對于芯片2是:</p><p><b>  IIC起始信號 </b></p><p>  先寫0X92;//告訴芯片要進行寫操作</p>

75、<p>  再寫控制字;//常用的由0X00,0X01,0X02,0X03</p><p>  //0X00選擇通道0,0X01選擇通道</p><p>  //1,0X02選擇通道2,0X03選擇</p><p><b>  //通道3;</b></p><p><b>  IIC停止信號</

76、b></p><p><b>  延時5us</b></p><p><b>  IIC起始信號</b></p><p><b>  寫0X93</b></p><p><b>  讀轉(zhuǎn)換結果</b></p><p>  3.

77、4 LCD1602器件</p><p>  工業(yè)字符型液晶,能夠同時顯示16x02即32個字符。(16列2列)</p><p>  1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊。它由若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符,每位之間有一個點距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因為如此所

78、以它不能很好地顯示圖形(用自定義CGRAM,顯示效果也不好)。</p><p>  (1)LCD1602的基本操作時序</p><p>  1)讀狀態(tài):輸入:RS=L,RW=H,E=H, 輸出:D0~D7=狀態(tài)字</p><p>  2)寫指令:輸入:RS=L,RW=L,D0~D7=指令碼,E=高脈沖 輸出:無</p>

79、;<p>  3)讀數(shù)據(jù):輸入:RS=H,RW=H,E=H, 輸出:D0~D7=數(shù)據(jù)</p><p>  4)寫數(shù)據(jù):輸入:RS=H,RW=L, D0~D7=指令碼,E=高脈沖 輸出:無</p><p>  5)狀態(tài)字最高位為1,表示LCD1602忙;狀態(tài)字最高位為0,表示LCD1602空閑</p><p>  6)

80、LCD1602的顯示地址 第一行為00H 01H ……27H</p><p>  第二行為40H 41H……67H</p><p>  (2)LCD1602初始化過程</p><p><b>  延時15ms</b></p><p>  寫指令38H(不檢測忙信號)</p><p><b&

81、gt;  延時5ms</b></p><p>  寫指令38H(不檢測忙信號)</p><p><b>  延時5ms</b></p><p>  寫指令38H(不檢測忙信號)</p><p>  (以后每次寫指令、讀/寫數(shù)據(jù)操作之前均需檢測忙信號)</p><p>  寫指令38H:

82、顯示模式設置</p><p>  寫指令01H:顯示清屏</p><p>  寫指令06H:顯示光標移動設置</p><p>  寫指令OCH:顯示開及光標設置</p><p>  寫顯示地址 第一行00H~27H 第二行40H~67H</p><p>  寫要顯示的字符或數(shù)字(數(shù)字必須是ASCII碼)</p&g

83、t;<p>  (3)LCD1602的RS、RW、E引腳分別接單片機的P1^2、 P1^3、 P1^4,D0~D7接單片機的P0口。</p><p>  3.4 單片機外圍電路圖</p><p><b>  如圖3-7所示。</b></p><p>  圖3-7 單片機外圍電路(除去最小系統(tǒng))

84、 </p><p><b>  第4章 軟件設計</b></p><p>  軟件包括主程序和定時器0中斷程序,主程序由延時程序、LCD相關程序、鍵盤檢測程序、IIC程序、PCF8591程序等組成。</p><p><b>  4.1 主程序</b></p><p>  主程序由LCD相關程

85、序、鍵盤檢測程序、IIC程序、PCF8591、延時程序、數(shù)據(jù)處理程序等組成。</p><p>  4.1.1 主程序流程圖</p><p><b>  如圖4-1所示。</b></p><p>  圖4-1 主程序流程圖</p><p>  4.1.2 LCD1602與PCF8591程序流程圖</p>

86、<p><b>  如圖4-2所示。</b></p><p>  圖4-2 LCD1602與PCF8591程序流程圖</p><p>  4.1.3 數(shù)據(jù)處理程序流程圖</p><p><b>  如圖4-3所示。</b></p><p>  圖4-3 數(shù)據(jù)處理程序流程圖</p

87、><p>  4.1.4 按鍵檢測程序流程圖</p><p><b>  如圖4-4所示。</b></p><p>  圖4-4 按鍵檢測程序流程圖</p><p>  LCD1602顯示程序、AD轉(zhuǎn)換程序、數(shù)據(jù)處理程序?qū)懺诙〞r器T0中斷函數(shù)中,T0定時200us。主程序中只有鍵盤檢測程序。</p><

88、;p>  4.2 上位機程序介紹</p><p>  使用visual C++ 6.0可視化軟件開發(fā)工具,調(diào)用MSCOMM控件,開發(fā)一個集存儲與顯示的上位機程序,用于大量數(shù)據(jù)的分析與處理。本設計并未實現(xiàn)上位機功能,只對上位機方面簡單介紹了一下,主要是下位機功能的實現(xiàn)。</p><p>  4.2.1 Visual C++ 6.0</p><p>  Vi

89、sual C++6.0由Microsoft開發(fā), 它不僅是一個C++ 編譯器,而且是一個基于Windows操作系統(tǒng)的可視化集成開發(fā)環(huán)境(integrated development environment,IDE)。Visual C++6.0由許多組件組成,包括編輯器、調(diào)試器以及程序向?qū)ppWizard、類向?qū)lass Wizard等開發(fā)工具。 這些組件通過一個名為Developer Studio的組件集成為和諧的開發(fā)環(huán)境。Micr

90、osoft的主力軟件產(chǎn)品。Visual C++是一個功能強大的可視化軟件開發(fā)工具。自1993年Microsoft公司推出Visual C++1.0后,隨著其新版本的不斷問世,Visual C++已成為專業(yè)程序員進行軟件開發(fā)的首選工具。雖然微軟公司推出了Visual C++.NET(Visual C++7.0),但它的應用的很大的局限性,只適用于Windows 2000,Windows XP和Windows NT4.0。所以實際中,更多的

91、是以Visual C++6.0為平臺。[5]</p><p>  4.2.2 MSComm控件[9] </p><p>  MSComm 控件通過串行端口傳輸和接收數(shù)據(jù),為應用程序提供串行通訊功能。MSComm控件在串口編程時非常方便,程序員不必去花時間去了解較為復雜的API函數(shù),而且在VC、VB、Delphi等語言中均可使用。 Microsoft Communications Co

92、ntrol(以下簡稱MSComm)是Microsoft公司提供的簡化Windows下串行通信編程的ActiveX控件,它為應用程序提供了通過串行接口收發(fā)數(shù)據(jù)的簡便方法。具體的來說,它提供了兩種處理通信問題的方法:一是事件驅(qū)動(Event-driven)方法,一是查詢法。</p><p>  MSComm控件提供下列兩種處理通訊的方式:事件驅(qū)動方式和查詢方式。</p><p><b&g

93、t;  事件驅(qū)動方式</b></p><p>  事件驅(qū)動通訊是處理串行端口交互作用的一種非常有效的方法。在許多情況下,在事件發(fā)生時需要得到通知,例如,在串口接收緩沖區(qū)中有字符,或者 Carrier Detect (CD) 或 Request To Send (RTS) 線上一個字符到達或一個變化發(fā)生時。在這些情況下,可以利用 MSComm 控件的 OnComm 事件捕獲并處理這些通訊事件。OnCom

94、m 事件還可以檢查和處理通訊錯誤。所有通訊事件和通訊錯誤的列表,參閱 CommEvent 屬性。在編程過程中,就可以在OnComm事件處理函數(shù)中加入自己的處理代碼。這種方法的優(yōu)點是程序響應及時,可靠性高。每個MSComm控件對應著一個串行端口。如果應用程序需要訪問多個串行端口,必須使用多個 MSComm 控件。</p><p><b>  查詢方式</b></p><p&

95、gt;  查詢方式實質(zhì)上還是事件驅(qū)動,但在有些情況下,這種方式顯得更為便捷。在程序的每個關鍵功能之后,可以通過檢查 CommEvent 屬性的值來查詢事件和錯誤。如果應用程序較小,并且是自保持的,這種方法可能是更可取的。例如,如果寫一個簡單的電話撥號程序,則沒有必要對每接收一個字符都產(chǎn)生事件,因為唯一等待接收的字符是調(diào)制解調(diào)器的“確定”響應。</p><p>  4.2 硬件與軟件調(diào)試</p>&

96、lt;p>  系統(tǒng)調(diào)試以程序為主,硬件調(diào)試先檢測電路的焊接是否正確,然后用外用表檢測或通電檢測其是否有短路或斷路。軟件調(diào)試包括調(diào)試程序和對硬件準確性的調(diào)試。利用杜邦線把0V到5V的模擬電壓信號接到八路模擬輸入通道上,通過按鍵可以改變當檢測的通道。液晶實時顯示通道號和模擬電壓值。</p><p><b>  結 論</b></p><p>  我不會忘記這難忘的

97、幾個月的時間里,親手實現(xiàn)了自己想做的項目。以前總是在51單片機開發(fā)板上寫程序,然后看看效果,從沒有自己設計過硬件電路,哪怕單片機最小系統(tǒng)也沒硬件實現(xiàn)過。通過這次畢業(yè)設計,我學到了太多的東西,小到電焊鐵的使用,大到使用KEILC51編寫全部程序。我真正感覺到自己的能力得到了提升。</p><p><b>  參考文獻</b></p><p>  [1] 王琳、商周、王學

98、偉,數(shù)據(jù)采集系統(tǒng)的發(fā)展及應用.電測與儀表.2004,No.464</p><p>  [2] 89C52 百度百科</p><p>  [3] PCF8591 百度百科</p><p>  [4] LCD1602 百度百科</p><p>  [5] KEIL C51 百度百科 </p><p>  [6] Visua

溫馨提示

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

評論

0/150

提交評論