DF無(wú)線數(shù)據(jù)收發(fā)模塊_第1頁(yè)
DF無(wú)線數(shù)據(jù)收發(fā)模塊_第2頁(yè)
DF無(wú)線數(shù)據(jù)收發(fā)模塊_第3頁(yè)
DF無(wú)線數(shù)據(jù)收發(fā)模塊_第4頁(yè)
DF無(wú)線數(shù)據(jù)收發(fā)模塊_第5頁(yè)
已閱讀5頁(yè),還剩55頁(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)介

1、用途DF無(wú)線數(shù)據(jù)收發(fā)模塊無(wú)線數(shù)據(jù)傳輸廣泛地運(yùn)用在車輛監(jiān)控、遙控、遙測(cè)、小型無(wú)線網(wǎng)絡(luò)、無(wú)線抄表、門禁系統(tǒng)、小區(qū)傳呼、工業(yè)數(shù)據(jù)采集系統(tǒng)、無(wú)線標(biāo)簽、身份識(shí)別、非接觸RF智能卡、小型無(wú)線數(shù)據(jù)終端、安全防火系統(tǒng)、無(wú)線遙控系統(tǒng)、生物信號(hào)采集、水文氣象監(jiān)控、機(jī)器人控制、無(wú)線232數(shù)據(jù)通信、無(wú)線485/422數(shù)據(jù)通信、數(shù)字音頻、數(shù)字圖像傳輸?shù)阮I(lǐng)域中。 這是DF發(fā)射模塊,體積:19x19x8毫米,右邊是等效的電路原理圖主要技術(shù)指標(biāo):1。通訊方式:調(diào)幅AM2。工作頻率:315MHZ (可以提供433MHZ,購(gòu)貨時(shí)請(qǐng)?zhí)貏e注明)3。頻率穩(wěn)定度:75KHZ4。發(fā)射功率:500MW5。靜態(tài)電流:0.1UA6。發(fā)射電流:3

2、50MA7。工作電壓:DC 312V315MHZ發(fā)射模塊 8元一個(gè)433MHZ發(fā)射模塊 8元一個(gè)DF數(shù)據(jù)發(fā)射模塊的工作頻率為315M,采用聲表諧振器SAW穩(wěn)頻,頻率穩(wěn)定度極高,當(dāng)環(huán)境溫度在2585度之間變化時(shí),頻飄僅為3ppm/度。特別適合多發(fā)一收無(wú)線遙控及數(shù)據(jù)傳輸系統(tǒng)。聲表諧振器的頻率穩(wěn)定度僅次于晶體,而一般的LC振蕩器頻率穩(wěn)定度及一致性較差,即使采用高品質(zhì)微調(diào)電容,溫差變化及振動(dòng)也很難保證已調(diào)好的頻點(diǎn)不會(huì)發(fā)生偏移。DF發(fā)射模塊未設(shè)編碼集成電路,而增加了一只數(shù)據(jù)調(diào)制三極管Q1,這種結(jié)構(gòu)使得它可以方便地和其它固定編碼電路、滾動(dòng)碼電路及單片機(jī)接口,而不必考慮編碼電路的工作電壓和輸出幅度信號(hào)值的大

3、小。比如用PT2262等編碼集成電路配接時(shí),直接將它們的數(shù)據(jù)輸出端第17腳接至DF數(shù)據(jù)模塊的輸入端即可。DF數(shù)據(jù)模塊具有較寬的工作電壓范圍312V,當(dāng)電壓變化時(shí)發(fā)射頻率基本不變,和發(fā)射模塊配套的接收模塊無(wú)需任何調(diào)整就能穩(wěn)定地接收。當(dāng)發(fā)射電壓為3V時(shí),空曠地傳輸距離約2050米,發(fā)射功率較小,當(dāng)電壓5V時(shí)約100200米,當(dāng)電壓9V時(shí)約300500米,當(dāng)發(fā)射電壓為12V時(shí),為最佳工作電壓,具有較好的發(fā)射效果,發(fā)射電流約60毫安,空曠地傳輸距離700800米,發(fā)射功率約500毫瓦。當(dāng)電壓大于l2V時(shí)功耗增大,有效發(fā)射功率不再明顯提高。這套模塊的特點(diǎn)是發(fā)射功率比較大,傳輸距離比較遠(yuǎn),比較適合惡劣條件

4、下進(jìn)行通訊。天線最好選用25厘米長(zhǎng)的導(dǎo)線,遠(yuǎn)距離傳輸時(shí)最好能夠豎立起來(lái),因?yàn)闊o(wú)線電信號(hào)傳輸時(shí)收很多因素的影響,所以一般實(shí)用距離只有標(biāo)稱距離的20甚至更少,這點(diǎn)需要在開(kāi)發(fā)時(shí)注意考慮。DF數(shù)據(jù)模塊采用ASK方式調(diào)制,以降低功耗,當(dāng)數(shù)據(jù)信號(hào)停止時(shí)發(fā)射電流降為零,數(shù)據(jù)信號(hào)與DF發(fā)射模塊輸入端可以用電阻或者直接連接而不能用電容耦合,否則DF發(fā)射模塊將不能正常工作。數(shù)據(jù)電平應(yīng)接近DF數(shù)據(jù)模塊的實(shí)際工作電壓,以獲得較高的調(diào)制效果。無(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ā)生了翻天覆地的變化。我

5、們已經(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)控等工程中,例如:城市路燈故障檢

6、測(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ù)字顯示、信息存

7、儲(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)多、

8、環(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ì)于檢

9、測(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è)溫元件,此元件線性度較好。在0100攝氏度時(shí),最大線形偏差小于1攝氏度。DS18B20的最大特點(diǎn)之一采用了單總線的

10、數(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ī)

11、實(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)

12、的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ì)各

13、個(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í),

14、維持輸出直流電壓穩(wěn)定。220V交流電通過(guò)9V變壓器變?yōu)?V的交流電,9V交流電通過(guò)四個(gè)二極管的全橋整流后變?yōu)?V直流電,然后經(jīng)過(guò)電解電容(470F)進(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)

15、設(shè)計(jì)好,對(duì)于本設(shè)計(jì)它完全能夠滿足單片機(jī)及集成塊所需電源的要求2。電源原理圖如圖2.1-1所示。圖2.1-1 電源原理圖2.2 溫度采集電路2.2.1 DS18B20簡(jiǎn)介溫度芯片DS18B20是Dallas公司生產(chǎn)的一線式數(shù)字溫度傳感器,具有3引腳TO92小體積封裝形式。測(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都有唯一系

16、列號(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-1 DS18B20方框圖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ò)軟件寫入用戶報(bào)警上下限值。D、配置寄存器。配置寄存器為高速暫存存儲(chǔ)器中的第五個(gè)字節(jié)。其中R0、R1:溫度計(jì)分辨

17、率設(shè)置位,其對(duì)應(yīng)四種分辨率如下表所列,出廠時(shí)R0、R1置為缺省值:R0=1,R1=1(即12位分辨率),用戶可根據(jù)需要改寫配置寄存器以獲得合適的分辨率。 表 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

18、=1時(shí),先將補(bǔ)碼變?yōu)樵a,再計(jì)算十進(jìn)制值。表2.2.1-2 DS18B20存儲(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。圖

19、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)行,讀、寫時(shí)間片程序要嚴(yán)格按要求編寫。尤其在使用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)將其三線焊

20、接牢固;在兩線應(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)地址端管腳(懸空,接高電平,接低電平),任意組合可提供 地址碼,PT2262 最多可有6 位(D0-D

21、5)數(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

22、腳為低平期間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 的第18腳為地址設(shè)定腳,有三種狀態(tài)可供選擇:懸空、接正電源、接地三種狀態(tài),3 的8 次方為6561,所以地址編碼不重復(fù)度為6561 組,只有發(fā)射端PT2262 和接收端PT2272 的地址編碼完全相同,才能配對(duì)使用,例如將發(fā)射機(jī)的PT2262 的第2 腳接地第3 腳接正電源,其它引腳懸空,那么接收機(jī)的PT2272 只要

23、第2 腳接地第3 腳接正電源,其它引腳懸空就能實(shí)現(xiàn)配對(duì)接收。當(dāng)兩者地址編碼完全一致時(shí),接收機(jī)對(duì)應(yīng)的D1D4端輸出約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-1 PT2262發(fā)射原理圖 PT2262的發(fā)射原理如上圖所示,采用8 位地址碼和4 位數(shù)據(jù)碼的格式。PT2262的第18引腳設(shè)置地址為“”,及18腳都接

24、地。第1013引腳為數(shù)據(jù)輸入端,這四個(gè)引腳分別與單片機(jī)AT89S51的P2.0P2.3口相連。要發(fā)送的數(shù)據(jù)通過(guò)單片機(jī)AT89S51的P2.0P2.3口寫入PT2262的數(shù)據(jù)輸入管腳1013。由于第14腳接地,所以編碼啟動(dòng)端一直有效,當(dāng)PT2262的管腳1013有輸入(有一個(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)行傳輸,所以PT22

25、72的地址引腳18也要設(shè)置為“”,及都接地。數(shù)據(jù)出端1013引腳與單片機(jī)AT89S51的P1.0P1.3口相連。接收到的數(shù)據(jù)再通過(guò)單片機(jī)的外圍接口P1.0P1.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-1 PT2262接收原理圖4 顯示電路4.1 字符型液晶顯示模塊圖4.1-1 液晶面板 字符型液晶顯示模塊是一類專門用于顯示字母,數(shù)字,符號(hào)等的點(diǎn)陣式液晶顯示模塊。在顯示器件上的

26、電極圖型設(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為讀寫信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。當(dāng)RS和RW共同為低電平時(shí)可以寫入指令或者顯示地址,當(dāng)RS為低電平RW為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平RW

27、為低電平時(shí)可以寫入數(shù)據(jù)。E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。DB0DB7為8位雙向數(shù)據(jù)線,BLK和BLA是背光燈電源7。模塊引腳如表4.2-1。 表4.2-1 字符型液晶顯示模塊引腳編號(hào)符號(hào)引腳說(shuō)明編號(hào)符號(hào)引腳說(shuō)明1VSS電源地9D2Data I/O2VDD電源正極10D3Data I/O3VL液晶顯示偏壓信號(hào)11D4Data I/O4RS數(shù)據(jù)/命令12D5Data I/O5R/W讀/寫13D6Data I/O6E使能信號(hào)14D7Data I/O7D0Data I/O45BLA背光源正級(jí)8D1Data I/O16BLK背光源負(fù)級(jí)4.3 字符型液晶顯示模塊內(nèi)部結(jié)構(gòu) 液晶

28、顯示模塊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-1 LCD1602內(nèi)部結(jié)構(gòu) 圖4.3-2 液晶接口5 單片機(jī)AT89S52 5.1 AT89S52簡(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

29、個(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)看門狗定時(shí)器;具有斷電標(biāo)志POF等等。AT89S51具有PDIP、TQFP和PLCC三種封裝形式8。圖5.1-1 AT89S52引腳圖上圖就是PDIP封裝的引腳排列,下面介紹各引腳的功能。5.2 AT89S52引腳說(shuō)明P0口:8位、開(kāi)漏級(jí)、雙向I/O口。P0口可作為通用I/O口,但須外接上拉電阻;作為輸出口,每各引腳可吸收8各TTL的灌電流。作為輸入時(shí),首先應(yīng)將引腳置1。P0

30、也可用做訪問(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ù)輸入、輸出和移位脈沖引腳。

31、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)部上拉電阻向輸出電流。在與FL

32、ASH并行編程和校驗(yàn)時(shí),P3口可輸入某些控制信號(hào)。P3口除了通用I/O口功能外,還有替代功能,如表5.3-1所示。表5.3-1 P3口的替代功能引腳符號(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ǔ)器的寫選通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 編程期

33、間,此引腳也可用于輸入編程脈沖()。在正常操作情況下,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ǔ)器允許端。為了能夠

34、從外部程序存儲(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)的核心,專門用來(lái)協(xié)調(diào)各執(zhí)行模塊和操作者的關(guān)系。二是執(zhí)行軟件(子程序),它是用來(lái)完

35、成各種實(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è)定912 位的分辨率,本系統(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é)的高速緩存器和

36、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”電平大于480s后,復(fù)位DS1820,在DS1820所發(fā)響應(yīng)脈沖由主機(jī)接收后,主機(jī)再發(fā)讀ROM命令代碼33H,然后發(fā)一個(gè)脈沖(15s),并接著

37、讀取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è)試溫度:0100攝氏度(模擬多點(diǎn)不同溫度值環(huán)境)。測(cè)試儀器及軟件:數(shù)字萬(wàn)用表,溫度計(jì)0100攝氏度,串口調(diào)試助手。測(cè)試方法:目測(cè)。7.2 測(cè)試方法使系統(tǒng)運(yùn)行,觀察系統(tǒng)硬件檢測(cè)是否正常(包括單片機(jī)最小系統(tǒng),鍵盤電路,顯示電路,溫度測(cè)試電路等)。系統(tǒng)自帶測(cè)試表格數(shù)據(jù),觀察顯示數(shù)據(jù)是否相符合即可。采用溫度傳感器和溫

38、度計(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ǔ)、后期處理與顯

39、示,該系統(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#include”ds1

40、8b20.h”#define uchar unsigned char /*pt2262發(fā)射函數(shù)*/void send_dat(uchar x) uchar x1,x2; x1=x&0x0f; P2=x1;/將數(shù)據(jù)的低4位先發(fā)送出去 x2=x4; P2=x2;/再將數(shù)據(jù)的高4位發(fā)送出去/*主函數(shù)*/void main() while(1) read_ds18b20();/讀取溫度 send_dat(temp1);/發(fā)射溫度1send_dat(temp2);/發(fā)射溫度2send_dat(temp3);/發(fā)射溫度3 Ds18b20.h頭文件:#ifndef _ds18b20#define _ds18

41、b20 uchar temperature,y1,y2,x2,y3; #define DQ P1_0 /溫度接收口uchar tpl;uchar tph;/*/void delay_b(uint t) uint i; while(t-) for(i=0;i0) i-; DQ=1; i=4; while(i0) i-;/*/void rxwait(void) uint i; while(DQ); while(!DQ); i=4; while(i0) i-;/*/bit rdbit(void) uint i;bit b; DQ=0;i+; DQ=1;i+;i+; b=DQ; i=8;while(i

42、0) i-;return (b);/*Function:讀18B20的一個(gè)字節(jié)*/uchar rdbyte(void) uchar i,j,b;for(i=1;i=8;i+) j=rdbit();b=(j1); return (b); /*Function:向18B20寫入一個(gè)字節(jié)*/ void wrbyte(uchar b) uint i; uchar j, btm; for(j=1; j1; if(btm=1) DQ=0;i+;i+;DQ=1; i=8; while(i0) i-; else DQ=0; i=8;while(i0) i-;DQ=1;i+; i+; /*Function:溫度

43、轉(zhuǎn)換*/void convert(void)txreset();rxwait();delay_b(1);/延時(shí)wrbyte(0xcc);wrbyte(0x44);/*/void rdtemp(void)txreset(); rxwait(); delay_b(1); /延時(shí)wrbyte(0xcc); wrbyte(0xbe); tpl=rdbyte();tph=rdbyte();/*/void delay_2ms() /動(dòng)態(tài)掃描顯示時(shí)間unsigned char i,j;for(i=0;i8;i+) for(j=0;j30;j+);void disp_led() P0=ay1; P2=b0;

44、delay_2ms();P2=0XFF;P0=ay2&0x7f; / 顯示帶小數(shù)點(diǎn)的數(shù) P2=b1; delay_2ms();P2=0XFF; P0=ay3; P2=b2; delay_2ms();P2=0XFF;/*/void delay_2(uchar a)/延時(shí)函數(shù) uchar b,c; for(b=0;ba;b+) for(c=0;c10;c+); /*/void read_ds18b20() convert(); delay_2(500); rdtemp(); temperature=(tpl&0xf0)/16+(tph&0x07)*16;y1=temperature/10; /整數(shù)

45、 溫度十位y2=temperature%10; / 溫度個(gè)位x2=(tpl&0x0f)*(100/16);y3=x2/10; /小數(shù) 溫度十位/*/#endif附錄3: 接收部分主程序#include#include lcd1602.h#define uchar unsigned charuchar flag=0,flag_dat=0; /定義flag標(biāo)志變量表示接收的數(shù)據(jù)的高4位還是低4位,flag_dat表示接收的是第幾個(gè)溫度傳感器的數(shù)據(jù)uchar dat,dat1,dat2;uchar temp1,temp2,temp3;/*顯示函數(shù)*/void display() wc51r(0x80

46、);/第一行第一列開(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

47、/10); wc51_data(.); wc51_data(temp3%10);/*pt2272讀函數(shù)*/ uchar recv_dat() uchar y; y=P1;/讀取4位二進(jìn)制數(shù)據(jù) return(y);/*主函數(shù)*/void main() EA=1;/開(kāi)總中斷 EX0=1;/開(kāi)外中斷0 IT0=1;/設(shè)置外中斷0位邊沿觸發(fā)方式 while(1) if(flag_dat=1) temp1=dat*10; else if(flag_dat=2) temp2=dat*10; else if(flag_dat=3) temp3=dat*10; display(); /*外中斷0函數(shù)*/voi

48、d int0()interrupt 0 if(flag=0) dat1=recv_dat();/讀取低4位數(shù)據(jù) else dat2=recv_dat();/讀取高4數(shù)據(jù)位 flag+;/每中斷一次標(biāo)志位自加1 if(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#define uchar unsigned char/*sbit RS=P27;sbit RW=P26;sbit E=P25;*/#defi

49、ne RS P2_5#define RW P2_6#define E P2_7void init();/聲明初始化函數(shù)void wc51r(uchar x);/聲明寫命令函數(shù)void wc51_data(uchar y);/聲明寫數(shù)據(jù)函數(shù)void wc51_str(uchar *p);/聲明寫字符串函數(shù)void fbusy();/聲明查忙函數(shù)void init() 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)void fbusy()/查忙函數(shù) do P0=0xff;/

溫馨提示

  • 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)論