2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  前言2</b></p><p>  1 總體方案設計3</p><p>  1.1 方案論證4</p><p>  1.1.1 傳感器4</p><p>  1.1.2 主控部分4</p><p>  2 硬件電路的設計5</p>

2、<p>  2.1 電源電路5</p><p>  2.2 溫度采集電路6</p><p>  2.2.1 DS18B20簡介6</p><p>  2.2.2 電路設計8</p><p>  2.2.3 無線傳輸電路模塊9</p><p>  3 無線發(fā)送與接收電路9</p&g

3、t;<p>  3.1 無線發(fā)送電路9</p><p>  3.2 無線接收模塊10</p><p>  4 顯示電路11</p><p>  4.1 字符型液晶顯示模塊11</p><p>  4.2 字符型液晶顯示模塊引腳11</p><p>  4.3 字符型液晶顯示模塊內(nèi)部結

4、構12</p><p>  5 單片機AT89S5213</p><p>  5.1 AT89S52簡介13</p><p>  5.2 AT89S52引腳說明14</p><p>  6 軟件設計16</p><p>  6.1 系統(tǒng)概述16</p><p>  6.2

5、 程序設計流程圖16</p><p>  6.3 溫度傳感器多點數(shù)據(jù)采集17</p><p>  7 調(diào)試及結果17</p><p>  7.1 測試環(huán)境及工具17</p><p>  7.2 測試方法17</p><p>  7.3 測試結果分析17</p><p>&l

6、t;b>  8 總結18</b></p><p>  附錄1: 電路原理總圖19</p><p>  附錄2: 發(fā)射部分主程序20</p><p>  附錄3: 接收部分主程序26</p><p><b>  參考文獻31</b></p><p>  無線溫度采集系統(tǒng)

7、的設計與實現(xiàn)</p><p><b>  內(nèi)容摘要。</b></p><p>  在分析了不同類型的單片機的特點及單片機與PC機通信技術的基礎上,設計了單片機控制的采集系統(tǒng),并通過串口通信實現(xiàn)單片機與P(:機之間的通信,實現(xiàn)數(shù)據(jù)的傳送并將數(shù)據(jù)在PC機上顯示及存儲,完成單機的溫度采集系統(tǒng)的設計及實現(xiàn)。</p><p>  基于單片機的溫度采集系統(tǒng)

8、是由將來自傳感器的信號通過放大、線性化、濾波、同步采樣保持等處理后,輸入A/D轉換為數(shù)字信號后由單片機采集,然后利用單片機與PC機的通信將數(shù)據(jù)送到PC機進行數(shù)據(jù)的存儲、后期處理與顯示,實現(xiàn)了數(shù)據(jù)處理功能強大、顯示直觀、界面友好、性價比高、應用廣泛的特點,可廣泛應用于工業(yè)控制、儀器、儀表、機電一體化、智能家居等諸多領域。</p><p>  關鍵詞:多通道 溫度采集 單片機</p><p&g

9、t;  Design and implementation of wireless data acquisition system</p><p><b>  Abstract:</b></p><p>  Based on the analysis of the characteristics of different types of SCM and SCM an

10、d PC communication technology, SCM control of the collection system designed and adopted MCU serial communication between PC and communications, Data transmission and display of data stored on the PC.Single completed

11、the temperature acquisition system design and implementation.</p><p>  Based on SCM′s temperature acquisition system is adopted will come from the sensor signal amplification, linear filtering, After proces

12、sing maintain synchronous sampling, which converted to digital signal input A/D conversion by SCM Acquisition, Then, SCM and PC to PC communications data to the data storage, post-processing and display. a powerful data

13、processing, visual shows, friendly interface and high performance-price ratio, a wide range of features. can be widely used in industrial control</p><p>  Key words: Multi-channel temperature Acquisition M

14、icrocontroller</p><p>  無線數(shù)據(jù)采集系統(tǒng)的設計與實現(xiàn)</p><p><b>  前言 </b></p><p>  21世紀的今天,科學技術的發(fā)展日新月異,科學技術的進步同時也帶動了測量技術的發(fā)展,現(xiàn)代控制設備不同于以前,它們在性能和結構發(fā)生了翻天覆地的變化。我們已經(jīng)進入了高速發(fā)展的信息時代,測量技術是當今社會的主流

15、,廣泛地深入到應用工程的各個領域。</p><p>  溫度是工業(yè)、農(nóng)業(yè)生產(chǎn)中常見的和最基本的參數(shù)之一,在生產(chǎn)過程中常需對溫度進行檢測和監(jiān)控,采用微型機進行溫度檢測、數(shù)字顯示、信息存儲及實時控制,對于提高生產(chǎn)效率和產(chǎn)品質(zhì)量、節(jié)約能源等都有重要的作用。伴隨工業(yè)科技、農(nóng)業(yè)科技的發(fā)展,溫度測量需求越來越多,也越來越重要。但是在一些特定環(huán)境溫度監(jiān)測環(huán)境范圍大,測點距離遠,布線很不方便。這時就要采用無線方式對溫度數(shù)據(jù)進行采

16、集。 </p><p>  多路無線溫度采集系統(tǒng)可被廣泛應用于溫度測量或相應的可轉換為溫度量或供電故障監(jiān)控的工業(yè)、農(nóng)業(yè)、環(huán)保、服務業(yè)、安全監(jiān)控等工程中,例如:城市路燈故障檢測和供電線路防盜監(jiān)視、城市居民小區(qū)供熱檢測、大型倉庫溫度檢測、工業(yè)生產(chǎn)測控、農(nóng)業(yè)生產(chǎn)溫度測控、環(huán)保工程、故障監(jiān)控工程等。考慮到許多工業(yè)環(huán)境中對多點溫度進行監(jiān)控,一般需要測量幾十個點以上。本文設計多路無線溫度監(jiān)控系統(tǒng)。</p>&l

17、t;p>  本設計是以Atmel公司的AT89S51單片機作為控制核心,提出以DS18B20的單總線分布式溫度采集與控制系統(tǒng)。多個溫度傳感節(jié)點通過單總線與單片機相連形成分布式系統(tǒng)??刂破魍ㄟ^溫度傳感器實時檢測各節(jié)點的溫度變化,并在LCD1602上循環(huán)顯示各節(jié)點溫度的變化。通過串口將檢測到的溫度信息回饋到上位機(PC機),從而遠程實現(xiàn)對整個系統(tǒng)的檢測。</p><p>  因為采用微型機進行溫度檢測、數(shù)字顯示

18、、信息存儲及實時控制,對于提高生產(chǎn)效率和產(chǎn)品質(zhì)量、節(jié)約能源等都有重要的作用,并且溫度參數(shù)對工業(yè)生產(chǎn)的重要性,所以溫度測量系統(tǒng)的精確度和智能化一直受到企業(yè)的重視。所以學習并研究溫度測量及相關知識可做為一個較為實用的課題的方向,能獲得較實用的知識和方法。因此溫度測控技術是一個很實用、也很重要的技術,值得去研究掌握。它應用的領域也相當廣泛,可以應用到消防電氣的非破壞性溫度檢測,電力、電訊設備的過熱故障預知檢測,空調(diào)系統(tǒng)的溫度檢測,各類運輸工具

19、之組件的過熱檢測,保全與監(jiān)視系統(tǒng)之應用,醫(yī)療與健診的溫度測試,化工、機械…等設備溫度過熱檢測。因此前景是相當?shù)目捎^。</p><p><b>  1 總體方案設計</b></p><p>  溫度檢測系統(tǒng)有則共同的特點:測量點多、環(huán)境復雜、布線分散、現(xiàn)場離監(jiān)控室遠等。若采用一般溫度傳感器采集溫度信號,則需要設計信號調(diào)理電路、A/D 轉換及相應的接口電路,才能把傳感器

20、輸出的模擬信號轉換成數(shù)字信號送到計算機去處理。這樣,由于各種因素會造成檢測系統(tǒng)較大的偏差;又因為檢測環(huán)境復雜、測量點多、信號傳輸距離遠及各種干擾的影響,會使檢測系統(tǒng)的穩(wěn)定性和可靠性下降 。所以多點溫度檢測系統(tǒng)的設計的關鍵在于兩部分:溫度傳感器的選擇和主控單元的設計。溫度傳感器應用范圍廣泛、使用數(shù)量龐大,也高居各類傳感器之首。</p><p><b>  1.1 方案論證</b></p

21、><p>  1.1.1 傳感器</p><p>  方案一:采用熱敏電阻,可滿足40攝氏度至90攝氏度測量范圍,但熱敏電阻精度、重復性、可靠性較差,對于檢測1攝氏度的信號是不適用的。</p><p>  方案二:采用單片模擬量的溫度傳感器,比如AD590,LM35等。但這些芯片輸出的都是模擬信號,必須經(jīng)過A/D轉換后才能送給計算機,這樣就使得測溫裝置的結構較復雜。另

22、外,這種測溫裝置的一根線上只能掛一個傳感器,不能進行多點測量。即使能實現(xiàn),也要用到復雜的算法,一定程度上也增加了軟件實現(xiàn)的難度。</p><p>  方案三:采用數(shù)字溫度傳感器DS18B20測量溫度,輸出信號全數(shù)字化。便于單片機處理及控制,省去傳統(tǒng)的測溫方法的很多外圍電路。且該芯片的物理化學性很穩(wěn)定,它能用做工業(yè)測溫元件,此元件線性度較好。在0~100攝氏度時,最大線形偏差小于1攝氏度。DS18B20的最大特點之

23、一采用了單總線的數(shù)據(jù)傳輸,由數(shù)字溫度計DS1820和微控制器AT89S52構成的溫度測量裝置,它直接輸出溫度的數(shù)字信號,可直接與計算機連接。這樣,測溫系統(tǒng)的結構就比較簡單,體積也不大,且由于AT89S52可以帶多個DSB1820,因此可以非常容易實現(xiàn)多點測量。輕松的組建傳感器網(wǎng)絡。</p><p>  采用溫度芯片DS18B20測量溫度,可以體現(xiàn)系統(tǒng)芯片化這個趨勢。部分功能電路的集成,使總體電路更簡潔,搭建電路和

24、焊接電路時更快。而且,集成塊的使用,有效地避免外界的干擾,提高測量電路的精確度。所以集成芯片的使用將成為電路發(fā)展的一種趨勢。本方案應用這一溫度芯片,也是順應這一趨勢。</p><p>  1.1.2 主控部分</p><p>  方案一:采用AT89S52八位單片機實現(xiàn)。單片機軟件編程的自由度大,可通過編程實現(xiàn)各種各樣的算術算法和邏輯控制。而且體積小,硬件實現(xiàn)簡單,安裝方便。既可以單獨對

25、多DS18B20控制工作,還可以與PC機通信.運用主從分布式思想,由一臺上位機(PC微型計算機),下位機(單片機)多點溫度數(shù)據(jù)采集,組成兩級分布式多點溫度測量的巡回檢測系統(tǒng),實現(xiàn)遠程控制。另外AT89C51在工業(yè)控制上也有著廣泛的應用,編程技術及外圍功能電路的配合使用都很成熟[1]。</p><p>  方案二:使用MSP430作控制器,德州儀器 (TI) 的超低功率16位RISC 混合信號處理器MSP430產(chǎn)品

26、系列為電池供電測量應用提供了最終解決方案。作為混合信號和數(shù)字技術的領導者,TI創(chuàng)新生產(chǎn)的MSP430,使系統(tǒng)設計人員能夠在保持獨一無二的低功率的同時同步連接至模擬信號、傳感器和數(shù)字組件。但在溫度采集和實施控制這個重要的場合低功耗相對來說顯得就不是那么重要了,而應該考慮它的穩(wěn)定性、準確性,同時對比AT89S52能夠在性能和資源都可以到達一個最佳的狀態(tài),可以避免用MSP430的不必要的資源浪費。</p><p>  

27、綜上,我們傳感器采用方案二,控制器采用方案一。系統(tǒng)框圖如下圖。</p><p>  圖1.1.2-1 發(fā)射電路系統(tǒng)框圖 圖1.1.2-2 接收電路系統(tǒng)框圖</p><p>  2 硬件電路的設計</p><p>  本課題所設計的外圍電路包括:電源電路、溫度采集、時鐘電路、存儲電路、報警電路、模擬控制電路、按鍵電路、顯示電路以及

28、串口等電路。下面將依次對各個模塊進行說明。</p><p><b>  2.1 電源電路</b></p><p>  電源變壓器是將交流電網(wǎng)220V的電壓變?yōu)樗枰碾妷褐?。交流電?jīng)過二極管整流之后,方向單一了,但是電流強度大小還是處在不斷地變化之中。這種脈動直流一般是不能直接用來給集成電路供電的,而要通過整流電路將交流電變成脈動的直流電壓。由于此脈動的直流電壓還含

29、有較大的紋波,必須通過濾波電路加以濾除,從而得到平滑的直流電壓。濾波的任務,就是把整流器輸出電壓中的波動成分盡可能地減小,改造成接近穩(wěn)恒的直流電。但這樣的電壓還隨電網(wǎng)電壓波動,一般有±10%左右的波動,負載和溫度的變化而變化,因而在整流、濾波電路之后,還需要接穩(wěn)壓電路。</p><p>  穩(wěn)壓電路的作用是當電網(wǎng)電壓波動,負載和溫度變化時,維持輸出直流電壓穩(wěn)定。220V交流電通過9V變壓器變?yōu)?V的交流

30、電,9V交流電通過四個二極管的全橋整流后變?yōu)?V直流電,然后經(jīng)過電解電容(470μF)進行一級濾波,以去除直流電里面的雜波,防止干擾。9V直流電出來后再經(jīng)過三端穩(wěn)壓器LM7805穩(wěn)壓成為穩(wěn)定的5V電源,其中7805的Vin腳是輸入腳,接9V直流電源正極,GND是接地腳,接9V直流電源負極,Vout為輸出腳,它和接地腳的電壓就是+5V了。5V電源出來再經(jīng)過電解電容的二級濾波,使5V電源更加穩(wěn)定可靠。同時在5V穩(wěn)壓電源加上一個10K的電阻和

31、一個紅色發(fā)光二極管,當上電后,紅色發(fā)光二極管點亮,表示電源工作正常。此時一個穩(wěn)定輸出5V的電源已經(jīng)設計好,對于本設計它完全能夠滿足單片機及集成塊所需電源的要求[2]。電源原理圖如圖2.1-1所示。</p><p>  圖2.1-1 電源原理圖</p><p>  2.2 溫度采集電路</p><p>  2.2.1 DS18B20簡介</p>&

32、lt;p>  溫度芯片DS18B20是Dallas公司生產(chǎn)的一線式數(shù)字溫度傳感器,具有3引腳TO-92小體積封裝形式。測溫分辨率可達0.0625℃,被測溫度用符號擴展的16位數(shù)字量方式串行輸出。測量溫度范圍為 -55℃~+125℃,在-10℃~+85℃范圍內(nèi),精度為±0.5℃。其工作電源既可在遠端引入,也可采用寄生電源方式產(chǎn)生。CPU只需一根端口線就能與諸多DS18B20通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏

33、輯電路。由于每一個DS18B20都有唯一系列號,因此多個DS18B20可以存在同一條單總線上。這允許許多不同地方放置溫度靈敏器件。此特性的應用范圍包括HAVC環(huán)境控制,建筑物、設備或機械內(nèi)的溫度檢測,以及過程監(jiān)控和控制中的溫度檢測等[3]。DS18B20的內(nèi)部結構如圖2.2.1-1所示。</p><p>  圖2.2.1-1 DS18B20方框圖</p><p>  DS18B20有4個

34、主要的數(shù)據(jù)部件:</p><p>  A、64位激光ROM。64位激光ROM從高位到低位依次為8位CRC、48位序列號和8位家族代碼(28H)組成。</p><p><b>  B、溫度靈敏元件。</b></p><p>  C、非易失性溫度報警觸發(fā)器TH和TL??赏ㄟ^軟件寫入用戶報警上下限值。</p><p>  D、

35、配置寄存器。配置寄存器為高速暫存存儲器中的第五個字節(jié)。其中R0、R1:溫度計分辨率設置位,其對應四種分辨率如下表所列,出廠時R0、R1置為缺省值:R0=1,R1=1(即12位分辨率),用戶可根據(jù)需要改寫配置寄存器以獲得合適的分辨率。</p><p>  表 2.2.1-1 分辨率關系表</p><p>  高速暫存存儲器由9個字節(jié)組成,其分配如表2.2.1-2所示。當溫度轉換命令發(fā)布后,

36、經(jīng)轉換所得的溫度值以二字節(jié)補碼形式存放在高速暫存存儲器的第0和第1個字節(jié)。單片機可通過單線接口讀到該數(shù)據(jù),讀取時低位在前,高位在后,數(shù)據(jù)格式如表2.2.1-2所示。對應的溫度計算:當符號位S=0時,直接將二進制位轉換為十進制;當S=1時,先將補碼變?yōu)樵a,再計算十進制值。</p><p>  表2.2.1-2 DS18B20存儲器</p><p>  2.2.2 電路設計</p&

37、gt;<p>  本系統(tǒng)為多點溫度測試。DS18B20采用外部供電方式,理論上可以在一根數(shù)據(jù)總線上掛256個DS18B20,但時間應用中發(fā)現(xiàn),如果掛接25個以上的DS18B20仍舊有可能產(chǎn)生功耗問題。另外單總線長度也不宜超過80M,否則也會影響到數(shù)據(jù)的傳輸。在這種情況下我們可以采用分組的方式,用單片機的多個I/O來驅動多路DS18B20。在實際應用中還可以使用一個MOSFET將I/O口線直接和電源相連,起到上拉的作用[4]

38、。電路如圖2.2.2-1。</p><p>  圖2.2.2-1 單總線原理圖</p><p>  對DS18B20的設計,需要注意以下問題:</p><p>  A、對硬件結構簡單的單線數(shù)字溫度傳感器DS18B20 進行操作,需要用較為復雜的程序完成。編制程序時必須嚴格按芯片數(shù)據(jù)手冊提供的有關操作順序進行,讀、寫時間片程序要嚴格按要求編寫。尤其在使用DS18B2

39、0 的高測溫分辨力時,對時序及電氣特性參數(shù)要求更高。</p><p>  B、有多個測溫點時,應考慮系統(tǒng)能實現(xiàn)傳感器出錯自動指示,進行自動DS18B20 序列號和自動排序,以減少調(diào)試和維護工作量。</p><p>  C、測溫電纜線建議采用屏蔽4 芯雙絞線,其中一對線接地線與信號線,另一組接VCC和地線,屏蔽層在源端單點接地。DS18B20 在三線制應用時,應將其三線焊接牢固;在兩線應用時

40、,應將VCC與GND接在一起,焊接牢固。若VCC脫開未接,傳感器只送85℃的溫度值。</p><p>  D、實際應用時,要注意單線的驅動能力,不能掛接過多的DS18B20,同時還應注意最遠接線距離。另外還應根據(jù)實際情況選擇其接線拓撲結構。</p><p>  2.2.3 無線傳輸電路模塊</p><p>  無線傳輸模塊,采用集成芯片PT2262和PT2272來

41、構建收發(fā)電路。PT2262/PT2272 是臺灣普城公司生產(chǎn)的一種CMOS 工藝制造的低功耗低價位通用編解碼電路,PT2262/PT2272 最多可有12 位(A0-A11)三態(tài)地址端管腳(懸空,接高電平,接低電平),任意組合可提供531441 地址碼,PT2262 最多可有6 位(D0-D5)數(shù)據(jù)端管腳,設定的地址碼和數(shù)據(jù)碼從17 腳串行輸出,可用于無線遙控發(fā)射電路。</p><p>  編碼芯片 PT2262

42、 發(fā)出的編碼信號由:地址碼、數(shù)據(jù)碼、同步碼組成一個完整的碼字,解碼芯片PT2272 接收到信號后,其地址碼經(jīng)過兩次比較核對后,VT 腳才輸出高電平,與此同時相應的數(shù)據(jù)腳也輸出高電平,如果發(fā)送端一直按住按鍵,編碼芯片也會連續(xù)發(fā)射。當發(fā)射機沒有按鍵按下時,PT2262 不接通電源,其17 腳為低電平,所以315MHz 的高頻發(fā)射電路不工作,當有按鍵按下時,PT2262 得電工作,其第17 腳輸出經(jīng)調(diào)制的串行數(shù)據(jù)信號,當17 腳為高電平期間3

43、15MHz 的高頻發(fā)射電路起振并發(fā)射等幅高頻信號,當17 腳為低平期間315MHz 的高頻發(fā)射電路停止振蕩,所以高頻發(fā)射電路完全收控于PT2262 的17 腳輸出的數(shù)字信號,從而對高頻電路完成幅度鍵控(ASK調(diào)制)相當于調(diào)制度為100%的調(diào)幅。</p><p>  在通常使用中,一般采用8 位地址碼和4 位數(shù)據(jù)碼,這時編碼電路PT2262 和解碼PT2272 的第1~8腳為地址設定腳,有三種狀態(tài)可供選擇:懸空、接

44、正電源、接地三種狀態(tài),3 的8 次方為6561,所以地址編碼不重復度為6561 組,只有發(fā)射端PT2262 和接收端PT2272 的地址編碼完全相同,才能配對使用,例如將發(fā)射機的PT2262 的第2 腳接地第3 腳接正電源,其它引腳懸空,那么接收機的PT2272 只要第2 腳接地第3 腳接正電源,其它引腳懸空就能實現(xiàn)配對接收。當兩者地址編碼完全一致時,接收機對應的D1~D4端輸出約4V 互鎖高電平控制信號,同時VT 端也輸出解碼有效高電

45、平信號。用戶可將這些信號加一級三極管放大,便可驅動繼電器等負載進行遙控操縱[5]。</p><p>  設置地址碼的原則是:同一個系統(tǒng)地址碼必須一致;不同的系統(tǒng)可以依靠不同的地址碼加以區(qū)分。至于設置什么樣的地址碼完全隨客戶喜歡。</p><p>  3 無線發(fā)送與接收電路</p><p>  3.1 無線發(fā)送電路</p><p>  原理

46、如圖3.1-1所示。</p><p>  圖3.1-1 PT2262發(fā)射原理圖</p><p>  PT2262的發(fā)射原理如上圖所示,采用8 位地址碼和4 位數(shù)據(jù)碼的格式。PT2262的第1~8引腳設置地址為“00000000”,及1~8腳都接地。第10~13引腳為數(shù)據(jù)輸入端,這四個引腳分別與單片機AT89S51的P2.0~P2.3口相連。要發(fā)送的數(shù)據(jù)通過單片機AT89S51的P2.0~

47、P2.3口寫入PT2262的數(shù)據(jù)輸入管腳10~13。由于第14腳接地,所以編碼啟動端一直有效,當PT2262的管腳10~13有輸入(有一個為“1”即有編碼發(fā)出),則輸入的4位數(shù)據(jù)再經(jīng)過第17腳串行輸出通過天線發(fā)送出去。</p><p>  3.2 無線接收模塊</p><p>  無線接收模塊電路圖如圖3.2-1所示:PT2272的接收原理如上圖所示,由于PT2262采用8位地址碼和4

48、位數(shù)據(jù)碼的格式,所以PT2272也要采用同樣的格式。PT2272要與PT2262的地址相匹配才能進行傳輸,所以PT2272的地址引腳1~8也要設置為“00000000”,及都接地。數(shù)據(jù)出端10~13引腳與單片機AT89S51的P1.0~P1.3口相連。接收到的數(shù)據(jù)再通過單片機的外圍接口P1.0~P1.3讀入到單片機內(nèi)部進行處理。第17腳連接到單片機的P3.2(INT0)的外中斷0的輸入端,同時接一個發(fā)光二極管來確定解碼有沒有效。當解碼有

49、效時17腳輸出瞬間的高電平同時使單片機產(chǎn)生中斷來讀取數(shù)據(jù)和二極管瞬間發(fā)光。每解碼有效一次,發(fā)光二極管的閃爍一次[6]。</p><p>  圖3.2-1 PT2262接收原理圖</p><p><b>  4 顯示電路</b></p><p>  4.1 字符型液晶顯示模塊</p><p>  圖4.1-1 液晶

50、面板</p><p>  字符型液晶顯示模塊是一類專門用于顯示字母,數(shù)字,符號等的點陣式液晶顯示模塊。在顯示器件上的電極圖型設計,它是由若干個5*7或5*11等點陣符位組成。每一個點陣字符位都可以顯示一個字符。點陣字符位之間有一空點距的間隔起到了字符間距</p><p><b>  和行距的作用。</b></p><p>  4.2 字符型液

51、晶顯示模塊引腳</p><p>  VSS為地電源,VDD接5V正電源,VL為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度。RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。RW為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當RS和RW共同為低電平時可以寫入指令或者顯示地址,當RS為低電平RW為高

52、電平時可以讀忙信號,當RS為高電平RW為低電平時可以寫入數(shù)據(jù)。E端為使能端,當E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。DB0~DB7為8位雙向數(shù)據(jù)線,BLK和BLA是背光燈電源[7]。模塊引腳如表4.2-1。</p><p>  表4.2-1 字符型液晶顯示模塊引腳</p><p>  4.3 字符型液晶顯示模塊內(nèi)部結構 </p><p>  液晶顯示模塊

53、WM-C1602N的內(nèi)部結構如圖4.3-1分為三部份:一為LCD控制器,二為LCD驅動器,三為LCD顯示裝置。</p><p>  圖4.3-1 LCD1602內(nèi)部結構</p><p>  圖4.3-2 液晶接口</p><p>  5 單片機AT89S52 </p><p>  5.1 AT89S52簡介</p>&l

54、t;p>  如圖5.1-1所示為AT89S52芯片的引腳圖。兼容標準MCS-51指令系統(tǒng)的AT89S52單片機是一個低功耗、高性能CHMOS的單片機,片內(nèi)含4KB在線可編程Flash存儲器的單片機。它與通用80C51系列單片機的指令系統(tǒng)和引腳兼容。</p><p>  AT89S52單片機片內(nèi)的Flash可允許在線重新編程,也可用通用非易失性存儲編程器編程;片內(nèi)數(shù)據(jù)存儲器內(nèi)含128字節(jié)的RAM;有40個引腳

55、,32個外部雙向輸入/輸出(I/O)端口;具有兩個16位可編程定時器;中斷系統(tǒng)是具有6個中斷源、5個中斷矢量、2級中斷優(yōu)先級的中斷結構;震蕩器頻率0到33MHZ,因此我們在此選用12MHZ的晶振是比較合理的;具有片內(nèi)看門狗定時器;具有斷電標志POF等等。AT89S51具有PDIP、TQFP和PLCC三種封裝形式[8]。</p><p>  圖5.1-1 AT89S52引腳圖</p><p&g

56、t;  上圖就是PDIP封裝的引腳排列,下面介紹各引腳的功能。</p><p>  5.2 AT89S52引腳說明</p><p>  P0口:8位、開漏級、雙向I/O口。P0口可作為通用I/O口,但須外接上拉電阻;作為輸出口,每各引腳可吸收8各TTL的灌電流。作為輸入時,首先應將引腳置1。P0也可用做訪問外部程序存儲器和數(shù)據(jù)存儲器時的低8位地址/數(shù)據(jù)總線的復用線。在該模式下,P0口含有

57、內(nèi)部上拉電阻。在FLASH編程時,P0口接收代碼字節(jié)數(shù)據(jù);在編程效驗時,P0口輸出代碼字節(jié)數(shù)據(jù)(需要外接上拉電阻)。</p><p>  P1口:8位、雙向I/0口,內(nèi)部含有上拉電阻。P1口可作普通I/O口。輸出緩沖器可驅動四個TTL負載;用作輸入時,先將引腳置1,由片內(nèi)上拉電阻將其抬到高電平。P1口的引腳可由外部負載拉到低電平,通過上拉電阻提供電流。在FLASH并行編程和校驗時,P1口可輸入低字節(jié)地址。在串行編

58、程和效驗時,P1.5/MO-SI,P1.6/MISO和P1.7/SCK分別是串行數(shù)據(jù)輸入、輸出和移位脈沖引腳。 </p><p>  P2口:具有內(nèi)部上拉電阻的8位雙向I/O口。P2口用做輸出口時,可驅動4各TTL負載;用做輸入口時,先將引腳置1,由內(nèi)部上拉電阻將其提高到高電平。若負載為低電平,則通過內(nèi)部上拉電阻向外部輸出電流。CPU訪問外部16位地址的存儲器時,P2口提供高8位地址。當CPU用8位地址尋址外部存

59、儲時,P2口為P2特殊功能寄存器的內(nèi)容。在FLASH并行編程和校驗時,P2口可輸入高字節(jié)地址和某些控制信號。</p><p>  P3口:具有內(nèi)部上拉電阻的8位雙向口。P3口用做輸出口時,輸出緩沖器可吸收4各TTL的灌電流;用做輸入口時,首先將引腳置1,由內(nèi)部上拉電阻抬位高電平。若外部的負載是低電平,則通過內(nèi)部上拉電阻向輸出電流。在與FLASH并行編程和校驗時,P3口可輸入某些控制信號。P3口除了通用I/O口功能

60、外,還有替代功能,如表5.3-1所示。</p><p>  表5.3-1 P3口的替代功能</p><p>  RST:復位端。當振蕩器工作時,此引腳上出現(xiàn)兩個機器周期的高電平將系統(tǒng)復位。</p><p>  ALE/ :當訪問外部存儲器時,ALE(允許地址鎖存)是一個用于鎖存地址的低8位字節(jié)的書粗脈沖。在Flash 編程期間,此引腳也可用于輸入編程脈沖()。在正

61、常操作情況下,ALE以振蕩器頻率的1/6的固定速率發(fā)出脈沖,它是用作對外輸出的時鐘,需要注意的是,每當訪問外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如果希望禁止ALE操作,可通過將特殊功能寄存器中位地址為8EH那位置的“0”來實現(xiàn)。該位置的“1”后。ALE僅在MOVE或MOVC指令期間激活,否則ALE引腳將被略微拉高。若微控制器在外部執(zhí)行方式,ALE禁止位無效。</p><p>  :外部程序存儲器讀選取通信號。當

62、AT89S51在讀取外部程序時, 每個機器周期 將PSEN激活兩次。在此期間內(nèi),每當訪問外部數(shù)據(jù)存儲器時,將跳過兩個信號。</p><p>  /Vpp:訪問外部程序存儲器允許端。為了能夠從外部程序存儲器的0000H至FFFFH單元中取指令,必須接地,然而要注意的是,若對加密位1進行編程,則在復位時,的狀態(tài)在內(nèi)部被鎖存。</p><p>  執(zhí)行內(nèi)部程序應接VCC。不當選擇12V編程電源時

63、,在Flash編程期間,這個引腳可接12V編程電壓。</p><p>  XTAL1:振蕩器反向放大器輸入端和內(nèi)部時鐘發(fā)生器的輸入端。</p><p>  XTAL2:振蕩器反相放大器輸出端[9]。</p><p><b>  6 軟件設計</b></p><p><b>  6.1 系統(tǒng)概述</b&

64、gt;</p><p>  整個系統(tǒng)的功能是由硬件電路配合軟件來實現(xiàn)的,當硬件基本定型后,軟件的功能也就基本定下來了。從軟件的功能不同可分為兩大類:一是監(jiān)控軟件(主程序),它是整個控制系統(tǒng)的核心,專門用來協(xié)調(diào)各執(zhí)行模塊和操作者的關系。二是執(zhí)行軟件(子程序),它是用來完成各種實質(zhì)性的功能如測量、計算、顯示、通訊等。每一個執(zhí)行軟件也就是一個小的功能執(zhí)行模塊。這里將各執(zhí)行模塊一一列出,并為每一個執(zhí)行模塊進行功能定義和接

65、口定義。各執(zhí)行模塊規(guī)劃好后,就可以規(guī)劃監(jiān)控程序了。</p><p>  6.2 程序設計流程圖</p><p>  圖6.2-1 發(fā)射流程圖 圖6.2-2 接收流程圖</p><p>  6.3 溫度傳感器多點數(shù)據(jù)采集</p><p>  DS18B20 可設定9~12 位的分

66、辨率,本系統(tǒng)采用12位分辨率,轉換精度為0.0625℃,轉換溫度信號所需最長時間為750ms。溫度數(shù)據(jù)由2 字節(jié)組成,以符號擴展的二進制補碼形式存儲,最低4 位是小數(shù)部分,中間7 位是整數(shù)部分, 1 位符號位。DS18B20 內(nèi)部RAM 由9 個字節(jié)的高速緩存器和E2PROM 組成,前2 個字節(jié)即為溫度數(shù)據(jù)。通過復位指令、ROM 和RAM 功能命令,即可完成對指定DS18B20溫度數(shù)據(jù)的采集和讀取。</p><p&g

67、t;  在一線制總線上串接多個DS18B20 器件時,需要先發(fā)送跳過ROM 指令,將所有傳感器都進行一次溫度轉換,之后通過匹配ROM依次讀取每個傳感器的溫度數(shù)據(jù),實現(xiàn)對單I/O 口上的多個DS18B20 器件的操作[10]。</p><p>  在系統(tǒng)安裝及工作之前應將主機逐個與DS1820掛接,以讀出其序列號。其工作過程為:主機發(fā)出一個脈沖,待“0”電平大于480μs后,復位DS1820,在DS1820所發(fā)響應

68、脈沖由主機接收后,主機再發(fā)讀ROM命令代碼33H,然后發(fā)一個脈沖(15μs),并接著讀取DS1820序列號的一位。用同樣方法讀取序列號的56位。另外,由于DS1820單線通信功能是分時完成的,遵循嚴格的時隙概念,系統(tǒng)對DS1820和各種操作必須按協(xié)議進行,即:初始化DS18B20(發(fā)復位脈沖)→發(fā)ROM功能命令→發(fā)存儲器操作命令→處理數(shù)據(jù)。</p><p><b>  7 調(diào)試及結果</b>

69、;</p><p>  7.1 測試環(huán)境及工具</p><p>  測試溫度:0~100攝氏度(模擬多點不同溫度值環(huán)境)。</p><p>  測試儀器及軟件:數(shù)字萬用表,溫度計0~100攝氏度,串口調(diào)試助手。</p><p><b>  測試方法:目測。</b></p><p><b&g

70、t;  7.2 測試方法</b></p><p>  使系統(tǒng)運行,觀察系統(tǒng)硬件檢測是否正常(包括單片機最小系統(tǒng),鍵盤電路,顯示電路,溫度測試電路等)。系統(tǒng)自帶測試表格數(shù)據(jù),觀察顯示數(shù)據(jù)是否相符合即可。</p><p>  采用溫度傳感器和溫度計同時測量多點水溫變化情況(取溫度值不同的多點),目測顯示電路是否正常。并記錄各點溫度值,與實際溫度值比較,得出系統(tǒng)的溫度指標。<

71、/p><p>  使用串口調(diào)試助手與單片機通訊,觀察單片機與串口之間傳輸數(shù)據(jù)正確否。</p><p>  7.3 測試結果分析</p><p>  自檢正常,各點溫度顯示正常,串口傳輸數(shù)據(jù)正確。</p><p>  因為芯片是塑料封裝,所以對溫度的感應靈敏度不是相當高,需要一個很短的時間才能達到穩(wěn)定。</p><p>&

72、lt;b>  8 總結</b></p><p>  本文研究的課題是基于單片機的多通道數(shù)據(jù)采集系統(tǒng),該系統(tǒng)的實現(xiàn)的功能是將來自傳感器的信號通過放大、線性化、濾波、同步采樣保持等處理后,輸入A/D轉換為數(shù)字信號后由單片機采集,然后利用單片機與PC機的通信將數(shù)據(jù)送到PC機進行數(shù)據(jù)的存儲、后期處理與顯示,該系統(tǒng)的數(shù)據(jù)處理功能強大、顯示直觀、界面友好、性價比商,可廣泛應用于工業(yè)控制、儀器、儀表、機電一

73、體化、智能家居等諸多領域。</p><p>  本系統(tǒng)還是一個不完善的系統(tǒng),還有許多需要改進的地方。設計中所采用的DS18B20搜索算法還存在不足,有時會發(fā)生重復或遺漏搜索。在通信協(xié)議不完整,沒有進行發(fā)送超時出錯處理。還有各種不足之處有待將來改進。</p><p>  設計得以順利完成,得感謝我的指導老師,在這個過程中他都一直指導著我,雖然他沒有時時刻刻在我們身邊親歷指導,但是他每天都詢問

74、我的進展情況,對我遇到的問題給予我解答,并對我的設計進行一些優(yōu)化。</p><p>  附錄1: 電路原理總圖</p><p>  附錄2: 發(fā)射部分主程序</p><p>  #include<regx51.h></p><p>  #include”ds18b20.h”</p><p>  #defin

75、e uchar unsigned char </p><p>  /***********pt2262發(fā)射函數(shù)***********/</p><p>  void send_dat(uchar x)</p><p><b>  {</b></p><p>  uchar x1,x2;</p><p

76、>  x1=x&0x0f;</p><p>  P2=x1;//將數(shù)據(jù)的低4位先發(fā)送出去</p><p><b>  x2=x>>4;</b></p><p>  P2=x2;//再將數(shù)據(jù)的高4位發(fā)送出去</p><p><b>  }</b></p><

77、;p>  /************主函數(shù)******************/</p><p>  void main()</p><p><b>  {</b></p><p><b>  while(1)</b></p><p><b>  {</b></p&

78、gt;<p>  read_ds18b20();//讀取溫度</p><p>  send_dat(temp1);//發(fā)射溫度1</p><p>  send_dat(temp2);//發(fā)射溫度2</p><p>  send_dat(temp3);//發(fā)射溫度3</p><p><b>  }</b>&l

79、t;/p><p><b>  }</b></p><p>  Ds18b20.h頭文件:</p><p>  #ifndef _ds18b20</p><p>  #define _ds18b20 </p><p>  uchar temperature,y1,y2,x2,y3; </p&

80、gt;<p>  #define DQ P1_0 //溫度接收口</p><p>  uchar tpl;</p><p>  uchar tph;</p><p>  /************************************************************/</p><p> 

81、 void delay_b(uint t)</p><p><b>  { </b></p><p><b>  uint i;</b></p><p>  while(t--)</p><p><b>  {</b></p><p>  for(i=0

82、;i<125;i++);</p><p><b>  }</b></p><p><b>  }</b></p><p>  /************************************************************/</p><p>  void txrese

83、t(void)</p><p><b>  { </b></p><p><b>  uint i;</b></p><p><b>  DQ=0; </b></p><p><b>  i=100; </b></p><p>

84、  while(i>0) i--; </p><p><b>  DQ=1; </b></p><p><b>  i=4; </b></p><p>  while(i>0) i--;</p><p><b>  }</b></p><p>

85、;  /************************************************************/</p><p>  void rxwait(void)</p><p><b>  { </b></p><p><b>  uint i;</b></p><p> 

86、 while(DQ);</p><p>  while(!DQ);</p><p><b>  i=4;</b></p><p>  while(i>0) i--;</p><p><b>  }</b></p><p>  /*********************

87、***************************************/</p><p>  bit rdbit(void)</p><p><b>  { </b></p><p><b>  uint i;</b></p><p><b>  bit b; </b>

88、</p><p><b>  DQ=0;</b></p><p><b>  i++; </b></p><p><b>  DQ=1;</b></p><p><b>  i++;i++; </b></p><p><b&g

89、t;  b=DQ; </b></p><p><b>  i=8;</b></p><p>  while(i>0)</p><p><b>  i--;</b></p><p>  return (b);</p><p><b>  }</

90、b></p><p>  /************************************************************</p><p>  *Function:讀18B20的一個字節(jié)</p><p>  *************************************************************/&l

91、t;/p><p>  uchar rdbyte(void)</p><p><b>  {</b></p><p>  uchar i,j,b;</p><p>  for(i=1;i<=8;i++)</p><p><b>  { </b></p><

92、p>  j=rdbit();</p><p>  b=(j<<7) | (b>>1);</p><p><b>  }</b></p><p>  return (b);</p><p><b>  } </b></p><p>  /****

93、********************************************************</p><p>  *Function:向18B20寫入一個字節(jié)</p><p>  *************************************************************/</p><p>  void wrbyt

94、e(uchar b)</p><p><b>  {</b></p><p><b>  uint i; </b></p><p>  uchar j, btm;</p><p>  for(j=1; j<=8;j++)</p><p><b>  { &l

95、t;/b></p><p>  btm=b&0x01; </p><p><b>  b=b>>1;</b></p><p>  if(btm==1)</p><p><b>  {</b></p><p><b>  DQ=0;</

96、b></p><p><b>  i++;i++;</b></p><p><b>  DQ=1; </b></p><p><b>  i=8; </b></p><p>  while(i>0) </p><p><b>  i

97、--; </b></p><p><b>  }</b></p><p><b>  else </b></p><p><b>  {</b></p><p><b>  DQ=0; </b></p><p><

98、b>  i=8;</b></p><p>  while(i>0) </p><p><b>  i--;</b></p><p><b>  DQ=1;</b></p><p>  i++; i++; </p><p><b>  }<

99、;/b></p><p><b>  }</b></p><p><b>  }</b></p><p>  /************************************************************</p><p>  *Function:溫度轉換</p

100、><p>  *************************************************************/</p><p>  void convert(void)</p><p><b>  {</b></p><p>  txreset();</p><p><

101、;b>  rxwait();</b></p><p>  delay_b(1);//延時</p><p>  wrbyte(0xcc);</p><p>  wrbyte(0x44);</p><p><b>  }</b></p><p>  /*************

102、***********************************************/</p><p>  void rdtemp(void)</p><p><b>  {</b></p><p>  txreset();</p><p>  rxwait(); </p><p>  

103、delay_b(1); //延時</p><p>  wrbyte(0xcc);</p><p>  wrbyte(0xbe); </p><p>  tpl=rdbyte();</p><p>  tph=rdbyte();</p><p><b>  }</b></p>&

104、lt;p>  /************************************************************/</p><p>  void delay_2ms() //動態(tài)掃描顯示時間</p><p><b>  {</b></p><p>  unsigned char i,j;</p&g

105、t;<p>  for(i=0;i<8;i++)</p><p>  for(j=0;j<30;j++);</p><p><b>  }</b></p><p>  void disp_led()</p><p><b>  {</b></p><p&

106、gt;  P0=a[y1]; </p><p>  P2=b[0]; </p><p>  delay_2ms();</p><p><b>  P2=0XFF;</b></p><p>  P0=a[y2]&0x7f; // 顯示帶小數(shù)點的數(shù) </p>&

107、lt;p>  P2=b[1]; </p><p>  delay_2ms();</p><p><b>  P2=0XFF;</b></p><p>  P0=a[y3]; </p><p>  P2=b[2]; </p><p>  delay_2ms();

108、</p><p><b>  P2=0XFF;</b></p><p><b>  }</b></p><p>  /************************************************************/</p><p>  void delay_2(uchar

109、a)//延時函數(shù)</p><p><b>  {</b></p><p>  uchar b,c;</p><p>  for(b=0;b<a;b++)</p><p>  for(c=0;c<10;c++);</p><p><b>  } </b>&l

110、t;/p><p>  /************************************************************/</p><p>  void read_ds18b20()</p><p><b>  {</b></p><p>  convert(); </p>&

111、lt;p>  delay_2(500);</p><p>  rdtemp(); </p><p>  temperature=(tpl&0xf0)/16+(tph&0x07)*16;</p><p>  y1=temperature/10; //整數(shù) 溫度十位</p><p>  y2=temperature%10

112、; // 溫度個位</p><p>  x2=(tpl&0x0f)*(100/16);</p><p>  y3=x2/10; //小數(shù) 溫度十位</p><p><b>  }</b></p><p>  /*************************************

113、***********************/</p><p><b>  #endif</b></p><p>  附錄3: 接收部分主程序</p><p>  #include<regx51.h></p><p>  #include "lcd1602.h"</p>&

114、lt;p>  #define uchar unsigned char</p><p>  uchar flag=0,flag_dat=0; //定義flag標志變量表示接收的數(shù)據(jù)的高4位還是低4位,flag_dat表示接收的是第幾個溫度傳感器的數(shù)據(jù)</p><p>  uchar dat,dat1,dat2;</p><p>  uchar temp1,tem

115、p2,temp3;</p><p>  /************顯示函數(shù)********************/</p><p>  void display()</p><p><b>  {</b></p><p>  wc51r(0x80);//第一行第一列開始顯示</p><p>  

116、wc51_str("T1:");</p><p>  wc51_data(temp1/100);</p><p>  wc51_data(temp1%100/10);</p><p>  wc51_data('.');</p><p>  wc51_data(temp1%10);</p>&l

117、t;p>  wc51_str(" ")</p><p>  wc51_str("T2:");</p><p>  wc51_data(temp2/100);</p><p>  wc51_data(temp2%100/10);</p><p>  wc51_data('.');&

118、lt;/p><p>  wc51_data(temp2%10);</p><p>  wc51r(0xC0);//第二行第一列開始顯示</p><p>  wc51_str("T3:");</p><p>  wc51_data(temp3/100);</p><p>  wc51_data(temp3

119、%100/10);</p><p>  wc51_data('.');</p><p>  wc51_data(temp3%10);</p><p><b>  }</b></p><p>  /***************pt2272讀函數(shù)*************************/ <

溫馨提示

  • 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

提交評論