畢業(yè)論文---數(shù)字式多路溫度采集系統(tǒng)的設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩31頁(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、<p><b>  學(xué)位論文原創(chuàng)性聲明</b></p><p>  目 錄</p><p><b>  摘要(1)</b></p><p><b>  關(guān)鍵詞(1)</b></p><p><b>  前言(1)</b>

2、;</p><p><b>  1、概述(2)</b></p><p>  1.1選題的研究目的和意義(2)</p><p>  1.2溫控系統(tǒng)在國(guó)內(nèi)外的發(fā)展?fàn)顩r(2)</p><p>  2、總體設(shè)計(jì)及功能(3)</p><p>  2.1 總體方案(3)</p><

3、;p>  2.2 功能介紹(4)</p><p>  3、硬件設(shè)計(jì)(4)</p><p>  3.1 溫度采集系統(tǒng)設(shè)計(jì)(4)</p><p>  3.1.1溫度傳感器DS18B20的性能和結(jié)構(gòu)(4)</p><p>  3.1.2 DS18B20工作原理(5)</p><p>  3.1.3 溫度傳感

4、器DS18B20的應(yīng)用電路(7)</p><p>  3.1.4 溫度采集系統(tǒng)硬件原理圖(7)</p><p>  3.2 AT89C51的介紹及功能結(jié)構(gòu)(8)</p><p>  3.2.1 AT89C51的介紹(8)</p><p>  3.2.2 最小系統(tǒng)原理圖(10)</p><p>  3.3

5、LCD顯示系統(tǒng)(11)</p><p>  3.4 按鍵設(shè)置電路(12)</p><p>  3.5 聲光報(bào)警電路(13)</p><p>  3.6 溫度采集系統(tǒng)總電路圖(14)</p><p>  4、軟件設(shè)計(jì)(15)</p><p>  4.1 主程序流程圖(15)</p><p&

6、gt;  4.2 溫度采集系統(tǒng)軟件設(shè)計(jì)流程(16)</p><p>  4.3 顯示子程序流程圖(18)</p><p>  4.4 按鍵子程序流程圖(18)</p><p>  5、系統(tǒng)仿真(18)</p><p>  5.1 仿真總電路圖(18)</p><p>  5.2 仿真和調(diào)試(19)</

7、p><p>  5.2.1 仿真設(shè)置(19)</p><p>  5.2.2 調(diào)試和分析(20)</p><p><b>  6、總結(jié)(21)</b></p><p><b>  致謝(21)</b></p><p><b>  參考文獻(xiàn)(22)</b&

8、gt;</p><p><b>  附錄(23)</b></p><p>  數(shù)字式多路溫度采集系統(tǒng)的設(shè)計(jì)</p><p>  摘要:本設(shè)計(jì)是制作一個(gè)單片機(jī)控制的數(shù)字式多路溫度采集系統(tǒng)。采用了AT89C51芯片為主控制器,通過(guò)一線制溫度傳感器DS18B20實(shí)現(xiàn)溫度采集,將信息通過(guò)C51芯片處理后在LCD中顯示。此設(shè)計(jì)實(shí)現(xiàn)了四路溫度的實(shí)時(shí)監(jiān)控,

9、通過(guò)按鍵方式進(jìn)行手動(dòng)切換通道,在LCD特定位置顯示具體的溫度,同時(shí)設(shè)有五個(gè)開(kāi)關(guān)根據(jù)需要任意設(shè)定上下限定報(bào)警溫度。</p><p>  系統(tǒng)檢測(cè)溫度范圍為-55℃~+125℃,測(cè)溫分辨率可達(dá)0.0625℃。它使用起來(lái)方便,具有精度高、量程寬、靈敏度高、體積小、功率低等優(yōu)點(diǎn),適合與日常生活溫度測(cè)量,也可以當(dāng)作溫度處理模塊嵌入其他系統(tǒng)中,作為其他系統(tǒng)的輔助擴(kuò)展。并且,該系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,抗干擾能力強(qiáng),適合于惡劣環(huán)境下進(jìn)行現(xiàn)

10、場(chǎng)溫度測(cè)量,具有廣泛的應(yīng)用前景。</p><p>  Abstract: the design is making a single chip microcomputer control digital multi-channel temperature gathering system. The AT89C51 chip primarily controller, through a wire temperat

11、ure sensor DS18B20 realize temperature gathering, the information through the C51 chip in LCD display after. This design realize the four ways of real-time monitoring of temperature, through the key ways switch manual ch

12、annel, in LCD display specific temperature particular location, at the same time, with five switch </p><p>  System testing temperature range for -55 ℃ ~ +125 ℃, the temperature sensor resolution 0.0625 ℃. I

13、t is easy to use, with high precision, wide range, high sensitivity, small volume, low power advantage, suitable for everyday life and temperature measurement, also can be used as temperature processing module embedded i

14、n other systems, as other system of auxiliary expansion. And, the system structure is simple, strong anti-interference, suitable for a harsh environment temperature measurement on th</p><p>  關(guān)鍵詞:AT89C51;DS1

15、8B20;報(bào)警系統(tǒng);LCD</p><p>  Keywords: AT89C51; DS18B20; Alarm system; LCD</p><p><b>  前言</b></p><p>  隨著人們生活水平的不斷提高,單片機(jī)控制無(wú)疑是人們追求的目標(biāo)之一,它所給人帶來(lái)的方便也是不可否定的。單片機(jī)在測(cè)控領(lǐng)域中具有十分廣泛的應(yīng)用,它既可以

16、測(cè)量電信號(hào),又可以測(cè)量溫度濕度等非電信號(hào)。由單片機(jī)構(gòu)成的溫度檢測(cè)、溫度控制系統(tǒng)可廣泛應(yīng)用于很多領(lǐng)域。單片機(jī)在工業(yè)控制、尖端武器、通信設(shè)備、信息處理、家用電器等各測(cè)控領(lǐng)域的應(yīng)用中獨(dú)占鰲頭。今天,我們的生活環(huán)境和工作環(huán)境有越來(lái)越多稱之為單片機(jī)的小電腦在為我們服務(wù)。時(shí)下,家用電器和辦公設(shè)備的智能化、遙控化、模糊控制化系統(tǒng)己成為世界潮流,而這些高性能無(wú)一不是靠單片機(jī)來(lái)實(shí)現(xiàn)的。</p><p><b>  1 概

17、述</b></p><p>  1.1選題的研究目的和意義</p><p>  設(shè)計(jì)本課題能夠讓我在所學(xué)的微型計(jì)算機(jī)原理及接口技術(shù)課程、單片機(jī)課程的基礎(chǔ)上實(shí)現(xiàn)對(duì)實(shí)際問(wèn)題的分析、研究的能力和具有初步解決此類問(wèn)題的能力。通過(guò)本課題的完成,能夠?qū)ΜF(xiàn)代工業(yè)中的微機(jī)過(guò)程控制技術(shù)有著進(jìn)一步的了解和熟悉,并為今后從事工業(yè)控制領(lǐng)域的相關(guān)工作提供幫助。</p><p> 

18、 1.2溫控系統(tǒng)在國(guó)內(nèi)外的發(fā)展?fàn)顩r</p><p>  溫度控制系統(tǒng)在國(guó)內(nèi)各行各業(yè)的應(yīng)用雖然已經(jīng)十分廣泛,但從生產(chǎn)的溫度控制器來(lái)講,總體發(fā)展水平仍然不高,同日本、美國(guó)、德國(guó)等先進(jìn)國(guó)家相比有著較大差距。目前,我國(guó)在這方面總體技術(shù)水平處于20世紀(jì)80年代中后期水平,成熟產(chǎn)品主要以“點(diǎn)位”控制及常規(guī)的PID控制器為主。它只能適應(yīng)一般溫度系統(tǒng)控制,難于控制滯后、復(fù)雜、時(shí)變溫度系統(tǒng)控制。而適應(yīng)于較高控制場(chǎng)合的智能化、自適應(yīng)

19、控制儀表,國(guó)內(nèi)技術(shù)還不十分成熟,形成商品化并在儀表控制參數(shù)的自整定方面,國(guó)外已有較多的成熟產(chǎn)品。但由于國(guó)外技術(shù)保密及我國(guó)開(kāi)發(fā)工作的滯后,還沒(méi)有開(kāi)發(fā)出性能可靠的自整定軟件。控制參數(shù)大多靠人工經(jīng)驗(yàn)及現(xiàn)場(chǎng)調(diào)試確定。國(guó)外溫度控制系統(tǒng)發(fā)展迅速,并在智能化、自適應(yīng)、參數(shù)自整定等方面取得成果。日本、美國(guó)、德國(guó)、瑞典等技術(shù)領(lǐng)先,都生產(chǎn)出了一批商品化的、性能優(yōu)異的溫度控制器及儀器儀表,并在各行業(yè)廣泛應(yīng)用。它們主要具有如下的特點(diǎn):一是適應(yīng)于大慣性、大滯后等

20、復(fù)雜溫度控制系統(tǒng)的控制;二是能夠適應(yīng)于受控系統(tǒng)數(shù)學(xué)模型難以建立的溫度控制系統(tǒng)的控制;三是能夠適應(yīng)于受控系統(tǒng)過(guò)程復(fù)雜、參數(shù)時(shí)變的溫度控制系統(tǒng)的控制;四是溫度控制系統(tǒng)普遍采用自適應(yīng)控制、自校正控制、模糊控</p><p>  目前,溫度控制系統(tǒng)及儀表正朝著高精度、智能化、小型化等方面快速發(fā)展。</p><p>  在20世紀(jì)90年代中期最早推出的智能溫度傳感器,采用的是8位A/D轉(zhuǎn)換器,其測(cè)溫

21、精度較低,分辨力只能達(dá)到1°C。目前,國(guó)外已相繼推出多種高精度、高分辨力的智能溫度傳感器,所用的是9~12位A/D轉(zhuǎn)換器,分辨力一般可達(dá)0.5~0.0625°C。由美國(guó)DALLAS半導(dǎo)體公司新研制的DS1624型高分辨力智能溫度傳感器,能輸出13位二進(jìn)制數(shù)據(jù),其分辨力高達(dá)0.03125°C,測(cè)溫精度為±0.2°C。為了提高多通道智能溫度傳感器的轉(zhuǎn)換速率,也有的芯片采用高速逐次逼近式A/D

22、轉(zhuǎn)換器。以AD7817型5通道智能溫度傳感器為例,它對(duì)本地傳感器、每一路遠(yuǎn)程傳感器的轉(zhuǎn)換時(shí)間分別僅為27us、9us。</p><p>  進(jìn)入21世紀(jì)后,溫度傳感器的發(fā)展趨勢(shì)正朝著高精度、多功能、總線標(biāo)準(zhǔn)化、高可靠性及安全性、開(kāi)發(fā)虛擬傳感器和網(wǎng)絡(luò)傳感器、研制單片測(cè)溫系統(tǒng)等高科技的方向迅速發(fā)展。所以數(shù)字溫度傳感器得以更加廣泛的應(yīng)用。 </p><p>  數(shù)字溫度傳感器DS18B20是智能

23、溫度傳感器一種,它將非電模擬量溫度值轉(zhuǎn)換為數(shù)字信號(hào)輸出僅需占用 1 位 I/O 端口,能夠直接讀取被測(cè)物體的溫度值。它體積小,電壓適用范圍寬 3 V~5 V,用戶還可以通過(guò)編程實(shí)現(xiàn) 9~12 位的溫度讀數(shù),即具有可調(diào)的溫度分辨率,因此它的實(shí)用性和可靠性比同類產(chǎn)品更高。</p><p>  針對(duì)測(cè)溫系統(tǒng)的發(fā)展趨勢(shì),本課題提出了使用DS18B20作為傳感器的多路測(cè)溫系統(tǒng)。</p><p>&l

24、t;b>  2 總體設(shè)計(jì)及功能</b></p><p><b>  2.1 總體方案</b></p><p><b>  圖2.1 總流程圖</b></p><p>  本設(shè)計(jì)主要有溫度采集、溫度顯示、按鍵和報(bào)警模塊組成,如圖2.1,根據(jù)系統(tǒng)的設(shè)計(jì)要求,當(dāng)溫度傳感器DS18B20把所測(cè)得的溫度發(fā)送到AT8

25、9C51單片機(jī)上,經(jīng)AT89C51處理,將溫度在顯示器LCD上顯示。當(dāng)開(kāi)機(jī)后,顯示屏和計(jì)時(shí)器進(jìn)行初始化設(shè)置。同時(shí),本系統(tǒng)能夠設(shè)置報(bào)警溫度,在超過(guò)報(bào)警溫度時(shí)能夠通過(guò)LED發(fā)光二極管以及發(fā)音器提示報(bào)警。</p><p><b>  2.2 功能介紹</b></p><p>  利用AT89C51芯片控制溫度傳感器DS18B20進(jìn)行實(shí)時(shí)溫度檢測(cè)并顯示,能夠?qū)崿F(xiàn)快速測(cè)量環(huán)境溫

26、度。</p><p>  選擇DS18B20作為本系統(tǒng)的溫度傳感器,選擇單片機(jī)AT89C51為測(cè)控系統(tǒng)的核心來(lái)完成數(shù)據(jù)采集、處理、顯示、報(bào)警等功能。選用數(shù)字溫度傳感器DS18B20,輸出信號(hào)全數(shù)字化。便于單片機(jī)處理及控制,省去傳統(tǒng)的測(cè)溫方法的很多外圍電路,省卻了采樣/保持電路、運(yùn)放、數(shù)/模轉(zhuǎn)換電路以及進(jìn)行長(zhǎng)距離傳輸時(shí)的串/并轉(zhuǎn)換電路,簡(jiǎn)化了電路,縮短了系統(tǒng)的工作時(shí)間,降低了系統(tǒng)的硬件成本。</p>

27、<p>  當(dāng)LCD液晶顯示器接收到來(lái)自AT89C51單片機(jī)傳送來(lái)的溫度信息后,分別顯示了當(dāng)前的溫度。</p><p><b>  設(shè)計(jì)要求</b></p><p>  設(shè)計(jì)的主要功能和指標(biāo)如下:</p><p> ?。?)利用溫度傳感器(DS18B20)測(cè)量多點(diǎn)環(huán)境溫度。</p><p> ?。?)測(cè)量范圍為

28、-55℃~+125℃,精度為±0.5℃。</p><p> ?。?)用液晶進(jìn)行實(shí)際溫度值顯示。</p><p> ?。?)能夠自主設(shè)置上、下限報(bào)警溫度。</p><p> ?。?)當(dāng)超過(guò)報(bào)警溫度后,能夠自動(dòng)發(fā)出聲光報(bào)警。</p><p><b>  3 硬件設(shè)計(jì)</b></p><p>

29、  3.1 溫度采集系統(tǒng)設(shè)計(jì)</p><p>  3.1.1溫度傳感器DS18B20的性能和結(jié)構(gòu)</p><p>  溫度采集模塊選用數(shù)字式溫度傳感器DS18B20,其可以與單片機(jī)I/O口直接連接,不需要外接A/D轉(zhuǎn)換模塊。 </p><p>  DS18B20的性能特點(diǎn)如下: </p><p>  (1).獨(dú)特的單線接口僅需要一個(gè)端口引腳進(jìn)

30、行通信; </p><p>  (2).可通過(guò)數(shù)據(jù)線供電,電壓范圍為3.0~5.5V; </p><p>  (3).溫度測(cè)量范圍為-55℃~+125℃; </p><p>  (4).測(cè)溫分辨率可達(dá)0.0625℃; </p><p>  (5).溫度以9位或12位A/D轉(zhuǎn)換; </p><p>  DS18B20的外

31、形和內(nèi)部結(jié)構(gòu) </p><p>  DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL、配置寄存器。DS18B20的外形及管腳排列如下圖3.1: </p><p>  圖3.1: DS18B20外形及引腳排列圖</p><p>  DS18B20引腳定義: </p><p>  (1)D

32、Q為數(shù)字信號(hào)輸入/輸出端; </p><p>  (2)GND為電源地; </p><p>  (3)VDD為外接供電電源輸入端(在寄生電源接線方式時(shí)接地)</p><p>  圖3.2: DS18B20內(nèi)部結(jié)構(gòu)圖</p><p>  3.1.2 DS18B20工作原理</p><p>  DS18B20的讀寫時(shí)

33、序和測(cè)溫原理與DS1820相同,只是得到的溫度值的位數(shù)因分辨率不同而不同,且溫度轉(zhuǎn)換時(shí)的延時(shí)時(shí)間由2s減為750ms。 DS18B20測(cè)溫原理如圖3.3所示。圖中低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給計(jì)數(shù)器1。高溫度系數(shù)晶振隨溫度變化其振蕩率明顯改變,所產(chǎn)生的信號(hào)作為計(jì)數(shù)器2的脈沖輸入。計(jì)數(shù)器1和溫度寄存器被預(yù)置在-55℃所對(duì)應(yīng)的一個(gè)基數(shù)值。計(jì)數(shù)器1對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)計(jì)數(shù)器1的

34、預(yù)置值減到0時(shí),溫度寄存器的值將加1,計(jì)數(shù)器1的預(yù)置將重新被裝入,計(jì)數(shù)器1重新開(kāi)始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到計(jì)數(shù)器2計(jì)數(shù)到0時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即為所測(cè)溫度。圖2.3中的斜率累加器用于補(bǔ)償和修正測(cè)溫過(guò)程中的非線性,其輸出用于修正計(jì)數(shù)器1的預(yù)置值。 </p><p>  圖3.3: DS18B20測(cè)溫原理框圖</p><p>  DS1

35、8B20有4個(gè)主要的數(shù)據(jù)部件: </p><p> ?。?)光刻ROM中的64位序列號(hào)是出廠前被光刻好的,它可以看作是該DS18B20的地址序列碼。64位光刻ROM的排列是:開(kāi)始8位(28H)是產(chǎn)品類型標(biāo)號(hào),接著的48位是該DS18B20自身的序列號(hào),最后8位是前面56位的循環(huán)冗余校驗(yàn)碼(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一個(gè)DS18B20</p><p>  都各不

36、相同,這樣就可以實(shí)現(xiàn)一根總線上掛接多個(gè)DS18B20的目的。</p><p>  (2)DS18B20中的溫度傳感器可完成對(duì)溫度的測(cè)量,以12位轉(zhuǎn)化為例:用16位符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供,以0.0625℃/LSB形式表達(dá),其中S為符號(hào)位。 </p><p>  DS18B20溫度值格式表3.1</p><p>  bit7 bit6 bi

37、t5 bit4 bit3 bit2 bit1 bit0</p><p>  bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8</p><p>  這是12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲(chǔ)在18B20的兩個(gè)8比特的RAM中,

38、二進(jìn)制中的前面5位是符號(hào)位,如果測(cè)得的溫度大于0,這5位為0,只要將測(cè)到的數(shù)值乘于0.0625即可得到實(shí)際溫度;如果溫度小于0,這5位為1,測(cè)到的數(shù)值需要取反加1再乘于0.0625即可得到實(shí)際溫度。</p><p>  DS18B20溫度數(shù)據(jù)表3.2</p><p>  3.1.3 溫度傳感器DS18B20的應(yīng)用電路</p><p>  在DS18B20中,DQ為數(shù)

39、字信號(hào)輸人/輸出端;GND為電源地;VDD為外接供電電源輸入端。DS18B20采用3腳TO-126封裝,DS18B20芯片連接電路如2.4。</p><p>  圖3.4 DS18B20與單片機(jī)接口電路</p><p>  3.1.4 溫度采集系統(tǒng)硬件原理圖</p><p>  溫度采集主要采用四個(gè)DS18B20溫度傳感器一條總線連接P3.3,采用中斷方式傳輸,如圖

40、3.5。</p><p>  圖3.5 溫度采集系統(tǒng)原理圖</p><p>  3.2 AT89C51的介紹及功能結(jié)構(gòu)</p><p>  3.2.1 AT89C51的介紹</p><p>  AT89C51單片機(jī)是美國(guó)INTE公司于1980年推出的產(chǎn)品,指令數(shù)達(dá)111條,MCS-51單片機(jī)可以算是相當(dāng)成功的產(chǎn)品[7],一直到現(xiàn)在,MCS-

41、51系列或其兼容的單片機(jī)仍是應(yīng)用的主流產(chǎn)品。 </p><p>  AT89C51有4組8位I/O口:P0、P1、P2和P3口,P1、P2和P3為準(zhǔn)雙向口,P0口則為雙向三態(tài)輸入輸出口。 </p><p>  P0口和P2口: 電路中包含一個(gè)數(shù)據(jù)輸出鎖存器和兩個(gè)三態(tài)數(shù)據(jù)輸入緩沖器,另外還有一個(gè)數(shù)據(jù)輸出 的驅(qū)動(dòng)和控制電路。這兩組口線用來(lái)作為CPU與外部數(shù)據(jù)存儲(chǔ)器、外部程序存儲(chǔ)器和I/O擴(kuò)展口

42、,而不能象P1、P3直接用作輸出口它們一起可以作為外部地址總線,P0口身兼兩職,既可作為地址總線,也可作為數(shù)據(jù)總線。 </p><p>  P2口:作為外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器的地址總線的高8位輸出口AB8-AB15,P0口由ALE選通作為地址總線的低8位輸出口AB0-AB7。外部的程序存儲(chǔ)器由PSEN信號(hào)選通,數(shù)據(jù)存儲(chǔ)器則由WR和RD讀寫信號(hào)選通,因?yàn)?16=64k所以8051最大可外接64kB的程序存儲(chǔ)器和

43、數(shù)據(jù)存儲(chǔ)器。 </p><p>  P1口:8位準(zhǔn)雙向口,每一位均可單獨(dú)定義為輸入或輸出口,當(dāng)作為輸入口時(shí),1寫入鎖存器,Q(非)=0,T2截止,內(nèi)上拉電阻將電位拉至“1”,此時(shí)該口輸出為1,當(dāng)0寫入鎖存器,Q(非)=1,T2導(dǎo)通,輸出則為0。作為輸入口時(shí),鎖存器置1,Q(非)=0,T2截止,此時(shí)該位既可以把外部電路拉成低電平,也可由內(nèi)部上拉電阻拉成高電平,正因?yàn)檫@個(gè)原因,所以P1口常稱為準(zhǔn)雙向口。需要說(shuō)明的是,

44、作為輸入口使用時(shí),有兩種情況,其一是:首先是讀鎖存器的內(nèi)容,進(jìn)行處理后再寫到鎖存器中,這種操作即讀—修改—寫操作,象JBC(邏輯判斷)、CPL(取反)、INC(遞增)、DEC(遞減)、ANL(與邏輯)和ORL(邏輯或)指令均屬于這類操作。其二是:讀P1口線狀態(tài)時(shí),打開(kāi)三態(tài)門G2,將外部狀態(tài)讀入CPU。 </p><p>  AT89C51的串行通信口 </p><p>  AT89C51單

45、片機(jī)內(nèi)部有一個(gè)全雙工的串行通信口,即串行接收和發(fā)送緩沖器(SBUF),這兩個(gè)在物理上獨(dú)立的接收發(fā)送器,既可以接收數(shù)據(jù)也可以發(fā)送數(shù)據(jù)。但接收緩沖器只能讀出不能寫入,而發(fā)送緩沖器則只能寫入不能讀出,它們的地址為99H。這個(gè)通信口既可以用于網(wǎng)絡(luò)通信,亦可實(shí)現(xiàn)串行異步通信,還可以構(gòu)成同步移位寄存器使用。如果在傳行口的輸入輸出引腳上加上電平轉(zhuǎn)換器,就可方便地構(gòu)成標(biāo)準(zhǔn)的RS-232接口[8]。 </p><p><b&

46、gt;  基本概念 </b></p><p>  數(shù)據(jù)通信的傳輸方式有單工,半雙工,全雙工和多工方式。 </p><p>  半雙工方式:數(shù)據(jù)可實(shí)現(xiàn)雙向傳送,但不能同時(shí)進(jìn)行,實(shí)際的應(yīng)用采用某種協(xié)議實(shí)現(xiàn)收/發(fā)開(kāi)關(guān)轉(zhuǎn)換。 </p><p>  全雙工方式:允許雙方同時(shí)進(jìn)行數(shù)據(jù)雙向傳送,但一般全雙工傳輸方式的線路和設(shè)備較復(fù)雜。 </p><

47、p>  串行數(shù)據(jù)通信兩種形式:異步通信和同步通信。 串行數(shù)據(jù)通信的傳輸速率。 串行數(shù)據(jù)傳輸速率[9]有兩個(gè)概念,即每秒轉(zhuǎn)送的位數(shù)bps(Bit per second)和每秒符號(hào)數(shù)—波特率(Band rate),在具有調(diào)制解調(diào)器的通信中,波特率與調(diào)制速率有關(guān)。 </p><p>  MCS-51的串行口和控制寄存器 </p><p>  串行口控制寄存器 MCS-51單片機(jī)串行口寄存器

48、結(jié)構(gòu)如圖3.6所示。SBUF為串行口的收發(fā)緩沖器,它是一個(gè)可尋址的專用寄存器,其中包含了接收器和發(fā)送器寄存器,可以實(shí)現(xiàn)全雙工通信。但這兩個(gè)寄存器具有同一地址(99H)。MCS-51的串行數(shù)據(jù)傳輸很簡(jiǎn)單,只要向發(fā)送緩沖器寫入數(shù)據(jù)即可發(fā)送數(shù)據(jù)。而從接收緩沖器讀出數(shù)據(jù)即可接收數(shù)據(jù)[10]。此外,接收緩沖器前還加上一級(jí)輸入移位寄存器,MCS-51這種結(jié)構(gòu)目的在于接收數(shù)據(jù)時(shí)避免發(fā)生數(shù)據(jù)幀重疊現(xiàn)象,以免出錯(cuò),部分文獻(xiàn)稱這種結(jié)構(gòu)為雙緩沖器結(jié)構(gòu)。而發(fā)送

49、數(shù)據(jù)時(shí)就不需要這樣設(shè)置,因?yàn)榘l(fā)送時(shí),CPU是主動(dòng)的,不可能出現(xiàn)這種現(xiàn)象。 </p><p>  圖3.6 Mcs-51串行口寄存器結(jié)構(gòu)</p><p>  串行通信控制寄存器 </p><p>  SCON控制寄存器是一個(gè)可尋址的專用寄存器,用于串行數(shù)據(jù)的通信控制,單元地址是98H,其結(jié)構(gòu)格式如表3.3: </p><p>  表3.3

50、SCON寄存器結(jié)構(gòu)</p><p>  SM0、SM1:串行口工作方式控制位。 </p><p>  SM0,SM1有四種工作方式(方式0,方式1,方式2,方式3) </p><p>  SM2:多機(jī)通信[11]控制位。 多機(jī)通信[11]是工作于方式2和方式3,SM2位主要用于方式2和方式3。接收狀態(tài),當(dāng)串行口工作于方式2或3,以及SM2=1時(shí),只有當(dāng)接收到第9位數(shù)

51、據(jù)(RB8)為1時(shí),才把接收到的前8位數(shù)據(jù)送入SBUF,且置位RI發(fā)出中斷申請(qǐng)否則會(huì)將接受到的數(shù)據(jù)放棄。當(dāng)SM2=0時(shí),就不管第位數(shù)據(jù)是0還是1,都難得數(shù)據(jù)送入SBUF,并發(fā)出中斷申請(qǐng)。工作于方式0時(shí),SM2必須為0。 </p><p>  REN:允許接收位。 REN用于控制數(shù)據(jù)接收的允許和禁止,REN=1時(shí),允許接收,REN=0時(shí),禁止接收。 </p><p>  TB8:發(fā)送接收數(shù)據(jù)

52、位8。 在方式2和方式3中,TB8是要發(fā)送的——即第9位數(shù)據(jù)位。在多機(jī)通信中同樣亦要傳輸這一位,并且它代表傳輸?shù)牡刂愤€是數(shù)據(jù),TB8=0為數(shù)據(jù),TB8=1時(shí)為地址。 </p><p>  RB8:接收數(shù)據(jù)位8。 在方式2和方式3中,RB8存放接收到的第9位數(shù)據(jù),用以識(shí)別接收到的數(shù)據(jù)特征。 </p><p>  TI:發(fā)送中斷標(biāo)志位。 可尋址標(biāo)志位。方式0時(shí),發(fā)送完第8位數(shù)據(jù)后,由硬件置位,

53、其它方式下,在發(fā)送或停止位之前由硬件置位,因此,TI=1表示幀發(fā)送結(jié)束,TI可由軟件清“0”。 </p><p>  RI:接收中斷標(biāo)志位。 可尋址標(biāo)志位。接收完第8位數(shù)據(jù)后,該位由硬件置位,在其他工作方式下,該位由硬件置位,RI=1表示幀接收完成。 電源管理寄存器PCON ,PCON主要是為CHMOS型單片機(jī)的電源控制而設(shè)置的專用寄存器,單元地址是87H,其結(jié)構(gòu)格式如表3.4: </p><

54、p>  表3.4 PCON電源管理寄存器結(jié)構(gòu)</p><p>  在CHMOS型單片機(jī)中,除SMOD位外,其他位均為虛設(shè)的,SMOD是串行口波特率倍增位,當(dāng)SMOD=1時(shí),串行口波特率加倍。系統(tǒng)復(fù)位默認(rèn)為SMOD=0。 </p><p>  中斷允許寄存器IE[12]。 ES為串行中斷允許控制位,ES=1允許串行中斷,ES=0,禁止串行中斷。 </p><p&g

55、t;  表3.5 IE中斷允許控制寄存器結(jié)構(gòu)</p><p>  3.2.2 最小系統(tǒng)原理圖</p><p>  單片機(jī)AT89C51的最小系統(tǒng)包括晶體振蕩電路、復(fù)位開(kāi)關(guān)和電源幾個(gè)部分。圖3.7即為AT89C51單片機(jī)的最小系統(tǒng)結(jié)構(gòu)圖,它是單片機(jī)進(jìn)行正常工作所必需的部分。</p><p>  圖3.7 最小系統(tǒng)原理圖</p><p>  3

56、.3 LCD顯示系統(tǒng)</p><p> ?。?)用 P3.5、P3.6、P3.7及P1.0至P1.7接口來(lái)完成1602LCD的顯示。1602LCD顯示電路接口圖如圖3.8</p><p>  圖3.8 1602LCD顯示電路</p><p>  (2)1602LCD工作原理 </p><p>  1602LCD采用標(biāo)準(zhǔn)的14腳接口,其中:

57、第1腳:VSS為地電源。第2腳:VDD接5V正電源。第3腳:V0為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高,使用時(shí)可以通過(guò)一個(gè)10K的電位器調(diào)整對(duì)比度。第4腳:RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器 。第5腳: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為低電平

58、時(shí)可以寫入數(shù)據(jù)。第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。另外引腳“A”和“K”為背光引腳,“A”接正,“K”接負(fù)便會(huì)點(diǎn)亮背光燈。 </p><p>  1602液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號(hào)、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼,比如大

59、寫的英文字母“A”的代碼是01000001B(41H),顯示時(shí)模塊把地址41H中的點(diǎn)陣字符圖形顯示出來(lái)我們就能看到字母“A”,1602液晶模塊內(nèi)部的控制器共有11條控制指令,它的讀寫操作、屏幕和光標(biāo)的操作都是通過(guò)指令編程來(lái)實(shí)現(xiàn)的。(說(shuō)明:1為高電平、0為低電平) </p><p>  指令1:清顯示,指令碼01H,光標(biāo)復(fù)位到地址00H位置;</p><p>  指令2:光標(biāo)復(fù)位,光標(biāo)返回到

60、地址00H;</p><p>  指令3:光標(biāo)和顯示模式設(shè)置,I/D:光標(biāo)移動(dòng)方向,高電平右移,低電平左移,S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無(wú)效;</p><p>  指令4:顯示開(kāi)關(guān)控制,D:控制整體顯示的開(kāi)與關(guān),高電平表示開(kāi)顯示,低電平表示關(guān)顯示,C:控制光標(biāo)的開(kāi)與關(guān),高電平表示有光標(biāo),低電平表示無(wú)光標(biāo),B:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍;<

61、;/p><p>  指令5:光標(biāo)或顯示移位,S/C:高電平時(shí)移動(dòng)顯示的文字,低電平時(shí)移動(dòng)光標(biāo);</p><p>  指令6:功能設(shè)置命令,DL:高電平時(shí)為4位總線,低電平時(shí)為8位總線,N:低電平時(shí)為單行顯示,高電平時(shí)雙行顯示,F(xiàn): 低電平時(shí)顯示5x7的點(diǎn)陣字符,高電平時(shí)顯示5x10的點(diǎn)陣字符;</p><p>  指令7:字符發(fā)生器RAM地址設(shè)置;</p>

62、<p><b>  指令8:DDRAM</b></p><p><b>  地址設(shè)置;</b></p><p>  指令9:讀忙信號(hào)和光標(biāo)地址,BF:為忙標(biāo)志位,高電平表示忙,此時(shí)模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙;指令10:寫數(shù)據(jù);指令11:讀數(shù)據(jù)。</p><p>  3.4 按鍵設(shè)置電路<

63、;/p><p>  按鍵采用獨(dú)立式設(shè)計(jì),共用五個(gè)按鍵。按鍵部分電路如圖3.9</p><p>  圖3.9 按鍵原理圖</p><p><b>  具體按鍵功能: </b></p><p>  S1:溫度值設(shè)定按鍵“+”。設(shè)置報(bào)警溫度上、下限值,此鍵完成加的功能。 </p><p>  S2:溫度值設(shè)

64、定按鍵“-”。設(shè)置報(bào)警溫度上、下限值,此鍵完成減的功能。 </p><p>  S3:光標(biāo)位置移動(dòng),從左到右循環(huán)移動(dòng)。 </p><p>  S4:溫度值設(shè)置。按下此鍵開(kāi)始設(shè)置報(bào)警溫度值。 </p><p>  S5:溫度值發(fā)送鍵。直接才P0.0口用上拉電阻借到按鍵上,當(dāng)S5按下,P0.0置0,使采集到的溫度值發(fā)送到從機(jī)串口數(shù)據(jù)線。</p><p

65、>  3.5 聲光報(bào)警電路 </p><p>  溫度檢測(cè)系統(tǒng)多有聲光報(bào)警功能,當(dāng)檢測(cè)溫度超過(guò)上下限時(shí),進(jìn)行聲光提示。本系統(tǒng)在從機(jī)部分設(shè)計(jì)了報(bào)警電路。從機(jī)的報(bào)警上下限由主機(jī)預(yù)置,從機(jī)實(shí)時(shí)監(jiān)測(cè)的過(guò)程中,一旦發(fā)現(xiàn)檢測(cè)溫度值連續(xù)超出閾值范圍,便啟動(dòng)自身報(bào)警電路,同時(shí)向主控機(jī)發(fā)送報(bào)警信號(hào)[13]。聲光報(bào)警電路由三極管9013驅(qū)動(dòng)蜂鳴器實(shí)現(xiàn)報(bào)警功能,當(dāng)溫度超過(guò)設(shè)定的上先限值時(shí)在報(bào)警的同時(shí)紅燈閃爍,溫度低于設(shè)定值時(shí)綠

66、燈閃爍。報(bào)警電路原理如圖3.11</p><p>  圖3.11 聲光報(bào)警電路原理圖</p><p>  3.6 溫度采集系統(tǒng)總電路圖</p><p>  圖3.12 系統(tǒng)總原理圖</p><p><b>  4 軟件設(shè)計(jì)</b></p><p>  4.1 主程序流程圖</p>&

67、lt;p>  程序的流程圖如下,通過(guò)溫度傳感器檢測(cè)的溫度,通過(guò)CRC檢測(cè)四路信息并將其傳入c51中,。我們將所得到得實(shí)時(shí)溫度值分別和系統(tǒng)預(yù)設(shè)置的報(bào)警溫度值以及人工手動(dòng)設(shè)置的要實(shí)時(shí)控制的溫度值進(jìn)行比較,通過(guò)比較做出相應(yīng)處理,若正常在LCD則顯示,否則經(jīng)聲光報(bào)警,再做處理。在程序中,我們通過(guò)四個(gè)中斷來(lái)進(jìn)行設(shè)置系統(tǒng)的設(shè)置溫度,每一次中斷溫度加1或者減1。</p><p>  圖4.1 系統(tǒng)程序總流程</p&

68、gt;<p>  4.2 溫度采集系統(tǒng)軟件設(shè)計(jì)流程</p><p>  圖4.2 DS18B20程序流程</p><p>  4.3 顯示子程序流程圖</p><p>  該部分程序?qū)崿F(xiàn)當(dāng)前溫度值的顯示,主要的是液晶顯示器的初始化命令的設(shè)置,我們通過(guò)單片機(jī)控制顯示器,使顯示器能夠顯示我們想要的效果,我們程序設(shè)計(jì)過(guò)程中,通過(guò)K4控制顯示當(dāng)前溫度和我們?cè)O(shè)置

69、的溫度,。通過(guò)顯示器我們可以很清楚的知道當(dāng)前溫度和設(shè)置的溫度值。</p><p>  圖 4.3 顯示子程序流程圖</p><p>  4.4 按鍵子程序流程圖</p><p>  按鍵采用掃描查詢方式,設(shè)標(biāo)志位為1,顯示設(shè)置溫度,否則顯示為當(dāng)前溫度。并且根據(jù)K1和K2鍵對(duì)報(bào)警上、下限溫度進(jìn)行加、減設(shè)置。如下圖3.4.</p><p>  圖

70、 4.4 按鍵子程序流程圖</p><p><b>  5 系統(tǒng)仿真</b></p><p>  5.1 仿真總電路圖</p><p>  圖 5.1 總仿真圖</p><p><b>  5.2 仿真和調(diào)試</b></p><p>  5.2.1 仿真設(shè)置</p>

71、;<p>  在 Proteus 中使用多個(gè) DS18B20 時(shí), 必須改變器件的屬性, 使仿真中每個(gè)器件的序列號(hào)各不相同。具體作法是: 右擊 DS18B20, 選中 Edit Properties 選項(xiàng), 在其中改變ROM S erial Number 的值; 還可改變 Granularity 的數(shù)值,即改變每次調(diào)整溫度的額度。在 Proteus 中, 可以人為改變 3 個(gè)字節(jié)的器件序列號(hào)。要想得到全部 8 個(gè)字節(jié), 一

72、個(gè)簡(jiǎn)單的方法就是每一次總線上只連接一個(gè)器 件, 利用0x33 讀器件序列號(hào)的命令在程序中得到完整的器件序列號(hào)。具體的程序如下所示:</p><p>  unsigned char r ead_num( v oid) {</p><p>  unsigned char i;</p><p>  send_co m( 0x33) ; / / 讀序列號(hào)命令</p&g

73、t;<p>  for( i= 0; i< 8; i+ + ) {</p><p>  A [ i] = read_dat( ) ; / / 先低位后高位, A[ 0] 為最低位</p><p><b>  }</b></p><p><b>  }</b></p><p>  

74、其中,send_com( ) 為主機(jī)向從機(jī)發(fā)送一個(gè)字節(jié)的子程序, read_dat() 為主機(jī)讀取從機(jī)一個(gè)字節(jié)的子程序。例如, 將器件序列號(hào)改為 B8C530,在 MPLAB IDE中的 Watch 窗口中可直接觀察到該器件的完整的器件序列號(hào)。本系統(tǒng)中共使用 4 個(gè) DS18B20, 序列號(hào)為 B8C530、B8C534、B8C535、B8C536。通過(guò)上述的方法可得到所有器件的序列號(hào), 然后組成一個(gè)數(shù)組, 在讀取溫度程序中就可直接使用

75、。數(shù)組</p><p>  {0x8e,0x00,0x00,0x00,0xb8,0xc5,0x30,0x28};</p><p>  {0x52,0x00,0x00,0x00,0xb8,0xc5,0x34,0x28};</p><p>  {0x65,0x00,0x00,0x00,0xb8,0xc5,0x35,0x28};</p><p> 

76、 {0x3c,0x00,0x00,0x00,0xb8,0xc5,0x36,0x28};</p><p>  在 MPLAB IDE 中, 使用 Proteus VSM 仿真模式。根據(jù)上述讀取溫度程序的過(guò)程, 編寫讀取溫度的程序, 經(jīng)編譯、運(yùn)行, 即可得到仿真結(jié)果。</p><p>  5.2.2 調(diào)試和分析</p><p> ?。?)系統(tǒng)上電后,全屏點(diǎn)亮,沒(méi)有暗點(diǎn)。

77、當(dāng)按鍵K1按下,液晶顯示器顯示當(dāng)前四路檢測(cè)器的顯示位置,如圖5.2。</p><p><b>  圖 5.2</b></p><p>  (2)在系統(tǒng)內(nèi)部設(shè)置了一個(gè)報(bào)警溫度,即設(shè)置的上、下限溫度,超過(guò)這個(gè)溫度時(shí)系統(tǒng)就會(huì)報(bào)警。當(dāng)按下K4,則顯示設(shè)置溫度,如圖5.3。</p><p><b>  圖 5.3</b></p

78、><p>  (3)在仿真中K1按下,K4斷開(kāi),一次通過(guò)按下K6、K7、K8、K9鍵,則在LCD中可以顯示四路當(dāng)前溫度,如圖5.4。</p><p><b>  圖 5.4</b></p><p><b>  6 總結(jié)</b></p><p>  而在本次課程設(shè)計(jì)中,本人就采用了這種已經(jīng)相當(dāng)普及的方法設(shè)

79、計(jì)了一個(gè)基于單片機(jī)和溫度傳感器的多路溫度采集系統(tǒng),并通過(guò)了軟件仿真,最后得出了設(shè)計(jì)結(jié)果的可行性,設(shè)計(jì)過(guò)程中,首先,要對(duì)DS18B20做一個(gè)詳細(xì)的了解,作為設(shè)計(jì)中一個(gè)重要的元件,要知道它的一般流程:初始化—ROM操作指令—存儲(chǔ)器操作指令—數(shù)據(jù)傳輸。然后必須掌握它的每個(gè)端口的作用,并用單片機(jī)通過(guò)高低電平來(lái)控制它的工作過(guò)程,不一樣的模塊它的工作時(shí)序是不同,這里要通過(guò)軟件正確的編寫出讀寫時(shí)序,才能確保在測(cè)量溫度的環(huán)節(jié)中不出問(wèn)題。一個(gè)完整的系統(tǒng)同

80、樣也需要一個(gè)人機(jī)界面才能便于使用者讀出數(shù)據(jù),所以這里用到了lcd1602液晶屏,這個(gè)液晶屏的優(yōu)點(diǎn)在于自帶字庫(kù),且易于控制顯示位置,基本上達(dá)到了設(shè)計(jì)的要求。</p><p>  本系統(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)。</p><p>

81、;  同時(shí),在做整個(gè)課程論文的過(guò)程中,也遇到了諸多問(wèn)題:</p><p>  第一、不能靈活自如的運(yùn)用C51語(yǔ)言。</p><p>  第二、對(duì)某些硬件的功能不太熟悉。</p><p>  第三、缺乏一定實(shí)踐經(jīng)驗(yàn)</p><p><b>  致謝</b></p><p>  設(shè)計(jì)得以順利完成,得感

82、謝我的指導(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)化。</p><p><b>  參考文獻(xiàn):</b></p><p>  [01] 杜廣朝,基于MCS-51的通用智能巡回檢測(cè)系統(tǒng)設(shè)計(jì),開(kāi)封,黃河水利職業(yè)技術(shù)學(xué)院學(xué)報(bào),2005</p><

83、p>  [02] 師玉寶,一種基于MCS-51單片機(jī)溫度巡回檢測(cè)系統(tǒng)的設(shè)計(jì),北京,計(jì)量技術(shù),2004</p><p>  [03] 王宛平,數(shù)字溫度巡回檢測(cè)系統(tǒng),杭州,杭州電子工業(yè)學(xué)院學(xué)報(bào),2001</p><p>  [04] 郭葉,多點(diǎn)溫度巡回檢測(cè)系統(tǒng),江蘇,江蘇電器,2000</p><p>  [05] 景富軍,一種多路溫度巡回檢測(cè)控制器,新疆,兵工自

84、動(dòng)化,2000</p><p>  [06] 謝迎娟,多路溫度檢測(cè)系統(tǒng)的設(shè)計(jì),南京,河海大學(xué)常州分校學(xué)報(bào),2002</p><p>  [07] 王可寧,基于單片機(jī)的烘爐溫度自動(dòng)檢測(cè)系統(tǒng)的研究與設(shè)計(jì),哈爾濱,東北林業(yè)大學(xué)碩士論文,2004</p><p>  [08] 朱玲,智能控制系統(tǒng)中的實(shí)時(shí)數(shù)據(jù)采集與處理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn),曲阜,曲阜師范大學(xué)碩士論文,2005<

85、;/p><p>  [09] 付桂翠,高精度多路微機(jī)控制溫度測(cè)量系統(tǒng)的設(shè)計(jì)測(cè)控技術(shù),北京,北京理工,2007</p><p>  [10] 陳啟,基于PC機(jī)的溫度控制系統(tǒng)的設(shè)計(jì),衡陽(yáng),南華大學(xué)學(xué)報(bào)(自然科學(xué)版),2005</p><p>  [11] 秦相林,多路溫度監(jiān)測(cè)及自動(dòng)撥號(hào)語(yǔ)音報(bào)警系統(tǒng)的設(shè)計(jì),哈爾濱,.哈爾濱商業(yè)大學(xué)學(xué)報(bào),2007</p><

86、p>  [12] 楊麗君,AT89C51單片機(jī)控制的多路溫度檢測(cè)系統(tǒng),北京,自動(dòng)化與儀表,2000.</p><p>  [13] 陳忠華.,基于單片機(jī)的溫度智能控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),北京,中國(guó)優(yōu)秀博碩士學(xué)位論文全文數(shù)據(jù)庫(kù) (碩士), 2007</p><p>  [14] 鐘偉雄, 基于8051單片機(jī)的溫度采集系統(tǒng),上海,科技創(chuàng)新導(dǎo)報(bào), 2008</p><p&

87、gt;  [15] 遲欽河,89C5單片機(jī)在多通道數(shù)據(jù)采集中的應(yīng)用西安,西安交通大學(xué)學(xué)報(bào),2000</p><p>  [16] 楊博,基于單片機(jī)的新型多路數(shù)據(jù)采集系統(tǒng),北京,儀表與傳感技術(shù),2006</p><p>  [17] 李雷,巡回檢測(cè)系統(tǒng)中的數(shù)字濾波算法的實(shí)現(xiàn),北京,儀表技術(shù),2005</p><p>  [18] 陳宜冬,8098溫度巡回檢測(cè)系統(tǒng),北京

88、,電腦學(xué)習(xí),2004</p><p><b>  附錄</b></p><p>  #include<reg51.h></p><p>  #include<intrins.h></p><p>  #define uchar unsigned char</p><p> 

89、 sbit RS=P3^5;//定義LCD端口</p><p>  sbit RW=P3^6;</p><p>  sbit E=P3^7;</p><p>  sbit DQ=P3^4;//定義單總線端口</p><p>  uchar LCD_3,LCD_2,LCD_1,LCD_0;</p>

90、;<p>  uchar ds18b20_romA[8]={0x8e,0x00,0x00,0x00,0xb8,0xc5,0x30,0x28};</p><p>  //四個(gè)DS18B20的64位ROM地址</p><p>  uchar ds18b20_romB[8]={0x52,0x00,0x00,0x00,0xb8,0xc5,0x34,0x28};</p>

91、<p>  uchar ds18b20_romC[8]={0x65,0x00,0x00,0x00,0xb8,0xc5,0x35,0x28};</p><p>  uchar ds18b20_romD[8]={0x3c,0x00,0x00,0x00,0xb8,0xc5,0x36,0x28};</p><p>  uchar code LCDData[] ="012345

92、6789"; </p><p>  uchar code dot_tab[] ="0112334456678899"; </p><p>  uchar first_line[16]="A:000.0 B:000.0"; //LCD第一行顯示緩存數(shù)組</p><p>  uchar second_line

93、[16]="C:000.0 D:000.0"; //LCD第二行顯示緩存數(shù)組</p><p>  //************************************</p><p><b>  //延時(shí)程序</b></p><p>  //**********************************

94、**</p><p>  void delay(unsigned int N)</p><p><b>  {</b></p><p>  unsigned int i;</p><p>  for(i=0;i<N;i++);</p><p><b>  }</b>&l

95、t;/p><p>  //************************************</p><p>  //LCD1602測(cè)忙</p><p>  //************************************</p><p>  void check_busy(void)</p><

96、;p><b>  {</b></p><p><b>  while(1)</b></p><p><b>  {</b></p><p><b>  P1=0xff;</b></p><p><b>  E=0;</b><

97、;/p><p><b>  _nop_();</b></p><p><b>  RS=0;</b></p><p><b>  _nop_();</b></p><p><b>  _nop_();</b></p><p><b

98、>  RW=1;</b></p><p><b>  _nop_();</b></p><p><b>  _nop_();</b></p><p><b>  E=1;</b></p><p><b>  _nop_();</b><

99、;/p><p><b>  _nop_();</b></p><p><b>  _nop_();</b></p><p><b>  _nop_();</b></p><p>  if((P1&0x80)==0)</p><p><b>

100、  {</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  E=0;</b></p><p><b>  }</b></p><p><b&

101、gt;  }</b></p><p>  //************************************</p><p>  //LCD1602寫命令</p><p>  //************************************</p><p>  void write_command(uchar

102、 tempdata)</p><p><b>  {</b></p><p><b>  E=0;</b></p><p><b>  _nop_();</b></p><p><b>  _nop_();</b></p><p>

103、<b>  RS=0;</b></p><p><b>  _nop_();</b></p><p><b>  _nop_();</b></p><p><b>  RW=0;</b></p><p>  P1=tempdata;</p>

104、<p><b>  _nop_();</b></p><p><b>  _nop_();</b></p><p><b>  E=1;</b></p><p><b>  _nop_();</b></p><p><b>  _nop

105、_(); </b></p><p><b>  E=0;</b></p><p><b>  _nop_();</b></p><p>  check_busy();</p><p><b>  }</b></p><p>  //*****

106、*******************************</p><p>  //LCD1602寫數(shù)據(jù)</p><p>  //************************************</p><p>  void write_data(uchar tempdata)</p><p><b>  {</b

107、></p><p><b>  E=0;</b></p><p><b>  _nop_();</b></p><p><b>  _nop_();</b></p><p><b>  RS=1;</b></p><p>&l

108、t;b>  _nop_();</b></p><p><b>  _nop_();</b></p><p><b>  RW=0;</b></p><p>  P1=tempdata;</p><p><b>  _nop_();</b></p>

109、<p><b>  _nop_();</b></p><p><b>  E=1;</b></p><p><b>  _nop_();</b></p><p><b>  _nop_(); </b></p><p><b>  E=

110、0;</b></p><p><b>  _nop_();</b></p><p>  check_busy();</p><p><b>  }</b></p><p>  //************************************</p><p&

111、gt;  //初始化LCD1602</p><p>  //************************************</p><p>  void init_lcd1602()</p><p><b>  {</b></p><p>  write_command(0x01);//清除屏幕

112、</p><p>  write_command(0x38);//功能設(shè)定(8位,2行,5*7點(diǎn)陣式)</p><p>  write_command(0x0c);//顯示器ON,光標(biāo)OFF,閃爍OFF</p><p>  write_command(0x06);//地址加1</p><p><b>

113、  }</b></p><p>  //************************************</p><p>  //初始化ds18b20</p><p>  //************************************</p><p>  bit resetpulse(void)<

114、/p><p><b>  {</b></p><p><b>  DQ=0;</b></p><p>  delay(40);//延時(shí)500us</p><p><b>  DQ=1;</b></p><p>  delay(4);

115、//延時(shí)60us</p><p>  return(DQ); //讀取P1.0的狀態(tài)</p><p><b>  }</b></p><p>  void ds18b20_init(void)</p><p><b>  {</b></p><p&g

116、t;<b>  while(1)</b></p><p><b>  {</b></p><p>  if(!resetpulse()) //收到ds18b20的應(yīng)答信號(hào)</p><p><b>  {</b></p><p><b>  DQ=1;

117、</b></p><p>  delay(40);//延時(shí)240us</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  else</b></p><p> 

118、 resetpulse();//否則再發(fā)復(fù)位信號(hào)</p><p><b>  }</b></p><p><b>  }</b></p><p>  //************************************</p><p>  //讀ds18b20一位</p&

119、gt;<p>  //************************************</p><p>  uchar read_bit(void)</p><p><b>  {</b></p><p><b>  DQ=0;</b></p><p><b>  _

120、nop_();</b></p><p><b>  _nop_();</b></p><p><b>  DQ=1;</b></p><p><b>  delay(2);</b></p><p>  return(DQ);</p><p>

溫馨提示

  • 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ù)僅提供信息存儲(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)論