




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、安陽(yáng)師范學(xué)院本科學(xué)生畢業(yè)論文基于51單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)作者 系(院) 物理與電氣工程學(xué)院 專業(yè) 電子信息工程 年級(jí) 學(xué)號(hào) 指導(dǎo)教師 日期 2012.05.12成 績(jī) 學(xué)生誠(chéng)信承諾書(shū)本人鄭重承諾:所呈交的論文是我個(gè)人在導(dǎo)師指導(dǎo)下進(jìn)行的研究工作及取得的研究成果。盡我所知,除了文中特別加以標(biāo)注和致謝的地方外,論文中不包含其他人已經(jīng)發(fā)表或撰寫(xiě)的研究成果,也不包含為獲得安陽(yáng)師范學(xué)院或其他教育機(jī)構(gòu)的學(xué)位或證書(shū)所使用過(guò)的材料。所有合作者對(duì)本研究所作的任何貢獻(xiàn)均已在論文中作了明確的說(shuō)明和表示了。簽名: 日期: 2012-05-12 論文使用授權(quán)說(shuō)明本人完全了解安陽(yáng)師范學(xué)院有關(guān)保留、使用學(xué)位論文的規(guī)定,即:
2、學(xué)校有權(quán)保留送交論文的復(fù)印件,允許論文被查閱和借閱;學(xué)??梢怨颊撐牡娜炕虿糠謨?nèi)容,可以采用影印、縮印或其他復(fù)制手段保存論文。簽名: 導(dǎo)師簽名: 日期: 基于51單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)張兆元(安陽(yáng)師范學(xué)院 物理與電氣工程學(xué)院, 河南 安陽(yáng) 455000)摘 要:用單片機(jī)控制實(shí)現(xiàn)的測(cè)溫系統(tǒng),其精度高,穩(wěn)定性好,并選用了美國(guó)DALLAS公司最新推出的DSl8B20一線式數(shù)字溫度傳感器,并給出了數(shù)字溫度傳感器的硬件接口電路及軟件設(shè)計(jì)方法,通過(guò)發(fā)光數(shù)碼管顯示溫度。關(guān)鍵詞:STC89C52;DSl8B20;測(cè)溫;1 引言隨著現(xiàn)代信息科技的飛速發(fā)展和傳統(tǒng)工業(yè)改造的逐步實(shí)現(xiàn),能夠獨(dú)立工作的溫度檢測(cè)和顯示系
3、統(tǒng)已經(jīng)應(yīng)用于諸多領(lǐng)域。傳統(tǒng)的溫度檢測(cè)以熱敏電阻為溫度敏感元件,熱敏電阻成本低,但需要接信號(hào)處理電路,而且熱敏電阻的可靠性較差,測(cè)量溫度的準(zhǔn)確度低,檢測(cè)系統(tǒng)的精度差。而今電子技術(shù)和微型計(jì)算機(jī)的迅速發(fā)展,采用單片機(jī)進(jìn)行溫度檢測(cè)、數(shù)值顯示和數(shù)據(jù)的傳送,具有效率高、性能穩(wěn)定等優(yōu)點(diǎn),還可以實(shí)現(xiàn)實(shí)時(shí)實(shí)地控制等技術(shù)要求,在工業(yè)生產(chǎn)中應(yīng)用越來(lái)越廣泛。2 技術(shù)要求在三位數(shù)碼管上顯示當(dāng)前采集到的環(huán)境溫度,并精確到0.1度。3 方案論證3.1 恰當(dāng)?shù)剡x擇溫度傳感器方案1:用熱敏電阻做為溫度傳感器。通過(guò)采集各個(gè)時(shí)間內(nèi)的電壓,進(jìn)行A/D轉(zhuǎn)換,經(jīng)過(guò)電壓與溫度的轉(zhuǎn)換、校準(zhǔn),測(cè)量出溫度。方案2:用DS18B20數(shù)字式溫度傳感
4、器。DS18B20是DS1820的換代產(chǎn)品,它與傳統(tǒng)的熱敏電阻溫度傳感器不同,它能夠直接讀出被測(cè)溫度并且可根據(jù)實(shí)際要求通過(guò)簡(jiǎn)單的編程實(shí)現(xiàn)912位的數(shù)字值讀數(shù)方式。其內(nèi)部集成了溫度的傳感器及A/D轉(zhuǎn)換模塊,通過(guò)讀取片內(nèi)數(shù)據(jù),測(cè)量出溫度。 由于用熱敏電阻作為溫度傳感器誤差較大,可靠性相對(duì)較差,且不方便調(diào)試校準(zhǔn);而DS18B20測(cè)量精度高,集成度高,方便調(diào)試,線路簡(jiǎn)單。所以本設(shè)計(jì)采用方案2。 3.2 顯示器件的選擇方案1:采用液晶顯示,此種顯示方式,液晶耗電量少,能顯示復(fù)雜的符號(hào)圖形。方案2:采用發(fā)光數(shù)碼管顯示,此種顯示亮度高,且編程簡(jiǎn)單。考慮到本系統(tǒng)顯示簡(jiǎn)單,液晶價(jià)格貴且亮度低,所以選用方案2。4
5、 硬件設(shè)計(jì)4.1 關(guān)于單片機(jī)單片機(jī)是一種集成電路,即采用大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的CPU(中央處理器)、隨機(jī)存儲(chǔ)器RAM(random access memory )、只讀存儲(chǔ)器ROM(Read-Only Memory )、多種I/O口和中斷系統(tǒng)、定時(shí)器/計(jì)時(shí)器等功能,還可以包括顯示驅(qū)動(dòng)電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路,集成到一塊硅板上構(gòu)成的一個(gè)小而精密的計(jì)算機(jī)系統(tǒng)。 我選用的單片機(jī)是stc89c52,它是深圳宏晶科技生產(chǎn)的,具有低功耗高性能的優(yōu)點(diǎn)。并且有 8K 在系統(tǒng)可編程Flash 存儲(chǔ)器, 512字節(jié)數(shù)據(jù)存儲(chǔ)空間,內(nèi)帶4K字節(jié)EEPROM存儲(chǔ)空間。4.2
6、 系統(tǒng)結(jié)構(gòu)圖4.2.1 了解51單片機(jī)的內(nèi)部系統(tǒng)結(jié)構(gòu)圖4.1.1單片機(jī)的內(nèi)部系統(tǒng)結(jié)構(gòu) 其中,較為重要的是串行端口。串行通信是數(shù)據(jù)的各位在同一根數(shù)據(jù)線上依次逐位發(fā)送或接收。P3.0口的第二功能是串行數(shù)據(jù)的輸入口(RXD),p3.1口的第二功能是串行數(shù)據(jù)的輸出口(TXD)。4.2.2 根據(jù)設(shè)計(jì)要求,畫(huà)出外部系統(tǒng)結(jié)構(gòu)圖電路總圖見(jiàn)附錄一圖4.2.2 外部系統(tǒng)結(jié)構(gòu)圖4.3 溫度傳感器模塊4.3.1 DS18B20溫度傳感器介紹DS18B20是美國(guó)Dallas半導(dǎo)體公司生產(chǎn)的第一片支持“一線總線”接口的溫度傳感器,它具有微型化、低功耗、高性能、抗干擾能力強(qiáng)、易兼容微處理器等優(yōu)點(diǎn),可直接將溫度傳感器轉(zhuǎn)化成串
7、行數(shù)字信號(hào)供處理器處理。4.3.2 DS18B20溫度傳感器特性(1) 適應(yīng)電壓范圍寬,電壓范圍在3.05.5V,在寄生電源方式下可由數(shù)據(jù)線供電。(2) 獨(dú)特的單線接口方式,他與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通信。(3) 支持多點(diǎn)組網(wǎng)功能,多個(gè)DS18B20可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)組網(wǎng)多點(diǎn)測(cè)溫。(4) 在使用中不需要任何外圍元件,全部傳感元件及轉(zhuǎn)換電路形如多只三極管的組成電路。(5) 測(cè)溫范圍-55°C +125°C,在-10°C +85°C時(shí)精度為正負(fù)0.5°C。(6) 可編程分辨率為912位,對(duì)應(yīng)的可
8、分辨溫度分別為0.5°C,0.25°C,0.125°C,0.0625°C,可實(shí)現(xiàn)高精度測(cè)溫。(7) 在9位分辨率時(shí),最多在93.75ms內(nèi)把溫度轉(zhuǎn)換數(shù)字;12位分辨率時(shí),最多在750ms內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,顯然速度很快。(8) 測(cè)量結(jié)果直接輸出數(shù)字溫度信號(hào),以“一線總線”串行傳送給CPU,同時(shí)可傳送CRC校驗(yàn)碼,具有極強(qiáng)的抗干擾能力。CRC即循環(huán)冗余校驗(yàn)碼(Cyclic Redundancy Check):是數(shù)據(jù)通信領(lǐng)域中最常用的一種差錯(cuò)校驗(yàn)碼,其特征是信息字段和校驗(yàn)字段的長(zhǎng)度可以任意選定。(9) 負(fù)壓特性。電源極性接反時(shí),芯片不會(huì)因發(fā)熱而燒毀,但不能
9、正常工作。4.3.3 引腳介紹DS18B20實(shí)物圖如圖所示。圖4.3.3 DS18B20實(shí)物圖 4.3.4 DS18B20與單片機(jī)的連接主機(jī)可以是微控制器,從機(jī)可以是單總線器件,他們之間的數(shù)據(jù)交換只通過(guò)一條信號(hào)線。當(dāng)只有一個(gè)從機(jī)設(shè)備時(shí),系統(tǒng)可按單節(jié)點(diǎn)系統(tǒng)操作;當(dāng)有多個(gè)從機(jī)設(shè)備時(shí),系統(tǒng)則按多節(jié)點(diǎn)系統(tǒng)操作。設(shè)備(主機(jī)或從機(jī))通過(guò)一個(gè)漏極開(kāi)路或三態(tài)端口連至該數(shù)據(jù)線,以允許設(shè)備在不發(fā)送數(shù)據(jù)時(shí)能釋放總線,而讓其他設(shè)備使用總線。單總線通常要求外接一個(gè)約為5k的上拉電阻,如圖所示。 圖4.3.4 DS18B20和單片機(jī)的連接從圖可以看出,DS18B20和單片機(jī)的連接非常簡(jiǎn)單,單片機(jī)只需要一個(gè)I/O口就可以控
10、制DS18B20。這個(gè)圖的接發(fā)是單片機(jī)與一個(gè)DS18B20通信,如果要控制多個(gè)DS18B20進(jìn)行溫度采集,只要將所有DS18B20的I/O口全部連接到一起就可以了。在具體操作時(shí),通過(guò)讀取各個(gè)DS18B20內(nèi)部芯片的序列號(hào)來(lái)識(shí)別。4.3.5 DS18B20的工作原理硬件電路連接好以后,對(duì)于單片機(jī)需要怎樣工作才能將DS18B20中的溫度數(shù)據(jù)讀取出來(lái),下面將給出詳細(xì)分析。其控制DS18B20的指令:33H讀ROM。讀DS18B20溫度傳感器ROM中的編碼(即64位地址)。44H操作RAM。發(fā)送溫度轉(zhuǎn)換命令,結(jié)果存入9字節(jié)RAM。55H匹配ROM。發(fā)出此命令后,接著發(fā)出64位ROM編碼,訪問(wèn)單總線上與
11、該編碼對(duì)應(yīng)的DS18B20并使之作出響應(yīng),為下一步對(duì)該DS18B20的讀/寫(xiě)做準(zhǔn)備。F0H搜索ROM。用于確定掛接在同一總線上DS18B20的個(gè)數(shù),識(shí)別64位ROM地址,為操作各器件做好準(zhǔn)備。CCH跳過(guò)ROM。忽略64位ROM地址,直接向18B20發(fā)溫度變換命令,適用于一個(gè)從機(jī)工作。ECH告警搜索命令。執(zhí)行后只有溫度超過(guò)設(shè)定值上限或下限的芯片才作出響應(yīng)。以上這些指令涉及的存儲(chǔ)器是64位光刻ROM,表1列出了它的各個(gè)定義。表1 64位光刻ROM各位定義8位48位8位CRC碼序列號(hào)產(chǎn)品類型編號(hào)64位光刻ROM中的序列號(hào)是出廠前被光刻好的,他可以看做該DS18B20的地址序列碼。其各位排列順序是:開(kāi)
12、始8位為產(chǎn)品類型標(biāo)號(hào),接下來(lái)48位是該DS18B20自身的序列號(hào),最后8位是前56位的CRC循環(huán)校驗(yàn)碼(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一個(gè)DS18B20都各不相同,這樣就可以實(shí)現(xiàn)一條總線上接掛多個(gè)DS18B20的目的。4.3.6 DS18B20的工作時(shí)序圖下圖為時(shí)序圖中各個(gè)總線狀態(tài)。圖4.2.6 時(shí)序圖中各個(gè)總線態(tài) (1)初始化時(shí)序圖如下圖5所示。先將數(shù)據(jù)線至高電平1.圖(1) DS18B20初始化時(shí)序圖 數(shù)據(jù)線拉到低電平0。 延時(shí)(該時(shí)間要求不是很嚴(yán)格,但是要盡可能短一點(diǎn) 延時(shí)750s(該時(shí)間范圍可在480960s)。 數(shù)據(jù)線拉到高電平1。 延時(shí)等待。如果初始化成功則
13、在1560s內(nèi)產(chǎn)生一個(gè)由DS18B20返回的低電平0,據(jù)該狀態(tài)可以確定溫度傳感器ds18b20的存在。但是應(yīng)注意,不能無(wú)限地等待,不然會(huì)使程序進(jìn)入死循環(huán),所以要進(jìn)行超時(shí)判斷。若CPU讀到數(shù)據(jù)上的低電平0后,還要進(jìn)行延時(shí),延時(shí)的時(shí)間從發(fā)出高電平算起(第步的時(shí)間算起)最少要480s。將數(shù)據(jù)線再次拉到高電平1后結(jié)束。(2)DS18B20寫(xiě)數(shù)據(jù)時(shí)序圖如下圖6所示。寫(xiě)數(shù)據(jù)步驟:數(shù)據(jù)線先置低電平0。掩飾確定的時(shí)間為15s。按從低位到高位的順序發(fā)送數(shù)據(jù)(一次只發(fā)送一位)。延時(shí)時(shí)間為45s。將數(shù)據(jù)線拉到高電平1。重復(fù)循環(huán)步驟,直到發(fā)送完整個(gè)字節(jié),注意最后將數(shù)據(jù)線拉到高位1。圖(2) DS18B20寫(xiě)數(shù)據(jù)(1)
14、 DS18B20讀數(shù)據(jù)時(shí)序圖如下圖7所示。圖(3) DS18B20讀數(shù)據(jù) (3)DS18B20寫(xiě)數(shù)據(jù)時(shí)序圖如上圖所示。寫(xiě)數(shù)據(jù)步驟: 將數(shù)據(jù)線拉高到1. 延時(shí)2s。 將數(shù)據(jù)線拉低到0. 延時(shí)6s。 將數(shù)據(jù)線拉高到1。 延時(shí)4s。 讀數(shù)據(jù)線的狀態(tài)得到一個(gè)狀態(tài)位,并進(jìn)行數(shù)據(jù)處理。重復(fù)步驟,直到讀取完一個(gè)字節(jié)后延時(shí)30us。時(shí)序圖見(jiàn)上圖。4.4 顯示模塊采用三位一體共陰數(shù)碼管顯示溫度,數(shù)碼管驅(qū)動(dòng)使用鎖存器74hc573。采用動(dòng)態(tài)顯示的原理,故段選和位選都用p0口,通過(guò)p2.6口和p2.7口確定位或者段的選通,接法見(jiàn)附錄電路原理圖。5 軟件設(shè)計(jì)5.1 總程序流程圖 總程序流程圖如下圖所示。圖5.1 總程
15、序流程圖5.2 程序設(shè)計(jì)其源程序見(jiàn)附錄三。6 安裝調(diào)試安裝調(diào)試時(shí),數(shù)碼管會(huì)出現(xiàn)亮度不均勻或是數(shù)碼管中有個(gè)別不顯示的現(xiàn)象,經(jīng)檢查發(fā)現(xiàn)產(chǎn)生這種原因的可能是因?yàn)楹附拥臅r(shí)候有虛焊、選用的上拉電阻阻值過(guò)大,或是接元器件的時(shí)候無(wú)意間把鎖存器控制位導(dǎo)線弄斷所導(dǎo)致。6.1 數(shù)碼管引腳的判斷用5v的直流電源串電阻接在數(shù)碼管十二個(gè)引腳上,可以判斷出各個(gè)引腳代表哪一段和哪一位,其中6號(hào)引腳不起作用。哪個(gè)是6號(hào)引腳呢?讓三位數(shù)碼管正對(duì)自己右下角的引腳為1號(hào)引腳,逆時(shí)針依次為2、3、4、5、6、7、8、9、12號(hào)引腳。判斷出它的內(nèi)部電路圖如下圖所示。圖6.1 數(shù)碼管內(nèi)部電路圖6.2 排除故障 6.2.1 排除邏輯故障
16、這類故障往往由于設(shè)計(jì)和連線過(guò)程中工藝性錯(cuò)誤所造成的。主要包括錯(cuò)線、開(kāi)路、短路。排除的方法是首先將加工的電路板認(rèn)真對(duì)照原理圖,看兩者是否一致。應(yīng)特別注意電源系統(tǒng)檢查,以防止電源短路和極性錯(cuò)誤,必要時(shí)利用數(shù)字萬(wàn)用表的短路測(cè)試功能,可以縮短排錯(cuò)時(shí)間。6.2.1 排除元器件失效 造成這類錯(cuò)誤的原因有兩個(gè):一個(gè)是元器件買來(lái)時(shí)就已壞了;另一個(gè)是由于安裝錯(cuò)誤,造成器件燒壞。可以采取檢查元器件與設(shè)計(jì)要求的型號(hào)、規(guī)格和安裝是否一致。在保證安裝無(wú)誤后,用替換方法排除錯(cuò)誤。6.2.3 排除電源故障 在通電前,一定要檢查電源電壓的幅值和極性,否則很容易造成集成塊損壞。加電后檢查各插件上引腳的電位,一般先檢查VCC與G
17、ND之間電位,若在5V4.8V之間屬正常。若有高壓,聯(lián)機(jī)仿真器調(diào)試時(shí),將會(huì)損壞仿真器等,有時(shí)會(huì)使應(yīng)用系統(tǒng)中的集成塊發(fā)熱損壞。7 結(jié)論本文較詳細(xì)的闡述了溫度測(cè)量裝置設(shè)計(jì)的整體方案與軟件實(shí)現(xiàn)。DS18B20的優(yōu)勢(shì)在于集溫度測(cè)量、A/D轉(zhuǎn)換為一體,具有單總線結(jié)構(gòu),數(shù)字量輸出,直接與單片機(jī)接口等優(yōu)點(diǎn),溫度讀取簡(jiǎn)單、直觀,硬件和軟件的開(kāi)發(fā)過(guò)程簡(jiǎn)單,因此可用它組成單路或多路溫度測(cè)量裝置,有一定的使用和推廣價(jià)值。當(dāng)然,在這個(gè)過(guò)程中我遇到了很多問(wèn)題,有的是我看書(shū)、上網(wǎng)查資料解決的,有的是同過(guò)李研達(dá)老師、同學(xué)的幫助解決的,在這里還得感謝他們的支持與厚望。參考文獻(xiàn)1劉華東等編.單片機(jī)原理與應(yīng)用M.北京:電子工業(yè)出
18、版社,20082 吳金戌等編.8051單片機(jī)實(shí)踐與應(yīng)用M.北京:清華大學(xué)出版社,20013張毅剛等編.單片機(jī)原理及應(yīng)用M.北京:高等教育出版社,2003Based on the digital thermometer 51 MCU designZhang Zhao Yuan(School of Physics and Electrical Engineering , Anyang Normal University, Anyang, Henan 455000)Abstract: with the realization of single-chip microcomputer control
19、temperature measuring system, its high accuracy, good stability, and select the DALLAS company latest DSl8B20 a line in the digital temperature sensor is presented, and digital temperature sensor hardware interface circuit and the software design method, through the digital luminescence tubes to dis
20、play temperature. Keywords: STC89C52;DSl8B20;Temperature measurement;附錄一 電路原理圖 附錄二 面包板圖附錄三 源程序#include <reg52.h>#define uchar unsigned char#define uint unsigned intsbit DS=P22; /define interface,確定接口uint temp; / variable of temperature,溫度變量為無(wú)符號(hào)整形uchar flag1; / sign of the result positive or ne
21、gative,結(jié)果是否生效標(biāo)志sbit dula=P26; /數(shù)碼管段選sbit wela=P27; /數(shù)碼管位選unsigned char code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;/顯示的依次是0funsigned char code table1=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd, 0x87,0xff,0xef;/顯示的依次是0.9.void delay(uint count) /延時(shí)子程序 uint i; wh
22、ile(count) i=200; while(i>0) /延時(shí)約1ms i-; count-; /功能:串口初始化,波特率9600,方式1/void Init_Com(void) TMOD = 0x20; /GATE CT M1 M0 GATE CT M1 M0 /定時(shí)T1 工作方式2 PCON = 0x00; /SMOD 波特率倍增位,PCON=0X01時(shí)倍增 /電源控制寄存器 SCON = 0x50; /SM0 SM1 SM2 REN TB8 RB8 TI RI /串行控制寄存器 TH1 = 0xFd; TL1 = 0xFd; TR1 = 1;void dsreset(void)
23、/send reset and initialization command/發(fā)送初始化及復(fù)位信號(hào) /*為了識(shí)別已連接到單總線上的數(shù)字溫度傳感器*/ uint i; DS=0; i=103; while(i>0)i-;/480us960us /*處理器先向DS18B20發(fā)送一個(gè)持續(xù)480960us的低電平信號(hào)*/ DS=1; /*然后進(jìn)入輸入模式釋放總線*/ i=4; while(i>0)i-; /1560us /*在檢測(cè)到I/O引腳上升沿之后,等待1560us*/ /*如果由DS18B20所返回的低電平持續(xù)時(shí)間少于60us,則表示就緒信號(hào)無(wú)效。主機(jī)要重新發(fā)送初始化時(shí)間序列*/*
24、讀取數(shù)據(jù)的一位,滿足讀時(shí)隙要求 */bit tmpreadbit(void) /read a bit/read a bit 讀一位 / DS18B20的讀時(shí)序:分為讀0時(shí)序和讀1時(shí)序兩個(gè)過(guò)程 uint i; / 對(duì)于DS18B20的讀時(shí)隙是從主機(jī)把單總線拉低之后, bit dat; /dat的取值為0、1。/ 在15微秒之內(nèi)就得釋放單總線,以讓DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩€上。 DS=0;i+; /i+ for delay小延時(shí)一下 / DS18B20在完成一個(gè)讀時(shí)序過(guò)程,至少需要60us才能完成。 DS=1;i+;i+;/ 延時(shí)15us以上,讀時(shí)隙下降沿后15us,DS18B20輸出數(shù)據(jù)才
25、有效 dat=DS; i=8;while(i>0)i-; return (dat);/* 讀取數(shù)據(jù)的一個(gè)字節(jié) */uchar tmpread(void) /read a byte date,讀數(shù)據(jù)的一個(gè)字節(jié) uchar i,j,dat; dat=0; for(i=1;i<=8;i+) j=tmpreadbit(); dat=(j<<7)|(dat>>1); /讀出的數(shù)據(jù)最低位在最前面,這樣剛好一個(gè)字節(jié)在DAT里 return(dat);/ 將一個(gè)字節(jié)數(shù)據(jù)返回/* 寫(xiě)數(shù)據(jù)的一個(gè)字節(jié),滿足寫(xiě)1和寫(xiě)0的時(shí)隙要求 */void tmpwritebyte(uchar
26、dat) /write a byte to ds18b20,向傳感器寫(xiě)入一個(gè)字節(jié)/DS18B20的寫(xiě)時(shí)序:寫(xiě)0時(shí)序和寫(xiě)1時(shí)序兩個(gè)過(guò)程 /寫(xiě)一個(gè)字節(jié)到 DS18B20 里 / uint i; uchar j; bit testb; for(j=1;j<=8;j+) testb=dat&0x01; dat=dat>>1; 取下一位(由低位向高位) if(testb) /write 1/ 對(duì)于DS18B20寫(xiě)0時(shí)序和寫(xiě)1時(shí)序的要求不同,當(dāng)要寫(xiě)0時(shí)序時(shí),單總線要被拉低至少60us,保證DS18B20能夠在15us到45us之間能夠正確地采樣IO總線上的“0”電平,當(dāng)要寫(xiě)1時(shí)序
27、時(shí),單總線被拉低之后,在15us之內(nèi)就得使單總線變高,整個(gè)寫(xiě)1時(shí)隙不低于60us。 DS=0; /產(chǎn)生寫(xiě)0時(shí)隙的過(guò)程:MCU拉低總線后,只要在整個(gè)時(shí)隙期間保持低電平即可(至少60US) i+;i+; DS=1; i=8;while(i>0)i-; else DS=0; /write 0 i=8;while(i>0)i-; DS=1; i+;i+; void tmpchange(void) /DS18B20 begin change dsreset(); delay(1); tmpwritebyte(0xcc); / address all drivers on bus, /允許MC
28、U不提供64位ROM編碼就使用存儲(chǔ)器操作命令,在單點(diǎn)總線情況下節(jié)省時(shí)間 tmpwritebyte(0x44); / initiates a single temperature conversion/(操作RAM)發(fā)送溫度轉(zhuǎn)換命令,結(jié)果存入9字節(jié)RAM。 /uint tmp() /get the temperature float tt; uchar a,b; dsreset(); delay(1); tmpwritebyte(0xcc); tmpwritebyte(0xbe); /發(fā)送讀取數(shù)據(jù)命令 ,讀內(nèi)部RAM9字節(jié)的內(nèi)容 a=tmpread(); b=tmpread(); temp=b; temp<<=8; /two byte compose a int variable temp=temp|a;/ 得到
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年 郴州市資興市消防救援大隊(duì)幫廚招聘考試筆試試題附答案
- 施工平面圖繪制系統(tǒng)項(xiàng)目投資可行性研究分析報(bào)告(2024-2030版)
- 云南智能計(jì)量?jī)x表項(xiàng)目可行性研究報(bào)告
- 稅務(wù)師網(wǎng)盤(pán)課件
- 中國(guó)仿古白漆行業(yè)市場(chǎng)發(fā)展前景及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告(2024-2030)
- 2025-2031年中國(guó)花生牛奶行業(yè)發(fā)展前景預(yù)測(cè)及投資方向研究報(bào)告
- 2025年中國(guó)電子材料行業(yè)市場(chǎng)前景預(yù)測(cè)及投資戰(zhàn)略研究報(bào)告
- 中國(guó)特種陶瓷成型蠟項(xiàng)目投資可行性研究報(bào)告
- 中國(guó)土礦石開(kāi)采項(xiàng)目投資可行性研究報(bào)告
- 2025年中國(guó)炸雞調(diào)料行業(yè)市場(chǎng)調(diào)研及未來(lái)發(fā)展趨勢(shì)預(yù)測(cè)報(bào)告
- CJ/T 328-2010球墨鑄鐵復(fù)合樹(shù)脂水箅
- 會(huì)計(jì)核算考試題目及答案
- 人工智能賦能思政教育“精準(zhǔn)滴灌”體系構(gòu)建
- 搬運(yùn)裝卸服務(wù)外包項(xiàng)目投標(biāo)方案(技術(shù)方案)
- 2025年安全月主要責(zé)任人講安全課件三:安全月主題宣講課件
- 綠植移植合同協(xié)議
- 膠質(zhì)瘤術(shù)后護(hù)理查房
- 縫紉初步知識(shí)培訓(xùn)課件
- 年中國(guó)金骨蓮膠囊市場(chǎng)分析及發(fā)展策略研究預(yù)測(cè)報(bào)告
- 8.4 流體壓強(qiáng)與流速的關(guān)系 課件-2024-2025學(xué)年滬科版物理八年級(jí)下冊(cè)
- 【北師大版】2024-2025學(xué)年一年級(jí)數(shù)學(xué)下冊(cè)教學(xué)計(jì)劃(及進(jìn)度表)
評(píng)論
0/150
提交評(píng)論