畢業(yè)設(shè)計(jì)(論文)基于DS18B20的多路溫度檢測(cè)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
畢業(yè)設(shè)計(jì)(論文)基于DS18B20的多路溫度檢測(cè)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
畢業(yè)設(shè)計(jì)(論文)基于DS18B20的多路溫度檢測(cè)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
畢業(yè)設(shè)計(jì)(論文)基于DS18B20的多路溫度檢測(cè)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
畢業(yè)設(shè)計(jì)(論文)基于DS18B20的多路溫度檢測(cè)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩37頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 遼寧科技大學(xué)本科生畢業(yè)設(shè)計(jì) 第i 頁(yè)基于 ds18b20 的多路溫度檢測(cè)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)摘要為了達(dá)到測(cè)量和檢測(cè)多處溫度值,就要求主系統(tǒng)連接多個(gè)溫度傳感器,由于主系統(tǒng)和配件之間連接器上的空閑引腳通常極為有限,要想在不增加連接器復(fù)雜度和成本的條件下給系統(tǒng)增加外設(shè)識(shí)別和控制功能就成為一項(xiàng)極具挑戰(zhàn)性的任務(wù)。作為擁有 1-wire的 ds18b20 器件能夠滿足這些要求。本設(shè)計(jì)采用多個(gè) ds18b20 連接在于同一條單線總線上,這可以在許多不同的地方放置多個(gè) ds18b20 溫度傳感器進(jìn)行溫度檢測(cè)。通過(guò)用單片機(jī)來(lái)實(shí)現(xiàn)對(duì)多個(gè) ds18b20 的控制,從而實(shí)現(xiàn)溫度檢測(cè),實(shí)現(xiàn)報(bào)警。顯示部分采用了七段數(shù)碼顯示

2、管進(jìn)行顯示,可同時(shí)對(duì)時(shí)間和溫度進(jìn)行顯示方便觀察。鍵盤(pán)通過(guò)對(duì) 89c51 的p1 口直接編程來(lái)實(shí)現(xiàn)。關(guān)鍵詞關(guān)鍵詞:1-wire;串行總線;七段數(shù)碼顯示管;溫度測(cè)量 遼寧科技大學(xué)本科生畢業(yè)設(shè)計(jì) 第ii 頁(yè)the design and implementation of the multi-temperature detection system based on ds18b20abstractin order to achieve measurement and testing various temperature,it requires the main system linked to a

3、number of temperature sensors,as the main system and accessories between the connector pins are usually very limited spare, not to increase the connector complexity and cost of the conditions to increase the peripheral system to identify and control has become one of the greatest challenges of task.

4、as with 1 - wire the ds18b20 device can meet these requirementsthis design uses a number of ds18b20,what connected with a one-way bus,which can in many different places at various ds18b20 temperature sensor to detect temperature.to achieve through the use of multiple ds18b20 control, thus realizing

5、the temperature detection,and alarm. demonstrate a part having adopt seven section of digital display tube to carry out the convenient observation demonstrating, but carrying out display on time and the temperature at the same time.89c51 keyboard through the p1 port direct programming to achieve.key

6、 words: 1-wire; serial bus ; seven section of digital display tube; temperature survey 遼寧科技大學(xué)本科生畢業(yè)設(shè)計(jì) 第iii 頁(yè)目錄摘要.iabstract.ii1 緒論.11.1 概述 i2c 總線的應(yīng)用.11.2 概述單總線的應(yīng)用.11.3 本設(shè)計(jì)的結(jié)構(gòu)安排.22 串行總線.32.1 i2c 總線.32.1.1 i2c 總線工作原理.32.1.2 i2c 總線數(shù)據(jù)傳送.32.2 單總線.42.2.1 單總線多節(jié)點(diǎn)系統(tǒng).42.2.2 單總線數(shù)據(jù)通信.53 硬件設(shè)計(jì).63.1 本設(shè)計(jì)系統(tǒng)結(jié)構(gòu)框圖.63.2 系

7、統(tǒng)的原理圖.73.3 單片機(jī)及其管腳說(shuō)明.73.4 用 i/o 口實(shí)現(xiàn) i2c 總線協(xié)議.93.5 ds18b20 的讀寫(xiě)程序和單總線協(xié)議的實(shí)現(xiàn).103.6 單片機(jī)外圍電路.143.6.1 鍵盤(pán).14 遼寧科技大學(xué)本科生畢業(yè)設(shè)計(jì) 第iv 頁(yè)3.6.2 報(bào)警.153.7 三極管的簡(jiǎn)介.153.8 七段數(shù)碼顯示管.163.9 看門(mén)狗的原理.183.10 晶振電路原理.194 軟件設(shè)計(jì).204.1 工作方案簡(jiǎn)介.204.2 主程序流程圖.214.3 功能模塊.224.4 由 ds18b20 完成溫度檢測(cè)模塊.224.5 由 ds1338 完成時(shí)間讀取模塊.274.6 單片機(jī)外圍電路元件模塊.304.

8、6.1 鍵盤(pán)模塊.304.6.2 報(bào)警模塊.32結(jié)論.33參考文獻(xiàn).34致謝.35附錄.36 遼寧科技大學(xué)本科生畢業(yè)設(shè)計(jì) 第v 頁(yè)1 緒論在單片機(jī)應(yīng)用系統(tǒng)中,要處理的數(shù)據(jù)不僅很多,而且很重要時(shí),通常的做法是用并行口擴(kuò)展單片機(jī)外部數(shù)據(jù)存儲(chǔ)器芯片。近年來(lái),隨著半導(dǎo)體技術(shù)的不斷發(fā)展,陸續(xù)出現(xiàn)了一些新的數(shù)據(jù)要求非常嚴(yán)格的芯片,比較典型的有基于 i2c 總線接口的 24 系列,基于 spi 總線的 25 系列,以及并行總線接口的 28 系列,29 系列,這些芯片的特點(diǎn)是芯片掉電后數(shù)據(jù)不會(huì)丟失,數(shù)據(jù)可以保存幾年、甚至幾十年,這些芯片采用 i2c、spi 或 microwire 串行總線協(xié)議,與單片機(jī)接口通

9、常僅占用 24 個(gè) i/ o 口,可以最大限度地節(jié)省單片機(jī)的資源,并且數(shù)據(jù)可以反復(fù)擦寫(xiě)1。1.1 概述 i2c 總線的應(yīng)用philips 公司開(kāi)發(fā)的 i2c 總線是串行總線的一個(gè)應(yīng)用,它主要應(yīng)用于單片機(jī)外圍芯片的擴(kuò)展。它只需兩根線即可實(shí)現(xiàn)單片機(jī)與總線上各個(gè)具有 i2c 總線接口的外圍芯片進(jìn)行數(shù)據(jù)交換。該協(xié)議是解決單片機(jī) i/o 口資源緊張的有效措施,i2c 總線是目前最完善的外圍器件的擴(kuò)展總線,具有最完善的總線規(guī)范和最方便的用戶界面,其上可掛接多達(dá) 128 個(gè)串行外圍器件或設(shè)備。目前有很多半導(dǎo)體集成電路上都集成了 i2c 接口。帶有 i2c 接口的單片機(jī)有:cygnal 的 c8051f0xx

10、 系列,philipsp87lpc7xx 系列,microchip 的 pic16c6xx 系列等。很多外圍器件如存儲(chǔ)器、監(jiān)控芯片等也提供 i2c接口。1.2 概述單總線的應(yīng)用單總線是一種最簡(jiǎn)單的串行總線形式, 它通過(guò)單條連接線完成了全部的控制、通信和供電, 節(jié)省了 i/o 口, 降低了系統(tǒng)成本并簡(jiǎn)化了設(shè)計(jì)。目前常用的微機(jī)與外設(shè)之間進(jìn)行數(shù)據(jù)傳輸?shù)拇锌偩€主要有 i2c 總線、spi 總線和sci 總線。其中 i2c 總線以同步串行 2 線方式進(jìn)行通信(一條時(shí)鐘線,一條數(shù)據(jù)線) , 遼寧科技大學(xué)本科生畢業(yè)設(shè)計(jì) 第 2 頁(yè)spi 總線則以同步串行 3 線方式進(jìn)行通信(一條時(shí)鐘線,一條數(shù)據(jù)輸入線,一

11、條數(shù)據(jù)輸出線) ,而 sci 總線是以異步方式進(jìn)行通信(一條數(shù)據(jù)輸入線,一條數(shù)據(jù)輸出線)的。這些總線至少需要兩條或兩條以上的信號(hào)線。近年來(lái),美國(guó)的達(dá)拉斯半導(dǎo)體公司(dallassemiconductor)推出了一項(xiàng)特有的單總線(1wire bus)技術(shù)3。該技術(shù)與上述總線不同,它采用單根信號(hào)線,既可傳輸時(shí)鐘,又能傳輸數(shù)據(jù),而且數(shù)據(jù)傳輸是雙向的,因而這種單總線技術(shù)具有線路簡(jiǎn)單,硬件開(kāi)銷(xiāo)少,成本低廉,便于總線擴(kuò)展和維護(hù)等優(yōu)點(diǎn)。單總線適用于單主機(jī)系統(tǒng),能夠控制一個(gè)或多個(gè)從機(jī)設(shè)備。主機(jī)可以是微控制器,從機(jī)可以是單總線器件,它們之間的數(shù)據(jù)交換只通過(guò)一條信號(hào)線。當(dāng)只有一個(gè)從機(jī)設(shè)備時(shí),系統(tǒng)可按單節(jié)點(diǎn)系統(tǒng)操作

12、;當(dāng)有多個(gè)從機(jī)設(shè)備時(shí),系統(tǒng)則按多節(jié)點(diǎn)系統(tǒng)操作。本文結(jié)合以單總線溫度傳感器構(gòu)成的溫度測(cè)控系統(tǒng), 詳細(xì)講述單總線 器件與常用的 8051 系列單片機(jī)的軟件接口。1.3 本設(shè)計(jì)的結(jié)構(gòu)安排如前所述,本設(shè)計(jì)就是采用單片機(jī)模擬串口協(xié)議實(shí)現(xiàn)帶電子鐘的溫度檢測(cè)系統(tǒng)。本設(shè)計(jì)的結(jié)構(gòu)安排如下:第 2 章簡(jiǎn)單介紹兩種串行協(xié)議即 i2c 總線協(xié)議和單總線協(xié)議的原理、特點(diǎn)、時(shí)序以及使用方法。第 3 章介紹本設(shè)計(jì)應(yīng)用 i2c 總線協(xié)議和單總線協(xié)議實(shí)現(xiàn)帶電子鐘的溫度檢測(cè)系統(tǒng)的硬件。具體的芯片選擇和簡(jiǎn)單的芯片介紹。并且給出了本設(shè)計(jì)所用主機(jī) atc89c51單片機(jī)的介紹。以及 i2c 協(xié)議和單總線協(xié)議在 atc89c51 單片機(jī)

13、上的實(shí)現(xiàn)。最后給出了人機(jī)接口的電路圖,并對(duì)鍵盤(pán)功能和電路進(jìn)行了介紹。第 4 章介紹本設(shè)計(jì) i2c 總線協(xié)議和單總線協(xié)議的軟件實(shí)現(xiàn)。并給出了人機(jī)接口部分的驅(qū)動(dòng)程序包括鍵盤(pán)有液晶顯示的程序。給出了設(shè)計(jì)整體的流程圖。這章是設(shè)計(jì)的重點(diǎn)。本設(shè)計(jì)因?yàn)椴捎玫氖谴锌偩€器件所以對(duì)于硬件設(shè)計(jì)相對(duì)簡(jiǎn)單。但軟件部分就是此次設(shè)計(jì)的難點(diǎn)。下面,我們就逐章進(jìn)入本設(shè)計(jì)的全過(guò)程。 遼寧科技大學(xué)本科生畢業(yè)設(shè)計(jì) 第 3 頁(yè)2 串行總線2.1 i2c 總線2.1.1 i2c 總線工作原理i2c( inter-integrated circuit)總線是一種由 philips 公司開(kāi)發(fā)的兩線制總線,由一條串行數(shù)據(jù)線 sda 和一條串

14、行時(shí)鐘線 scl 組成。該總線是雙向、兩線、串行、多主控(multi-master)接口標(biāo)準(zhǔn),具有總線仲裁機(jī)制,非常適合在器件之間進(jìn)行近距離、非經(jīng)常性的數(shù)據(jù)通信。由于其使用兩線的硬件接口簡(jiǎn)單,i2c 總線的應(yīng)用越來(lái)越廣泛。實(shí)現(xiàn)i2c 總線通信協(xié)議主要有兩種方法:利角 mcu 對(duì)兩根 i/o 口線進(jìn)行軟件編程,模擬i2c 總線的 scl 和 sda 時(shí)序要求:使用專(zhuān)用 i2c 總線控制核,但受其主機(jī)(host)接口方式和時(shí)鐘頻率的限制,在有些場(chǎng)合應(yīng)用并不方便。本設(shè)計(jì)就是對(duì) 89c51 的兩個(gè) i/o口進(jìn)行編程,模擬 i2c 總線的 scl 和 sda 時(shí)序要求的。在 cpu 與被控 ic 之間、

15、ic 與 ic 之間進(jìn)行雙向傳送,最高傳送速率 100kbps。各種被控制電路均并聯(lián)在這條總線上,但就像電話機(jī)一樣只有撥通各自的號(hào)碼才能工作,所以每個(gè)電路和模塊都有唯一的地址,在信息的傳輸過(guò)程中,i2c 總線上并接的每一模塊電路既是主控器(或被控器),又是發(fā)送器(或接收器),這取決于它所要完成的功能。cpl 發(fā)出的控制信號(hào)分為地址碼和控制量?jī)刹糠?,地址碼用來(lái)選址,即接通需要控制的電路,確定控制的種類(lèi);控制量決定該調(diào)整的類(lèi)別(如對(duì)比度、亮度等)及需要調(diào)整的量。這樣,各控制電路雖然掛在同一條總線上,卻彼此獨(dú)立,互不相關(guān)。2.1.2 i2c 總線數(shù)據(jù)傳送在 i2c 總線上傳送的一個(gè)數(shù)據(jù)字節(jié)由八位數(shù)組

16、成,總線對(duì)每次傳送的字節(jié)數(shù)沒(méi)有限制,但每個(gè)字節(jié)后必須跟一位應(yīng)答位。傳輸速率可達(dá) 400k 波特。數(shù)據(jù)傳送時(shí),高位 遼寧科技大學(xué)本科生畢業(yè)設(shè)計(jì) 第 4 頁(yè)在前,低位在后,這和傳統(tǒng)的串行通通訊不同。數(shù)據(jù)傳輸時(shí),在時(shí)鐘線 scl 高電平期間,數(shù)據(jù)線 sda 上的信息要保持不變,在 scl 低電平期間,sda 上的電平才允許變化。每個(gè) scl 脈沖對(duì)應(yīng) sda 上的一位數(shù)據(jù)。如圖 2.1 所示。如果在時(shí)鐘線 scl 高電平期間,sda 上的電平出現(xiàn)了下降沿,這種狀態(tài)規(guī)定為起始信號(hào)(s);如果在時(shí)鐘線 scl 高電平期間,sda 上的 1 電平出現(xiàn)上升沿,這種狀態(tài)規(guī)定為終止信號(hào)(p)。2.2 單總線2.

17、2.1 單總線多節(jié)點(diǎn)系統(tǒng)美國(guó)的達(dá)拉斯半導(dǎo)體公司(dallas semiconductor) 推出了一項(xiàng)特有的單總線(1 - wire bus) 技術(shù)。它采用單根信號(hào)線, 既可傳輸時(shí)鐘, 又能傳輸數(shù)據(jù), 而且數(shù)據(jù)傳輸是雙向的,主機(jī)可以是微控制器,從機(jī)可以是單總線器件,它們之間的數(shù)據(jù)交換只通過(guò)一條信號(hào)線。單總線多節(jié)點(diǎn)系統(tǒng)示意圖如下圖 2.2 所示。微控制器(主機(jī))允許數(shù)據(jù)變化數(shù)據(jù)線上數(shù)據(jù)有效圖 2.1 i2c 總線位傳輸 遼寧科技大學(xué)本科生畢業(yè)設(shè)計(jì) 第 5 頁(yè)圖 2.2 單總線多節(jié)點(diǎn)系統(tǒng)示意圖單總線技術(shù)是在一根總線上僅有一個(gè)主系統(tǒng)和若干個(gè)從系統(tǒng)組成的計(jì)算機(jī)應(yīng)用系統(tǒng),由于總線上的所有器件都通過(guò) 1

18、條信號(hào)線傳輸信息,這樣,整個(gè)系統(tǒng)要按單總線協(xié)議規(guī)定的時(shí)序進(jìn)行工作,具體的內(nèi)容是初始化器件、識(shí)別器件和進(jìn)行數(shù)據(jù)交換。目前,單總線器件主要有數(shù)字溫度傳感器(如 ds18b20)、a/d 轉(zhuǎn)換器(ds2450)、門(mén)禁、身份識(shí)別器(如 ds1990a)、單總線控制器(如 ds1wm)等。本設(shè)計(jì)應(yīng)用實(shí)例以ds18b20 為溫度傳感器,構(gòu)建了多點(diǎn)溫度檢測(cè)系統(tǒng)。系統(tǒng)采用 1-wire 公眾域(pd)軟件應(yīng)用程序接口,采用循環(huán)程序結(jié)構(gòu)實(shí)現(xiàn)查看任何一個(gè)檢測(cè)點(diǎn)的編號(hào)、溫度值等數(shù)據(jù)指示,實(shí)現(xiàn)了多個(gè)檢測(cè)點(diǎn)數(shù)據(jù)的自動(dòng)化監(jiān)管。2.2.2 單總線數(shù)據(jù)通信單總線技術(shù)實(shí)現(xiàn)的硬件簡(jiǎn)單,但芯片的品種繁多,在適當(dāng)?shù)耐獠侩娐分心芡瓿蓮?fù)

19、雜的操作,這些功能的實(shí)現(xiàn),則依賴(lài)良好的軟件環(huán)境支持。作為一種與目前大多數(shù)標(biāo)準(zhǔn)串行數(shù)據(jù)通信方式不同的串行數(shù)據(jù)傳輸方式,它有自己獨(dú)特的通信協(xié)議單總線協(xié)議2 (或稱(chēng)一線協(xié)議)。單總線協(xié)議定義了如下幾種信號(hào)類(lèi)型:復(fù)位脈沖、應(yīng)答脈沖、寫(xiě) 0、寫(xiě) i,讀 0 和讀1。所有這些信號(hào),除了應(yīng)答脈沖以外,都有由主機(jī)發(fā)出同步信號(hào),并且所有的命令和數(shù)據(jù)都是字節(jié)低位在前,這一點(diǎn)與多數(shù)標(biāo)準(zhǔn)串行通信方式不同。1-wiredevice11-wire device21-wiredevicen-11-wiredevicen 遼寧科技大學(xué)本科生畢業(yè)設(shè)計(jì) 第 6 頁(yè)3 硬件設(shè)計(jì)本系統(tǒng)的硬件電路包括主機(jī)、溫度與檢測(cè)與控制、人機(jī)對(duì)話(

20、鍵盤(pán)/顯示/報(bào)警)和其他擴(kuò)展電路(電子日歷/復(fù)位電路)4 個(gè)主要部分。圖 3.1 為系統(tǒng)的硬件電路原理圖3.1 本設(shè)計(jì)系統(tǒng)結(jié)構(gòu)框圖 圖 3.1 系統(tǒng)的結(jié)構(gòu)框圖由于系統(tǒng)控制方案簡(jiǎn)單,數(shù)據(jù)量也不大,因此選用 89c51 作為控制系統(tǒng)的核心,也可視具體情況換用 8051、8052、8751、8752、80c51、89c52 等。其中,8051、8052、8751、8752 的各個(gè)引腳輸入/輸出電平只與 ttl 電平兼容;89c51、89c52、80c51 各引腳輸入/輸出電平既與 ttl 電平兼容,也與 cmos 電平兼容。溫度/時(shí)間液晶顯示鍵盤(pán)報(bào)警主機(jī)集成溫度傳感器ds18b20數(shù)字溫度傳感器ds

21、18b20串行實(shí)時(shí)時(shí)鐘ds1338智能溫度傳感器ds18b20 遼寧科技大學(xué)本科生畢業(yè)設(shè)計(jì) 第 7 頁(yè)3.2 系統(tǒng)的原理圖ea/vp31x119x218reset9rd17wr16int012int113t014t115p101p112p123p134p145p156p167p178p0039p0138p0237p0336p0435p0534p0633p0732p2021p2122p2223p2324p2425p2526p2627p2728psen29ale/p30txd11rxd10u1jz12mc130pc230pc3104c5103c4330uf/16v1111111198765432r

22、p210kvcctxdsisorxdvcccssckc710uf/16vr610kvcck5reset98u8d74071110u8e7407s1器器器r124.7kr132kvccq99012fmqsdascl232txd232rxdc11105c12105c9105c14105c13104tx0rx0v+v-v+v-vccr24r25r26r27r28r29r30q1q2q3q4q5q6q7q8r32330r33330r34330r35330r36330r37330r38330r39330r31vccdadbdcdddedfdgdpot901281k8dadbdcdpotdddedfdgd

23、edfdgdadbdcdpotdda1d6e7g8f9g10b2c3pot4g5smg1dpy 7-sega1d6e7g8f9g10b2c3pot4g5smg2dpy 7-seg12u8a740734u8b7407/cs1so2wp3vss4vcc8reset7sck6si5u2x25045cssovccsisckint0int1c1+1vs+2c1-3c2+4c2-5vs-6t2out7r2in8vcc16gnd15t1out14r1in13r1out12t1in11t2in10r2out9u4max232dadbdcdpotdddedfdga1d6e7g8f9g10b2c3pot4g5sm

24、g3dpy 7-segdadbdcdpotdddedfdga1d6e7g8f9g10b2c3pot4g5smg4dpy 7-segs8s7s9s6s4s1s3s5s2jz232.768kx11x22vcc8scl6sda5vbat3ds1338gnd4u3ds1338bt1batterysdasclgnd1dq2vcc3u5ds18b20gnd1dq2vcc3u6ds18b20gnd1dq2vcc3u7ds18b20gndgndgndvccvccvccgndgndr110kr210kr310kkey1key2key3key4key5key6vccr?4.7kvccdqdqfmqrs232gnd

25、232txd162738495j1232rxdkey4key5key6key1key2key3+5v圖 3.2 系統(tǒng)原理圖 遼寧科技大學(xué)本科生畢業(yè)設(shè)計(jì) 第 8 頁(yè)3.3 單片機(jī)及其管腳說(shuō)明at89c51 是一種帶 4k 字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器(fperomflash programmable and erasable read only memory)的低電壓,高性能 cmos8 位微處理器,俗稱(chēng)單片機(jī)。at89c2051 是一種帶 2k 字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的單片機(jī)。該器件采用 atmel 高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的 mcs-51 指令集和輸出管腳相兼容。

26、下面指出了各個(gè)管腳的用途。vcc:供電電壓。gnd:接地。p0 口:p0 口為一個(gè) 8 位漏級(jí)開(kāi)路雙向 i/o 口,每腳可吸收 8 個(gè) ttl 門(mén)電流。當(dāng)p1 口的管腳第一次寫(xiě) 1 時(shí),被定義為高阻輸入。p0 能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在 fiash 編程時(shí),p0 口作為原碼輸入口,當(dāng)fiash 進(jìn)行校驗(yàn)時(shí),p0 輸出原碼,此時(shí) p0 外部必須被拉高。p1 口:p1 口是一個(gè)內(nèi)部提供上拉電阻的 8 位雙向 i/o 口,p1 口緩沖器能接收輸出4ttl 門(mén)電流。p1 口管腳寫(xiě)入 1 后,被內(nèi)部上拉為高,可用作輸入,p1 口被外部下拉為低電平時(shí),將輸出電流,這是

27、由于內(nèi)部上拉的緣故。在 flash 編程和校驗(yàn)時(shí),p1口作為第八位地址接收。 p2 口:p2 口為一個(gè)內(nèi)部上拉電阻的 8 位雙向 i/o 口,p2 口緩沖器可接收,輸出 4個(gè) ttl 門(mén)電流,當(dāng) p2 口被寫(xiě)“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),p2 口的管腳被外部拉低,將輸出電流。p2 口當(dāng)用于外部程序存儲(chǔ)器或16 位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),p2 口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫(xiě)時(shí),p2 口輸出其特殊功能寄存器的內(nèi)容。p2 口在 flash 編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。p3 口:p3

28、 口管腳是 8 個(gè)帶內(nèi)部上拉電阻的雙向 i/o 口,可接收輸出 4 個(gè) ttl 門(mén)電流。當(dāng) p3 口寫(xiě)入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,p3 口將輸出電流(ill)這是由于上拉的緣故。p3 口也可作為at89c51 的一些特殊功能口, p3 口管腳 備選功如下:p3.0 rxd(串行輸入口)p3.1 txd(串行輸出口) 遼寧科技大學(xué)本科生畢業(yè)設(shè)計(jì) 第 9 頁(yè)p3.2 /int0(外部中斷 0)p3.3 /int1(外部中斷 1)p3.4 t0(記時(shí)器 0 外部輸入)p3.5 t1(記時(shí)器 1 外部輸入)p3.6 /wr(外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通)p3

29、.7 /rd(外部數(shù)據(jù)存儲(chǔ)器讀選通)p3 口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。rst:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持 rst 腳兩個(gè)機(jī)器周期的高電平時(shí)間。ale/prog:當(dāng)訪問(wèn)外部存儲(chǔ)器,地址鎖存允許的輸出電平用于鎖存地址地位字節(jié)。/psen:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/psen 有效。但在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/psen 信號(hào)將不出現(xiàn)。/ea/vpp:在 flash 編程期間,此引腳也用于施加 12v 編程電源(vpp) 。xtal1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。xtal2:來(lái)自反向振蕩器的輸出。3.4

30、 用 i/o 口實(shí)現(xiàn) i2c 總線協(xié)議為了記錄系統(tǒng)每次檢測(cè)溫度的時(shí)間,本設(shè)計(jì)特別在溫度檢測(cè)的基礎(chǔ)上增加了電子鐘的功能。因?yàn)楸驹O(shè)計(jì)主要是研究串行總線,所以選用具有 i2c 協(xié)議的 ds1338 串行實(shí)時(shí)時(shí)鐘(rtc)芯片,并用單片機(jī)的兩個(gè)普通 i/o 線實(shí)現(xiàn) i2c 總線功能,這樣可以最大限度地節(jié)省單片機(jī)的資源6。下面就 ds1338 芯片的特性進(jìn)行一下介紹。ds1338 串行實(shí)時(shí)時(shí)鐘(rtc)就是其中的一種,ds1338 具有低功耗、全二進(jìn)制編碼的十進(jìn)制(bcd)時(shí)鐘/日歷,外加 56 字節(jié) nv sram。地址與數(shù)據(jù)通過(guò) i2c 總線串行傳送。時(shí)鐘/日歷可以提供秒、分、時(shí)、日、月、年信息。對(duì)

31、于少于 31 天的月份,到每月的最后一天會(huì)自動(dòng)進(jìn)行調(diào)節(jié),包括閏年修正。ds1338 采用內(nèi)置晶振和表面貼封裝,并為數(shù)據(jù)存儲(chǔ)提供 56 字節(jié)電池備份的 nv ram 。ds1338 采用 i2c 串行接口協(xié)議,具有可編程方波輸出功能自動(dòng)電源失效檢測(cè)與轉(zhuǎn)換電路并通過(guò) ul 認(rèn)證等一系列特性。本 遼寧科技大學(xué)本科生畢業(yè)設(shè)計(jì) 第 10 頁(yè)設(shè)計(jì)主要應(yīng)用 ds1338 串行實(shí)時(shí)時(shí)鐘(rtc)來(lái)實(shí)現(xiàn)帶電子鐘的溫度檢測(cè)系統(tǒng)。ds1338的接口電路如圖 3.3 所示5。圖 3.3 ds1338 的接口電路目前,51、96 系列的單片機(jī)應(yīng)用很廣,但是由于它們都沒(méi)有 i2c 總線接口,從而限制了在這些系統(tǒng)中使用具有

32、 i2c 總線接口的器件。通過(guò)對(duì) i2c 總線時(shí)序的分析,可以用 51 單片機(jī)的兩根 i/ o 線來(lái)實(shí)現(xiàn) i2c 總線的功能。本設(shè)計(jì)就是用 atc89c51 的通用 i/ o 口來(lái)作為 i2c 總線接口,并由軟件控制實(shí)現(xiàn)數(shù)據(jù)傳送的。連接電路如圖 3.4 所示,具體的軟件實(shí)現(xiàn)本設(shè)計(jì)在軟件設(shè)計(jì)中將給出詳細(xì)的介紹。ea/vp31x119x218reset9rd17wr16int012int113t014t115p101p112p123p134p145p156p167p178p0039p0138p0237p0336p0435p0534p0633p0732p2021p2122p2223p2324p242

33、5p2526p2627p2728psen29ale/p30txd11rxd1089c51vccjz232.768kx11x22vcc8scl6sda5vbat3ds1338gnd4u5ds1338bt1battery圖 3.4 ds18b20 與單片機(jī)接口電路3.5 ds18b20 的讀寫(xiě)程序和單總線協(xié)議的實(shí)現(xiàn)ds18b20 的讀寫(xiě)程序和測(cè)溫程序相同,只是得到的溫度值的位數(shù)因分辨率不同而不同,且溫度轉(zhuǎn)換時(shí)的延時(shí)時(shí)間由 2s 減為 750ms。 ds18b20 測(cè)溫原理中低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給計(jì)數(shù)器 1。高溫度 遼寧科技大學(xué)本科生畢業(yè)設(shè)計(jì) 第 11

34、 頁(yè)系數(shù)晶振隨溫度變化其振蕩率明顯改變,所產(chǎn)生的信號(hào)作為計(jì)數(shù)器 2 的脈沖輸入。計(jì)數(shù)器 1 和溫度寄存器被預(yù)置在55所對(duì)應(yīng)的一個(gè)基數(shù)值。計(jì)數(shù)器 1 對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)計(jì)數(shù)器 1 的預(yù)置值減到 0 時(shí),溫度寄存器的值將加 1,計(jì)數(shù)器 1 的預(yù)置將重新被裝入,計(jì)數(shù)器 1 重新開(kāi)始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到計(jì)數(shù)器 2 計(jì)數(shù)到 0 時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即為所測(cè)溫度。圖 3.5 中的斜率累加器用于補(bǔ)償和修正測(cè)溫過(guò)程中的非線性,其輸出用于修正計(jì)數(shù)器 1 的預(yù)置值。圖 3.5 ds18b20 測(cè)溫原理框圖ds18b20 有

35、4 個(gè)主要的數(shù)據(jù)部件: (1)光刻 rom 中的 64 位序列號(hào)是出廠前被光刻好的,它可以看作是該 ds18b20的地址序列碼。64 位光刻 rom 的排列是:開(kāi)始 8 位(28h)是產(chǎn)品類(lèi)型標(biāo)號(hào),接著的48 位是該 ds18b20 自身的序列號(hào),最后 8 位是前面 56 位的循環(huán)冗余校驗(yàn)碼(crc=x8+x5+x4+1)。光刻 rom 的作用是使每一個(gè) ds18b20 都各不相同,這樣就可以實(shí)現(xiàn)一根總線上掛接多個(gè) ds18b20 的目的。 (2)ds18b20 中的溫度傳感器可完成對(duì)溫度的測(cè)量,以 12 位轉(zhuǎn)化為例:用 16 位符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供,以 0.0625/lsb 形式

36、表達(dá),其中 s 為符號(hào)位。 這是 12 位轉(zhuǎn)化后得到的 12 位數(shù)據(jù),存儲(chǔ)在 18b20 的兩個(gè) 8 比特的 ram 中,二進(jìn)制中的前面 5 位是符號(hào)位,如果測(cè)得的溫度大于 0,這 5 位為 0,只要將測(cè)到的數(shù)值乘于 0.0625 即可得到實(shí)際溫度;如果溫度小于 0,這 5 位為 1,測(cè)到的數(shù)值需要取反加1 再乘于 0.0625 即可得到實(shí)際溫度。 例如+125的數(shù)字輸出為 07d0h,+25.0625的數(shù)字輸出為 0191h,-25.0625的數(shù)字輸出為 ff6fh,-55的數(shù)字輸出為 fc90h。 (3)ds18b20 溫度傳感器的存儲(chǔ)器 遼寧科技大學(xué)本科生畢業(yè)設(shè)計(jì) 第 12 頁(yè) ds18

37、b20 溫度傳感器的內(nèi)部存儲(chǔ)器包括一個(gè)高速暫存 ram 和一個(gè)非易失性的可電擦除的 eepram,后者存放高溫度和低溫度觸發(fā)器 th、tl 和結(jié)構(gòu)寄存器。 (4)配置寄存器 該字節(jié)各位的意義如下:表 3.1 配置寄存器結(jié)構(gòu)tmr1r011111 低五位一直都是1,tm 是測(cè)試模式位,用于設(shè)置 ds18b20 在工作模式還是在測(cè)試模式。在 ds18b20 出廠時(shí)該位被設(shè)置為 0,用戶不要去改動(dòng)。r1 和 r0 用來(lái)設(shè)置分辨率,如下表 3.2 所示:(ds18b20 出廠時(shí)被設(shè)置為 12 位)表 3.2 溫度分辨率設(shè)置表r1r0分辨率溫度最大轉(zhuǎn)換時(shí)間009 位93.75ms0110 位187.5m

38、s1011 位375ms1112 位750ms本設(shè)計(jì)采用多個(gè)溫度傳感器 ds18b20 對(duì)溫度進(jìn)行采樣,從而進(jìn)行溫度的檢測(cè)與控制。因?yàn)?ds18b20 是使用單總線協(xié)議的,所以具有單總線的優(yōu)點(diǎn),本設(shè)計(jì)通過(guò)對(duì)ds18b20 的使用,使讀者對(duì)單總線協(xié)議有了更深的認(rèn)識(shí)。下面就 ds18b20 芯片的特性進(jìn)行一下介紹。與 dallas 公司早期生產(chǎn)的 ds1820 相比,ds18b20 具有如下特點(diǎn)4:(1) 精度:ds18b20 在-10+85范圍內(nèi)精度為+-0.5。(2) 分辨率:ds18b20 的分辨率由 912 位(包括 1 位符號(hào)位)數(shù)據(jù)在線編程決定。(3) 溫度轉(zhuǎn)換時(shí)間:ds18b20 的

39、轉(zhuǎn)換時(shí)間與設(shè)定的分辨率有關(guān),當(dāng)設(shè)定為 9 位時(shí),最大轉(zhuǎn)換時(shí)間為 93.75ms;10 位時(shí),為 187.5ms;11 位時(shí),為 375ms;12 位時(shí), 遼寧科技大學(xué)本科生畢業(yè)設(shè)計(jì) 第 13 頁(yè)為 750ms。(4) 電源電壓范圍:在保證溫度轉(zhuǎn)換精度為+-0.5的情況下,電源電壓可為+3.0v+5.5。(5) 程序設(shè)置寄存器:該寄存器主要用來(lái)設(shè)置分辨率位數(shù)的。(6) 64 位 rom 編碼:從高位算起,該 rom 有一個(gè)字節(jié)的 crc 校驗(yàn)碼,6 個(gè)字節(jié)的產(chǎn)品序號(hào)和一個(gè)字節(jié)的家族代碼。對(duì)于家族代碼, ds18b20 是 28h。(7) 溫度數(shù)據(jù)寄存器:寄存器由兩個(gè)字節(jié)組成,ds18b20 對(duì)于

40、 12 位的分辨率為 2-4,如圖 3.6 所示4。232221202-12-22-32-4msb 單位= lsbsssss262524符號(hào)位圖 3.6 ds18b20 的分辨率(8) 內(nèi)部存儲(chǔ)器分配:ds18b20h 高速暫存寄存器是 ds18b20 高速暫存寄存器的存儲(chǔ)分配溫度值低位字節(jié)溫度值高位字節(jié)th/用戶字節(jié) 1(報(bào)警上限)tl/用戶字節(jié) 2(報(bào)警下限)程序設(shè)置字節(jié)保留保留保留 ds18b20 采用 to92 封裝或 8 腳 soic 封裝。其引腳排列及含義如下圖 3.8 所示。th/用戶字節(jié) 1tl/用戶字節(jié) 2程序設(shè)置字節(jié)e2romcrc圖 3.7 ds18b20 高速暫存寄存器

41、的存儲(chǔ)分配低位字節(jié)高位字節(jié) 遼寧科技大學(xué)本科生畢業(yè)設(shè)計(jì) 第 14 頁(yè)ds18b20 的供電方式有兩種: 一種是寄生電源;另一種為外電源供電,因?yàn)槎鄠€(gè)器件掛在總線上,為了識(shí)別不同的器件,在程序設(shè)計(jì)中一般有四個(gè)步驟:初始化命令;傳送 rom 命令;傳送 ram 命令;數(shù)據(jù)交換命令。本設(shè)計(jì)在軟件介紹部分會(huì)就ds18b20 溫度傳感器件具體介紹其每一部分的時(shí)序。本系統(tǒng)利用 ds18b20 完成溫度采集及轉(zhuǎn)換工作,而單片機(jī) 89c51 起實(shí)時(shí)控制及通訊作用.可以將多個(gè) ds18b20 與單片機(jī)一位總線相連,形成多點(diǎn)測(cè)溫, 本設(shè)計(jì)研究多片ds18b20 與單片機(jī)構(gòu)成的測(cè)溫系統(tǒng)。dss18b20 與單片機(jī)接

42、口電路如圖 3.9 所示.圖 3.9 ds18b20 與單片機(jī)接口電路nc 1nc 2dallasds18b201 gnd 2 dq 3 vddvdd 3nc 18 nc7 nc6 nc5 gndgnd:地 vdd:電源dq:數(shù)據(jù)輸入/輸出 nc:空腳圖 3.8 ds18b20 的封裝 遼寧科技大學(xué)本科生畢業(yè)設(shè)計(jì) 第 15 頁(yè)3.6 單片機(jī)外圍電路3.6.1 鍵盤(pán)本設(shè)計(jì)采用 89c51 單片機(jī)的 p1 口來(lái)實(shí)現(xiàn)。本設(shè)計(jì)鍵盤(pán)的連接如下圖 3.10 所示。圖 3.10 鍵盤(pán)的連接將全部行線置低電平,然后檢測(cè)列線的狀態(tài)。只要有一列的電平為低,則表示鍵盤(pán)中有鍵被按下,而且閉合的鍵位于低電平線與 3 根

43、行線相交叉的 3 個(gè)按鍵之中。若所有列線均為高電平,則鍵盤(pán)中無(wú)鍵按下。在確認(rèn)有鍵按下后,即可進(jìn)入確定具體閉合鍵的過(guò)程。其方法是:依次將行線置為低電平,即在置某根行線為低電平時(shí),其它線為高電平。在確定某根行線位置為低電平后,再逐行檢測(cè)各列線的電平狀態(tài)。若某列為低,則該列線與置為低電平的行線交叉處的按鍵就是閉合的按鍵。3.6.2 報(bào)警本設(shè)計(jì)的報(bào)警功能由蜂鳴器實(shí)現(xiàn)。當(dāng)由于意外因素導(dǎo)致 ds18b20 溫度高于設(shè)置溫度時(shí),p1.7 口送出的低電平經(jīng)反向器驅(qū)動(dòng)蜂鳴器鳴叫報(bào)警。3.7 三極管的簡(jiǎn)介三極管是一種控制元件,三極管的作用非常的大,可以說(shuō)沒(méi)有三極管的發(fā)明就沒(méi)有現(xiàn)代信息社會(huì)的如此多樣化,電子管是他的

44、前身,但是電子管體積大耗電量巨大,現(xiàn)在已經(jīng)被淘汰。三極管主要用來(lái)控制電流的大小,以共發(fā)射極接法為例(信號(hào)從基 遼寧科技大學(xué)本科生畢業(yè)設(shè)計(jì) 第 16 頁(yè)極輸入,從集電極輸出,發(fā)射極接地),當(dāng)基極電壓 ub 有一個(gè)微小的變化時(shí),基極電流 ib 也會(huì)隨之有一小的變化,受基極電流 ib 的控制,集電極電流 ic 會(huì)有一個(gè)很大的變化,基極電流 ib 越大,集電極電流 ic 也越大,反之,基極電流越小,集電極電流也越小,即基極電流控制集電極電流的變化。但是集電極電流的變化比基極電流的變化大得多,這就是三極管的電流放大作用。剛才說(shuō)了電流放大是晶體三極管的作用,其實(shí)質(zhì)是三極管能以基極電流微小的變化量來(lái)控制集電

45、極電流較大的變化量。這是三極管最基本的和最重要的特性。我們將ic/ib 的比值稱(chēng)為晶體三極管的電流放大倍數(shù),用符號(hào)“”表示。電流放大倍數(shù)對(duì)于某一只三極管來(lái)說(shuō)是一個(gè)定值,但隨著三極管工作時(shí)基極電流的變化也會(huì)有一定的改變。根據(jù)三極管的作用我們分析它可以把微弱的電信號(hào)變成一定強(qiáng)度的信號(hào),當(dāng)然這種轉(zhuǎn)換仍然遵循能量守恒,它只是把電源的能量轉(zhuǎn)換成信號(hào)的能量罷了。三極管有一個(gè)重要參數(shù)就是電流放大系數(shù) 。當(dāng)三極管的基極上加一個(gè)微小的電流時(shí),在集電極上可以得到一個(gè)是注入電流 倍的電流,即集電極電流。集電極電流隨基極電流的變化而變化,并且基極電流很小的變化可以引起集電極電流很大的變化,這就是三極管的放大作用。三極

46、管的作用還有電子開(kāi)關(guān),配合其它元件還可以構(gòu)成振蕩器,此外三極管還有穩(wěn)壓的作用。3.8 七段數(shù)碼顯示管七段數(shù)碼管在工業(yè)控制中有著很廣泛的應(yīng)用,例如用來(lái)顯示溫度、數(shù)量、重量、日期、時(shí)間,還可以用來(lái)顯示比賽的比分等,具有顯示醒目、直觀的優(yōu)點(diǎn).無(wú)論是共陰極還是共陽(yáng)極的數(shù)碼管,都分段碼和位碼,要想讓它亮必須驅(qū)動(dòng)它! 以共陽(yáng)極 4 位數(shù)碼管為例,即首先要選中你想要電亮的數(shù)碼管的位,要想讓 4 個(gè)數(shù)碼管全亮須 4 個(gè)位全選中,所謂選中的含義就是給高電平(共陽(yáng)極) 。數(shù)碼管分 8 個(gè)段,即段碼,每個(gè)段的亮滅都對(duì)應(yīng)著一個(gè)數(shù)字或字母,想讓哪一段亮就給哪段送低電平。其中掃描分靜態(tài)掃描和動(dòng)態(tài)掃描! 靜態(tài)掃描比動(dòng)態(tài)掃描

47、簡(jiǎn)單些。動(dòng)態(tài)掃描他在沒(méi)個(gè)時(shí)間只能點(diǎn)亮一位數(shù)碼管,但是由于掃描頻率的設(shè)置,單片機(jī)的速度是很快的,但幾十 ms 內(nèi)就能讓 4 位數(shù)碼管循環(huán)亮滅很多次,這些人的肉眼是分辨不出來(lái)的,數(shù)碼管的亮度可以通過(guò)軟件設(shè)置(掃描頻率的設(shè)置)調(diào)整。 遼寧科技大學(xué)本科生畢業(yè)設(shè)計(jì) 第 17 頁(yè)每個(gè)數(shù)碼管都有 a、b、c、d、e、f、g 七個(gè)筆劃和一個(gè)小數(shù)點(diǎn) dp,這八個(gè)聯(lián)對(duì)應(yīng)二極管陽(yáng)極,陰極都聯(lián)在一起(稱(chēng)共陰極) 。以四位數(shù)碼管矩陣為例,四個(gè)數(shù)碼管的a、b、c、d、e、f、g 七個(gè)筆劃和一個(gè)小數(shù)點(diǎn) dp 電極分別并聯(lián)在一起。當(dāng) c 行高電平,3 列低電平,其他行列都為高阻態(tài)時(shí),第三個(gè)數(shù)碼管的 c 筆劃亮,通過(guò)掃描方式在

48、1/20 秒內(nèi)四個(gè)數(shù)碼管的筆劃該亮的都亮一次,由于視覺(jué)暫留,就會(huì)看到結(jié)果。本設(shè)計(jì)是通過(guò)三極管來(lái)驅(qū)動(dòng)數(shù)碼管顯示,當(dāng)基極電流很小時(shí),無(wú)論基極電流如何變化,集電極電流都接近為 0,集電極電流不隨基極電流而變化,也就是管子不導(dǎo)通;當(dāng)基極電流增大到一定值以后,集電極電流此后大于 0,且集電極電流隨著基極電流而變化,這是放大狀態(tài);當(dāng)基極電流繼續(xù)增大,達(dá)到一定值以后,集電極電流此后再也大不上去了,此后即便是基極電流再增加,集電極電流也不能增大,即飽和了。對(duì)于單片機(jī)端口通過(guò)晶體管驅(qū)動(dòng)負(fù)載的情況,無(wú)論負(fù)載是數(shù)碼管還是繼電器,晶體管都只能工作在截止?fàn)顟B(tài)或飽和狀態(tài),是不能工作在放大狀態(tài)的。本設(shè)計(jì)每個(gè)三極管負(fù)責(zé)一段,

49、最后那個(gè)三極管負(fù)責(zé)小數(shù)點(diǎn)位。當(dāng)置于低電平時(shí)才有效,每個(gè)數(shù)碼管都會(huì)顯示一個(gè)相同的數(shù)字,所以然后需把其他三個(gè)數(shù)碼管置高電平。通過(guò)這種方法就能把溫度測(cè)出來(lái)。數(shù)碼管連接如下圖 3.11 所示。 遼寧科技大學(xué)本科生畢業(yè)設(shè)計(jì) 第 18 頁(yè)圖 3.11 數(shù)碼管與單片機(jī)接口電路3.9 看門(mén)狗的原理在由單片機(jī)構(gòu)成的微型計(jì)算機(jī)系統(tǒng)中,由于單片機(jī)的工作常常會(huì)受到來(lái)自外界電磁場(chǎng)的干擾,造成程序的跑飛,而陷入死循環(huán),程序的正常運(yùn)行被打斷,由單片機(jī)控制的系統(tǒng)無(wú)法繼續(xù)工作,會(huì)造成整個(gè)系統(tǒng)的陷入停滯狀態(tài),發(fā)生不可預(yù)料的后果,所以出于對(duì)單片機(jī)運(yùn)行狀態(tài)進(jìn)行實(shí)時(shí)監(jiān)測(cè)的考慮,便產(chǎn)生了一種專(zhuān)門(mén)用于監(jiān)測(cè)單片機(jī)程序運(yùn)行狀態(tài)的芯片,俗稱(chēng)看門(mén)

50、狗??撮T(mén)狗電路電路的應(yīng)用,使單片機(jī)可以在無(wú)人狀態(tài)下實(shí)現(xiàn)連續(xù)工作,其工作原理是:看門(mén)狗芯片和單片機(jī)的一個(gè) i/o 引腳相連,該 i/o 引腳通過(guò)程序控制它定時(shí)地往看門(mén)狗的這個(gè)引腳上送入高電平(或低電平),這一程序語(yǔ)句是分散地放在單片機(jī)其他控制語(yǔ)句中間的,一旦單片機(jī)由于干擾造成程序跑飛后而陷入某一程序段不進(jìn)入死循環(huán)狀態(tài)時(shí),寫(xiě)看門(mén)狗引腳的程序便不能被執(zhí)行,這個(gè)時(shí)候,看門(mén)狗電路就會(huì)由于得不到單片 遼寧科技大學(xué)本科生畢業(yè)設(shè)計(jì) 第 19 頁(yè)機(jī)送來(lái)的信號(hào),便在它和單片機(jī)復(fù)位引腳相連的引腳上送出一個(gè)復(fù)位信號(hào),使單片機(jī)發(fā)生復(fù)位,即程序從程序存儲(chǔ)器的起始位置開(kāi)始執(zhí)行,這樣便實(shí)現(xiàn)了單片機(jī)的自動(dòng)復(fù)位。本設(shè)計(jì)采用 x2

51、5045 芯片的看門(mén)狗定時(shí)器功能,實(shí)現(xiàn)對(duì)系統(tǒng)進(jìn)行復(fù)位的??撮T(mén)狗定時(shí)器對(duì)微控制器提供了獨(dú)立的保護(hù)系統(tǒng)。它提供了三種定時(shí)時(shí)間,可用編程選擇200us、600us 和 6.4s,本設(shè)計(jì)采用 6.4s 對(duì)看門(mén)狗進(jìn)行監(jiān)測(cè)。在設(shè)定的時(shí)間內(nèi)如果沒(méi)有對(duì) x25045 進(jìn)行訪問(wèn),則看門(mén)狗以 reset 信號(hào)做輸出響應(yīng),即變?yōu)楦唠娖剑訒r(shí)約200ms 以后 reset 由高電平變位低電平,實(shí)現(xiàn)對(duì)系統(tǒng)進(jìn)行復(fù)位。復(fù)位電路的基本功能是:系統(tǒng)上電時(shí)提供復(fù)位信號(hào),直至系統(tǒng)電源穩(wěn)定后,撤銷(xiāo)復(fù)位信號(hào)。為可靠起見(jiàn),電源穩(wěn)定后還要經(jīng)一定的延時(shí)才撤銷(xiāo)復(fù)位信號(hào),以防電源開(kāi)關(guān)或電源插頭分-合過(guò)程中引起的抖動(dòng)而影響復(fù)位。圖 3.12 所示

52、的 rc 復(fù)位電路可以實(shí)現(xiàn)上述基本功能。圖 3.12 rc 復(fù)位電路3.10 晶振電路原理 晶振是晶體振蕩器的簡(jiǎn)稱(chēng),在電氣上它可以等效成一個(gè)電容和一個(gè)電阻并聯(lián)再串聯(lián)一個(gè)電容的二端網(wǎng)絡(luò),電工學(xué)上這個(gè)網(wǎng)絡(luò)有兩個(gè)諧振點(diǎn),以頻率的高低分其中較低的頻率是串聯(lián)諧振,較高的頻率是并聯(lián)諧振。由于晶體自身的特性致使這兩個(gè)頻率的距離相當(dāng)?shù)慕咏?,在這個(gè)極窄的頻率范圍內(nèi),晶振等效為一個(gè)電感,所以只要晶振的兩端并聯(lián)上合適的電容它就會(huì)組成并聯(lián)諧振電路。這個(gè)并聯(lián)諧振電路加到一個(gè)負(fù)反饋電路中就可以構(gòu)成正弦波振蕩電路,由于晶振等效為電感的頻率范圍很窄,所以即使其 遼寧科技大學(xué)本科生畢業(yè)設(shè)計(jì) 第 20 頁(yè)他元件的參數(shù)變化很大,這

53、個(gè)振蕩器的頻率也不會(huì)有很大的變化。 晶振有一個(gè)重要的參數(shù),那就是負(fù)載電容值,選擇與負(fù)載電容值相等的并聯(lián)電容,就可以得到晶振標(biāo)稱(chēng)的諧振頻率。 一般的晶振振蕩電路都是在一個(gè)反相放大器(注意是放大器不是反相器)的兩端接入晶振,再有兩個(gè)電容分別接到晶振的兩端,每個(gè)電容的另一端再接到地,這兩個(gè)電容串聯(lián)的容量值就應(yīng)該等于負(fù)載電容,請(qǐng)注意一般 ic 的引腳都有等效輸入電容,這個(gè)不能忽略。4 軟件設(shè)計(jì)4.1 工作方案簡(jiǎn)介程序處理是整個(gè)系統(tǒng)的關(guān)鍵,即簡(jiǎn)潔的硬件結(jié)構(gòu)是靠復(fù)雜的軟件來(lái)支持的。本設(shè)計(jì)采用的是基于 i2c 總線協(xié)議和單總線協(xié)議的溫度測(cè)控系統(tǒng)。系統(tǒng)上電復(fù)位后先處于停止?fàn)顟B(tài),等待輸入初始時(shí)間和報(bào)警溫度。顯示

54、器顯示輸入的時(shí)間和溫度;時(shí)間和報(bào)警溫度設(shè)定好后就可以按確定鍵啟動(dòng)系統(tǒng)工作了。溫度檢測(cè)系統(tǒng)不斷定時(shí)檢測(cè)當(dāng)前溫度,并送往顯示器顯示,達(dá)到報(bào)警值時(shí)啟動(dòng)報(bào)警電路報(bào)警。并顯示當(dāng)前時(shí)間;啟動(dòng)后不能再修改報(bào)警溫度,必須使電路復(fù)位回到初始狀態(tài)再重新設(shè)定報(bào)警溫度。 遼寧科技大學(xué)本科生畢業(yè)設(shè)計(jì) 第 21 頁(yè)4.2 主程序流程圖開(kāi)始各數(shù)據(jù)緩沖區(qū)、各標(biāo)志位初始化調(diào)用鍵盤(pán)管理子程序確定鍵閉合時(shí)返回調(diào)溫度檢測(cè)子程序當(dāng)前溫度檢測(cè)緩沖區(qū)調(diào)顯示子程序調(diào)報(bào)警子程序 遼寧科技大學(xué)本科生畢業(yè)設(shè)計(jì) 第 22 頁(yè)4.3 功能模塊根據(jù)上面對(duì)工作流程的分析,系統(tǒng)軟件可以分為以下幾個(gè)功能模塊:(1)溫度檢測(cè)及溫度值變換:由單總線溫度傳感器 d

55、s18b20 完成(2)時(shí)間的讀?。河删哂?i2c 總線協(xié)議的傳行實(shí)時(shí)時(shí)鐘 ds1338 完成(3)鍵盤(pán)管理:監(jiān)測(cè)鍵盤(pán)輸入,接收初始時(shí)間設(shè)置,接收?qǐng)?bào)警溫度設(shè)置,啟動(dòng)系統(tǒng)工作。(4)報(bào)警:當(dāng)檢測(cè)到的溫度超越報(bào)警溫度時(shí),蜂鳴器發(fā)出報(bào)警信號(hào)。 4.4 由 ds18b20 完成溫度檢測(cè)模塊運(yùn)用單總線協(xié)議(一線協(xié)議)構(gòu)建的單總線指令系統(tǒng)是單總線網(wǎng)絡(luò)運(yùn)行的軟件基礎(chǔ),典型的單總線指令序列如下:第一步 :初始化第二步 :rom 命令(跟隨需要交換的數(shù)據(jù))第三步 :功能命令(跟隨需要交換的數(shù)據(jù))每次訪問(wèn)單總線器件,必須嚴(yán)格遵守這個(gè)命令序列,如果出現(xiàn)序列混亂,則單總線器件不會(huì)響應(yīng)主機(jī)。但是,這個(gè)準(zhǔn)則對(duì)于搜索 ro

56、m 命令和報(bào)警搜索命令例外,在執(zhí)行兩者中的任何一條命令之后,主機(jī)不能執(zhí)行其后的功能命令,必須返回至第一步。(1) 初始化基于單總線上的所有傳輸過(guò)程都是以初始化開(kāi)始的,初始化過(guò)程由主機(jī)發(fā)出復(fù)位調(diào)時(shí)鐘程序訪問(wèn)看門(mén)狗子程序調(diào)顯示子程序圖 4.1 主程序流程圖 遼寧科技大學(xué)本科生畢業(yè)設(shè)計(jì) 第 23 頁(yè)脈沖和從機(jī)響應(yīng)的應(yīng)答脈沖組成。應(yīng)答脈沖使主機(jī)知道,總線上有從機(jī)設(shè)備,且準(zhǔn)備就緒。(2) rom 命令基于單總線上的所有傳輸過(guò)程都是以初始化開(kāi)始的,初始化過(guò)程由主機(jī)發(fā)出復(fù)位脈沖和從機(jī)響應(yīng)的應(yīng)答脈沖組成。應(yīng)答脈沖使主機(jī)知道,總線上有從機(jī)設(shè)備,且準(zhǔn)備就緒。在主機(jī)檢測(cè)到應(yīng)答脈沖后,就可以發(fā)送 rom 命令。這些命

57、令與各個(gè)從機(jī)設(shè)備的唯一的 64 位 rom 有關(guān)。這些命令還允許主機(jī)能檢測(cè)到總線上有多少個(gè)從機(jī)設(shè)備以及其設(shè)備類(lèi)型,或者有沒(méi)有設(shè)備處于報(bào)警狀態(tài)。從機(jī)設(shè)備可能支持 5 種 rom 命令(實(shí)際情況與具體型號(hào)有關(guān)),每種命令長(zhǎng)度為 8 位。主機(jī)在發(fā)出功能命令之前,必須送出合適的 rom 命令。具體的傳送 rom 命令格式如表 4.1 所示。表 4.1 ds18b20 的 rom 命令表指令說(shuō)明讀 rom 命令(33h)讀總線上 ds18b20 命令匹配 rom 命令(55h)對(duì)總線上 ds18b20 尋址跳過(guò) rom 命令(cch)該命令執(zhí)行后,將省去每次與 rom有關(guān)的操作搜索 rom 命令(f0h

58、)控制機(jī)識(shí)別總線上多個(gè)器件的 rom編碼報(bào)警搜索命令(ech)控制機(jī)搜索有報(bào)警的器件(3) 功能命令表 4.2 ds18b20 功能命令表注 釋 :在溫度轉(zhuǎn)換和復(fù)制暫存器數(shù)據(jù)至 eeprom 期間,主機(jī)必須在單總線上允許強(qiáng)上拉,并且在此期間,總線上不能進(jìn)行其它數(shù)據(jù)傳輸。通過(guò)發(fā)送復(fù)位脈沖,主機(jī)能夠在任何時(shí)候中斷數(shù)據(jù)傳輸。在復(fù)位脈沖發(fā)送以前,必須寫(xiě)入全部的三個(gè)字節(jié)。命令描述命令代碼發(fā)送命令后,單總線上的響應(yīng)信息注釋溫度轉(zhuǎn)換命令轉(zhuǎn)換溫度啟動(dòng)溫度轉(zhuǎn)換44h無(wú) 遼寧科技大學(xué)本科生畢業(yè)設(shè)計(jì) 第 24 頁(yè)存儲(chǔ)器命令讀暫存器讀出全部暫存器的內(nèi)容,包括 crc 字節(jié)behds18b20 傳輸多達(dá)9 字節(jié)至主機(jī)寫(xiě)

59、暫存器寫(xiě)暫存器第 2、3 和 4 個(gè)字節(jié)的數(shù)據(jù)(即 th、tl 和配置寄存器)4eh主機(jī)傳送 3 個(gè)字節(jié)的數(shù)據(jù)至 ds18b20復(fù)制暫存器將暫存器中的 th、tl 和配置字復(fù)制到 eeprom 中48h無(wú)回讀eeprom將 th、tl 和配置字從eeprom 中回讀至?xí)捍嫫髦衎8hds18b20 傳回讀狀態(tài)至主機(jī)主機(jī)發(fā)送 rom 指令,以訪問(wèn)某個(gè)指定的 ds18b20,接著就可以發(fā)送 ds18b20支持的某個(gè)功能命令。這些命令允許主機(jī)寫(xiě)入或讀出 ds18b20 暫存器、啟動(dòng)溫度轉(zhuǎn)換以及判斷從機(jī)的供電方式。ds18b20 的功能命令如表 4.2 所示。不同類(lèi)型的單總線芯片有不同的功能命令,也有的

60、芯片無(wú)功能命令(如可尋址開(kāi)關(guān)芯片 ds2405),在實(shí)際應(yīng)用中可根據(jù)設(shè)計(jì)的需要加以選擇。開(kāi)始調(diào)初始化子程序init_1820設(shè)置 rom 命令,調(diào)用寫(xiě)命令子程序 write_1820調(diào)用延時(shí)子程序(1 秒)設(shè)置讀數(shù)據(jù)命令 beh調(diào)用寫(xiě)命令子程序 write_1820調(diào)初始化子程序init_1820 遼寧科技大學(xué)本科生畢業(yè)設(shè)計(jì) 第 25 頁(yè)溫度檢測(cè)子程序:ds18b20 初始化程序:init_1820: setb p1.6; 總線置 1 nop clr p1.6; 總線置 0 mov r0,#250tsr1: djnz r0,tsr1 ; 延時(shí) 500us setb p1.6 mov r0,#3

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論