基于單片機(jī)的無(wú)線多路數(shù)據(jù)(溫度)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)-畢業(yè)論文_第1頁(yè)
基于單片機(jī)的無(wú)線多路數(shù)據(jù)(溫度)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)-畢業(yè)論文_第2頁(yè)
基于單片機(jī)的無(wú)線多路數(shù)據(jù)(溫度)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)-畢業(yè)論文_第3頁(yè)
基于單片機(jī)的無(wú)線多路數(shù)據(jù)(溫度)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)-畢業(yè)論文_第4頁(yè)
基于單片機(jī)的無(wú)線多路數(shù)據(jù)(溫度)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)-畢業(yè)論文_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

PAGE33前言 21總體方案設(shè)計(jì) 31.1方案論證 41.1.1傳感器 41.1.2主控部分 42硬件電路的設(shè)計(jì) 52.1電源電路 52.2溫度采集電路 62.2.1DS18B20簡(jiǎn)介 62.2.2電路設(shè)計(jì) 82.2.3無(wú)線傳輸電路模塊 93無(wú)線發(fā)送與接收電路 93.1無(wú)線發(fā)送電路 93.2無(wú)線接收模塊 104顯示電路 114.1字符型液晶顯示模塊 114.2字符型液晶顯示模塊引腳 114.3字符型液晶顯示模塊內(nèi)部結(jié)構(gòu) 125單片機(jī)AT89S52 135.1AT89S52簡(jiǎn)介 135.2AT89S52引腳說(shuō)明 146軟件設(shè)計(jì) 166.1系統(tǒng)概述 166.2程序設(shè)計(jì)流程圖 166.3溫度傳感器多點(diǎn)數(shù)據(jù)采集 177調(diào)試及結(jié)果 177.1測(cè)試環(huán)境及工具 177.2測(cè)試方法 177.3測(cè)試結(jié)果分析 178總結(jié) 18附錄1:電路原理總圖 19附錄2:發(fā)射部分主程序 20附錄3:接收部分主程序 26參考文獻(xiàn) 31無(wú)線數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)內(nèi)容摘要:由于數(shù)據(jù)采集系統(tǒng)的應(yīng)用范圍越來(lái)越寬、所涉及到的測(cè)量信號(hào)和信號(hào)源的類型越來(lái)越多、對(duì)測(cè)量的要求也越來(lái)越高,國(guó)內(nèi)現(xiàn)在已有不少數(shù)據(jù)測(cè)量和采集的系統(tǒng),但很多系統(tǒng)存在功能單一、采集通道少、采集速率低、操作復(fù)雜,并且對(duì)測(cè)試環(huán)境要求較高等問(wèn)題。人們需要一種應(yīng)用范圍廣、性價(jià)比高的數(shù)據(jù)采集系統(tǒng)。在分析了不同類型的單片機(jī)的特點(diǎn)及單片機(jī)與PC機(jī)通信技術(shù)的基礎(chǔ)上,設(shè)計(jì)了單片機(jī)控制的采集系統(tǒng),并通過(guò)串口通信實(shí)現(xiàn)單片機(jī)與P(:機(jī)之間的通信,實(shí)現(xiàn)數(shù)據(jù)的傳送并將數(shù)據(jù)在PC機(jī)上顯示及存儲(chǔ),完成單機(jī)的多通道數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)及實(shí)現(xiàn)。基于單片機(jī)的多通道數(shù)據(jù)采集系統(tǒng)是由將來(lái)自傳感器的信號(hào)通過(guò)放大、線性化、濾波、同步采樣保持等處理后,輸入A/D轉(zhuǎn)換為數(shù)字信號(hào)后由單片機(jī)采集,然后利用單片機(jī)與PC機(jī)的通信將數(shù)據(jù)送到PC機(jī)進(jìn)行數(shù)據(jù)的存儲(chǔ)、后期處理與顯示,實(shí)現(xiàn)了數(shù)據(jù)處理功能強(qiáng)大、顯示直觀、界面友好、性價(jià)比高、應(yīng)用廣泛的特點(diǎn),可廣泛應(yīng)用于工業(yè)控制、儀器、儀表、機(jī)電一體化、智能家居等諸多領(lǐng)域。關(guān)鍵詞:多通道數(shù)據(jù)采集單片機(jī)DesignandimplementationofwirelessdataacquisitionsystemAbstract:sincethewiderangeofdataacquisitionsystem,whichinvolvesthemeasurementsignalandthetypeofsignalsourcemoreandmore,SurveyorsareincreasinglyhighrequirementsofthedomesticnowhavealotofdataacquisitionandmeasurementsystemButtherearemanysinglefunctionsystems,collectinglessaccess,lowcollectionrate,complicatedoperations,andthedemandsofthetestenvironmentandotherissues.Itrequiresabroadscopeofapplication,highreliabilityandlow-costdataacquisitionsystem.BasedontheanalysisofthecharacteristicsofdifferenttypesofSCMandSCMandPCcommunicationtechnology,SCMcontrolofthecollectionsystemdesignedandadoptedMCUserialcommunicationbetweenPCandcommunications,DatatransmissionanddisplayofdatastoredonthePC.Singlecompletedthemulti-channeldataacquisitionsystemdesignandimplementation.BasedonSCM′smulti-channeldataacquisitionsystemisadoptedwillcomefromthesensorsignalamplification,linearfiltering,Afterprocessingmaintainsynchronoussampling,whichconvertedtodigitalsignalinputA/DconversionbySCMAcquisition,Then,SCMandPCtoPCcommunicationsdatatothedatastorage,post-processinganddisplay.apowerfuldataprocessing,visualshows,friendlyinterfaceandhighperformance-priceratio,awiderangeoffeatures.canbewidelyusedinindustrialcontrolequipment,instruments,andelectricalengineeringintegration,intelligenthomeandmanyotherfields.Keywords:Multi-channelDataAcquisitionMicrocontroller無(wú)線數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)前言21世紀(jì)的今天,科學(xué)技術(shù)的發(fā)展日新月異,科學(xué)技術(shù)的進(jìn)步同時(shí)也帶動(dòng)了測(cè)量技術(shù)的發(fā)展,現(xiàn)代控制設(shè)備不同于以前,它們?cè)谛阅芎徒Y(jié)構(gòu)發(fā)生了翻天覆地的變化。我們已經(jīng)進(jìn)入了高速發(fā)展的信息時(shí)代,測(cè)量技術(shù)是當(dāng)今社會(huì)的主流,廣泛地深入到應(yīng)用工程的各個(gè)領(lǐng)域。溫度是工業(yè)、農(nóng)業(yè)生產(chǎn)中常見(jiàn)的和最基本的參數(shù)之一,在生產(chǎn)過(guò)程中常需對(duì)溫度進(jìn)行檢測(cè)和監(jiān)控,采用微型機(jī)進(jìn)行溫度檢測(cè)、數(shù)字顯示、信息存儲(chǔ)及實(shí)時(shí)控制,對(duì)于提高生產(chǎn)效率和產(chǎn)品質(zhì)量、節(jié)約能源等都有重要的作用。伴隨工業(yè)科技、農(nóng)業(yè)科技的發(fā)展,溫度測(cè)量需求越來(lái)越多,也越來(lái)越重要。但是在一些特定環(huán)境溫度監(jiān)測(cè)環(huán)境范圍大,測(cè)點(diǎn)距離遠(yuǎn),布線很不方便。這時(shí)就要采用無(wú)線方式對(duì)溫度數(shù)據(jù)進(jìn)行采集。多路無(wú)線溫度采集系統(tǒng)可被廣泛應(yīng)用于溫度測(cè)量或相應(yīng)的可轉(zhuǎn)換為溫度量或供電故障監(jiān)控的工業(yè)、農(nóng)業(yè)、環(huán)保、服務(wù)業(yè)、安全監(jiān)控等工程中,例如:城市路燈故障檢測(cè)和供電線路防盜監(jiān)視、城市居民小區(qū)供熱檢測(cè)、大型倉(cāng)庫(kù)溫度檢測(cè)、工業(yè)生產(chǎn)測(cè)控、農(nóng)業(yè)生產(chǎn)溫度測(cè)控、環(huán)保工程、故障監(jiān)控工程等??紤]到許多工業(yè)環(huán)境中對(duì)多點(diǎn)溫度進(jìn)行監(jiān)控,一般需要測(cè)量幾十個(gè)點(diǎn)以上。本文設(shè)計(jì)多路無(wú)線溫度監(jiān)控系統(tǒng)。本設(shè)計(jì)是以Atmel公司的AT89S51單片機(jī)作為控制核心,提出以DS18B20的單總線分布式溫度采集與控制系統(tǒng)。多個(gè)溫度傳感節(jié)點(diǎn)通過(guò)單總線與單片機(jī)相連形成分布式系統(tǒng)??刂破魍ㄟ^(guò)溫度傳感器實(shí)時(shí)檢測(cè)各節(jié)點(diǎn)的溫度變化,并在LCD1602上循環(huán)顯示各節(jié)點(diǎn)溫度的變化。通過(guò)串口將檢測(cè)到的溫度信息回饋到上位機(jī)(PC機(jī)),從而遠(yuǎn)程實(shí)現(xiàn)對(duì)整個(gè)系統(tǒng)的檢測(cè)。因?yàn)椴捎梦⑿蜋C(jī)進(jìn)行溫度檢測(cè)、數(shù)字顯示、信息存儲(chǔ)及實(shí)時(shí)控制,對(duì)于提高生產(chǎn)效率和產(chǎn)品質(zhì)量、節(jié)約能源等都有重要的作用,并且溫度參數(shù)對(duì)工業(yè)生產(chǎn)的重要性,所以溫度測(cè)量系統(tǒng)的精確度和智能化一直受到企業(yè)的重視。所以學(xué)習(xí)并研究溫度測(cè)量及相關(guān)知識(shí)可做為一個(gè)較為實(shí)用的課題的方向,能獲得較實(shí)用的知識(shí)和方法。因此溫度測(cè)控技術(shù)是一個(gè)很實(shí)用、也很重要的技術(shù),值得去研究掌握。它應(yīng)用的領(lǐng)域也相當(dāng)廣泛,可以應(yīng)用到消防電氣的非破壞性溫度檢測(cè),電力、電訊設(shè)備的過(guò)熱故障預(yù)知檢測(cè),空調(diào)系統(tǒng)的溫度檢測(cè),各類運(yùn)輸工具之組件的過(guò)熱檢測(cè),保全與監(jiān)視系統(tǒng)之應(yīng)用,醫(yī)療與健診的溫度測(cè)試,化工、機(jī)械…等設(shè)備溫度過(guò)熱檢測(cè)。因此前景是相當(dāng)?shù)目捎^。1總體方案設(shè)計(jì)溫度檢測(cè)系統(tǒng)有則共同的特點(diǎn):測(cè)量點(diǎn)多、環(huán)境復(fù)雜、布線分散、現(xiàn)場(chǎng)離監(jiān)控室遠(yuǎn)等。若采用一般溫度傳感器采集溫度信號(hào),則需要設(shè)計(jì)信號(hào)調(diào)理電路、A/D轉(zhuǎn)換及相應(yīng)的接口電路,才能把傳感器輸出的模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)送到計(jì)算機(jī)去處理。這樣,由于各種因素會(huì)造成檢測(cè)系統(tǒng)較大的偏差;又因?yàn)闄z測(cè)環(huán)境復(fù)雜、測(cè)量點(diǎn)多、信號(hào)傳輸距離遠(yuǎn)及各種干擾的影響,會(huì)使檢測(cè)系統(tǒng)的穩(wěn)定性和可靠性下降。所以多點(diǎn)溫度檢測(cè)系統(tǒng)的設(shè)計(jì)的關(guān)鍵在于兩部分:溫度傳感器的選擇和主控單元的設(shè)計(jì)。溫度傳感器應(yīng)用范圍廣泛、使用數(shù)量龐大,也高居各類傳感器之首。1.1方案論證1.1.1傳感器方案一:采用熱敏電阻,可滿足40攝氏度至90攝氏度測(cè)量范圍,但熱敏電阻精度、重復(fù)性、可靠性較差,對(duì)于檢測(cè)1攝氏度的信號(hào)是不適用的。方案二:采用單片模擬量的溫度傳感器,比如AD590,LM35等。但這些芯片輸出的都是模擬信號(hào),必須經(jīng)過(guò)A/D轉(zhuǎn)換后才能送給計(jì)算機(jī),這樣就使得測(cè)溫裝置的結(jié)構(gòu)較復(fù)雜。另外,這種測(cè)溫裝置的一根線上只能掛一個(gè)傳感器,不能進(jìn)行多點(diǎn)測(cè)量。即使能實(shí)現(xiàn),也要用到復(fù)雜的算法,一定程度上也增加了軟件實(shí)現(xiàn)的難度。方案三:采用數(shù)字溫度傳感器DS18B20測(cè)量溫度,輸出信號(hào)全數(shù)字化。便于單片機(jī)處理及控制,省去傳統(tǒng)的測(cè)溫方法的很多外圍電路。且該芯片的物理化學(xué)性很穩(wěn)定,它能用做工業(yè)測(cè)溫元件,此元件線性度較好。在0~100攝氏度時(shí),最大線形偏差小于1攝氏度。DS18B20的最大特點(diǎn)之一采用了單總線的數(shù)據(jù)傳輸,由數(shù)字溫度計(jì)DS1820和微控制器AT89S52構(gòu)成的溫度測(cè)量裝置,它直接輸出溫度的數(shù)字信號(hào),可直接與計(jì)算機(jī)連接。這樣,測(cè)溫系統(tǒng)的結(jié)構(gòu)就比較簡(jiǎn)單,體積也不大,且由于AT89S52可以帶多個(gè)DSB1820,因此可以非常容易實(shí)現(xiàn)多點(diǎn)測(cè)量。輕松的組建傳感器網(wǎng)絡(luò)。采用溫度芯片DS18B20測(cè)量溫度,可以體現(xiàn)系統(tǒng)芯片化這個(gè)趨勢(shì)。部分功能電路的集成,使總體電路更簡(jiǎn)潔,搭建電路和焊接電路時(shí)更快。而且,集成塊的使用,有效地避免外界的干擾,提高測(cè)量電路的精確度。所以集成芯片的使用將成為電路發(fā)展的一種趨勢(shì)。本方案應(yīng)用這一溫度芯片,也是順應(yīng)這一趨勢(shì)。1.1.2主控部分方案一:采用AT89S52八位單片機(jī)實(shí)現(xiàn)。單片機(jī)軟件編程的自由度大,可通過(guò)編程實(shí)現(xiàn)各種各樣的算術(shù)算法和邏輯控制。而且體積小,硬件實(shí)現(xiàn)簡(jiǎn)單,安裝方便。既可以單獨(dú)對(duì)多DS18B20控制工作,還可以與PC機(jī)通信.運(yùn)用主從分布式思想,由一臺(tái)上位機(jī)(PC微型計(jì)算機(jī)),下位機(jī)(單片機(jī))多點(diǎn)溫度數(shù)據(jù)采集,組成兩級(jí)分布式多點(diǎn)溫度測(cè)量的巡回檢測(cè)系統(tǒng),實(shí)現(xiàn)遠(yuǎn)程控制。另外AT89C51在工業(yè)控制上也有著廣泛的應(yīng)用,編程技術(shù)及外圍功能電路的配合使用都很成熟[1]。方案二:使用MSP430作控制器,德州儀器(TI)的超低功率16位RISC混合信號(hào)處理器MSP430產(chǎn)品系列為電池供電測(cè)量應(yīng)用提供了最終解決方案。作為混合信號(hào)和數(shù)字技術(shù)的領(lǐng)導(dǎo)者,TI創(chuàng)新生產(chǎn)的MSP430,使系統(tǒng)設(shè)計(jì)人員能夠在保持獨(dú)一無(wú)二的低功率的同時(shí)同步連接至模擬信號(hào)、傳感器和數(shù)字組件。但在溫度采集和實(shí)施控制這個(gè)重要的場(chǎng)合低功耗相對(duì)來(lái)說(shuō)顯得就不是那么重要了,而應(yīng)該考慮它的穩(wěn)定性、準(zhǔn)確性,同時(shí)對(duì)比AT89S52能夠在性能和資源都可以到達(dá)一個(gè)最佳的狀態(tài),可以避免用MSP430的不必要的資源浪費(fèi)。 綜上,我們傳感器采用方案二,控制器采用方案一。系統(tǒng)框圖如下圖。圖1.1.2-1發(fā)射電路系統(tǒng)框圖圖1.1.2-2接收電路系統(tǒng)框圖2硬件電路的設(shè)計(jì)本課題所設(shè)計(jì)的外圍電路包括:電源電路、溫度采集、時(shí)鐘電路、存儲(chǔ)電路、報(bào)警電路、模擬控制電路、按鍵電路、顯示電路以及串口等電路。下面將依次對(duì)各個(gè)模塊進(jìn)行說(shuō)明。2.1電源電路電源變壓器是將交流電網(wǎng)220V的電壓變?yōu)樗枰碾妷褐?。交流電?jīng)過(guò)二極管整流之后,方向單一了,但是電流強(qiáng)度大小還是處在不斷地變化之中。這種脈動(dòng)直流一般是不能直接用來(lái)給集成電路供電的,而要通過(guò)整流電路將交流電變成脈動(dòng)的直流電壓。由于此脈動(dòng)的直流電壓還含有較大的紋波,必須通過(guò)濾波電路加以濾除,從而得到平滑的直流電壓。濾波的任務(wù),就是把整流器輸出電壓中的波動(dòng)成分盡可能地減小,改造成接近穩(wěn)恒的直流電。但這樣的電壓還隨電網(wǎng)電壓波動(dòng),一般有±10%左右的波動(dòng),負(fù)載和溫度的變化而變化,因而在整流、濾波電路之后,還需要接穩(wěn)壓電路。穩(wěn)壓電路的作用是當(dāng)電網(wǎng)電壓波動(dòng),負(fù)載和溫度變化時(shí),維持輸出直流電壓穩(wěn)定。220V交流電通過(guò)9V變壓器變?yōu)?V的交流電,9V交流電通過(guò)四個(gè)二極管的全橋整流后變?yōu)?V直流電,然后經(jīng)過(guò)電解電容(470μF)進(jìn)行一級(jí)濾波,以去除直流電里面的雜波,防止干擾。9V直流電出來(lái)后再經(jīng)過(guò)三端穩(wěn)壓器LM7805穩(wěn)壓成為穩(wěn)定的5V電源,其中7805的Vin腳是輸入腳,接9V直流電源正極,GND是接地腳,接9V直流電源負(fù)極,Vout為輸出腳,它和接地腳的電壓就是+5V了。5V電源出來(lái)再經(jīng)過(guò)電解電容的二級(jí)濾波,使5V電源更加穩(wěn)定可靠。同時(shí)在5V穩(wěn)壓電源加上一個(gè)10K的電阻和一個(gè)紅色發(fā)光二極管,當(dāng)上電后,紅色發(fā)光二極管點(diǎn)亮,表示電源工作正常。此時(shí)一個(gè)穩(wěn)定輸出5V的電源已經(jīng)設(shè)計(jì)好,對(duì)于本設(shè)計(jì)它完全能夠滿足單片機(jī)及集成塊所需電源的要求[2]。電源原理圖如圖2.1-1所示。圖2.1-1電源原理圖2.2溫度采集電路2.2.1DS18B20簡(jiǎn)介溫度芯片DS18B20是Dallas公司生產(chǎn)的一線式數(shù)字溫度傳感器,具有3引腳TO-92小體積封裝形式。測(cè)溫分辨率可達(dá)0.0625℃,被測(cè)溫度用符號(hào)擴(kuò)展的16位數(shù)字量方式串行輸出。測(cè)量溫度范圍為-55℃~+125℃,在-10℃~+85℃范圍內(nèi),精度為±0.5℃。其工作電源既可在遠(yuǎn)端引入,也可采用寄生電源方式產(chǎn)生。CPU只需一根端口線就能與諸多DS18B20通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。由于每一個(gè)DS18B20都有唯一系列號(hào),因此多個(gè)DS18B20可以存在同一條單總線上。這允許許多不同地方放置溫度靈敏器件。此特性的應(yīng)用范圍包括HAVC環(huán)境控制,建筑物、設(shè)備或機(jī)械內(nèi)的溫度檢測(cè),以及過(guò)程監(jiān)控和控制中的溫度檢測(cè)等[3]。DS18B20的內(nèi)部結(jié)構(gòu)如圖2.2.1-1所示。圖2.2.1-1DS18B20方框圖DS18B20有4個(gè)主要的數(shù)據(jù)部件:A、64位激光ROM。64位激光ROM從高位到低位依次為8位CRC、48位序列號(hào)和8位家族代碼(28H)組成。B、溫度靈敏元件。C、非易失性溫度報(bào)警觸發(fā)器TH和TL。可通過(guò)軟件寫(xiě)入用戶報(bào)警上下限值。D、配置寄存器。配置寄存器為高速暫存存儲(chǔ)器中的第五個(gè)字節(jié)。其中R0、R1:溫度計(jì)分辨率設(shè)置位,其對(duì)應(yīng)四種分辨率如下表所列,出廠時(shí)R0、R1置為缺省值:R0=1,R1=1(即12位分辨率),用戶可根據(jù)需要改寫(xiě)配置寄存器以獲得合適的分辨率。表2.2.1-1分辨率關(guān)系表R0R1分辨率/bit最大轉(zhuǎn)換時(shí)間/us00993.750110187.510113751112750高速暫存存儲(chǔ)器由9個(gè)字節(jié)組成,其分配如表2.2.1-2所示。當(dāng)溫度轉(zhuǎn)換命令發(fā)布后,經(jīng)轉(zhuǎn)換所得的溫度值以二字節(jié)補(bǔ)碼形式存放在高速暫存存儲(chǔ)器的第0和第1個(gè)字節(jié)。單片機(jī)可通過(guò)單線接口讀到該數(shù)據(jù),讀取時(shí)低位在前,高位在后,數(shù)據(jù)格式如表2.2.1-2所示。對(duì)應(yīng)的溫度計(jì)算:當(dāng)符號(hào)位S=0時(shí),直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)S=1時(shí),先將補(bǔ)碼變?yōu)樵a,再計(jì)算十進(jìn)制值。表2.2.1-2DS18B20存儲(chǔ)器溫度LSB溫度MSBTHTL保留保留計(jì)數(shù)寄存器計(jì)數(shù)寄存器8位CRC2.2.2電路設(shè)計(jì)本系統(tǒng)為多點(diǎn)溫度測(cè)試。DS18B20采用外部供電方式,理論上可以在一根數(shù)據(jù)總線上掛256個(gè)DS18B20,但時(shí)間應(yīng)用中發(fā)現(xiàn),如果掛接25個(gè)以上的DS18B20仍舊有可能產(chǎn)生功耗問(wèn)題。另外單總線長(zhǎng)度也不宜超過(guò)80M,否則也會(huì)影響到數(shù)據(jù)的傳輸。在這種情況下我們可以采用分組的方式,用單片機(jī)的多個(gè)I/O來(lái)驅(qū)動(dòng)多路DS18B20。在實(shí)際應(yīng)用中還可以使用一個(gè)MOSFET將I/O口線直接和電源相連,起到上拉的作用[4]。電路如圖2.2.2-1。圖2.2.2-1單總線原理圖對(duì)DS18B20的設(shè)計(jì),需要注意以下問(wèn)題:A、對(duì)硬件結(jié)構(gòu)簡(jiǎn)單的單線數(shù)字溫度傳感器DS18B20進(jìn)行操作,需要用較為復(fù)雜的程序完成。編制程序時(shí)必須嚴(yán)格按芯片數(shù)據(jù)手冊(cè)提供的有關(guān)操作順序進(jìn)行,讀、寫(xiě)時(shí)間片程序要嚴(yán)格按要求編寫(xiě)。尤其在使用DS18B20的高測(cè)溫分辨力時(shí),對(duì)時(shí)序及電氣特性參數(shù)要求更高。B、有多個(gè)測(cè)溫點(diǎn)時(shí),應(yīng)考慮系統(tǒng)能實(shí)現(xiàn)傳感器出錯(cuò)自動(dòng)指示,進(jìn)行自動(dòng)DS18B20序列號(hào)和自動(dòng)排序,以減少調(diào)試和維護(hù)工作量。C、測(cè)溫電纜線建議采用屏蔽4芯雙絞線,其中一對(duì)線接地線與信號(hào)線,另一組接VCC和地線,屏蔽層在源端單點(diǎn)接地。DS18B20在三線制應(yīng)用時(shí),應(yīng)將其三線焊接牢固;在兩線應(yīng)用時(shí),應(yīng)將VCC與GND接在一起,焊接牢固。若VCC脫開(kāi)未接,傳感器只送85℃的溫度值。D、實(shí)際應(yīng)用時(shí),要注意單線的驅(qū)動(dòng)能力,不能掛接過(guò)多的DS18B20,同時(shí)還應(yīng)注意最遠(yuǎn)接線距離。另外還應(yīng)根據(jù)實(shí)際情況選擇其接線拓?fù)浣Y(jié)構(gòu)。2.2.3無(wú)線傳輸電路模塊無(wú)線傳輸模塊,采用集成芯片PT2262和PT2272來(lái)構(gòu)建收發(fā)電路。PT2262/PT2272是臺(tái)灣普城公司生產(chǎn)的一種CMOS工藝制造的低功耗低價(jià)位通用編解碼電路,PT2262/PT2272最多可有12位(A0-A11)三態(tài)地址端管腳(懸空,接高電平,接低電平),任意組合可提供531441地址碼,PT2262最多可有6位(D0-D5)數(shù)據(jù)端管腳,設(shè)定的地址碼和數(shù)據(jù)碼從17腳串行輸出,可用于無(wú)線遙控發(fā)射電路。編碼芯片PT2262發(fā)出的編碼信號(hào)由:地址碼、數(shù)據(jù)碼、同步碼組成一個(gè)完整的碼字,解碼芯片PT2272接收到信號(hào)后,其地址碼經(jīng)過(guò)兩次比較核對(duì)后,VT腳才輸出高電平,與此同時(shí)相應(yīng)的數(shù)據(jù)腳也輸出高電平,如果發(fā)送端一直按住按鍵,編碼芯片也會(huì)連續(xù)發(fā)射。當(dāng)發(fā)射機(jī)沒(méi)有按鍵按下時(shí),PT2262不接通電源,其17腳為低電平,所以315MHz的高頻發(fā)射電路不工作,當(dāng)有按鍵按下時(shí),PT2262得電工作,其第17腳輸出經(jīng)調(diào)制的串行數(shù)據(jù)信號(hào),當(dāng)17腳為高電平期間315MHz的高頻發(fā)射電路起振并發(fā)射等幅高頻信號(hào),當(dāng)17腳為低平期間315MHz的高頻發(fā)射電路停止振蕩,所以高頻發(fā)射電路完全收控于PT2262的17腳輸出的數(shù)字信號(hào),從而對(duì)高頻電路完成幅度鍵控(ASK調(diào)制)相當(dāng)于調(diào)制度為100%的調(diào)幅。在通常使用中,一般采用8位地址碼和4位數(shù)據(jù)碼,這時(shí)編碼電路PT2262和解碼PT2272的第1~8腳為地址設(shè)定腳,有三種狀態(tài)可供選擇:懸空、接正電源、接地三種狀態(tài),3的8次方為6561,所以地址編碼不重復(fù)度為6561組,只有發(fā)射端PT2262和接收端PT2272的地址編碼完全相同,才能配對(duì)使用,例如將發(fā)射機(jī)的PT2262的第2腳接地第3腳接正電源,其它引腳懸空,那么接收機(jī)的PT2272只要第2腳接地第3腳接正電源,其它引腳懸空就能實(shí)現(xiàn)配對(duì)接收。當(dāng)兩者地址編碼完全一致時(shí),接收機(jī)對(duì)應(yīng)的D1~D4端輸出約4V互鎖高電平控制信號(hào),同時(shí)VT端也輸出解碼有效高電平信號(hào)。用戶可將這些信號(hào)加一級(jí)三極管放大,便可驅(qū)動(dòng)繼電器等負(fù)載進(jìn)行遙控操縱[5]。設(shè)置地址碼的原則是:同一個(gè)系統(tǒng)地址碼必須一致;不同的系統(tǒng)可以依靠不同的地址碼加以區(qū)分。至于設(shè)置什么樣的地址碼完全隨客戶喜歡。3無(wú)線發(fā)送與接收電路3.1無(wú)線發(fā)送電路原理如圖3.1-1所示。圖3.1-1PT2262發(fā)射原理圖PT2262的發(fā)射原理如上圖所示,采用8位地址碼和4位數(shù)據(jù)碼的格式。PT2262的第1~8引腳設(shè)置地址為“00000000”,及1~8腳都接地。第10~13引腳為數(shù)據(jù)輸入端,這四個(gè)引腳分別與單片機(jī)AT89S51的P2.0~P2.3口相連。要發(fā)送的數(shù)據(jù)通過(guò)單片機(jī)AT89S51的P2.0~P2.3口寫(xiě)入PT2262的數(shù)據(jù)輸入管腳10~13。由于第14腳接地,所以編碼啟動(dòng)端一直有效,當(dāng)PT2262的管腳10~13有輸入(有一個(gè)為“1”即有編碼發(fā)出),則輸入的4位數(shù)據(jù)再經(jīng)過(guò)第17腳串行輸出通過(guò)天線發(fā)送出去。3.2無(wú)線接收模塊無(wú)線接收模塊電路圖如圖3.2-1所示:PT2272的接收原理如上圖所示,由于PT2262采用8位地址碼和4位數(shù)據(jù)碼的格式,所以PT2272也要采用同樣的格式。PT2272要與PT2262的地址相匹配才能進(jìn)行傳輸,所以PT2272的地址引腳1~8也要設(shè)置為“00000000”,及都接地。數(shù)據(jù)出端10~13引腳與單片機(jī)AT89S51的P1.0~P1.3口相連。接收到的數(shù)據(jù)再通過(guò)單片機(jī)的外圍接口P1.0~P1.3讀入到單片機(jī)內(nèi)部進(jìn)行處理。第17腳連接到單片機(jī)的P3.2(INT0)的外中斷0的輸入端,同時(shí)接一個(gè)發(fā)光二極管來(lái)確定解碼有沒(méi)有效。當(dāng)解碼有效時(shí)17腳輸出瞬間的高電平同時(shí)使單片機(jī)產(chǎn)生中斷來(lái)讀取數(shù)據(jù)和二極管瞬間發(fā)光。每解碼有效一次,發(fā)光二極管的閃爍一次[6]。圖3.2-1PT2262接收原理圖4顯示電路4.1字符型液晶顯示模塊圖4.1-1液晶面板字符型液晶顯示模塊是一類專門(mén)用于顯示字母,數(shù)字,符號(hào)等的點(diǎn)陣式液晶顯示模塊。在顯示器件上的電極圖型設(shè)計(jì),它是由若干個(gè)5*7或5*11等點(diǎn)陣符位組成。每一個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符。點(diǎn)陣字符位之間有一空點(diǎn)距的間隔起到了字符間距和行距的作用。4.2字符型液晶顯示模塊引腳VSS為地電源,VDD接5V正電源,VL為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高,對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)一個(gè)10K的電位器調(diào)整對(duì)比度。RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。RW為讀寫(xiě)信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫(xiě)操作。當(dāng)RS和RW共同為低電平時(shí)可以寫(xiě)入指令或者顯示地址,當(dāng)RS為低電平RW為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平RW為低電平時(shí)可以寫(xiě)入數(shù)據(jù)。E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。DB0~DB7為8位雙向數(shù)據(jù)線,BLK和BLA是背光燈電源[7]。模塊引腳如表4.2-1。表4.2-1字符型液晶顯示模塊引腳編號(hào)符號(hào)引腳說(shuō)明編號(hào)符號(hào)引腳說(shuō)明1VSS電源地9D2DataI/O2VDD電源正極10D3DataI/O3VL液晶顯示偏壓信號(hào)11D4DataI/O4RS數(shù)據(jù)/命令12D5DataI/O5R/W讀/寫(xiě)13D6DataI/O6E使能信號(hào)14D7DataI/O7D0DataI/O45BLA背光源正級(jí)8D1DataI/O16BLK背光源負(fù)級(jí)4.3字符型液晶顯示模塊內(nèi)部結(jié)構(gòu)液晶顯示模塊WM-C1602N的內(nèi)部結(jié)構(gòu)如圖4.3-1分為三部份:一為L(zhǎng)CD控制器,二為L(zhǎng)CD驅(qū)動(dòng)器,三為L(zhǎng)CD顯示裝置。圖4.3-1LCD1602內(nèi)部結(jié)構(gòu)圖4.3-2液晶接口5單片機(jī)AT89S525.1AT89S52簡(jiǎn)介如圖5.1-1所示為AT89S52芯片的引腳圖。兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)的AT89S52單片機(jī)是一個(gè)低功耗、高性能CHMOS的單片機(jī),片內(nèi)含4KB在線可編程Flash存儲(chǔ)器的單片機(jī)。它與通用80C51系列單片機(jī)的指令系統(tǒng)和引腳兼容。AT89S52單片機(jī)片內(nèi)的Flash可允許在線重新編程,也可用通用非易失性存儲(chǔ)編程器編程;片內(nèi)數(shù)據(jù)存儲(chǔ)器內(nèi)含128字節(jié)的RAM;有40個(gè)引腳,32個(gè)外部雙向輸入/輸出(I/O)端口;具有兩個(gè)16位可編程定時(shí)器;中斷系統(tǒng)是具有6個(gè)中斷源、5個(gè)中斷矢量、2級(jí)中斷優(yōu)先級(jí)的中斷結(jié)構(gòu);震蕩器頻率0到33MHZ,因此我們?cè)诖诉x用12MHZ的晶振是比較合理的;具有片內(nèi)看門(mén)狗定時(shí)器;具有斷電標(biāo)志POF等等。AT89S51具有PDIP、TQFP和PLCC三種封裝形式[8]。圖5.1-1AT89S52引腳圖上圖就是PDIP封裝的引腳排列,下面介紹各引腳的功能。5.2AT89S52引腳說(shuō)明P0口:8位、開(kāi)漏級(jí)、雙向I/O口。P0口可作為通用I/O口,但須外接上拉電阻;作為輸出口,每各引腳可吸收8各TTL的灌電流。作為輸入時(shí),首先應(yīng)將引腳置1。P0也可用做訪問(wèn)外部程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器時(shí)的低8位地址/數(shù)據(jù)總線的復(fù)用線。在該模式下,P0口含有內(nèi)部上拉電阻。在FLASH編程時(shí),P0口接收代碼字節(jié)數(shù)據(jù);在編程效驗(yàn)時(shí),P0口輸出代碼字節(jié)數(shù)據(jù)(需要外接上拉電阻)。P1口:8位、雙向I/0口,內(nèi)部含有上拉電阻。P1口可作普通I/O口。輸出緩沖器可驅(qū)動(dòng)四個(gè)TTL負(fù)載;用作輸入時(shí),先將引腳置1,由片內(nèi)上拉電阻將其抬到高電平。P1口的引腳可由外部負(fù)載拉到低電平,通過(guò)上拉電阻提供電流。在FLASH并行編程和校驗(yàn)時(shí),P1口可輸入低字節(jié)地址。在串行編程和效驗(yàn)時(shí),P1.5/MO-SI,P1.6/MISO和P1.7/SCK分別是串行數(shù)據(jù)輸入、輸出和移位脈沖引腳。P2口:具有內(nèi)部上拉電阻的8位雙向I/O口。P2口用做輸出口時(shí),可驅(qū)動(dòng)4各TTL負(fù)載;用做輸入口時(shí),先將引腳置1,由內(nèi)部上拉電阻將其提高到高電平。若負(fù)載為低電平,則通過(guò)內(nèi)部上拉電阻向外部輸出電流。CPU訪問(wèn)外部16位地址的存儲(chǔ)器時(shí),P2口提供高8位地址。當(dāng)CPU用8位地址尋址外部存儲(chǔ)時(shí),P2口為P2特殊功能寄存器的內(nèi)容。在FLASH并行編程和校驗(yàn)時(shí),P2口可輸入高字節(jié)地址和某些控制信號(hào)。P3口:具有內(nèi)部上拉電阻的8位雙向口。P3口用做輸出口時(shí),輸出緩沖器可吸收4各TTL的灌電流;用做輸入口時(shí),首先將引腳置1,由內(nèi)部上拉電阻抬位高電平。若外部的負(fù)載是低電平,則通過(guò)內(nèi)部上拉電阻向輸出電流。在與FLASH并行編程和校驗(yàn)時(shí),P3口可輸入某些控制信號(hào)。P3口除了通用I/O口功能外,還有替代功能,如表5.3-1所示。表5.3-1P3口的替代功能引腳符號(hào)說(shuō)明P3.0RXD串行口輸入P3.1TXD串行口輸出P3.2/INT0外部中斷0P3.3/INT1外部中斷1P3.4T0T0定時(shí)器的外部的計(jì)數(shù)輸入P3.5T1T1定時(shí)器的外部的計(jì)數(shù)輸入P3.6/WR外部數(shù)據(jù)存儲(chǔ)器的寫(xiě)選通P3.7/RD外部數(shù)據(jù)存儲(chǔ)器的讀選通RST:復(fù)位端。當(dāng)振蕩器工作時(shí),此引腳上出現(xiàn)兩個(gè)機(jī)器周期的高電平將系統(tǒng)復(fù)位。ALE/:當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),ALE(允許地址鎖存)是一個(gè)用于鎖存地址的低8位字節(jié)的書(shū)粗脈沖。在Flash編程期間,此引腳也可用于輸入編程脈沖()。在正常操作情況下,ALE以振蕩器頻率的1/6的固定速率發(fā)出脈沖,它是用作對(duì)外輸出的時(shí)鐘,需要注意的是,每當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè)ALE脈沖。如果希望禁止ALE操作,可通過(guò)將特殊功能寄存器中位地址為8EH那位置的“0”來(lái)實(shí)現(xiàn)。該位置的“1”后。ALE僅在MOVE或MOVC指令期間激活,否則ALE引腳將被略微拉高。若微控制器在外部執(zhí)行方式,ALE禁止位無(wú)效。:外部程序存儲(chǔ)器讀選取通信號(hào)。當(dāng)AT89S51在讀取外部程序時(shí),每個(gè)機(jī)器周期將PSEN激活兩次。在此期間內(nèi),每當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)兩個(gè)信號(hào)。/Vpp:訪問(wèn)外部程序存儲(chǔ)器允許端。為了能夠從外部程序存儲(chǔ)器的0000H至FFFFH單元中取指令,必須接地,然而要注意的是,若對(duì)加密位1進(jìn)行編程,則在復(fù)位時(shí),的狀態(tài)在內(nèi)部被鎖存。執(zhí)行內(nèi)部程序應(yīng)接VCC。不當(dāng)選擇12V編程電源時(shí),在Flash編程期間,這個(gè)引腳可接12V編程電壓。XTAL1:振蕩器反向放大器輸入端和內(nèi)部時(shí)鐘發(fā)生器的輸入端。XTAL2:振蕩器反相放大器輸出端[9]。6軟件設(shè)計(jì)6.1系統(tǒng)概述整個(gè)系統(tǒng)的功能是由硬件電路配合軟件來(lái)實(shí)現(xiàn)的,當(dāng)硬件基本定型后,軟件的功能也就基本定下來(lái)了。從軟件的功能不同可分為兩大類:一是監(jiān)控軟件(主程序),它是整個(gè)控制系統(tǒng)的核心,專門(mén)用來(lái)協(xié)調(diào)各執(zhí)行模塊和操作者的關(guān)系。二是執(zhí)行軟件(子程序),它是用來(lái)完成各種實(shí)質(zhì)性的功能如測(cè)量、計(jì)算、顯示、通訊等。每一個(gè)執(zhí)行軟件也就是一個(gè)小的功能執(zhí)行模塊。這里將各執(zhí)行模塊一一列出,并為每一個(gè)執(zhí)行模塊進(jìn)行功能定義和接口定義。各執(zhí)行模塊規(guī)劃好后,就可以規(guī)劃監(jiān)控程序了。6.2程序設(shè)計(jì)流程圖圖6.2-1發(fā)射流程圖圖6.2-2接收流程圖6.3溫度傳感器多點(diǎn)數(shù)據(jù)采集DS18B20可設(shè)定9~12位的分辨率,本系統(tǒng)采用12位分辨率,轉(zhuǎn)換精度為0.0625℃,轉(zhuǎn)換溫度信號(hào)所需最長(zhǎng)時(shí)間為750ms。溫度數(shù)據(jù)由2字節(jié)組成,以符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲(chǔ),最低4位是小數(shù)部分,中間7位是整數(shù)部分,1位符號(hào)位。DS18B20內(nèi)部RAM由9個(gè)字節(jié)的高速緩存器和E2PROM組成,前2個(gè)字節(jié)即為溫度數(shù)據(jù)。通過(guò)復(fù)位指令、ROM和RAM功能命令,即可完成對(duì)指定DS18B20溫度數(shù)據(jù)的采集和讀取。在一線制總線上串接多個(gè)DS18B20器件時(shí),需要先發(fā)送跳過(guò)ROM指令,將所有傳感器都進(jìn)行一次溫度轉(zhuǎn)換,之后通過(guò)匹配ROM依次讀取每個(gè)傳感器的溫度數(shù)據(jù),實(shí)現(xiàn)對(duì)單I/O口上的多個(gè)DS18B20器件的操作[10]。在系統(tǒng)安裝及工作之前應(yīng)將主機(jī)逐個(gè)與DS1820掛接,以讀出其序列號(hào)。其工作過(guò)程為:主機(jī)發(fā)出一個(gè)脈沖,待“0”電平大于480μs后,復(fù)位DS1820,在DS1820所發(fā)響應(yīng)脈沖由主機(jī)接收后,主機(jī)再發(fā)讀ROM命令代碼33H,然后發(fā)一個(gè)脈沖(15μs),并接著讀取DS1820序列號(hào)的一位。用同樣方法讀取序列號(hào)的56位。另外,由于DS1820單線通信功能是分時(shí)完成的,遵循嚴(yán)格的時(shí)隙概念,系統(tǒng)對(duì)DS1820和各種操作必須按協(xié)議進(jìn)行,即:初始化DS18B20(發(fā)復(fù)位脈沖)→發(fā)ROM功能命令→發(fā)存儲(chǔ)器操作命令→處理數(shù)據(jù)。7調(diào)試及結(jié)果7.1測(cè)試環(huán)境及工具測(cè)試溫度:0~100攝氏度(模擬多點(diǎn)不同溫度值環(huán)境)。測(cè)試儀器及軟件:數(shù)字萬(wàn)用表,溫度計(jì)0~100攝氏度,串口調(diào)試助手。測(cè)試方法:目測(cè)。7.2測(cè)試方法使系統(tǒng)運(yùn)行,觀察系統(tǒng)硬件檢測(cè)是否正常(包括單片機(jī)最小系統(tǒng),鍵盤(pán)電路,顯示電路,溫度測(cè)試電路等)。系統(tǒng)自帶測(cè)試表格數(shù)據(jù),觀察顯示數(shù)據(jù)是否相符合即可。采用溫度傳感器和溫度計(jì)同時(shí)測(cè)量多點(diǎn)水溫變化情況(取溫度值不同的多點(diǎn)),目測(cè)顯示電路是否正常。并記錄各點(diǎn)溫度值,與實(shí)際溫度值比較,得出系統(tǒng)的溫度指標(biāo)。使用串口調(diào)試助手與單片機(jī)通訊,觀察單片機(jī)與串口之間傳輸數(shù)據(jù)正確否。7.3測(cè)試結(jié)果分析自檢正常,各點(diǎn)溫度顯示正常,串口傳輸數(shù)據(jù)正確。因?yàn)樾酒撬芰戏庋b,所以對(duì)溫度的感應(yīng)靈敏度不是相當(dāng)高,需要一個(gè)很短的時(shí)間才能達(dá)到穩(wěn)定。8總結(jié)本文研究的課題是基于單片機(jī)的多通道數(shù)據(jù)采集系統(tǒng),該系統(tǒng)的實(shí)現(xiàn)的功能是將來(lái)自傳感器的信號(hào)通過(guò)放大、線性化、濾波、同步采樣保持等處理后,輸入A/D轉(zhuǎn)換為數(shù)字信號(hào)后由單片機(jī)采集,然后利用單片機(jī)與PC機(jī)的通信將數(shù)據(jù)送到PC機(jī)進(jìn)行數(shù)據(jù)的存儲(chǔ)、后期處理與顯示,該系統(tǒng)的數(shù)據(jù)處理功能強(qiáng)大、顯示直觀、界面友好、性價(jià)比商,可廣泛應(yīng)用于工業(yè)控制、儀器、儀表、機(jī)電一體化、智能家居等諸多領(lǐng)域。本系統(tǒng)還是一個(gè)不完善的系統(tǒng),還有許多需要改進(jìn)的地方。設(shè)計(jì)中所采用的DS18B20搜索算法還存在不足,有時(shí)會(huì)發(fā)生重復(fù)或遺漏搜索。在通信協(xié)議不完整,沒(méi)有進(jìn)行發(fā)送超時(shí)出錯(cuò)處理。還有各種不足之處有待將來(lái)改進(jìn)。 設(shè)計(jì)得以順利完成,得感謝我的指導(dǎo)老師,在這個(gè)過(guò)程中他都一直指導(dǎo)著我,雖然他沒(méi)有時(shí)時(shí)刻刻在我們身邊親歷指導(dǎo),但是他每天都詢問(wèn)我的進(jìn)展情況,對(duì)我遇到的問(wèn)題給予我解答,并對(duì)我的設(shè)計(jì)進(jìn)行一些優(yōu)化。附錄1:電路原理總圖附錄2:發(fā)射部分主程序#include<regx51.h>#include”ds18b20.h”#defineucharunsignedchar/***********pt2262發(fā)射函數(shù)***********/voidsend_dat(ucharx){ucharx1,x2;x1=x&0x0f;P2=x1;//將數(shù)據(jù)的低4位先發(fā)送出去x2=x>>4;P2=x2;//再將數(shù)據(jù)的高4位發(fā)送出去}/************主函數(shù)******************/voidmain(){while(1){read_ds18b20();//讀取溫度send_dat(temp1);//發(fā)射溫度1 send_dat(temp2);//發(fā)射溫度2 send_dat(temp3);//發(fā)射溫度3}}Ds18b20.h頭文件:#ifndef_ds18b20#define_ds18b20uchartemperature,y1,y2,x2,y3;#defineDQP1_0//溫度接收口uchartpl;uchartph;/************************************************************/voiddelay_b(uintt){ uinti; while(t--) { for(i=0;i<125;i++); }}/************************************************************/voidtxreset(void){ uinti; DQ=0; i=100; while(i>0)i--; DQ=1; i=4; while(i>0)i--;}/************************************************************/voidrxwait(void) { uinti; while(DQ); while(!DQ); i=4; while(i>0)i--; }/************************************************************/bitrdbit(void) { uinti; bitb; DQ=0; i++; DQ=1; i++;i++; b=DQ; i=8; while(i>0) i--; return(b); }/*************************************************************Function:讀18B20的一個(gè)字節(jié)*************************************************************/ucharrdbyte(void) { uchari,j,b; for(i=1;i<=8;i++) { j=rdbit(); b=(j<<7)|(b>>1); } return(b); }/*************************************************************Function:向18B20寫(xiě)入一個(gè)字節(jié)*************************************************************/voidwrbyte(ucharb){ uinti; ucharj,btm; for(j=1;j<=8;j++) { btm=b&0x01; b=b>>1; if(btm==1) { DQ=0; i++;i++; DQ=1; i=8; while(i>0) i--; } else { DQ=0; i=8; while(i>0) i--; DQ=1; i++;i++; }}}/*************************************************************Function:溫度轉(zhuǎn)換*************************************************************/voidconvert(void){ txreset(); rxwait(); delay_b(1); //延時(shí) wrbyte(0xcc); wrbyte(0x44);}/************************************************************/voidrdtemp(void){ txreset(); rxwait(); delay_b(1); //延時(shí) wrbyte(0xcc); wrbyte(0xbe); tpl=rdbyte(); tph=rdbyte();}/************************************************************/voiddelay_2ms() //動(dòng)態(tài)掃描顯示時(shí)間{ unsignedchari,j; for(i=0;i<8;i++) for(j=0;j<30;j++);}voiddisp_led(){ P0=a[y1]; P2=b[0]; delay_2ms(); P2=0XFF; P0=a[y2]&0x7f; //顯示帶小數(shù)點(diǎn)的數(shù) P2=b[1]; delay_2ms(); P2=0XFF; P0=a[y3]; P2=b[2]; delay_2ms(); P2=0XFF;}/************************************************************/voiddelay_2(uchara) //延時(shí)函數(shù){ ucharb,c; for(b=0;b<a;b++) for(c=0;c<10;c++);}/************************************************************/voidread_ds18b20(){ convert(); delay_2(500); rdtemp(); temperature=(tpl&0xf0)/16+(tph&0x07)*16; y1=temperature/10; //整數(shù)溫度十位 y2=temperature%10; //溫度個(gè)位 x2=(tpl&0x0f)*(100/16); y3=x2/10;//小數(shù)溫度十位}/************************************************************/#endif附錄3:接收部分主程序#include<regx51.h>#include"lcd1602.h"#defineucharunsignedcharucharflag=0,flag_dat=0;//定義flag標(biāo)志變量表示接收的數(shù)據(jù)的高4位還是低4位,flag_dat表示接收的是第幾個(gè)溫度傳感器的數(shù)據(jù)uchardat,dat1,dat2;uchartemp1,temp2,temp3;/************顯示函數(shù)********************/voiddisplay(){wc51r(0x80);//第一行第一列開(kāi)始顯示wc51_str("T1:");wc51_data(temp1/100);wc51_data(temp1%100/10);wc51_data('.');wc51_data(temp1%10);wc51_str("")wc51_str("T2:");wc51_data(temp2/100);wc51_data(temp2%100/10);wc51_data('.');wc51_data(temp2%10);wc51r(0xC0);//第二行第一列開(kāi)始顯示wc51_str("T3:");wc51_data(temp3/100);wc51_data(temp3%100/10);wc51_data('.');wc51_data(temp3%10);}/***************pt2272讀函數(shù)*************************/ucharrecv_dat(){uchary;y=P1;//讀取4位二進(jìn)制數(shù)據(jù)return(y);}/***********主函數(shù)*************************/voidmain(){EA=1;//開(kāi)總中斷EX0=1;//開(kāi)外中斷0IT0=1;//設(shè)置外中斷0位邊沿觸發(fā)方式while(1){if(flag_dat==1){ temp1=dat*10; }elseif(flag_dat==2){ temp2=dat*10; }elseif(flag_dat==3){ temp3=dat*10; }display();}}/*************外中斷0函數(shù)***********************/voidint0() interrupt0{if(flag==0)dat1=recv_dat();//讀取低4位數(shù)據(jù)elsedat2=recv_dat();//讀取高4數(shù)據(jù)位flag++;//每中斷一次標(biāo)志位自加1if(flag==2){flag=0; flag_dat++; if(falg_dat==4) flag_dat=1;}dat1=dat1&0x0f;dat2=(dat2&0x0f)>>4;dat=dat1|dat2;}1602.h頭文件:#include<intrins.h>#defineucharunsignedchar/*sbitRS=P2^7;sbitRW=P2^6;sbitE=P2^5;*/#defineRSP2_5#defineRWP2_6#defineEP2_7voidinit();//聲明初始化函數(shù)voidwc51r(ucharx);//聲明寫(xiě)命令函數(shù)voidwc51_data(uchary);//聲明寫(xiě)數(shù)據(jù)函數(shù)voidwc51_str(uchar*p);//聲明寫(xiě)字符串函數(shù)voidfbusy();//聲明查忙函數(shù)voidinit(){wc51r(0x01);//清屏//wc51r(0x30);//使用8位數(shù)據(jù),單行顯示,5*7點(diǎn)陣wc51r(0x38);//使用8位數(shù)據(jù),雙行顯示,5*7點(diǎn)陣//wc51r(0x0e);//顯示器開(kāi),顯示光標(biāo),字符不閃爍wc51r(0x0c);//顯示器開(kāi)不顯示光標(biāo),字符不閃爍wc51r(0x06);//字符不動(dòng),光標(biāo)移動(dòng)}voidfbusy()//查忙函數(shù){ do { P0=0xff;//作為輸入時(shí),應(yīng)該被拉高,初始化輸入端口 RS=0; RW=1; E=0; E=1;//上升沿時(shí)數(shù)據(jù)才開(kāi)始建立,也就是讀入P0口的數(shù)據(jù) _nop_();//數(shù)據(jù)建立需要一定的時(shí)間最大值100ns }while(P0_7);//如果查忙標(biāo)志位為1則忙,查忙標(biāo)志位為數(shù)據(jù)輸入端的最高位BF}//寫(xiě)函數(shù)命令voidwc51r(ucharx){fbusy();RS=0;RW=0;E=1;P0=x;E=0;_nop_();}//寫(xiě)數(shù)據(jù)函數(shù)voidwc51_data(uchary){fbusy();RS=1;RW=0;E=1;P0=y;E=0;_nop_();}voidwc51_str(uchar*p)//輸入字符串函數(shù){while(*p){wc51_data(*p);p++;}}參考文獻(xiàn):[1]余永權(quán):?jiǎn)纹瑱C(jī)原理及應(yīng)用,電子工業(yè)出版社,1998.12,P57-P62[2]諸邦田:電子電路實(shí)用抗干擾技術(shù),人民郵電出版社,1994.5,P23-29[3]曲喜新:電子元件材料手冊(cè).電子工業(yè)出版社,1989.4,P17-P22[4]黃賢武、鄭筱霞、曲波、劉文杰:傳感器實(shí)際應(yīng)用電路設(shè)計(jì),電子科技大學(xué)出版社,1997.6,P8-P15[5]劉君華:智能傳感器系統(tǒng),西安電子科技大學(xué)出版社,1999.3,P137-P146[6]汪吉鵬、馬云峰:微機(jī)原理與接口技術(shù),高等教育出版社,2001.7,P44-P56[7]賈振國(guó):DS1820及高精度溫度測(cè)量的實(shí)現(xiàn),電子技術(shù)應(yīng)用,2000.1,P9-P14[8]偉正:?jiǎn)尉€數(shù)字溫度傳感器的原理與應(yīng)用,電子技術(shù)應(yīng)用,2000.6,P23-P31[9]周月霞、孫傳友:DS18B20硬件連接及軟件編程,傳感器世界,2001.8,P13-P21[10]單線數(shù)字溫度傳感器資料,武漢力源電子有限公司,1996.3,P25-P29基于C8051F單片機(jī)直流電動(dòng)機(jī)反饋控制系統(tǒng)的設(shè)計(jì)與研究基于單片機(jī)的嵌入式Web服務(wù)器的研究MOTOROLA單片機(jī)MC68HC(8)05PV8/A內(nèi)嵌EEPROM的工藝和制程方法及對(duì)良率的影響研究基于模糊控制的電阻釬焊單片機(jī)溫度控制系統(tǒng)的研制基于MCS-51系列單片機(jī)的通用控制模塊的研究基于單片機(jī)實(shí)現(xiàn)的供暖系統(tǒng)最佳啟停自校正(STR)調(diào)節(jié)器單片機(jī)控制的二級(jí)倒立擺系統(tǒng)的研究基于增強(qiáng)型51系列單片機(jī)的TCP/IP協(xié)議棧的實(shí)現(xiàn)基于單片機(jī)的蓄電池自動(dòng)監(jiān)測(cè)系統(tǒng)基于32位嵌入式單片機(jī)系統(tǒng)的圖像采集與處理技術(shù)的研究基于單片機(jī)的作物營(yíng)養(yǎng)診斷專家系統(tǒng)的研究基于單片機(jī)的交流伺服電機(jī)運(yùn)動(dòng)控制系統(tǒng)研究與開(kāi)發(fā)基于單片機(jī)的泵管內(nèi)壁硬度測(cè)試儀的研制基于單片機(jī)的自動(dòng)找平控制系統(tǒng)研究基于C8051F040單片機(jī)的嵌入式系統(tǒng)開(kāi)發(fā)基于單片機(jī)的液壓動(dòng)力系統(tǒng)狀態(tài)監(jiān)測(cè)儀開(kāi)發(fā)模糊Smith智能控制方法的研究及其單片機(jī)實(shí)現(xiàn)一種基于單片機(jī)的軸快流CO〈,2〉激光器的手持控制面板的研制基于雙單片機(jī)沖床數(shù)控系統(tǒng)的研究基于CYGNAL單片機(jī)的在線間歇式濁度儀的研制基于單片機(jī)的噴油泵試驗(yàn)臺(tái)控制器的研制基于單片機(jī)的軟起動(dòng)器的研究和設(shè)計(jì)基于單片機(jī)控制的高速快走絲電火花線切割機(jī)床短循環(huán)走絲方式研究基于單片機(jī)的機(jī)電產(chǎn)品控制系統(tǒng)開(kāi)發(fā)基于PIC單片機(jī)的智能手機(jī)充電器基于單片機(jī)的實(shí)時(shí)內(nèi)核設(shè)計(jì)及其應(yīng)用研究基于單片機(jī)的遠(yuǎn)程抄表系統(tǒng)的設(shè)計(jì)與研究基于單片機(jī)的煙氣二氧化硫濃度檢測(cè)儀的研制基于微型光譜儀的單片機(jī)系統(tǒng)單片機(jī)系統(tǒng)軟件構(gòu)件開(kāi)發(fā)的技術(shù)研究基于單片機(jī)的液體點(diǎn)滴速度自動(dòng)檢測(cè)儀的研制基于單片機(jī)系統(tǒng)的多功能溫度測(cè)量?jī)x的研制基于PIC單片機(jī)的電能采集終端的設(shè)計(jì)和應(yīng)用基于單片機(jī)的光纖光柵解調(diào)儀的研制氣壓式線性摩擦焊機(jī)單片機(jī)控制系統(tǒng)的研制基于單片機(jī)的數(shù)字磁通門(mén)傳感器基于單片機(jī)的旋轉(zhuǎn)變壓器-數(shù)字轉(zhuǎn)換器的研究基于單片機(jī)的光纖Bragg光柵解調(diào)系統(tǒng)的研究單片機(jī)控制的便攜式多功能乳腺治療儀的研制基于C8051F020單片機(jī)的多生理信號(hào)檢測(cè)儀基于單片機(jī)的電機(jī)運(yùn)動(dòng)控制系統(tǒng)設(shè)計(jì)Pico專用單片機(jī)核的可測(cè)性設(shè)計(jì)研究基于MCS-51單片機(jī)的熱量計(jì)基于雙單片機(jī)的智能遙測(cè)微型氣象站MCS-51單片機(jī)構(gòu)建機(jī)器人的實(shí)踐研究基于單片機(jī)的輪軌力檢測(cè)基于單片機(jī)的GPS定位儀的研究與實(shí)現(xiàn)基于單片機(jī)的電液伺服控制系統(tǒng)用于單片機(jī)系統(tǒng)的MMC卡文件系統(tǒng)研制基于單片機(jī)的時(shí)控和計(jì)數(shù)系統(tǒng)性能優(yōu)化的研究基于單片機(jī)和CPLD的粗光柵位移測(cè)量系統(tǒng)研究單片機(jī)控制的后備式方波UPS提升高職學(xué)生單片機(jī)應(yīng)用能力的探究基于單片機(jī)控制的自動(dòng)低頻減載裝置研究基于單片機(jī)控制的水下焊接電源的研究基于單片機(jī)的多通道數(shù)據(jù)采集系統(tǒng)基于uPSD3234單片機(jī)的氚表面污染測(cè)量?jī)x的研制基于單片機(jī)的紅外測(cè)油儀的研究96系列單片機(jī)仿真器研究與設(shè)計(jì)基于單片機(jī)的單晶金剛石刀具刃磨設(shè)備的數(shù)控改造基于單片機(jī)的溫度智能控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)基于MSP430單片機(jī)的電梯門(mén)機(jī)控制器的研制基于單片機(jī)的氣體測(cè)漏儀的研究基于三菱M16C/6N系列單片機(jī)的CAN/USB協(xié)議轉(zhuǎn)換器基于單片機(jī)和DSP的變壓器油色譜在線監(jiān)測(cè)技術(shù)研究基于單片機(jī)的膛壁溫度報(bào)警系統(tǒng)設(shè)計(jì)基于AVR單片機(jī)的低壓無(wú)功補(bǔ)償控制器的設(shè)計(jì)基于單片機(jī)船舶電力推進(jìn)電機(jī)監(jiān)測(cè)系統(tǒng)基于單片機(jī)網(wǎng)絡(luò)的振動(dòng)信號(hào)的采集系統(tǒng)基于單片機(jī)的大容量數(shù)據(jù)存儲(chǔ)技術(shù)的應(yīng)用研究基于單片機(jī)的疊圖機(jī)研究與教學(xué)方法實(shí)踐基于單片機(jī)嵌入式Web服務(wù)器技術(shù)的研究及實(shí)現(xiàn)基于AT89S52單片機(jī)的通用數(shù)據(jù)采集系統(tǒng)基于單片機(jī)的多道脈沖幅度分析儀研究HYPERLINK"/detail.htm?3

溫馨提示

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

評(píng)論

0/150

提交評(píng)論