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

正文內(nèi)容

畢業(yè)設(shè)計-基于at89c51的智能溫度預(yù)警系統(tǒng)的設(shè)計(編輯修改稿)

2025-01-06 19:43 本頁面
 

【文章內(nèi)容簡介】 地 DS18B20 與單片機(jī)接口 電路 如圖 所示 ,為單片機(jī) 和 DS18B20 的接口電路。 DS18B20 只有三個引腳,一個接地,一個接電源,一個數(shù)字輸入輸出引腳接單片機(jī)的 口,電源與數(shù)字輸入輸出 腳間需要接一個 的電阻。 圖 DS18B20 與單片機(jī)接口電路 溫度寄存器格式和溫度 /數(shù)據(jù)對應(yīng)關(guān)系 DS18B20 溫度寄存器 如 表 所示。 寄存器 有 16 位 ,高 5 位為符號位 ,低 13 位為數(shù)據(jù)位。當(dāng)寄存器高 5 位為 1 時,表示溫度為負(fù),否則為正。 DS 18 B 20 單 片 機(jī)P 1 . 7VDDGNDDQ4 . 7 K邵陽學(xué)院畢業(yè)設(shè)計(論文) 8 表 溫度寄存器格式 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 LS Byte B bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 MS Byte 如果測得的溫度大于 0, 只要將測到的數(shù)值乘于 即可得到實際溫度 ; 如果溫度小于 0, 測得的數(shù)值需要取反加 1 再乘 , 即可得到實際的溫度值 。如表 所示,是 DS18B20 的溫度與數(shù)據(jù)的對應(yīng)關(guān)系。 表 溫度 /數(shù)據(jù)的關(guān)系 單片機(jī)對 DS18B20 的控制方法 DS18B20 采用嚴(yán)格的單總線通信協(xié)議,以保證數(shù)據(jù)的完整性。該協(xié)議定義了 幾種信號類型:復(fù)位脈沖、應(yīng)答脈沖、寫 0、 寫 讀 0 和讀 1。除了應(yīng)答脈沖所有 這些信號都由主機(jī)發(fā)出同步信號。總線上傳輸?shù)乃袛?shù)據(jù)和命令都是以字節(jié) 為單位 ,且 低位在前 ,高位在后 。 ( 1) 初始化序列:復(fù)位脈沖和應(yīng)答脈 沖 在初始化過程中,主機(jī)通過拉低單總線至少 480181。s,以產(chǎn)生復(fù)位脈沖 (TX)。然 23 22 21 20 21 22 23 24 S S S S S 26 25 24 溫度 輸出 (2進(jìn)制 ) 輸出 (16進(jìn)制 ) +125℃ 0000 0111 1101 0000 07D0H +85℃ 0000 0101 0101 0000 0550H +℃ 0000 0001 1001 0001 0191H +℃ 0000 0000 1010 0010 00A2H +℃ 0000 0000 0000 1000 0008H 0℃ 0000 0000 0000 0000 0000H ℃ 1111 1111 1111 1000 FFF8H ℃ 1111 1111 0101 1110 FF5EH ℃ 1110 1110 0110 1111 EE6FH 55℃ 1111 1110 1001 0000 FE90H 邵陽學(xué)院畢業(yè)設(shè)計(論文) 9 后主機(jī)釋放總線并進(jìn)入接收 (RX)模式。當(dāng)總線被釋放后, 5kΩ 的上拉電阻將單總線拉高。 DS18B20 檢測到這個上升沿后,延時 15181。s~60181。s, 通過拉低總線 60181。s~240181。s 產(chǎn)生應(yīng)答脈沖。初始化脈沖 如圖 所示。 圖 DS18B20 初始化時序 DS18B20 的初始化應(yīng)答 C 語言程序如下所示: bit resetpulse(void) { DQ=0。 delay600us()。 DQ=1。 delay60us()。 return(DQ)。 } DS18B20 的初始化 C 語言程序如下所示: void Ds18b20_Init(void) { while(1) { if(!resetpulse()) //收到 ds18b20 的應(yīng)答信號 { DQ=1。 delay600us()。 //延時 240us break。 } else resetpulse()。 //否則再發(fā)復(fù)位信號 至少 480 us 至少 480 us主機(jī)初始化主機(jī)初應(yīng)答P r e s e n c e pu ls e60 240 us邵陽學(xué)院畢業(yè)設(shè)計(論文) 10 }} ( 2) DS18B20 的讀寫控制 在寫時序期間,主機(jī)向 DS18B20 寫入數(shù)據(jù);而在讀時序期間,主機(jī)讀入來自DS18B20 的數(shù)據(jù)。在每一個時序,總線只能傳輸一位數(shù)據(jù)。讀 /寫時序如圖 所示。 ① DS18B20 寫時序 DS18B20 存在兩種寫時序:“寫 1”和“寫 0”。主機(jī)在寫 1 時序 時 向 DS18B20 圖 DS18B20 讀寫時序 寫入邏輯 1,而在寫 0 時序向 DS18B20 寫入邏輯 0。所有寫時序至少需要 60181。s,且在兩次寫時序之間至少需要 1181。s 的恢復(fù)時間。兩種寫時序均以主機(jī)拉低總線開始。 寫 1 時序:主機(jī)拉低總 線后,必須在 15181。s 內(nèi)釋放總線,然后由上拉電阻將總線拉至高電平。 寫 0 時序:主機(jī)拉低總線后,必須在整個時序期間保持低電平(至少 60181。s)。 在寫時序開始后的 15181。s~60181。s 期間, DS18B20 采樣總線的狀態(tài)。如果總線為高電平,則邏輯 1 被寫入 DS18B20;如果總線為低電平,則邏輯 0 被寫入 DS18B20。 ② 時序 DS18B20 只能在主機(jī)發(fā)出讀時序時才能向主機(jī)傳送數(shù)據(jù)。所以主機(jī)在發(fā)出讀數(shù)據(jù)命令后,必須馬上產(chǎn)生讀時序,以便 DS18B20 能夠傳送數(shù)據(jù)。所有讀時序至少 60181。s,且在兩次獨立的讀時序之間至少需要 1181。s 的恢復(fù)時間。 主機(jī)寫 ” 0 ” 時序主機(jī)寫 ” 1 時序主機(jī)讀 ” 0 ” 時序主機(jī)讀 ” 1 時序30 us15 us 15 us 15 us 15 us 30 us30 us15 us 15 us 15 us 15 us 30 us邵陽學(xué)院畢業(yè)設(shè)計(論文) 11 每次讀時序由主機(jī)發(fā)起,拉低總線至少 1181。s。在主機(jī)發(fā)起讀時序之后, DS18B20開始在總線上傳送 1 或 0。若 DS18B20 發(fā)送 1, 則保持總線為高電平;若發(fā)送 0,則拉低總線。當(dāng)傳送 0 時, DS18B20 在該時序結(jié)束時釋放總線,再由上拉電阻將總線拉回空閑高電平狀態(tài)。 DS18B20 發(fā)出的數(shù)據(jù)在讀時序下降沿起始后的 15181。s 內(nèi)有效,因此主機(jī)必須在讀時序開始后的 15181。s 內(nèi)釋放總線,并且采樣總線狀態(tài)。 DS18B20 寫命令子程序 如下: void ds18b20_writemand(uchar mand) { uchar i。 for(i=0。i8。i++) { if((mand amp。 0x01)==0) { DQ=0。 delay60us()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 DQ=1。 _nop_()。 _nop_()。 } else { DQ=0。 _nop_()。 _nop_()。 DQ=1。 邵陽學(xué)院畢業(yè)設(shè)計(論文) 12 delay60us()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 } mand=_cror_(mand,1)。 } } DS18B20 讀溫度子程序 如下: uchar Ds18b20_Readdata(void) { uchar readdata。 uchar i。 for(i=0。i8。i++) { DQ=0。 _nop_()。 _nop_()。 _nop_()。 DQ=1。 if(DQ==0) { readdata=readdataamp。0x7f。 delay60us()。 } else { readdata=readdata|0x80。 delay60us()。 } 邵陽學(xué)院畢業(yè)設(shè)計(論文) 13 if(i7) readdata=_cror_(readdata,1)。 } return readdata。 } ③ DS18B20 的命令序列 根據(jù) DS18B20 的通訊協(xié)議,主機(jī)(單片機(jī))控制 DS18B20 完成溫度轉(zhuǎn)換必須經(jīng)過三個步驟:每一次讀寫之前都要對 DS18B20 進(jìn)行復(fù)位操作,復(fù)位成功后發(fā)送一條ROM 指令,最后發(fā)送 RAM 指令,這樣才能對 DS18B20 進(jìn)行預(yù)定的操作。 ROM 命令通過每個器件 64bit 的 ROM 碼,使主機(jī)指定某一特定器件(如果有多個器件掛在總線上)與之進(jìn)行通信。 DS18B20 的 ROM 如表 所示,每個 ROM命令都是 8 bit 長。 表 DS18B20 ROM 命令 指令 協(xié)議 功能 讀 ROM 33H 讀 DS18B20 中的編碼 (即 64 位地址 ) 符合 ROM 55H 發(fā)出此命令后,接著發(fā)出 64 位 ROM編碼,訪問單總線上與該編碼相對應(yīng)的 DS18B20,使之作出響應(yīng),為下一步對該 DS18B20 的讀寫作準(zhǔn)備 搜索 ROM 0F0H 用于確定掛接在同一總線上 DS18B20 的個數(shù)和識別 64 位 ROM 地址,為操作各器件作好準(zhǔn)備 跳過 ROM 0CCH 忽略 64 位 ROM 地址,直接向 DS18B20 溫度轉(zhuǎn)換命令,適用于單個 DS18B20 工作 告警搜索命令 0ECH 執(zhí)行后,只有溫度超過 報警值上限或下限的 DS18B20 才做出響應(yīng) 溫度轉(zhuǎn)換 44H 啟動 DS18B20 進(jìn)行溫度轉(zhuǎn)換,轉(zhuǎn)換時間最長為 500ms(典型為200ms),結(jié)果豐入內(nèi)部 9 字節(jié) RAM 中 讀暫存器 BEH 讀內(nèi)部 RAM 中 9 字節(jié)的內(nèi)容 寫暫存器 4EH 發(fā)出向內(nèi)部 RAM 的第 4字節(jié)寫上、下溫度數(shù)據(jù)命令,緊該溫度命令之后,傳達(dá)兩字節(jié)的數(shù)據(jù) 復(fù)制暫存器 48H 將 RAM 中第 4 字內(nèi)容復(fù)制到 E2PROM 中 重調(diào)E2PROM 0B8H 將 E2PROM 中內(nèi)容恢復(fù)到 RAM 中的第 4 字節(jié) 讀供電方式 0B4H 讀 DS18B20 的供電模式,寄生供電時 DS18B20發(fā)送“ 0”,外部供電時 DS18B20 發(fā)送“ 1” 鍵盤 電路設(shè)計 行列式鍵盤 與單片機(jī)接口電路 根據(jù)本設(shè)計需要,本系統(tǒng)采用了 44 鍵盤實現(xiàn) 對溫度值和功能鍵的設(shè)定。 邵陽學(xué)院畢業(yè)設(shè)計(論文) 14 行列式鍵盤與單片機(jī)的接口電路如圖 所示, H0H3 為行線,接單片機(jī) P2 口的高 4 位, L0L3 為列線,接單 片機(jī) P2 口的低 4 位。 初始化時鍵盤行線為高電 平,列線為低電平。鍵盤的行線接 4 輸入與門, 4 輸入與門的輸出接單片機(jī)的外部中斷 0 引腳 口。 當(dāng)有鍵按下時,將產(chǎn)生中斷,在中斷程序里對按鍵進(jìn)行掃描,得到按鍵的鍵值。 圖 4 4 鍵盤結(jié)構(gòu) 鍵盤面板 鍵盤面板如圖 所示 ,本系統(tǒng)使用的鍵盤 有 10 數(shù)字鍵, 5 個功能按鍵。在系統(tǒng)啟動時,先按“設(shè)置”鍵,然后按 相應(yīng)的數(shù)字鍵,按“左移”或 者“ 右移 ” 鍵改變其他溫度的值。按“確認(rèn)”鍵之后系統(tǒng)正式啟動。系統(tǒng)在運行過程之中可以通過按“重新設(shè)置” 鍵,對溫度 重新 進(jìn)行 設(shè)置。 圖 鍵盤面板 顯示 電路設(shè)計 LCD 引腳分布及功能 ( 1) 128 64 液晶顯示屏共有 20 個引腳,其引腳名稱及 引腳編號的對應(yīng)關(guān)系如 圖 所示: 0 21 3設(shè)置 確認(rèn)右移左移重新設(shè)置98764 5邵陽學(xué)院畢業(yè)設(shè)計(論文) 15 圖 128 64 液晶 顯示模塊引腳分布圖 ( 2) 引腳功能如表 所示: 表 128 64 液晶顯示模塊引腳功能 引腳 符 號 引 腳 功 能 引腳 符 號 引 腳 功 能 1 VSS 電源地 15 CS1 CS1=1 芯片選擇左邊 64*64 點 2 VDD 電源正 +5V 16 CS2 CS2=1 芯片選擇右
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1