版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
學(xué)科分類號(hào):0809湖南人文科技學(xué)院本科生畢業(yè)論文題目:數(shù)顯式電子溫度計(jì)的設(shè)計(jì)TheDesignofCountsExplicitThermotron學(xué)生姓名:盧明學(xué)號(hào):08417320系部:物理與信息工程系專業(yè)年級(jí):信息科學(xué)與技術(shù)08級(jí)電子指導(dǎo)教師:李銘華職稱:副教授輔導(dǎo)教師:黃雪蓮李雙桂湖南人文科技學(xué)院教務(wù)處制本人鄭重聲明:所呈交的本科畢業(yè)論文,是本人在指導(dǎo)老師的指導(dǎo)下,獨(dú)立進(jìn)行研究工作所取得的成果,成果不存在知識(shí)產(chǎn)權(quán)爭(zhēng)議,除文中已經(jīng)注明引用的內(nèi)容外,本論文不含任何其他個(gè)人或集體已經(jīng)發(fā)表或撰寫過的作品成果。對(duì)本文的設(shè)計(jì)做出重要奉獻(xiàn)的個(gè)人和集體均已在文中以明確方式標(biāo)明。本人完全意識(shí)到本聲明的法律結(jié)果由本人承當(dāng)目錄摘要 1Abstract 11引言 21.1選題的根據(jù) 21.2研究?jī)?nèi)容 21.3擬到達(dá)目標(biāo) 2第2章數(shù)字溫度計(jì)總體詳細(xì)設(shè)計(jì) 3數(shù)字溫度計(jì)設(shè)計(jì)方案論證 3方案一:熱敏電阻 32.1.2方案二:溫度傳感器DS18B20 32.1.3方案三:控制內(nèi)核不用單片機(jī),用DSP 4第3章數(shù)字溫度計(jì)詳細(xì)設(shè)計(jì) 43.1主控制器AT89C2051 43.1.1AT89C2051的主要性能 43.1.2引腳說明 5溫度傳感器DS18B20 63.2.1DS18B20的測(cè)溫原理 103.2.2溫度數(shù)據(jù)的計(jì)算處理方法 113.3DS18B20與單片機(jī)的接口電路 12第四章硬件電路的設(shè)計(jì) 134.1電路仿真圖 13第五章系統(tǒng)的程序設(shè)計(jì) 135.1主程序 145.2讀出溫度子程序 145.3溫度轉(zhuǎn)換命令子程序 145.4計(jì)算溫度子程序 155.5顯示數(shù)據(jù)刷新子程序 15參考文獻(xiàn) 16致謝 17附錄一 18附錄二 20數(shù)顯式電子溫度計(jì)的設(shè)計(jì)摘要:數(shù)顯式電子溫度計(jì)可以準(zhǔn)確的判斷和測(cè)量溫度,以數(shù)字顯示,而非指針或水銀顯示。故稱數(shù)字溫度計(jì)。數(shù)字溫度表與傳統(tǒng)的溫度計(jì)相比,具有讀數(shù)方便,測(cè)溫范圍廣,測(cè)溫準(zhǔn)確,其輸出溫度采用數(shù)字顯示。本文綜述了利用單片機(jī)和溫度傳感器DS18B20、數(shù)碼管的數(shù)字溫度計(jì)的設(shè)計(jì)原理與制作過程。關(guān)鍵詞:溫度傳感器單片機(jī)數(shù)碼管.TheDesignofCountsExplicitThermotronAbstract:igitaltypeelectronicthermometercanaccuratelyjudgeandmeasuretemperature,withdigitaldisplay,ratherthanapointerormercury.Socalleddigitalthermometer.Comparedwiththetraditionalthermometer,Digitalthermometerwithareadingofconvenience,awiderangeoftemperaturemeasurement,accuratetemperaturemeasurement,theoutputofthetemperaturedigitaldisplay.ThisarticlereviewstheuseofMCUandthetemperaturesensorDS18B20,digitaltubedigitalthermometerdesignprincipleandfabricationprocessKeyWords:MCUTemperaturesensorDigitaltube1引言選題的根據(jù)溫度是我們?nèi)粘Ia(chǎn)和生活中實(shí)時(shí)能接觸到的物理量,但是它是看不到的,僅憑感覺只能感覺到大概的溫度值,傳統(tǒng)的溫度計(jì)雖然能指示溫度,但是精度低,使用不夠方便,顯示不夠直觀,數(shù)字溫度計(jì)的出現(xiàn)可以讓人們直觀的了解自己想知道的溫度到底是多少度。數(shù)顯溫度計(jì)應(yīng)用非常廣泛。它既可以用在人們的日常生活中,也可以用在工農(nóng)業(yè)生產(chǎn)中,還可以是一個(gè)電子產(chǎn)品的一局部。數(shù)顯溫度計(jì)電路的種類非常多,既可以用專用集成電路實(shí)現(xiàn),又可以用通用數(shù)字電路實(shí)現(xiàn),還能用單片機(jī)來控制。隨著單片機(jī)技術(shù)的不斷開展,單片機(jī)在日用電子產(chǎn)品中的應(yīng)用越來越廣泛,溫度傳感器DS18B20具有性能穩(wěn)定、靈敏度高、抗干擾能力強(qiáng)、使用方便等優(yōu)點(diǎn),廣泛應(yīng)用于冰箱、空調(diào)器、糧倉(cāng)等日常生活中溫度的測(cè)量和控制。又隨著電子技術(shù)的開展,人們的生活日趨數(shù)字化,多功能的數(shù)字溫度計(jì)可以給我們的生活帶來很大的方便;支持“一線總線〞接口的溫度傳感器簡(jiǎn)化了數(shù)字溫度計(jì)的設(shè)計(jì),降低了本錢;以美國(guó)MAXIM/DALLAS半導(dǎo)體公司的單總線溫度傳感器DS18B20為核心,以ATMEL公司的AT89S52為控制器設(shè)計(jì)的DS18B20溫度控制器結(jié)構(gòu)簡(jiǎn)單、測(cè)溫準(zhǔn)確、具有一定控制功能的智能溫度控制器研究?jī)?nèi)容采用數(shù)字式溫度傳感器為檢測(cè)器件,進(jìn)行單點(diǎn)溫度檢測(cè)。用單片機(jī)作為數(shù)字溫度計(jì)的控制系統(tǒng),用數(shù)碼管直接顯示溫度值?!?〕檢測(cè)的溫度范圍:0℃~100℃℃?!?〕用4位數(shù)碼管來顯示溫度值。擬到達(dá)目標(biāo)設(shè)計(jì)出來的電子溫度計(jì)能夠精確的測(cè)量出溫度值,能夠顯示0℃~100℃的溫度.第2章數(shù)字溫度計(jì)總體詳細(xì)設(shè)計(jì)數(shù)字溫度計(jì)設(shè)計(jì)方案論證方案一:熱敏電阻由于本設(shè)計(jì)是測(cè)溫電路,可以使用熱敏電阻之類的器件利用其感溫效應(yīng)[1],在將隨被測(cè)溫度變化的電壓或電流采集過來,進(jìn)行A/D轉(zhuǎn)換后[2],就可以用單片機(jī)進(jìn)行數(shù)據(jù)的處理,在顯示電路上,就可以將被測(cè)溫度顯示出來,這種設(shè)計(jì)需要用到A/D轉(zhuǎn)換電路,感溫電路比擬麻煩[3]。感溫元件如圖1:圖1熱敏電阻方案二:溫度傳感器DS18B20(1).進(jìn)而考慮到用溫度傳感器,在現(xiàn)代設(shè)計(jì)中,溫度的檢測(cè)大都是使用傳感器,這是非常容易想到的,所以可以采用一只溫度傳感器DS18B20,此傳感器,可以很容易直接讀取被測(cè)溫度值,進(jìn)行轉(zhuǎn)換,就可以滿足設(shè)計(jì)要求。從以上兩種方案,很容易看出,采用方案二,電路比擬簡(jiǎn)單,軟件設(shè)計(jì)也比擬簡(jiǎn)單,故采用了方案二。(2).方案二的總體設(shè)計(jì)框圖溫度計(jì)電路總體框圖設(shè)計(jì)思路如圖2所示,其中,主控制器采用AT89C2051,溫度采集模塊為DS18B20,溫度顯示用4位LED數(shù)碼管以串口傳送數(shù)據(jù)的方式實(shí)現(xiàn)[4]。DS18B20DS18B20AT89C2051主控制器顯示電路掃描驅(qū)動(dòng)圖2總體設(shè)計(jì)方框圖方案三:控制內(nèi)核不用單片機(jī),用DSP主控制器LED顯示溫度傳感器單片機(jī)復(fù)位主控制器LED顯示溫度傳感器單片機(jī)復(fù)位時(shí)鐘振蕩報(bào)警點(diǎn)按鍵調(diào)整第3章數(shù)字溫度計(jì)詳細(xì)設(shè)計(jì)3.1主控制器AT89C20513.1.1AT89C2051的主要性能1、含可重編程的2KBFLASH存儲(chǔ)器〔10000次〕;2、電壓適應(yīng)范圍寬,2.7-6V電壓范圍;3、15條可編程I/O線;4、128*8位內(nèi)部RAM;5、和MCS-51產(chǎn)品兼容;6、全靜態(tài)工作:0Hz-24MHz;7、2級(jí)程序存儲(chǔ)器保密鎖定;8、可編程串行通道;9、兩個(gè)16位定時(shí)器/計(jì)數(shù)器;10、6個(gè)中斷源;11、可直接驅(qū)動(dòng)LED的輸出端口;12、高精度電壓比擬器;引腳說明AT89C2051PDIP/SOICAT89C2051RST/VPP VCCXTAL2XTAL1(INT0)P3〔INT1〕(TO)P3.4P1.1(AIN1)(T1)P3.5P1.0(AIN0)GNDAT89C2051圖3AT89C2051的引腳圖AT89C205的引腳圖如圖3所示,各引腳功能如下:1、VCC:電源電壓。2、GND:地。3、P3口:P3口的P3.0~P3.5、P3.7是帶有內(nèi)部上拉電阻的七個(gè)雙向I/O口引腳。P3.6用于固定輸入片內(nèi)比擬器的輸出信號(hào)并且它作為一通用I/O引腳而不可訪問。P3口緩沖器可吸收20mA電流。當(dāng)P3口寫入“1”時(shí),它們被內(nèi)部上拉電阻拉高并可用作輸入端。用作輸入時(shí),被外部拉低的P3口腳將用上拉電阻而流出電流。P3口還用于實(shí)現(xiàn)AT89C2051的各種第二功能,如表1所列:表1AT89C2051P3口的各種第二功能引腳口功能RXD串行輸入端口P3.1TXD串行輸出端口P3.2INT0外中斷0P3.3INT1外中斷1P3.4T0定時(shí)器0外部輸入P3.5T1定時(shí)器1外部輸入P3口還接收一些用于閃速存儲(chǔ)器編程和程序校驗(yàn)的控制信號(hào)。4、P1口:P1口是一個(gè)8位雙向I/O口??谝_P1.2~P1.7提供內(nèi)部上拉電阻,P1.和還分別作為片內(nèi)精密模擬比擬器的反相輸入和(AIN1)同相輸〔ANI0)。P1口作為輸出緩沖器可吸收20mA電流并能直接驅(qū)動(dòng)LED顯示。當(dāng)P!口引腳寫入“1〞時(shí),他可作為輸入端,當(dāng)引腳P1.2~P1.7用作輸入并被外部拉低時(shí),它們將因內(nèi)部的寫入“1〞時(shí),其可用作輸入端。當(dāng)引腳P1.2~P1.7用作輸入并被外部拉低時(shí),它們將因內(nèi)部的上拉電阻而流出電流[5]。5、XTAL2:振蕩器反相放大器的輸出端。6、RST:復(fù)位輸入。RST一旦變成高電平所有的I/O引腳就復(fù)位到“1〞。當(dāng)振蕩器正在運(yùn)行時(shí),持續(xù)給出RST引腳兩個(gè)機(jī)器周期的高電平便可完成復(fù)位。每一個(gè)機(jī)器周期需12個(gè)振蕩器或時(shí)鐘周期。7、XTAL1:振蕩器反相器的輸入端和內(nèi)部時(shí)鐘發(fā)生器的輸入。DS18B20溫度傳感器是美國(guó)推出的第一片支持“一線總線〞接口的溫度傳感器它具有微型化、低功耗、高抗性、易配處理器等優(yōu)點(diǎn),可直接將溫度轉(zhuǎn)化為串行數(shù)字信號(hào)供處理器處理,并且可根據(jù)實(shí)際要求通過簡(jiǎn)單的編程實(shí)現(xiàn)9~12位的數(shù)字值讀數(shù)方式[6]。TO-92封裝的DS18B20的引腳排列見圖4,其引腳功能描述見表2。圖4〔底視圖〕DS18B20表2DS18B20詳細(xì)引腳功能描述序號(hào)名稱引腳功能描述1GND地信號(hào)2DQ數(shù)據(jù)輸入/輸出引腳。開漏單總線接口引腳。當(dāng)被用著在寄生電源下,也可以向器件提供電源。3VDD可選擇的VDD引腳。當(dāng)工作于寄生電源時(shí),此引腳必須接地。DS18B20的性能特點(diǎn)如下:●接口為獨(dú)特的單線方式,它與微機(jī)處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微機(jī)處理器與DS18B20的雙向通信●支持多網(wǎng)點(diǎn)測(cè)組網(wǎng)功能,多個(gè)DS18B20可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)組網(wǎng)點(diǎn)測(cè)溫;●在使用中無(wú)需任何外圍元件,全部傳感器元件及轉(zhuǎn)換電路集成在形如一只三級(jí)管的集成電路內(nèi);●適應(yīng)電壓范圍寬,電壓范圍為3.0~5.5V;●可編程分辨率為9~12;●;●負(fù)電壓特性,當(dāng)電源接負(fù)極性時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,但不能完成溫度的測(cè)量;DS18B20采用3腳PR-35封裝或8腳SOIC封裝,SOIC是指一類封裝的集合,其包含了SOP、SSOP、TSSOP等封裝。SOIC是外表貼裝集成電路封裝形式中的一種,它比同等的DIP封裝減少約30-50%的空間,厚度方面減少約70%。與對(duì)應(yīng)的DIP封裝有相同的插腳引線。對(duì)這類封裝的命名約定是在SOIC或SO后面加引腳數(shù)。其內(nèi)部結(jié)構(gòu)框圖如圖5所示。CC64位ROM和單線接口高速緩存存儲(chǔ)器與控制邏輯溫度傳感器高溫觸發(fā)器TH低溫觸發(fā)器TL配置存放器8位CRC發(fā)生器VddI/OI/O圖5DS1DS18B20內(nèi)部結(jié)構(gòu)64位ROM的結(jié)構(gòu)起始的8位是產(chǎn)品類型的編號(hào),接下來就是每一個(gè)器件單獨(dú)對(duì)應(yīng)的序號(hào),一起有48位,最后的8位是前面各位的循環(huán)冗余度檢測(cè)碼,這是DS18B20可以進(jìn)行單線通信的原理。DS18B20溫度傳感器的內(nèi)部存儲(chǔ)器還包括一個(gè)高速暫存RAM和一個(gè)非易失性的可電擦除的EERAM[7]。其中,高速暫存RAM為一個(gè)八字節(jié)的存儲(chǔ)器,結(jié)構(gòu)如圖5所示[8]。首位的2個(gè)字節(jié)中的數(shù)據(jù)是測(cè)得的溫度值,第3和第4字節(jié)TH和TL的拷貝,是易失的,每次上電復(fù)位時(shí)被刷新。第5個(gè)字節(jié),為配置存放器,它的信息主要包含溫度數(shù)字轉(zhuǎn)換分辨率。DS18B20工作時(shí)存放器中的主要信息是分辨率,它可以轉(zhuǎn)換成與分辨率對(duì)應(yīng)的精度的數(shù)值。該字節(jié)各位的定義如圖6所示。低5位一直為1,工作模式由TM確定,它的主要功能是設(shè)置DS18B20在工作模式還是在測(cè)試模式,R1和R0決定溫度轉(zhuǎn)換的精度位數(shù),用來設(shè)置分辨率。溫度LSB溫度MSBTH用戶字節(jié)1TL用戶字節(jié)2配置存放器保存保存保存CRC
圖6DS18B20字節(jié)定義由表3可見,DS18B20中需要花費(fèi)較長(zhǎng)的時(shí)間進(jìn)行溫度的轉(zhuǎn)換,并且當(dāng)分辨率越高,溫度數(shù)據(jù)轉(zhuǎn)換花費(fèi)的時(shí)間越長(zhǎng)。所以,在實(shí)際的情況中當(dāng)中必須綜合考慮分辨率和溫度的轉(zhuǎn)換時(shí)間。高速暫存RAM的第6、7、8字節(jié)沒有應(yīng)用,全部置1。根據(jù)第9字節(jié)可讀出前面所有8字節(jié)的循環(huán)冗余度碼,由此檢驗(yàn)數(shù)值,用來確定數(shù)值的正確性。當(dāng)DS18B20接收到有主控制器傳送的溫度轉(zhuǎn)換命令后,便立即開始轉(zhuǎn)化。完成轉(zhuǎn)換后的溫度數(shù)值值就以16位帶符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲(chǔ)在高速暫存存儲(chǔ)器的第1、2字節(jié)。讀出該數(shù)據(jù)單片機(jī)通過單線接口讀取,讀數(shù)據(jù)時(shí)高位在后,℃/LSB形式表示。當(dāng)符號(hào)位S=1時(shí),表示測(cè)得的溫度值為負(fù)值,要先將補(bǔ)碼變成原碼[9],當(dāng)符號(hào)位S=0時(shí),表示測(cè)得的溫度值為正值??梢灾苯訉⒍M(jìn)制位轉(zhuǎn)換為十進(jìn)制;,再計(jì)算十進(jìn)制數(shù)值。表4是一局部溫度值對(duì)應(yīng)的二進(jìn)制溫度數(shù)據(jù)。表3DS18B20溫度轉(zhuǎn)換時(shí)間表R1R0分辨率/位溫度最大轉(zhuǎn)換時(shí)間/ms009011010113751112750在64位ROM的最高有效字節(jié)中存儲(chǔ)有循環(huán)冗余檢驗(yàn)碼〔CRC〕。主機(jī)ROM的前56位是用來計(jì)算CRC值,并和存入DS18B20的循環(huán)冗余檢驗(yàn)碼值作比擬,以確認(rèn)主機(jī)收到的ROM數(shù)據(jù)是否正確。3.2.1DS18B20的測(cè)溫原理DS18B20的測(cè)溫具體步驟為,由于高溫度系數(shù)晶振的震蕩頻率隨溫度變化很大,它產(chǎn)生的脈沖信號(hào)作可作為減法計(jì)數(shù)器2的脈沖輸入;元器件中的低溫度系數(shù)晶振隨著溫度的變化的振蕩頻率的變化比擬小,所以它可以發(fā)出固定頻率的脈沖信號(hào)傳給減法計(jì)數(shù)器1。斜率累加器斜率累加器預(yù)置預(yù)置比擬比擬預(yù)置低溫度系數(shù)晶振計(jì)數(shù)器1預(yù)置低溫度系數(shù)晶振計(jì)數(shù)器1溫度存放器=0加1溫度存放器=0高溫度系數(shù)晶振計(jì)數(shù)器2高溫度系數(shù)晶振計(jì)數(shù)器2=0停止=0圖7DS18B20測(cè)溫原理器件中還存在有單個(gè)的計(jì)數(shù)門,計(jì)數(shù)門翻開時(shí)間的長(zhǎng)短決定于高溫度系數(shù)振蕩器,當(dāng)計(jì)數(shù)門開啟時(shí),DS18B20就對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖進(jìn)行計(jì)數(shù)進(jìn)而完成溫度測(cè)量。而每次測(cè)量前,首先將-55℃所對(duì)應(yīng)的一個(gè)基數(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重新開始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到減法計(jì)數(shù)器計(jì)數(shù)到0時(shí),停止溫度存放器的累加,此時(shí)溫度存放器中的數(shù)值就是所測(cè)溫度值。其輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)器門仍未關(guān)閉就重復(fù)上述過程,直到溫度存放器值大致被測(cè)溫度值。表4一局部溫度對(duì)應(yīng)值表溫度/℃二進(jìn)制表示十六進(jìn)制表示+125000001111101000007D0H+8500000101010100000550H00000001100100000191H000000001010000100A2H00000000000000100008H000000000000010000000H1111111111110000FFF8H1111111101011110FF5EH1111111001101111FE6FH-551111110010010000FC90H3.2.2溫度數(shù)據(jù)的計(jì)算處理方法從DS18B20讀出的二進(jìn)制值必須先轉(zhuǎn)換成十進(jìn)制值[10],表4中列出了一些局部十進(jìn)制溫度值轉(zhuǎn)化成二進(jìn)制和十六進(jìn)制的溫度值。DS18B20可選的換位精度有9到12位的換位精度,為了使數(shù)值更加的精確,一般采用12位的精度。在計(jì)算實(shí)際的十進(jìn)制溫度時(shí),必須把溫度存放器里的實(shí)際溫度乘以0,0625。這是由于在使用12位的轉(zhuǎn)換精度時(shí),溫度存放器里的數(shù)是采用的0.0625的步進(jìn)方式。一個(gè)十進(jìn)制的數(shù)和二進(jìn)制的數(shù)存在著固定的轉(zhuǎn)換關(guān)系,就是把二進(jìn)制的低字節(jié)的高半字節(jié)和高字節(jié)的低半字節(jié)組成一字節(jié),把這個(gè)2進(jìn)制的數(shù)值轉(zhuǎn)換成十進(jìn)制的數(shù)后,該數(shù)值就是就是溫度的十進(jìn)制數(shù)值,剩下的字節(jié)轉(zhuǎn)變成十進(jìn)制的數(shù)后,就是該溫度十進(jìn)制輸?shù)男?shù)局部。因?yàn)樾?shù)局部是半字節(jié),所以二進(jìn)制值范圍是0-F,轉(zhuǎn)換成十進(jìn)制小數(shù)值就是0,0625的倍數(shù)〔0-15倍〕。表5中列出了一些二進(jìn)制與十進(jìn)制的近似對(duì)應(yīng)關(guān)系。實(shí)際應(yīng)用不必有這么高的精度,只要用1個(gè)LED數(shù)碼管顯示小數(shù)局部就行℃。表5就是二進(jìn)制與十進(jìn)制的近似對(duì)應(yīng)關(guān)系表小數(shù)局部二進(jìn)制值0123456789ABCDEF十進(jìn)制值0011233455667889另外,由于DS18B20單線通信功能是分時(shí)完成的,有嚴(yán)格的時(shí)隙概念,因此讀/寫時(shí)序很重要。系統(tǒng)對(duì)DS18B20的各種操作必須按協(xié)議進(jìn)行。操作協(xié)議為:初始化DS18B20〔發(fā)復(fù)位脈沖〕——發(fā)ROM功能命令——發(fā)存儲(chǔ)器操作命令——處理數(shù)據(jù)。3.3DS18B20與單片機(jī)的接口電路DS18B20可以采用兩種方式供電,一種是寄生電源供電方式,如圖8所示單片機(jī)端口接單線總線,這是一種獨(dú)特的連線方式,電源線和信號(hào)線連接在一起,每一個(gè)芯片可單獨(dú)進(jìn)行編碼,這樣就能節(jié)省大量的連線和各種邏輯電路,使占用的微機(jī)處理器端口更少。另一種方法是使用電源直接供電,此時(shí)DS18B20的1腳接地,2腳直接與單片機(jī)相連,作為通信線,3腳連接電源。DS18B20DS18B20DS18B20DS18B20單片機(jī)VCCVCC圖8DS18B20與單片機(jī)的接口電路圖當(dāng)DS18B20處于寫存儲(chǔ)器操作和溫度A/D轉(zhuǎn)換操作時(shí),總線上必須有強(qiáng)的上拉,上拉開啟時(shí)間最大為10us。采用寄生電源供電方式時(shí)VDD端接地。由于單線制只有一根線,因此發(fā)送接口必須是三態(tài)的。第四章硬件電路的設(shè)計(jì)4.1電路仿真圖圖4.1電路仿真圖第五章系統(tǒng)的程序設(shè)計(jì)系統(tǒng)程序主要包括主程序、溫度轉(zhuǎn)換命令子程序、顯示數(shù)據(jù)刷新子程序、讀出溫度子程序、計(jì)算溫度子程序等。5.1主程序主程序的主要功能是把測(cè)出的溫度顯示出來,并且能讀出DS18B20的所測(cè)量到的溫度數(shù)值,溫度測(cè)量的時(shí)間為1S,這樣就可以每隔一定的時(shí)間測(cè)量一次溫度。Y發(fā)DS18B20復(fù)位命令Y發(fā)DS18B20復(fù)位命令發(fā)跳過ROM命令發(fā)讀取溫度命令讀取操作,CRC校驗(yàn)9字節(jié)完?CRC校驗(yàn)正確?移入溫度暫存器結(jié)束NNYN初始化調(diào)用顯示子程序1s到?初次上電?讀出溫度值溫度計(jì)算處理顯示數(shù)據(jù)刷新發(fā)溫度轉(zhuǎn)換開始命令NYY圖9主程序流程圖圖10讀出溫度子程序流程圖5.2讀出溫度子程序讀出溫度子程序的主要功能是通過發(fā)出DS18B20復(fù)位命令后,發(fā)出讀取命令后來讀RAM中的9字節(jié),并在讀數(shù)據(jù)時(shí)進(jìn)行循環(huán)冗余度檢驗(yàn),如果發(fā)現(xiàn)檢驗(yàn)錯(cuò)誤,不能改寫溫度的數(shù)據(jù)。其程序流程圖如圖10所示。5.3溫度轉(zhuǎn)換命令子程序溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令。在這次設(shè)計(jì)中,使用的方法是1S的延時(shí)程序,使溫度轉(zhuǎn)換程序有充足的時(shí)間得以完成。溫度轉(zhuǎn)換命令子程序流程圖如圖11所示。發(fā)DS18B20復(fù)位命發(fā)DS18B20復(fù)位命令發(fā)跳過ROM命令發(fā)溫度轉(zhuǎn)換開始命令結(jié)束圖11溫度轉(zhuǎn)換命令子程序流程圖5.4計(jì)算溫度子程序計(jì)算溫度子程序?qū)AM中讀取值進(jìn)行BCD碼的轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的判定,其程序流程圖如圖12所示。5.5顯示數(shù)據(jù)刷新子程序顯示數(shù)據(jù)刷新子程序的功能是對(duì)顯示緩沖器數(shù)據(jù)進(jìn)行刷新操作,當(dāng)最高顯示位為0時(shí)將符號(hào)顯示位移入下一位。程序流程圖如圖13所示。YNYNY溫度數(shù)據(jù)移入顯示存放器十位數(shù)0?百位數(shù)0?十位數(shù)顯示符號(hào)百位數(shù)不顯示百位數(shù)顯示數(shù)據(jù)〔不顯示符號(hào)〕結(jié)束NY開始溫度零下?溫度值取補(bǔ)碼置“-〞標(biāo)志計(jì)算小數(shù)位溫度BCD值計(jì)算整數(shù)位溫度BCD值結(jié)束置“+〞標(biāo)志N圖12計(jì)算溫度子程序流程圖圖13顯示數(shù)據(jù)刷新子程序流程圖參考文獻(xiàn):[1]、康華光主編.電子技術(shù)根底模擬局部[M].第五版.北京:高等教育出版社,2005[2]、康華光主編.電子技術(shù)根底數(shù)字局部[M].第五版.北京:高等教育出版社,2005[3]、WilliamKeith.DigitalElectronics,--APracticalApproach.6thEd.NewJersey:Prentice-HallUpperSaddleRiver,2002[4]、吳景邀.單片機(jī)的鍵盤及LED數(shù)碼管顯示接口[J][5]、黃苑虹,梁惠冰.基于AT89C52的溫度測(cè)控系統(tǒng)[J][6]、GJiangMZhang,XXie,SLi.ApplicationontemperaturecontrolofDS18B20[J].ControlEngineeringofChina,2003[7][J].現(xiàn)代電子技術(shù).2003[8]、張毅剛主編?單片機(jī)原理及應(yīng)用?[M].北京:高等教育出版社,2003[9]、王志力主編?C語(yǔ)言程序設(shè)計(jì)?[M]。天津:天津科學(xué)技術(shù)出版社,2021[10]、BrianW.Kernighan,?TheCprogrammingLanguage2?[M].北京.機(jī)械工業(yè)出版社2006致謝:經(jīng)過幾個(gè)月的忙碌和工作,本次畢業(yè)設(shè)計(jì)已經(jīng)接近尾聲,由于經(jīng)驗(yàn)的匱乏,難免有許多考慮不周的地方,如果沒有導(dǎo)師的催促指導(dǎo),想要完成這個(gè)設(shè)計(jì)是難以想象的。在這里要感謝李銘華老師,他循導(dǎo)善誘的教導(dǎo)和不拘一格的思路給予我無(wú)盡的啟迪;他嚴(yán)謹(jǐn)細(xì)致,一絲不茍的作風(fēng)一直是我們工作.學(xué)習(xí)中的典范;并將積極影響我今后的學(xué)習(xí)和工作。然后要感謝大學(xué)4年來的所有老師,為我們打下了電子專業(yè)知識(shí)的根底;同時(shí)還要感謝08電科所有的同學(xué)們,正是因?yàn)橛心銈兊闹С趾凸膭?lì)。我才能在溫暖的環(huán)境中茁壯成長(zhǎng)并順利完成畢業(yè)設(shè)計(jì)。附錄一DS18B20的各條ROM命令ReadROM[33H]。這條命令允許總線控制器讀到DS18B20的8位系列編碼、唯一的序列號(hào)和8位CRC碼。只有在總線上存在單只DS18B20時(shí),才能使用該命令。
如果總線上有不止一個(gè)從機(jī),那么當(dāng)所有從機(jī)試圖同時(shí)傳送信號(hào)時(shí)就會(huì)發(fā)生數(shù)據(jù)沖突〔漏極開路連在一起形成相“與〞的效果〕。
2.MatchROM[55H]。這是一條匹配ROM命令,后跟64位ROM序列,讓總線控制器在多點(diǎn)總線上定位一只特定的DS18B20。只有與64位ROM序列完全匹配的DS18B20才能響應(yīng)隨后的存儲(chǔ)器操作。所有與64位ROM序列不匹配的從機(jī)都將等待復(fù)位脈沖。這條命令在總線上有單個(gè)或多個(gè)器件時(shí)都可以使用。
3.SkipROM[0CCh=H]。這條命令允許總線控制器不用提供64位ROM編碼就使用存儲(chǔ)器操作命令,在單點(diǎn)總線情況下,可以節(jié)省時(shí)間。如果總線上不止一個(gè)從機(jī),那么在SkipROM命令之后跟著發(fā)一條讀命令。由于多個(gè)從機(jī)同時(shí)傳送信號(hào),所以總線上就會(huì)發(fā)生數(shù)據(jù)沖突〔漏極開路下拉效果相當(dāng)于相“與〞〕。
4.SearchROM[0F0H]。當(dāng)一個(gè)系統(tǒng)初次啟動(dòng)時(shí),總線控制器可能并不知道單線總線上有多少器件或它們的64位ROM編碼。搜索ROM命令允許總線控制器用排除法識(shí)別總線上的所有從機(jī)的64位編碼。
5.AlarmSearch[0ECH]。這條命令的流程與SearchROM相同。然而,只有在最近一次測(cè)溫后遇到符合報(bào)警條件的情況下,DS18B20才會(huì)響應(yīng)這條命令。報(bào)警條件定義為溫度高于TH或低于TL。只要DS18B20不掉電,報(bào)警狀態(tài)將一直保持,直到再一次測(cè)得的溫度值達(dá)不到報(bào)警條件。
6.WriteScratchpad[4EH]。這條命令向DS18B20的暫存器TH和TL中寫入數(shù)據(jù)??梢栽谌魏螘r(shí)刻發(fā)出復(fù)位命令來中止寫入。
7.Readscratchpad[0BEH]。這條命令讀取暫存器的內(nèi)容。讀取將從第一字節(jié)開始,一直進(jìn)行下去,直到第九字節(jié)(CRC)讀完。如果不想讀完所有字節(jié),那么控制器可以在任何時(shí)間發(fā)出復(fù)位命令來中止讀取。
8.Copyscratchpad[48H]。這條命令把暫存器的內(nèi)容拷貝到DS18B20的E2PROM存儲(chǔ)器里,即把溫度報(bào)警觸發(fā)字節(jié)存入非易失性存儲(chǔ)器里。如果總線控制器在這條命令之后跟著發(fā)出讀時(shí)間隙,而DS18B20又忙于把暫存器拷貝到E2PROM存儲(chǔ)器,那么DS18B20就會(huì)輸出一個(gè)0,如果拷貝結(jié)束那么DS18B20輸出1。如果使用寄生電源,那么總線控制器必須在這條命令發(fā)出后立即啟動(dòng)強(qiáng)上拉,并最少保持10ms。
9.Convert[44H]。這條命令啟動(dòng)一次溫度轉(zhuǎn)換而無(wú)需其他數(shù)據(jù)。溫度轉(zhuǎn)換命令被執(zhí)行后DS18B20保持等待狀態(tài)。如果總線控制器在這條命令之后跟著發(fā)出讀時(shí)間隙,而DS18B20又忙于做時(shí)間轉(zhuǎn)換,那么DS18B20將在總線上輸出0;如果溫度轉(zhuǎn)換完成,那么輸出1.如果使用寄生電源,那么總線控制器必須在發(fā)出這條命令后立即啟動(dòng)強(qiáng)上拉,并保持500ms以上時(shí)間。
10.RecallE2[0B80H]。這條命令把報(bào)警觸發(fā)器里的值拷貝回暫存器。這種拷貝操作在DS18B20上電時(shí)自動(dòng)執(zhí)行,這樣器件一上電暫存器里馬上就存在有效的數(shù)據(jù)了。假設(shè)在這條命令發(fā)出之后讀數(shù)據(jù)隙,器件會(huì)輸出溫度轉(zhuǎn)換忙的標(biāo)識(shí):0表示忙;1表示完成。
11.ReadPowerSupply[0B4H]。假設(shè)把這條命令發(fā)給DS18B20后發(fā)出讀時(shí)間隙,器件會(huì)返回它的電源模式:0表示寄生電源;1表示外部電源。附錄二/*********************************************************************/////DS18B20溫度計(jì)C程序///*********************************************************************///使用AT89C2051單片機(jī),12MHZ晶振,用共陽(yáng)LED數(shù)碼管//P1口輸出段碼,P3口掃描//#pragmasrc(d:\aa.asm)#include"reg51.h"#include"intrins.h"http://_nop_();延時(shí)函數(shù)用#defineDisdataP1//段碼輸出口#definediscanP3//掃描口#defineucharunsignedchar#defineuintunsignedintsbitDQ=P3^7;//溫度輸入口sbitDIN=P1^7;//LED小數(shù)點(diǎn)控制uinth;//////*******溫度小數(shù)局部用查表法**********//ucharcodeditab[16]={0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09};//ucharcodedis_7[12]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff,0xbf};/*共陽(yáng)LED段碼表"0""1""2""3""4""5""6""7""8""9""不亮""-"*/ucharcodescan_con[4]={0xfe,0xfd,0xfb,0xf7};//列掃描控制字uchardatatemp_data[2]={0x00,0x00};//讀出溫度暫放uchardatadisplay[5]={0x00,0x00,0x00,0x00,0x00};//顯示單元數(shù)據(jù),共4個(gè)數(shù)據(jù),一個(gè)運(yùn)算暫存用///////***********11微秒延時(shí)函數(shù)**********///voiddelay(uintt){for(;t>0;t--);}///***********顯示掃描函數(shù)**********/scan(){chark;for(k=0;k<4;k++)//四位LED掃描控制{Disdata=dis_7[display[k]];if(k==1){DIN=0;}discan=scan_con[k];delay(90);discan=0xff;}}/////***********18B20復(fù)位函數(shù)**********/ow_reset(void){charpresence=1;while(presence){while(presence){ DQ=1;_nop_();_nop_(); DQ=0;// delay(50);//550us DQ=1;// delay(6);//66us presence=DQ;//presence=0繼續(xù)下一步}delay(45);//延時(shí)500uspresence=~DQ;}DQ=1;}/////**********18B20寫命令函數(shù)*********///向1-WIRE總線上寫一個(gè)字節(jié)voidwrite_byte(ucharval){uchari;for(i=8;i>0;i--)//{DQ=1;_nop_();_nop_();DQ=0
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年西師新版四年級(jí)英語(yǔ)上冊(cè)月考試卷含答案
- 2025年外研版2024八年級(jí)生物上冊(cè)階段測(cè)試試卷含答案
- 2025年人教新起點(diǎn)三年級(jí)英語(yǔ)上冊(cè)月考試卷
- 2025年冀少新版九年級(jí)物理上冊(cè)月考試卷含答案
- 家教方法在當(dāng)今社會(huì)的實(shí)踐與創(chuàng)新發(fā)展
- 家庭環(huán)境對(duì)血透室服務(wù)質(zhì)量的影響研究
- 學(xué)院教學(xué)團(tuán)隊(duì)的領(lǐng)導(dǎo)力培養(yǎng)與提升
- 2024版公司正式員工勞動(dòng)合同書
- 2024生鮮乳電商平臺(tái)定制購(gòu)銷及品牌推廣合同3篇
- 2024數(shù)據(jù)中心服務(wù)合同-云計(jì)算服務(wù)商
- 蔣詩(shī)萌小品《誰(shuí)殺死了周日》臺(tái)詞完整版
- 組織知識(shí)清單
- 《中華人民共和國(guó)職業(yè)分類大典》電子版
- 教程adams壓縮包群文件msc event files
- 肺功能檢查指南
- 海商法術(shù)語(yǔ)中英對(duì)照
- 自動(dòng)酸洗生產(chǎn)線設(shè)計(jì)方案
- 地下水水資源論證報(bào)告書
- 【家庭自制】 南北香腸配方及28種制作方法
- 電梯調(diào)度問題模型(共3頁(yè))
- 廠房施工總結(jié)報(bào)告
評(píng)論
0/150
提交評(píng)論