版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> The Design Of Multi-channel Data Acquisition System Based On SCM</p><p><b> 摘要</b></p><p> 本文介紹了基于單片機的數(shù)據(jù)采集的硬件設計和軟件設計,數(shù)據(jù)采集系統(tǒng)是模擬域與數(shù)字域之間必不可少的紐帶,它的存在具有著非常重要的作用。本文介紹的重點是數(shù)據(jù)采集系
2、統(tǒng),而該系統(tǒng)硬件部分的重心在于單片機。數(shù)據(jù)采集與通信控制采用了模塊化的設計,數(shù)據(jù)采集與通信控制采用了單片機AT89S52來實現(xiàn),硬件部分是以單片機為核心,還包括A/D模數(shù)轉換模塊,顯示模塊,和串行接口部分。該系統(tǒng)從機負責數(shù)據(jù)采集并應答主機的命令。8路被測電壓通過模數(shù)轉換器ADC0809進行模數(shù)轉換,實現(xiàn)對采集到的數(shù)據(jù)進行模擬量到數(shù)字量的轉換,并將轉換后的數(shù)據(jù)通過串行口MAX232傳輸?shù)缴衔粰C,由上位機負責數(shù)據(jù)的接受、處理和顯示,并用LE
3、D數(shù)碼顯示器來顯示所采集的結果。軟件部分應用VC++編寫控制軟件,對數(shù)據(jù)采集系統(tǒng)、模數(shù)轉換系統(tǒng)、數(shù)據(jù)顯示、數(shù)據(jù)通信等程序進行了設計。</p><p> 關鍵詞:數(shù)據(jù)采集 89C52單片機 ADC0809 MAX232</p><p><b> Abstract</b></p><p> This article describes
4、the hardware design and software design of the data on which based on signal-chip microcomputer .The data collection system is the link between the digital domain and analog domain. It has an very important function. The
5、 introductive point of this text is a data to collect the system. The hardware of the system focuses on signal-chip microcomputer .Data collection and communication control use modular design. The data collected to contr
6、ol with correspondence to adopt a mac</p><p> Keyword: data acquisition AT89C52 ADC0809 MAX232</p><p><b> 目錄</b></p><p><b> 第一章 緒論1</b></p>
7、<p> 1.1 研究背景及其目的意義1</p><p> 1.2 國內外研究現(xiàn)狀2</p><p> 1.3 該課題研究的主要內容內容2</p><p> 第二章 數(shù)據(jù)采集4</p><p> 2.1 數(shù)據(jù)采集系統(tǒng)4</p><p> 2.2 方案論證5</p>
8、<p> 2.2.1 A/D模數(shù)轉換的選擇5</p><p> 2.2.2單片機的選擇5</p><p> 2.2.3 串行口的選擇5</p><p> 2.2.4 顯示部分6</p><p> 2.2.5 按鍵6</p><p> 第三章 硬件部分8</p><p
9、> 3.1 主機部分8</p><p> 3.1.1 主機部分原理圖設計8</p><p> 3.1.2 單片機9</p><p> 3.2 從機部分13</p><p> 3.2.1 從機的電路原理圖設計13</p><p> 3.2.2 單片機之間的通信14</p>&l
10、t;p> 3.2.3 模數(shù)轉換器ADC080918</p><p> 第四章 軟件部分22</p><p> 4.1 簡介KeilUvision222</p><p> 4.2 主機程序設計26</p><p> 4.3 從機部分程序設計30</p><p> 第五章 調試結果33&l
11、t;/p><p><b> 總結34</b></p><p><b> 致謝36</b></p><p><b> 參考文獻37</b></p><p><b> 附錄138</b></p><p><b>
12、 附錄240</b></p><p><b> 第一章 緒論</b></p><p> 1.1 研究背景及其目的意義</p><p> 近年來,數(shù)據(jù)采集及其應用受到了人們越來越廣泛的關注,數(shù)據(jù)采集系統(tǒng)也有了迅速的發(fā)展,它可以廣泛的應用于各種領域。</p><p> 數(shù)據(jù)采集系統(tǒng)起始于20世紀50年代
13、,1956年美國首先研究了用在軍事上的測試系統(tǒng),目標是測試中不依靠相關的測試文件,由非成熟人員進行操作,并且測試任務是由測試設備高速自動控制完成的。由于該種數(shù)據(jù)采集測試系統(tǒng)具有高速性和一定的靈活性,可以滿足眾多傳統(tǒng)方法不能完成的數(shù)據(jù)采集和測試任務,因而得到了初步的認可。大概在60年代后期,國內外就有成套的數(shù)據(jù)采集設備和系統(tǒng)多屬于專用的系統(tǒng)。[11]</p><p> 20世紀70年代后期,隨著微型機的發(fā)展,誕生
14、了采集器、儀表同計算機溶為一體的數(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]</p><p> 20世紀80年代隨著計算機的普及應用,數(shù)據(jù)采集系統(tǒng)得到了很大的發(fā)展,開始出現(xiàn)了通用的數(shù)據(jù)采集與自動測試系統(tǒng)。該階段的數(shù)據(jù)采集系統(tǒng)主要有兩類
15、,一類以儀表儀器和采集器、通用接口總線和計算機組成。這類系統(tǒng)主要應用于實驗室,在工業(yè)生產現(xiàn)場也有一定的應用。第二類以數(shù)據(jù)采集卡、標準總線和計算機構成,這一類在工業(yè)現(xiàn)場應用較多。20世紀80年代后期,數(shù)據(jù)采集發(fā)生了很大的變化,工業(yè)計算機、單片機和大規(guī)模集成電路的組合,用軟件管理,是系統(tǒng)的成本減低,體積變小,功能成倍增加,數(shù)據(jù)處理能力大大加強。[11]</p><p> 20世紀90年代至今,在國際上技術先進的國家
16、,數(shù)據(jù)采集系統(tǒng)已成功的運用到軍事、航空電子設備及宇航技術、工業(yè)等領域。由于集成電路制造技術的不斷提高,出現(xiàn)了高性能、高可靠的單片機數(shù)據(jù)采集系統(tǒng)(DAS)。數(shù)據(jù)采集技術已經成為一種專門的技術,在工業(yè)領域得到了廣泛的應用。該階段的數(shù)據(jù)采集系統(tǒng)采用模塊式結構,根據(jù)不同的應用要求,通過簡單的增加和更改模塊,并結合系統(tǒng)編程,就可擴展或修改系統(tǒng),迅速組成一個新的系統(tǒng)。[11]</p><p> 盡管現(xiàn)在以微機為核心的可編程
17、數(shù)據(jù)采集與處理采集技術的發(fā)展方向得到了迅速的發(fā)展,而且組成一個數(shù)據(jù)采集系統(tǒng)只需要一塊數(shù)據(jù)采集卡,把它插在微機的擴展槽內并輔以應用軟件,就能實現(xiàn)數(shù)據(jù)采集功能,但這并不會對基于單片機為核心的數(shù)據(jù)采集系統(tǒng)產生影響。相較于數(shù)據(jù)采集板卡成本和功能的限制,單片機具多功能、高效率、高性能、低電壓、低功耗、低價格等優(yōu)點,而雙單片機又具有精度較高、轉換速度快、能夠對多點同時進行采集,因此能夠開發(fā)出能滿足實際應用要求的、電路結構簡單的、可靠性高的數(shù)據(jù)采集系
18、統(tǒng)。這就使得以單片機為核心的數(shù)據(jù)采集系統(tǒng)在許多領域得到了廣泛的應用。</p><p> 1.2 國內外研究現(xiàn)狀</p><p> 數(shù)據(jù)采集系統(tǒng)是通過采集傳感器輸出的模擬信號并轉換成數(shù)字信號,并進行分析、處理、傳輸、顯示、存儲和顯示。它起始于20世紀中期,在過去的幾十年里,隨著信息領域各種技術的發(fā)展,在數(shù)據(jù)采集方面的技術也取得了長足的進步,采集數(shù)據(jù)的信息化是目前社會的發(fā)展主流方向。各種領
19、域都用到了數(shù)據(jù)采集,在石油勘探、科學實驗、飛機飛行、地震數(shù)據(jù)采集領域已經得到應用。</p><p> 我國的數(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ù)經DSP數(shù)字濾波處理后,變成數(shù)字地
20、震信號。該數(shù)據(jù)采集系統(tǒng)具備24位A/D轉化位數(shù),采樣率有50HZ、100HZ、200HZ。[11]</p><p> 由美國PASCO公司生產的“科學工作室”是將數(shù)據(jù)采集應用于物理實驗的嶄新系統(tǒng),它由3部分組成:(1)傳感器:利用先進的傳感技術可實時采集技術可實時采集物理實驗中各物理量的數(shù)據(jù);(2)計算機接口:將來自傳感器的數(shù)據(jù)信號輸入計算機,采樣速率最高為25萬次/S;(3)軟件:中文及英文的應用軟件。[11
21、]</p><p> 受需求牽引,新一代機載數(shù)據(jù)采集系統(tǒng)為滿足飛行實驗應用也在快速地發(fā)展。如愛爾蘭ACRA公司2000年研發(fā)推出的新一代KAM500機載數(shù)據(jù)采集系統(tǒng)到了2006年。本系統(tǒng)采用16位(A/D)模擬數(shù)字變換,總采樣率達500K/S,同步時間為+/-250ns,可以利用方式組成高達1000通道的大容量的分布式采集系統(tǒng)。</p><p> 1.3 該課題研究的主要內容內容<
22、;/p><p> 數(shù)據(jù)采集技術是信息科學的重要分支之一, 它研究信息數(shù)據(jù)的采集、存儲、處理以及控制等問題。它是對傳感器信號的測量與處理, 以微型計算機等高技術為基礎而形成的一門綜合應用技術。數(shù)據(jù)采集也是從一個或多個信號獲取對象信息的過程。隨著微型計算機技術的飛速發(fā)展和普及,數(shù)據(jù)采集監(jiān)測已成為日益重要的檢測技術,廣泛應用于工農業(yè)等需要同時監(jiān)控溫度、濕度和壓力等場合。數(shù)據(jù)采集是工業(yè)控制等系統(tǒng)中的重要環(huán)節(jié),通常采用一些功
23、能相對獨立的單片機系統(tǒng)來實現(xiàn),作為測控系統(tǒng)不可缺少的部分,數(shù)據(jù)采集的性能特點直接影響到整個系統(tǒng)?!?lt;/p><p> 盡管現(xiàn)在以微機為核心的可編程數(shù)據(jù)采集與處理技術作為數(shù)據(jù)采集技術的發(fā)展方向得到了迅速的發(fā)展,并且適于通用微機(如IBM PC 系列) 使用的板卡級數(shù)據(jù)采集產品也已大量出現(xiàn),組成一個數(shù)據(jù)采集系統(tǒng)簡單到只需要一塊數(shù)據(jù)采集卡,把它插在微機的擴展槽內,并輔以應用軟件,就能實現(xiàn)數(shù)據(jù)采集功能,但這并不會對基于
24、單片機為核心的數(shù)據(jù)采集系統(tǒng)產生影響,因為單片機功能強大、抗干擾能力強、可靠性高、靈活性好、開發(fā)容易等優(yōu)點,使得基于單片機為核心的數(shù)據(jù)采集系統(tǒng)在許多領域得到了廣泛的應用.</p><p> 傳統(tǒng)的基于單片機的數(shù)據(jù)采集系統(tǒng)由于沒有上位機的支持,不管采用什么樣的數(shù)據(jù)存儲器,它的存儲容量都是有限的,所以不得不對存儲的歷史數(shù)據(jù)進行覆蓋刷新,這樣不利于用戶對數(shù)據(jù)進行整體分析,因而也不能對生產過程的狀況進行準確的把握。<
25、;/p><p> 本系統(tǒng)采用下位機負責模擬數(shù)據(jù)的采集,從單片機負責采集八路數(shù)據(jù),并應答主機發(fā)送的命令,上位機即主機是負責處理接受過來的數(shù)字量的處理及顯示,主機和從機之間用RS-232進行通信。這樣用戶可以在上位機上編寫各種程序對文件中的數(shù)據(jù)進行有效查詢和分析,有利于工業(yè)過程的長期正常運行和檢查。該系統(tǒng)采用的是AT89S52單片機,此芯片功能比較強大,能夠滿足設計要求。</p><p><
26、;b> 第二章 數(shù)據(jù)采集</b></p><p> 2.1 數(shù)據(jù)采集系統(tǒng)</p><p> 數(shù)據(jù)采集,又稱數(shù)據(jù)獲取,是利用一種裝置,從系統(tǒng)外部采集數(shù)據(jù)并輸入到系統(tǒng)內部的一個接口。數(shù)據(jù)采集技術廣泛引用在各個領域。</p><p> 70年代初,隨著計算機技術及大規(guī)模集成電路的發(fā)展,特別是微處理器及高速A/D轉換器的出現(xiàn),數(shù)據(jù)采集系統(tǒng)結構發(fā)生
27、了重大變革。原來由小規(guī)模集成的數(shù)字邏輯電路及硬件程序控制器組成的采集系統(tǒng)被微處理器控制的采集系統(tǒng)所代替。由微處理器去完成程序控制,數(shù)據(jù)處理及大部分邏輯操作,使系統(tǒng)的靈活性和可靠性大大地提高,系統(tǒng)硬件成本和系統(tǒng)的重建費用大大地降低。</p><p> 在該系統(tǒng)中需要將模擬量轉換為數(shù)據(jù)量,而 A/D是將模擬量轉換為數(shù)字量的器件,他需要考慮的指標有:分辨率、轉換時間、轉換誤差等等。而單片機是該系統(tǒng)的基本的微處理系統(tǒng),
28、它完成數(shù)據(jù)讀取、處理及邏輯控制,數(shù)據(jù)傳輸?shù)纫幌盗械娜蝿?。在該系統(tǒng)中采用的是8051系列的單片機。雙機通信的串行口可以采用RS232C標準接口,由芯片MAX232實現(xiàn)雙機的通信。而數(shù)據(jù)的顯示則采用的是LED數(shù)碼管,該器件比較簡單,在生活中接觸也較多。</p><p> 數(shù)據(jù)采集系統(tǒng)一般由信號調理電路,多路切換電路,采樣保持電路,A/D,單片機等組成。</p><p> 完成畢業(yè)設計所需要
29、的系統(tǒng)框圖如圖2.1所示:</p><p><b> 圖2.1 系統(tǒng)框圖</b></p><p><b> 2.2 方案論證</b></p><p> 2.2.1 A/D模數(shù)轉換的選擇</p><p> A/D轉換器的種類很多,就位數(shù)來說,可以分為8位、10位、12位和16位等。位數(shù)越高其分
30、辨率就越高,價格也就越貴。A/D轉換器型號很多,而其轉換時間和轉換誤差也各不相同。</p><p> (1)逐漸逼近式A/D轉換器:它是一種速度快、精度較高、成本較低的直接式轉換器,其轉換時間在幾微秒到幾百微秒之間。</p><p> (2)雙積分A/D轉換器:它是一種間接式的A/D轉換器,優(yōu)點是抗干擾能力強,精度比較高,缺點是數(shù)度很慢,適用于對轉換數(shù)度要求不高的系統(tǒng)。</p&g
31、t;<p> (3)并行式A/D轉換器:它又被稱為flash(快速)型,它的轉換數(shù)度很高,但她采用了很多個比較器,而n位的轉換就需要2n-1個比較器,因此電路規(guī)模也極大,價格也很貴,只適用于視頻A/D轉換器等數(shù)度特別高的領域。</p><p> 鑒于上面三種方案,在價格、轉換速度等多種標準考量下,在本設計選用的是逐漸逼近式A/D轉換器——ADC0809.</p><p>
32、 2.2.2單片機的選擇</p><p> 單片機是一種面向大規(guī)模的集成電路芯片,是微型計算機中的一個重要的分支。此系統(tǒng)是由CPU、隨即存取數(shù)據(jù)存儲器、只讀程序存儲器、輸入輸出電路(I/O口),還有可能包括定時/計數(shù)器、串行通信口、顯示驅動電路(LCD和LED驅動電路)、脈寬調制電路、模擬多路轉換器及A/D轉換器等電路集成到一個單塊芯片上,構成了一個最小但完善的計算機任務。單片機要使用特定的組譯和編譯軟件編譯
33、程序,在用keiluvision2把程序下載到單片機內。</p><p> 而本設計選用的是AT89C52.</p><p> 2.2.3 串行口的選擇</p><p> 該串行口我選用了標準RS-232C接口,它是電平與TTL電平轉換驅動電路。常用的芯片是MAX232,MAX232的優(yōu)點是:</p><p> ?。?)一片芯片可以完成
34、發(fā)送轉換和接收轉換的雙重功能。</p><p> ?。?)單一電源+5V供電</p><p> ?。?)它的電路設計與連接比較簡單而且功能齊全。</p><p> 2.2.4 顯示部分</p><p> LED數(shù)碼顯示管是一種由LED發(fā)光二極管組合顯示字符的顯示器件。它使用了8個LED顯示管,其中7個用于顯示字符,1個用來顯示小數(shù)點,故通
35、常稱之為八段發(fā)光二極管數(shù)碼顯示器。對LED數(shù)碼顯示器的控制可以采用按時間向它提供具有一定驅動能力的位選和段選信號。LED數(shù)碼顯示有動態(tài)掃描顯示法和靜態(tài)顯示。在單片機中,為了節(jié)省硬件資源,多采用動態(tài)掃描顯示法。</p><p><b> 2.2.5 按鍵</b></p><p> 鍵盤是一種常見的輸入設備,用戶可以向計算機輸入數(shù)據(jù)或命令。根據(jù)案件的識別方法分類,有編
36、碼鍵盤和非編碼鍵盤兩種。通過硬件識別的鍵盤稱編碼鍵盤;通過軟件識別的鍵盤成為非編碼鍵盤。非編碼鍵盤有兩種接口方法:一種是獨立按鍵接口;另一種是矩陣式按鍵接口。</p><p><b> 1、獨立按鍵接口</b></p><p> 在單片機中,如果所需的按鍵較少,可采用獨立式鍵盤。每只按鍵接單片機的一條I/O線,通過對線的查詢,即可識別各按鍵的狀態(tài)。如圖2.2所示。
37、4只按鍵分別宇單片機的P1.0~P1.3I/O線上。無按鍵按下時,P1.0~P1.3線上均輸入高電平。當某按鍵按下時,與其相連的I/O線將得到低電平輸入。</p><p> 圖2.2 獨立按鍵接口圖</p><p><b> 2.矩陣式按鍵接口</b></p><p> 在單片機中需要的按鍵較多時,通常把鍵排成矩陣形式,這樣可以節(jié)省硬件資
38、源。如對于20只按鍵接口,如采用按鍵獨立方式,需要20個I/O口。如采用矩陣式按鍵方式,則只需要9個I/O 口。如圖2.3所示。單片機系統(tǒng)中的非編碼式鍵盤程序主要由判別是否有鍵按下子程序、鍵的識別子程序、找到閉合鍵后,讀入相應的鍵值,再轉到相應的鍵處理程序幾個部分組成。</p><p> 圖2.3 矩陣式按鍵接口圖</p><p> 在該系統(tǒng)中所用到的按鍵有9個,所以采取矩陣式按鍵接口
39、方式。</p><p><b> 第三章 硬件部分</b></p><p><b> 3.1 主機部分 </b></p><p> 該系統(tǒng)是一個主從式多路數(shù)據(jù)采集系統(tǒng),主機和從機均用單片機實現(xiàn),它的主機部分負責數(shù)據(jù)處理和顯示,主機和從機之間用RS-232進行通信。它由AT89S52、MAX232、LED數(shù)碼顯示器組成
40、。</p><p> 3.1.1 主機部分原理圖設計</p><p> 由于主機要對從機有一個命令,所以用到按鍵,將按鍵接到單片機AT89C52的P3.4的端口上,按鍵的一端接地,當P3.4這條I/O線是一個低電平時,則表示按鍵按下。主機還要負責對采集到的數(shù)據(jù)進行處理和LED顯示,用兩個74HC573,一個與單片機AT89C52的P2.7口相連用于位選,一個與單片機AT89C52的P2
41、.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
42、,P3.2腳相連,再將MAX232上的13、14腳分別與db-9的3、6腳相連。單片機AT89C52的18、19腳與它的晶振電路相連,第9腳與它的復位電路相連。其原理圖如圖3.1所示</p><p> 圖3.1 主機部分電路原理圖</p><p><b> 3.1.2 單片機</b></p><p><b> ?。?)單片機的概述
43、</b></p><p> 單片機是一種集成的電路芯塊采用了超大規(guī)模技術把具有運算能力(如算術運算、邏輯運算、數(shù)據(jù)傳送、中斷處理)的微處理器(CPU),隨機存取數(shù)據(jù)存儲器(RAM),只讀程序存儲器(ROM),輸入輸出電路(I/O口),可能還包括定時計數(shù)器,串行通信口(SCI),顯示驅動電路(LCD或LED驅動電路),脈寬調制電路(PWM),模擬多路轉換及A/D轉換器等電路集成到一塊單片機上,構成一個
44、最小然而很完善的計算機系統(tǒng)。這些電路能在軟件的控制下準確快速的完成程序設計者事先規(guī)定的任務??偟亩詥纹瑱C的特點可以歸納為以下幾個方面:集成度高、存儲容量大、外部擴展能力強、控制功能強、低電壓、低功耗、性能價格比高、可靠性高這幾個方面。[8]</p><p> 單片機按內部數(shù)據(jù)通道的寬度,可分為4位、8位、16位及32位單片機。它們被應用在不同領域里,8位單片機由于功能強大,被廣泛的應用在工業(yè)控制、智能接口、儀
45、表儀器等各個領域。8位單片機在中、小規(guī)模應用場合仍占主流地位,代表了單片機的發(fā)展方向,在單片機應用領域發(fā)揮越來越大的作用。隨著移動通訊、網(wǎng)絡技術、多媒體技術等高科技產品進入家庭,32位單片機應用得到了長足發(fā)展??v觀單片機的發(fā)展過程,可以預示單片機的發(fā)展趨勢:</p><p><b> 微型單片化</b></p><p><b> 低功耗CMOS</
46、b></p><p><b> 3、與多品種共存</b></p><p> 4、可靠性和應用水平越來越高</p><p> 單片機有著微處理器所不具備的功能,它可以獨立地完成現(xiàn)代工業(yè)控制所要求的智能化控制功能這就是單片機的最大特點。然而單片機又不同于單板機,芯片在沒有開發(fā)前,它只是具備功能極強的超大規(guī)模集成電路,如果賦予它特定的程序
47、,它便是一個最小的、完整的微機控制系統(tǒng)。它與單板機或個人電腦有著本質的區(qū)別,單片機屬于芯片級應用,需要用戶了解單片機芯片的結構和指令系統(tǒng)以及其它集成電路應用技術和系統(tǒng)設計所需要的理論和技術,用這樣特定的芯片設計應用程序,從而使芯片具備特定的智能。[8]</p><p> ?。?) 簡介AT89C52</p><p> AT89C52是一種低功耗、高性能CMOS8位微控制器,具有8K 在系
48、統(tǒng)可編程Flash 存儲器。使用Atmel 公司高密度非易失性存儲器技術制造,與工業(yè)80C51 產品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使AT89S52為眾多嵌入式控制應用系統(tǒng)提供高靈活、超有效的解決方案。[8]</p><p> AT89S52具有以下標準功能: 8k字節(jié)Flash,256字節(jié)RAM,32
49、 位I/O 口線,看門狗定時器,2 個數(shù)據(jù)指針,三個16 位定時器/計數(shù)器,一個6向量2級中斷結構,全雙工串行口,</p><p> 圖3.2 AT89C52的引腳圖</p><p> 它一共有40個引腳,引腳又分為四類。其中有四個電源引腳,用來接入單片機的工作電源。工作電源又分主電源、備用電源和編程電源。還有兩個時鐘引腳XTAL1、XTAL2。還有由P0口、P1口、P2口、P3口的所
50、有引腳構成的單片機的輸入/輸出(I\O)引腳。最后一種是控制引腳,控制引腳有四條,部分引腳具有復位功能。</p><p> 綜上所述,單片機的引腳特點是:</p><p> 單片機多功能,少引腳,使得引腳復用現(xiàn)象較多。</p><p> 單片機具有四種總線形式:P0和P2組成的16位地址地址總線;P0分時復用為8位數(shù)據(jù)總線;ALE、PSEN、RST、EA和P3
51、口的INT0、INT1、T0、T1、WR、RD以及P1口的T2、T2EX組成控制總線;而P3口的RXD、TXD組成串行通信總線。</p><p> 89C52單片機的主要功能</p><p> ?與MCS-51單片機產品兼容</p><p> 8K字節(jié)在系統(tǒng)可編程Flash存儲器</p><p> ?1000次擦寫周期</p&g
52、t;<p> ?全靜態(tài)操作:0Hz~33Hz</p><p> ?三級加密程序存儲器</p><p> ?32個可編程I/O口線</p><p> ?三個16位定時器/計數(shù)器</p><p><b> ?八個中斷源</b></p><p> ?全雙工UART串行通道<
53、;/p><p> ?低功耗空閑和掉電模式</p><p><b> ?掉電后中斷可喚醒</b></p><p><b> ?看門狗定時器</b></p><p><b> ?雙數(shù)據(jù)指針</b></p><p><b> ?掉電標識符<
54、;/b></p><p> 3.1.3 LED數(shù)碼顯示器的應用原理</p><p> 簡單的講,LED數(shù)碼顯示器就是由發(fā)光二極管組成的,其內部結構如圖3.3所示,LED數(shù)碼顯示器有兩種連接方式:</p><p> ?。?)共陰極接法:把發(fā)光二極管的陰極連在一起構成公共陰極,使用時公共陰極接地。每個發(fā)光二極管的陽極與輸入端相連。如圖3.4所示</p&g
55、t;<p> (2)共陽極接法。把發(fā)光二極管的陽極連在一起構成公共陽極,使用時公共陽極接+5V,每個發(fā)光二極管的陰極通過電阻與輸入端相連。如圖3.5所示</p><p> 圖3.2 LED內部結構 圖3.3 共陰極接法 圖3.4 共陽極接法</p><p> 為了顯示字符,要為LED顯示器提供顯示段碼(或稱字形代碼),組成一個“8”
56、字的七段,再加上1個小數(shù)點位,共計八段。各段位碼位的對應關系如表3.1所示。[8]</p><p> 表3.1 段位碼對應關系</p><p><b> 3.2 從機部分 </b></p><p> 該系統(tǒng)的從機負責A/D模數(shù)轉換,并應答主機的命令,需要用到ADC0809、AT59C52,又由于它們兩個的時鐘頻率不一樣,所以又要用到一
57、個74LS74。</p><p> 3.2.1 從機的電路原理圖設計</p><p> 該部分需要對模擬量進行一次模數(shù)轉換,則要用到一個ADC0809,又因為它們之間的時鐘頻率不一樣又需要用到一個74LS74對其進行一個二分頻的工作,這個只需要將74LS74的第3根引腳與單片機AT89C52的第30根引腳相連,將74LS74 的第9根引腳與ADC0809的時鐘信號引腳相連。單片機AT8
58、9C52的P0口與ADC0809的D0~D7相連,而ADC0809的ADDA、ADDB、ADDC分別與P0口的低三位相連。其用到的MAX232與主機部分的電路連接方法一樣。其電路圖如3.5所示</p><p> 圖3.5 從機部分電路設計圖</p><p> 3.2.2 單片機之間的通信</p><p> ?。?)串口通信RS-232C</p>&
59、lt;p> 計算機與計算機或計算機與終端之間的數(shù)據(jù)傳送可以采用串行通訊和并行通訊二種方式。由于串行通訊方式具有使用線路少、成本低,特別是在遠程傳輸時,避免了多條線路特性的不一致而被廣泛采用。在串行通訊時,要求通訊雙方都采用一個標準接口,使不同的設備可以方便地連接起來進行通訊。 RS-232-C接口(又稱 EIA RS-232-C)是目前最常用的一種串行通訊接口。它是在1970年由美國電子工業(yè)協(xié)會(EIA)聯(lián)合貝爾系統(tǒng)、調制解調器
60、廠家及計算機終端生產廠家共同制定的用于串行通訊的標 準。它的全名是“數(shù)據(jù)終端設備(DTE)和數(shù)據(jù)通訊設備(DCE)之間 串行二進制數(shù)據(jù)交換接口技術標準”該標準規(guī)定采用一個25個腳的 DB25連接器,對連接器的每個引腳的信號內容加以規(guī)定,還對各種信號的電平加以規(guī)定。</p><p> ?。?)接口的信號內容 實際上RS-232-C的25條引線中有許多是很少使用的,在計算機與終端通訊中一般只使用3-9條引線。RS-2
61、32-C最常用的9條引線的信號內容。見表3.2所示</p><p> ?。?)接口的電氣特性 在RS-232-C中任何一條信號線的電壓均為負邏輯關系。即:邏輯“1”,-5— -15V;邏輯“0” +5— +15V 。噪聲容量為2V。即要求接收器能識別低至+3V的信號作為邏輯“0”,高于—3V的信號作為邏輯“1”。 </p><p> 表3.2 常用引線的信號內容</p>
62、<p> ?。?)接口的物理結構 RS-232C接口連接器一般使用型號為DB-25的25芯插頭座,通常插頭在DCE端,插座在DTE端。一些設備與PC機連接的RS-232-C接口,因為不使用對方的傳送控制信號,只需三條接口線,即“發(fā)送數(shù)據(jù)”、“接收數(shù)據(jù)”和“信號地”。所以采用DB-9的9芯插頭座,傳輸線采用屏蔽雙絞線。兩個DB-9的連接如圖3.6所示</p><p> 圖3.6 兩個DB-9的連接圖&l
63、t;/p><p> ?。?)傳輸電纜長度 由RS-232C標準規(guī)定在碼元畸變小于4%的情況下,傳輸電纜長度應為50英尺,其實這個4%的碼元畸變是很保守的,在實際應用中,約有99%的用戶是按碼元畸變10-20%的范圍工作的,所以實際使用中最大距離會遠超過50英尺。 </p><p> ?。?) 簡介MAX232</p><p> MAX232芯片是美信公司專門為電腦的R
64、S-232標準串口設計的接口電路,使用+5v單電源供電,可以實現(xiàn)TTL電平與RS-232C電平相互轉換的IC芯片。</p><p> MAX內部結構圖如圖3.7所示</p><p> 圖3.7 MAX232的內部結構圖</p><p> 內部結構基本可分三個部分:</p><p> 第一部分是電荷泵電路。由1、2、3、4、5、6腳和4
65、只電容構成。功能是產生+12v和-12v兩個電源,提供給RS-232串口電平的需要。</p><p> 第二部分是數(shù)據(jù)轉換通道。由7、8、9、10、11、12、13、14腳構成兩個數(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
66、、T2IN輸入轉換成RS-232數(shù)據(jù)從T1OUT、T2OUT送到電腦DB9插頭;DB9插頭的RS-232數(shù)據(jù)從R1IN、R2IN輸入轉換成TTL/CMOS數(shù)據(jù)后從R1OUT、R2OUT輸出。</p><p> 第三部分是供電。15腳GND、16腳VCC(+5v)。</p><p> 引腳結構圖如圖3.8所示:</p><p> 圖3.8 MAX232的引腳結構
67、圖</p><p> 其中引腳1-6(C1+、V+、C1_、C2+、C2-、V-)用于電源電壓轉換,只要在外部接入相應電解電容即可;引腳7-10和引腳11-14構成兩組TTL信號電平與RS-232C信號電平的轉換電路,對應引腳可直接與單片機串行口的TTL電平引腳和PC的RS-232C電平引腳相連。</p><p> 單片機與MAX232的連接如圖3.9所示</p><
68、;p> 圖3.9 單片機與MAX232的連接圖</p><p> 3.2.3 模數(shù)轉換器ADC0809</p><p> 在我們所測控的信號中軍事連續(xù)變化的物理量,而要對這些信號進行處理,則需要將其轉換為數(shù)字量,A/D轉換器就是為了將連續(xù)變化的模擬量轉換成計算機能接受的數(shù)字量。</p><p> 按模擬量轉換成數(shù)字量的原理可以分為3種:雙積分式、逐次逼
69、近式及并行式A/D轉換器。而該系統(tǒng)選用的是ADC0809,下面就具體的介紹一下ADC0809的工作原理。</p><p><b> C0809的介紹</b></p><p> ADC0809是八通道的八位逐次逼近式A/D轉換器。由單一的5V電源供電,片內帶有鎖存功能的8選1的模擬開關。由C、B、A的編碼來決定所選的模擬通道。轉換時間為100us。轉換誤差為1/2L
70、SB。</p><p> 它的引腳的排列及其功能,其引腳圖見3.10</p><p> 圖3.10 ADC0809的引腳圖</p><p> IN7~IN0 :八個通道的模擬輸入量。</p><p> ADDA、ADDB、ADDC:模擬通道地址線。當CBA=000時,IN0輸入,當CBA=111時,IN7輸入。</p>
71、<p> ALE:地址鎖存信號。</p><p> START:轉換啟動信號,高電平有效。</p><p> D7~D0:數(shù)據(jù)輸出線。三態(tài)輸出,D7是最高位,D0是最低位。</p><p> OE:輸出允許信號,高電平有效。</p><p> CLK:時鐘信號,最高頻率為 640KHZ。</p><p&
72、gt; EOC:轉換結束狀態(tài)信號。上升沿后高電平有效。</p><p> Vcc:+5V電源。</p><p> Vref:參考電壓。</p><p> 2、ADC0809時序圖及其接口電路</p><p> ADC0809的時序圖如圖3.11所示:</p><p> 圖3.11 ADC0809的時序圖&l
73、t;/p><p> 其工作過程是:ALE的上升沿將A、B、C端選擇的通道地址鎖存到8位A/D轉換器的輸入端。START的下降驗啟動8位A/D轉換器進行轉換。A/D轉換開始使EOC端輸出低電平。A/D轉換結束,EOC輸出高電平。該信號通??勺鳛橹袛嗌暾埿盘?。OE為讀出數(shù)據(jù)允許信號。OE端為高電平時,可以讀出轉換的數(shù)字量。硬件電路設計時,需根據(jù)時序關系及軟件進行設計。</p><p> ADC
74、0809與AT89C52單片機的接口方式,如圖3.12所示:</p><p> 圖3.12 ADC0809與單片機的連接圖</p><p> 由于ADC0809具有輸出3態(tài)鎖存器,其八位數(shù)據(jù)輸出引腳可直接與數(shù)據(jù)總線相連。地址譯碼引腳A、B、C分別與地址總線低三位A0、A1、A2相連,以選通IN0~IN7中的一個通道。在啟動A/D轉換時,由單片機的P3.4控制A/D轉換器的地址鎖存和轉換
75、啟動,由于ALE和START連在一起,因此AD0809在鎖存通道的同時,也啟動了A/D轉換器。在讀取轉換結果時,用低電平的讀信號RD,產生的正脈沖作為OE信號,用以打開三態(tài)輸出鎖存器。將轉換結果輸出。而低電平的寫信號WR則表示轉換結束狀態(tài)信號。</p><p><b> 第四章 軟件部分</b></p><p> 4.1 簡介KeilUvision2</p
76、><p> Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調試器等在內的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(UVISION)將這些組合在一起。</p><p> Keil有以下幾個特點:</p><p> 全功能的源代碼編輯器;</p><p> 器件庫用來配置開發(fā)工具設置;</p><p>
77、; 項目管理器用來創(chuàng)建和維護用戶的項目;</p><p> 集成的MAKE工具可以匯編、編譯和連接用戶嵌入式應用;</p><p> 所有開發(fā)工具的設置都是對話框形式的;</p><p> 真正的源代碼級的對CPU和外圍器件的調試器;</p><p> 高級GDI(AGDI)接口用來在目標硬件上進行軟件調試以及和Monitor-51
78、進行通信</p><p><b> 其使用的過程為:</b></p><p> 首先打開KeilUvision2,在KEIL系統(tǒng)中,每做個獨立的程序,都視為工程。首先從菜單中的工程中“新建工程”,建立我們將要做的工程項目:</p><p> 接下來Keil環(huán)境要求我們?yōu)?2工程選擇一個單片機型號;我們選擇Ateml公司的89C51(雖然我
79、使用的是AT89S52,但由于89S51與89C51內外部的結構完全一樣,所以這里仍然用“89C51”)?!按_定”后工程就算建立好了。</p><p> 立了工程項目以后現(xiàn)在就要為工程添加程序,點擊“文件”中的新建,新建一個空白文檔;這個空白文檔就是我們編寫單片機程序的場所。在這里可以進行編輯、修改等操作。根據(jù)題意,在文檔中寫入代碼,寫完后再檢查一下,然后保存,然后再將保存好的文檔添加到工程中,具體做法如下:&
80、lt;/p><p> 程序文件添加完畢后,對其進行編譯當前程序、編譯修改過的文件并生成應用程序、重新編譯所有文件并生成應用程序后,再點擊TARGET,則其頁面為:</p><p> 再點擊圖案上的Output鍵</p><p> 接下來就是點擊上圖中的select folder for objects鍵,得到下圖將其產生的HEX文件存儲在E盤zh文件夾中。<
81、/p><p> 最后一步就是利用STC-ISP將HEX文件燒錄到單片機里。</p><p> 4.2 主機程序設計</p><p> 本軟件系統(tǒng)有一個主程序,五個子程序,五個子程序分別為向串口發(fā)送數(shù)據(jù)子程序putc_to_serialport()、鍵盤掃描子程序Keys_Scan()、LED數(shù)據(jù)顯示子程序Display_Result(int d)、延時子程序Del
82、ay()、主機串口接受中斷子程序Serial_INT() interrupt 4。</p><p><b> ?。?)主程序</b></p><p> 主程序對系統(tǒng)進行初始化,主要是進行定時/計數(shù)的初始化,然后調用鍵盤掃描程序Keys_Scan(),再根據(jù)按下的鍵來調用向串口發(fā)送數(shù)據(jù)子程序putc_to_serialport()將相應的數(shù)據(jù)發(fā)送給串行口。當沒有鍵按下
83、時,則送一個數(shù)F給LED顯示器。其流程圖見圖4.1</p><p> ?。?)向串口發(fā)送數(shù)據(jù)子程序putc_to_serialport()</p><p> 該程序首先將數(shù)據(jù)發(fā)送到串行口,當T1=0時,表明傳送結束。其流程圖如4.2所示</p><p> ?。?)鍵盤掃描子程序Keys_Scan()</p><p> 該程序是先將行選好,
84、然后再選定列就可以確定到具體的哪一個按鍵。其流程圖如圖4.3所示</p><p> ?。?)LED顯示程序Display_Result(int d)</p><p> 該子程序用的數(shù)碼管動態(tài)顯示方式。先將單片機的P2.7口選通進行位選,然后將位選的值發(fā)送給單片機P1口。接著將單片機的P2.6口選通進行段選,然后將要顯示的數(shù)字的值發(fā)送給P0口。然后調用延時,接著將P2.7、P2.6口置0,
85、下面是重復上面的過程,直到要顯示的數(shù)字全部顯示在數(shù)碼上。其流程圖如4.4所示。</p><p> ?。?)主機串口接受中斷子程序Serial_INT() interrupt 4。</p><p> 當RI =1時,接受串口過來的數(shù)據(jù),并對該數(shù)據(jù)進行X*05H/0FFH的處理,接下來用處理過的數(shù)據(jù)調用LED顯示程序Display_Result(int d)。如圖4.4所示</p>
86、;<p><b> 圖4.1主程序</b></p><p> 圖4.2 向串口發(fā)送數(shù)據(jù)子程序putc_to_serialport()</p><p> 圖4.3鍵盤掃描子程序Keys_Scan()</p><p> 圖4.4 LED顯示程序Display_Result(int d)</p><p>
87、; 圖4.5 主機串口接受中斷子程序Serial_INT() interrupt 4</p><p> 4.3 從機部分程序設計</p><p> 該部分的程序包括一個主程序、三個子程序,三個子程序分別為從機串口接受中斷函數(shù)Serial_INT() interrupt 4、向串口發(fā)送數(shù)據(jù)子程序putc_to_SerialPort(uchar c)和模數(shù)轉換子程序ADCON。</
88、p><p><b> (1)主程序</b></p><p> 主程序是進行系統(tǒng)的初始化,由于主從兩個單片機要進行通信,所以兩個單片機的初始化應該是相同的,并調用A/D轉換。其流程圖如圖4.6所示</p><p> ?。?)從機串口接受中斷函數(shù)Serial_INT() interrupt 4</p><p> 因為發(fā)送完
89、成和接受到新字節(jié)都會觸發(fā)串口中斷,因此串口中斷程序里用if(RI)來表示接受中斷,然后將RI清0。再判斷接受到的數(shù)據(jù)第4位是否為1,如果為1,則按照主機發(fā)送過來的通道進行采集,如果為0,則調用循環(huán)采集程序。如圖4.7所示</p><p> (3)模數(shù)轉換子程序ADCON</p><p> 先要選通ADC0809,又因為ADC0809具有8個通道,利用For循環(huán)進行8次采集,接下來選擇轉
90、換通道,F(xiàn)8H~FFH用以選擇輸入模擬信號的通道IN0~IN7的選擇,首先從第一個通道開始,然后執(zhí)行一條讀取轉換結果的指令,再將轉換得到的結果送給串行口,再依次循環(huán),將通道號自增1,直到8個通道全部轉換完。其流程圖如圖4.8所示</p><p> (4)向串口發(fā)送數(shù)據(jù)子程序putc_to_SerialPort(uchar c)</p><p> 程序首先將數(shù)據(jù)發(fā)送到串行口,當T1=0時
91、,表明傳送結束。如圖4.2所示</p><p><b> 圖4.6 主程序</b></p><p> 圖4.7 從機串口接受中斷函數(shù)Serial_INT() interrupt 4</p><p> 圖4.8模數(shù)轉換子程序ADCON</p><p><b> 第五章 調試結果</b><
92、/p><p> 這個系統(tǒng)是一個主從式的數(shù)據(jù)采集系統(tǒng)。系統(tǒng)調試以程序為主,硬件調試應先檢測電路的焊接是否正確,然后用外用表檢測或通電檢測其是否有短路或斷路。軟件調試包括調試程序和對硬件準確性的調試。</p><p> 在整個系統(tǒng)中,主機用到了9個按鍵,按鍵0按下后,發(fā)送一個00H的數(shù)據(jù)給從機,而從機接收到這個信號就開始調用一個循環(huán)采集方式,然后從機采集完數(shù)據(jù)后再將轉換好的數(shù)據(jù)和采集線路的通道
93、號發(fā)送給主機并用LED數(shù)據(jù)顯示器顯示出來;按鍵1-8用于選擇采集方式,分別送相應的采集線路的通道號給從機,然后再將從機轉換好的數(shù)據(jù)和采集線路的通道號發(fā)送給主機并用LED數(shù)據(jù)顯示器顯示出來;當主機沒有按鍵按下時,則發(fā)送一個數(shù)0給LED。</p><p><b> 參考文獻</b></p><p> [1] 嚴潔.單片機原理及其接口技術.機械工業(yè)出版社,2010,65
94、-105</p><p> [2] 范紅剛.51單片機自學筆記.北京航空航天大學出版社,2009</p><p> [3] 高云.基于MSP430的溫室多路數(shù)據(jù)采集系統(tǒng).農機化研究,2009,No.8</p><p> [4] 常鐵原,王欣,陳文軍. 多路數(shù)據(jù)采集系統(tǒng)的設計.電子技術應用,2008,No.11</p><p> [5]
95、 葉紅海,李麗敏.基于單片機的多路數(shù)據(jù)采集系統(tǒng)的設計與實現(xiàn).2008,No.4</p><p> [6] 彭偉.單片機C語言程序設計實訓100例.電子工業(yè)出版社,2009,46-48,104-110</p><p> [7] 楊居義,楊曉琴,王益斌等.單片機課程設計指導.清華大學出版社,2009,135-141</p><p> [8] 劉剛,秦永左,朱杰斌.
96、單片機原理及應用.北京大學出版社,2006,76-98,134-155</p><p> [9] 林祝亮,武林,楊金華.基于雙單片機的多路數(shù)據(jù)采集系統(tǒng)設計.儀器儀表學報,2006,No.6</p><p> [10] 元增民,張文希.單片機原理與應用基礎.國防科技大學出版社,2006,205-266</p><p> [11] 王琳,商周,王學偉.數(shù)據(jù)采集的發(fā)
97、展及應用.電測與儀表,2004,No.464</p><p> [12] V. Schmidt, Control, data acquisition, and remote participation for fusion research, Fusion Eng. Des. 81 (2006) 1702–1712.</p><p> [13] A.Neto,H.Fernandes,A
98、.Duarte, Firesignal-Data acquisition and control system software.FusionEngineering and Design 82(2007)1359-1364.</p><p><b> 附錄1</b></p><p><b> 系統(tǒng)硬件圖</b></p><
99、p><b> 附錄2</b></p><p><b> 主機部分程序</b></p><p> #include<reg52.h></p><p> #define uchar unsigned char</p><p> #define uint unsigned in
100、t</p><p> sbit k1=P3^4;</p><p> sbit smgd=P2^6;</p><p> sbit smgk=P2^7;</p><p> uchar Pre_KeyNo=16,KeyNo=16;</p><p> uchar code LEDData[]={0X3F,0X06,0
101、X5B,0X4F,0X66,0X6D,0X7D,0X07, 0X7F,0X6F,0X77,0X7C,0X39,0X5E,0X79, 0X71}</p><p> /*****延時子程序*****/</p><p> void Delay(uint x)</p><p> { uchar i;</p><p> while(x--)&l
102、t;/p><p> for(i=0;i<120;i++);</p><p><b> }</b></p><p> /**************LED顯示子程序***************/</p><p> void Display_Result(int d)</p><p>&l
103、t;b> { </b></p><p> smgk=1; </p><p><b> P0=0X7C;</b></p><p><b> smgd=1;</b></p><p> P0=LEDData[d/100]; //顯
104、示百位</p><p><b> Delay(5);</b></p><p><b> smgd=0;</b></p><p><b> smgk=0;</b></p><p><b> smgk=1;</b></p><p&g
105、t; P0=0X7D; </p><p><b> smgd=1;</b></p><p> P0=LEDData[d/10%10]; //顯示十位</p><p><b> Delay(5);</b></p><p><b> smgd=0;</b>&
106、lt;/p><p><b> smgk=0;</b></p><p><b> P0=0x7E;</b></p><p><b> smgd=1;</b></p><p> P0=LEDData[d%10]; //顯示個位</p><p><
107、;b> Delay(5);</b></p><p><b> smgk=0;</b></p><p><b> smgd=0;</b></p><p><b> smgk=1;</b></p><p><b> P0=0X7C;</b
108、></p><p><b> smgd=1;</b></p><p> P0=0x80; //顯示小數(shù)點</p><p><b> Delay(5);</b></p><p><b> smgd=0;</b></p><p>&l
109、t;b> smgk=0;</b></p><p><b> }</b></p><p> /************鍵盤掃描子程序**************/</p><p> void Keys_Scan()</p><p> { uchar Tmp,An;</p><
110、p> P3=0XF0; //低四位置1,放入4行</p><p><b> Delay(1);</b></p><p> An=P3^0XF0; //按鍵后11110000將變成XXXX0000,X中有一個為0,3個仍為1,而
111、異或操作會把3個1變成0,唯一的0變成1</p><p> Tmp=An>>4; //該表達式將高4位移到低四位 </p><p> swith(Tmp) //判斷按鍵發(fā)生在哪列</p>
112、<p><b> {</b></p><p> case 1:KeyNo=0;break;</p><p> case 2:KeyNo=1;break;</p><p> case 4:KeyNo=2;break;</p><p> case 8:KeyNo=3;break;</p>
113、<p> default: KeyNo=16; //無鍵按下</p><p><b> }</b></p><p> P3=0X0F; //高4位置0,放入4列</p><p><b> Delay
114、(1);</b></p><p> Tmp=P3^0xF0; // 按鍵后00001111將變成0000XXXX,X中有一個為0,3個仍為1,而異或操作會把3個1變成0,唯一的0變成1</p><p> switch(Tmp) //0—3行分別附加起始值0,4
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 模數(shù)數(shù)據(jù)采集系統(tǒng)畢業(yè)設計--ad數(shù)據(jù)采集系統(tǒng)設計
- usb數(shù)據(jù)采集系統(tǒng)設計畢業(yè)設計
- 畢業(yè)設計---高速數(shù)據(jù)采集系統(tǒng)設計
- 畢業(yè)設計---流速壓力數(shù)據(jù)采集系統(tǒng)
- 多路數(shù)據(jù)采集系統(tǒng)畢業(yè)設計
- 數(shù)據(jù)采集畢業(yè)設計
- 多路數(shù)據(jù)采集系統(tǒng)畢業(yè)設計
- 畢業(yè)設計---流速壓力數(shù)據(jù)采集系統(tǒng)
- 畢業(yè)設計----多路數(shù)據(jù)采集系統(tǒng)設計
- 畢業(yè)設計(論文)-流速壓力數(shù)據(jù)采集系統(tǒng)
- 基于labview的數(shù)據(jù)采集系統(tǒng)設計【畢業(yè)設計】
- 畢業(yè)設計----虛擬儀器設計-數(shù)據(jù)采集系統(tǒng)
- 畢業(yè)設計(論文)多路數(shù)據(jù)采集系統(tǒng)設計
- 基于labview的數(shù)據(jù)采集系統(tǒng)設計【畢業(yè)設計】
- 畢業(yè)設計(論文)虛擬儀器設計-數(shù)據(jù)采集系統(tǒng)
- 畢業(yè)設計---基于無線傳輸?shù)臄?shù)據(jù)采集系統(tǒng)設計
- 基于fpga的高速數(shù)據(jù)采集系統(tǒng)畢業(yè)設計
- 電能數(shù)據(jù)采集系統(tǒng)設計畢業(yè)設計(含外文翻譯)
- 畢業(yè)設計---機車入庫無線數(shù)據(jù)采集系統(tǒng)的設計
- 畢業(yè)設計---基于無線傳輸?shù)臄?shù)據(jù)采集系統(tǒng)設計
評論
0/150
提交評論