【正文】
能 (第二功能 )使用, 如表 42所示 。 12 RST: 復位輸入。 看門狗計時完成后, RST腳輸出 96 個 晶振周期的高電平。 DISRTO默 認狀態(tài)下,復位高電平有效。在 flash編程時 ,此引腳 ( PROG)也用 作 編程輸入脈沖。 如有必要,可通過對特殊功能寄存器 ( SFR)區(qū) 中 的 8EH單 元 的 第 0位置位 , 可禁止 ALE操 作。否則 ,該引腳會被微弱拉高, 這個 ALE使能標志位(地址為 8EH的 SFR的第 0位 )的設置對微控制器處于外部執(zhí)行模式下無效。 EA/VPP: 訪問外部程序存儲器控制信號。 為了執(zhí)行內(nèi)部程序指令 , EA應該接 Vcc。 XTAL1: 振蕩器反相放大器的及內(nèi)部時鐘發(fā) 生電路 的輸入端。 在 AT89S52 中, 定時器 0 和定時器 1 的操作與 AT89S51 和 AT89C52 一樣。 它既可當定時器使用, 又可以做 外部事件計數(shù)器 ,其工作方式由特殊功能寄 存器 T2CON 的 C/T2 位選擇 。定 時器 2有 兩個 8位寄存器 TH2和 TL2組成,在定時 工作方式中 , 每個機器周 期 , TL2寄 存器 都會 加 1,由 于一個機器周期 由 12個 晶振周期 構成,因此,計數(shù)速率 為振蕩頻率的 1/12。若在第一個機器周期中采到的值 為 1, 而在下一個機器周期中采到的值 為 0,則 在緊跟著的下一個周期 的 S3P1 期間 寄存器 加 1。為確 保采樣的正確性,要求輸入的電平在變化前至少保持一個完整周期的時間,以保證輸入信號至少被采樣一次。如 果 EXEN2=0, 定時 器 13 2是一個 16 位 定時器或計數(shù)器,計數(shù)溢出時, 對 T2CON 的溢出標志 TF2置位, 同時激活中斷。 另外 , T2EX引腳信號 的跳變使 得 T2CON中的 EXF2置位 , 與 TF2相仿, EXF2也 會激活中斷。然而,定 時器 2的 標志 位 TF2在 定時器溢出的那個機器周期 的 S2P2狀 態(tài)置位,并在同一個機器 周期內(nèi)查詢到該標志。寫周 期完成后,所輸出的數(shù)據(jù)是有效的數(shù)據(jù),即可進入下一個字節(jié)的寫周期,寫周期開始后, Data Palling可能隨 時有效 [1014]。其中 I2C總線是 兩 線方式 通信 的 ( 一條數(shù)據(jù)線 , 一條時鐘線 ), SPI 總線 則 是 三 線方式進行通信 的 ( 一條數(shù)據(jù)輸入線,一條數(shù)據(jù)輸出線 , 一條時鐘線), 以上兩種都是以同步串行的方式。這些總線至少需要有兩條或兩條以上的信號線。具有節(jié)省 I/O口線資源,結構簡單,成本低廉,便于總線擴展和維護等優(yōu)點 [15]。 系統(tǒng)中的數(shù)據(jù)交換、控制都 在這根線上完成。個別器件可以通過總線獲得工作電源,當數(shù)據(jù)線為高電平時,電荷存儲在器件內(nèi)部;當數(shù)據(jù)為低電平時,器件通過這些電荷來提供能量。 14 斜 斜 斜 斜R XT X斜 斜 斜4 . 7 KV P UVP U1 W I R E 斜 斜D QP I N1 W i r e 斜 斜R XT X1 0 0M O S F E T5 u AT p yR X = 斜 斜T X = 斜 斜圖 42 單總線的硬件 接口 示意圖 單總線芯片序列號 單總線一個基本的特色就是每一個芯片都有一個唯一的序列號, 任何兩個單總線設備的序列號都不會重復。 單總線設備的序列號共 有 64 位 8 個字節(jié) ,其中第一個字節(jié)表示器件的家族碼,如數(shù)字溫度傳感器 DS18B20 的家族碼是 28H;中間六個字節(jié)表示的是器件的序列號;序列號最后 8 位表示的是前面 56位的 CRC檢驗碼,通過檢驗讀出的這 64位數(shù)字的 CRC檢驗結果, 即可保證數(shù)據(jù)通信的正確性[16]。它在測溫精度、轉(zhuǎn)換時間、傳輸距離、分辨率等方面也有很大的改進。 DS18B20 的特性 ( 1) 在寄生 電源方式下 可 從數(shù)據(jù)線上汲取能量,且能夠適應 ~ 。 ( 3) 在單總線上可以掛多個 DS18B20。 ( 5) 測 溫范圍 為 55℃~+ 125℃,在 10~ +85℃時精度為 177。 ( 6) 溫度 分辨率 可設置 9~ 12位。 15 ( 7) 將溫度轉(zhuǎn)換為數(shù)字的速度更快。 ( 9) 電源極性接反時,芯片不會因發(fā)熱而燒毀,但不能正常工作 [17]。采用 3 腳封裝時, DQ 為數(shù)字信號輸入 /輸出端; GND 為電源地; VDD 為外接供電電源輸入端 ; 采用 8腳 SOIC封裝時, 8腳懸空, 3腳接外部電源, 4腳為數(shù)字信號輸入輸出端, 5腳接地 [18,19]。其主要由 4部分組成:溫度 傳感器、 64 位光刻 ROM、 非易失性 的溫度報 警觸發(fā)器 TH和 TL、配置寄存器。 斜 斜斜 斜斜 斜 斜斜 斜 斜 斜 斜 斜 斜8 斜 C R C 斜 斜 斜6 4 斜 R O M斜 斜 斜斜 斜斜斜斜斜斜 斜 斜 斜 斜 斜斜 斜 斜 斜 斜 T L斜 斜 斜 斜 斜 T H斜 斜 斜 斜 斜 圖 44 DS18B20 內(nèi)部結構圖 ROM 中的 64 位序列碼是 出廠前被光刻好的,它可以看作 是該 DS18B20 的地址序列 碼,每個 16 DS18B20的 64 位序列碼均 不相同, 開始 8 位是單線產(chǎn)品系列編碼( DS18B20的編碼是 28H, DS1820的編碼是 10H),同一型號的單總線器件的編碼相同。 DS18B20 的內(nèi)部存儲 器包括一個高 速暫存( RAM)和 一 個非易失性 的可電擦除的 EEPROM,后者存放 高溫觸發(fā)器 TH、低溫觸發(fā)器 TL 和 結構 寄存器 [18,20,21]。 表 43 配置寄存器格式 0 R1 R1 1 1 1 1 1 在配置寄存器中首位為 TM(測試模式位),用來設置 DS18B2O是處于工作模式還是測試模式。 表 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 的操作都需要主機重新對其復位 ,例如在初始化 DS18B20后執(zhí)行了寫操作,此時若想從 DS18B20中讀取出數(shù)據(jù) , 那么 主機需 要再次對芯片進行初始化操作。 ( 1) 初始化時序 基于單總線的所有傳輸過程都是以初始化開始的,故對單總線器件的初 始化操作尤其重要。初始化過程如下:主機通過拉低總線 480us 以上,產(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所示。由此可見每一位的 讀時序 至 少需要 60us 才能 完成 [17]。 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時序 上 有些不同 。 當要寫 0時,總線 則繼續(xù)被拉低到至寫周期結束 ;當要 寫 1時序時,單總線被拉低 1us之后便可 釋放總線 ,主機將在隨后的時間內(nèi)對總線進行采樣,若 總線維持高電平,則向 DS18B20寫入 1。系統(tǒng) 硬件 結構框圖如圖 51所示。并且這個初始狀態(tài)是可預知的 狀態(tài), AT89S52 單片機的 復位信號是從 RST 引 腳輸入 的, 當 單片機在 正常工 作狀態(tài) 時, 如果RST 引腳上 出現(xiàn)一 個高電平并維持 至少 2 個機器周期, 那么單片機將響 應 復位信號 并將系統(tǒng)復位。 按鈕復位需要人為 在復位輸入端 RST加 上 高電平 。 當按下 按鍵后 , Vcc 的 +5V 電壓 就會直接加 到 RST 端。由于人 按鍵時的 動作 比較緩慢,可以滿足兩個機器周期的要求, 所以,完全能夠 實現(xiàn)單片機的 復位 。 S52 單片機的復位 也是 由 RESET 引腳來控制的,此引腳與高電平相接達到 2 個機器周期以上 , S52 單片機 自動 進入 復位狀態(tài),而且一直在此狀態(tài)下等 待,直到 RESET 引腳 的電平變 為低 電平后,再開始 檢查 EA 管腳的電平信號 ,若為高電平則執(zhí)行單片機內(nèi)部的程序代碼,若為低電 平則取 執(zhí)行外部 擴展的 程序。 表 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) 。 P0 至 P3 中的數(shù)據(jù)為 FFH, 表明已向各端口置位,此時各端口既可用于輸入又可用于輸出; IP= ***00000B,表明 各個中斷源處于低優(yōu)先級; IE= 0***00000B,表明各個 中斷均被關斷 。期中 程序計數(shù) 器 PC 為 0000H,單片機復位后將 從 地址為 0000H單元開始執(zhí)行。 時鐘電路 時鐘電路跟復位電路一樣是單片機必須具備的電路,兩者構成了單片機的最小系統(tǒng)。而本設計的時鐘電路就可以為單片機的正常工作提供時序 , 若 沒有時鐘電路,單片機就無法工 作。 C1 30pC2 30pY112 M H ZX1X2 圖 53 時鐘電路 溫度采集 電路 本次設計所采用的溫 度傳感器為 dallas半導體 公司的數(shù)字 化溫度傳感器 ds18b20,它 是世界上第一片支持“一線總線”接口的溫度傳感器。 DS18B20 可以程序設定 9~ 12 位 的分辨率 ,可選更小的封裝方式,更寬的電壓適用范圍。 在 硬件上, DS18B20與單片機有兩種接法。 I/O口線要接 5KΩ 左右的上拉電阻。如圖 54所示,把 DS18B20的數(shù)據(jù)線 與單片機 的 相連,再加上上拉電阻 [25]。 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