




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1緒論在工業(yè)生產(chǎn)中,電流、電壓、溫度、壓力、流量、流速和開(kāi)關(guān)量都是常用的主要被控參數(shù)。其中,溫度控制也越來(lái)越重要。在工業(yè)生產(chǎn)的很多領(lǐng)域中,人們都需要對(duì)各類(lèi)加熱爐、熱處理爐、反響爐和鍋爐中的溫度進(jìn)行檢測(cè)和控制。采用單片機(jī)對(duì)溫度進(jìn)行控制不僅具有控制方便、簡(jiǎn)單和靈活性大等優(yōu)點(diǎn),而且可以大幅度提高被控溫度的技術(shù)指標(biāo),從而能夠大大的提高產(chǎn)品的質(zhì)量和數(shù)量。因此,單片機(jī)對(duì)溫度的控制問(wèn)題是一個(gè)工業(yè)生產(chǎn)中經(jīng)常會(huì)遇到的控制問(wèn)題。1.1溫度控制器的開(kāi)展?fàn)顩r溫度是表征物體冷熱程度的物理量,是工業(yè)生產(chǎn)和日常生活中經(jīng)常測(cè)量的物理量,也是人類(lèi)研究最早測(cè)量方法最多的物理量之一。因而溫度檢測(cè)儀應(yīng)用領(lǐng)域之廣,使用數(shù)量之多,一直高居各類(lèi)測(cè)量?jī)x之首。近百年來(lái),溫度傳感器的開(kāi)展大致經(jīng)歷了以下三個(gè)階段:傳統(tǒng)的分立式溫度傳感器〔含敏感元件〕;模擬集成溫度傳感器/控制器;智能溫度傳感器〔即數(shù)字溫度傳感器〕。a)分立式溫度傳感器傳統(tǒng)的熱電偶、熱電阻、熱敏電阻及半導(dǎo)體溫度傳感器,均屬于分立式溫度傳感器,傳感器本身就是一個(gè)完整的、獨(dú)立的感溫元件。此類(lèi)傳感器通常要配溫度變送器,以獲得標(biāo)準(zhǔn)的模擬量〔電壓或電流〕輸出信號(hào)。b)模擬集成溫度傳感器集成傳感器是采用硅半導(dǎo)體集成工藝而制成的,因此亦稱硅傳感器或單片集成傳感器??赏瓿蓽囟葴y(cè)量及模擬信號(hào)輸出功能的專(zhuān)用IC,它屬于一種簡(jiǎn)單的集成溫度傳感器,適合遠(yuǎn)距離測(cè)量、控溫,不需要進(jìn)行非線性校準(zhǔn),典型產(chǎn)品有AD590、AD592等。c)模擬集成溫度控制器模擬集成溫度控制器主要包括溫控開(kāi)關(guān)、可編程溫度控制器,典型產(chǎn)品有LM56、AD22105和MAX6509。d)智能溫度傳感器智能溫度傳感器〔亦稱數(shù)字溫度傳感器〕是在20世紀(jì)90年代中期問(wèn)世的。智能溫度傳感器是微電子技術(shù)、計(jì)算機(jī)技術(shù)和自動(dòng)測(cè)試技術(shù)的結(jié)晶,它也是集成溫度傳感器領(lǐng)域中最具活力和開(kāi)展前途的一種新產(chǎn)品。目前,國(guó)際上許多著名的集成電路生產(chǎn)廠已經(jīng)開(kāi)發(fā)出上百種智能溫度傳感器產(chǎn)品。1.2課題研究必要性隨著電子技術(shù)和微型計(jì)算機(jī)的迅速開(kāi)展,微機(jī)測(cè)量和控制技術(shù)得到了迅速的開(kāi)展和廣泛的應(yīng)用。單片機(jī)具有處理能強(qiáng)、運(yùn)行速度快、功耗低等優(yōu)點(diǎn),應(yīng)用在溫度測(cè)量與控制方面,控制簡(jiǎn)單方便,測(cè)量范圍廣,精度較高。溫度是工業(yè)生產(chǎn)中常見(jiàn)并且十分重要的參數(shù)之一,特別是在冶金、石油、食品、印染等工廠中。由于不同的工藝所需的溫度變化曲線各不相同,而現(xiàn)有的溫度控制儀大多只能進(jìn)行恒溫控制。因此許多生產(chǎn)過(guò)程中加熱、保溫、降溫以及自然降溫等操作都是由人工操作的,這就不可防止地產(chǎn)生各種誤差,進(jìn)而影響產(chǎn)品質(zhì)量,個(gè)別采用的溫度自動(dòng)控制系統(tǒng)由于造價(jià)較高、操作復(fù)雜等原因又限制了在中小企業(yè)的應(yīng)用,因此研究和開(kāi)發(fā)一種實(shí)用的溫度控制系統(tǒng)成為當(dāng)務(wù)之急。在工業(yè)生產(chǎn)過(guò)程中需要實(shí)時(shí)測(cè)量控制溫度,尤其是在高危生產(chǎn)行業(yè),如花炮生產(chǎn),煤礦行業(yè)等。但依靠人工檢測(cè)控制既浪費(fèi)時(shí)間,物力,人力,又有一定的危險(xiǎn)性,且數(shù)據(jù)也不準(zhǔn)確,因此研究自動(dòng)的溫度測(cè)量控制方法和裝置具有重要的意義。1.3現(xiàn)代控制系統(tǒng)相對(duì)傳統(tǒng)控制系統(tǒng)的優(yōu)勢(shì)傳統(tǒng)的控制系統(tǒng)主要由測(cè)量電路和控制電路組成,所具備的功能較少,也比擬弱,而且結(jié)構(gòu)很復(fù)雜。計(jì)算機(jī)技術(shù)的迅速開(kāi)展,使得傳統(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)不能解決的問(wèn)題,而且還能簡(jiǎn)化電路、增加或增強(qiáng)功能、提高控制精度和可靠性,顯著增強(qiáng)測(cè)控系統(tǒng)的自動(dòng)化、智能化程度,而且可以縮短系統(tǒng)研制周期、降低本錢(qián)、易于升級(jí)和維護(hù)。因此,現(xiàn)代控制系統(tǒng)設(shè)計(jì),特別是高精度、高性能的控制系統(tǒng),目前已很少不采用計(jì)算機(jī)技術(shù)的了。計(jì)算機(jī)技術(shù)的引入,可以為控制系統(tǒng)帶來(lái)以下一些新特點(diǎn)和新功能:a)自動(dòng)調(diào)零功能在每次采樣前對(duì)傳感器的輸出值自動(dòng)清零,從而大大降低因控制系統(tǒng)漂移變化造成的誤差。b)數(shù)字濾波功能利用已算機(jī)軟件對(duì)測(cè)量數(shù)據(jù)進(jìn)行處理,可以抑制各種干擾和脈沖信號(hào)。c)數(shù)據(jù)處理功能利用計(jì)算機(jī)技術(shù)可以實(shí)現(xiàn)傳統(tǒng)儀器無(wú)法實(shí)現(xiàn)的各種復(fù)雜的處理和運(yùn)算功能。d)復(fù)雜控制規(guī)律利用計(jì)算機(jī)技術(shù)不僅可以實(shí)現(xiàn)經(jīng)典的PID控制,還可以實(shí)現(xiàn)各種復(fù)雜的控制規(guī)律,例如,自適應(yīng)控制、模糊控制等。e)自我診斷功能采用計(jì)算機(jī)技術(shù)后,可對(duì)控制系統(tǒng)進(jìn)行監(jiān)測(cè),一旦發(fā)現(xiàn)故障那么立即進(jìn)行報(bào)警,并可顯示故障部位或可能的故障原因,對(duì)排除故障的方法進(jìn)行提示。微機(jī)化的控制系統(tǒng)是以微機(jī)為核心、測(cè)量控制一體化的系統(tǒng),這種系統(tǒng)對(duì)被控對(duì)象的控制是依據(jù)對(duì)被控對(duì)象的測(cè)量結(jié)果斷定的。1.4課題設(shè)計(jì)特點(diǎn)和應(yīng)用領(lǐng)域課題采用的是單總線數(shù)字溫度傳感器DS18B20,可直接將溫度轉(zhuǎn)換值以16位數(shù)字碼的方式串行輸出:將溫度轉(zhuǎn)化為數(shù)字編碼只需1秒左右。而且它具有獨(dú)特單線接口方式,即與微處理器接口時(shí)僅需占用1個(gè)I/O口;支持多節(jié)點(diǎn);測(cè)溫時(shí)無(wú)需任何外部元件,可以通過(guò)數(shù)據(jù)線直接供電,具有超低功耗工作方式。測(cè)溫范圍為—55℃~+125℃,測(cè)溫度精度可到達(dá)0.0625系統(tǒng)可以應(yīng)用于溫度要求在—55℃~+125.9℃之間的任何領(lǐng)域。比方:鐵路,糧庫(kù),水果,蔬菜存儲(chǔ)倉(cāng)庫(kù)的溫度控制,以及多路溫度測(cè)控儀,各種養(yǎng)殖場(chǎng)的溫度控制監(jiān)測(cè)。由于本系統(tǒng)的測(cè)溫精度可達(dá)1.5智能溫度控制器的課題主要內(nèi)容課題的任務(wù)是應(yīng)用單片機(jī)及DS18B20單總線器件設(shè)計(jì)一套溫度檢測(cè)系統(tǒng),實(shí)現(xiàn)對(duì)溫度的測(cè)量及顯示,并通過(guò)按鍵人為設(shè)定溫度上下限!而且在溫度超上限價(jià)或下限量有控制功能,系統(tǒng)以高性能/價(jià)格比的89S52為核心,完成對(duì)數(shù)據(jù)的分析、處理、顯示、溫度上下限設(shè)置、超限自動(dòng)控制,采用單線數(shù)字溫度傳感器DS18B20來(lái)完成對(duì)溫度的采樣和轉(zhuǎn)換。由于課題是完成對(duì)溫度的實(shí)時(shí)監(jiān)測(cè),因而系統(tǒng)的核心局部就是如何實(shí)現(xiàn)溫度采集。系統(tǒng)采用的是美國(guó)DALLAS公司繼DS1820之后推出的一種改良型智能溫度傳感器DS18B20來(lái)完成這一任務(wù)的。DS18B20與傳統(tǒng)的熱敏電阻相比,它能夠直接讀出被測(cè)溫度并且可根據(jù)實(shí)際要去通過(guò)簡(jiǎn)單的編程實(shí)現(xiàn)9-12位的數(shù)字值讀數(shù)方式,可分別在93.75ms和750ms內(nèi)完成9位和12位的數(shù)字量,并且從DS18B20讀出的信息或?qū)懭隓S18B20的信息僅從一根口線,溫度變換功率來(lái)源于數(shù)據(jù)總線,總線本身可以為所接的DS180B20供電,而無(wú)需外電源。DS18B20需在嚴(yán)格的時(shí)序控制下才能進(jìn)行正常操作。對(duì)DS18B20的操作包括初始化操作、讀/寫(xiě)時(shí)間片。總線上的所有操作均從初始化開(kāi)始,初始化或?qū)AM、ROM操作。主CPU通過(guò)“時(shí)間片〞來(lái)寫(xiě)入或讀出DS18B20中的數(shù)據(jù)。概括說(shuō),主CPU經(jīng)過(guò)單線接口訪問(wèn)DS18B20的工作流程為:對(duì)DS18B20進(jìn)行初始化→ROM操作命令→存儲(chǔ)器〔包括RAM和EERAM〕操作命令→數(shù)據(jù)處理。主CPU對(duì)ROM操作完畢,即發(fā)出控制操作命令,使DS18B20完成溫度測(cè)量并將測(cè)量結(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鎖存器以及假設(shè)干電容、7個(gè)發(fā)光二極管、4只數(shù)碼管、5個(gè)按鍵、11.0592MHZ晶振組成?!步Y(jié)構(gòu)如圖2.1〕溫度傳感器溫度傳感器89S52顯示器與接口控制電路量限設(shè)定與控制鍵盤(pán)與接口控制電路圖2.1系統(tǒng)設(shè)計(jì)結(jié)構(gòu)圖以下對(duì)各組成部件功能進(jìn)行簡(jiǎn)單介紹:89S52單片機(jī)用于溫度的采集,數(shù)據(jù)處理,存儲(chǔ)溫度上下限和超溫控制。DS18B20是單總線數(shù)字溫度傳感器,輸出方式為串行單線輸出,主要作用是把溫度值以數(shù)字形式輸出和存儲(chǔ)轉(zhuǎn)換精度控制字。第三章將作出詳細(xì)介紹,此處不做過(guò)多贅述。74LS02或非門(mén),用于選擇鎖存器〔與寫(xiě)信號(hào)或非〕。74LS14施密特觸發(fā)器,用于鍵盤(pán)消抖。74LS273鎖存器。用鎖存顯示位、段碼以及指示信號(hào)。按鍵用于輸入和查看溫度上下限,使單片機(jī)復(fù)位,每隔2小時(shí)發(fā)送0.5秒的啟動(dòng)電機(jī)的正脈沖。晶振是為單片機(jī)提供工作脈沖。數(shù)碼管用于顯示溫度值。發(fā)光二極管用于上下限溢出報(bào)警,溫度超限報(bào)警及控制,設(shè)置上/下限指示,正常工作指示。各功能對(duì)應(yīng)的指示燈設(shè)置如表2.1:表2.1指示燈設(shè)置功能第幾燈點(diǎn)亮顯示溫度第1燈0x02顯示下限溫度1、20x03設(shè)下限溫度標(biāo)志位2、70x41設(shè)下限溫度十位2、60x21設(shè)下限溫度個(gè)位2、50x11設(shè)下限溫度十分位2、40x09顯示上限溫度1、30x06設(shè)上限溫度標(biāo)志位3、70x44設(shè)上限溫度十位3、60x24設(shè)上限溫度個(gè)位3、50x14設(shè)上限溫度十分位3、40x0C低于下限溫度1、2、4、5、6、70x7B高于上限溫度1、3、4、5、6、70x7E2.2系統(tǒng)的軟件構(gòu)成課題原方案用匯編語(yǔ)言完成。后來(lái)決定使用C語(yǔ)音編寫(xiě)程序,系統(tǒng)的軟件由溫度數(shù)據(jù)采集、數(shù)據(jù)處理、溫度顯示及按鍵處理等局部組成。89S52完成的功能主要是數(shù)據(jù)處理、數(shù)據(jù)分析、控制計(jì)算、進(jìn)制轉(zhuǎn)換、數(shù)據(jù)顯示、按鍵處理以及電機(jī)控制等。溫度采樣和轉(zhuǎn)換局部由DS18B20來(lái)完成。系統(tǒng)的工作原理首先,由溫度傳感器DS18B20對(duì)溫度進(jìn)行采樣和轉(zhuǎn)換,將測(cè)量結(jié)果送給單片機(jī),單片機(jī)將輸入的溫度值進(jìn)行數(shù)據(jù)處理,并將溫度值與設(shè)定的溫度值上下限進(jìn)行比擬。根據(jù)比擬結(jié)果進(jìn)行相應(yīng)的處理。假設(shè)溫度超限那么報(bào)警指示燈亮,以便進(jìn)行及時(shí)處理。系統(tǒng)原理框圖如圖2.2所示:DS18B20DS18B2089S52顯示器指示燈段鎖存位鎖存鎖存器圖2.2系統(tǒng)原理圖3智能溫度控制系統(tǒng)硬件設(shè)計(jì)本章是論文核心局部,主要介紹基于單片機(jī)的溫度控制系統(tǒng)硬件總體設(shè)計(jì),按照設(shè)計(jì)方案,整個(gè)溫控系統(tǒng)硬件主要包括以下單元:按鍵輸入,溫度采集、處理,溫度超限報(bào)警,定時(shí)發(fā)出脈沖等。溫度控制的核心為溫度的采集和處理,系統(tǒng)選用特別適用于編程及數(shù)據(jù)處理的MS-51單片機(jī)89S52,并通過(guò)89S52實(shí)現(xiàn)對(duì)其他各組成局部的編程控制。下面是核心原件的介紹:3.1數(shù)字溫度傳感器DS18B20詳述DS18B20簡(jiǎn)介DS18B20是美國(guó)DALLAS半導(dǎo)體公司生產(chǎn)的可組網(wǎng)數(shù)字式溫度傳感器,在其內(nèi)部使用了在板〔ON-B0ARD〕專(zhuān)利技術(shù)。全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)。與其它溫度傳感器相比,DS18B20具有以下特性:a)獨(dú)特的單線接口方式:DS18B20與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊。
b)在使用中不需要任何外圍元件。c)可用數(shù)據(jù)線供電,電壓范圍:+3.0V~+5.5V。
d)測(cè)溫范圍:-55℃~+125℃。固有測(cè)溫分辨率為0.1℃。
e)通過(guò)編程可實(shí)現(xiàn)9~12位的數(shù)字讀數(shù)方式。
f〕用戶可自設(shè)定非易失性的報(bào)警上下限值。
g外形如圖3.1所示。其體積只有DS1820的一半,引腳定義相同。a)DQ:數(shù)據(jù)輸入輸出引腳b)VDD:可接電源,也可接地。因?yàn)槊恐籇S18B20都可以設(shè)置成兩種供電方式。采用數(shù)據(jù)總線方式時(shí)VDD接地,可以節(jié)省一根傳輸線,但完成溫度測(cè)量的時(shí)間較長(zhǎng);采用外部供電方式那么接5V,多用一根導(dǎo)線,但測(cè)量速度較快。圖3.1DS18B20外觀DS18B20的內(nèi)部結(jié)構(gòu)它主要由4局部組成:64位ROM、溫度傳感器、非易失性的溫度報(bào)警觸發(fā)器TH和TL、高速暫存器。64位ROM用于存儲(chǔ)DS18B20序列號(hào),其首字節(jié)固定為28H,表示產(chǎn)品類(lèi)型碼,后6個(gè)字節(jié)是每個(gè)器件的編碼,最后1個(gè)字節(jié)是CRC校驗(yàn)碼。溫度報(bào)警觸發(fā)器TH和TL存儲(chǔ)用戶通過(guò)軟件寫(xiě)入的報(bào)警上下極限。高速暫存器由9個(gè)字節(jié)組成,其中有2個(gè)字節(jié)RAM單元用來(lái)存放溫度值,前1個(gè)字節(jié)為溫度值的補(bǔ)碼低8位,后1個(gè)字節(jié)為字符號(hào)位和溫度值的補(bǔ)碼高3位。其內(nèi)部結(jié)構(gòu)框圖如圖3.2所示:電電源檢測(cè)64位ROM和單線接口8位CRC生成器存儲(chǔ)器和控制器配置存放器高溫觸發(fā)器TH高速緩存存儲(chǔ)器溫度靈敏元件低溫觸發(fā)器TL圖3.2DS18B20內(nèi)部結(jié)構(gòu)框圖DS18B20的測(cè)溫原理DS18B20測(cè)量溫度采用了特有的溫度測(cè)量技術(shù),其溫度測(cè)量電路如圖3.3所示。預(yù)置預(yù)置斜率累加器計(jì)數(shù)器1計(jì)數(shù)器2=0=0低溫度系數(shù)振蕩高溫度系數(shù)振蕩加1停止比擬預(yù)置溫度存放器設(shè)備/管理LSB圖3.3DS18B20測(cè)溫結(jié)構(gòu)圖圖3.3中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)器1,高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產(chǎn)生的信號(hào)作為減法計(jì)數(shù)器2的脈沖輸入,圖中還隱含著計(jì)數(shù)門(mén),當(dāng)計(jì)數(shù)門(mén)翻開(kāi)時(shí),DS18B20就對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖后進(jìn)行計(jì)數(shù),進(jìn)而完成溫度測(cè)量。計(jì)數(shù)門(mén)的開(kāi)啟時(shí)間由高溫度系數(shù)振蕩器來(lái)決定,每次測(cè)量前,首先將-55℃所對(duì)應(yīng)的基數(shù)分別置入減法計(jì)數(shù)器1和溫度存放器中,減法計(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的預(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è)溫度。圖3.3DS18B20的轉(zhuǎn)換精度控制字及分辨率設(shè)置設(shè)置轉(zhuǎn)換精度控制字格式如表3.1所示表3.1轉(zhuǎn)換精度控制字格式MSBLSB0R1R011111分辨率設(shè)置如表3.2所示:表3.2分辨率設(shè)置R1R0分辨率〔位〕最大轉(zhuǎn)換時(shí)間〔ms〕00993.750110187.510113751112750由表可見(jiàn),設(shè)定的分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時(shí)間越長(zhǎng)。因此,在實(shí)際應(yīng)用中需要在分辨率與轉(zhuǎn)換時(shí)間二者之間權(quán)衡考慮。在芯片出廠時(shí)R1和R0被配置為“1”DS18B20的溫度數(shù)字關(guān)系用12位精度測(cè)出的溫度值用16位二進(jìn)制補(bǔ)碼形式表示,如表3.3所示:表3.3DS18B20存儲(chǔ)器映像圖232221202-12-22-32-4MSBLSBSSSSS262524MSBLSB圖中S為符號(hào)位,S=1,溫度為負(fù)值;S=0,溫度為正值。DS18B20用12位精度測(cè)出的數(shù)字量〔用16位二進(jìn)制補(bǔ)碼形式表示〕如表3.4所示:表3.4局部溫度與對(duì)應(yīng)的數(shù)字溫度輸出之間的對(duì)應(yīng)關(guān)系溫度〔℃〕數(shù)字輸出〔二進(jìn)制〕數(shù)字輸出〔十六進(jìn)制〕+125000001111101000007D0+8500000101010100000550+25.062500000001100100010191+10.125000000001010001000A2+0.500000000000010000008000000000000000000000-0.51111111111111000FFF8-10.1251111111101011110FF5E-25.06251111111001101111FE6F-551111110010010000FC90DS18B20的內(nèi)存結(jié)構(gòu)圖DS18B20的存儲(chǔ)器包括SRAM存儲(chǔ)器和非易失的EEPROM存儲(chǔ)器,EEPROM用于存放觸發(fā)報(bào)警上限值存儲(chǔ)器〔TH〕和觸發(fā)報(bào)警下限存儲(chǔ)器〔TL〕。當(dāng)DS18B20在使用過(guò)程中并未使用報(bào)警功能時(shí),TH和TL可作為普通用途的存儲(chǔ)器單元使用。DS18B20的存儲(chǔ)組織結(jié)構(gòu)如表3.5所示。表3.5DS18B20內(nèi)部存儲(chǔ)器組織結(jié)構(gòu)圖便箋存儲(chǔ)器〔期間上電默認(rèn)值〕EEPROM存儲(chǔ)器0溫度數(shù)字量低位字節(jié)〔50H〕無(wú)1溫度數(shù)字量高位字節(jié)〔05H〕2TH/用戶存放器字節(jié)1TH/用戶存放器字節(jié)13TL/用戶存放器字節(jié)2TL/用戶存放器字節(jié)24配置存放器配置存放器5保存〔FFH〕無(wú)6保存〔0CH〕7保存〔10H〕8CRCDS18B20的操作命令DS18B20是一種可編程的數(shù)字溫度傳感器,它的工作是靠計(jì)算機(jī)給它發(fā)控制命令進(jìn)行的,DS18B20和計(jì)算機(jī)在工作過(guò)程中的協(xié)議主要有:初始化、ROM存儲(chǔ)器操作命令、RAM存儲(chǔ)器操作命令。分別說(shuō)明如下:a)初始化單總線上的所有處理均從初始化開(kāi)始。初始化過(guò)程是主機(jī)通過(guò)向作為從機(jī)DS18B20芯片發(fā)一個(gè)有時(shí)間寬度要求的初始化脈沖實(shí)現(xiàn)的。初始化完成后,才可進(jìn)行讀寫(xiě)操作。b)對(duì)ROM的5種操作命令一旦主CPU檢測(cè)到附屬器件的存在,就可以發(fā)出ROM操作命令。所有ROM操作命令均為8位〔二進(jìn)制〕字長(zhǎng)。主CPU可以發(fā)出ROM操作命令有以下五種:1)讀ROM命令〔READROM,約定代碼33H〕。該命令允許主CPU讀取DS18B20中的8位產(chǎn)品系列編碼,48位序列號(hào)以及8位的CRC。該命令適用于總線上接一片DS18B20的情況。當(dāng)總線上掛有多片DS18B20時(shí)禁止使用該命令,否那么多片DS18B20同時(shí)發(fā)送數(shù)據(jù),必然會(huì)導(dǎo)致互相沖突。2)符合ROM命令〔MATCHROM,約定代碼55H〕。主CPU在發(fā)出“符合〞ROM命令后,接著發(fā)出64位的ROM數(shù)據(jù)序列,從而使主CPU實(shí)現(xiàn)對(duì)單線總線上特定DS18B20的尋址。只有與ROM序列嚴(yán)格相符的DS18B20,才能對(duì)后續(xù)的存儲(chǔ)器操作命令作出響應(yīng)。所有與64位ROM序列不相符的DS18B20將等待復(fù)位脈沖。該命令對(duì)于總線上掛有單個(gè)、或多個(gè)器件的情況均適用。3)搜索ROM命令〔SEARCHROM,約定代碼F0H〕。搜索ROM命令允許主CPU使用一種“消除法〞〔ELMINATION〕來(lái)識(shí)別總線上所有DS18B20的64位ROM編碼,即完成整個(gè)系統(tǒng)的初始化工作。為以后對(duì)各個(gè)單線器件作好準(zhǔn)備。該局部也是對(duì)DS18B20芯片進(jìn)行軟件編程的重點(diǎn)和難點(diǎn)。4)跳過(guò)ROM命令〔SKIPROM,約定代碼為CCH〕。在單線總線系統(tǒng)中,該命令使主CPU不必提供64位ROM編碼就能訪問(wèn)各片DS18B20。該命令主要用于向所有的DS18B20同時(shí)發(fā)出溫度轉(zhuǎn)換命令,從而大大節(jié)省訪問(wèn)各個(gè)器件的時(shí)間。但有一點(diǎn)必須注意,主CPU如果在發(fā)出SKIPROM命令之后,又發(fā)出了讀存儲(chǔ)器命令,那么由于多片DS18B20同時(shí)向總線上提供數(shù)據(jù)且在漏極開(kāi)路狀態(tài)下產(chǎn)生“線與〞的結(jié)果,此時(shí)讀出的數(shù)據(jù)已經(jīng)沒(méi)有實(shí)際意義了。5)報(bào)警搜索命令〔ALARAMSEARCH,有約定代碼ECH〕。該命令的流程與搜索ROM命令的流程相同。僅在最后一次溫度測(cè)量出現(xiàn)報(bào)警的情況下。DS18B20才對(duì)該命令做出響應(yīng)。報(bào)警的條件定義為溫度超過(guò)上限〔T>TH〕,或者低于下限〔T<TL〕。上電時(shí),DS18B20預(yù)置報(bào)警條件為設(shè)定狀態(tài),直到首次溫度測(cè)量結(jié)果既不超過(guò)上限TH,也不低于TL時(shí),報(bào)警信號(hào)才被解除。c)存儲(chǔ)器操作命令存儲(chǔ)器操作命令共有6條,具體如下:1)溫度轉(zhuǎn)換命令〔CONVERTT〕{44H}。令DS18B20進(jìn)行溫度轉(zhuǎn)換。如果住CPU在該命令之后為讀時(shí)序,如果DS18B20正忙于進(jìn)行溫度轉(zhuǎn)換,即讀得“0”;當(dāng)溫度轉(zhuǎn)換完成時(shí),DS18B20那么返回“12)讀暫存存儲(chǔ)器〔READSCRATCHPAD〕{BEH}。該命令為讀暫存存儲(chǔ)器9個(gè)字節(jié)的內(nèi)容。從字節(jié)0開(kāi)始讀,直至讀到字節(jié)8。主CPU可以在讀暫存存儲(chǔ)器期間發(fā)出一個(gè)復(fù)位脈沖來(lái)終止讀操作。3)寫(xiě)暫存存儲(chǔ)器〔WRITESCRATCHPAD〕{4EH}。主CPU送給DS18B20的2個(gè)字節(jié)數(shù)據(jù)就分別寫(xiě)入觸發(fā)存放器TH和觸發(fā)存放器TL中,順序是先寫(xiě)TH,到寫(xiě)TL。主CPU也可以在寫(xiě)暫存存儲(chǔ)器期間發(fā)出一個(gè)復(fù)位脈沖來(lái)終止寫(xiě)操作。4)復(fù)制暫存存儲(chǔ)器{COPYSCRATCHPAD}{48H}。該命令把觸發(fā)存放器中的TH、TL字節(jié)分別復(fù)制到EERAM的TH、TL的字節(jié)上。假設(shè)主CPU發(fā)出命令后又進(jìn)行讀操作,只要DS18B20正忙于復(fù)制,主CPU就讀“0”;當(dāng)復(fù)制工作完成后,DS18B20又返回“15)重新調(diào)出EERAM〔RECALLEERAM〕{B8H}。該命令是把存儲(chǔ)器在E2RAM溫度觸發(fā)器TH、TL內(nèi)的數(shù)據(jù)重新調(diào)入暫存器的TH、TL字節(jié)。每次DS18B20上電時(shí)也自動(dòng)進(jìn)行這種操作,因此,只要器件接通電源,暫存存儲(chǔ)器的TH、TL中已經(jīng)有效的數(shù)據(jù)供使用。假設(shè)主CPU在發(fā)出該命令之后又進(jìn)行讀操作,只要DS18B20正忙于進(jìn)行調(diào)出,主CPU就讀得“0”〔表示“忙碌〞〕;完成調(diào)出操作后DS18B20既返回“1”〔表示6)讀電源〔READPOWERSUPPLY〕{B4H}。此項(xiàng)命令發(fā)送給DS18B20之后,對(duì)主CPU發(fā)出的每條讀命令,DS18B20都向主CPU提供電源方式信號(hào)“0”〔表示由寄生電源供電〕或者“1DS18B20的工作時(shí)序主機(jī)使用時(shí)間隙來(lái)讀寫(xiě)DS18B20的數(shù)據(jù)位和寫(xiě)命令字的位。a)初始化主機(jī)總線T0時(shí)刻發(fā)送復(fù)位脈沖〔最短為480us的低電平信號(hào)〕,接著在T1時(shí)刻釋放總線并進(jìn)入接受狀態(tài),DS18B20再檢驗(yàn)到總線的上升沿之后,等待15us~60us,接著在T2時(shí)刻發(fā)出存在脈沖〔60us~240us〕,如圖3.4所示。T0T0t4480-960us15-60us60-240us480usT2T1T3T2T1T3圖3.4DS18B20初始化時(shí)序圖b)寫(xiě)時(shí)間隙當(dāng)主機(jī)總線在T0時(shí)刻從高拉至低電平時(shí),就產(chǎn)生寫(xiě)時(shí)間隙,如圖3-5〔a,b〕,從T0時(shí)刻開(kāi)始15us之內(nèi)應(yīng)將所需寫(xiě)的位送到總線上,DS18B20在T0后15us~60us間對(duì)總線采樣。假設(shè)為低電平,那么寫(xiě)入的是0,如圖3.5〔a〕;假設(shè)為高電平,那么寫(xiě)入的位是1,見(jiàn)圖3.5〔b〕。連續(xù)寫(xiě)2位時(shí)間間隙應(yīng)大于1us。T1T1T0>1us>60us15us15-45us圖3.5〔a〕寫(xiě)0時(shí)序15us15usT1T015-45us>60us>1us圖3.5〔b〕寫(xiě)1時(shí)序c)讀時(shí)間隙如圖3.6,總線T0時(shí)刻從高拉至低電平時(shí),總線只需保持低電平1us。之后在T1時(shí)刻將總線拉高,產(chǎn)生讀時(shí)間隙,讀時(shí)間隙在T1時(shí)刻和T2時(shí)刻前有效。T2距T0為15us,也就是說(shuō),T2時(shí)刻前主機(jī)必需完成讀位,并在T0后的60us~120us內(nèi)釋放總線。T1T0T1T0T3T2>60us15us15us圖3.6讀時(shí)序DS18B20與單片機(jī)的硬件接口因?yàn)镈S18B20是單線接口器件,因此它與單片機(jī)硬件接口十分簡(jiǎn)單,只需占用單片機(jī)的一個(gè)雙向的I/O口,其接口電路見(jiàn)圖3.7。在此采用外部電源供電,占用89S52的P1.0口。VDDVDD4.7K89S52P1.0DS18B20P1.0+5VGNDDQ外接+5V圖3.7單片機(jī)接口電路DS18B20使用中考前須知
DS18B20雖然具有測(cè)溫系統(tǒng)簡(jiǎn)單、測(cè)溫精度高、連接方便、占用口線少等優(yōu)點(diǎn),但在實(shí)際應(yīng)用中也應(yīng)注意以下幾方面的問(wèn)題:a)較小的硬件開(kāi)銷(xiāo)需要相對(duì)復(fù)雜的軟件進(jìn)行補(bǔ)償,由于DS1820與微處理器間采用串行數(shù)據(jù)傳送,因此,在對(duì)DS1820進(jìn)行讀寫(xiě)編程時(shí),必須嚴(yán)格的保證讀寫(xiě)時(shí)序,否那么將無(wú)法讀取測(cè)溫結(jié)果。在使用PL/M、C等高級(jí)語(yǔ)言進(jìn)行系統(tǒng)程序設(shè)計(jì)時(shí),對(duì)DS1820操作局部最好采用匯編語(yǔ)言實(shí)現(xiàn)。b)在DS1820的有關(guān)資料中均未提及單總線上所掛DS1820數(shù)量問(wèn)題,容易使人誤認(rèn)為可以掛任意多個(gè)DS1820,在實(shí)際應(yīng)用中并非如此。當(dāng)單總線上所掛DS1820超過(guò)8個(gè)時(shí),就需要解決微處理器的總線驅(qū)動(dòng)問(wèn)題,這一點(diǎn)在進(jìn)行多點(diǎn)測(cè)溫系統(tǒng)設(shè)計(jì)時(shí)要加以注意。c)連接DS1820的總線電纜是有長(zhǎng)度限制的。試驗(yàn)中,當(dāng)采用普通信號(hào)電纜傳輸長(zhǎng)度超過(guò)50m時(shí),讀取的測(cè)溫?cái)?shù)據(jù)將發(fā)生錯(cuò)誤。當(dāng)將總線電纜改為雙絞線帶屏蔽電纜時(shí),正常通訊距離可達(dá)150m,當(dāng)采用每米絞合次數(shù)更多的雙絞線帶屏蔽電纜時(shí),正常通訊距離進(jìn)一步加長(zhǎng)。這種情況主要是由總線分布電容使信號(hào)波形產(chǎn)生畸變?cè)斐傻?。因此,在用DS1820進(jìn)行長(zhǎng)距離測(cè)溫系統(tǒng)設(shè)計(jì)時(shí)要充分考慮總線分布電容和阻抗匹配問(wèn)題。d)在DS1820測(cè)溫程序設(shè)計(jì)中,向DS1820發(fā)出溫度轉(zhuǎn)換命令后,程序總要等待DS1820的返回信號(hào),一旦某個(gè)DS1820接觸不好或斷線,當(dāng)程序讀該DS1820時(shí),將沒(méi)有返回信號(hào),程序進(jìn)入死循環(huán)。這一點(diǎn)在進(jìn)行DS1820硬件連接和軟件設(shè)計(jì)時(shí)也要給予一定的重視。3.2MCS-51系列單片機(jī)簡(jiǎn)介MCS-51系列單片機(jī)MCS-51系列單片機(jī)研制于1980年,由Intel公司所開(kāi)發(fā),其結(jié)構(gòu)是8048的延伸,改良了8048的缺點(diǎn),其ROM、RAM都可擴(kuò)充至64KB,也增添了如乘〔MUL〕、除〔DIV〕、減〔SUBB〕、比擬〔CJNE〕、棧入〔PUSH〕、棧出〔POP〕、16位數(shù)據(jù)指針、布爾代數(shù)運(yùn)算等指令,以及串行通信能力和5個(gè)中斷源。8052有6個(gè)中斷源。MCS-51系列單片機(jī)特點(diǎn)如下:(1)專(zhuān)為控制應(yīng)用所設(shè)計(jì)的八位CPU;(2)具有布爾代數(shù)的運(yùn)算能力;(3)32條雙項(xiàng)且可被獨(dú)立尋址的I\O口;(4)芯片內(nèi)有128字節(jié)可供存儲(chǔ)數(shù)據(jù)的RAM〔8052:256字節(jié)〕;(5)內(nèi)部有兩組16位定時(shí)器〔8052有3個(gè)〕;(6)具有全多工傳輸信號(hào)UART;(7)5個(gè)中斷源,且具有兩級(jí)〔高/低〕優(yōu)先權(quán)順序的中斷結(jié)構(gòu);(8)芯片內(nèi)有4KB〔8KB/8052〕的程序存儲(chǔ)器〔ROM〕;(9)芯片內(nèi)有時(shí)鐘〔CLOCK〕振蕩器電路;(10)程序存儲(chǔ)器可擴(kuò)展至64KB〔ROM〕;(11)數(shù)據(jù)存儲(chǔ)器可擴(kuò)展至64KB〔RAM〕。MCS-51系列單片機(jī)引腳介紹a)時(shí)鐘電路引腳MCS-51單片機(jī)的時(shí)鐘可以由內(nèi)部方式和外部方式產(chǎn)生,XTAL1〔19腳〕和XTAL2〔18腳〕即為單片機(jī)的兩個(gè)時(shí)鐘引腳。1)內(nèi)時(shí)鐘引腳8051單片機(jī)片內(nèi)有振蕩電路,只需在XTAL1和XTAL2間外接石英晶體和電容組成的并聯(lián)振蕩電路〔晶振器〕,晶體可以在固有頻率1.2~12MHz的晶振器之間任選晶體,電容可以在20~60pF的電容之間任選,通常選擇30pF的瓷片電容。在單片機(jī)控制的數(shù)字顯示溫度計(jì)電路設(shè)計(jì)的這個(gè)局部,就是采用內(nèi)時(shí)鐘引腳,其中晶振器為6MHz,兩個(gè)電容均為30pF。2)外時(shí)鐘方式,XTAL1接地,XTAL2接外部振蕩器。由于XTAL2端的電平不是TTL電平,故接一個(gè)上拉電阻。外部振蕩器的頻率應(yīng)低于12MHz。b)制信號(hào)引腳,包括RST/Vpd、ALE/PROG非、PSEN非、EA非/Vpp。下面分別對(duì)其進(jìn)行介紹:1)RST/Vpd〔9腳〕:復(fù)位信號(hào)/備用電源引腳當(dāng)輸入的復(fù)位信號(hào)延續(xù)2個(gè)機(jī)器周期以上,高電平即為有效,用以完成單片機(jī)的復(fù)位操作。復(fù)位后影響片內(nèi)特殊功能存放器的狀態(tài),但不影響片內(nèi)RAM狀態(tài)。同一引腳的Vpd是備用電源輸入端〔Vpd接+5V備用電源〕。在Vcc斷電時(shí),為保證RAM中的信息不喪失,可使此引腳完成掉電保護(hù)功能。2)ALE/PROG非〔30腳〕;地址鎖存允許信號(hào)/編程脈沖輸入端在系統(tǒng)擴(kuò)展時(shí),ALE用于控制把P0口輸出的低8位地址送入鎖存器鎖存起來(lái),以實(shí)現(xiàn)低位地址和數(shù)據(jù)的分時(shí)傳送。此外由于ALE是以1/6晶振頻率的固定頻率輸出的正脈沖,因此可作為外邊時(shí)鐘或外部定時(shí)脈沖使用。對(duì)片內(nèi)帶有4kbyteEPROM的8751編寫(xiě)固化程序時(shí),PROG非作為編程脈沖輸入端。3)PSEN非〔29引腳〕:外邊程序存儲(chǔ)器讀選通信號(hào)為低電平有效,8051在訪問(wèn)片外程序存儲(chǔ)器時(shí),此引腳端輸出負(fù)脈沖作為讀片外程序存儲(chǔ)器的選通信號(hào),以實(shí)現(xiàn)外部ROM單元的讀操作。要檢查8051上電平后CPU能否正常到程序存儲(chǔ)器中讀取指令碼,可以用示波器觀察引腳PSEN非有無(wú)脈沖輸出,假設(shè)有說(shuō)明正常。4)EA非/Vpp〔31腳〕:內(nèi)部和外部程序存儲(chǔ)器選擇信號(hào)當(dāng)引腳接高電平時(shí),CPU只訪問(wèn)片內(nèi)4kbyte的EPROM/ROM,執(zhí)行內(nèi)部程序存儲(chǔ)器中的指令,但在程序計(jì)數(shù)器計(jì)數(shù)超過(guò)OFFFH時(shí)〔即地址大于4kbyte時(shí)〕,將自動(dòng)轉(zhuǎn)向執(zhí)行片外大于4kbyte程序存儲(chǔ)器內(nèi)的程序。假設(shè)EA非引腳接低電平時(shí),CPU只訪問(wèn)外部程序存儲(chǔ)器,而不管片內(nèi)是否有程序存儲(chǔ)器。對(duì)于8031單片機(jī)〔片內(nèi)無(wú)ROM〕需外擴(kuò)EPROM,故必須將EA非引腳接地。在對(duì)EPROM編寫(xiě)固化程序時(shí),需對(duì)此引腳施加21V的編程電壓。c)I/O〔輸入/輸出〕接口引腳1)并行I/O接口的特點(diǎn)MCS-51有4個(gè)8位并行I/O接口P0~P3,他們都是雙向端口,可以進(jìn)行輸入或者輸出操作,每個(gè)口都有口鎖存器和口驅(qū)動(dòng)器兩局部組成。此外,它還有一個(gè)全雙工串行通信口。這4個(gè)端口為MCS-51與外圍器件或外圍設(shè)備進(jìn)行信息(數(shù)據(jù)、地址、控制信號(hào))交換提供了多功能的輸入/輸出通道,也為MCS-51擴(kuò)展外部功能、構(gòu)成應(yīng)用系統(tǒng)提供了必要的條件。它們的特點(diǎn)如下:a、4個(gè)并行I/O接口都是雙向的。P0口為漏極開(kāi)路,P1、P2、P3口均具有內(nèi)部上拉電阻,它們有時(shí)被稱為準(zhǔn)雙向口。b、4個(gè)并行口的32條I/O接口線都可以獨(dú)立地用于輸入或輸出操作。c、當(dāng)4個(gè)并行口的I/O接口線有作輸入操作時(shí),必須對(duì)該口的鎖存器進(jìn)行寫(xiě)1操作,以保證從I/O接口線輸入數(shù)據(jù)的正確性,這也是4個(gè)并行接口有時(shí)被稱為“準(zhǔn)〞雙向的含義。2)I/O接口電路功能匯總MCS-51單片機(jī)內(nèi)部屬單總線結(jié)構(gòu),因此使系統(tǒng)在結(jié)構(gòu)上增加了靈活性。通過(guò)總線,用戶可根據(jù)應(yīng)用需要進(jìn)行多功能的系統(tǒng)擴(kuò)展,構(gòu)成用戶的實(shí)際應(yīng)用系統(tǒng)。MCS-51系列中的8031單片機(jī),因其內(nèi)部在結(jié)構(gòu)上無(wú)程序存儲(chǔ)器,所以它的應(yīng)用系統(tǒng)必定為一個(gè)擴(kuò)展的系統(tǒng)。因此,MCS-51的4個(gè)并行I/O接口中的P0、P1、P2、P3口根本上都具備有這兩項(xiàng)功能:a、P0口:P0口是一個(gè)多功能口除可以作為通用的輸入/輸出口外,還具備用于系統(tǒng)擴(kuò)展的第二功能。在MCS-51的進(jìn)行系統(tǒng)擴(kuò)展時(shí),它作為地址/數(shù)據(jù)總線口。通過(guò)外接地址鎖存器,MCS-51的內(nèi)部單總線可從P0口被擴(kuò)展成8位的數(shù)據(jù)總線和16位地址總線的低8位。在實(shí)際應(yīng)用中,P0口先送出外部存儲(chǔ)器16位地址中的低8位至地址鎖存器鎖存,然后再由P0口進(jìn)行8位數(shù)據(jù)的輸入或輸出;b、P1口:P1口作為通用I/O接口,它的每一位都可以別編程為通用I/O接口線;c、P2口:P2口也是一個(gè)多功能口,與P0口相似,它除可被用作I/O接口外,在進(jìn)行系統(tǒng)擴(kuò)展時(shí),還可以輸16位地址總線中的高8位,和P0口共同構(gòu)成16位的地址總線。當(dāng)然,在P0口和P2口用作地址/數(shù)據(jù)總線時(shí),它們都不能再作為通用I/O接口;d、P3口:P3口也是一個(gè)多功能口,除可以作為通用I/O接口外,還具有多種控制功能,為通用I/O接口時(shí)和MCS-51其他具有控制功能的輸入/輸出引線在一起,共同形成MCS-51的控制總線。P3口在作為第二功能〔控制功能〕使用時(shí),它的每一位功能定義如表3.8所示。表3.8P3口各引腳定義口線第二功能信號(hào)名稱P3.0RXD串行數(shù)據(jù)接收P3.1TXD串行數(shù)據(jù)發(fā)送P3.2INT0外部數(shù)據(jù)0申請(qǐng)P3.3INT1外部數(shù)據(jù)1申請(qǐng)P3.4T0定時(shí)器/計(jì)數(shù)器0輸入P3.5T1定時(shí)器/計(jì)數(shù)器1輸入P3.6WR外部RAM寫(xiě)選通P3.7RD外部RAM讀選通一個(gè)信號(hào)引腳,既是第一功能又是第二功能,在使用時(shí)也不會(huì)引起混亂和造成錯(cuò)誤,理由如下:a、對(duì)于各種型號(hào)的芯片,其功能的第一功能信號(hào)是相同的,所不同的只在引腳的的第二功能信號(hào)上;b、對(duì)于9、30和31各個(gè)引腳,由于第一功能信號(hào)與第二功能信號(hào)是單片機(jī)在不同工作方式下的信號(hào),因此不會(huì)發(fā)生使用上的矛盾;c、P3口線的情況卻有所不同,它的第二功能信號(hào)都是單片機(jī)的重要控制信號(hào)。因此在實(shí)際使用時(shí),總是先按需要優(yōu)先選用它的二功能,剩下不用的才作為口線使用。d)MCS-51單片機(jī)的復(fù)位方式和復(fù)位電路1)復(fù)位操作:復(fù)位是單片機(jī)的初始化操作,其主要功能是把PC初始化為0000H,使單片機(jī)從0000H單元開(kāi)始執(zhí)行程序。除了進(jìn)入系統(tǒng)的正常初始化之外,當(dāng)由于程序運(yùn)行出錯(cuò)或者操作錯(cuò)誤使系統(tǒng)處于死鎖狀態(tài)時(shí),為擺脫困境,也需按復(fù)位鍵以重新啟動(dòng)。a、復(fù)位操作還對(duì)單片機(jī)的個(gè)別引腳信號(hào)有影響,例如把ALE和PSEN非信號(hào)變?yōu)闊o(wú)效狀態(tài),即ALE=0,PSEN=1;b、復(fù)位信號(hào)及其產(chǎn)生RST引腳是復(fù)位信號(hào)的輸入端,復(fù)位信號(hào)是高電平有效,其有效時(shí)間持續(xù)24個(gè)振蕩脈沖周期〔即2個(gè)機(jī)器周期〕以上,假設(shè)使用頻率為6MHz的晶振,那么復(fù)位信號(hào)持續(xù)時(shí)間應(yīng)超過(guò)4us才能完成復(fù)位操作。整個(gè)復(fù)位電路包括芯片內(nèi)外兩局部。外部電路產(chǎn)生的復(fù)位信號(hào)〔RST〕送施密特觸發(fā)器,再由片內(nèi)復(fù)位電路在每個(gè)機(jī)器周期的S5時(shí)刻對(duì)施密特觸發(fā)器的輸出進(jìn)行采樣。然后才得到內(nèi)部復(fù)位操作所需要的信號(hào)。3.3顯示溫度值的LED顯示器接口簡(jiǎn)介L(zhǎng)ED顯示器是單片機(jī)應(yīng)用系統(tǒng)中常用的廉價(jià)輸出設(shè)備。它是由假設(shè)干個(gè)發(fā)光二極管組成的,當(dāng)發(fā)光二極管導(dǎo)通時(shí),相應(yīng)一個(gè)筆畫(huà)劃發(fā)光,控制某段發(fā)光二極管導(dǎo)通,就能顯示出某個(gè)數(shù)碼或字符。在靜態(tài)顯示系統(tǒng)中,每位顯示器都應(yīng)有各自的鎖存器、譯碼器〔假設(shè)采用軟件譯碼,譯碼器可省去〕與驅(qū)動(dòng)器,用以鎖存各自待顯示數(shù)字的BCD碼或字段碼。因此,靜態(tài)顯示系統(tǒng)在每一次顯示輸出后能夠保持顯示不變,僅在待顯示數(shù)字需要改變時(shí),才更新其數(shù)字顯示鎖存器中的內(nèi)容。這種顯示占用CPU的時(shí)間少,顯示穩(wěn)定可靠。缺點(diǎn)是,當(dāng)顯示的位數(shù)較多時(shí),占用的I/O口較多。在動(dòng)態(tài)顯示的系統(tǒng)中,CPU需定時(shí)地對(duì)每位LED顯示器進(jìn)行掃描,每位LED顯示器分時(shí)輪流工作,每次只能使一位LED顯示,但由于人的視覺(jué)暫留現(xiàn)象,仍感覺(jué)所有的LED顯示器都在同時(shí)顯示。這種顯示的優(yōu)點(diǎn)是使用硬件少,占用I/O口少。缺點(diǎn)是占用CPU時(shí)間長(zhǎng),只要不執(zhí)行顯示程序,就立刻停止顯示。但隨著大規(guī)模集成電路的開(kāi)展,目前已有能自動(dòng)對(duì)顯示器進(jìn)行掃描的專(zhuān)用顯示芯片,使電路既簡(jiǎn)單又占用CPU時(shí)間。在我們所設(shè)計(jì)的溫度計(jì)中數(shù)碼管顯示就是利用的動(dòng)態(tài)顯示。4智能溫度控制系統(tǒng)軟件設(shè)計(jì)課題的程序用KeilC51語(yǔ)言編寫(xiě),由于使用了C語(yǔ)言,存放器的分配、不同的存儲(chǔ)器的尋址及數(shù)據(jù)類(lèi)型等細(xì)節(jié)可由編譯器管理,尤其是數(shù)學(xué)運(yùn)算不必人工干預(yù),大大縮短了變成與調(diào)試的時(shí)間,提高了效率,降低了編成難度,使編程更加簡(jiǎn)便。系統(tǒng)的控制軟件可分為主程序,DS18B20通信程序,按鍵程序等模塊。主程序可分為系統(tǒng)的初始化,自檢子程序,溫度顯示子程序三局部。溫度顯示子程序完成溫度采集,溫度值的BCD轉(zhuǎn)換,調(diào)顯示子程序,超溫報(bào)警和控制。DS18B20通信程序主要由DS18B20初始化程序,DS18B20讀字節(jié)程序,DS18B20寫(xiě)字節(jié)程序組成。按鍵程序主要完成溫度上、下限的設(shè)置和顯示,在單片機(jī)控制下每2小時(shí)發(fā)送0.5秒的啟動(dòng)電機(jī)的正脈沖。本系統(tǒng)有五個(gè)按鍵,依次是:復(fù)位鍵、K1鍵、K2鍵、K3鍵、K4鍵。按鍵程序主要包括INT1中斷子程序、定時(shí)器T0中斷子程序、INT1中斷子程序、定時(shí)器T1中斷子程序、定時(shí)器T2子程序。其中,復(fù)位鍵局部放入主程序中,作為主程序的一局部。K4鍵功能:每2小時(shí)發(fā)送0.5秒的啟動(dòng)電機(jī)的正脈沖。下面是主程序和各個(gè)子程序的流程圖。4.1主程序流程圖系統(tǒng)完成的是對(duì)周?chē)鷾囟冗M(jìn)行檢測(cè),采用DS18B20傳感器。當(dāng)溫度超過(guò)設(shè)定溫度范圍時(shí),進(jìn)行報(bào)警。引入單片機(jī)控制是實(shí)現(xiàn)系統(tǒng)智能化很重要的一個(gè)局部,采用單片機(jī)可以實(shí)現(xiàn)程序控制和監(jiān)視的功能。系統(tǒng)采用89S52和DS18B20的連接進(jìn)行實(shí)時(shí)控制和數(shù)據(jù)處理。軟件編程負(fù)責(zé)設(shè)置溫度上、下限,然后讓系統(tǒng)根據(jù)設(shè)置的程序完成控制功能。主程序流程圖如圖4.1所示。NNY響應(yīng)中斷有中斷響應(yīng)?顯示當(dāng)前溫度數(shù)碼管指示燈自檢系統(tǒng)初始化開(kāi)始中斷結(jié)束報(bào)警溫度超限?啟動(dòng)加熱源或通風(fēng)風(fēng)扇YN圖4.1主程序流程圖4.2子程序流程圖及程序內(nèi)容DS18B20初始化子程序流程圖DS18B20在初始化序列期間,總線控制器拉低總線并保持480us以發(fā)出〔TX〕一個(gè)復(fù)位脈沖,然后釋放總線,進(jìn)入接收狀態(tài)〔RX〕。單總線由5K上拉電阻拉到高電平。當(dāng)DS18B20探測(cè)到I/O引腳上的上升沿后,等待15~60us,然后發(fā)出一個(gè)由60~240us低電平信號(hào)構(gòu)成的存在脈沖。完成對(duì)DS18B20的初始化操作,在每次測(cè)溫前必須對(duì)其進(jìn)行初始化,否那么系統(tǒng)無(wú)法正常運(yùn)行。所以這個(gè)步驟很重要。DS18B20初始化子程序流程如圖4.2所示。YYN低電平復(fù)位脈沖持續(xù)480~960us釋放總線拉低總線DS18B20響應(yīng)?返回圖4.2DS18B20初始化子程序流程圖voidRST18B20(void)/*DS18B20初始化子程序*/{DQ=0;delay(15);DQ=1;delay(2);do{}while(DQ==1);do{}while(DQ==0);}DS18B20寫(xiě)字節(jié)子程序N延時(shí)15~60us寫(xiě)入數(shù)據(jù)釋放總線拉低總線寫(xiě)完1字節(jié)?返回YDS18B20寫(xiě)字節(jié)由兩種寫(xiě)時(shí)序組成:寫(xiě)1時(shí)序和寫(xiě)0時(shí)序。總線控制器通過(guò)寫(xiě)1時(shí)序?qū)戇壿?到DS18B20,寫(xiě)0時(shí)序?qū)戇壿?到DS18B20。所有寫(xiě)時(shí)序必須最少持續(xù)60us,包括兩個(gè)寫(xiě)周期之間至少1us的恢復(fù)時(shí)間。當(dāng)總線控制器把數(shù)據(jù)線從邏輯高電平拉到低電平的時(shí)候,寫(xiě)時(shí)序開(kāi)始總線控制器要生產(chǎn)一個(gè)寫(xiě)時(shí)序,必須把數(shù)據(jù)線拉到低電平然后釋放,在寫(xiě)時(shí)序開(kāi)始后的15us釋放總線。當(dāng)總線被釋放的時(shí)候,5K的上拉電阻將拉高總線??偪刂破饕梢粋€(gè)寫(xiě)0時(shí)序,必須把數(shù)據(jù)線拉到低電平并持續(xù)保持〔至少60us〕。總線控制器初始化寫(xiě)時(shí)序后,DS18B20在一個(gè)15us到60us的時(shí)間內(nèi)對(duì)N延時(shí)15~60us寫(xiě)入數(shù)據(jù)釋放總線拉低總線寫(xiě)完1字節(jié)?返回Y圖4.3DS18B20寫(xiě)字節(jié)流程圖voidwrite_zi(ucharwr)/*向DS18B20寫(xiě)字節(jié)子程序*/{uchari;for(i=0;i<8;i++){DQ=0;_nop_();DQ=wr&0x01;delay(5);DQ=1;wr>>=1;}}DS18B20讀字節(jié)子程序N讀出1位釋放總線延時(shí)60us拉低總線讀完1字節(jié)?返回Y總線控制器發(fā)起讀時(shí)序時(shí),DS18B20僅被用來(lái)傳輸數(shù)據(jù)給控制器。因此,總線控制器在發(fā)出讀暫存器指令[BEh]或讀電源模式指令[B4h]后必須立刻開(kāi)始讀時(shí)序,DS18B20可以提供請(qǐng)求信息。除此之外,總線控制器在發(fā)出發(fā)送溫度轉(zhuǎn)換指令[44h]或召回EEPROM指令[B8h]之后讀時(shí)序,所有讀時(shí)序必須最少60us,包括兩個(gè)讀周期間至少1us的恢復(fù)時(shí)間。當(dāng)總線控制器把數(shù)據(jù)線從高電平拉到低電平時(shí),讀時(shí)序開(kāi)始,數(shù)據(jù)線必須至少保持1us,然后總線被釋放。在總線控制器發(fā)出讀時(shí)序后,DS18B20通過(guò)拉高或拉低總線上來(lái)傳輸1或0。當(dāng)傳輸邏輯0結(jié)束后,總線將被釋放,通過(guò)上拉電阻回到上升沿狀態(tài)。從DS18B20輸出的數(shù)據(jù)在讀時(shí)序的下降沿出現(xiàn)后15us內(nèi)有效。因此,總線控制器在讀時(shí)序開(kāi)始后必須停止把N讀出1位釋放總線延時(shí)60us拉低總線讀完1字節(jié)?返回Y圖4.4DS18B20讀字節(jié)子程序ucharread_zi(void)/*從DS18B20讀出字節(jié)子程序*/{uchari,u=0;for(i=0;i<8;i++){DQ=0;u>>=1;DQ=1;if(DQ==1)u|=0x80;delay(4);}return(u);}溫度顯示子程序溫度顯示子程序主要完成溫度的讀出和顯示的功能。當(dāng)溫度為零下是顯示為“—〞號(hào);當(dāng)溫度為零上時(shí)消隱。當(dāng)測(cè)定溫度低于設(shè)定溫度下限值時(shí),第1、2、4、5、6、7個(gè)發(fā)光二極管點(diǎn)亮;當(dāng)測(cè)定溫度高于設(shè)定溫度上限值時(shí),第1、3、4、5、6、7個(gè)發(fā)光二極管亮。起到報(bào)警作用。溫度顯示子程序流程圖如圖4.5所示。YYN溫度為正值?Tem[0]=17Tem[0]=16溫度值取負(fù)別離十位送tem[1]別離個(gè)位送tem[2]別離十分位送tem[3]調(diào)顯示子程序讀出溫度值返回圖4.5溫度顯示子程序floatWL=-10.0,WH=30.0;/*WH、WL用于存儲(chǔ)上、下限溫度*/voidshowT(void)/*溫度顯示子程序*/{ucharidatatem[4];floatwd=0;/*wd為采集的溫度值*/intm;for(;;){wd=cewen();if(wd<0)/*判斷溫度是否為正*/{wd=-wd; tem[0]=16;/*溫度為負(fù)值,數(shù)碼管第1位顯示負(fù)號(hào)*/}elsetem[0]=17;/*溫度為正值,數(shù)碼管第1位不顯示*/tem[1]=wd/10;/*將溫度值各位別離出來(lái)*/m=wd*10;tem[2]=m%100/10;tem[3]=m%10;display(tem+3);deng=0x02;/*顯示溫度,第1個(gè)發(fā)光二極管亮*/if(wd<=WL)deng=0x7B;/*低于溫度下限,第1、2、4、5、6、7個(gè)發(fā)光二極管亮*/if(wd>=WH)deng=0x7E;/*高于溫度上限,第1、3、4、5、6、7個(gè)發(fā)光二極管亮*/}}溫度采集子程序流程圖寫(xiě)入跳過(guò)ROM指令〔CCH〕寫(xiě)入溫度轉(zhuǎn)換指令〔44H〕調(diào)DS18B20初始化子程序?qū)懭胩^(guò)ROM指令〔CCH〕寫(xiě)入溫度轉(zhuǎn)換指令〔44H〕調(diào)DS18B20初始化子程序?qū)懭胩^(guò)ROM指令〔CCH〕寫(xiě)入讀溫度值指令〔BEH〕將溫度值高8位賦給bm溫度值低8位賦給am將bm值賦給wendzwendz左移8位與am相或?qū)endz的累加值賦給duzhi讀溫度值2次?duzhi取平均值Duzhi轉(zhuǎn)化為十進(jìn)制數(shù)將溫度值四舍五入精確到0.1返回YN調(diào)DS18B20初始化子程序圖4.6溫度采集子程序流程圖floatcewen(void)/*采集溫度子程序*/{ucharam,bm;/*am,bm分別是從DS18B80讀取的溫度低8位和高8位值*/intwendz=0,i;/*wemdz是單次溫度采集值*/floatduzhi=0;for(i=0;i<2;i++)/*采集兩次溫度值*/{RST18B20();/*DS18B20初始化*/write_zi(0xCC);/*跳過(guò)DS18B20片內(nèi)ROM*/write_zi(0x44);/*進(jìn)行溫度轉(zhuǎn)換*/RST18B20();write_zi(0xCC);write_zi(0xBE);/*DS18B20暫存器值*/am=read_zi();bm=read_zi();wendz=bm;wendz<<=8;wendz|=am;duzhi+=wendz;}duzhi/=2;/*取兩次采集溫度平均值*/duzhi*=0.0625;/*將采集溫度值轉(zhuǎn)換為十進(jìn)制數(shù)*/duzhi+=0.05;/*將采集溫度值四舍五入,精確到0.1*/return(duzhi);}顯示子程序顯示子程序是對(duì)數(shù)碼管進(jìn)行逐位掃描,顯示先從顯示緩沖區(qū)取出要顯示的數(shù)據(jù),再根據(jù)該數(shù)據(jù)從table表中取出相應(yīng)的段碼完成顯示。顯示子程序流程圖如圖4.7所示。返回返回送段碼顯示第3位?查字碼表table送字碼取位信號(hào)延時(shí)1ms顯示完成?查字碼表table1位選移位YNYN顯示緩沖區(qū)首地址及位選圖4.7顯示子程序voiddisplay0(ucharidata*p)/*不顯示數(shù)碼管左起第4位*/{ucharsel,i;sel=0x01;for(i=0;i<4;i++){sel=~sel;duan=table[*p];if(sel!=0xfe)wei=sel;delay(210);wei=0xff;p--;sel=~sel;sel=sel<<1;}}voiddisplay1(ucharidata*p)/*不顯示數(shù)碼管左起第3位*/{ucharsel,i;sel=0x01;for(i=0;i<4;i++){sel=~sel;duan=table[*p];if(sel!=0xfd)wei=sel;delay(210);wei=0xff;p--;sel=~sel;sel=sel<<1;}}voiddisplay2(ucharidata*p)/*不顯示數(shù)碼管左起第2位*/{ucharsel,i;sel=0x01;for(i=0;i<4;i++){sel=~sel;duan=table[*p];if(sel!=0xfb)wei=sel;delay(210);wei=0xff;p--;sel=~sel;sel=sel<<1;}}voiddisplay3(ucharidata*p)/*不顯示數(shù)碼管第1位*/{ucharsel,i;sel=0x01;for(i=0;i<4;i++){sel=~sel;duan=table[*p];if(sel!=0xf7)wei=sel;delay(210);wei=0xff;p--;sel=~sel;sel=sel<<1;}}voiddisplayQ(ucharidata*p)/*數(shù)碼管小數(shù)點(diǎn)全顯示,用于自檢子程序*/{ucharsel,i;sel=0x01;for(i=0;i<4;i++){sel=~sel;duan=table1[*p];wei=sel;delay(100);wei=0xff;p--;sel=~sel;sel=sel<<1;}}按鍵子程序流程圖YNYNNYYNYN按K3鍵設(shè)置數(shù)值設(shè)置數(shù)值位閃爍K2鍵按下?顯示溫度下限顯示溫度上限將設(shè)置值送上下限溫度存儲(chǔ)變量顯示測(cè)量溫度返回K1鍵第一次按下K1鍵第二次按下?K2鍵第五次按下?K1鍵第三次按下?開(kāi)中斷圖4.8按鍵子程序流程圖voidint1_srv(void)interrupt2using0{inttiao=0,n=0,j=0,m=1,k,d;/*n為K2鍵的按鍵次數(shù),k,d為溫度下限、上限的標(biāo)志位*/inta,b;/*a,b,wl.wh為下限、上限溫度處理的中間變量*/floatwl,wh;ucharidatadis_buf[4];/*用于存放上、下限溫度別離后的各位數(shù)值和標(biāo)志位*/TR0=1;/*開(kāi)啟定時(shí)器T0中斷*/delay(500);if(INT1==0)/*K1鍵第1次按下*/for(;;){while(INT1==0);wl=WL;if(wl<0.0)/*對(duì)下限溫度進(jìn)行別離處理*/{dis_buf[0]=16;wl=-wl;}elsedis_buf[0]=17;a=wl*10;dis_buf[1]=a/100;dis_buf[2]=(a%100)/10;dis_buf[3]=(a%100)%10;display(dis_buf+3);/*顯示下限溫度,第1、2個(gè)發(fā)光二極管亮*/deng=0x03;if(dx==0)/*K2鍵按下*/{if(dx==0){while(dx==0);wl=WL;if(wl<0.0){dis_buf[0]=16;wl=-wl;k=1;}else{dis_buf[0]=17;k=0;}a=wl*10;b=WH*10;dis_buf[1]=a/100;dis_buf[2]=(a%100)/10;dis_buf[3]=(a%100)%10;for(;;){if(ds==0)/*K3鍵按下*/{if(ds==0){while(ds==0);switch(n)/*設(shè)置下限溫度各位的數(shù)值*/{case0:if(dis_buf[3]<9){dis_buf[3]++;break;}else{dis_buf[3]=0;break;}case1:if(dis_buf[2]<9){dis_buf[2]++;break;}else{dis_buf[2]=0;break;}case2:if(dis_buf[1]<5){dis_buf[1]++;break;}else{dis_buf[1]=0;break;}case3:if(m==0){dis_buf[0]=17;m++;k=0;break;}else{dis_buf[0]=16;m=0;k=1;break;}}}}if(TF0)/*每隔100ms顯示一次下限溫度*/{j++;if(j==2){display(dis_buf+3);j=0;}TH0=-(50000/256);TL0=-(50000%256);TF0=0;}elseswitch(n){case0:display0(dis_buf+3);deng=0x09;break;/*K2鍵按第1次,第4位數(shù)碼管不顯示*/case1:display1(dis_buf+3);deng=0x11;break;/*K2鍵按第2次,第3位數(shù)碼管不顯示*/case2:display2(dis_buf+3);deng=0x21;break;/*K2鍵按第3次,第2位數(shù)碼管不顯示*/case3:display3(dis_buf+3);deng=0x41;break;/*K2鍵按第4次,第1位數(shù)碼管不顯示*/}if(dx==0){if(dx==0){while(dx==0);if(n<4)n++;}}if(n==4)/*K2鍵按第5次,將設(shè)置的溫度值存入上、下溫度變量*/{if(k==0)a=dis_buf[3]+dis_buf[2]*10+dis_buf[1]*100;if(k==1)a=-(dis_buf[3]+dis_buf[2]*10+dis_buf[1]*100);n=0;if(b>(a+5))/*如果設(shè)置的溫度下限值低于上限值0.5℃{WL=a;WL/=10;WH=b;WH/=10;}break;}}}}if(INT1==0)/*K1鍵第2次按下*/for(;;){while(INT1==0);wh=WH;/*對(duì)上限溫度進(jìn)行別離處理*/if(wh<0){dis_buf[0]=16;wh=-wh;}elsedis_buf[0]=17;b=wh*10;dis_buf[1]=b/100;dis_buf[2]=(b%100)/10;dis_buf[3]=(b%100)%10;display(dis_buf+3);/*顯示上限溫度,第1、3個(gè)數(shù)碼管亮*/deng=0x06;if(dx==0)/*K2鍵按下*/{if(dx==0){while(dx==0);wh=WH;if(wh<0){dis_buf[0]=16;wh=-wh;d=1;}else{dis_buf[0]=17;d=0;}a=WL*10;b=wh*10;dis_buf[1]=b/100;dis_buf[2]=(b%100)/10;dis_buf[3]=(b%100)%10;for(;;){if(ds==0)/*K3鍵按下*/{if(ds==0){while(ds==0);switch(n)/*設(shè)置上限溫度各位數(shù)值*/{case0:if(dis_buf[3]<9){dis_buf[3]++;break;}else{dis_buf[3]=0;break;}case1:if(dis_buf[2]<9){dis_buf[2]++;break;}else{dis_buf[2]=0;break;}case2:if(dis_buf[1]<5){dis_buf[1]++;break;}else{dis_buf[1]=0;break;}case3:if(m==0){dis_buf[0]=17;m++;d=0;break;}else{dis_buf[0]=16;m=0;d=1;break;}}}}if(TF0)/*每隔100ms顯示一次上限溫度*/{j++;if(j==2){display(dis_buf+3);j=0;}TH0=-(50000/256);TL0=-(50000%256);TF0=0;}elseswitch(n){case0:display0(dis_buf+3);deng=0x0C;break;/*K2鍵按第1次,第4位數(shù)碼管不顯示*/case1:display1(dis_buf+3);deng=0x14;break;/*K2鍵按第2次,第3位數(shù)碼管不顯示*/case2:display2(dis_buf+3);deng=0x24;break;/*K2鍵按第3次,第2位數(shù)碼管不顯示*/case3:display3(dis_buf+3);deng=0x44;break;/*K2鍵按第4次,第1位數(shù)碼管不顯示*/}if(dx==0){if(dx==0){while(dx==0);if(n<4)n++;}}if(n==4)/*K2鍵按第5次,存儲(chǔ)設(shè)置的數(shù)值*/{if(d==0)b=dis_buf[3]+dis_buf[2]*10+dis_buf[1]*100;if(d==1)b=-(dis_buf[3]+dis_buf[2]*10+dis_buf[1]*100);n=0;if(b>(a+5))/*如果設(shè)置的溫度上限值高于下限值0.5℃{WL=a;WL/=10;WH=b;WH/=10;}break;}}}}tiao=1;if(INT1==0){if(INT1==0)break;}}while(INT1==0);if(tiao==1)break;}}發(fā)送脈沖子程序流程圖YNK4鍵按下?開(kāi)INT1中斷啟動(dòng)T2定時(shí)YNK4鍵按下?開(kāi)INT1中斷啟動(dòng)T2定時(shí)T2定時(shí)到?T1定時(shí)到?啟動(dòng)T1定時(shí)并開(kāi)T1中斷關(guān)T1定時(shí)器發(fā)送0.5秒脈沖初始化NYYN開(kāi)始圖4.9發(fā)送脈沖子程序流程圖#include<intrins.h>#include<absacc.h>#include<reg52.h>#definedengXBYTE[0x7FFF]intcoun=0,con=0;/*coun和con分別是定時(shí)器T2和T1的中斷次數(shù)計(jì)數(shù)變量*/voidT1_zd(void)interrupt3using0/*定時(shí)器T1中斷子程序*/{con++;if(con==10)/*定時(shí)0.5秒到*/{con=0;TR1=0;/*關(guān)閉定時(shí)器T1*/deng=0x01;}TH1=(65536-50000)/256;TL1=(65536-50000)%256;}voidT2_zd(void)interrupt5using0/*定時(shí)器T2中斷子程序*/{coun++;TF2=0;if(coun==200000)/*定時(shí)2小時(shí)到*/{coun=0;deng=0x02;TR1=1;/*啟動(dòng)定時(shí)器T1*/}}voidint1_zd(void)interrupt2using0/*外部中斷INT1*/{TR2=1;/*啟動(dòng)定時(shí)器T2*/ET2=1;ET1=1;}main(){T2CON=0x00;TH2=(65536-36000)/256;TL2=(65536-36000)%256;TMOD=0X10;TH1=(65536-50000)/256;TL1=(65536-50000)%256;IT1=1;/*設(shè)INT1為跳變沿觸發(fā)中斷*/EX1=1;EA=1;deng=0x40;while(1){};5智能溫度控制系統(tǒng)可靠性和精度分析傳統(tǒng)的A/D轉(zhuǎn)換器大多采用積分式或逐次比擬式轉(zhuǎn)換技術(shù),其噪聲容限低,抑制混疊噪聲及量化噪聲的能力比擬差。課題采用了高性能的Σ-Δ式A/D轉(zhuǎn)換器,它能以很高的采樣速率和很低的采樣分辨力將模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),再利用過(guò)采樣、噪聲整形和數(shù)字濾波技術(shù),來(lái)提高有效分辨力。Σ-Δ式A/D轉(zhuǎn)換器不僅能濾除量化噪聲,而且對(duì)外圍元件的精度要求低;由于采用了數(shù)字反響方式,因此比擬器的失調(diào)電壓及零點(diǎn)漂移都不會(huì)影響溫度的轉(zhuǎn)換精度。這種智能溫度傳感器兼有抑制串模干擾能力強(qiáng)、分辨力高、線性度好、本錢(qián)低等優(yōu)點(diǎn)。系統(tǒng)將轉(zhuǎn)換精度控制字R1和R0配置為“1〞,將精度到達(dá)最高為0.0625℃結(jié)論在基于單片機(jī)的智能溫度控制系統(tǒng)的研究和設(shè)計(jì)過(guò)程中,借
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 長(zhǎng)春工業(yè)大學(xué)人文信息學(xué)院《BM安裝工程計(jì)量》2023-2024學(xué)年第二學(xué)期期末試卷
- 南昌理工學(xué)院《現(xiàn)代控制》2023-2024學(xué)年第二學(xué)期期末試卷
- 昆明幼兒師范高等專(zhuān)科學(xué)?!督鹑趯W(xué)前沿動(dòng)態(tài)》2023-2024學(xué)年第二學(xué)期期末試卷
- 信陽(yáng)農(nóng)林學(xué)院《臺(tái)港暨海外華文文學(xué)研究》2023-2024學(xué)年第二學(xué)期期末試卷
- 西安體育學(xué)院《大數(shù)據(jù)機(jī)器學(xué)習(xí)》2023-2024學(xué)年第二學(xué)期期末試卷
- 濰坊工商職業(yè)學(xué)院《機(jī)器學(xué)習(xí)實(shí)驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣東信息工程職業(yè)學(xué)院《UML及形式化建模》2023-2024學(xué)年第二學(xué)期期末試卷
- 山西旅游職業(yè)學(xué)院《化工原理(Ⅰ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 湘潭醫(yī)衛(wèi)職業(yè)技術(shù)學(xué)院《信號(hào)分析與處理》2023-2024學(xué)年第二學(xué)期期末試卷
- 麗水職業(yè)技術(shù)學(xué)院《詩(shī)歌導(dǎo)讀》2023-2024學(xué)年第二學(xué)期期末試卷
- 羅森便利店QSC標(biāo)準(zhǔn)課件講義
- 售后服務(wù)的流程圖
- 讀《讀懂孩子》讀書(shū)心得體會(huì)
- 《勞動(dòng)合同法》普法宣傳資料
- 二年級(jí)下冊(cè)科學(xué)教案-2.3科技產(chǎn)品體驗(yàn)會(huì) 大象版
- 退役軍人優(yōu)待證申領(lǐng)表
- Q∕SY 19001-2017 風(fēng)險(xiǎn)分類(lèi)分級(jí)規(guī)范
- 勞務(wù)分包項(xiàng)目經(jīng)理崗位職責(zé)
- 幼兒繪本故事:奇怪的雨傘店
- 鋼琴基礎(chǔ)教程教案
- 糖基轉(zhuǎn)移酶和糖苷酶課件(PPT 111頁(yè))
評(píng)論
0/150
提交評(píng)論