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

正文內(nèi)容

分布式遠(yuǎn)程溫濕度智能監(jiān)控系統(tǒng)的設(shè)計與研究畢業(yè)設(shè)計-資料下載頁

2025-07-03 11:22本頁面

【導(dǎo)讀】溫濕度監(jiān)測很難運作。由于傳統(tǒng)的溫度和濕度監(jiān)測系統(tǒng)的布線繁瑣,傳輸距離有限,不能解決實際問題。目前,分布式系統(tǒng)的主要發(fā)展方向是計算機(jī)控制系統(tǒng)。間的相互監(jiān)控,主機(jī)通過總線控制器MCP2515和驅(qū)動器TJA1050連接到CAN總線上,從機(jī)檢測到當(dāng)前溫。和溫度報警等操作。設(shè)計了基于CAN總線的監(jiān)控系統(tǒng),實現(xiàn)了在多節(jié)點,環(huán)境惡劣,通。信距離遠(yuǎn)等不同場合的應(yīng)用。論文主要介紹了各種芯片的硬件設(shè)計和軟件設(shè)計,勾畫。自己的設(shè)計與研究思想。使設(shè)計出最簡便、經(jīng)濟(jì)的系統(tǒng)。關(guān)鍵詞:CAN總線;STC89C52RC單片機(jī);DS18B20;SJA1000控制器;MCP2515控制

  

【正文】 If (iramp。0x04) error( ); //如果是出錯中斷,則調(diào)出錯處理函數(shù) If (iramp。0x08) overruN( ); //如果是超載中斷,則 調(diào)超載處理函數(shù) while (iramp。0x01) //如果是 接收 中斷 ,則開始接收 { RxID[0] = Receivebuffer1。 RxID[1] = Receivebuffer2。 If (! (Receivebuffer2amp。0x10)) /*如果是數(shù)據(jù)幀,則接收數(shù)據(jù) */ {Rxdata[0] = Receivebuffer3。 Rxdata[1] = Receivebuffer4。 計算機(jī)信息工程學(xué)院畢業(yè)設(shè)計說明書 18 Rxdata[2] = Receivebuffer5。 Rxdata[3] = Receivebuffer6。 Rxdata[4] = Receivebuffer7。 Rxdata[5] = Receivebuffer8。 Rxdata[6] = Receivebuffer9。 Rxdata[7] = Receivebuffer10。 Command = 0x04。 //SJA1000 的接收緩存器被釋放 } else if (Receivebuffer2amp。0x10) /*如果是遠(yuǎn)程幀,則作相應(yīng)處理 */ { /*相應(yīng)處理程序 */ } } EA= 1。 } 測溫模塊( DS18B20) DS18B20 是 DALLAS 公司的最新單線數(shù)字溫度傳感器,可把溫度信號直接轉(zhuǎn)換成串行數(shù)字信號供微處理器處理, 支持“一線總線”接口, 測量溫度范圍為 55℃ +125℃,在 10℃ +85℃范圍內(nèi),精度為177。 ℃。 現(xiàn)場溫度直接以“一線總線”的數(shù)字方式傳輸,從 DS18B20 讀出的信息或?qū)懭?DS18B20 的信息,僅需要一根口線,大大提高了系統(tǒng)的抗干擾性。讀寫及溫度變換功率來源于數(shù)據(jù)總線,總線本身也可以向所掛接的 DS18B20 供電,而無需額外電源。 DS18B20 提供 9 位溫度讀數(shù),可構(gòu)成多點溫度檢測系統(tǒng)而無需任何 外圍硬件。 DS18B20 內(nèi)部結(jié)構(gòu)如圖 34 所示,主要由 4 部分組成: 64 位 ROM 序列碼、溫度傳感器、溫度報警觸發(fā)器 TH和 TL、配置寄存器。 6 4 位R O M和單 線接 口存 儲 器 和 控 制 器高 速緩 存存 儲 器溫 度 靈 敏 元 件低 溫 觸 發(fā) 器 T L高 溫 觸 發(fā) 器 T H配 置 寄 存 器8 位 C R C 生 成 器電源檢測 圖 34 DS18B20 內(nèi)部結(jié)構(gòu) 每一片 DS18B20 都包含一個唯一的 64 位長 ROM 代碼,開始的 8 位為出廠代碼(DS18B20 為 28H)是固定的;接下來的 48 位是唯一的序列號,每一片 DS18B20 都只對應(yīng)一個序列號,這也是多個 DS18B20 可以采用一線進(jìn)行通信的原因;最后的 8 位是前面 56 位的 CRC 校驗碼。其 結(jié)構(gòu)如下 圖 所示: 計算機(jī)信息工程學(xué)院畢業(yè)設(shè)計說明書 19 8 位 C R C 校 驗 碼 4 8 位 序 列 號 8 位 出 廠 代 碼 ( 2 8 H )M S B L S B M S B L S B M S B L S B 圖 35 64 位 ROM 結(jié)構(gòu)圖 DS18B20 的內(nèi)部存儲器包括一個高速暫存 RAM 和一個非易失性 E2 PROM(高溫觸發(fā)器 TH,低溫觸發(fā)器 TL 和配置寄存器 )。暫存存儲機(jī)制有利于在單線通信時確保數(shù)據(jù)的完整性。數(shù)據(jù)通常首先寫入暫存存儲器,在哪里 它可以被讀回。當(dāng)數(shù)據(jù)被校驗后,復(fù)制暫存存儲器的命令把數(shù)據(jù)傳送到非易失性 E2 PROM。這一過程確保了更改存儲器時數(shù) 據(jù)的完整性。同時非易失性 E2 PROM 也保證了 TH、 TL 與配置寄存器內(nèi)容在掉電后不會丟失,器件每一次上電時這三個字節(jié)的內(nèi)容被重置到高速暫存 RAM 對應(yīng)的空間。 高速暫存存儲器 是按 9 個 8 位字節(jié)存儲器來組織的。其中第 0、 1 個字節(jié)為只讀型字節(jié),分別包含測得溫度信息的低位和高位字節(jié),第 2 和第 3 字節(jié)是 TH 和 TL 的易失性拷貝,在每一次上電復(fù)位時被刷新。如果在使用 DS18B20 的過程中不對其施加告警搜索命令,則第 2 和第 3 個字節(jié)可用作通用用戶存儲器,定義這兩個字節(jié)存儲該溫度傳感器在系 統(tǒng)中的序號,為每個溫度傳感器分配的序號在系統(tǒng)中是唯一的。第 4 個字節(jié)為配置寄存器,接著的三個字節(jié)為器件內(nèi)部使用而保留,不可對其施加寫命令。第 8 個字節(jié)為只讀型字節(jié),它是前面所有 8 個字節(jié) 的循環(huán)冗余校驗字節(jié) (CRC)。 其結(jié)構(gòu)如下圖所示。 溫 度 低 字 節(jié)溫 度 高 字 節(jié)T HT L配 置 寄 存 器保 留保 留保 留C R CT HT L配 置 寄 存 器R A M B Y T E012345678E2P R O M 圖 36 高速暫存存儲器結(jié)構(gòu) 當(dāng) DS18B20 接收到溫度轉(zhuǎn)換命令后,開始啟動轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16 位帶符號擴(kuò)展的二進(jìn)制補碼形式存儲在高速暫存存儲器的第 2 字節(jié)??赏ㄟ^發(fā)讀數(shù)據(jù)的功能命令取到該數(shù)據(jù),讀取時低位在 前,高位在后,數(shù)據(jù)格式以 ℃計算機(jī)信息工程學(xué)院畢業(yè)設(shè)計說明書 20 /LSB 形式表示。溫度寄存器格式如下: 232221202 12 22 32 4S S S S S 262524b i t 7 b i t 6 b i t 5 b i t 4 b i t 3 b i t 2 b i t 1 b i t 0b i t 1 5 b i t 1 4 b i t 1 3 b i t 1 2 b i t 1 1 b i t 1 0 b i t 9 b i t 8L S BM S B 圖 37 溫度寄存器格式 其中 S 為符號位, S=0 時表示測得溫度值為正數(shù), S=1 時表示溫度值為負(fù)數(shù)。當(dāng)溫度值分辨率為 12bit 時, bit0bit10 的數(shù)據(jù)全部有效;當(dāng)分辨率為 11bit 時,bit0 的數(shù)據(jù)無效;分辨率為 10bit 時, bit0 和 bit1 的數(shù)據(jù)無效;分辨率為 9bit時, bit0、 bit1 和 bit2 的數(shù)據(jù)無效。對應(yīng)的溫度計算:當(dāng)符號位 S=0 時,直接將二進(jìn)制數(shù)轉(zhuǎn) 換為十進(jìn)制;當(dāng) S=1 時,先將補碼變換為原碼,再計算十進(jìn)制值。 設(shè)定的分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時間就越長。本系統(tǒng)中對于各DS18B20 的配置寄存器都沒有進(jìn)行修改,即采用其出廠的配置,使得采集到的溫度值分辨率可達(dá)到 12bit。 DS18B20 的測溫原理如下: 內(nèi)部計數(shù)器對一個受溫度影響的振蕩器的脈沖計數(shù), 低溫時振蕩器的脈沖可以通過門電路,而當(dāng)?shù)竭_(dá)某一設(shè)置高溫時振蕩器的脈沖無法通過門電路。計數(shù)器設(shè)置為55℃ 的值,如果計數(shù)器到達(dá) 0 之前,門電路未關(guān)閉,則溫度寄存器的值 將增加,這表示 前溫度高于 55℃ ; 同時,計數(shù)器復(fù)位在當(dāng)前溫度值上,電路對振蕩器的溫度系數(shù)進(jìn)行補償,計數(shù)器重新開始計數(shù)直到回零。如果門電路仍然未關(guān)閉,則重復(fù)以上過程。 本系統(tǒng)中 DS18B20 的分辨率設(shè)定為 12 位;故實際溫度 =溫度整數(shù)部分 +溫度小數(shù)部分 *。 本系統(tǒng) DS18B20 采用單總線系統(tǒng) (1Wire),系統(tǒng)中的主機(jī)為單片機(jī),從機(jī)為單總線器件 DS18B20 接在 STC89C52RC 的 口上 (如圖 38)。 圖 38 DS18B20 電路連接圖 單總線 (1wire)技術(shù)是近年來由美國 Dallas 半導(dǎo)體公司研發(fā)的一種總 線技 術(shù)。與 SPI、 I2C 等多種標(biāo)準(zhǔn)串行數(shù)據(jù)通信方式不同,它采用單根信號線傳輸時鐘和數(shù)據(jù),以其具有的節(jié)約 I/O 資源、結(jié)構(gòu)簡單、成本低廉、便于總線擴(kuò)展和維護(hù)等優(yōu)點越計算機(jī)信息工程學(xué)院畢業(yè)設(shè)計說明書 21 來越多的被廣泛應(yīng)用于民用電器、工業(yè)控制領(lǐng)域。由于單總線系統(tǒng)只用了一根信號線作為總線,為了保證總線上的每個器件都能夠在不同的時間段中驅(qū)動總線,就必須能夠有效的區(qū)分總線上的不同器件。因此在單總線器件制作時都編制了唯一的芯片序列號,通過尋址就能把每個器件識別出來。 單總線器件采用 CMOS 技術(shù),耗電量很小,如果不單獨供電,僅在總線空閑時利用信號線充少量電就可 以工作了。單總線上通常處在高電位,掛在它上面的器件必須是漏極開路或者是三態(tài)門輸出的,當(dāng)其不工作時不會給總線增加負(fù)擔(dān)。 單總線的數(shù)據(jù)常以 的速率通信,超速模式下,用戶可設(shè)定傳輸速率為 100Kbps 左右,一般用于對速度要求不高的測控或數(shù)據(jù)交換系統(tǒng)中。單總線技術(shù)的作用距離一般達(dá)到200m,并允許掛接上百個器件。 經(jīng)過單線接口訪問單總線器件有嚴(yán)格的命令序列如下: 1)初始化; 2) ROM 操作命令; 3)存儲器操作命令(功能命令); 4)數(shù)據(jù)傳輸; 每次訪問單總線器件,都必須嚴(yán)格遵守這個命令序列。如果出現(xiàn) 序列混亂,則單總線器件不會響應(yīng)主機(jī)。 初始化:基于單總線的所有傳輸過程都是以初始化開始的,初始化過程由主機(jī)發(fā)出的復(fù)位脈沖和從機(jī)響應(yīng)的應(yīng)答脈沖組成。應(yīng)答脈沖使主機(jī)知道總線上有從機(jī)設(shè)備且準(zhǔn)備就緒。 單總線復(fù)位時序圖如下所示: 主 機(jī) 發(fā) 送 復(fù) 位 脈 沖4 8 0 ~ 9 6 0 u sD S 1 8 B 2 0等 待1 5 ~ 6 0 u sD S 1 8 B 2 0 發(fā)送復(fù) 位 脈 沖6 0 ~ 2 4 0 u s主 機(jī) 接 收 至 少 4 8 0 u sV C CG N D圖 例 :主 機(jī) 拉 低 總 線電 阻 上 拉D S 1 8 B 2 0 拉 低 總 線 圖 39 單總線復(fù)位時序圖 define uint unsigned int //宏定義 unsigned int 為 uint,主要是簡化程序的書寫 define uchar unsigned char //宏定義 unsigned char 為 uchar,主要也是為了簡化程序的書計算機(jī)信息工程學(xué)院畢業(yè)設(shè)計說明書 22 寫 sbit DQ=P3^6。 //位定義 (即 DS18B20 的數(shù)據(jù)輸入 /輸出端)為 DQ void Sendreset_ds18b20() //復(fù)位 { uchar i。 DQ=0。 //拉低總線 i= while(i0)i。 //延時 480us960us,這里取 500us DQ=1。 //釋放總線 i=15。 while(i0)i。 //延時 1560us,這里取 30us } 在對從機(jī)進(jìn)行 ROM 命令和功能命令操作時還必須知道如何對從機(jī)進(jìn)行讀寫操作,其讀寫時序如圖 310 和 311 所示,在 1Wire 單總線協(xié)議中數(shù)據(jù)的讀 /寫都是以位為單位的。 首先看寫時序,初態(tài)由主機(jī)拉低總線,主機(jī)在拉低總線超過 1us 后,若釋放總線,由上拉電阻將總線拉至高電平,則邏輯“ 1”被寫入從機(jī)器件;若保持低電平,則邏輯“ 0”被寫入從機(jī)器件,每一個讀寫時序( Tx)至少需要 60us,連續(xù)的兩個獨立的時序之間至少需要 1us 的恢復(fù)時間( Trec)。 當(dāng)主機(jī)向從機(jī)發(fā)出讀數(shù)據(jù)命令后,必須馬上產(chǎn)生讀時序,即拉低總線 1us 后釋放總線,以便單總線器件能傳輸數(shù)據(jù)。若從機(jī)發(fā)送“ 1”,則總線繼續(xù)保持高電平;若發(fā)送“ 0”,則由從機(jī)拉低總線,在該時序結(jié)束后釋放總線,由上拉電阻將總線置為“ 1”狀態(tài)。從機(jī)發(fā)出的數(shù)據(jù)在起始時序之后,保持有效時間 15us,因此主機(jī)需在15us 內(nèi)采樣總線狀態(tài),以便接收從機(jī)發(fā)送來的數(shù)據(jù)(見圖 311 中的讀時序部分)。 在知道了如何對單總線器件(這里為 DS18B20)進(jìn)行讀寫后,就可以發(fā)送 ROM 命令和功能命令了。 主 機(jī) 寫 “ 0 ” 時 間6 0 u s T x 1 2 0 u s主 機(jī) 寫 “ 1 ” 時 間1 u s TR E C ∞D(zhuǎn) S 1 8 B 2 0 采 樣 時 間M I N T Y P M A XD S 1 8 B 2 0 采 樣 時 間M I N T Y P M A X1 5 u s 1 5 u s 3 0 u s 1 5 u s 1 5 u s 3 0 u s 1 u s圖 例 :主 機(jī) 拉 低 總 線電 阻 上 拉D S 1 8 B 2 0 拉 低 總 線 圖 310 單總線寫時序 /*向 DS18B20 寫字節(jié)函數(shù) */ void Write_ds18b20(uchar WData) 計算機(jī)信息工程學(xué)院畢業(yè)設(shè)計說明書 23 { uchar i,j。 for(i=0。i8。i++) //每次發(fā)送一位,所以要循環(huán) 8 次 { if(WDataamp。0x01) //判斷要發(fā)送的數(shù)據(jù)是否為“ 1”,是則執(zhí)行 if 內(nèi)語句 { DQ=0。 //先拉低總線 _nop_
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1