《數(shù)字式溫度計的設(shè)計》畢業(yè)設(shè)計[1]_第1頁
《數(shù)字式溫度計的設(shè)計》畢業(yè)設(shè)計[1]_第2頁
《數(shù)字式溫度計的設(shè)計》畢業(yè)設(shè)計[1]_第3頁
《數(shù)字式溫度計的設(shè)計》畢業(yè)設(shè)計[1]_第4頁
《數(shù)字式溫度計的設(shè)計》畢業(yè)設(shè)計[1]_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、摘 要隨著人們生活水平的不斷提高,單片機(jī)控制無疑是人們追求的目標(biāo)之一,它所給人帶來的方便也是不可否定的,其中數(shù)字溫度計就是一個典型的例子,但人們對它的要求越來越高,要為現(xiàn)代人工作、科研、生活、提供更好的更方便的設(shè)施就需要從數(shù)單片機(jī)技術(shù)入手,一切向著數(shù)字化控制,智能化控制方向發(fā)展。 本設(shè)計所介紹的數(shù)字溫度計與傳統(tǒng)的溫度計相比,具有讀數(shù)方便,測溫范圍廣,測溫準(zhǔn)確,其輸出溫度采用數(shù)字顯示,主要用于對測溫比較準(zhǔn)確的場所,或科研實(shí)驗(yàn)室使用,該高精度數(shù)字式溫度計采用了由DALLAS公司生產(chǎn)的單線數(shù)字溫度傳感器DS18B20,它具有獨(dú)特的單線總線接口方式。本畢業(yè)論文詳細(xì)的介紹了單線數(shù)字溫度傳感器DS18B2

2、0的測量原理、特性以及在溫度測量中的硬件和軟件設(shè)計,該溫度計具有接口簡單、精度高、抗干擾能力強(qiáng)、工作穩(wěn)定可靠等特點(diǎn)。二、總體方案設(shè)計1、數(shù)字溫度計設(shè)計方案論證2.1.1方案一由于本設(shè)計是測溫電路,可以使用熱敏電阻之類的器件利用其感溫效應(yīng),在將隨被測溫度變化的電壓或電流采集過來,進(jìn)行A/D轉(zhuǎn)換后,就可以用單片機(jī)進(jìn)行數(shù)據(jù)的處理,在顯示電路上,就可以將被測溫度顯示出來,這種設(shè)計需要用到A/D轉(zhuǎn)換電路,感溫電路比較麻煩。2.1.2 方案二 進(jìn)而考慮到用溫度傳感器,在單片機(jī)電路設(shè)計中,大多都是使用傳感器,所以這是非常容易想到的,所以可以采用一只溫度傳感器DS18B20,此傳感器,可以很容易直接讀取被測溫

3、度值,進(jìn)行轉(zhuǎn)換,就可以滿足設(shè)計要求。從以上兩種方案,很容易看出,采用方案二,電路比較簡單,軟件設(shè)計也比較簡單,故采用了方案二。2.2方案二的總體設(shè)計框圖溫度計電路設(shè)計總體設(shè)計方框圖如圖1所示,控制器采用單片機(jī)AT89S51,溫度傳感器采用DS18B20,用3位LED數(shù)碼管以串口傳送數(shù)據(jù)實(shí)現(xiàn)溫度顯示。2、硬件設(shè)計1.1 工作原理及硬件框圖基于DS18B20的溫度測量裝置電路圖如圖1所示,包括單片機(jī)最小系統(tǒng)、溫度傳感器、和顯示電路。溫度傳感器DS18B20將被測環(huán)境溫度轉(zhuǎn)化成帶符號的數(shù)字信號(以十六位補(bǔ)碼形式,占兩個字節(jié)),單片機(jī)對接收到的數(shù)字信號進(jìn)行標(biāo)度變換,轉(zhuǎn)換成實(shí)際的溫度值并送數(shù)碼管顯示。D

4、S18B20傳感器可置于離裝置150米以內(nèi)的任何地方。 STC89C51是整個電路裝置的控制核心,STC89C51內(nèi)帶4K字節(jié)的FlashROM,用戶程序存放在此。圖2 系統(tǒng)硬件框圖3、 系統(tǒng)分析:本設(shè)計主要的任務(wù)是單片機(jī)軟件的設(shè)計,而軟件中的核心在于單片機(jī)與集成溫度傳感器DS18B20接口程序的設(shè)計,另外一點(diǎn)便是對數(shù)碼管掃描顯示的理解與運(yùn)用。由于DS18B20集成了溫度數(shù)據(jù)采集、模數(shù)轉(zhuǎn)換于一體,因此外圍電路非常簡單。在進(jìn)行軟件設(shè)計前,須對該芯片反復(fù)研究,掌握其核心內(nèi)容,其實(shí)程序在廠家提供的應(yīng)用資料中也可以找到,關(guān)鍵是要對其工作過程的理解。對數(shù)碼管掃描顯示的程序設(shè)計,只要理解了其顯示的工作原理

5、,也不是可以掌握的。3.1、制作重點(diǎn):讀取DS18B20的時序由于對DS18B20傳感器數(shù)據(jù)的讀取有一定的時序要求,因此在編寫軟件時要特別注意,先反復(fù)讀懂該器件的讀、寫時序,然后根據(jù)所選用的晶振計算出機(jī)器周期的時間,為了使計算簡單,在設(shè)計時將晶振選用12M,因?yàn)?1系列單片機(jī)一個機(jī)器周期正好是12個時鐘周期,因此選用12M晶振時,一個機(jī)器周期正好是1微秒,這樣計算時間比較方便。對讀取數(shù)據(jù)的處理從DS18B20芯片的資料中可以看出,其數(shù)據(jù)存儲器的分配為:存儲數(shù)據(jù)與溫度的對應(yīng)關(guān)系見下表:從以上的分析可以看出,溫度值存儲于兩個字節(jié)單元中,溫度與存儲器的對應(yīng)關(guān)系為:整個溫度值由16位二進(jìn)制數(shù)表示,最高

6、的5位為符號為,為零時代表正的溫度值,為“1”時,代表的是負(fù)溫度值,真正表示溫度的是后11位數(shù)據(jù),最低的四位表示小數(shù)位,其中0單元的高四位和1單元的低四位組合正好形成測得的溫度整數(shù)值,這樣我們在對讀取的數(shù)據(jù)在進(jìn)行處理時,只需將0單元的高四位和1單元的低四位通過重新組合,形成一個新的8位數(shù)據(jù),這個數(shù)據(jù)便是測得的溫度數(shù)值,但這是個16進(jìn)制的數(shù)據(jù),要輸出10進(jìn)制數(shù)進(jìn)行顯示,要進(jìn)行相應(yīng)的轉(zhuǎn)換操作,至于將16進(jìn)制數(shù)轉(zhuǎn)換成10進(jìn)制數(shù)據(jù)的匯編程序。數(shù)碼掃描輸出的處理為了節(jié)省單片機(jī)端口,輸出顯示采用掃描的方式進(jìn)行。利用人眼對光的停留效應(yīng),通過電子開關(guān)的控制,節(jié)合顯示數(shù)據(jù)的配合,完成三位數(shù)碼管的掃描顯示。4、

7、溫度測量電路目前市面上的數(shù)字溫度傳感器有很多,比如DS18B20、MAX6575、DS1722、MAX6635等。用DS18B20可使系統(tǒng)結(jié)構(gòu)更簡單,可靠性更高。DS18B20是DALLAS公司生產(chǎn)的一線式數(shù)字溫度傳感器,具有3引腳TO92小體積封裝形式;溫度測量范圍為55125,可編程為9位12位A/D轉(zhuǎn)換精度,測溫分辨率可達(dá)0.0625,被測溫度用符號擴(kuò)展的16位數(shù)字量方式串行輸出;其工作電源既可在遠(yuǎn)端引入,也可采用寄生電源方式產(chǎn)生,多個DS18B20可以并聯(lián)到3根或2根線上,CPU只需一根端口線就能與諸多DS18B20通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。DS18B2

8、0的外形如圖2所示,有三個引腳,引腳定義: DQ為數(shù)字信號輸入/輸出端, GND為電源地, VDD為外接供電電源輸入端(在寄生電源接線方式時接地)。 DS18B20中的溫度傳感器可完成對溫度的測量,以12位轉(zhuǎn)化為例:用16位符號擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供,以0.0625/LSB形式表達(dá),其中S為符號位。 這是12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲在18B20的兩個8比特的RAM中,二進(jìn)制中的前面5位是符號位,如果測得的溫度大于0,這5位為0,只要將測到的數(shù)值乘于0.0625即可得到實(shí)際溫度;如果溫度小于0,這5位為1,測到的數(shù)值需要取反加1再乘于0.0625即可得到實(shí)際溫度。 例如+125的數(shù)字

9、輸出為07D0H,+25.0625的數(shù)字輸出為0191H,-25.0625的數(shù)字輸出為FF6FH,-55的數(shù)字輸出為FC90H。 DS18B20與單片機(jī)的接口電路很簡單,如下圖3所示。DS18B20的DQ即2號端于單片機(jī)P26口相接,另外兩個管腳一個接5V電源,另外一個管腳接地。上拉電阻為5.1K的上拉電阻,分別接于單片機(jī)的EA/VP端與P2.7口。上拉電阻作用主要是若溫度傳感器開路或沒接時,能起到上拉作用,使之為高電平,使后讀電路保護(hù)作用。4.3 單片機(jī)最小系統(tǒng)4.3.1 單片機(jī)選型在本次設(shè)計中,主要用單片機(jī)STC89C51來控制。STC89C51是與8051兼容的CHMOS微控制器。其FL

10、ASH存儲器容量為2KB。與CHMOS工藝的89C51一樣,支持軟件選擇的空閑和掉電兩種節(jié)電運(yùn)行方式。性能如下:8位CPU工作電壓范圍2.76V全靜態(tài)工作方式:0Hz24 Hz ;一個可編程串行口;有片內(nèi)精密模擬比較器;2KB的FLASH存儲;128B的數(shù)據(jù)存儲器;15根輸入/輸出線;2個16位定時/計數(shù)器;5個中斷源,2個優(yōu)先級。STC89C51的FLASH存儲器編程:STC89C51單片機(jī)提供了2KB的片內(nèi)FLASH程序存儲器,它允許在系統(tǒng)改寫或用非易失性存儲器編程器編程。FLASH存儲器加密位:STC89C51單片機(jī)有2個加密位??梢跃幊蹋≒)或不編程(U)以獲得不同的加密功能。4.3.

11、2 最小系統(tǒng)圖4 單片機(jī)最小系統(tǒng)時鐘復(fù)位電路如圖4所示,采用12MHz的晶振。復(fù)位電路采用了微分型復(fù)位電路。復(fù)位電路的基本功能是:系統(tǒng)上電時提供復(fù)位信號直至系統(tǒng)電源穩(wěn)定后撤銷復(fù)位信號為可靠起見電源穩(wěn)定后還要經(jīng)一定的延時才撤銷復(fù)位信號以防電源開關(guān)或電源插頭分-合過程中引起的抖動而影響復(fù)位,有效的防止系統(tǒng)有時會出現(xiàn)一些不可預(yù)料的現(xiàn)象,如無規(guī)律可循的“死機(jī)”、“程序走飛”等。4.4 顯示電路主要采用四位一體共陽極LED數(shù)碼管組成,采用動態(tài)法顯示,直接顯示當(dāng)前環(huán)境溫度。P0口接數(shù)碼管的段碼,P1.0-P1.3接數(shù)碼管的位線。按鈕開關(guān)可選擇小數(shù)點(diǎn)后顯示一位或兩位。 4.5 電源電路市電220V經(jīng)過變壓器

12、T1降壓,得到一個交流的16v電壓,再經(jīng)過四個整流二極管整流、C5濾波得到直流電壓,最后經(jīng)過三端集成穩(wěn)壓管穩(wěn)壓,得到一個穩(wěn)定的5V直流電壓。2 軟件設(shè)計在此系統(tǒng)中,主要包括溫度測量、顯示、鍵盤。最主要的程序是溫度測量部分。2.1 系統(tǒng)主流程圖系統(tǒng)上電后,首先對DS18B20進(jìn)行初始化設(shè)置,接著對DS18B20發(fā)出SKIP ROM指令(即跳過ROM存儲器)延時5ms后,對DS18B20發(fā)出啟動溫度轉(zhuǎn)換命令,然后,從DS18B20的暫存儲器中讀出溫度數(shù)據(jù),接著對該數(shù)據(jù)進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換成當(dāng)前環(huán)境溫度。最后將實(shí)際溫度與設(shè)置溫度比較,超過限制則發(fā)出報警。2.2 溫度測量設(shè)計通過STC89C51芯片的一個通

13、用I/O口就可以實(shí)現(xiàn)對智能溫度測量模塊DS18B20的控制。讀取DS18B20測量的溫度主要是通過初始化命令、ROM功能命令、存儲器功能命令、溫度轉(zhuǎn)換命令、讀存儲器命令等組成。冷端溫度補(bǔ)償三、系統(tǒng)軟件算法分析程序命令時序總線命令序列如下:第一步: 初始化第二步: ROM命令(跟隨需要交換的數(shù)據(jù))第三步: 功能命令 (跟隨需要交換的數(shù)據(jù))每次訪問單總線器件,必須嚴(yán)格遵守這個命令序列,如果出現(xiàn)序列混亂,則一線器件不會響應(yīng)單片機(jī)。 基于一線上的所有傳輸過程都時以初始化開始的,初始化過程由單片機(jī)發(fā)出的復(fù)位脈沖和DS18B20的響應(yīng)的應(yīng)答脈沖組成。應(yīng)答脈沖使單片機(jī)知道,總線上有1-WIRE設(shè)備,且準(zhǔn)備就

14、緒。系統(tǒng)中CPU采用12MHz晶振,DQ端接P2.6。RESET子程序RESET:CLR P2.6 ;拉低總線至少480us,否則在溫度較高時會無法完成復(fù)位。MOV R2,#130 ;在調(diào)試過程中發(fā)現(xiàn)延時520uS,測溫值可到110,達(dá)到D1: DJNZ R2,D1 ;DS18B20的技術(shù)參數(shù)。SETB P2.6 ;釋放總線MOV R2,#20D4: DJNZ R2,D4JB P2.6,D0 ;總線若為低,則復(fù)位成功;否則復(fù)位失敗,返回。MOV R2,#110D2: DJNZ R2,D2 ;延時等待復(fù)位過程結(jié)束RET在單片機(jī)檢測到應(yīng)答(presence)脈沖后,就可以發(fā)ROM命令,命令長度為8

15、位。該命令字要通過1-WIRE通信協(xié)議規(guī)定的嚴(yán)格的寫時隙(Write time slots),逐位寫到一線上,DS18B20會自動接收到這些命令,并準(zhǔn)備響應(yīng)相應(yīng)的操作。本系統(tǒng)是單點(diǎn)使用,故只須用到SKIM ROM COMMAND(0CCH),這樣單片機(jī)可以同時訪問總線上的所有設(shè)備,而無須發(fā)出任何ROM代碼信息。例如,單片機(jī)在發(fā)出SKIP ROM命令后跟隨CONVENT T (功能 COMMAND) 即啟動溫度轉(zhuǎn)換命令(44H),值得注意的是:若SKIP ROM 命令后跟的是READ SCRATCHPAD(0BEH)命令(包含其他讀操作命令),則該系統(tǒng)只能用于單點(diǎn)系統(tǒng),否則將由于多個節(jié)點(diǎn)都響應(yīng)該

16、命令而引起數(shù)據(jù)沖突。在單片機(jī)發(fā)出ROM 命令后,接著就可以發(fā)送功能命令,然后DS18B20就開始執(zhí)行命令,本單點(diǎn)應(yīng)用系統(tǒng)中主要用到CONVENT T和READ SCRATCHPAD在執(zhí)行READ SCRATCHPAD命令時,單片機(jī)可以通過發(fā)送RESET脈沖在任何時候中斷數(shù)據(jù)傳輸。讀、寫時序 在對DS18B20進(jìn)行ROM或功能命令字的寫入及對其進(jìn)行讀出操作時,都要求按照嚴(yán)格的1-WIRE通信協(xié)議(時序),以保證數(shù)據(jù)的完整性。其中有寫0、寫1、讀0和讀1時序。在這些時序中,都由單片機(jī)發(fā)出同步信號,并且所有的命令字和數(shù)據(jù)在傳輸?shù)倪^程中都是字節(jié)的LSb在前,這一點(diǎn)于基于其他總線協(xié)議的串行通信格式(比如

17、SPI、 等)不同,它們通常是字節(jié)的MSb在前。讀時序 DS18B20僅在單片機(jī)發(fā)送讀時隙(READ SLOT)時才發(fā)送數(shù)據(jù),所以單片機(jī)在發(fā)送READ SCRATCHPAD命令后必須立即產(chǎn)生讀時隙。所有的讀時隙都要至少保持60us,并且在兩個讀時隙間至少要有1us的恢復(fù)時間。單片機(jī)通過把總線拉低至少1us來做為一個讀時隙的開始,DS18B20的輸出數(shù)據(jù)在讀時序下降沿過后15us內(nèi)有效,所以在此期間單片機(jī)應(yīng)釋放總線,進(jìn)入讀數(shù)據(jù)狀態(tài)以便讀取數(shù)據(jù),15us后一線總線被上拉電阻拉為高電平,程序延時等待讀時隙結(jié)束。讀一字節(jié)子程序 出口條件:讀出字節(jié)數(shù)據(jù)在A中RE1W:MOV R6,#8 ;從1-Wire

18、總線讀出1字節(jié)數(shù)據(jù)的子程序RE1:CLR P2.6 ;拉低總線,發(fā)出讀時序NOPSETB P2.6 ;釋放總線,等待輸入MOV R4,#02HRE2:DJNZ R4,RE2MOV C,P2.6 ;通過RRC A指令,從低位開始依次讀入數(shù)據(jù)RRC AMOV R5,#20RE3:DJNZ R5,RE3 ;延時,等待讀時隙結(jié)束SETB P2.6 ;恢復(fù)時間 DJNZ R6,RE1SETB P2.6 RET寫時隙 寫時隙也有兩種,寫0和寫1。主要用于單片機(jī)通過1-WIRE總線向DS18B20寫入命令字。所有的寫時隙也至少要保持60us,且在兩個寫周期之間至少要有1us的恢復(fù)時間。 單片機(jī)通過拉低一線總

19、線至少1us來產(chǎn)生寫時隙。當(dāng)寫1時,單片機(jī)拉低總線,然后必須在15us內(nèi)釋放總線,總線被上拉電阻拉高。當(dāng)寫0時,單片機(jī)拉低總線后,然后必須繼續(xù)保持總線為低(至少60us)。DS18B20在單片機(jī)發(fā)出寫時隙后的1560us之間開始采樣,在這期間內(nèi),若總線為高,則1被寫入進(jìn)DS18B20;若總線為低,則0被寫入DS18B20。寫一字節(jié)子程序入口條件:寫入的字節(jié)在AWR1W:MOV R3,#08H;向1-Wire總線寫入1字節(jié)數(shù)據(jù)的位數(shù)W1: SETB P2.6;恢復(fù)時間MOV R4,#02RRC A;通過RRC A指令依次向總線寫入1字節(jié)的數(shù)據(jù)CLR P2.6;拉低總線,發(fā)出寫時隙W2:DJNZ

20、R4,W2MOV P2.6,C MOV R4,#20W3:DJNZ R4,W3DJNZ R3,W1SETB P2.6RET結(jié) 論 通過這次高精高精度數(shù)字式溫度的設(shè)計和制作,讓我感覺到在大學(xué)三年里,掌握了一定的專業(yè)知識和動手能力,在制作計的過程中學(xué)到了很多東西。比如了解了溫度傳感器DS18B20的功能,如何編寫單片機(jī)STC89C51的程序來實(shí)現(xiàn)數(shù)碼管直接顯示環(huán)境溫度。還有鞏固了以前學(xué)過的知識,比如用制圖Protel 99 SE等等。最主要的還是使我能利用硬件和軟件的結(jié)合,來完成一個產(chǎn)品的設(shè)計和制作! 總之,在這個畢業(yè)論文的完成過程中,讓我感覺一種對知識的一種重溫,讓我知道如何有步驟和計劃的完成一

21、項(xiàng)任務(wù),不過在這個其中也讓我感覺到自己所學(xué)的知識還是有限的和解決問題的不夠完善,希望自己今后做好每一件事情。數(shù)字溫度傳感器DS18B20介紹1、DS18B20的主要特性1.1、適應(yīng)電壓范圍更寬,電壓范圍:3.05.5V,在寄生電源方式下可由數(shù)據(jù)線供電1.2、獨(dú)特的單線接口方式,DS18B20在與微處理器連接時僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊1.3、DS18B20支持多點(diǎn)組網(wǎng)功能,多個DS18B20可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)組網(wǎng)多點(diǎn)測溫1.4、DS18B20在使用中不需要任何外圍元件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)1.5、溫范圍55125,在-1

22、0+85時精度為0.51.6、可編程的分辨率為912位,對應(yīng)的可分辨溫度分別為0.5、0.25、0.125和0.0625,可實(shí)現(xiàn)高精度測溫1.7、在9位分辨率時最多在93.75ms內(nèi)把溫度轉(zhuǎn)換為數(shù)字,12位分辨率時最多在750ms內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,速度更快1.8、測量結(jié)果直接輸出數(shù)字溫度信號,以一線總線串行傳送給CPU,同時可傳送CRC校驗(yàn)碼,具有極強(qiáng)的抗干擾糾錯能力1.9、負(fù)壓特性:電源極性接反時,芯片不會因發(fā)熱而燒毀,但不能正常工作。 2、DS18B20的外形和內(nèi)部結(jié)構(gòu) DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器TH和TL、配置寄存器。

23、DS18B20的外形及管腳排列如下圖1: DS18B20引腳定義: (1)DQ為數(shù)字信號輸入/輸出端; (2)GND為電源地; (3)VDD為外接供電電源輸入端(在寄生電源接線方式時接地)。圖2: DS18B20內(nèi)部結(jié)構(gòu)圖3、DS18B20工作原理 DS18B20的讀寫時序和測溫原理與DS1820相同,只是得到的溫度值的位數(shù)因分辨率不同而不同,且溫度轉(zhuǎn)換時的延時時間由2s減為750ms。 DS18B20測溫原理如圖3所示。圖中低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號送給計數(shù)器1。高溫度系數(shù)晶振隨溫度變化其振蕩率明顯改變,所產(chǎn)生的信號作為計數(shù)器2的脈沖輸入。計數(shù)器1和溫

24、度寄存器被預(yù)置在55所對應(yīng)的一個基數(shù)值。計數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行減法計數(shù),當(dāng)計數(shù)器1的預(yù)置值減到0時,溫度寄存器的值將加1,計數(shù)器1的預(yù)置將重新被裝入,計數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行計數(shù),如此循環(huán)直到計數(shù)器2計數(shù)到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即為所測溫度。圖3中的斜率累加器用于補(bǔ)償和修正測溫過程中的非線性,其輸出用于修正計數(shù)器1的預(yù)置值。圖3: DS18B20測溫原理框圖MAIN:LCALLGET_TEMPER;調(diào)用讀溫度子程序MOVA,29HMOVC,40H;將28H中的最低位移入CRRCAMOVC,41HRRCAMOVC,42H

25、RRCAMOVC,43HRRCAMOV29H,ALCALLDISPLAY;調(diào)用數(shù)碼管顯示子程序AJMP MAIN;循環(huán)顯示INIT_18B20:;這是DS18B20復(fù)位初始化子程序SETBP3.2NOPCLR P3.2MOVR1,#3;主機(jī)發(fā)出延時537微秒的復(fù)位低脈沖TSR1:MOVR0,#107DJNZR0,$DJNZR1,TSR1SETBP3.2;然后拉高數(shù)據(jù)線NOPNOPNOPMOVR0,#25HTSR2:JNBP3.2,TSR3;等待DS18B20回應(yīng)DJNZR0,TSR2LJMP TSR4;延時TSR3:SETBFLAG1;置標(biāo)志位,表示DS18B20存在LJMP TSR5TSR4

26、:CLR FLAG1;清標(biāo)志位,表示DS18B20不存在LJMP TSR7TSR5:MOVR0,#117TSR6:DJNZR0,TSR6;時序要求延時一段時間TSR7:SETBP3.2RETGET_TEMPER:;讀出轉(zhuǎn)換后的溫度值SETBP3.2LCALLINIT_18B20;先復(fù)位DS18B20JBFLAG1,TSS2RET;判斷DS18B20是否存在?若DS18B20不存在則返回TSS2:;DS18B20已經(jīng)被檢測到!MOVA,#0CCH;跳過ROM匹配LCALLWRITE_18B20MOVA,#44H;發(fā)出溫度轉(zhuǎn)換命令LCALLWRITE_18B20這里通過調(diào)用顯示子程序?qū)崿F(xiàn)延時一段時間,等待AD轉(zhuǎn)換結(jié)束,12位的話750微秒LCALLDISPLAYLCALLINIT_18B20;準(zhǔn)備讀溫度前先復(fù)位MOVA,#0CCH;跳過ROM匹配LCALLWRITE_18B20MOVA,#0BEH;發(fā)出讀溫度命令LCALLWRITE_18B20LCALL READ_18B20;將讀出的溫度數(shù)據(jù)保存到35H/36HRETWRITE_18B20:;寫DS18B20的子程序(有具體的時序要求)MOVR2,#8;一共8位數(shù)據(jù)CLR CWR1:CLR P3.2M

溫馨提示

  • 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

提交評論