【正文】
報 警觸發(fā)器 TH和 TL、配置寄存器。 64位 ROM 用于數(shù)據(jù)校驗, 溫度傳感器是 DS18B20的內(nèi)部測溫設備,溫度報警觸發(fā)器用來設置溫度報警的上下值,配置寄存器用來設置 使用 DS18B20時的工作方式及溫度的分辨率。 斜 斜斜 斜斜 斜 斜斜 斜 斜 斜 斜 斜 斜8 斜 C R C 斜 斜 斜6 4 斜 R O M斜 斜 斜斜 斜斜斜斜斜斜 斜 斜 斜 斜 斜斜 斜 斜 斜 斜 T L斜 斜 斜 斜 斜 T H斜 斜 斜 斜 斜 圖 44 DS18B20 內(nèi)部結(jié)構(gòu)圖 ROM 中的 64 位序列碼是 出廠前被光刻好的,它可以看作 是該 DS18B20 的地址序列 碼,每個 16 DS18B20的 64 位序列碼均 不相同, 開始 8 位是單線產(chǎn)品系列編碼( DS18B20的編碼是 28H, DS1820的編碼是 10H),同一型號的單總線器件的編碼相同。接著的 48位是該 DS18B20唯一的序列號,最后 8 位是前面 56 位的循環(huán)冗余檢驗碼。 DS18B20 的內(nèi)部存儲 器包括一個高 速暫存( RAM)和 一 個非易失性 的可電擦除的 EEPROM,后者存放 高溫觸發(fā)器 TH、低溫觸發(fā)器 TL 和 結(jié)構(gòu) 寄存器 [18,20,21]。 其中配置寄存器的格式如下表 43所示。 表 43 配置寄存器格式 0 R1 R1 1 1 1 1 1 在配置寄存器中首位為 TM(測試模式位),用來設置 DS18B2O是處于工作模式還是測試模式。R1與 R0 用來設置分辨率 ,如下表 44示。 表 44 溫度分辨率設置表 R0 R1 溫度計分辨率 /bit 最大轉(zhuǎn)換時間 /ms 0 0 9 0 1 10 1 0 11 375 1 1 12 750 DS18B20 的 使用方 法 由于單片機與 DS18B20 只需要 一根 I/O線 即可通訊 , 那么 對 數(shù)據(jù)的 讀寫 操作必然會有 嚴格的 要求。 DS18B20 嚴格的 通信協(xié)議 確保了 數(shù)據(jù) 的 正常 傳輸,該 協(xié)議規(guī)定了 以下幾種 操作 時序: 初始化 時序、讀時序 、寫時序。每一次 對 DS18B20 的操作都需要主機重新對其復位 ,例如在初始化 DS18B20后執(zhí)行了寫操作,此時若想從 DS18B20中讀取出數(shù)據(jù) , 那么 主機需 要再次對芯片進行初始化操作。DS18B20的 數(shù)據(jù) 與 命令的傳輸都是低位在 前 [22]。 ( 1) 初始化時序 基于單總線的所有傳輸過程都是以初始化開始的,故對單總線器件的初 始化操作尤其重要。初始化 時序如圖 37 所示, 脈 沖使單片機知道,總線上有 1wire 設備,且準備就緒。初始化過程如下:主機通過拉低總線 480us 以上,產(chǎn)生復 位脈沖,然后釋放總線。主機釋放總線時,會產(chǎn)生一個上升沿。單總線器件檢測 到上升沿后,延時 1560us,通過拉低總線 60240us來產(chǎn)生 應答脈沖。主機接收到從機的應答脈沖,說明單總線器件在線。 17 V C CM a s t e r T X “ r e s e t p u l s e ”4 8 0 u s m i n i m u m9 6 0 u s m a x i m u mM a s t e r R x4 8 0 u s m i n i m u mD S 1 8 B 2 0 W a i t s1 5 6 0 u sD S 1 8 B 2 0 T x “ P r e s e n c e p u l s e ”6 0 2 4 0 u sG N D1 W I R EB U SB u s m a s t e r a c t i v e l o wB o t h b u s m a s t e r a n d D S 1 8 B 2 0 a c t i v e l o wD S 1 8 B 2 0 a c t i v e l o wR e s i s t o r p u l l u p 圖 45 初始化命令時序圖 ( 2) DS18B20 的 讀時序 DS18B20的 讀時序分為 讀 0 時序和讀 1 時序兩 個過程 ,其讀時序如圖 46所示。 當 微處理器開始 讀 DS18B20 中的 數(shù)據(jù)時, 微處理器就 把總線拉低 , 在 將總線拉低至少 15us 后開始 釋放 總線,以便讓微處理器在隨后至少 45us的時間內(nèi)對總線上的數(shù)據(jù)進行采樣, 若總線上為高電平讀出 DS18B20中的 數(shù)據(jù) 為“ 0”,若為高電平則讀出的數(shù)據(jù)為“ 1”。由此可見每一位的 讀時序 至 少需要 60us 才能 完成 [17]。 M A S T E R R E A D “ 0 ” S L O T1 u s T r e c ∞M A S T E R R E A D “ 1 ” S L O T1 5 u s 1 5 u s 3 0 u s1 5 u s 1 u s1 W I R E B U SM A S T E R S A M P L E SM A S T E R S A M P L E SV C CG N D圖 46 DS18B20 的讀時序 DS18B20的寫 時序 DS18B20的寫時 序 分為 寫 1時序和寫 0時 序 ,其寫 時 序如圖 47所示 [23,24]。 18 M A S T E R W R I T E “ 0 ” S L O T6 0 u s TX” 0 1 2 0 u s1 u s tR E CM A S T E R W R I T E “ 1 ” S L O TV C CG N D1 5 u s 1 5 u s 3 0 u s1 5 u s1 5 u s3 0 u s 1 u sD S 1 8 B 2 0 S A M P L E SM I N T Y P M A XD S 1 8 B 2 0 S A M P L E SM I N T Y P M A X1 W I R E B U S圖 47 DS18B20 的寫時序 從圖中可以看出 DS18B20的寫時序至少為 60us,而且在 寫 0與 寫 1時序 上 有些不同 。當寫周期開始時,主機把總線拉低 1us表示寫周期開始。 當要寫 0時,總線 則繼續(xù)被拉低到至寫周期結(jié)束 ;當要 寫 1時序時,單總線被拉低 1us之后便可 釋放總線 ,主機將在隨后的時間內(nèi)對總線進行采樣,若 總線維持高電平,則向 DS18B20寫入 1。 19 第 5 章 溫度檢測系統(tǒng)的硬件設計 系統(tǒng)總體構(gòu)成 本系統(tǒng)通過溫度傳感器將現(xiàn)場溫度傳至單片機,并將采集到的溫度與用戶設定的目標溫度,進行比較是否超越極限以此控制蜂鳴器自動報警,從而達到檢測溫度的目的,其主要由溫度采集 模塊 、LED顯示 模塊 、鍵盤輸入 模塊以 及報警 模塊 等組成。系統(tǒng) 硬件 結(jié)構(gòu)框圖如圖 51所示。 斜 斜 斜斜 斜 斜 斜 斜斜 斜L E D 斜 斜 斜斜 斜 斜 斜 圖 51 系統(tǒng)硬件框圖 單片機復位電路 常用的兩種復位電路 單片機在啟動時都需 要復位, 復位的目的 以使 單片機 從初態(tài)開始工作 。并且這個初始狀態(tài)是可預知的 狀態(tài), AT89S52 單片機的 復位信號是從 RST 引 腳輸入 的, 當 單片機在 正常工 作狀態(tài) 時, 如果RST 引腳上 出現(xiàn)一 個高電平并維持 至少 2 個機器周期, 那么單片機將響 應 復位信號 并將系統(tǒng)復位。單片機系統(tǒng)的復位方式有 兩種: 按 鍵 復位和上電復位 。 按鈕復位需要人為 在復位輸入端 RST加 上 高電平 。 本設計采用的是 是在 RST端和正 電源 Vcc之間接一個按鈕 ,并接一個 10K的電阻來分壓。 當按下 按鍵后 , Vcc 的 +5V 電壓 就會直接加 到 RST 端。 按鈕復位的電路如 圖 52 所示。由于人 按鍵時的 動作 比較緩慢,可以滿足兩個機器周期的要求, 所以,完全能夠 實現(xiàn)單片機的 復位 。 S2R210K+ C31 0 U FV C CR E S E T 圖 52 按鍵復位電路 20 單片機復位后的狀態(tài) 系統(tǒng)復位是任何微機系統(tǒng)執(zhí)行的 第一步,使單片機回到默認的初始狀態(tài) 。 S52 單片機的復位 也是 由 RESET 引腳來控制的,此引腳與高電平相接達到 2 個機器周期以上 , S52 單片機 自動 進入 復位狀態(tài),而且一直在此狀態(tài)下等 待,直到 RESET 引腳 的電平變 為低 電平后,再開始 檢查 EA 管腳的電平信號 ,若為高電平則執(zhí)行單片機內(nèi)部的程序代碼,若為低電 平則取 執(zhí)行外部 擴展的 程序。 S52單片機復位后進 入初始化狀態(tài), 其復位后 寄存器的狀 態(tài)見表 51所 示。 表 51 復位后特殊功能寄存器狀態(tài) 特殊功能寄存器 初始狀態(tài) 特殊功能寄存器 初始狀態(tài) A 00H TMOD 00H B 00H TCON 00H PSW 00H TH0 00H SP 007H TL0 00H OPL 00H TH1 00H OPH 00H TL1 00H P0— P3 FFH SBUF 不定 IP ***00000B SCON 00H IE 0***00000E PCON 0******B 上表 說明:表中符 號 *為隨 機狀 態(tài) 。 上 表中 A為 00H,表 明已被清零; PSW為 00H, 表明工作寄存器組為 0組 ; SP 為 07H, 表明堆棧指針指向片內(nèi) RAM 地址為 07 單元的內(nèi)存 , 根據(jù)堆棧操作先入后出法則,第一個被推入到堆棧的 數(shù)據(jù)存儲在地址單元為 08H 中。 P0 至 P3 中的數(shù)據(jù)為 FFH, 表明已向各端口置位,此時各端口既可用于輸入又可用于輸出; IP= ***00000B,表明 各個中斷源處于低優(yōu)先級; IE= 0***00000B,表明各個 中斷均被關(guān)斷 。 另外 復位后的 21個特殊 功能寄存器 狀態(tài)為確定值。期中 程序計數(shù) 器 PC 為 0000H,單片機復位后將 從 地址為 0000H單元開始執(zhí)行。單片機初次啟動 后,片內(nèi) RAM 為隨機值 。 時鐘電路 時鐘電路跟復位電路一樣是單片機必須具備的電路,兩者構(gòu)成了單片機的最小系統(tǒng)。 單片機內(nèi)部是由許多的 邏輯器件 組成的,這些邏輯器件彼此之間默契的配合需要按照嚴格的節(jié)拍來操作,這種節(jié)拍就是 時序, 單片機的時序可以由內(nèi)部時鐘提供或者由外部的晶振提供。而本設計的時鐘電路就可以為單片機的正常工作提供時序 , 若 沒有時鐘電路,單片機就無法工 作。在本設計中 采用由外 21 部方式產(chǎn)生時鐘的方法形成時鐘電路,如 圖 53所示。 C1 30pC2 30pY112 M H ZX1X2 圖 53 時鐘電路 溫度采集 電路 本次設計所采用的溫 度傳感器為 dallas半導體 公司的數(shù)字 化溫度傳感器 ds18b20,它 是世界上第一片支持“一線總線”接口的溫度傳感器。“一線總線”體積更小,使用電壓更寬、更經(jīng)濟、全部傳感器元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路里 。 DS18B20 可以程序設定 9~ 12 位 的分辨率 ,可選更小的封裝方式,更寬的電壓適用范圍。分辨率設定及用戶設定的報警溫度存儲在EEPROM中, 掉電后依然保存。 在 硬件上, DS18B20與單片機有兩種接法。一種是 VCC接外部電源, GND接地, I/O口與單片機;另一種則是用寄生電源供電。 I/O口線要接 5KΩ 左右的上拉電阻。本設計 采用的是后一種方法。如圖 54所示,把 DS18B20的數(shù)據(jù)線 與單片機 的 相連,再加上上拉電阻 [25]。 圖 54 溫度測量電路 LED 顯示電路 單片機 I/O的應用最典 型的 就 是通過 I/O口與 LED數(shù)碼 管構(gòu)成顯示電 路, 本設計 LED顯示 模 塊電 路如下圖 55所 示。 P 1P 2P 3P 4P 5P 6P 7P 8R E S T9P 10P 11P 12P 13P 14P 15P 16P 17X T A L 218X T A L 119GND20P 21P 22P 23P 24P 25P 26P 27P 28P S E N29A L E / P R O G30E A / V P P31P 32P 33P 34P 35P 36P 37P 38P 39V C C40U1A T 89S 52123U3D S 18B 20V C CR1 22 P 1. 01P 1. 12P 1. 23P 1. 34P 1. 45P 1. 5/ M O S I6P 1. 6/ M I S O7P 1.