ds18b2詳解及程序(活動za)_第1頁
ds18b2詳解及程序(活動za)_第2頁
ds18b2詳解及程序(活動za)_第3頁
ds18b2詳解及程序(活動za)_第4頁
ds18b2詳解及程序(活動za)_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、最近都在學(xué)習(xí)和寫單片機的程序,今天有空又模仿溫度測量顯示實驗寫了一個與基于單總線通信的程序.數(shù)字溫度傳感器(參考:智能溫度傳感器的原理與應(yīng)用)是公司生產(chǎn)的一,即單總線器件,具有線路簡單,體積小的特點。因此用它來組成一個測溫系統(tǒng),具有線路簡單,在一根通信線,可以掛很多這樣的數(shù)字溫度 計。產(chǎn)品的特點:()、只要求一個口即可實現(xiàn)通信。()、在中的每個器件上都有獨一無二的序列號。()、實際應(yīng)用中不需要外部任何元器件即可實現(xiàn)測溫。()、測量溫度范圍在一到十之間;在 范圍內(nèi)誤差為;()、數(shù)字溫度計的分辨率用戶可以從位到位選擇。將位的溫度值轉(zhuǎn)換為數(shù)字量所需進(jìn)度不超過;()、內(nèi)部有溫度上、下限告警設(shè)置。引腳分

2、布圖E1E3EIE1NCNC,DD兇VE1E3EIE1NCNC,DD兇VDS18B20NCNCNCGNEJEIEJE1詳細(xì)引腳功能描述:、地信號。、數(shù)據(jù)輸入出引腳。開漏單總線接口引腳。當(dāng)被用在寄生電源下,此引腳可以向器件提供電源。漏極開路,常 太下高電平.通常要求外接一個約C的上拉電阻.、可選擇的弓I腳。電壓范圍;當(dāng)工作于寄生電源時,此引腳必須接地。存儲器結(jié)構(gòu)圖中間結(jié)果暫存RAM字節(jié)海帝侑低位字節(jié)0非易失性電可擦除RAM溫漁仙島位?節(jié)1TH:用戶使用字節(jié)1TH;用戶使用字節(jié)1TU用戶使用字邛231W用戶使用字節(jié)2配置字節(jié)4配簧字節(jié)俁司宇節(jié)5保宙學(xué)節(jié)6保例字節(jié)7CRC字節(jié)X暫存儲器的頭兩個字節(jié)為

3、測得溫度信息的低位和高位字節(jié); 第,字節(jié)是和的易失性拷貝,在每次電復(fù)位時都會被刷新; 第字節(jié)是配置寄存器的易失性拷貝,同樣在電復(fù)位時被刷新; 第字節(jié)是前面?zhèn)€字節(jié)的檢驗值.配置寄存器的命令內(nèi)容如下:改進(jìn)代碼:擴(kuò)大測量范圍,使可測量范圍為:度 度,嚴(yán)格按照上面的進(jìn)程安排進(jìn)行軟件設(shè)計 修正()函數(shù)中的下一位顯示對上一位的影響田目改進(jìn)代碼 要用到取絕對值函數(shù)。通過測試當(dāng)前環(huán)境溫度,并通過數(shù)碼管顯示當(dāng)前溫度值,目前顯示范圍:度人;數(shù)碼管位選人;數(shù)碼管段選人. 1數(shù)碼管的編碼(共陰極)日田口國L ;數(shù)碼管的編碼(共陰極),帶小數(shù)點日田口目,L ,延時函數(shù),對于時鐘,例,那么大概延時.()日到I 0帕臼(I

4、 (;);產(chǎn)生一個上升沿,進(jìn)入等待應(yīng)答狀態(tài)I0;();檢測到應(yīng)答脈沖I ;();向讀取一位數(shù)據(jù)讀一位,讓一小周期低電平,然后兩小周期高電平, 之后那么會輸出持續(xù)一段進(jìn)度的一位數(shù)據(jù)0eie!同;延時約,符合協(xié)議要求至少保持;延時約,符合協(xié)議要求的至少延時以上();延時約,符合讀時隙不低于要求 f L讀取一字節(jié)數(shù)據(jù),通過調(diào)用()來實現(xiàn)0日I (; ;)由由聞I 0;最先讀出的是最低位數(shù)據(jù)( );卜 ,向?qū)懭胍蛔止?jié)數(shù)據(jù)()日I (; ;寫“:將拉低后,在內(nèi)將拉高,即完成寫I 0由由 國 /I;拉低約,符號要求內(nèi);();延時約,符合寫時隙不低于耍求?寫”。將拉低由由 目 fI;();拉低約,符號要求I

5、;整個寫時隙過程已經(jīng)超過,這里就不用像寫那樣,再延時了卜卜向發(fā)送溫度轉(zhuǎn)換命令 ();初始化,無論什么命令,首先都要發(fā)起初始化();等待應(yīng)答I (); 延時,因為會拉低作為應(yīng)答信號I ();寫入跳過序列號命令字I ();寫入溫度轉(zhuǎn)換命令字向發(fā)送讀取數(shù)據(jù)命令 日I 0;I 0;I 0;();寫入跳過序列號命令字I ();寫入讀取數(shù)據(jù)令字L獲取當(dāng)前溫度值0日田|_曰I ;I ;存放溫度數(shù)值0;連續(xù)讀取兩個字節(jié)數(shù)據(jù)0;0;將高低兩個字節(jié)合成一個整形變量計算機中對于負(fù)數(shù)是利用補碼來表示的假設(shè)是負(fù)值,讀取出來的數(shù)值是用補碼表示的,可直接賦值給型的使用的默認(rèn)分辨率位,精確度為度,即讀回數(shù)據(jù)的最低位代表度*

6、-將它放大倍,使顯示時可顯示小數(shù)點后兩位,并對小數(shù)點后第三進(jìn)行舍入 如,進(jìn)行計數(shù)后,得到,即度如,進(jìn)行計數(shù)后,得到,即度* (?:);大于加,小于減;動態(tài)掃描的進(jìn)度間隔顯示當(dāng)前溫度值,精確到小數(shù)點后一位假設(shè)先位選再段選,由于口默認(rèn)輸出高電平,所以領(lǐng)先位選會使數(shù)碼管出現(xiàn)亂碼() 日田I同白由鳳,I 0;I ;()關(guān)位選,去除對上一位的影響;翻開鎖存,給它一個下降沿量段選;顯示“”號;翻開鎖存,給它一個下降沿量 位選 ;翻開鎖存,給它一個下降沿量0;卜(;)關(guān)位選,去除對上一位的影響;翻開鎖存,給它一個下降沿量7段選()*()()()II;當(dāng)最高位為時.,不作顯示I卜*1;顯示數(shù)字卜I 加 區(qū)I;

7、顯示帶小數(shù)點數(shù)字卜I;翻開鎖存,給它一個下降沿量I;I I位選I(,);選擇第()個數(shù)碼管I;翻開鎖存,給它一個下降沿量。同;E。同;EI 0由由國I啟動溫度轉(zhuǎn)換I 0;I 顯示次(; 0 )響應(yīng):檢測到該上升沿后,延時,通過拉低總線來產(chǎn)生應(yīng)答脈沖.:()()接收響應(yīng):主機接收到從機的應(yīng)答脈沖后,說明有單線器件在線.至此,初始化完成.內(nèi)存操作命令在成功乃行操W命令后,才可使用內(nèi)存操作命令,共有種內(nèi)存操作命令: 命令類命令命令類 型命令 字節(jié)功能寫暫存 器寫暫存器中地址地址的個字節(jié)(和配置寄存器)在發(fā)起復(fù)位脈沖之前個字節(jié)都必須要寫.讀暫存 器讀取暫存器內(nèi)容,從字節(jié)一直到字節(jié),共個字節(jié),主機可隨時

8、發(fā)起復(fù)位脈沖,停止此操作,通常我們只 需讀前個字節(jié).復(fù)制暫 存器將暫存器中的內(nèi)容復(fù)制進(jìn),以便將溫度告警觸發(fā)字節(jié)存入非易失內(nèi)存.如果此命令后主機產(chǎn)生讀 時隙,那么只要器件還在進(jìn)行復(fù)制都會輸出,復(fù)制完成后輸出.溫度轉(zhuǎn) 換開始溫度轉(zhuǎn)換操作,假設(shè)在此命令后主機產(chǎn)生時隙,那么只要器件還在進(jìn)行溫度轉(zhuǎn)換就會輸出,轉(zhuǎn) 換完成后輸出.重調(diào)暫 存器將存儲在中的溫度告警觸發(fā)值和配置寄存器值重新拷貝到暫存器中,此操作在加電時自動產(chǎn)生.讀供電 方式主機發(fā)起此命令后每個讀數(shù)時隙內(nèi)會發(fā)信號通知它的供電方式寄生電源,外部供電.,操作命令當(dāng)主機檢測到應(yīng)答脈沖,便可發(fā)起操作命令,共有類操作命令,如下表命令類 型命令 字節(jié)功能讀讀

9、取激光中的位,只能用于總線上單個器件情況,多掛時會發(fā)生數(shù)據(jù)沖突匹配此命令后跟位序列號,尋址多掛總線上的對應(yīng),只有序列號完全匹配的才能響應(yīng)后面的內(nèi)存操作命 令,其他不匹配的將等待復(fù)位脈沖,可用于單掛或多掛兩種情況.跳過可無須提供位序列號即可運行內(nèi)存操作命令,只能用于單掛.搜索通過一個排除法過程,識別出總線上所有器件的序列號告警搜 索命令進(jìn)程安排與相同,但只有最近的一次溫度測量時滿足了告警觸發(fā)條件的,才會響應(yīng)此命令.,數(shù)據(jù)處理要求有嚴(yán)格的時序來保證數(shù)據(jù)的完整性.在單線上,有復(fù)位脈沖,應(yīng)答脈沖,寫,寫,讀,讀這種信號類型. 除了應(yīng)答脈沖外,其它都由主機產(chǎn)生.數(shù)據(jù)位的讀和寫是通過讀、寫時隙實現(xiàn)的.)寫

10、時隙:當(dāng)主機將數(shù)據(jù)線從高電平拉至低電平時,產(chǎn)生寫時隙.所有寫時隙都必須在以上,各寫時隙間必 須保證的恢復(fù)進(jìn)度.寫心:主機將數(shù)據(jù)線先拉低,然后釋放后,將數(shù)據(jù)線拉高;寫”“:主機將拉低并至少保持以上.)讀時隙:當(dāng)主機將數(shù)據(jù)線從高電平拉至低電平時,產(chǎn)生讀時隙,所有讀時隙最短必須持續(xù),各讀時隙間必 須保證的恢復(fù)進(jìn)度.讀:主機將拉低至少,.此時主機馬上將拉高,然后就可以延時后,讀取即可.源代碼:(測量范圍:度)田日 V 通過測試當(dāng)前環(huán)境溫度,并通過數(shù)碼管顯示當(dāng)前溫度值人;數(shù)碼管位選八;數(shù)碼管段選A .1數(shù)碼管的編碼(共陰極)日田口國,;數(shù)碼管的編碼(共陰極),帶小數(shù)點延時函數(shù),例,那么大概延時.() )

11、; L)讀取一字節(jié)數(shù)據(jù),通過調(diào)用()來實現(xiàn)0日0日I (; ;)白由I 0;I 最先讀出的是最低位數(shù)據(jù) ( );卜I ;4向?qū)懭胍蛔止?jié)數(shù)據(jù))0 :(0日)0 :(0日I (; );卜I寫”。讓低電平持續(xù)個小延時,高電平持續(xù)個小延時由由 E卜卜?向發(fā)送溫度轉(zhuǎn)換命令()白();初始化(); 延時();寫入跳過序列號命令字();寫入溫度轉(zhuǎn)換命令字向發(fā)送讀取數(shù)據(jù)命令()日田I 0;I 0;();寫入跳過序列號命令字I();寫入讀取數(shù)據(jù)令字獲取當(dāng)前溫度值0日 eI ;存放溫度數(shù)值0;連續(xù)讀取兩個字節(jié)數(shù)據(jù)0;0;將高低兩個字節(jié)合成一個整形變量f ; /的精確度為度,即讀回數(shù)據(jù)的最低位代表度* r將它放大倍,使顯示時可顯示小數(shù)點后一位,并對小數(shù)點后第二進(jìn)行舍入 如,進(jìn)行計數(shù)后,得到,即度顯示當(dāng)前溫度值,精確到小數(shù)點后一位()日由由臼,I ;I ;I ;I (; ;)由由囚I片選 TOC o 1-5 h z I;I( ();選擇第()個數(shù)碼管I;翻開鎖存,給它一個下降沿量I;I段選I;I()由中國I;顯示數(shù)字卜)I 施 區(qū)I;

溫馨提示

  • 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

提交評論