版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 目錄</b></p><p><b> 設(shè)計(jì)總說(shuō)明I</b></p><p> InstructionIII</p><p><b> 1 緒論1</b></p><p> 1.1 系統(tǒng)背景1</p><p>
2、; 1.2 系統(tǒng)概述1</p><p> 2 系統(tǒng)設(shè)計(jì)方案3</p><p> 2.1 系統(tǒng)各部分設(shè)計(jì)方案3</p><p> 2.1.1 主控制器部分3</p><p> 2.1.2 擴(kuò)展電路部分3</p><p> 2.1.3 人機(jī)界面部分6</p><p> 2.
3、2 系統(tǒng)設(shè)計(jì)總框圖8</p><p> 3 硬件電路設(shè)計(jì)9</p><p> 3.1 按鍵及鍵盤(pán)接口9</p><p> 3.2 DS1302實(shí)時(shí)時(shí)鐘10</p><p> 3.2.1 DS1302芯片簡(jiǎn)介10</p><p> 3.2.2 數(shù)字時(shí)鐘的硬件電路13</p><p
4、> 3.3 DS18B20數(shù)字溫度傳感器13</p><p> 3.3.1 DS18B20簡(jiǎn)介13</p><p> 3.3.2 DS18B20的硬件電路18</p><p> 3.4存儲(chǔ)模塊CSI24WC02電路19</p><p> 3.4.1 存儲(chǔ)器CSI24WC02簡(jiǎn)介19</p><p&
5、gt; 3.4.2 系統(tǒng)中CAT24WC02連接電路20</p><p> 3.5 LCD1602液晶顯示器20</p><p> 3.5.1 LCD1602簡(jiǎn)介20</p><p> 3.5.2 LCD1602硬件電路23</p><p> 4 軟件程序設(shè)計(jì)24</p><p> 4.1 獨(dú)立式
6、按鍵24</p><p> 4.2 DS1302實(shí)時(shí)時(shí)鐘25</p><p> 4.2.1 DS1302時(shí)序25</p><p> 4.2.2 DS1302程序26</p><p> 4.3 DS18B20數(shù)字溫度傳感器28</p><p> 4.3.1 DS18B20時(shí)序28</p>
7、<p> 4.3.2 DS18B20程序30</p><p> 4.4 存儲(chǔ)模塊CSI24WC0233</p><p> 4.4.1 I2C總線(xiàn)的定義及時(shí)序33</p><p> 4.4.2 CSI24WC02的程序設(shè)計(jì)34</p><p> 4.5 LCD1602液晶顯示器38</p><
8、;p> 4.5.1 LCD1602時(shí)序38</p><p> 4.5.2 LCD1602程序38</p><p> 5 系統(tǒng)的仿真與調(diào)試42</p><p> 5.1 各模塊的仿真調(diào)試42</p><p> 5.2 系統(tǒng)的仿真調(diào)試43</p><p><b> 6 參考文獻(xiàn)45&
9、lt;/b></p><p><b> 7 附錄46</b></p><p> 7.1 系統(tǒng)的整體原理圖46</p><p> 7.2 系統(tǒng)的程序流程圖47</p><p> 7.3 系統(tǒng)的整體程序47</p><p><b> 8 致謝65</b>
10、</p><p> 智能多點(diǎn)測(cè)溫系統(tǒng)的設(shè)計(jì)</p><p><b> 設(shè)計(jì)總說(shuō)明</b></p><p> 在電冰箱、空調(diào)機(jī)生產(chǎn)廠家的產(chǎn)品檢測(cè)中,需要同時(shí)檢測(cè)大量測(cè)點(diǎn)的溫度變化情況。而要如何快速準(zhǔn)確的測(cè)量這些溫度,就成了關(guān)鍵。作為一種高精度的數(shù)字網(wǎng)絡(luò)溫度傳感器,DS18B20可以很容易的用來(lái)建立傳感器網(wǎng)絡(luò),依靠這種特殊的單總線(xiàn)接口,DS1
11、8B20可以使傳感器網(wǎng)絡(luò)簡(jiǎn)單可靠。本文介紹了DS18B20在單片機(jī)控制下的應(yīng)用。</p><p> 本課題主要介紹基于AT89S52單片機(jī)和DS18B20數(shù)字溫度傳感器的多點(diǎn)溫度測(cè)量系統(tǒng)。該系統(tǒng)采用AT89S52單片機(jī)分別采集各個(gè)點(diǎn)的溫度,實(shí)現(xiàn)溫度顯示功能。它以AT89S52單片機(jī)作為主控芯片,采用數(shù)字溫度傳感器DS18B20S實(shí)現(xiàn)多路溫度的測(cè)量,測(cè)量精度可達(dá)到0.5℃。該系統(tǒng)采用LCD1602液晶顯示模塊,L
12、CD1602作為顯示器,可以形象直觀的顯示測(cè)出的溫度值。</p><p> 本文首先在緒論中介紹了此系統(tǒng)的背景及功能。第二章確定設(shè)計(jì)方案。第三章系統(tǒng)的論述了總體的設(shè)計(jì)過(guò)程,確定了技術(shù)指標(biāo)及器件的選擇并且描述了系統(tǒng)的硬件電路設(shè)計(jì),確定了技術(shù)指標(biāo)及器件的選擇,并且描述了所使用的各種芯片功能與特性。第四章重點(diǎn)剖析了軟件設(shè)計(jì)過(guò)程。第五章中具體論述了系統(tǒng)的調(diào)試步驟和應(yīng)注意的問(wèn)題?;贏T89S52單片機(jī)的單總線(xiàn)多點(diǎn)溫度測(cè)
13、控系統(tǒng)具有硬件組成簡(jiǎn)單、多點(diǎn)溫度檢測(cè)、讀數(shù)方便、精度高、測(cè)溫范圍廣等特點(diǎn),在實(shí)際工程中得出到了廣泛的應(yīng)用。</p><p> 1)在主控制器部分,我用的是AT89S52單片機(jī),它完全兼容51單片機(jī),是51單片機(jī)的升級(jí)版,軟件編程的自由度大,可通過(guò)編程實(shí)現(xiàn)各種各樣的算術(shù)算法和邏輯控制。而且體積小,硬件實(shí)現(xiàn)簡(jiǎn)單,安裝方便。</p><p> 2)在擴(kuò)展電路部分,我用到了數(shù)字溫度傳感芯片DS
14、18B20,實(shí)時(shí)時(shí)鐘芯片DS1302,和存儲(chǔ)芯片24C02。8個(gè)D18B20用來(lái)測(cè)量8個(gè)不同測(cè)溫點(diǎn)的溫度,實(shí)時(shí)時(shí)鐘芯片用來(lái)提供系統(tǒng)時(shí)間,24C02用來(lái)存儲(chǔ)必要的信息。本設(shè)計(jì)的一個(gè)突出點(diǎn)是DS18B20的并行連接。傳統(tǒng)的單總線(xiàn)上掛多個(gè)DS18B20,不僅耗時(shí),而且還需要必要的驅(qū)動(dòng)電流,給電路的設(shè)計(jì)和程序的設(shè)計(jì)帶來(lái)諸多不便。而本系統(tǒng)采用的并行連接,在理論上8個(gè)溫度轉(zhuǎn)換所消耗的時(shí)間和一個(gè)溫度轉(zhuǎn)換所消耗的時(shí)間是相同的。大大提高了系統(tǒng)的效率。 &
15、lt;/p><p> 3)在人機(jī)界面部分,顯示電路我用的是液晶顯示,如果采用數(shù)碼管顯示,需要比液晶更大的功率,同時(shí)因?yàn)橐@示的信息很多,也需要數(shù)量很多的數(shù)碼管,這樣會(huì)造成不必要的浪費(fèi)。按鍵電路中,我用的是獨(dú)立按鍵,因?yàn)閱纹瑱C(jī)有剩余的IO口,硬件電路簡(jiǎn)單,軟件編程也簡(jiǎn)單。如果采用矩陣式的鍵盤(pán),會(huì)增加軟件的復(fù)雜度,給系統(tǒng)設(shè)計(jì)帶來(lái)不便。</p><p> 通過(guò)以上的模塊部分的組合,最終實(shí)現(xiàn)了這個(gè)
16、完整的系統(tǒng)。從總體來(lái)看這個(gè)設(shè)計(jì)還是比較完善的,功能上也基本實(shí)現(xiàn)。當(dāng)然我的系統(tǒng)還存在著很多的不足,還有待進(jìn)一步的完善。</p><p> 關(guān)鍵詞:多點(diǎn)測(cè)溫;單片機(jī);數(shù)字溫度傳感器;液晶巡回顯示</p><p> Instruction</p><p> Sometimes, a large number of temperature changes of man
17、y measuring point, especially in the refrigerator, air conditioner manufacturer's product testing, need to be tested at the same time. And how to accurately measure the temperature is the key point. As a kind of high
18、-accuracy digital net temperature sensor, DS18B20 can be used building a sensor net easily. It can also make the net simple and reliable with its special 1-wire interface .This paper introduces the application of DS18B20
19、 with sin</p><p> The project mainly introduces the DS18B20 temperature sensor that based on multiple spot temperature measurement system and AT89S52 single chip. Use MCU AT89S52, the system can collect the
20、 temperature of all measuring points and prepare for display. Of course the MCU AT89S52 is used as a micro-control chip, and digital temperature sensor DS18B20 is used to testify the multi-channel temperature, It's m
21、easurement accuracy can reach 0.5℃. The display module is made up of LCD1602 modules. As a displ</p><p> Firstly, at the introduction section, this article introduces the backgrounds and the function of thi
22、s system. The second chapter established the design blueprint. The third chapter discusses the overall design process, and established the technical specifications, the choices of devices and the description of the hardw
23、are circuit design. At the same time describer the function and the attribution of micro-chip used in the system in the same chapter. The fourth chapter analyzes the software desi</p><p> 1) In the main con
24、troller part, I am using AT89S52 single chip microcomputer, fully compatible with 51 single chip microcomputer, it is an updated version of 51 single-chip microcomputer and the programming of it is freedom and big, and i
25、t can be programmed to achieve a variety of arithmetic and logic control algorithm. And small volume, simple hardware implementation, convenient installation makes it easy to use.</p><p> 2) In the extensio
26、n circuit part, I use the digital temperature sensor chip DS18B20, real time clock chip DS1302, and memory chips24C02. Eight D18B20 used to measure the temperature in the eight different temperature measuring point, real
27、-time clock chip used to provide the system time, 24C02 is used to store the necessary information. A prominent point of this design is DS18B20 in parallel connection. The traditional way is hanged multiple DS18B20 on a
28、single bus, it is not only time-consuming,</p><p> 3) In the part of man-machine interface, I use a liquid crystal 1602 to display. If using digital tube to display, it will need a bigger power than LCD, be
29、cause a lot of information to be displayed at the same time, it will also need a lot of number of digital tube, this will cause unnecessary waste. Key circuit, I was using a separate button, because MCU have the rest of
30、the I/O port, the hardware circuit is simple, and the software programming is simple. If using the matrix keyboard, it will i</p><p> Based on the above part of module combination is the complete system. Fr
31、om the overall, this project is relatively complete, and the function is almost also achieved. My system, of course, exist a lot of shortage, and remains to be further perfected.</p><p> Key words:multi-poi
32、nt temperature measure; digital thermometer; single chip processor; LCD back and forth display</p><p><b> 1 緒論</b></p><p><b> 1.1 系統(tǒng)背景</b></p><p> 在工、農(nóng)業(yè)生產(chǎn)
33、和日常生活中,對(duì)溫度的測(cè)量及控制占據(jù)著極其重要地位。首先讓我們了解一下多點(diǎn)溫度檢測(cè)系統(tǒng)在各個(gè)方面的應(yīng)用領(lǐng)域:消防電氣的非破壞性溫度檢測(cè),電力、電信設(shè)備之過(guò)熱故障預(yù)知檢測(cè),空調(diào)系統(tǒng)的溫度檢測(cè),各類(lèi)運(yùn)輸工具之組件的過(guò)熱檢測(cè),保全與監(jiān)視系統(tǒng)之應(yīng)用,醫(yī)療與健診的溫度測(cè)試,化工、機(jī)械等設(shè)備溫度過(guò)熱檢測(cè)。溫度檢測(cè)系統(tǒng)應(yīng)用十分廣闊。</p><p> 近年來(lái),由于集成電路芯片的技術(shù)進(jìn)步,單片機(jī)應(yīng)用系統(tǒng)越來(lái)越多的采用串行接口電
34、路進(jìn)行擴(kuò)展。這樣通常省去了專(zhuān)門(mén)的母版和插座,而直接用導(dǎo)線(xiàn)進(jìn)行器件連接,使系統(tǒng)的硬件設(shè)計(jì)簡(jiǎn)化,體積減小,可靠性提高。因此,采用串行總線(xiàn)擴(kuò)展方法是當(dāng)前單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)的流行趨勢(shì)。目前單片機(jī)常用的串行器件有:一線(xiàn)總線(xiàn)器件DS18B20溫度傳感器;二總線(xiàn)器件AT24CXX系列存儲(chǔ)器(屬于Inter IC Bus,即I2C總線(xiàn)器件);三線(xiàn)總線(xiàn)器件DS1302時(shí)鐘芯片及TLC5615 D/A轉(zhuǎn)換器和TLC549 A/D轉(zhuǎn)換器(屬于Serial P
35、eripheral Interface,即SPI總線(xiàn)器件)。</p><p> DALLAS公司的DS18B20數(shù)字溫度傳感器是“一線(xiàn)總線(xiàn)”的典型代表,DS18B20的溫度測(cè)量范圍為-55℃~+125℃,在-10℃~+85℃范圍內(nèi),精度為±0.5℃。采用一線(xiàn)總線(xiàn)傳輸,可以大大提高系統(tǒng)的抗干擾能力,所以DS18B20廣泛應(yīng)用于溫度采集及監(jiān)控領(lǐng)域。作為三線(xiàn)總線(xiàn)的代表,DS1302含有實(shí)時(shí)時(shí)鐘日歷和31 B
36、靜態(tài)RAM,與單片機(jī)之間采用3線(xiàn)同步串行方式通信,采用DS1302進(jìn)行計(jì)時(shí),一方面可以使系統(tǒng)具有良好的精度,同時(shí)還可以有效的減小單片機(jī)的負(fù)擔(dān)。</p><p><b> 1.2 系統(tǒng)概述</b></p><p> 在溫度測(cè)量模塊方面,本系統(tǒng)采用的是DS18B20多點(diǎn)并行測(cè)溫,與傳統(tǒng)的多點(diǎn)串行測(cè)溫相比較,具有以下特點(diǎn):可以省掉煩瑣的總線(xiàn)上器件序列號(hào)的查詢(xún)操作以節(jié)省時(shí)
37、間,并可節(jié)省大量的存儲(chǔ)空間(原用于存儲(chǔ)總線(xiàn)上器件的序列號(hào)所用的空間)。同時(shí)不需要外加驅(qū)動(dòng)電路增加單片機(jī)的驅(qū)動(dòng)電流。但是此方法是以消耗單片機(jī)的IO口為代價(jià)的,但是綜合來(lái)說(shuō),這樣做的益處是大于敝處的。</p><p> 在顯示方面,本系統(tǒng)采用的是1602液晶顯示,與傳統(tǒng)的數(shù)碼管電路相比較,減少了譯碼存儲(chǔ)所需的芯片,能夠很好的節(jié)省不必要的資源,同時(shí)液晶顯示集控制和驅(qū)動(dòng)于一體,易于驅(qū)動(dòng),可以循環(huán)顯示,可以自定義字符顯示
38、。</p><p> 在按鍵方面,有獨(dú)立按鍵和矩陣鍵盤(pán)按鍵兩種方式,獨(dú)立按鍵需要消耗很大程度的IO口,一般來(lái)說(shuō),一個(gè)獨(dú)立按鍵需要消耗一個(gè)IO口,而矩陣鍵盤(pán)可以很大程度的節(jié)省IO口,但是以編程的相對(duì)復(fù)雜為代價(jià)的,由于本系統(tǒng)所用的單片機(jī)IO口很少,還有很多剩余的IO口,所需的按鍵也很少,所以采用獨(dú)立按鍵,省去了編程的相對(duì)復(fù)雜性。此外,在消抖方面,采用的是軟件消抖。</p><p> 在時(shí)鐘
39、模塊方面,本系統(tǒng)采用的是DS1302,一方面可以使系統(tǒng)具有良好的精度,同時(shí)還可以有效的減小單片機(jī)的負(fù)擔(dān)。很好的滿(mǎn)足了設(shè)計(jì)要求。</p><p> 同時(shí),在數(shù)據(jù)存儲(chǔ)方面,本系統(tǒng)可以存儲(chǔ)必要的數(shù)據(jù),具有掉電保護(hù)的功能,采用24C02可以查詢(xún)近期存儲(chǔ)的2K的數(shù)據(jù),方便簡(jiǎn)潔。</p><p> 本系統(tǒng)的抗干擾性好、設(shè)計(jì)靈活、方便,而且適合于在惡劣的環(huán)境下進(jìn)行現(xiàn)場(chǎng)溫度測(cè)量。本系統(tǒng)可以應(yīng)用在大型工
40、業(yè)及民用常溫多點(diǎn)監(jiān)測(cè)場(chǎng)合,如糧食倉(cāng)儲(chǔ)系統(tǒng)、樓宇自動(dòng)化系統(tǒng)、溫控制程生產(chǎn)線(xiàn)之溫度影像檢測(cè)、醫(yī)療與健診的溫度測(cè)試、空調(diào)系統(tǒng)的溫度檢測(cè)、石化、機(jī)械等。</p><p><b> 2 系統(tǒng)設(shè)計(jì)方案</b></p><p> 溫度檢測(cè)系統(tǒng)有著共同的特點(diǎn):測(cè)量點(diǎn)多、環(huán)境復(fù)雜、布線(xiàn)分散、現(xiàn)場(chǎng)離監(jiān)控室遠(yuǎn)等。若采用一般溫度傳感器采集溫度信號(hào),則需要設(shè)計(jì)信號(hào)調(diào)理電路、A/D 轉(zhuǎn)換及相
41、應(yīng)的接口電路,才能把傳感器輸出的模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)送到計(jì)算機(jī)去處理。這樣,由于各種因素會(huì)造成檢測(cè)系統(tǒng)較大的偏差;又因?yàn)闄z測(cè)環(huán)境復(fù)雜、測(cè)量點(diǎn)多、信號(hào)傳輸距離遠(yuǎn)及各種干擾的影響,會(huì)使檢測(cè)系統(tǒng)的穩(wěn)定性和可靠性下降 。所以多點(diǎn)溫度檢測(cè)系統(tǒng)的設(shè)計(jì)的關(guān)鍵在于兩部分:溫度傳感器的選擇和主控單元的設(shè)計(jì)。溫度傳感器應(yīng)用范圍廣泛、使用數(shù)量龐大,也高居各類(lèi)傳感器之首。</p><p> 2.1 系統(tǒng)各部分設(shè)計(jì)方案</p&g
42、t;<p> 2.1.1 主控制器部分</p><p> 主控制器部分有兩種方案,以下分別對(duì)這兩種方案做了分析,選擇了簡(jiǎn)潔方便的方案二。</p><p><b> 方案一:</b></p><p> 此方案采用PC機(jī)實(shí)現(xiàn)。它可在線(xiàn)編程,可在線(xiàn)仿真的功能,這讓調(diào)試變得方便。且人機(jī)交互友好。但是PC機(jī)輸出信號(hào)不能直接與DS18
43、B20通信。需要通過(guò)RS232電平轉(zhuǎn)換兼容,硬件的合成在線(xiàn)調(diào)試,較為繁瑣,很不簡(jiǎn)便。而且在一些環(huán)境比較惡劣的場(chǎng)合,PC機(jī)的體積大,攜帶安裝不方便,性能不穩(wěn)定,給工程帶來(lái)很多麻煩!</p><p><b> 方案二:</b></p><p> 此方案采用AT89S52 8-bit單片機(jī)實(shí)現(xiàn)。單片機(jī)軟件編程的自由度大,可通過(guò)編程實(shí)現(xiàn)各種各樣的算術(shù)算法和邏輯控制。而且體
44、積小,硬件實(shí)現(xiàn)簡(jiǎn)單,安裝方便。既可以單獨(dú)對(duì)多DS18B20控制工作,還可以與PC機(jī)通信。運(yùn)用主從分布式思想,由一臺(tái)上位機(jī)(PC微型計(jì)算機(jī)),下位機(jī)(單片機(jī))多點(diǎn)溫度數(shù)據(jù)采集,組成兩級(jí)分布式多點(diǎn)溫度測(cè)量的巡回檢測(cè)系統(tǒng),實(shí)現(xiàn)遠(yuǎn)程控制。另外AT89S52在工業(yè)控制上也有著廣泛的應(yīng)用,編程技術(shù)及外圍功能電路的配合使用都很成熟。</p><p> 2.1.2 擴(kuò)展電路部分</p><p> 溫度
45、傳感器電路模塊,有三種方案可供選擇,分別如下:</p><p><b> 方案一:</b></p><p> 采用熱敏電阻,可滿(mǎn)足40攝氏度至90攝氏度測(cè)量范圍,但熱敏電阻精度、重復(fù)性、可靠性較差,對(duì)于檢測(cè)1攝氏度的信號(hào)是不適用的。而且在溫度測(cè)量系統(tǒng)中,采用單片溫度傳感器,比如AD590,LM35等。但這些芯片輸出的都是模擬信號(hào),必須經(jīng)過(guò)A/D轉(zhuǎn)換后才能送給計(jì)算機(jī)
46、,這樣就使得測(cè)溫裝置的結(jié)構(gòu)較復(fù)雜。另外,這種測(cè)溫裝置的一根線(xiàn)上只能掛一個(gè)傳感器,不能進(jìn)行多點(diǎn)測(cè)量。即使能實(shí)現(xiàn),也要用到復(fù)雜的算法,一定程度上也增加了軟件實(shí)現(xiàn)的難度。</p><p><b> 方案二:</b></p><p> 在MCU的一個(gè)IO口連接多個(gè)DS18B20,如圖2.1:</p><p> 圖2.1 DS18B20串行接法&
47、lt;/p><p> 這種方法雖然可以但是響應(yīng)速度很慢,對(duì)于實(shí)時(shí)性要求很高的場(chǎng)合,顯然不適用。響應(yīng)慢的原因如下:</p><p> 在一線(xiàn)制總線(xiàn)上串接多個(gè)DS18B20器件時(shí),實(shí)現(xiàn)對(duì)其中一個(gè)DS18B20器件進(jìn)行一次溫度轉(zhuǎn)換和讀取操作主要包括以下13個(gè)步驟(所有的操作都是通過(guò)DQ線(xiàn)進(jìn)行信號(hào)傳輸?shù)模?lt;/p><p> ?、僦鳈C(jī)MCU發(fā)復(fù)位脈沖</p>
48、<p> ?、贒S18B20發(fā)應(yīng)答脈沖(即MCU接收該應(yīng)答信號(hào),以確認(rèn)器件在總線(xiàn)上)</p><p> ?、壑鳈C(jī)發(fā)匹配ROM命令</p><p> ?、苤鳈C(jī)發(fā)64位器件序列號(hào)(器件序列號(hào)與總線(xiàn)上的某個(gè)DS18B20器件一一對(duì)應(yīng))</p><p> ⑤主機(jī)發(fā)溫度轉(zhuǎn)換指令</p><p> ?、蘅偩€(xiàn)保持高電平50ms</p>
49、;<p><b> ?、咧鳈C(jī)發(fā)復(fù)位命令</b></p><p> ⑧DS18B20發(fā)應(yīng)答脈沖</p><p> ?、嶂鳈C(jī)發(fā)匹配ROM命令</p><p> ⑩ 主機(jī)發(fā)64位器件代碼</p><p> ? 主機(jī)發(fā)讀數(shù)據(jù)寄存器指令</p><p><b&g
50、t; ?主機(jī)接收數(shù)據(jù)</b></p><p><b> ?主機(jī)發(fā)復(fù)位脈沖</b></p><p> 參考DS18B20的數(shù)據(jù)手冊(cè)可知,當(dāng)DS18B20的精度設(shè)置為12位精度表示時(shí),依據(jù)上面的步驟完成對(duì)一個(gè)器件的測(cè)溫、讀取溫度值的過(guò)程,大概會(huì)消耗掉1秒鐘的時(shí)間。而如果總線(xiàn)上存在8個(gè)DS18B20器件的話(huà),完成一次8個(gè)器件的查詢(xún)需要8秒的時(shí)間,這不還沒(méi)計(jì)
51、算在系統(tǒng)初始化時(shí),對(duì)總線(xiàn)上的器件序列號(hào)進(jìn)行初始化過(guò)程所消耗的時(shí)間。如前所述,可以總結(jié)出,影響查詢(xún)多點(diǎn)DS18B20溫度速度的最主要因素有如下幾個(gè):</p><p> 每次操作都需要附加兩次對(duì)64位序列號(hào)的匹配過(guò)程;</p><p> ?、诙鄠€(gè)器件串接,完成全部的查詢(xún)就需要與器件個(gè)數(shù)成倍增長(zhǎng)的耗時(shí)。這樣的應(yīng)用在一些對(duì)實(shí)時(shí)性要求相對(duì)較高的系統(tǒng)當(dāng)中,是非常占用資源的(雖然省掉了端口資源,但CP
52、U不得不等待N長(zhǎng)時(shí)間后方可獲取多點(diǎn)的溫度值),所以使用起來(lái)總會(huì)有些遺憾。</p><p> 圖2.2 DS18B20并行接法</p><p> 此外,由于寄生電源的作用,電路會(huì)在 IO或VDD引腳處于高電平時(shí)“偷”能量。進(jìn)行溫度轉(zhuǎn)換期間,IO要提供足夠的能量。由于DS18B20的工作電流達(dá)到 1mA所以?xún)H靠5K的上拉電阻提供電源是不行的, 尤其是當(dāng)幾只DS18B20掛在同一根IO線(xiàn)上
53、并同時(shí)想進(jìn)行溫度轉(zhuǎn)換時(shí),這個(gè)問(wèn)題變得更加尖銳,更加需要提供很強(qiáng)的驅(qū)動(dòng)電流。</p><p><b> 方案三:</b></p><p> 仍然是采用DS18B20數(shù)字溫度傳感器,由原來(lái)的一個(gè)IO端口掛多個(gè)DS18B20改為一個(gè)端口掛一個(gè)DS18B20。如圖2.2。</p><p> DS18B20的一線(xiàn)制總線(xiàn)在時(shí)序上的嚴(yán)格要求,也從另一方
54、面意味著在一定的彈性范圍內(nèi),不同DS18B20器件的時(shí)序細(xì)節(jié)上的一致性應(yīng)該是非常好,所以可以將系統(tǒng)設(shè)計(jì)成利用MCU的并行端口同時(shí)對(duì)多個(gè)DS18B20進(jìn)行統(tǒng)一的操作,不過(guò)這時(shí)候并行端口上的每一個(gè)端口連接著一個(gè)DS18B20器件而已。由于DS18B20的特征,當(dāng)一線(xiàn)制總線(xiàn)上僅有一個(gè)DS18B20器件時(shí),可以用skip ROM操作(即跳過(guò)ROM匹配)命令來(lái)代替64位序列號(hào)的匹配過(guò)程,這點(diǎn)也是使用單個(gè)DS18B20器件的系統(tǒng)常用的方法。這個(gè)方案
55、正是以端口的消耗為代價(jià),換取對(duì)多點(diǎn)DS18B20溫度查詢(xún)的速度,并在程序結(jié)構(gòu)的設(shè)計(jì)上采用一些巧妙的處理方法,使得系統(tǒng)對(duì)DS18B20的操作上花更少的時(shí)間。</p><p> 2.1.3 人機(jī)界面部分</p><p> 對(duì)于按鍵接口有兩個(gè)設(shè)計(jì)方案:</p><p><b> 方案一:</b></p><p> 矩陣
56、式鍵盤(pán),矩陣式鍵盤(pán)采用行列式結(jié)構(gòu),按鍵設(shè)置在行列的交點(diǎn)上,當(dāng)口線(xiàn)數(shù)量為8時(shí),可以將4根口線(xiàn)定義為行線(xiàn),4根口線(xiàn)定義為列線(xiàn),形成4×4鍵盤(pán),可以配置16個(gè)鍵。矩陣式鍵盤(pán)的掃描方法有兩種,一是逐行掃描,二是線(xiàn)反轉(zhuǎn)法。矩陣鍵盤(pán)的程序設(shè)計(jì)相對(duì)比較復(fù)雜,但是可以節(jié)約IO口,所以在IO口資源不夠用的時(shí)候可以選擇矩陣式鍵盤(pán)來(lái)作為按鍵輸入。</p><p><b> 方案二:</b></p
57、><p> 獨(dú)立式按鍵,獨(dú)立式按鍵就是各個(gè)按鍵相互獨(dú)立,每個(gè)按鍵單獨(dú)占用一個(gè)IO口線(xiàn),每根IO口線(xiàn)的按鍵工作不會(huì)影響到其他IO口線(xiàn)上的工作狀態(tài),因此通過(guò)檢測(cè)輸入線(xiàn)的電平狀態(tài)可以很容易判斷那個(gè)按鍵被按下了,獨(dú)立式按鍵的接口電路配置靈活,軟件結(jié)構(gòu)簡(jiǎn)單,但每個(gè)按鍵需要占用一個(gè)IO口,在按鍵數(shù)量較多時(shí),IO口浪費(fèi)大,因此獨(dú)立式按鍵用于按鍵較少或操作速度較高的場(chǎng)合。在單片機(jī)應(yīng)用系統(tǒng)中,通常將按鍵開(kāi)關(guān)和撥碼開(kāi)關(guān)作為簡(jiǎn)單的輸入設(shè)
58、備,按鍵開(kāi)關(guān)主要用于進(jìn)行某項(xiàng)工作的開(kāi)始或結(jié)束命令,而撥碼開(kāi)關(guān)主要用于工作狀態(tài)的預(yù)置和設(shè)定。本系統(tǒng)比較簡(jiǎn)單,按鍵數(shù)量也不是很多,占用的IO口不多,所以在DS1302的調(diào)時(shí)模塊,采用獨(dú)立式按鍵,在DS18B20顯示模塊,由于涉及溫度的設(shè)定觀察,所以采用撥碼開(kāi)關(guān)比較好。</p><p> 對(duì)于顯示模塊,有兩個(gè)設(shè)計(jì)方案:</p><p><b> 方案一:</b><
59、/p><p> 采用數(shù)碼管顯示電路。這種方法數(shù)碼管是一種顯示屏,可以通過(guò)對(duì)其不同的管腳輸入相對(duì)的電流 并使其發(fā)亮,發(fā)光從而顯示出數(shù)字能夠顯示出時(shí)間、日期、溫度 等所有可用數(shù)字表示的參數(shù)由于它的價(jià)格便宜,使用簡(jiǎn)單,在電器,特別是家電領(lǐng)域應(yīng)用極為廣泛。在空調(diào),熱水器,冰箱,等等絕大多數(shù),熱水器用的都是數(shù)碼管,其他家電 也用液晶屏與,熒光屏等等。有三個(gè)特點(diǎn):1)堅(jiān)固耐用2)高節(jié)能3)壽命長(zhǎng)。但是它的耗電還是比液晶要高,當(dāng)
60、要顯示的位數(shù)過(guò)多時(shí),動(dòng)態(tài)顯示雖然節(jié)省IO口,但是其穩(wěn)定度不如靜態(tài)顯示方式。而且在顯示位數(shù)較多時(shí)CPU要輪番掃描,占用CPU較多的時(shí)間。同時(shí),數(shù)碼管只能顯示簡(jiǎn)單的數(shù)字字母,有的英文字母,比方說(shuō)“X”就很難顯示,并且,數(shù)碼管也需要譯碼電路,加上本系統(tǒng)要顯示的位數(shù)很多,既有時(shí)間的顯示,又有溫度的顯示,必要的時(shí)候溫度還是循環(huán)顯示,需要較多的數(shù)碼管,比較浪費(fèi)成本 。所以本系統(tǒng)不選用數(shù)碼管顯示。</p><p><b&
61、gt; 方案二:</b></p><p> 采用液晶顯示:而液晶分為1601,1602,12864液晶顯示,1601是單行16字顯示,1602是兩行16字的顯示,12864可以顯示8×4 行16×16 點(diǎn)陣的漢字和字符,由于本系統(tǒng)需要循環(huán)顯示8個(gè)測(cè)溫端的溫度,同時(shí)需要顯示時(shí)間,采用1601不能實(shí)現(xiàn),采用12864造成顯示屏和成本的浪費(fèi),所以本系統(tǒng)采用1602液晶。和數(shù)碼管顯示模
62、塊相比之下,它有的優(yōu)點(diǎn)是:1)位數(shù)多,可以顯示32位,而32個(gè)數(shù)碼管體積相當(dāng)龐大;2)顯示內(nèi)容豐富,可顯示所有數(shù)字和大、小寫(xiě)字母;3)程序簡(jiǎn)單,如果用數(shù)碼管動(dòng)態(tài)顯示,會(huì)占用很多時(shí)間來(lái)刷新顯示,而1602自動(dòng)完成此功能。1602液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了不同的點(diǎn)陣字符圖形,這些字符有,阿拉伯?dāng)?shù)字、英文字母的大小寫(xiě)、常用的符號(hào)等,每一個(gè)字符都有一個(gè)固定的代碼,其中數(shù)字與字母同ASCII碼兼容。</p>
63、<p> 2.2 系統(tǒng)設(shè)計(jì)總框圖</p><p> 經(jīng)過(guò)上述方案的分析,系統(tǒng)設(shè)計(jì)的總框圖如下圖2.3:</p><p> 圖2.3 系統(tǒng)設(shè)計(jì)總框圖</p><p><b> 3 硬件電路設(shè)計(jì)</b></p><p> 3.1 按鍵及鍵盤(pán)接口</p><p> 獨(dú)立按鍵分為
64、按鍵開(kāi)關(guān)和撥碼開(kāi)關(guān)兩種,DS1302選用按鍵開(kāi)關(guān)來(lái)調(diào)節(jié)校準(zhǔn)時(shí)間,但是按鍵開(kāi)關(guān)在閉合斷開(kāi)時(shí),觸點(diǎn)會(huì)存在抖動(dòng)現(xiàn)象,按鍵的抖動(dòng)現(xiàn)象如下圖3.1所示:</p><p> 圖3.1 按鍵的抖動(dòng)現(xiàn)象</p><p> 按鍵的抖動(dòng)時(shí)間一般為10ms左右,抖動(dòng)會(huì)產(chǎn)生一次按鍵多次處理的問(wèn)題,應(yīng)該采取措施消除抖動(dòng)的影響。單個(gè)按鍵可以使用硬件進(jìn)行消抖,如電容的充放電電路。當(dāng)有多個(gè)按鍵時(shí),采用硬件消抖會(huì)增加
65、設(shè)計(jì)的成本,造成資源的浪費(fèi),所以宜采用軟件延時(shí)消抖,軟件延時(shí)消抖是檢測(cè)到有按鍵按下時(shí),先延時(shí)10ms,然后再檢測(cè)按鍵的狀態(tài),若是扔閉合則確定為按鍵的按下,然后執(zhí)行確定的操作。</p><p> 本系統(tǒng)所使用的是軟件的延時(shí)消抖,DS1302的調(diào)時(shí)按鍵開(kāi)關(guān)連接如下圖3.2:</p><p> 圖3.2 DS1302的調(diào)時(shí)按鍵開(kāi)關(guān)連接</p><p> DS18B
66、20溫度顯示模塊選用的是撥碼開(kāi)關(guān),用以檢測(cè)不同測(cè)溫點(diǎn)的溫度,連接圖如下圖3.3:</p><p> 圖3.3 DS18B20溫度顯示模塊的撥碼開(kāi)關(guān)</p><p> 3.2 DS1302實(shí)時(shí)時(shí)鐘</p><p> 3.2.1 DS1302芯片簡(jiǎn)介</p><p> DS1302 是DALLAS 公司推出的涓流充電時(shí)鐘芯片,內(nèi)含有一個(gè)
67、實(shí)時(shí)時(shí)鐘/日歷和31 字節(jié)靜態(tài)RAM,通過(guò)簡(jiǎn)單的串行接口與單片機(jī)進(jìn)行通信實(shí)時(shí)時(shí)鐘/日歷電路。提供秒、分、時(shí)、日、周、月、年的信息,每月的天數(shù)和閏年的天數(shù)可自動(dòng)調(diào)整時(shí)鐘操作可通過(guò)AM/PM 指示決定采用24或12小時(shí)的格式。DS1302 與單片機(jī)之間能簡(jiǎn)單地采用同步串行的方式進(jìn)行通信,僅需用到三個(gè)口線(xiàn):一是 RES 復(fù)位,二是I/O 數(shù)據(jù)線(xiàn),三是SCLK串行時(shí)鐘。時(shí)鐘/RAM 的讀/寫(xiě)數(shù)據(jù)以一個(gè)字節(jié)或多達(dá)31 個(gè)字節(jié)的字符組方式通信。DS
68、1302 工作時(shí)功耗很低,保持?jǐn)?shù)據(jù)和時(shí)鐘信息時(shí)功率小于1mW。DS1302 是由DS1202 改進(jìn)而來(lái),增加了以下的特性。雙電源管腳用于主電源和備份電源供應(yīng)Vcc1,為可編程涓流充電電源附加七個(gè)字節(jié)存儲(chǔ)器。它廣泛應(yīng)用于電話(huà)傳真便攜式儀器以及電池供電的儀器儀表等產(chǎn)品領(lǐng)域。DS1302的引腳功能排列及描述如下圖3.4所示:</p><p> 圖3.4 DS1302的引腳排列圖</p><p&g
69、t;<b> 各引腳的功能為:</b></p><p> Vcc1:主電源;Vcc2:備份電源。當(dāng)Vcc2>Vcc1+0.2V時(shí),由Vcc2向DS1302供電,當(dāng)Vcc2< Vcc1時(shí),由Vcc1向DS1302供電。SCLK:串行時(shí)鐘,輸入,控制數(shù)據(jù)的輸入與輸出。I/O:三線(xiàn)接口時(shí)的雙向數(shù)據(jù)線(xiàn)。RST:輸入信號(hào),在讀、寫(xiě)數(shù)據(jù)期間,必須為高。該引腳有兩個(gè)功能:第一,RST開(kāi)始控
70、制字訪(fǎng)問(wèn)移位寄存器的控制邏輯;其次,RST提供結(jié)束單字節(jié)或多字節(jié)數(shù)據(jù)傳輸?shù)姆椒ā?lt;/p><p> DS1302有下列幾組寄存器:</p><p> ① DS1302有關(guān)日歷、時(shí)間的寄存器。此類(lèi)寄存器共有12個(gè),其中有7個(gè)寄存器(讀時(shí)81h~8Dh,寫(xiě)時(shí)80h~8Ch),存放的數(shù)據(jù)格式為BCD碼形式,如表3.1所示:</p><p> 表3.1 DS1302
71、有關(guān)日歷、時(shí)間的寄存器</p><p> 小時(shí)寄存器(85h、84h)的位7用于定義DS1302是運(yùn)行于12小時(shí)模式還是24小時(shí)模式。當(dāng)為高時(shí),選擇12小時(shí)模式。在12小時(shí)模式時(shí),位5是 ,當(dāng)為1時(shí),表示PM。在24小時(shí)模式時(shí),位5是第二個(gè)10小時(shí)位。</p><p> 秒寄存器(81h、80h)的位7定義為時(shí)鐘暫停標(biāo)志(CH)。當(dāng)該位置為1時(shí),時(shí)鐘振蕩器停止,DS1302處于低功耗狀
72、態(tài);當(dāng)該位置為0時(shí),時(shí)鐘開(kāi)始運(yùn)行。</p><p> 控制寄存器(8Fh、8Eh)的位7是寫(xiě)保護(hù)位(WP),其它7位均置為0。在任何的對(duì)時(shí)鐘和RAM的寫(xiě)操作之前,WP位必須為0。當(dāng)WP位為1時(shí),寫(xiě)保護(hù)位防止對(duì)任一寄存器的寫(xiě)操作。</p><p> ?、贒S1302有關(guān)RAM的地址</p><p> DS1302中附加31字節(jié)靜態(tài)RAM的地址如表3.2所示:<
73、;/p><p> 表3.2 RAM地址寄存器</p><p> ?、?DS1302的工作模式寄存器</p><p> 所謂突發(fā)模式是指一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)和RAM數(shù)據(jù)。突發(fā)模式寄存器如表3.3所示:</p><p> 表3.3 DS1302工作模式寄存器</p><p> ④此外,DS1302還有充電寄存
74、器等。</p><p> DS1302是SPI總線(xiàn)驅(qū)動(dòng)方式。它不僅要向寄存器寫(xiě)入控制字,還需要讀取相應(yīng)寄存器的數(shù)據(jù)。要想與DS1302通信,首先要先了解DS1302的控制字。DS1302的控制字如表3.4??刂谱值淖罡哂行唬ㄎ?)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫(xiě)入到DS1302中。</p><p> 位6:如果為0,則表示存取日歷時(shí)鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);</p
75、><p> 位5至位1(A4~A0):指示操作單元的地址;</p><p> 位0(最低有效位):如為0,表示要進(jìn)行寫(xiě)操作,為1表示進(jìn)行讀操作。</p><p> 控制字總是從最低位開(kāi)始輸出。在控制字指令輸入后的下一個(gè)SCLK時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫(xiě)入DS1302,數(shù)據(jù)輸入從最低位(0位)開(kāi)始。同樣,在緊跟8位的控制字指令后的下一個(gè)SCLK脈沖的下降沿,讀出DS1
76、302的數(shù)據(jù),讀出的數(shù)據(jù)也是從最低位到最高位。</p><p> 表3.4 DS1302的控制字(即地址及命令字節(jié))</p><p> 3.2.2 數(shù)字時(shí)鐘的硬件電路</p><p> DS1302數(shù)字時(shí)鐘在本系統(tǒng)中的硬件連接電路如圖3.5所示:其中,S1用來(lái)開(kāi)啟外部中斷,以讀取EEPROM存取的數(shù)據(jù)。S2和S3分別用來(lái)設(shè)置時(shí)鐘的時(shí)和分,以進(jìn)行時(shí)鐘的調(diào)時(shí)。&
77、lt;/p><p> 圖3.5 DS1302的連接電路</p><p> 3.3 DS18B20數(shù)字溫度傳感器</p><p> 3.3.1 DS18B20簡(jiǎn)介</p><p> DS18B20是DALLAS公司生產(chǎn)的單線(xiàn)式數(shù)字溫度傳感器,具有3引腳TO-92小體積封裝形式。測(cè)溫分辨率可達(dá)0.0625℃,被測(cè)溫度用符號(hào)擴(kuò)展的16位數(shù)字量
78、方式串行輸出。其工作電源既可在遠(yuǎn)端引入,也可采用寄生電源方式產(chǎn)生。CPU只需一根端口線(xiàn)就能與諸多DS18B20通信,占用微處理器的端口較少,可節(jié)省大量的引線(xiàn)和邏輯電路。</p><p> DS18B20支持“一線(xiàn)總線(xiàn)”接口,測(cè)量溫度范圍為 -55°C~+125°C,在-10~+85°C范圍內(nèi),精度為±0.5°C。現(xiàn)場(chǎng)溫度直接以“一線(xiàn)總線(xiàn)”的數(shù)字方式傳輸,大大提高
79、了系統(tǒng)的抗干擾性。適合于惡劣環(huán)境的現(xiàn)場(chǎng)溫度測(cè)量,如:環(huán)境控制、設(shè)備或過(guò)程控制、測(cè)溫類(lèi)消費(fèi)電子產(chǎn)品等。</p><p> DS18B20內(nèi)部結(jié)構(gòu)</p><p> ?。?) DS18B20的內(nèi)部結(jié)構(gòu)如下圖3.6所示。</p><p> 圖3.6 DS18B20內(nèi)部結(jié)構(gòu)原理圖</p><p> DS18B20有4個(gè)主要的數(shù)據(jù)部件:<
80、/p><p> ① 64位激光ROM。64位激光ROM從高位到低位依次為8位CRC、48位序列號(hào)和8位家族代碼(28H)組成。光刻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è)
81、DS18B20都各不相同,這樣就可以實(shí)現(xiàn)一根總線(xiàn)上掛接多個(gè)DS18B20的目的。</p><p> ?、?溫度靈敏元件。DS18B20中的溫度傳感器可完成對(duì)溫度的測(cè)量,以12位轉(zhuǎn)化為例:用16位符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供,以 0.0625℃/LSB形式表達(dá),其中S為符號(hào)位。如下表3.5所示:</p><p> 表3.5 12位的DS18B20溫度值格式表</p>&
82、lt;p> 這是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ù)字輸出為
83、FC90H 。下面表3.6給出了典型的溫度值對(duì)應(yīng)表:</p><p> 表3.6 典型的溫度值對(duì)應(yīng)表</p><p> ③ DS18B20溫度傳感器的存儲(chǔ)器 DS18B20溫度傳感器的內(nèi)部存儲(chǔ)器包括一個(gè)高速暫存RAM和一個(gè)非易失性的可電擦除的EEPRAM,后者存放高溫度和低溫度觸發(fā)器 TH、TL和結(jié)構(gòu)寄存器。非易失性溫度報(bào)警觸發(fā)器TH和TL,可通過(guò)軟件寫(xiě)入用戶(hù)報(bào)警上下限值。</
84、p><p> ?、?配置寄存器。配置寄存器為高速暫存存儲(chǔ)器中的第五個(gè)字節(jié)。DS18B20在0工作時(shí)按此寄存器中的分辨率將溫度轉(zhuǎn)換成相應(yīng)精度的數(shù)值,其各位定義如表3.7所示:</p><p> 表3.7 配置寄存器結(jié)構(gòu)</p><p> 其中,TM:測(cè)試模式標(biāo)志位,出廠時(shí)被寫(xiě)入0,不能改變;R0、R1:溫度計(jì)分辨率設(shè)置位,其對(duì)應(yīng)四種分辨率如下表3.8所列,出廠時(shí)R0
85、、R1置為缺省值:R0=1,R1=1(即12位分辨率),用戶(hù)可根據(jù)需要改寫(xiě)配置寄存器以獲得合適的分辨率。</p><p> 表3.8 配置寄存器與分辨率關(guān)系表 :</p><p> (2) 高速暫存存儲(chǔ)器</p><p> 高速暫存存儲(chǔ)器由9個(gè)字節(jié)組成,其分配如下表3.9所示。當(dāng)溫度轉(zhuǎn)換命令發(fā)布后,經(jīng)轉(zhuǎn)換所得的溫度值以二字節(jié)補(bǔ)碼形式存放在高速暫存存儲(chǔ)器的第0
86、和第1個(gè)字節(jié)。單片機(jī)可通過(guò)單線(xiàn)接口讀到該數(shù)據(jù),讀取時(shí)低位在前,高位在后,數(shù)據(jù)格式如表。對(duì)應(yīng)的溫度計(jì)算:當(dāng)符號(hào)位S=0時(shí),直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)S=1時(shí),先將補(bǔ)碼變?yōu)樵a,再計(jì)算十進(jìn)制值。表3.9是對(duì)應(yīng)的一部分溫度值,第九個(gè)字節(jié)是冗余檢驗(yàn)字節(jié)。</p><p> 根據(jù)DS18B20的通訊協(xié)議,主機(jī)(單片機(jī))控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過(guò)三個(gè)步驟:每一次讀寫(xiě)之前都要對(duì)DS18B20進(jìn)行 復(fù)位操作,復(fù)
87、位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對(duì)DS18B20進(jìn)行預(yù)定的操作。復(fù)位要求主CPU將數(shù)據(jù)線(xiàn)下拉500微秒,然后 釋放,當(dāng)DS18B20收到信號(hào)后等待16~60微秒左右,后發(fā)出60~240微秒的存在低脈沖,主CPU收到此信號(hào)表示復(fù)位成功。下表3.10和表3.11給出了ROM指令和RAM指令。</p><p> 表3.9 DS18B20暫存寄存器分布</p><p>
88、 表3.10 ROM指令表</p><p> 表3.11 RAM指令表</p><p> DS18B20最大的特點(diǎn)是單總線(xiàn)數(shù)據(jù)傳輸方式,DS18B20的數(shù)據(jù)I/O均由同一條線(xiàn)來(lái)完成。硬件連接電路如下圖3.7:</p><p> 圖3.7 常用的DS18B20多點(diǎn)測(cè)溫系統(tǒng)</p><p> 本系統(tǒng)為常用的多點(diǎn)溫度測(cè)試,DS18B
89、20采用外部供電方式,理論上可以在一根數(shù)據(jù)總線(xiàn)上掛256個(gè)DS18B20,但實(shí)踐應(yīng)用中發(fā)現(xiàn),如果掛接25個(gè)以上的DS18B20仍舊有可能產(chǎn)生功耗問(wèn)題。為了提高驅(qū)動(dòng)能力,在實(shí)際應(yīng)用中還可以使用一個(gè)MOSFET將I/O口線(xiàn)直接和電源相連,起到上拉的作用。另外單總線(xiàn)長(zhǎng)度也不宜超過(guò)80M,否則也會(huì)影響到數(shù)據(jù)的傳輸。所以本系統(tǒng)采用并口的方式,用單片機(jī)的多個(gè)I/O來(lái)驅(qū)動(dòng)多路DS18B20。系統(tǒng)的硬件連接如下小節(jié)的圖3.8。對(duì)DS18B20的設(shè)計(jì),需
90、要注意以下問(wèn)題:</p><p> ?。?)對(duì)硬件結(jié)構(gòu)簡(jiǎn)單的單線(xiàn)數(shù)字溫度傳感器DS18B20 進(jìn)行操作,需要用較為復(fù)雜的程序完成。編制程序時(shí)必須嚴(yán)格按芯片數(shù)據(jù)手冊(cè)提供的有關(guān)操作順序進(jìn)行,讀、寫(xiě)時(shí)間片程序要嚴(yán)格按要求編寫(xiě)。尤其在使用DS18B20 的高測(cè)溫分辨力時(shí),對(duì)時(shí)序及電氣特性參數(shù)要求更高。</p><p> ?。?)有多個(gè)測(cè)溫點(diǎn)時(shí),應(yīng)考慮系統(tǒng)能實(shí)現(xiàn)傳感器出錯(cuò)自動(dòng)指示,進(jìn)行自動(dòng)DS18B
91、20 序列號(hào)和自動(dòng)排序,以減少調(diào)試和維護(hù)工作量。</p><p> (3)測(cè)溫電纜線(xiàn)建議采用屏蔽4 芯雙絞線(xiàn),其中一對(duì)線(xiàn)接地線(xiàn)與信號(hào)線(xiàn),另一組接VCC和地線(xiàn),屏蔽層在源端單點(diǎn)接地。DS18B20 在三線(xiàn)制應(yīng)用時(shí),應(yīng)將其三線(xiàn)焊接牢固;在兩線(xiàn)應(yīng)用時(shí),應(yīng)將VCC與GND接在一起,焊接牢固。若VCC脫開(kāi)未接,傳感器只送85.0 ℃的溫度值。</p><p> ?。?)實(shí)際應(yīng)用時(shí),要注意單線(xiàn)的驅(qū)動(dòng)
92、能力,不能掛接過(guò)多的DS18B20,同時(shí)還應(yīng)注意最遠(yuǎn)接線(xiàn)距離。另外還應(yīng)根據(jù)實(shí)際情況選擇其接線(xiàn)拓?fù)浣Y(jié)構(gòu)。</p><p> 3.3.2 DS18B20的硬件電路</p><p> 為了滿(mǎn)足實(shí)時(shí)性要求較高系統(tǒng)的設(shè)計(jì)需求,針對(duì)串聯(lián)多個(gè)器件在一線(xiàn)制總線(xiàn)上的結(jié)構(gòu)導(dǎo)致的在查詢(xún)多點(diǎn)溫度時(shí)速度緩慢的問(wèn)題,通過(guò)采用每個(gè)并行端口上連接一個(gè)DS18B20器件,實(shí)現(xiàn)同時(shí)對(duì)多個(gè)DS18B20進(jìn)行同步操作的方法。
93、本方案可廣泛應(yīng)用于各種工業(yè)控制、儀器儀表產(chǎn)品中。在本系統(tǒng)中,DS18B20的鏈接電路如圖3.8所示:</p><p> 圖3.8 測(cè)溫模塊DS18B20的連接電路圖</p><p> 3.4存儲(chǔ)模塊CSI24WC02電路</p><p> 3.4.1 存儲(chǔ)器CSI24WC02簡(jiǎn)介</p><p> CAT24WC02是一個(gè)2K位串行
94、CMOS E2PROM,內(nèi)部含有256個(gè)8 位字節(jié),CATALYST 公司的先進(jìn)CMOS 技術(shù)實(shí)質(zhì)上減少了器件的功耗。CAT24WC02有一個(gè)16 字節(jié)頁(yè)寫(xiě)緩沖器,該器件通過(guò)I2C總線(xiàn)接口進(jìn)行操作,有一個(gè)專(zhuān)門(mén)的寫(xiě)保護(hù)功能。</p><p> CAT24WC02支持I2C總線(xiàn)數(shù)據(jù)傳送協(xié)議,I2C總線(xiàn)協(xié)議規(guī)定,任何將數(shù)據(jù)傳送到總線(xiàn)的器件作為發(fā)送器,任何從總線(xiàn)接收數(shù)據(jù)的器件為接收器。數(shù)據(jù)傳送是由產(chǎn)生串行時(shí)鐘和所有起始
95、停止信號(hào)的主器件控制的。主器件和從器件都可以作發(fā)送器或接收器,但由主器件控制傳送數(shù)據(jù)(發(fā)送或接收)的模式,通過(guò)地址輸入端A0 、A1和A2 可以實(shí)現(xiàn)將最多8 支24WC02 器件連接到總線(xiàn)上。</p><p> CAT24WC02具有8個(gè)引腳,SCL為串行時(shí)鐘輸入端,SDA是雙向串行數(shù)據(jù)/地址輸入輸出引腳,用于器件所有數(shù)據(jù)的發(fā)送或接收。AD0~AD2功能是在多個(gè)器件級(jí)聯(lián)時(shí)設(shè)置器件地址。WP是寫(xiě)保護(hù)引腳,為1時(shí),
96、所有的內(nèi)容都被寫(xiě)保護(hù)(只能讀),為0或者懸空時(shí),允許器件的正常讀與寫(xiě)操作。</p><p> 3.4.2 系統(tǒng)中CAT24WC02連接電路</p><p> 24WC02使用起來(lái)比較方便,在系統(tǒng)中的連接電路也很簡(jiǎn)單,在本系統(tǒng)中,24WC02的連接如下圖3.9所示:</p><p> 圖3.9 24WC02連接電路圖</p><p>
97、 3.5 LCD1602液晶顯示器</p><p> 3.5.1 LCD1602簡(jiǎn)介</p><p> 液晶顯示(LCD)是單片機(jī)應(yīng)用系統(tǒng)的一種常用人機(jī)接口形式,其優(yōu)點(diǎn)是體積小、重量輕、功耗低。字符型LCD主要用于顯示數(shù)字、字母、簡(jiǎn)單圖形符號(hào)及少量自定義符號(hào)。字符型LCD顯示器目前在市場(chǎng)上已經(jīng)規(guī)范化,市銷(xiāo)售產(chǎn)品電特性及接口特性基本相似,現(xiàn)在介紹LCD1602字符型模塊的使用方法。<
98、;/p><p><b> VSS</b></p><p><b> VDD</b></p><p><b> VL</b></p><p><b> RS</b></p><p><b> R/W</b>
99、</p><p><b> E</b></p><p><b> D0~7</b></p><p> 圖3.10 LCD1602模塊的組成</p><p> LCD1602模塊采用16引腳接線(xiàn),由控制器HD44780、驅(qū)動(dòng)器HD44100和液晶板組成,結(jié)構(gòu)如圖3.10所示。它是集控制和驅(qū)動(dòng)
100、于一體,本身就可以驅(qū)動(dòng)單行16字符或2行8字符,對(duì)于2行16字符的顯示要增加HD44100驅(qū)動(dòng)器。</p><p> 44780由字符發(fā)生器CGROM、自定義字符發(fā)生器CGRAM和顯示緩沖區(qū)DDRAM組成。字符發(fā)生器CGROM存儲(chǔ)了不同的點(diǎn)陣字符圖形。包括數(shù)字、英文字母的大寫(xiě)小寫(xiě)字符,常用的符號(hào)和日文字符等等。每個(gè)字符都有一個(gè)固定的代碼,如表3.12所示。</p><p> LCD16
101、02模塊的是通過(guò)以下11條操作命令完成的。</p><p> 表3.12 LCD1602的CGROM字符集</p><p> 命令1:清屏(DDRAM全寫(xiě)空格)。光標(biāo)回到屏幕左上角,地址計(jì)數(shù)器設(shè)置為0。</p><p> 命令2:光標(biāo)歸位。光標(biāo)回到屏幕左上角。</p><p> 命令3:輸入模式設(shè)置,用于設(shè)定每寫(xiě)入一個(gè)數(shù)據(jù)字節(jié)后,光
102、標(biāo)的移動(dòng)方向及字符是否移動(dòng)。I/D:光標(biāo)移動(dòng)方向。S:全部屏幕。I/D=0,S=0,光標(biāo)左移一格且地址計(jì)數(shù)器減1;I/D=1,S=0,光標(biāo)右移一格且地址計(jì)數(shù)器加1;I/D=0,S=1,光標(biāo)不動(dòng),屏幕內(nèi)容全部右移一格;I/D=1,S=1,光標(biāo)不動(dòng),屏幕內(nèi)容全部左移一格。</p><p> 命令4:顯示與不顯示設(shè)置。D:顯示的開(kāi)關(guān),為1表示開(kāi)顯示。C:光標(biāo)的開(kāi)關(guān),為1表示有光標(biāo)。B:光標(biāo)是否閃爍,為1表示閃爍。&l
103、t;/p><p> 命令5:光標(biāo)或屏幕內(nèi)容移位選擇。S/C:為1時(shí)移動(dòng)屏幕內(nèi)容,為0移動(dòng)光標(biāo)。R/L:為1時(shí)右移,為0時(shí)左移。</p><p> 命令6:功能設(shè)置。DL:為0時(shí)設(shè)置為4位數(shù)據(jù)接口,為1時(shí)設(shè)置為8位數(shù)據(jù)接口。N:為0時(shí)單行顯示,為1時(shí)雙行顯示。F:為0時(shí)顯示5×7點(diǎn)陣,為1時(shí)顯示5×10點(diǎn)陣。</p><p> 命令7:CGRAM
104、地址設(shè)置,地址范圍為00H~3FH(共64個(gè)單元,對(duì)應(yīng)8個(gè)自定義字符)。</p><p> 命令8:DDRAM地址設(shè)置,地址范圍為00H~7FH。</p><p> 命令9:讀忙標(biāo)志和計(jì)數(shù)器地址。BF:忙標(biāo)志,為1表示忙,此時(shí)模塊不能接收數(shù)據(jù)或者命令。計(jì)數(shù)器地址范圍為00H~7FH。</p><p> 命令10:寫(xiě)DDRAM或者CGROM。要配合地址設(shè)置命令。
105、</p><p> 命令10:讀DDRAM或者CGROM。要配合地址設(shè)置命令。</p><p> 這11條命令匯總?cè)缦马?yè)表3.14。</p><p> 液晶的HD44780基本操作時(shí)序如下表3.13:</p><p> 表3.13 液晶基本操作時(shí)序</p><p> 表3.14給出了LCD1602的操作命令
106、</p><p> 表3.14 LCD1602的操作命令</p><p> 3.5.2 LCD1602硬件電路</p><p> 在本系統(tǒng)中,液晶顯示模塊的連接如下圖3.11所示:</p><p> 圖3.11 液晶顯示模塊連接圖</p><p><b> 4 軟件程序設(shè)計(jì)</b>&l
107、t;/p><p> 基于單片機(jī)系統(tǒng)的設(shè)計(jì),可以采用匯編語(yǔ)言完成,也可以采用C語(yǔ)言實(shí)現(xiàn)。匯編語(yǔ)言對(duì)單片機(jī)內(nèi)部資源的操作直接簡(jiǎn)捷,生成的代碼緊湊;C語(yǔ)言在可讀性和可重用性上具有明顯的優(yōu)勢(shì),特別是近年來(lái)Keil C51的推出,使C語(yǔ)言有了廣泛的發(fā)展。所以本系統(tǒng)采用C語(yǔ)言進(jìn)行編程。為了以后看程序的方便,現(xiàn)在列出程序所用的頭文件、定義的全局變量以及宏變量等。</p><p> #include<
108、;reg52.h></p><p> #define uchar unsigned char</p><p> #define uint unsigned int</p><p> #define DQ P1//DS18Bb20數(shù)據(jù)線(xiàn)</p><p> sbit IO=P3^6;//</p><p>
109、sbit SCLK=P3^7;//</p><p> sbit RST=P3^5;//DS1302的三個(gè)接口</p><p> sbit RS=P0^5;//</p><p> sbit RW=P0^6;//</p><p> sbit EN=P0^7;//液晶的三個(gè)接口</p><p> sbit SCL=
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《智能測(cè)溫儀》畢業(yè)設(shè)計(jì)---智能測(cè)溫儀的設(shè)計(jì)與制作
- 畢業(yè)設(shè)計(jì)——紅外測(cè)溫系統(tǒng)的設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)紅外測(cè)溫系統(tǒng)的設(shè)計(jì)
- 單擊片畢業(yè)設(shè)計(jì)----智能紅外測(cè)溫計(jì)的設(shè)計(jì)
- 單擊片畢業(yè)設(shè)計(jì)--智能紅外測(cè)溫計(jì)的設(shè)計(jì)
- 無(wú)線(xiàn)多點(diǎn)測(cè)溫系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 多點(diǎn)溫度檢測(cè)系統(tǒng)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--多點(diǎn)溫度巡回檢測(cè)系統(tǒng)的設(shè)計(jì)
- 單片機(jī)測(cè)溫系統(tǒng)畢業(yè)設(shè)計(jì)
- 多點(diǎn)溫度巡回檢測(cè)系統(tǒng)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--多點(diǎn)溫度巡回檢測(cè)系統(tǒng)
- 便攜式紅外測(cè)溫系統(tǒng)的設(shè)計(jì)【畢業(yè)設(shè)計(jì)】
- 多點(diǎn)紅外火災(zāi)探測(cè)系統(tǒng)設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 【畢業(yè)設(shè)計(jì)】基于單片機(jī)測(cè)溫系統(tǒng)設(shè)計(jì)
- 【畢業(yè)設(shè)計(jì)】基于單片機(jī)測(cè)溫系統(tǒng)設(shè)計(jì)
- 溫室多點(diǎn)溫度采集系統(tǒng)設(shè)計(jì)——硬件設(shè)計(jì)【畢業(yè)設(shè)計(jì)】
- 畢業(yè)設(shè)計(jì)-- 基于ad590的虛擬測(cè)溫系統(tǒng)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--遠(yuǎn)程測(cè)溫?zé)o線(xiàn)傳輸系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 單片機(jī)數(shù)字測(cè)溫系統(tǒng)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)論文多點(diǎn)溫度巡回檢測(cè)系統(tǒng)
評(píng)論
0/150
提交評(píng)論