基于AT89C51單片機(jī)的測溫系統(tǒng)_第1頁
基于AT89C51單片機(jī)的測溫系統(tǒng)_第2頁
基于AT89C51單片機(jī)的測溫系統(tǒng)_第3頁
基于AT89C51單片機(jī)的測溫系統(tǒng)_第4頁
基于AT89C51單片機(jī)的測溫系統(tǒng)_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、引言本文主要介紹了一個(gè)基于AT89C51單片機(jī)的測溫系統(tǒng),詳細(xì)描述了利用數(shù)字溫度傳感器DS18B20開發(fā)測溫系統(tǒng)的過程,重點(diǎn)對(duì)傳感器在單片機(jī)下的硬件連接,軟件編程以及各模塊系統(tǒng)流程進(jìn)行了詳盡分析,特別是數(shù)字溫度傳感器DS18B20的數(shù)據(jù)采集過程,并介紹了利用C語言編程對(duì)DS18B20的訪問,該系統(tǒng)可以方便的實(shí)現(xiàn)實(shí)現(xiàn)溫度采集和顯示,使用起來相當(dāng)方便,具有精度高、量程寬、靈敏度高、體積小、功耗低等優(yōu)點(diǎn)。DS18B20與AT89C51結(jié)合實(shí)現(xiàn)最簡溫度檢測系統(tǒng),該系統(tǒng)結(jié)構(gòu)簡單,抗干擾能力強(qiáng),適合于惡劣環(huán)境下進(jìn)行現(xiàn)場溫度測量。數(shù)字溫度計(jì)與傳統(tǒng)的溫度計(jì)相比,具有讀數(shù)方便、測溫范圍廣、測溫精確、功能多樣話等

2、優(yōu)點(diǎn)。其主要用于對(duì)測溫要求準(zhǔn)確度比較高的場所,或科研實(shí)驗(yàn)室使用,該設(shè)計(jì)使用STC89C52單片機(jī)作控制器,數(shù)字溫度傳感器DS18B20測量溫度,單片機(jī)接受傳感器輸出,經(jīng)處理用LED數(shù)碼管實(shí)現(xiàn)溫度值顯示。 一、設(shè)計(jì)要求通過基于MCS-51系列單片機(jī)AT89C51和DS18B20溫度傳感器檢測溫度,熟悉芯片的使用,溫度傳感器的功能,數(shù)碼顯示管的使用,C語言的設(shè)計(jì);并且把我們這一年所學(xué)的數(shù)字和模擬電子技術(shù)、檢測技術(shù)、單片機(jī)應(yīng)用等知識(shí),通過理論聯(lián)系實(shí)際,從題目分析、電路設(shè)計(jì)調(diào)試、程序編制調(diào)試到傳感器的選定等這一完整的實(shí)驗(yàn)過程,培養(yǎng)了學(xué)生正確的設(shè)計(jì)思想,使學(xué)生充分發(fā)揮主觀能動(dòng)性,去獨(dú)立解決實(shí)際問題,以達(dá)

3、到提升學(xué)生的綜合能力、動(dòng)手能力、文獻(xiàn)資料查閱能力的作用,為畢業(yè)設(shè)計(jì)和以后工作打下一個(gè)良好的基礎(chǔ)。以MCS-51系列單片機(jī)為核心器件,組成一個(gè)數(shù)字溫度計(jì),采用數(shù)字溫度傳感器DS18B20為檢測器件,進(jìn)行單點(diǎn)溫度檢測,檢測精度為±0.5攝氏度。溫度顯示采用3位LED數(shù)碼管顯示,兩位整數(shù),一位小數(shù)。具有鍵盤輸入上下限功能,超過上下限溫度時(shí),進(jìn)行聲音報(bào)警。二、基本原理 原理簡述:數(shù)字溫度傳感器DS1820把溫度信息轉(zhuǎn)換為數(shù)字格式;通過“1線協(xié)議”,單片機(jī)獲取指定傳感器的數(shù)字溫度信息,并顯示到顯示設(shè)備上。通過鍵盤,單片機(jī)可根據(jù)程序指令實(shí)現(xiàn)更靈活的功能,如單點(diǎn)檢測、輪轉(zhuǎn)檢測、越限檢測等?;贒S

4、1820數(shù)字溫度傳感器的溫度檢測及顯示的系統(tǒng)原理圖如圖圖 2.1 基于DS1820的溫度檢測系統(tǒng)框圖三:主要器件介紹(時(shí)序圖及各命令序列,溫度如何計(jì)算等)系統(tǒng)總體設(shè)計(jì)框圖 由于DS18B20數(shù)字溫度傳感器具有單總線的獨(dú)特優(yōu)點(diǎn),可以使用戶輕松地組建起傳感器網(wǎng)絡(luò),并可使多點(diǎn)溫度測量電路變得簡單、可靠,所以在該設(shè)計(jì)中采用DS18B20數(shù)字溫度傳感器測量溫度。 測溫電路設(shè)計(jì)總體設(shè)計(jì)框圖如圖所示,控制器采用單片機(jī)AT89S52,溫度傳感器采用DS18B20,顯示采用4位LED數(shù)碼管,報(bào)警采用蜂鳴器、LED燈實(shí)現(xiàn),鍵盤用來設(shè)定報(bào)警上下限溫度。圖3.1測溫電路設(shè)計(jì)總體設(shè)計(jì)框圖1.控制模塊 AT89S52單片

5、機(jī)是美國ATMEL公司生產(chǎn)的低功耗,高性能CMOS 8位單片機(jī),片內(nèi)含有8kb的可系統(tǒng)編程的Flash只讀程序存儲(chǔ)器,器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)8051指令系統(tǒng)及引腳。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程的Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。 AT89S52具有以下標(biāo)準(zhǔn)功能:8k字節(jié)Flash,256字節(jié)RAM,32 位I/O 口線,看門狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè)16 位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,AT89S52 可降至0Hz 靜態(tài)邏輯操作,

6、支持2種軟件可選擇節(jié)電模式。空閑模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。2.顯示模塊 顯示電路采用4位共陰LED數(shù)碼管,從P0口輸出段碼,P2口的高四位為位選端。用動(dòng)態(tài)掃描的方式進(jìn)行顯示,這樣能有效節(jié)省I/O口。3.溫度傳感器 DS18B20溫度傳感器是美國DALLAS半導(dǎo)體公司最新推出的一種改進(jìn)型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據(jù)實(shí)際要求通過簡單的編程實(shí)現(xiàn)912位的數(shù)字值讀數(shù)方式。DS18B20 的性能特點(diǎn)如下:1.獨(dú)

7、特的單線接口方式僅需要一個(gè)端口引腳進(jìn)行通信2.多個(gè)DS18B20可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)多點(diǎn)組網(wǎng)功能3.無需外部器件4.可通過數(shù)據(jù)線供電,電壓范圍:3.05.5V5.測溫范圍55125,在-10+85時(shí)精度為±0.56.零待機(jī)功耗7.溫度以9或12位數(shù)字量讀出8.報(bào)警搜索命令識(shí)別并標(biāo)志超過程序限定溫度(溫度報(bào)警條件)的器件9.負(fù)電壓特性,電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,但不能正常工作四:硬件電路原理框圖由于本次實(shí)驗(yàn)是在學(xué)習(xí)板上做的,所以沒有硬件接線圖,原理主要講解DS18B20的工作原理。1·硬件設(shè)計(jì)1. 單片機(jī)系統(tǒng)電路原理圖圖4.1 系統(tǒng)電路原理圖2.DS18

8、B20溫度傳感器電路設(shè)計(jì)電源供電方式如圖,此時(shí)DS18B20的1腳接地,2腳作為信號(hào)線,3腳接電源。圖4.2 DS18B20溫度傳感器電路3.報(bào)警電路設(shè)計(jì) 報(bào)警電路是在測量溫度大于上限或小于下限時(shí)提供報(bào)警功能的電路。該電路是由一個(gè)蜂鳴器組成,具體的電路如圖所示圖4.3 報(bào)警電路4.顯示電路設(shè)計(jì) 顯示電路是由四位一體的共陰數(shù)碼管進(jìn)行顯示的2·軟件設(shè)計(jì)(1)DS18B20內(nèi)部結(jié)構(gòu) 如圖所示主要由4部分組成:64 位ROM、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL、配置寄存器。ROM中的64位序列號(hào)是出廠前被光刻好的,它可以看作 是該DS18B20的地址序列碼,每個(gè)DS18B20的64

9、位序列號(hào)均不相同。64位ROM的排的循環(huán)冗余校驗(yàn)碼(CRC=X8X5X41)。 ROM的作用是使每一個(gè)DS18B20都各不相同,這樣就可以實(shí)現(xiàn)一根總線上掛接多個(gè)DS18B20的目的。 DS18B20中的溫度傳感器完成對(duì)溫度的測量,用16位二進(jìn)制形式提供,形式表達(dá),其中S為符號(hào)位。 DS18B20溫度傳感器主要用于對(duì)溫度進(jìn)行測量,數(shù)據(jù)可用16位符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供,并以0.0625LSB形式表示。表2是部分溫度值對(duì)應(yīng)的二進(jìn)制溫度表示數(shù)據(jù)。(2)DS18B20的工作時(shí)序 DS18B20的一線工作協(xié)議流程是:初始化ROM操作指令存儲(chǔ)器操作指令數(shù)據(jù)傳輸初始化時(shí)序 主機(jī)首先發(fā)出一個(gè)48096

10、0微秒的低電平脈沖,然后釋放總線變?yōu)楦唠娖?,并在隨后的480微秒時(shí)間內(nèi)對(duì)總線進(jìn)行檢測,如果有低電平出現(xiàn)說明總線上有器件已做出應(yīng)答。若無低電平出現(xiàn)一直都是高電平說明總線上無器件應(yīng)答。做為從器件的DS18B20在一上電后就一直在檢測總線上是否有480960微秒的低電平出現(xiàn),如果有,在總線轉(zhuǎn)為高電平后等待1560微秒后將總線電平拉低60240微秒做出響應(yīng)存在脈沖,告訴主機(jī)本器件已做好準(zhǔn)備。若沒有檢測到就一直在檢測等待。 接下來就是主機(jī)發(fā)出各種操作命令,但各種操作命令都是向DS18B20寫0和寫1組成的命令字節(jié),接收數(shù)據(jù)時(shí)也是從DS18B20讀取0或1的過程。因此首先要搞清主機(jī)是如何進(jìn)行寫0、寫1、讀

11、0和讀1的。 寫周期最少為60微秒,最長不超過120微秒。寫周期一開始做為主機(jī)先把總線拉低1微秒表示寫周期開始。隨后若主機(jī)想寫0,則繼續(xù)拉低電平最少60微秒直至寫周期結(jié)束,然后釋放總線為高電平。若主機(jī)想寫1,在一開始拉低總線電平1微秒后就釋放總線為高電平,一直到寫周期結(jié)束。而做為從機(jī)的DS18B20則在檢測到總線被拉底后等待15微秒然后從15us到45us開始對(duì)總線采樣,在采樣期內(nèi)總線為高電平則為1,若采樣期內(nèi)總線為低電平則為0。 對(duì)于讀數(shù)據(jù)操作時(shí)序也分為讀0時(shí)序和讀1時(shí)序兩個(gè)過程。讀時(shí)隙是從主機(jī)把單總線拉低之后,在1微秒之后就得釋放單總線為高電平,以讓DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩€上。DS

12、18B20在檢測到總線被拉低1微秒后,便開始送出數(shù)據(jù),若是要送出0就把總線拉為低電平直到讀周期結(jié)束。若要送出1則釋放總線為高電平。主機(jī)在一開始拉低總線1微秒后釋放總線,然后在包括前面的拉低總線電平1微秒在內(nèi)的15微秒時(shí)間內(nèi)完成對(duì)總線進(jìn)行采樣檢測,采樣期內(nèi)總線為低電平則確認(rèn)為0。采樣期內(nèi)總線為高電平則確認(rèn)為1。完成一個(gè)讀時(shí)序過程,至少需要60us才能完成讓DS18B20進(jìn)行一次溫度的轉(zhuǎn)換,那具體的操作就是:(1).主機(jī)先作個(gè)復(fù)位操作,(2).主機(jī)再寫跳過ROM的操作(CCH)命令,(3).然后主機(jī)接著寫個(gè)轉(zhuǎn)換溫度的操作命令,后面釋放總線至少一秒,讓DS18B20完成轉(zhuǎn)換的操作。在這里要注意的是每

13、個(gè)命令字節(jié)在寫的時(shí)候都是低字節(jié)先寫,例如CCH的二進(jìn)制為11001100,在寫到總線上時(shí)要從低位開始寫,寫的順序是“零、零、壹、壹、零、零、壹、壹”。整個(gè)操作的總線狀態(tài)如下圖。(3)初始化時(shí)序程序bit Init_DS18B20(void) bit flag; /儲(chǔ)存DS18B20是否存在的標(biāo)志,flag=0,存在;flag=1,不存在 DQ = 1; /先將數(shù)據(jù)線拉高 for(time=0;time<2;time+) ; /略微延時(shí)約6微秒/再將數(shù)據(jù)線從高拉低,要求保持480960us DQ = 0; for(time=0;time<200;time+) ; /略微延時(shí)約600微

14、秒/以向DS18B20發(fā)出一持續(xù)480960us的低電平復(fù)位脈沖 DQ = 1; /釋放數(shù)據(jù)線(將數(shù)據(jù)線拉高) for(time=0;time<10;time+) ; /延時(shí)約30us(釋放總線后需等待1560us讓DS18B20輸出存在脈沖) flag=DQ; /讓單片機(jī)檢測是否輸出了存在脈沖(DQ=0表示存在) for(time=0;time<200;time+) ; /延時(shí)足夠長時(shí)間,等待存在脈沖輸出完畢 return (flag); /返回檢測成功標(biāo)志unsigned char ReadOneChar(void) unsigned char i=0; unsigned ch

15、ar dat; /儲(chǔ)存讀出的一個(gè)字節(jié)數(shù)據(jù) for (i=0;i<8;i+) DQ =1; / 先將數(shù)據(jù)線拉高 _nop_(); /等待一個(gè)機(jī)器周期 DQ = 0; /單片機(jī)從DS18B20讀書據(jù)時(shí),將數(shù)據(jù)線從高拉低即啟動(dòng)讀時(shí)序 _nop_(); /等待一個(gè)機(jī)器周期 DQ = 1; /將數(shù)據(jù)線"人為"拉高,為單片機(jī)檢測DS18B20的輸出電平作準(zhǔn)備 for(time=0;time<2;time+) ; /延時(shí)約6us,使主機(jī)在15us內(nèi)采樣 dat>>=1; if(DQ=1) dat|=0x80; /如果讀到的數(shù)據(jù)是1,則將1存入dat else da

16、t|=0x00; /如果讀到的數(shù)據(jù)是0,則將0存入dat for(time=0;time<8;time+); /延時(shí)3us,兩個(gè)讀時(shí)序之間必須有大于1us的恢復(fù)期 return(dat); /返回讀出的十六進(jìn)制數(shù)據(jù)WriteOneChar(unsigned char dat) unsigned char i=0; for (i=0; i<8; i+) DQ =1; / 先將數(shù)據(jù)線拉高 _nop_(); /等待一個(gè)機(jī)器周期 DQ=0; /將數(shù)據(jù)線從高拉低時(shí)即啟動(dòng)寫時(shí)序 DQ=dat&0x01; /利用與運(yùn)算取出要寫的某位二進(jìn)制數(shù)據(jù), for(time=0;time<10

17、;time+) ; /延時(shí)約30us,DS18B20在拉低后的約1560us期間從數(shù)據(jù)線上采樣 DQ=1; /釋放數(shù)據(jù)線 for(time=0;time<1;time+) ; /延時(shí)3us,兩個(gè)寫時(shí)序間至少需要1us的恢復(fù)期 dat>>=1; /將dat中的各二進(jìn)制位數(shù)據(jù)右移1位 for(time=0;time<4;time+) ; /稍作延時(shí),給硬件一點(diǎn)反應(yīng)時(shí)間五、程序流程圖(主程序,各子程序)1.主程序?qū)崟r(shí)溫度顯示子程序:驅(qū)動(dòng)數(shù)碼管把實(shí)時(shí)溫度值送出在LED數(shù)碼管顯示主程序流程圖:開始定時(shí)器初始化、啟動(dòng)顯示實(shí)時(shí)溫度 溫度設(shè)定超過溫度報(bào)警圖5.1主程序流程圖2.讀溫度值

18、模塊讀溫度值模塊需要調(diào)用4個(gè)子程序,分別為: 1.DS18B20初始化子程序:讓單片機(jī)知道DS18B20在總線上且已準(zhǔn)備好操作 2.DS18B20寫字節(jié)子程序:對(duì)DS18B20發(fā)出命令 3.DS18B20讀字節(jié)子程序:讀取DS18B20存儲(chǔ)器的數(shù)據(jù) 4.延時(shí)子程序:對(duì)DS18B20操作時(shí)的時(shí)序控制讀溫度值模塊流程圖:入口數(shù)據(jù)轉(zhuǎn)換處理讀取溫度值高低位跳過讀序列號(hào)DS18B20初始化延時(shí)啟動(dòng)溫度轉(zhuǎn)換跳過讀序列號(hào)DS18B20初始化返回圖5.2讀溫度值子程序流程圖 DS18B20初始化子程序流程圖:入口DQ復(fù)位0稍延時(shí)DQ置高電平延時(shí)>480usDQ拉高電平延時(shí)1560usDQ為低電平?NY返

19、回圖5.3 DS18B20初始化子程序流程圖DS18B20寫字節(jié)和讀字節(jié)子程序流程圖: 圖5.4 DS18B20寫字節(jié)子程序流程圖圖5.5 DS18B20讀字節(jié)子程序流程圖六:調(diào)試(步驟,心得,結(jié)論) 優(yōu)點(diǎn): 1線性好,精度適中,體積小,實(shí)用方便。 2實(shí)時(shí)顯示當(dāng)前溫度。 缺點(diǎn):溫度傳感器會(huì)有一定的時(shí)間延時(shí),從而間接地影響了整個(gè)報(bào)警系統(tǒng)的靈敏性和準(zhǔn)確性。 (2)心得體會(huì): 在本次設(shè)計(jì)的過程中,我們發(fā)現(xiàn)了很多的問題,雖然以前也做過類似的課程設(shè)計(jì),但是這次確實(shí)讓我們學(xué)到了很多。我們不僅要選好元件,還要把這些元件合理地組織起來,所以我們要學(xué)會(huì)如何尋找和

20、搜索自己需要的資料。這一次,我們用了老師給的參考電路圖,然后修改了一些地方,比如去掉了一個(gè)LED,再加入了幾個(gè)電阻。雖然有些困難,但是經(jīng)過努力,我們還是完成了電路的設(shè)計(jì)。經(jīng)過本次的設(shè)計(jì),我們學(xué)到了很多的知識(shí),了解到了傳感器能夠把自然界的各種非電量轉(zhuǎn)換為電信號(hào)的能量物理理念。     從本次的實(shí)習(xí)設(shè)計(jì)中,我們意識(shí)到,在以后的學(xué)習(xí)中,要理論聯(lián)系實(shí)際,把我們所學(xué)的理論知識(shí)運(yùn)用到實(shí)際當(dāng)中,實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn)。培養(yǎng)了一定的獨(dú)立思考能力、解決問題的能力。同時(shí)也學(xué)到了和他人愉快合作的技巧。每當(dāng)我們遇到問題時(shí),我們學(xué)會(huì)了理性的分析,最終解決問題。同時(shí)在討

21、論問題時(shí)認(rèn)真聆聽別人的思想和意見也很重要,在聆聽的同時(shí)也會(huì)學(xué)到很多東西。所以這次實(shí)習(xí)讓我們學(xué)到了很多的東西。 七:附錄(電路圖,程序)#include "reg51.h"#include "intrins.h" /_nop_();延時(shí)函數(shù)用#define Disdata P0 /段碼輸出口#define discan P2 /掃描口#define uchar unsigned char#define uint unsigned intsbit DQ=P33; /溫度輸入口sbit DIN=P07; /LED小數(shù)點(diǎn)控制sbit buzzer=P36;uch

22、ar temp_buzzer;uchar up_alarm=20;uint h;uint i;uchar flag;/*溫度小數(shù)部分用查表法*/uchar code ditab16=0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09;/uchar code dis_712=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf;/共陽LED段碼表 "0" "1" "2&quo

23、t; "3" "4" "5" "6" "7" "8" "9" "不亮" "-" uchar code scan_con=0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe; /列掃描控制字uchar data temp_data2=0x00,0x00; /讀出溫度暫放uchar data display8; /顯示單元數(shù)據(jù),共4個(gè)數(shù)據(jù)和一個(gè)運(yùn)算暫用/*11微秒延時(shí)函數(shù)*/void ser_

24、init() TMOD=0X20; SCON=0X50; TH1=0XFD; TL1=0XFD; TR1=1;void delay(uint t)for(;t>0;t-);/*顯示掃描函數(shù)*/scan()char k; for(k=0;k<7;k+) /四位LED掃描控制 / Disdata=0xff; Disdata=dis_7displayk; if(k=4)DIN=0; discan=scan_conk;delay(200); discan=0xff; void delayms(unsigned int xms) /延時(shí)函數(shù) ,延時(shí)xms unsigned int i , j

25、; for(i = 0; i < xms; i+) for(j = 0; j < 110; j+); void fengming(double templ) uchar i; if(templ >= 34) /溫度報(bào)警限設(shè)置 for(i=0;i<20;i+) buzzer=0; delayms(1);buzzer=1; delayms(1); /*18B20復(fù)位函數(shù)*/ow_reset(void)char presence=1;while(presence)while(presence)DQ=1;_nop_();_nop_();DQ=0; /delay(50); / 5

26、50usDQ=1; /delay(6); / 66uspresence=DQ; / presence=0繼續(xù)下一步 delay(45); /延時(shí)500uspresence = DQ;DQ=1;/*18B20寫命令函數(shù)*/向 1-WIRE 總線上寫一個(gè)字節(jié)void write_byte(uchar val)uchar i;for (i=8; i>0; i-) /DQ=1;_nop_();_nop_();DQ = 0;_nop_();_nop_();_nop_();_nop_();_nop_();/5usDQ = val&0x01; /最低位移出delay(6); /66usval=

27、val/2; /右移一位DQ = 1;delay(1);/*18B20讀1個(gè)字節(jié)函數(shù)*/從總線上讀取一個(gè)字節(jié)uchar read_byte(void)uchar i;uchar value = 0;for (i=8;i>0;i-)DQ=1;_nop_();_nop_();value>>=1;DQ = 0; /_nop_();_nop_();_nop_();_nop_(); /4usDQ = 1;_nop_();_nop_();_nop_();_nop_(); /4usif(DQ)value|=0x80;delay(6); /66usDQ=1;return(value);/*讀

28、出溫度函數(shù)*/read_temp()ow_reset(); /總線復(fù)位write_byte(0xCC); / 發(fā)Skip ROM命令write_byte(0xBE); / 發(fā)讀命令temp_data0=read_byte(); /溫度低8位temp_data1=read_byte(); /溫度高8位ow_reset();write_byte(0xCC); / Skip ROMwrite_byte(0x44); / 發(fā)轉(zhuǎn)換命令/*溫度數(shù)據(jù)處理函數(shù)*/void work_temp()uchar n=0,th=0,tl=0;int temp=0;uchar flag3=1,flag2=1; /數(shù)字顯示修正標(biāo)記if(temp

溫馨提示

  • 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)論