基于單片機(jī)的智能溫度監(jiān)控畢業(yè)設(shè)計(jì)正文_第1頁
基于單片機(jī)的智能溫度監(jiān)控畢業(yè)設(shè)計(jì)正文_第2頁
基于單片機(jī)的智能溫度監(jiān)控畢業(yè)設(shè)計(jì)正文_第3頁
基于單片機(jī)的智能溫度監(jiān)控畢業(yè)設(shè)計(jì)正文_第4頁
基于單片機(jī)的智能溫度監(jiān)控畢業(yè)設(shè)計(jì)正文_第5頁
已閱讀5頁,還剩37頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、桂林電子科技大學(xué)畢業(yè)設(shè)計(jì)(論文)報(bào)告用紙 第 42 頁 共 42 頁引言 溫度是工業(yè)控制中主要的被控參數(shù)之一,特別是在冶金、化工、建材、食品、機(jī)械、石油等工業(yè)中,具有舉足重輕的作用。對于不同場所、不同工藝、所需溫度高低范圍不同、精度不同,則采用的測溫元件、測方法以及對溫度的控制方法也將不同;產(chǎn)品工藝不同、控制溫度的精度不同、時效不同,則對數(shù)據(jù)采集的精度和采用的控制算法也不同,因而,對溫度的測控方法多種多樣。 隨著電子技術(shù)和微型計(jì)算機(jī)的迅速發(fā)展,微機(jī)測量和控制技術(shù)也得到了迅速的發(fā)展和廣泛的應(yīng)用。利用微機(jī)對溫度進(jìn)行測控的技術(shù),也便隨之而生,并得到日益發(fā)展和完善,越來越顯示出其優(yōu)越性。 作為獲取信息

2、的手段傳感器統(tǒng)。本系統(tǒng)利用傳感器與單片機(jī)相結(jié)合,應(yīng)用性比較強(qiáng),本系統(tǒng)可以作為倉庫溫度監(jiān)控系技術(shù)得到了顯著的進(jìn)步,其應(yīng)用領(lǐng)域較廣泛。傳感器技術(shù)已成為衡量一個國家科學(xué)技術(shù)發(fā)水平的重要標(biāo)志之一。因此,了解并掌握各類傳感器的基本結(jié)構(gòu)、工作原理及特性是非展常重要的。 為了提高對傳感器的認(rèn)識和了解,尤其是對溫度傳感器的深入研究以及其用法與用途,基于實(shí)用、廣泛和典型的原則而設(shè)計(jì)了本系統(tǒng),如果稍微改裝可以做熱水器溫度調(diào)節(jié)系統(tǒng)、實(shí)驗(yàn)室溫度監(jiān)控系統(tǒng),以及構(gòu)成智能電飯煲等等。論文主要任務(wù)是完成環(huán)境溫度監(jiān)測,利用單片機(jī)實(shí)現(xiàn)溫度監(jiān)測并通過報(bào)警信號提示溫度異常。本設(shè)計(jì)具有操作方便,控制靈活等優(yōu)點(diǎn)。 本設(shè)計(jì)系統(tǒng)包括單片機(jī),

3、溫度采集模塊,顯示模塊,按鍵控制模塊,報(bào)警和指示模塊五個部分。文中對每個部分功能、實(shí)現(xiàn)過程作了詳細(xì)介紹。整個系統(tǒng)的核心是進(jìn)行溫度監(jiān)控,完成了課題所有要求。 1 溫度檢測和控制的重要性 在工業(yè)生產(chǎn)中,電流、電壓、溫度、壓力、流量、流速和開關(guān)量都是常用的主要被控參數(shù)。其中,溫度控制也越來越重要。在工業(yè)生產(chǎn)的很多領(lǐng)域中,人們都需要對各類加熱爐、熱處理爐、反應(yīng)爐和鍋爐中的溫度進(jìn)行檢測和控制。采用單片機(jī)對溫度進(jìn)行控制不僅具有控制方便、簡單和靈活性大等優(yōu)點(diǎn),而且可以大幅度提高被控溫度的技術(shù)指標(biāo),從而能夠大大的提高產(chǎn)品的質(zhì)量和數(shù)量。因此,單片機(jī)對溫度的控制問題是一個工業(yè)生產(chǎn)中經(jīng)常會遇到的控制問題。1.1 溫

4、度控制器的發(fā)展?fàn)顩r溫度是表征物體冷熱程度的物理量,是工業(yè)生產(chǎn)和日常生活中經(jīng)常測量的物理量,也是人類研究最早測量方法最多的物理量之一。因而溫度檢測儀應(yīng)用領(lǐng)域之廣,使用數(shù)量之多,一直高居各類測量儀之首。近百年來,溫度傳感器的發(fā)展大致經(jīng)歷了以下三個階段:傳統(tǒng)的分立式溫度傳感器(含敏感元件);模擬集成溫度傳感器/控制器;智能溫度傳感器(即數(shù)字溫度傳感器)。a) 分立式溫度傳感器傳統(tǒng)的熱電偶、熱電阻、熱敏電阻及半導(dǎo)體溫度傳感器,均屬于分立式溫度傳感器,傳感器本身就是一個完整的、獨(dú)立的感溫元件。此類傳感器通常要配溫度變送器,以獲得標(biāo)準(zhǔn)的模擬量(電壓或電流)輸出信號。b) 模擬集成溫度傳感器集成傳感器是采用

5、硅半導(dǎo)體集成工藝而制成的,因此亦稱硅傳感器或單片集成傳感器。可完成溫度測量及模擬信號輸出功能的專用ic,它屬于一種簡單的集成溫度傳感器,適合遠(yuǎn)距離測量、控溫,不需要進(jìn)行非線性校準(zhǔn),典型產(chǎn)品有ad590、ad592等。c) 模擬集成溫度控制器模擬集成溫度控制器主要包括溫控開關(guān)、可編程溫度控制器,典型產(chǎn)品有l(wèi)m56、ad22105和max6509。d) 智能溫度傳感器智能溫度傳感器(亦稱數(shù)字溫度傳感器)是在20世紀(jì)90年代中期問世的。智能溫度傳感器是微電子技術(shù)、計(jì)算機(jī)技術(shù)和自動測試技術(shù)的結(jié)晶,它也是集成溫度傳感器領(lǐng)域中最具活力和發(fā)展前途的一種新產(chǎn)品。目前,國際上許多著名的集成電路生產(chǎn)廠已經(jīng)開發(fā)出上

6、百種智能溫度傳感器產(chǎn)品。1.2 課題研究必要性隨著電子技術(shù)和微型計(jì)算機(jī)的迅速發(fā)展,微機(jī)測量和控制技術(shù)得到了迅速的發(fā)展和廣泛的應(yīng)用。單片機(jī)具有處理能強(qiáng)、運(yùn)行速度快、功耗低等優(yōu)點(diǎn),應(yīng)用在溫度測量與控制方面,控制簡單方便,測量范圍廣,精度較高。溫度是工業(yè)生產(chǎn)中常見并且十分重要的參數(shù)之一,特別是在冶金、石油、食品、印染等工廠中。由于不同的工藝所需的溫度變化曲線各不相同,而現(xiàn)有的溫度控制儀大多只能進(jìn)行恒溫控制。因此許多生產(chǎn)過程中加熱、保溫、降溫以及自然降溫等操作都是由人工操作的,這就不可避免地產(chǎn)生各種誤差,進(jìn)而影響產(chǎn)品質(zhì)量,個別采用的溫度自動控制系統(tǒng)由于造價較高、操作復(fù)雜等原因又限制了在中小企業(yè)的應(yīng)用,

7、因此研究和開發(fā)一種實(shí)用的溫度控制系統(tǒng)成為當(dāng)務(wù)之急。在工業(yè)生產(chǎn)過程中需要實(shí)時測量控制溫度,尤其是在高危生產(chǎn)行業(yè),如花炮生產(chǎn),煤礦行業(yè)等。但依靠人工檢測控制既浪費(fèi)時間,物力,人力,又有一定的危險性,且數(shù)據(jù)也不準(zhǔn)確,因此研究自動的溫度測量控制方法和裝置具有重要的意義。1.3 現(xiàn)代控制系統(tǒng)相對傳統(tǒng)控制系統(tǒng)的優(yōu)勢傳統(tǒng)的控制系統(tǒng)主要由測量電路和控制電路組成,所具備的功能較少,也比較弱,而且結(jié)構(gòu)很復(fù)雜。計(jì)算機(jī)技術(shù)的迅速發(fā)展,使得傳統(tǒng)的控制系統(tǒng)發(fā)生了根本性的變革,即采用微機(jī)作為控制系統(tǒng)的核心,代替?zhèn)鹘y(tǒng)的控制系統(tǒng)的傳統(tǒng)的電子線路,從而成為新一代的微機(jī)化控制系統(tǒng)。將微機(jī)技術(shù)引入控制系統(tǒng)中,不僅可以解決傳統(tǒng)控制系統(tǒng)

8、不能解決的問題,而且還能簡化電路、增加或增強(qiáng)功能、提高控制精度和可靠性,顯著增強(qiáng)測控系統(tǒng)的自動化、智能化程度,而且可以縮短系統(tǒng)研制周期、降低成本、易于升級和維護(hù)。因此,現(xiàn)代控制系統(tǒng)設(shè)計(jì),特別是高精度、高性能的控制系統(tǒng),目前已很少不采用計(jì)算機(jī)技術(shù)的了。計(jì)算機(jī)技術(shù)的引入,可以為控制系統(tǒng)帶來以下一些新特點(diǎn)和新功能:a) 自動調(diào)零功能在每次采樣前對傳感器的輸出值自動清零,從而大大降低因控制系統(tǒng)漂移變化造成的誤差。b) 數(shù)字濾波功能利用已算機(jī)軟件對測量數(shù)據(jù)進(jìn)行處理,可以抑制各種干擾和脈沖信號。c) 數(shù)據(jù)處理功能利用計(jì)算機(jī)技術(shù)可以實(shí)現(xiàn)傳統(tǒng)儀器無法實(shí)現(xiàn)的各種復(fù)雜的處理和運(yùn)算功能。d) 復(fù)雜控制規(guī)律利用計(jì)算機(jī)

9、技術(shù)不僅可以實(shí)現(xiàn)經(jīng)典的pid控制,還可以實(shí)現(xiàn)各種復(fù)雜的控制規(guī)律,例如,自適應(yīng)控制、模糊控制等。e) 自我診斷功能采用計(jì)算機(jī)技術(shù)后,可對控制系統(tǒng)進(jìn)行監(jiān)測,一旦發(fā)現(xiàn)故障則立即進(jìn)行報(bào)警,并可顯示故障部位或可能的故障原因,對排除故障的方法進(jìn)行提示。微機(jī)化的控制系統(tǒng)是以微機(jī)為核心、測量控制一體化的系統(tǒng),這種系統(tǒng)對被控對象的控制是依據(jù)對被控對象的測量結(jié)果決定的。1.4 課題設(shè)計(jì)特點(diǎn)和應(yīng)用領(lǐng)域課題采用的是單總線數(shù)字溫度傳感器ds18b20,可直接將溫度轉(zhuǎn)換值以16位數(shù)字碼的方式串行輸出:將溫度轉(zhuǎn)化為數(shù)字編碼只需1秒左右。而且它具有獨(dú)特單線接口方式,即與微處理器接口時僅需占用1個i/o口;支持多節(jié)點(diǎn);測溫時無

10、需任何外部元件,可以通過數(shù)據(jù)線直接供電,具有超低功耗工作方式。測溫范圍為20+120,測溫度精度可達(dá)到0.5。由于傳送的是串行放大器和a/d轉(zhuǎn)換器可以統(tǒng)統(tǒng)被省卻,因而這種測溫方式大大提高了各種溫度測控系統(tǒng)的可靠性,降低了成本,縮小了體積。其測溫系統(tǒng)結(jié)構(gòu)簡單,硬件少,成本低,測溫精度高,轉(zhuǎn)換速度快,實(shí)用性高,應(yīng)用范圍廣泛,市場前景好,經(jīng)濟(jì)效益可觀。系統(tǒng)可以應(yīng)用于溫度要求在20+120之間的任何領(lǐng)域。比如:鐵路,糧庫,水果,蔬菜存儲倉庫的溫度控制,以及多路溫度測控儀,各種養(yǎng)殖場的溫度控制監(jiān)測。由于本系統(tǒng)的測溫精度可達(dá)0.5,因而對于溫度要求特別嚴(yán)格的環(huán)境來說,本系統(tǒng)是一個較為理想的監(jiān)控系統(tǒng)。1.5

11、 智能溫度控制器的課題主要內(nèi)容課題的任務(wù)是應(yīng)用單片機(jī)及ds18b20單總線器件設(shè)計(jì)一套溫度檢測系統(tǒng),實(shí)現(xiàn)對溫度的測量及顯示,并通過按鍵人為設(shè)定溫度上下限!而且在溫度超上限價或下限量有控制功能,系統(tǒng)以高性能/價格比的89s52為核心,完成對數(shù)據(jù)的分析、處理、顯示、溫度上下限設(shè)置、超限自動控制,采用單線數(shù)字溫度傳感器ds18b20來完成對溫度的采樣和轉(zhuǎn)換。由于課題是完成對溫度的實(shí)時監(jiān)測,因而系統(tǒng)的核心部分就是如何實(shí)現(xiàn)溫度采集。系統(tǒng)采用的是美國dallas公司繼ds1820之后推出的一種改進(jìn)型智能溫度傳感器ds18b20來完成這一任務(wù)的。ds18b20與傳統(tǒng)的熱敏電阻相比,它能夠直接讀出被測溫度并且

12、可根據(jù)實(shí)際要去通過簡單的編程實(shí)現(xiàn)9-12位的數(shù)字值讀數(shù)方式,可分別在93.75ms和750ms內(nèi)完成9位和12位的數(shù)字量,并且從ds18b20讀出的信息或?qū)懭雂s18b20的信息僅從一根口線,溫度變換功率來源于數(shù)據(jù)總線,總線本身可以為所接的ds180b20供電,而無需外電源。ds18b20需在嚴(yán)格的時序控制下才能進(jìn)行正常操作。對ds18b20的操作包括初始化操作、讀/寫時間片??偩€上的所有操作均從初始化開始,初始化或?qū)am、rom操作。主cpu通過“時間片”來寫入或讀出ds18b20中的數(shù)據(jù)。概括說,主cpu經(jīng)過單線接口訪問ds18b20的工作流程為:對ds18b20進(jìn)行初始化rom操作命令

13、存儲器(包括ram和eeram)操作命令數(shù)據(jù)處理。主cpu對rom操作完畢,即發(fā)出控制操作命令,使ds18b20完成溫度測量并將測量結(jié)果存入高速暫存器中,然后單片機(jī)可讀出此溫度轉(zhuǎn)換值,并隨之進(jìn)行數(shù)據(jù)處理、送顯示等操作。2 智能溫度控制系統(tǒng)基本構(gòu)成及工作原理2.1系統(tǒng)的硬件構(gòu)成課題設(shè)計(jì)的硬件部分由89s52單片機(jī)、ds18b20、74ls14、74ls273鎖存器以及若干電容、7個發(fā)光二極管、4只數(shù)碼管、5個按鍵、11.0592mhz晶振組成。(結(jié)構(gòu)如圖2.1)溫度傳感器89s52顯示器與接口控制電路量限設(shè)定與控制鍵盤與接口控制電路圖2.1 系統(tǒng)設(shè)計(jì)結(jié)構(gòu)圖 以下對各組成部件功能進(jìn)行簡單介紹:89

14、s52單片機(jī)用于溫度的采集,數(shù)據(jù)處理,存儲溫度上下限和超溫控制。ds18b20是單總線數(shù)字溫度傳感器,輸出方式為串行單線輸出,主要作用是把溫度值以數(shù)字形式輸出和存儲轉(zhuǎn)換精度控制字。第三章將作出詳細(xì)介紹,此處不做過多贅述。 74ls02或非門,用于選擇鎖存器(與寫信號或非)。 74ls14施密特觸發(fā)器,用于鍵盤消抖。 74ls273鎖存器。用鎖存顯示位、段碼以及指示信號。 按鍵用于輸入和查看溫度上下限,使單片機(jī)復(fù)位,每隔2小時發(fā)送0.5秒的啟動電機(jī)的正脈沖。 晶振是為單片機(jī)提供工作脈沖。 數(shù)碼管用于顯示溫度值。發(fā)光二極管用于上下限溢出報(bào)警,溫度超限報(bào)警及控制,設(shè)置上/下限指示,正常工作指示。各功

15、能對應(yīng)的指示燈設(shè)置如表2.1:表2.1 指示燈設(shè)置功 能第幾燈點(diǎn)亮顯示溫度第1燈0x02顯示下限溫度1、20x03設(shè)下限溫度標(biāo)志位2、70x41設(shè)下限溫度十位2、60x21設(shè)下限溫度個位2、50x11設(shè)下限溫度十分位2、40x09顯示上限溫度1、30x06設(shè)上限溫度 標(biāo)志位3、70x44設(shè)上限溫度十位3、60x24設(shè)上限溫度個位3、50x14設(shè)上限溫度十分位3、40x0c低于下限溫度1、2、4、5、6、70x7b高于上限溫度1、3、4、5、6、70x7e2.2 系統(tǒng)的軟件構(gòu)成課題原計(jì)劃用匯編語言完成。后來決定使用c語音編寫程序,系統(tǒng)的軟件由溫度數(shù)據(jù)采集、數(shù)據(jù)處理、溫度顯示及按鍵處理等部分組成。

16、89s52完成的功能主要是數(shù)據(jù)處理、數(shù)據(jù)分析、控制計(jì)算、進(jìn)制轉(zhuǎn)換、數(shù)據(jù)顯示、按鍵處理以及電機(jī)控制等。溫度采樣和轉(zhuǎn)換部分由ds18b20來完成。2.2.1 系統(tǒng)的工作原理首先,由溫度傳感器ds18b20對溫度進(jìn)行采樣和轉(zhuǎn)換,將測量結(jié)果送給單片機(jī),單片機(jī)將輸入的溫度值進(jìn)行數(shù)據(jù)處理,并將溫度值與設(shè)定的溫度值上下限進(jìn)行比較。根據(jù)比較結(jié)果進(jìn)行相應(yīng)的處理。若溫度超限則報(bào)警指示燈亮,以便進(jìn)行及時處理。系統(tǒng)原理框圖如圖2.2所示:ds18b2089s52顯示器指示燈段鎖存位鎖存鎖存器圖2.2 系統(tǒng)原理圖3 智能溫度控制系統(tǒng)硬件設(shè)計(jì)本章是論文核心部分,主要介紹基于單片機(jī)的溫度控制系統(tǒng)硬件總體設(shè)計(jì),按照設(shè)計(jì)方案,

17、整個溫控系統(tǒng)硬件主要包括以下單元:按鍵輸入,溫度采集、處理,溫度超限報(bào)警,定時發(fā)出脈沖等。溫度控制的核心為溫度的采集和處理,系統(tǒng)選用特別適用于編程及數(shù)據(jù)處理的ms-51單片機(jī)89s52,并通過89s52實(shí)現(xiàn)對其他各組成部分的編程控制。下面是核心原件的介紹:3.1 數(shù)字溫度傳感器ds18b20詳述3.1.1 ds18b20簡介 ds18b20是美國dallas半導(dǎo)體公司生產(chǎn)的可組網(wǎng)數(shù)字式溫度傳感器,在其內(nèi)部使用了在板(on-b0ard)專利技術(shù)。全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)。與其它溫度傳感器相比,ds18b20具有以下特性:a) 獨(dú)特的單線接口方式:ds18b20與微處

18、理器連接時僅需要一條口線即可實(shí)現(xiàn)微處理器與ds18b20的雙向通訊。    b) 在使用中不需要任何外圍元件。    c) 可用數(shù)據(jù)線供電,電壓范圍:+3.0 v+5.5 v。   d) 測溫范圍:-55 +125 。固有測溫分辨率為0.1。    e) 通過編程可實(shí)現(xiàn)912位的數(shù)字讀數(shù)方式。    f)用戶可自設(shè)定非易失性的報(bào)警上下限值。    g)支持多點(diǎn)組網(wǎng)功能,多個ds18b20可以并聯(lián)在惟一的三線上,實(shí)現(xiàn)多點(diǎn)測溫。3.1.2

19、ds18b20的引腳名稱及作用外形如圖3.1所示。其體積只有ds1820的一半,引腳定義相同。 a) dq:數(shù)據(jù)輸入輸出引腳b) vdd:可接電源,也可接地。因?yàn)槊恐籨s18b20都可以設(shè)置成兩種供電方式。采用數(shù)據(jù)總線方式時vdd接地,可以節(jié)省一根傳輸線,但完成溫度測量的時間較長;采用外部供電方式則接5v,多用一根導(dǎo)線,但測量速度較快。圖3.1 ds18b20外觀 圖3.1 ds18b20外觀3.1.3 ds18b20的內(nèi)部結(jié)構(gòu)它主要由4部分組成:64位rom、溫度傳感器、非易失性的溫度報(bào)警觸發(fā)器th和tl、高速暫存器。64位rom用于存儲ds18b20序列號,其首字節(jié)固定為28h,表示產(chǎn)品類

20、型碼,后6個字節(jié)是每個器件的編碼,最后1個字節(jié)是crc校驗(yàn)碼。溫度報(bào)警觸發(fā)器th和tl存儲用戶通過軟件寫入的報(bào)警上下極限。高速暫存器由9個字節(jié)組成,其中有2個字節(jié)ram單元用來存放溫度值,前1個字節(jié)為溫度值的補(bǔ)碼低8位,后1個字節(jié)為字符號位和溫度值的補(bǔ)碼高3位。其內(nèi)部結(jié)構(gòu)框圖如圖3.2所示:電源檢測64位rom和單線接口8位crc生成器存儲器和控制器配置寄存器高溫觸發(fā)器th高速緩存存儲器溫度靈敏元件低溫觸發(fā)器tl圖3.2 ds18b20內(nèi)部結(jié)構(gòu)框圖3.1.4 ds18b20的測溫原理ds18b20測量溫度采用了特有的溫度測量技術(shù),其溫度測量電路如圖3.3所示。預(yù)置斜率累加器計(jì)數(shù)器1計(jì)數(shù)器2=0

21、=0低溫度系數(shù)振蕩高溫度系數(shù)振蕩加1停止比較預(yù)置溫度寄存器設(shè)備/管理lsb圖3.3 ds18b20 測溫結(jié)構(gòu)圖 圖3.3中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號送給減法計(jì)數(shù)器1,高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產(chǎn)生的信號作為減法計(jì)數(shù)器2的脈沖輸入,圖中還隱含著計(jì)數(shù)門,當(dāng)計(jì)數(shù)門打開時,ds18b20就對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖后進(jìn)行計(jì)數(shù),進(jìn)而完成溫度測量。計(jì)數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將-55 所對應(yīng)的基數(shù)分別置入減法計(jì)數(shù)器1和溫度寄存器中,減法計(jì)數(shù)器1和溫度寄存器被預(yù)置在-55所對應(yīng)的一個基數(shù)值。減法計(jì)數(shù)器1對低溫度

22、系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行減法計(jì)數(shù),當(dāng)減法計(jì)數(shù)器1的預(yù)置值減到0時溫度寄存器的值將加1,減法計(jì)數(shù)器1的預(yù)置將重新被裝入,減法計(jì)數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行計(jì)數(shù),如此循環(huán)直到減法計(jì)數(shù)器2計(jì)數(shù)到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即為所測溫度。圖3.3中的斜率累加器用于補(bǔ)償和修正測溫過程中的非線性,其輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)門仍未關(guān)閉就重復(fù)上述過程,直至溫度寄存器值達(dá)到被測溫度值,這就是ds18b20的測溫原理。    另外,由于ds18b20單線通信功能是分時完成的,他有嚴(yán)格的時隙概念,因此讀寫時序很重要。系統(tǒng)對d

23、s18b20的各種操作必須按協(xié)議進(jìn)行。操作協(xié)議為:初始化ds18b20(發(fā)復(fù)位脈沖)發(fā)rom功能命令發(fā)存儲器操作命令處理數(shù)據(jù)。3.1.5 ds18b20的轉(zhuǎn)換精度控制字及分辨率設(shè)置設(shè)置轉(zhuǎn)換精度控制字格式如表3.1所示表3.1 轉(zhuǎn)換精度控制字格式msb lsb0r1r011111分辨率設(shè)置如表3.2所示:表3.2 分辨率設(shè)置r1r0分辨率(位)最大轉(zhuǎn)換時間(ms)00993750110187510113751112750由表可見,設(shè)定的分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時間越長。因此,在實(shí)際應(yīng)用中需要在分辨率與轉(zhuǎn)換時間二者之間權(quán)衡考慮。在芯片出廠時r1和r0被配置為“1”,即工作在12位模式下。當(dāng)

24、ds18b20接收到溫度轉(zhuǎn)換命令(44h)開啟后,開始啟動轉(zhuǎn)換,轉(zhuǎn)換完成后的溫度值就以16位帶符號擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲在暫存ram的第0,1字節(jié)。在執(zhí)行讀暫存ram命令后,可將這兩個字節(jié)的溫度值通過單線總線傳給cpu,高位字節(jié)中符號代表溫度值為正還是負(fù)值。3.1.6 ds18b20的溫度數(shù)字關(guān)系用12位精度測出的溫度值用16位二進(jìn)制補(bǔ)碼形式表示,如表3.3所示:表3.3 ds18b20存儲器映像圖232221202-12-22-32-4msb lsbsssss262524msb lsb圖中s為符號位,s=1,溫度為負(fù)值;s=0,溫度為正值。ds18b20用12位精度測出的數(shù)字量(用16位二

25、進(jìn)制補(bǔ)碼形式表示)如表3.4所示:表3.4 部分溫度與對應(yīng)的數(shù)字溫度輸出之間的對應(yīng)關(guān)系溫度()數(shù)字輸出(二進(jìn)制)數(shù)字輸出(十六進(jìn)制)+1250000 0111 1101 000007d0+850000 0101 0101 00000550+25.06250000 0001 1001 00010191+10.1250000 0000 1010 001000a2+0.50000 0000 0000 1000000800000 0000 0000 00000000-0.51111 1111 1111 1000fff8-10.1251111 1111 0101 1110ff5e-25.06251111

26、 1110 0110 1111fe6f-551111 1100 1001 0000fc903.1.7 ds18b20的內(nèi)存結(jié)構(gòu)圖ds18b20的存儲器包括sram存儲器和非易失的eeprom存儲器,eeprom用于存放觸發(fā)報(bào)警上限值存儲器(th)和觸發(fā)報(bào)警下限存儲器(tl)。當(dāng)ds18b20在使用過程中并未使用報(bào)警功能時,th和tl可作為普通用途的存儲器單元使用。ds18b20的存儲組織結(jié)構(gòu)如表3.5所示。表3.5 ds18b20內(nèi)部存儲器組織結(jié)構(gòu)圖便箋存儲器(期間上電默認(rèn)值)eeprom存儲器0溫度數(shù)字量低位字節(jié)(50h)無1溫度數(shù)字量高位字節(jié)(05h)2th/用戶寄存器字節(jié)1th/用戶寄存

27、器字節(jié)13tl/用戶寄存器字節(jié)2tl/用戶寄存器字節(jié)24配置寄存器配置寄存器5保留(ffh)無6保留(0ch)7保留(10h)8crc3.1.8 ds18b20的操作命令ds18b20是一種可編程的數(shù)字溫度傳感器,它的工作是靠計(jì)算機(jī)給它發(fā)控制命令進(jìn)行的,ds18b20和計(jì)算機(jī)在工作過程中的協(xié)議主要有:初始化、rom存儲器操作命令、ram存儲器操作命令。分別說明如下:a) 初始化單總線上的所有處理均從初始化開始。初始化過程是主機(jī)通過向作為從機(jī)ds18b20芯片發(fā)一個有時間寬度要求的初始化脈沖實(shí)現(xiàn)的。初始化完成后,才可進(jìn)行讀寫操作。b) 對rom的5種操作命令一旦主cpu檢測到從屬器件的存在,就可

28、以發(fā)出rom操作命令。所有rom操作命令均為8位(二進(jìn)制)字長。主cpu可以發(fā)出rom操作命令有以下五種:1) 讀rom命令(read rom,約定代碼33h)。該命令允許主cpu讀取ds18b20中的8位產(chǎn)品系列編碼,48位序列號以及8位的crc。該命令適用于總線上接一片ds18b20的情況。當(dāng)總線上掛有多片ds18b20時禁止使用該命令,否則多片ds18b20同時發(fā)送數(shù)據(jù),必然會導(dǎo)致互相沖突。2) 符合rom命令(match rom,約定代碼55h)。主cpu在發(fā)出“符合”rom命令后,接著發(fā)出64位的rom數(shù)據(jù)序列,從而使主cpu實(shí)現(xiàn)對單線總線上特定ds18b20的尋址。只有與rom序列

29、嚴(yán)格相符的ds18b20,才能對后續(xù)的存儲器操作命令作出響應(yīng)。所有與64位rom序列不相符的ds18b20將等待復(fù)位脈沖。該命令對于總線上掛有單個、或多個器件的情況均適用。3) 搜索rom命令(search rom,約定代碼f0h)。搜索rom命令允許主cpu使用一種“消除法”(elmination)來識別總線上所有ds18b20的64位rom編碼,即完成整個系統(tǒng)的初始化工作。為以后對各個單線器件作好準(zhǔn)備。該部分也是對ds18b20芯片進(jìn)行軟件編程的重點(diǎn)和難點(diǎn)。4) 跳過rom命令(skip rom,約定代碼為cch)。在單線總線系統(tǒng)中,該命令使主cpu不必提供64位rom編碼就能訪問各片ds

30、18b20。該命令主要用于向所有的ds18b20同時發(fā)出溫度轉(zhuǎn)換命令,從而大大節(jié)省訪問各個器件的時間。但有一點(diǎn)必須注意,主cpu如果在發(fā)出skip rom命令之后,又發(fā)出了讀存儲器命令,那么由于多片ds18b20同時向總線上提供數(shù)據(jù)且在漏極開路狀態(tài)下產(chǎn)生“線與”的結(jié)果,此時讀出的數(shù)據(jù)已經(jīng)沒有實(shí)際意義了。5) 報(bào)警搜索命令(alaram search,有約定代碼ech)。該命令的流程與搜索rom命令的流程相同。僅在最后一次溫度測量出現(xiàn)報(bào)警的情況下。ds18b20才對該命令做出響應(yīng)。報(bào)警的條件定義為溫度超過上限(t>th),或者低于下限(t<tl)。上電時,ds18b20預(yù)置報(bào)警條件為

31、設(shè)定狀態(tài),直到首次溫度測量結(jié)果既不超過上限th,也不低于tl時,報(bào)警信號才被解除。c) 存儲器操作命令存儲器操作命令共有6條,具體如下:1) 溫度轉(zhuǎn)換命令(convert t)44h。令ds18b20進(jìn)行溫度轉(zhuǎn)換。如果住cpu在該命令之后為讀時序,如果ds18b20正忙于進(jìn)行溫度轉(zhuǎn)換,即讀得“0”;當(dāng)溫度轉(zhuǎn)換完成時,ds18b20則返回“1”。假如有寄生電源給ds18b20供電,主cpu在發(fā)出該命令后立即將單線總線拉成高電平,并且保持500ms時間,以便在溫度轉(zhuǎn)換期間給ds18b20提供所需要的電源。2) 讀暫存存儲器(read scratchpad)beh。該命令為讀暫存存儲器9個字節(jié)的內(nèi)容

32、。從字節(jié)0開始讀,直至讀到字節(jié)8。主cpu可以在讀暫存存儲器期間發(fā)出一個復(fù)位脈沖來終止讀操作。3) 寫暫存存儲器(write scratchpad)4eh。主cpu送給ds18b20的2個字節(jié)數(shù)據(jù)就分別寫入觸發(fā)寄存器th和觸發(fā)寄存器tl中,順序是先寫th,到寫tl。主cpu也可以在寫暫存存儲器期間發(fā)出一個復(fù)位脈沖來終止寫操作。4) 復(fù)制暫存存儲器copy scratchpad48h。該命令把觸發(fā)寄存器中的th、tl字節(jié)分別復(fù)制到eeram的th、tl的字節(jié)上。若主cpu發(fā)出命令后又進(jìn)行讀操作,只要ds18b20正忙于復(fù)制,主cpu就讀“0”;當(dāng)復(fù)制工作完成后,ds18b20又返回“1”。如果是

33、寄生電源供電,主cpu在發(fā)出該命令后就把單線總線拉到高電平,并保持10ms。5) 重新調(diào)出eeram(recall eeram)b8h。該命令是把存儲器在e2ram溫度觸發(fā)器th、tl內(nèi)的數(shù)據(jù)重新調(diào)入暫存器的th、tl字節(jié)。每次ds18b20上電時也自動進(jìn)行這種操作,因此,只要器件接通電源,暫存存儲器的th、tl中已經(jīng)有效的數(shù)據(jù)供使用。若主cpu在發(fā)出該命令之后又進(jìn)行讀操作,只要ds18b20正忙于進(jìn)行調(diào)出,主cpu就讀得“0”(表示“忙碌”);完成調(diào)出操作后ds18b20既返回“1”(表示“操作完畢”)。6) 讀電源(read power supply)b4h。此項(xiàng)命令發(fā)送給ds18b20之

34、后,對主cpu發(fā)出的每條讀命令,ds18b20都向主cpu提供電源方式信號“0”(表示由寄生電源供電)或者“1”(表示由外部電源供電)。3.1.9 ds18b20的工作時序主機(jī)使用時間隙來讀寫ds18b20的數(shù)據(jù)位和寫命令字的位。a) 初始化主機(jī)總線t0時刻發(fā)送復(fù)位脈沖(最短為480us的低電平信號),接著在t1時刻釋放總線并進(jìn)入接受狀態(tài),ds18b20再檢驗(yàn)到總線的上升沿之后,等待15us60us,接著在t2時刻發(fā)出存在脈沖(60us240us),如圖3.4所示。圖3.4 ds18b20初始化時序圖b) 寫時間隙當(dāng)主機(jī)總線在t0時刻從高拉至低電平時,就產(chǎn)生寫時間隙,如圖3-5(a,b),從t

35、0時刻開始15us之內(nèi)應(yīng)將所需寫的位送到總線上,ds18b20在t0后15us60us間對總線采樣。若為低電平,則寫入的是0,如圖3.5;若為高電平,則寫入的位是1,見圖3.5。連續(xù)寫2位時間間隙應(yīng)大于1us。 圖3.5 寫時間隙 c) 讀時間隙如圖3.6,總線t0時刻從高拉至低電平時,總線只需保持低電平1us。之后在t1時刻將總線拉高,產(chǎn)生讀時間隙,讀時間隙在t1時刻和t2時刻前有效。t2距t0為15us,也就是說,t2時刻前主機(jī)必需完成讀位,并在t0后的60us120us內(nèi)釋放總線。 圖3.6 讀時序 3.1.10 ds18b20與單片機(jī)的硬件接口vdd4.7k89s52p1.0ds18b

36、20p1.0 +5vgnddq外接+5v因?yàn)閐s18b20是單線接口器件,因此它與單片機(jī)硬件接口十分簡單,只需占用單片機(jī)的一個雙向的i/o口,其接口電路見圖3.7。在此采用外部電源供電,占用89s52的p1.0口。 圖3.7 單片機(jī)接口電路3.1.11 ds18b20使用中注意事項(xiàng)  ds18b20雖然具有測溫系統(tǒng)簡單、測溫精度高、連接方便、占用口線少等優(yōu)點(diǎn),但在實(shí)際應(yīng)用中也應(yīng)注意以下幾方面的問題:  a) 較小的硬件開銷需要相對復(fù)雜的軟件進(jìn)行補(bǔ)償,由于ds1820與微處理器間采用串行數(shù)據(jù)傳送,因此,在對ds1820進(jìn)行讀寫編程時,必須嚴(yán)格的保證讀寫時序,否則將無法讀取測溫

37、結(jié)果。在使用pl/m、c等高級語言進(jìn)行系統(tǒng)程序設(shè)計(jì)時,對ds1820操作部分最好采用匯編語言實(shí)現(xiàn)。 b) 在ds1820的有關(guān)資料中均未提及單總線上所掛ds1820數(shù)量問題,容易使人誤認(rèn)為可以掛任意多個ds1820,在實(shí)際應(yīng)用中并非如此。當(dāng)單總線上所掛ds1820超過8個時,就需要解決微處理器的總線驅(qū)動問題,這一點(diǎn)在進(jìn)行多點(diǎn)測溫系統(tǒng)設(shè)計(jì)時要加以注意。 c) 連接ds1820的總線電纜是有長度限制的。試驗(yàn)中,當(dāng)采用普通信號電纜傳輸長度超過50m時,讀取的測溫?cái)?shù)據(jù)將發(fā)生錯誤。當(dāng)將總線電纜改為雙絞線帶屏蔽電纜時,正常通訊距離可達(dá)150m,當(dāng)采用每米絞合次數(shù)更多的雙絞線帶屏蔽電纜時,正常通訊距離進(jìn)一步

38、加長。這種情況主要是由總線分布電容使信號波形產(chǎn)生畸變造成的。因此,在用ds1820進(jìn)行長距離測溫系統(tǒng)設(shè)計(jì)時要充分考慮總線分布電容和阻抗匹配問題。 d) 在ds1820測溫程序設(shè)計(jì)中,向ds1820發(fā)出溫度轉(zhuǎn)換命令后,程序總要等待ds1820的返回信號,一旦某個ds1820接觸不好或斷線,當(dāng)程序讀該ds1820時,將沒有返回信號,程序進(jìn)入死循環(huán)。這一點(diǎn)在進(jìn)行ds1820硬件連接和軟件設(shè)計(jì)時也要給予一定的重視。 3.2 mcs-51系列單片機(jī)簡介 3.2.1 mcs-51系列單片機(jī)mcs-51系列單片機(jī)研制于1980年,由intel公司所開發(fā),其結(jié)構(gòu)是8048的延伸,改進(jìn)了8048的缺點(diǎn),其rom

39、、ram都可擴(kuò)充至64kb,也增添了如乘(mul)、除(div)、減(subb)、比較(cjne)、棧入(push)、棧出(pop)、16位數(shù)據(jù)指針、布爾代數(shù)運(yùn)算等指令,以及串行通信能力和5個中斷源。8052有6個中斷源。mcs-51系列單片機(jī)特點(diǎn)如下:(1)專為控制應(yīng)用所設(shè)計(jì)的八位cpu ;(2)具有布爾代數(shù)的運(yùn)算能力;(3)32條雙項(xiàng)且可被獨(dú)立尋址的io口;(4)芯片內(nèi)有128字節(jié)可供存儲數(shù)據(jù)的ram(8052:256字節(jié));(5)內(nèi)部有兩組16位定時器(8052有3個);(6)具有全多工傳輸信號uart;(7)5個中斷源,且具有兩級(高低)優(yōu)先權(quán)順序的中斷結(jié)構(gòu);(8)芯片內(nèi)有4kb(8k

40、b/8052)的程序存儲器(rom);(9)芯片內(nèi)有時鐘(clock)振蕩器電路;(10)程序存儲器可擴(kuò)展至64kb(rom);(11)數(shù)據(jù)存儲器可擴(kuò)展至64kb(ram)。3.2.2 mcs-51系列單片機(jī)引腳介紹a) 時鐘電路引腳 mcs51單片機(jī)的時鐘可以由內(nèi)部方式和外部方式產(chǎn)生,xtal1(19腳)和xtal2(18腳)即為單片機(jī)的兩個時鐘引腳。 1)內(nèi)時鐘引腳8052單片機(jī)片內(nèi)有振蕩電路,只需在xtal1和xtal2間外接石英晶體和電容組成的并聯(lián)振蕩電路(晶振器),晶體可以在固有頻率1.212mhz的晶振器之間任選晶體,電容可以在2060pf的電容之間任選,通常選擇30pf的瓷片電容

41、。在單片機(jī)控制的數(shù)字顯示溫度計(jì)電路設(shè)計(jì)的這個部分,就是采用內(nèi)時鐘引腳,其中晶振器為6mhz,兩個電容均為30pf。2)外時鐘方式,xtal1接地,xtal2接外部振蕩器。由于xtal2端的電平不是ttl電平,故接一個上拉電阻。外部振蕩器的頻率應(yīng)低于12mhz。b) 制信號引腳,包括rst/vpd、ale/prog非、psen非、ea非vpp。下面分別對其進(jìn)行介紹:1) rst/vpd(9腳):復(fù)位信號備用電源引腳 當(dāng)輸入的復(fù)位信號延續(xù)個機(jī)器周期以上,高電平即為有效,用以完成單片機(jī)的復(fù)位操作。復(fù)位后影響片內(nèi)特殊功能寄存器的狀態(tài),但不影響片內(nèi)ram狀態(tài)。 同一引腳的pd是備用電源輸入端(vpd接5

42、v備用電源)。在vcc斷電時,為保證ram中的信息不丟失,可使此引腳完成掉電保護(hù)功能。 2) ale/prog非(30腳);地址鎖存允許信號編程脈沖輸入端 在系統(tǒng)擴(kuò)展時,ale用于控制把p0口輸出的低8位地址送入鎖存器鎖存起來,以實(shí)現(xiàn)低位地址和數(shù)據(jù)的分時傳送。此外由于ale是以1/6晶振頻率的固定頻率輸出的正脈沖,因此可作為外邊時鐘或外部定時脈沖使用。 對片內(nèi)帶有kbyteeprom的8751編寫固化程序時,prog非作為編程脈沖輸入端。 3) psen非(29引腳):外邊程序存儲器讀選通信號為低電平有效,8051在訪問片外程序存儲器時,此引腳端輸出負(fù)脈沖作為讀片外程序存儲器的選通信號,以實(shí)現(xiàn)

43、外部rom單元的讀操作。要檢查8051上電平后cpu能否正常到程序存儲器中讀取指令碼,可以用示波器觀察引腳psen非有無脈沖輸出,若有說明正常。4) ea非vpp(31腳):內(nèi)部和外部程序存儲器選擇信號 當(dāng)引腳接高電平時,cpu只訪問片內(nèi)4kbyte的eprom/rom,執(zhí)行內(nèi)部程序存儲器中的指令,但在程序計(jì)數(shù)器計(jì)數(shù)超過offfh時(即地址大于4kbyte時),將自動轉(zhuǎn)向執(zhí)行片外大于4kbyte程序存儲器內(nèi)的程序。 若ea非引腳接低電平時,cpu只訪問外部程序存儲器,而不管片內(nèi)是否有程序存儲器。對于8031單片機(jī)(片內(nèi)無rom)需外擴(kuò)eprom,故必須將ea非引腳接地。 在對eprom編寫固化

44、程序時,需對此引腳施加21v的編程電壓。c) i/o(輸入/輸出)接口引腳 1) 并行i/o接口的特點(diǎn) mcs-51有4個8位并行i/o接口p0p3,他們都是雙向端口,可以進(jìn)行輸入或者輸出操作,每個口都有口鎖存器和口驅(qū)動器兩部分組成。此外,它還有一個全雙工串行通信口。這4個端口為mcs-51與外圍器件或外圍設(shè)備進(jìn)行信息(數(shù)據(jù)、地址、控制信號)交換提供了多功能的輸入/輸出通道,也為mcs-51擴(kuò)展外部功能、構(gòu)成應(yīng)用系統(tǒng)提供了必要的條件。它們的特點(diǎn)如下:a、4個并行i/o接口都是雙向的。p0口為漏極開路,p1、p2、p3口均具有內(nèi)部上拉電阻,它們有時被稱為準(zhǔn)雙向口。b、4個并行口的32條i/o接口

45、線都可以獨(dú)立地用于輸入或輸出操作。c、當(dāng)4個并行口的i/o接口線有作輸入操作時,必須對該口的鎖存器進(jìn)行寫1操作,以保證從i/o接口線輸入數(shù)據(jù)的正確性,這也是4個并行接口有時被稱為“準(zhǔn)”雙向的含義。2) i/o接口電路功能匯總 mcs-51單片機(jī)內(nèi)部屬單總線結(jié)構(gòu),因此使系統(tǒng)在結(jié)構(gòu)上增加了靈活性。通過總線,用戶可根據(jù)應(yīng)用需要進(jìn)行多功能的系統(tǒng)擴(kuò)展,構(gòu)成用戶的實(shí)際應(yīng)用系統(tǒng)。mcs-51系列中的8031單片機(jī),因其內(nèi)部在結(jié)構(gòu)上無程序存儲器,所以它的應(yīng)用系統(tǒng)必定為一個擴(kuò)展的系統(tǒng)。因此,mcs-51的4個并行i/o接口中的p0、p1、p2、p3口基本上都具備有這兩項(xiàng)功能:a、p0口:p0口是一個多功能口除可

46、以作為通用的輸入/輸出口外,還具備用于系統(tǒng)擴(kuò)展的第二功能。在mcs-51的進(jìn)行系統(tǒng)擴(kuò)展時,它作為地址/數(shù)據(jù)總線口。通過外接地址鎖存器,mcs-51的內(nèi)部單總線可從p0口被擴(kuò)展成8位的數(shù)據(jù)總線和16位地址總線的低8位。在實(shí)際應(yīng)用中,p0口先送出外部存儲器16位地址中的低8位至地址鎖存器鎖存,然后再由p0口進(jìn)行8位數(shù)據(jù)的輸入或輸出;b、p1口:p1口作為通用i/o接口,它的每一位都可以別編程為通用i/o接口線;c、p2口:p2口也是一個多功能口,與p0口相似,它除可被用作i/o接口外,在進(jìn)行系統(tǒng)擴(kuò)展時,還可以輸16位地址總線中的高8位,和p0口共同構(gòu)成16位的地址總線。當(dāng)然,在p0口和p2口用作地

47、址/數(shù)據(jù)總線時,它們都不能再作為通用i/o接口;d、p3口:p3口也是一個多功能口,除可以作為通用i/o接口外,還具有多種控制功能,為通用i/o接口時和mcs-51其他具有控制功能的輸入/輸出引線在一起,共同形成mcs-51的控制總線。p3口在作為第二功能(控制功能)使用時,它的每一位功能定義如表3.8所示。表3.8 p3口各引腳定義口線第二功能信號名稱p3.0rxd串行數(shù)據(jù)接收p3.1txd串行數(shù)據(jù)發(fā)送p3.2int0外部數(shù)據(jù)0申請p3.3int1外部數(shù)據(jù)1申請p3.4t0定時器/計(jì)數(shù)器0輸入p3.5t1定時器/計(jì)數(shù)器1輸入p3.6wr外部ram寫選通p3.7rd外部ram讀選通一個信號引腳

48、,既是第一功能又是第二功能,在使用時也不會引起混亂和造成錯誤,理由如下:a、對于各種型號的芯片,其功能的第一功能信號是相同的,所不同的只在引腳的的第二功能信號上;b、對于9、30和31各個引腳,由于第一功能信號與第二功能信號是單片機(jī)在不同工作方式下的信號,因此不會發(fā)生使用上的矛盾;c、p3口線的情況卻有所不同,它的第二功能信號都是單片機(jī)的重要控制信號。因此在實(shí)際使用時,總是先按需要優(yōu)先選用它的二功能,剩下不用的才作為口線使用。d) mcs-51單片機(jī)的復(fù)位方式和復(fù)位電路1) 復(fù)位操作:復(fù)位是單片機(jī)的初始化操作,其主要功能是把pc初始化為0000h,使單片機(jī)從0000h單元開始執(zhí)行程序。除了進(jìn)入

49、系統(tǒng)的正常初始化之外,當(dāng)由于程序運(yùn)行出錯或者操作錯誤使系統(tǒng)處于死鎖狀態(tài)時,為擺脫困境,也需按復(fù)位鍵以重新啟動。a、復(fù)位操作還對單片機(jī)的個別引腳信號有影響,例如把a(bǔ)le和psen非信號變?yōu)闊o效狀態(tài),即ale=0,psen=1;b、復(fù)位信號及其產(chǎn)生 rst引腳是復(fù)位信號的輸入端,復(fù)位信號是高電平有效,其有效時間持續(xù)24個振蕩脈沖周期(即2個機(jī)器周期)以上,若使用頻率為6mhz的晶振,則復(fù)位信號持續(xù)時間應(yīng)超過4us才能完成復(fù)位操作。整個復(fù)位電路包括芯片內(nèi)外兩部分。外部電路產(chǎn)生的復(fù)位信號(rst)送施密特觸發(fā)器,再由片內(nèi)復(fù)位電路在每個機(jī)器周期的s5時刻對施密特觸發(fā)器的輸出進(jìn)行采樣。然后才得到內(nèi)部復(fù)位操

50、作所需要的信號。3.3 顯示溫度值的led顯示器接口簡介 led顯示器是單片機(jī)應(yīng)用系統(tǒng)中常用的廉價輸出設(shè)備。它是由若干個發(fā)光二極管組成的,當(dāng)發(fā)光二極管導(dǎo)通時,相應(yīng)一個筆畫劃發(fā)光,控制某段發(fā)光二極管導(dǎo)通,就能顯示出某個數(shù)碼或字符。在靜態(tài)顯示系統(tǒng)中,每位顯示器都應(yīng)有各自的鎖存器、譯碼器(若采用軟件譯碼,譯碼器可省去)與驅(qū)動器,用以鎖存各自待顯示數(shù)字的bcd碼或字段碼。因此,靜態(tài)顯示系統(tǒng)在每一次顯示輸出后能夠保持顯示不變,僅在待顯示數(shù)字需要改變時,才更新其數(shù)字顯示鎖存器中的內(nèi)容。這種顯示占用cpu的時間少,顯示穩(wěn)定可靠。缺點(diǎn)是,當(dāng)顯示的位數(shù)較多時,占用的i/o口較多。 在動態(tài)顯示的系統(tǒng)中,cpu需定

51、時地對每位led顯示器進(jìn)行掃描,每位led顯示器分時輪流工作,每次只能使一位led顯示,但由于人的視覺暫留現(xiàn)象,仍感覺所有的led顯示器都在同時顯示。這種顯示的優(yōu)點(diǎn)是使用硬件少,占用i/o口少。缺點(diǎn)是占用 cpu時間長,只要不執(zhí)行顯示程序,就立刻停止顯示。但隨著大規(guī)模集成電路的發(fā)展,目前已有能自動對顯示器進(jìn)行掃描的專用顯示芯片,使電路既簡單又占用cpu時間。在我們所設(shè)計(jì)的溫度計(jì)中數(shù)碼管顯示就是利用的動態(tài)顯示。4 智能溫度控制系統(tǒng)軟件設(shè)計(jì)課題的程序用keil c51語言編寫,由于使用了c語言,寄存器的分配、不同的存儲器的尋址及數(shù)據(jù)類型等細(xì)節(jié)可由編譯器管理,尤其是數(shù)學(xué)運(yùn)算不必人工干預(yù),大大縮短了變

52、成與調(diào)試的時間,提高了效率,降低了編成難度,使編程更加簡便。系統(tǒng)的控制軟件可分為主程序,ds18b20通信程序,按鍵程序等模塊。主程序可分為系統(tǒng)的初始化,自檢子程序,溫度顯示子程序三部分。溫度顯示子程序完成溫度采集,溫度值的bcd轉(zhuǎn)換,調(diào)顯示子程序,超溫報(bào)警和控制。ds18b20通信程序主要由ds18b20初始化程序,ds18b20讀字節(jié)程序,ds18b20寫字節(jié)程序組成。按鍵程序主要完成溫度上、下限的設(shè)置和顯示,在單片機(jī)控制下每2小時發(fā)送0.5秒的啟動電機(jī)的正脈沖。本系統(tǒng)有五個按鍵,依次是:復(fù)位鍵、k1鍵、k2鍵、k3鍵、k4鍵。按鍵程序主要包括int1中斷子程序、定時器t0中斷子程序、in

53、t1中斷子程序、定時器t1中斷子程序、定時器t2子程序。其中,復(fù)位鍵部分放入主程序中,作為主程序的一部分。k4鍵功能:每2小時發(fā)送0.5秒的啟動電機(jī)的正脈沖。下面是主程序和各個子程序的流程圖。41 主程序流程圖系統(tǒng)完成的是對周圍溫度進(jìn)行檢測,采用ds18b20傳感器。當(dāng)溫度超過設(shè)定溫度范圍時,進(jìn)行報(bào)警。引入單片機(jī)控制是實(shí)現(xiàn)系統(tǒng)智能化很重要的一個部分,采用單片機(jī)可以實(shí)現(xiàn)程序控制和監(jiān)視的功能。系統(tǒng)采用89s52和ds18b20的連接進(jìn)行實(shí)時控制和數(shù)據(jù)處理。軟件編程負(fù)責(zé)設(shè)置溫度上、下限,然后讓系統(tǒng)根據(jù)設(shè)置的程序完成控制功能。主程序流程圖如圖4.1所示。ny響應(yīng)中斷有中斷響應(yīng)?顯示當(dāng)前溫度數(shù)碼管指示燈自檢系統(tǒng)初始化開 始中斷結(jié)束報(bào) 警溫度超限?啟動加熱源或通風(fēng)風(fēng)扇yn 圖4.1 主程序流程圖 4.2.1 ds18b20初始化子程序流程圖ds18b20在初始化序列期間,總線控制器拉低總線并保持480us以發(fā)出(tx)一個復(fù)位脈沖,然后釋放總線,進(jìn)入接收狀態(tài)(rx)。單總線由5k上拉電阻拉到高電平。當(dāng)ds18b20探測到i/o引腳上的上升沿后,等待1560us,然后發(fā)出一個由60240us低電平信號構(gòu)成的存在脈沖。完成對ds18b20的初始化操作,在每次測溫前必須對其進(jìn)行初始化,

溫馨提示

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

評論

0/150

提交評論