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