freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

畢業(yè)設計基于51單片機的家用電熱水器設計(編輯修改稿)

2025-01-06 16:41 本頁面
 

【文章內容簡介】 一個由 DS18B20 所返回的低電平 “0”。據(jù)該狀態(tài)可以來確定它的存在,但是應注意不 能無限的進行等待,不然會使程序進入死循環(huán),所以要進行超時控制) ; ( 7) 若 CPU 讀到了數(shù)據(jù)線上的低電平 “0”后,還要做延時,其延時的時間 從發(fā)出的高電平算起(第( 5)步的時間算起)最少要 480 微秒 ; ( 8) 將數(shù)據(jù)線再次拉高到高電平 “1”后結束 。 11 DS18B20 的的初始化 見 圖 所示。 圖 DS18B20 的 的初始化 2. DS18B20 的寫操作 ( 1) 數(shù)據(jù)線先置低電平 “0”; ( 2) 延時確定的時間為 15 微秒 ; ( 3) 按從低位到高位的順序發(fā)送字節(jié)(一次只發(fā)送一位) ; ( 4) 延時時間為 45 微秒 ; ( 5) 將數(shù)據(jù)線拉到高電平 ; ( 6) 重復上( 1)到( 6)的操作直到所有的字節(jié)全部發(fā)送完為止 ; ( 7) 最后將數(shù)據(jù)線拉高 。 在這里要注意的是( 3),寫數(shù)據(jù)時時 1bit 單獨傳送,這里有兩種情況。 當需要傳送 “1”時,單片機應該給 DS18B20 芯片的 DQ 接口賦低電平,大約 15 秒以后,將 DQ 釋放為高電平,延時約 45 微妙即可。 當需要傳送 “0”時,單片機應該給 DS18B20 芯片的 DQ 接口賦低電平,并且持續(xù)拉低最少 60 微妙,然后將 DQ 釋放為高電平,再延時約 15 秒即可。 DS18B20 的寫操作時序圖見 圖 所示。 12 圖 DS18B20 的寫操作時序圖 3. DS18B20 的讀操作 ( 1) 將數(shù)據(jù)線拉高 “1”; ( 2)延時 2 微秒 ; ( 3)將數(shù)據(jù)線拉低 “0”; ( 4)延時 15 微秒 ; ( 5)將數(shù)據(jù)線拉高 “1”; ( 6)延時 15 微秒 ; ( 7)讀數(shù)據(jù)線的狀態(tài)得到一個狀態(tài)位,并進行數(shù)據(jù)處理 ; ( 8)延時 30 微秒 ; 這里只要按以上操作將狀態(tài)位的各各 bit 按順序儲存好即可 。 DS18B20 的讀操作時序圖見 圖 所示。 圖 DS18B20 的 讀 操作時序圖 DS18B20 的指令與格式 DS18B20 溫度格式圖見圖 所示。 圖 DS18B20 溫度格式圖 這是 12 位轉化后得到的 12 位數(shù)據(jù),存儲在 DS18B20 的兩個 8 比特的RAM 中,二進制中的前面 5 位是符號位,如果測得的溫度大于 0, 這 5 位 13 為 0, 只要將測到的數(shù)值乘于 即可得到實際溫度;如果溫度小于 0,這 5 位為 1,測到的數(shù)值需要取反加 1 再乘于 即可得到實際 溫度。 例如 +125℃ 的數(shù)字輸出為 07D0H, +℃ 的數(shù)字輸出為 0191H,℃ 的數(shù)字輸出為 FE6FH, 55℃ 的數(shù)字輸出為 FC90H 。 DS18B20 溫度傳感器的存儲器 DS18B20 溫度傳感器的內部存儲器包括一個高速暫存 RAM 和一個非易失性的可電擦除的 EEPRAM,后者存放高溫度和低溫度觸發(fā)器 TH、 TL 和結構寄存器。配置寄存器, 該字節(jié)各位的意義見 表 所示。 表 配置寄存器結構 溫度 數(shù)據(jù)輸出(二進制) 數(shù)據(jù)輸出(十六進制) +125℃ 0000 0111 1101 0000 07D0 +85℃ 0000 0101 0101 0000 0550 +℃ 0000 0001 1001 0001 0191 +℃ 0000 0000 1010 0010 00A2 +℃ 0000 0000 0000 1000 0008 0℃ 0000 0000 0000 0000 0000 ℃ 1111 1111 1111 1000 FFF8 ℃ 1111 1111 0101 1110 FF5E ℃ 1111 1110 0110 1111 FE6F 55℃ 1111 1100 1001 0000 FC90 高速暫存存儲器由 9 個字節(jié)組成。 其分配 見表 所示, 當溫度轉換命令發(fā)布后,經轉換所得的溫度值以二字 節(jié)補碼形式存放在高速暫存存儲器的第 0 和第 1 個字節(jié)。單片 機可通過單線接口讀到該數(shù)據(jù),讀取時低位在前,高位在后 。對應的溫度計算:當符號位 S=0 時,直接將二進制位轉換為十進制;當 S=1 時,先將補碼變?yōu)樵a,再計算十進制值。第九個字節(jié)是冗余檢驗字節(jié)。 表 DS18B20 暫存寄存器分布 寄存器內容 字節(jié)地址 14 溫度值低位 ( LS Byte) 0 溫度值高位 ( MS Byte) 1 高溫限值( TH) 2 低溫限值( TL) 3 配置寄存器 4 保留 5 保留 6 保留 7 CRC校驗值 8 根據(jù) DS18B20 的通訊協(xié)議,主機(單片機)控制 DS18B20 完成溫度轉換必須經過三個步驟:每一次讀寫之前都要對 DS18B20 進行復位操作,復位成功后發(fā)送一條 ROM 指令,最后發(fā)送 RAM 指令,這樣才能對 DS18B20進行預定的操作。復位要求主 CPU 將數(shù)據(jù)線下拉 500 微秒,然后釋放,當DS18B20 收到信號后等待 16~ 60 微秒左右,后發(fā)出 60~ 240 微秒的存在低脈沖,主 CPU 收到此信號表示復位成功。 ROM 指令表見表 所示, RAM指令表見表 所示。 15 表 ROM 指令表 指 令 約定代碼 功 能 讀 ROM 33H 讀 DS1820溫度傳感器 ROM中的編碼(即 64位地址) 符合 ROM 55H 發(fā)出此命令之后,接著發(fā)出 64 位 ROM 編碼,訪問單總線上與該編碼相對應的 DS1820 使之作出響應,為下一步對該 DS1820 的讀寫作準備。 搜索 ROM 0FOH 用于確定掛接在同一總線上 DS1820 的個數(shù)和識別 64 位 ROM 地址。為操作各器件作好準備。 跳過 ROM 0CCH 忽略 64 位 ROM 地址,直接向 DS1820 發(fā)溫度變換命令。適用于單片工作。 警告搜索命令 0ECH 執(zhí)行后只有溫度超過設定值上限或下限的片子才做出響應。 表 RAM 指令表 指 令 約定代碼 功 能 溫度變換 44H 啟動 DS1820進行溫度轉換, 12 位轉換時最長為 750ms( 9位為 )。結果存入內部 9字節(jié) RAM中。 讀暫存器 0BEH 讀內部 RAM中 9字節(jié)的內容 寫暫存器 4EH 發(fā)出向內部 RAM的 4字節(jié)寫上、下限溫度數(shù)據(jù)命令,緊跟該命令之后,是傳送兩字節(jié)的數(shù)據(jù)。 復制暫存器 48H 將 RAM中第 3 、 4字節(jié)的內容復制到 EEPROM 中。 重調 EEPROM 0B8H 將 EEPROM中內容恢復到 RAM中的第 3 、 4字節(jié)。 讀供電方式 0B4H 讀 DS1820的供電模式。寄生供電時 DS1820發(fā)送 “ 0 ” ,外接電源供電 DS1820發(fā)送 “ 1 ” 。 DS18B20 寄生電源供電方式 DS18B20 測溫系統(tǒng)具有測溫系統(tǒng)簡單、測溫精度高、連接方便、占用口線少等優(yōu)點。下面就是 DS18B20 幾個不同應用方式下的 測溫電路圖: 16 DS18B20 寄生電源供電方式電路圖 , 見 圖 所示,在寄生電源供電方式下, DS18B20 從單線信號線上汲取能量:在信號線 DQ 處于高電平期間 把能量儲存在內部電容里,在信號線處于低電平期間消耗電容上的電能工作,直到高電平到來再給寄生電源(電容)充電。 獨特的寄生電源方式有三個好處: 1. 進行遠距離測溫時,無需本地電源 ; 2. 可以在沒有常規(guī)電源的條件下讀取 ROM; 3. 電路更加簡潔,僅用一根 I/O 口實現(xiàn)測溫 。 要想使 DS18B20 進行精確的溫度轉換, I/O 線必須保證在溫度轉換期間提供足夠的能量,由于每個 DS18B20 在溫度轉換期間工作電流達到 1mA,當幾個溫度傳感器掛在同一根 I/O 線上進行多點測溫時,只靠 上拉 電阻就無法提供足夠的能量,會造成無法轉換溫度或溫度誤差極大。 因此, 這種 電路只適應于單一溫度傳感器測溫情況下使用,不適宜采用供電系統(tǒng)中。并且工作電源 VCC 必須保證在 5V,當電源電壓下降時,寄生電源能夠汲取的能量也降低,會使溫度誤差變大。 圖 DS18B20 寄生電源供電方式 DS18B20 改進的 寄生電源供電方式 DS18B20 寄生電源強上拉供電方式電路圖 , 改進的寄生電源供電方式見 圖 所示,為了使 DS18B20 在動態(tài)轉換周期中獲得足夠的電流供應,當進行溫度轉換或拷貝到 E2 存儲器操作時,用 MOSFET 把 I/O 線直接拉到VCC 就可提供足夠的電流,在發(fā)出任何涉及到拷貝到 E2 存儲器或啟動溫度轉換的指令后,必須在最多 10μS 內把 I/O 線轉換到強上拉狀態(tài)。在強上拉 17 方式下可以解決電流供應不走的問題,因此也適合于多點測溫應用,缺點就是要多占用一根 I/O 口線進行強上拉切換。 圖 改進的寄生電源供電方式 注意:在 見 圖 所示、見 圖 所示 寄生電源供電方式中, DS18B20的 VDD 引腳必須接地 。 DS18B20 外部 電源供電方式 DS18B20 的外部電源供電方式 見圖 所示, 在外部電源供電方式下,DS18B20 工作電源由 VDD 引腳接入,此時 I/O 線不需要強上拉,不存在電源電流不 足的問題,可以保證 轉換精度, 同時在總線上理論可以掛接任意多。 DS18B20 傳感器,組成多點測溫系統(tǒng)。注意:在外部供電的方式下,DS18B20 的 GND 引腳不能懸空 , 否則不能轉換溫度,讀取的溫度總是 85℃ 。 18 圖 外部供電方式單點測溫電路 在本次設計中 采用外部電源供電方式 , 連接方法 見圖 所示。 圖 設計中采用的 測溫電路 直接將 DS18B20 的 I/O 口接在單片機的 P2^2 上 ,這樣在硬件方面就可以進行數(shù)據(jù)交流,從而達到溫度數(shù)據(jù)傳輸?shù)哪康摹? DS18B20 寄生電源供電方式 外部供電方式的多點測溫電路圖見圖 , 外部電源供電方式是DS18B20 最佳的工作方式,工作穩(wěn)定可靠,抗干擾能力強, 而且電路也比較簡單,可以開發(fā)出穩(wěn)定可靠的多點溫度監(jiān)控系統(tǒng)。站長推薦大家在開發(fā)中使用外部電源供電方式,畢竟比寄生電源方式只多接一根 VCC 引線。在外接電源方式下,可以充分發(fā)揮 DS18B20 寬電源電壓范圍的優(yōu)點,即使電源 19 電壓 VCC 降到 3V 時,依然能夠保證溫度量精度。 圖 外部供電方式的多點測溫電路圖 20 第 3 章 系統(tǒng) 軟件設計 鍵盤輸入的程序 while(temp!=0xf0) { delay(5)。 P3=0xfd。 temp=P3。 temp=tempamp。0xf0。 while(temp!=0xf0) { temp=P3。 switch(temp) { case 0xed:num=0。 break。 case 0xdd:num=1。 break。 case 0xbd:num=2。 break。 case 0x7d:num=3。 break。 } while(temp!=0xf0) { temp=P3。 temp=tempamp。0xf0。//****0000 } 21 } 在這里使用了 _crol_函數(shù),所以頭文件中要增加 include,這里包括去抖和松手檢測。 經過檢測以后通過不同的 temp 值,使 num 被賦予相應的數(shù)值,這樣 num 就是要輸入的一個數(shù)字。 DS18B20 溫度傳感器設計 連接好電路以后,就可以開 始 設計 DS18B20 的軟件 環(huán)節(jié) 。首先要初始化DS18B20 以下 為初始化程序。 void dsstart() { unsigned int i。 ds=0。 i=100。 //拉低約 800us, 符合協(xié)議要求的 480us 以上 while(i0) i。 ds=1。 //產生一個上升沿 , 進入等待應答狀態(tài) i=4。 while(i0) i。 } 然后延時等待,回應。如以下子函數(shù)。 void dswait() { unsigned int i。 while(ds)。 //等待應答信號 while(~ds)。 //檢測到應答脈沖 i=4。 while(i0) i。 } 以下兩個子函數(shù)為讀取的數(shù)據(jù)時用到的??梢栽跍?
點擊復制文檔內容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1