基于單片機(jī)和DS18B20的溫度傳感器_第1頁
基于單片機(jī)和DS18B20的溫度傳感器_第2頁
基于單片機(jī)和DS18B20的溫度傳感器_第3頁
基于單片機(jī)和DS18B20的溫度傳感器_第4頁
基于單片機(jī)和DS18B20的溫度傳感器_第5頁
已閱讀5頁,還剩25頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上任務(wù)書利用數(shù)字溫度傳感器DS18B20與單片機(jī)結(jié)合來測(cè)量溫度。利用數(shù)字溫度傳感器DS18B20測(cè)量溫度信號(hào),計(jì)算后在LED數(shù)碼管上顯示相應(yīng)的溫度值。其溫度測(cè)量范圍為55125,精確到0.5。數(shù)字溫度計(jì)所測(cè)量的溫度采用數(shù)字顯示,控制器使用單片機(jī)AT89C51,測(cè)溫傳感器使用DS18B20,用LED數(shù)碼管實(shí)現(xiàn)溫度顯示。目錄第一章、 緒論 31、1 單片機(jī)概述 31、2 選題背景及設(shè)計(jì)意義 31、3 設(shè)計(jì)方案論證 4第二章、 硬件設(shè)計(jì)62、1 硬件電路的設(shè)計(jì) 6 1、時(shí)鐘電路 7 2、復(fù)位電路 8 3、顯示電路 102、2 元器件的介紹 11 1、單片機(jī)AT89C51 11

2、 2、溫度傳感器 DS18B20 15第三章 、系統(tǒng)軟件設(shè)計(jì)17 1、系統(tǒng)工作流程圖17 2、溫度傳感器子程序流程圖18第四章、匯編語言程序部分(略)19第五章、調(diào)試部分19參考文獻(xiàn) 20第一章 緒論1.1 單片機(jī)概述單片機(jī)的結(jié)構(gòu)特征是將組成計(jì)算機(jī)的基本部件集成在一塊晶體芯片上,構(gòu)成一臺(tái)功能獨(dú)特的單片微型計(jì)算機(jī)。一臺(tái)典型的單片機(jī)的基本組成結(jié)構(gòu)包括中央處理器(CPU),存儲(chǔ)器(ROM和RAM),并行I/O口,串行I/O口,定時(shí)器/計(jì)數(shù)器,定時(shí)電路及元件。由此可見,單片機(jī)在結(jié)構(gòu)上突破了常規(guī)的按邏輯功能劃分芯片。由多片構(gòu)成了微型計(jì)算機(jī)的設(shè)計(jì)思想,將構(gòu)成計(jì)算機(jī)的許多功能集成在一塊晶體芯片上。1.2 選

3、題背景及設(shè)計(jì)意義最早的溫度計(jì)是在1593年由意大利科學(xué)家伽利略發(fā)明的。他的第一只溫度計(jì)是一根一端敞口的玻璃管,另一端帶有核桃大的玻璃泡。使用時(shí)先給玻璃泡加熱,然后把玻璃管插入水中。隨著溫度的變化,玻璃管中的水面就會(huì)上下移動(dòng),根據(jù)移動(dòng)的多少就可以判定溫度的變化和溫度的高低。這種溫度計(jì),受外界大氣壓強(qiáng)等環(huán)境因素的影響較大,所以測(cè)量誤差大。本設(shè)計(jì)所介紹的數(shù)字溫度計(jì)與傳統(tǒng)的溫度計(jì)相比,具有讀數(shù)方便,測(cè)溫范圍廣,測(cè)溫準(zhǔn)確,其輸出溫度采用數(shù)字顯示,主要用于對(duì)測(cè)溫比較準(zhǔn)確的場(chǎng)所,或科研實(shí)驗(yàn)室使用。它具有結(jié)構(gòu)簡單,不需外接元件,采用一根I/ O 數(shù)據(jù)線既可供電又可傳輸數(shù)據(jù),該設(shè)計(jì)控制器使用單片機(jī)AT89C51

4、,測(cè)溫傳感器使用DS18B20,,實(shí)現(xiàn)溫度顯示,能準(zhǔn)確達(dá)到以下要求: 測(cè)溫范圍-55125 精度誤差小于0.51.3設(shè)計(jì)方案論證方案一:本電路是溫度計(jì)的設(shè)計(jì),在測(cè)溫電路中利用熱敏電阻器件的感溫效應(yīng),將隨被測(cè)溫變化的電壓或電流采集過來,進(jìn)行A/D轉(zhuǎn)換后,用單片機(jī)進(jìn)行數(shù)據(jù)處理,經(jīng)過顯示電路就可以顯示出來。方案二:在日常生活及工農(nóng)業(yè)生產(chǎn)中經(jīng)常要用到溫度的檢測(cè)及控制,傳統(tǒng)的測(cè)溫元件有熱電偶和熱電阻。而熱電偶和熱電阻測(cè)出的一般都是電壓,再轉(zhuǎn)換成對(duì)應(yīng)的溫度,需要比較多的外部硬件支持,硬件電路復(fù)雜,軟件調(diào)試復(fù)雜,制作成本高。方案三:基于單片機(jī)的溫度傳感器設(shè)計(jì)的數(shù)字溫度計(jì)已經(jīng)很成熟,各種精度很高的溫度計(jì)不斷推

5、出。數(shù)字溫度計(jì)要求檢測(cè)的精度必須高于控制的精確度,否則無從實(shí)現(xiàn)控制的精度要求。所以精度已經(jīng)成為數(shù)字溫度計(jì)的一項(xiàng)重要的性能參數(shù)。因此追求高精度是數(shù)字溫度計(jì)的一個(gè)目標(biāo)。不僅如此,檢測(cè)還涉及國計(jì)民生各個(gè)部門,可以說在所以科學(xué)技術(shù)領(lǐng)域無時(shí)不在進(jìn)行檢測(cè)。科學(xué)技術(shù)的發(fā)展和檢測(cè)技術(shù)的發(fā)展是密切相關(guān)的?,F(xiàn)代化的檢測(cè)手段能達(dá)到的精度、靈敏度及測(cè)量范圍等,在很大程度上決定了科學(xué)技術(shù)的發(fā)展水平。同時(shí),科學(xué)技術(shù)的發(fā)展達(dá)到的水平越高,又為檢測(cè)技術(shù)、傳感器技術(shù)提供了新的前提手段。目前市場(chǎng)上出現(xiàn)了很多傳感器,很多精度高的傳感器已經(jīng)出現(xiàn),而且精度越來越高。數(shù)字溫度計(jì)未來將會(huì)更精確、更人性化,為我們做出更多貢獻(xiàn)。為此我們選擇方

6、案三的設(shè)計(jì),框圖如下。單片機(jī)復(fù)位時(shí)鐘振蕩主控制器LED顯示DS18B20溫度傳感器第二章 硬件設(shè)計(jì)2.1硬件電路的設(shè)計(jì)本設(shè)計(jì)系統(tǒng)共由三部分組成: AT89C51為控制裝置,負(fù)責(zé)各部分的控制和數(shù)據(jù)采集。 DS18B20為溫度測(cè)量裝置,負(fù)責(zé)對(duì)溫度進(jìn)行采集并轉(zhuǎn)換為數(shù)字信號(hào)送AT89C51進(jìn)行處理。 共陽極數(shù)碼管為顯示裝置,負(fù)責(zé)顯示工作狀態(tài)和DS18B20 采集到的數(shù)據(jù)。注:LED數(shù)碼管驅(qū)動(dòng)電路中采用P0 口加上拉電阻的形式,為方便焊接,本設(shè)計(jì)中電阻使用了排阻的方式,三極管使用的是S9012.1、時(shí)鐘電路時(shí)鐘電路用于產(chǎn)生單片機(jī)工作所需的時(shí)鐘信號(hào),時(shí)序是指令執(zhí)行中各信號(hào)之間的相互關(guān)系。為了保證同步工作方

7、式的實(shí)現(xiàn),電路應(yīng)在唯一的時(shí)鐘信號(hào)控制下嚴(yán)格地按時(shí)序進(jìn)行工作。在AT89C51單片機(jī)內(nèi)部帶有時(shí)鐘電路,因此,只需要在片外通過XTAL1和XTAL2引腳接入定時(shí)控制元件(晶體振蕩器和電容),即可構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。在AT89s51芯片內(nèi)部有一個(gè)高增益反相放大器,而在芯片的外部,XTAL1和XTAL2之間跨接晶體振蕩器和微調(diào)電容。在單片機(jī)的XTAL1腳和XTAL2腳之間并接一個(gè)晶體振蕩器就構(gòu)成了內(nèi)部振蕩方式。AT89S51單片機(jī)內(nèi)部有一個(gè)高增益的反相放大器,XTAL1為內(nèi)部反相放大器的輸入端,XTAL2為內(nèi)部反相放大器的輸出端,在其兩端接上晶振后,就構(gòu)成了自激振蕩電路,并產(chǎn)生振蕩脈沖,振蕩電路

8、輸出的脈沖信號(hào)的頻率就是晶振的固有頻率。AT89C51的時(shí)鐘電路如圖2.2所示: 圖2.2時(shí)鐘電路2、復(fù)位電路 復(fù)位的功能:復(fù)位是單片機(jī)的初始化操作,其目的是使CPU和系統(tǒng)中各部分處于一個(gè)確定的狀態(tài),并從這一狀態(tài)開始工作。系統(tǒng)上電路或死機(jī)后都要進(jìn)行復(fù)位操作。單片機(jī)復(fù)位時(shí),將程序計(jì)數(shù)器PC初始化為0000H,表明復(fù)位后程序從0000H地址單元開始執(zhí)行,同時(shí)復(fù)位時(shí)輸出控制信號(hào)ALE,PSEN均為高電平。復(fù)位后,P0P3口輸出高電平,且使準(zhǔn)雙向口均處于輸入狀態(tài)。復(fù)位不改變片內(nèi)RAM單元的內(nèi)容,但使各特殊功能寄存器SFR回復(fù)到初始狀態(tài),復(fù)位后各特殊功能寄存器均恢復(fù)初始狀態(tài)?,F(xiàn)簡要說明各主要寄存器功能:

9、PSW=00H:表明復(fù)位后自動(dòng)選擇第0組工作寄存器組為當(dāng)前工作寄存器組SP=07H:表明堆棧指針指向片內(nèi)RAM07H單元,堆棧的壓入操作為先加后壓,所以第一個(gè)被壓入的數(shù)據(jù)存放在08H單元中P0P3=FFH:表明各端口寫入1,此時(shí)各端口既可作輸入口,也可以作輸出口AUXR=XXX0 0XX0:表明ALE引腳在CPU不訪問外部存儲(chǔ)器期間有脈沖信號(hào)輸出AUXR1=XXXX XXX0:表明選擇DPTR0作數(shù)據(jù)指針I(yè)E=00H:表明各中斷均關(guān)閉TCON=00H:表明T0,T1 均被停止SCON=00H:表明串口處于方式0,允許發(fā)送,不允許接收PCON=00H:表明SMOD=0,波特率不加倍。PD=0,I

10、DL=0,單片機(jī)處于正常工作方式。單片機(jī)的RST引腳為復(fù)位引腳,振蕩電路正常工作后,RST端加上持續(xù)兩個(gè)機(jī)器周期的高電平后,單片機(jī)就被復(fù)位。復(fù)位電路有3種基本方式:上電復(fù)位,開關(guān)復(fù)位和看門狗復(fù)位。這里只介紹上電復(fù)位和開關(guān)復(fù)位。復(fù)位電路有3種基本方式:上電復(fù)位,開關(guān)復(fù)位和看門狗復(fù)位。本系統(tǒng)使用的是上電復(fù)位。所謂上電復(fù)位就是單片機(jī)只要一上電就自動(dòng)實(shí)現(xiàn)復(fù)位操作。常用的上電復(fù)位電路如圖1所示 圖13、 顯示電路單片機(jī)系統(tǒng)中常用的顯示器有:發(fā)光二極管LED(Light Emitting Diode)顯示器、液晶LCD(Liquid Crystal Display)顯示器、CRT顯示器等。LED、LCD顯

11、示器有兩種顯示結(jié)構(gòu):段顯示(7段、米字型等)和點(diǎn)陣顯示(5×8、8×8點(diǎn)陣等)。 (1)靜態(tài)顯示方式LED顯示器工作方式有兩種:靜態(tài)顯示方式和動(dòng)態(tài)顯示方式。靜態(tài)顯示的特點(diǎn)是每個(gè)數(shù)碼管必須接一個(gè)8位鎖存器用來鎖存待顯示的字形碼。送入一次字形碼顯示字形一直保持,直到送入新字形碼為止。這種方法的優(yōu)點(diǎn)是占用CPU時(shí)間少,顯示便于監(jiān)測(cè)和控制。缺點(diǎn)是硬件電路比較復(fù)雜,成本較高。(2)動(dòng)態(tài)顯示動(dòng)態(tài)顯示的特點(diǎn)是將所有位數(shù)碼管的段選線并聯(lián)在一起,由位選線控制是哪一位數(shù)碼管有效。這樣一來,就沒有必要每一位數(shù)碼管配一個(gè)鎖存器,從而大大地簡化了硬件電路。選亮數(shù)碼管采用動(dòng)態(tài)掃描顯示。所謂動(dòng)態(tài)掃描顯示

12、即輪流向各位數(shù)碼管送出字形碼和相應(yīng)的位選,利用發(fā)光管的余輝和人眼視覺暫留作用,使人的感覺好像各位數(shù)碼管同時(shí)都在顯示。動(dòng)態(tài)顯示的亮度比靜態(tài)顯示要差一些,所以在選擇限流電阻時(shí)應(yīng)略小于靜態(tài)顯示電路中的。使用LED顯示器時(shí),要注意區(qū)分這兩種不同的接法。為了顯示數(shù)字或字符,必須對(duì)數(shù)字或字符進(jìn)行編碼。七段數(shù)碼管加上一個(gè)小數(shù)點(diǎn),共計(jì)8段。因此為LED顯示器提供的編碼正好是一個(gè)字節(jié)。數(shù)碼管共陽極09代碼。DB 0C0H,0F9H,0A4H,0B0H,99HDB 92H,82H,0F8H,80H,90H 2.2 元器件介紹AT89C51 AT89C51是一種帶4K字節(jié)閃存可編程可擦除只讀存儲(chǔ)器的低電壓、高性能

13、CMOS8位微處理器。該器件采用ATMEL高密度非易失存儲(chǔ)器制造計(jì)術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的 MCS-51指令集和輸出管腳相兼容,并有ISP管腳,只需要將單片機(jī)的ISP引腳接入專用的下載線上就可以編程。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在這個(gè)芯片中,ATMEL的 AT89S51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。AT89C51圖如下: (1)主要特性:8031 CPU與MCS-51兼容4K字節(jié)可編程FLASH存儲(chǔ)器(壽命:1000寫/擦循環(huán)) 全靜態(tài)工作:0Hz-24KHz三級(jí)程序存儲(chǔ)器保密鎖定128*8位內(nèi)部RAM32條可編程I/O線兩個(gè)16位定時(shí)/器計(jì)數(shù)器

14、6個(gè)中斷源可編程串行通道低功耗的閑置和調(diào)電模式VCC:供電電壓 GND: 接地 (2) 各引腳及功能說明P0口:P0口為一個(gè)8位漏極開路雙向I/O口。P0口能用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FLASH編程時(shí),P0口作為原碼輸入口,當(dāng)FALSH進(jìn)行校驗(yàn)時(shí),P0口輸出原碼,此時(shí)P0口外部必須被拉高。 P1口: P1口是 一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流。在FALSH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。 P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口。當(dāng)P2口被寫入“1”

15、時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。 P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平并用作輸入。P3口:除作I/O口使用外,還有特殊功能如圖所示P3口同時(shí)為編程和校驗(yàn)接收一些控制信號(hào)。RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。ALE/PROG:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的低位字節(jié)。在FALSH編程期間,此引腳用于輸入編程脈沖。在

16、平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6.因此它可用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè)ALE脈沖。如果想禁止ALE的輸出可在SFR8EH地址上置0.此時(shí),ALE只有在執(zhí)行MOVX,MOVC指令時(shí)ALE才起作用。另外,該指令被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。/PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有校。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。/EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000HFFFFH),不管是否有內(nèi)部程序存儲(chǔ)器,注意加密方式1時(shí)

17、,/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入XTAL2:來自反向振蕩器的輸出ISP:在線編程引腳P1.5、P1.6、P1.7、RST四個(gè)引腳可以作為在系統(tǒng)編程引腳DS18B20產(chǎn)品的特點(diǎn)(1)、只要求一個(gè)端口即可實(shí)現(xiàn)通信。(2)、在DS18B20中的每個(gè)器件上都有獨(dú)一無二的序列號(hào)。(3)、實(shí)際應(yīng)用中不需要外部任何元器件即可實(shí)現(xiàn)測(cè)溫。(4)、測(cè)量溫度范圍在55。C到125。C之間。(5)、數(shù)字溫度計(jì)的分辨率用戶可以從9位到12位選擇。(6)、內(nèi)部

18、有溫度上、下限告警設(shè)置。DS18B20的引腳介紹TO92封裝的DS18B20的引腳排列見圖1,其引腳功能描述見表1第三章 系統(tǒng)軟件設(shè)計(jì)系統(tǒng)工作流程圖溫度傳感器實(shí)際子程序第四章 匯編語言程序部分 (略) 第五章 調(diào)試部分單片機(jī)系統(tǒng)的硬件調(diào)試和軟件調(diào)試是不能分開的,去多硬件錯(cuò)誤是在軟件調(diào)試中被發(fā)現(xiàn)和糾正的,但是硬件的調(diào)試是基礎(chǔ),如果硬件調(diào)試不通過軟件設(shè)計(jì)則是無從做起,所以我們是先排除明顯的硬件故障以后,再和軟件結(jié)合起來以進(jìn)一步排除故障。硬件設(shè)計(jì)從布線到焊接安裝完成之后,我就開始進(jìn)入硬件調(diào)試階段。硬件靜態(tài)的調(diào)試 排除邏輯故障這類故障由于設(shè)計(jì)和加工制板過程中工藝性錯(cuò)誤所造成的。主要包括錯(cuò)線、開路、短路

19、。我將其排除的方法是首先將焊制的電路板認(rèn)真對(duì)照原理圖,看兩者是否一致,特別主意了電源系統(tǒng)的檢查,以防止電源短路和極性錯(cuò)誤,并利用數(shù)字萬用表的短路測(cè)試功能重點(diǎn)檢查了系統(tǒng)總線是否存在相互之間短路或與其他信號(hào)線路短路。排除電源故障在通電前,首先檢查了電源電壓的幅值和極性,避免造成集成塊損壞,加電后檢查各插件上引腳的電位,先檢查Vcc與GND之間電位,在5V4.8V 之間屬正常,若有高壓,聯(lián)機(jī)仿真器調(diào)試時(shí),將會(huì)損壞仿真器等,有時(shí)會(huì)使系統(tǒng)中的集成塊發(fā)熱損壞。顯示器部分調(diào)試首先將AT89S51與LED 顯示分離,用靜態(tài)方法先測(cè)試LED 顯示,分別用規(guī)定的電平加至控制數(shù)碼管段和位顯示的引腳,看數(shù)碼管顯示是否

20、與理論上一致,不一致,一般LED顯示器接觸不良所致,必須找出故障。參考文獻(xiàn)【1】 樓然苗、李光飛編著. 51系列單片機(jī)設(shè)計(jì)實(shí)例 北京航空航天大學(xué)出版社 2004年10月【2】 何立民、張俊謨編著. 單片機(jī)中級(jí)教程原理與應(yīng)用北京航空航天大學(xué)出版社 1999年12月【3】 馮文旭、劉傳璽編著.單片機(jī)應(yīng)用技術(shù)中國礦業(yè)大學(xué)出版社 2003年5月 【4】 張正明、卓鄭安編著 電路與電子技術(shù) 北京航空航天大學(xué)出版社 2004年9月A_BIT EQU 20H ;存放個(gè)位數(shù)變量B_BIT EQU 21H ;存放十位數(shù)變量FLAG EQU 38H ;DS18B20是否存在標(biāo)志DQ EQU P2.0 ;DQ引腳由

21、P2.5控制 MAIN: ;主程序標(biāo)號(hào)ACALL RE_TEMP ;對(duì)傳感器設(shè)置及讀取 ACALL TURN ;轉(zhuǎn)化溫度子程序 ACALL DISPLAY ;顯示子程序JMP MAIN ;循環(huán) RE_TEMP: ;對(duì)DS18B20初始化及讀取SETB DQ ACALL RESET_1820 ;調(diào)用復(fù)位子程序JB FLAG,ST ;判斷DS1820是否存在?RET ST: ; DS18B20存在MOV A,#0CCH ;跳過ROM匹配 ACALL WRITE_1820 ;寫入數(shù)據(jù)MOV A,#44H ;發(fā)出溫度轉(zhuǎn)換命令A(yù)CALL WRITE_1820 ;寫入數(shù)據(jù) ACALL RESET_1820

22、 ;準(zhǔn)備讀溫度前先復(fù)位MOV A,#0CCH ;跳過ROM匹配ACALL WRITE_1820 ;寫入數(shù)據(jù)MOV A,#0BEH ;發(fā)出讀溫度命令A(yù)CALL WRITE_1820 ;寫入數(shù)據(jù)ACALL READ_1820 ;讀出溫度數(shù)據(jù) RET RESET_1820: ;復(fù)位(有具體的時(shí)序要求) SETB DQ NOPCLR DQ ;主機(jī)發(fā)出延時(shí)537微秒的復(fù)位低脈沖MOV R1,#3DLY: MOV R0,#107DJNZ R0,$DJNZ R1,DLY;然后拉高數(shù)據(jù)線SETB DQ NOPNOPNOP; MOV R0,#25H T2: JNB DQ,T3 ;等待DS18B20回應(yīng)DJNZ

23、R0,T2JMP T4 ;T3: SETB FLAG ;置標(biāo)志位,表示DS1820存在JMP T5;T4: CLR FLAG ;清標(biāo)志位,表示DS1820不存在 JMP T7;T5: MOV R0,#117T6: DJNZ R0,T6 ;時(shí)序要求延時(shí)一段時(shí)間;T7: SETB DQ RET ;WRITE_1820: ;寫入DS18B20(有具體的時(shí)序要求)MOV R2,#8 ;一共8位數(shù)據(jù)CLR CWR1:CLR DQ ;總線低位,開始寫入 MOV R3,#7DJNZ R3,$ ;保持16微秒以上RRC A ;把字節(jié)DATA分成8個(gè)BIT環(huán)移給CMOV DQ, C ;寫入一個(gè)BITMOV R3

24、,#23DJNZ R3,$ ;等待SETB DQ ;重新釋放總線NOPDJNZ R2,WR1 ;寫入下一個(gè)BITSETB DQ RET READ_1820: ;將溫度高位和低位從DS18B20中讀出MOV R4,#2 ;讀出兩個(gè)字節(jié)的數(shù)據(jù)MOV R1,#29H ;低位存入29H,高位存入28hRE0:MOV R2,#8 ;數(shù)據(jù)一共有8位RE1: CLR CSETB DQ NOPNOP CLR DQ ;讀前總線保持為低 NOPNOPNOPSETB DQ ;開始讀總線釋放 MOV R3,#9RE2: DJNZ R3,RE2 ;延時(shí)18微妙MOV C,DQ ;從總線讀到一個(gè)BIT MOV R3,#23RE3:DJNZ R3,RE3 ;等待100秒RRC A ;把讀得的位價(jià)值環(huán)移給ADJNZ R2,RE1 ;讀下一個(gè)BITMOV R1,ADEC R1DJNZ R4,RE0RET TURN: MOV A,29H MOV C,40H ;將

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論