[優(yōu)秀畢業(yè)設(shè)計(jì)精品] 基于ds18b20的溫控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
已閱讀1頁(yè),還剩33頁(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、<p>  課程設(shè)計(jì)說(shuō)明書(shū)(論文)</p><p>  課程設(shè)計(jì)題目:微機(jī)原理與單片機(jī)技術(shù)實(shí)踐課程設(shè)計(jì)</p><p>  ——基于DS18B20的溫控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)</p><p><b>  學(xué)生姓名: </b></p><p><b>  學(xué) 號(hào): </b></p>

2、;<p>  院 系:物理與機(jī)電工程學(xué)院自動(dòng)化系</p><p>  專業(yè)班級(jí):自動(dòng)化2008級(jí)</p><p>  指導(dǎo)教師姓名及職稱: </p><p>  起止時(shí)間: 2011年 2月 21日—2011年 5月 31日</p><p><b>  課程設(shè)計(jì)評(píng)分:</b></p>&

3、lt;p><b>  課程設(shè)計(jì)任務(wù)書(shū)</b></p><p>  基于DS18B20的溫控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)</p><p><b>  摘要:</b></p><p>  DS18B20它可以直接數(shù)字化輸出和測(cè)試,并且具有控制功能強(qiáng)、干擾能力強(qiáng)、型化和低功耗等特點(diǎn)。本文系統(tǒng)的介紹了基于DS18B20多點(diǎn)溫度控制系統(tǒng)的組

4、成、設(shè)計(jì)方案、電路原理、程序設(shè)計(jì)及系統(tǒng)仿真過(guò)程。DS18B20多點(diǎn)溫度控制系統(tǒng)是以STC89C52單片機(jī)為控制中心,智能溫控傳感器DS18B20為控制對(duì)象,用LCD1602液晶顯示溫度,繼電器跟LED燈報(bào)警,借住EDA設(shè)計(jì)與仿真工具protues和單片機(jī)編程軟件keil實(shí)現(xiàn)了系統(tǒng)軟、的交互仿真。</p><p>  本課題所設(shè)計(jì)的多點(diǎn)溫度控制系統(tǒng)可以對(duì)遠(yuǎn)程環(huán)境的溫度測(cè)量與監(jiān)控,適有于電力工業(yè)、火災(zāi)、煤礦、高層建筑

5、等場(chǎng)所,還可以用于環(huán)境惡劣的工業(yè)控制現(xiàn)場(chǎng)。</p><p>  關(guān)鍵詞:DS18B20;單片機(jī);液晶;protues仿真;keil</p><p>  Based on the chip DS18B20 temperature control system </p><p><b>  Abstract:</b></p><

6、p>  DS18B20 it can directly digital output and test, and has the control function of strong, interference ability, type, and low consumption, etc. This paper systematically introduces the multi-spot temperature contro

7、l system based on DS18B20 the composition, design scheme, circuit principle, program design and system simulation process. DS18B20 multi-point temperature control system is STC89C52 microcomputer as the control center, i

8、ntelligent temperature control sensor DS18B20 is the object of cont</p><p>  The design of this topic of multi-point temperature control system of remote environment temperature measurement and monitoring, s

9、uitable for electric power industry, fire, coal mine, high-rise building etc place, can also be used for environmental bad industrial control field. </p><p>  Key Words: DS18B20; SCM; LCD; Protues simulation

10、; keil </p><p><b>  目 錄</b></p><p>  1系統(tǒng)設(shè)計(jì)總述……………………………………………………………………(5)</p><p>  1.1設(shè)計(jì)任務(wù)及要求…………………………………………………………(5)</p><p>  1.2方案比較與確定…………………………………………

11、………………(6)</p><p>  2系統(tǒng)硬件設(shè)計(jì)……………………………………………………………………(6)</p><p>  2.1系統(tǒng)硬件組成……………………………………………………………(6)</p><p>  2.2單片機(jī)的典型電路………………………………………………………(7)</p><p>  2.3 DS18B20溫度

12、傳感器和單片機(jī)接口技術(shù)………………………………(7)</p><p>  2.3.1 DSl8B20簡(jiǎn)介………………………………………………………(7)</p><p>  2.3.2 DSl8B20具體參數(shù)及工作方式…………………………………(11)</p><p>  2.3.3 DS18B20與單片機(jī)接口電路……………………………………(11)</p&g

13、t;<p>  2.4LCD1602……………………………………… ……… …………………(12)</p><p>  2.4.1 1602LCD的基本參數(shù)及引腳功能………………………………(12)</p><p>  2.4.2 LCD1602與單片機(jī)接口電路……………………………………(14)</p><p>  2.5單片機(jī)控制繼電器………………

14、………………………………… … (14)3 系統(tǒng)軟件設(shè)計(jì)…………………………………………………………………(16)</p><p>  3.1 主程序設(shè)計(jì)…………………………………………………………… (16)3.2 讀DS18B20的序列號(hào)程序設(shè)計(jì)………………………………………(17)</p><p>  3.3溫度報(bào)警子程序流程圖…………………………………… ………… (18)<

15、/p><p>  3.4 溫度的精度設(shè)計(jì)………………………………………………………(19)</p><p>  4系統(tǒng)仿真調(diào)試………………………………………………………………… (19)</p><p>  4.1 軟件編程與調(diào)試簡(jiǎn)介………………………………………………… (19)</p><p>  4.2 系統(tǒng)軟、硬件交互仿真……………………

16、……………………………(20)</p><p>  4.3 實(shí)物電路調(diào)試……………………………… …… ……………………(20)</p><p>  5總結(jié)展望…………………………………………… ………… ………………(20)</p><p>  致謝………………………………………………………………………… ……(21)</p><p>  

17、參考文獻(xiàn)………………………………………………… ………………………(21)</p><p>  附錄1:電路原理圖…………………………………………………………… (21)</p><p>  附錄2:設(shè)計(jì)的PCB圖……………………………………………………… (23)</p><p>  附錄3:實(shí)物圖…………………………………………………………………(25)<

18、/p><p>  附錄4:程序……………………………………………………………………(27)</p><p><b>  1系統(tǒng)設(shè)計(jì)總述</b></p><p>  溫度是一種最基本的環(huán)境參數(shù),在工農(nóng)業(yè)生產(chǎn)及日常生活中對(duì)溫度的測(cè)量及控制具有重要意義。以往,在實(shí)際的溫度控制系統(tǒng)中,多采用熱敏電阻器或熱電偶測(cè)量溫度。這種溫度采集電路有時(shí)需要冷端補(bǔ)償電路,

19、這樣就增加了電路的復(fù)雜性,而且該種電路易受干擾,使采集到的數(shù)據(jù)準(zhǔn)確性不高。隨著微電子技術(shù)、單片機(jī)技術(shù)、傳感器技術(shù)的不斷發(fā)展,為溫度控制系統(tǒng)測(cè)控功能的完善、測(cè)控精度的提高和抗干擾能力的增強(qiáng)等提供了條件。本文設(shè)計(jì)了一種基于STC89C52 單片機(jī)與DS18B20 的溫度控制系統(tǒng)。該設(shè)計(jì)通過(guò)STC89C52 單片機(jī)驅(qū)動(dòng)數(shù)字溫度傳感器DS18B20,進(jìn)行溫度數(shù)據(jù)采集、讀取、處理,并通過(guò)數(shù)碼管顯示出來(lái)。同時(shí),也可通過(guò)STC89C52RS串行口與P

20、C 機(jī)連接,將數(shù)據(jù)傳送至PC 機(jī)系統(tǒng),從而方便溫度數(shù)據(jù)傳輸和統(tǒng)計(jì)工作。該系統(tǒng)還可擴(kuò)展成為多點(diǎn)溫度采集系統(tǒng)、溫度遠(yuǎn)程監(jiān)控系統(tǒng)等。</p><p>  1.1設(shè)計(jì)任務(wù)及要求</p><p>  具體要求:1.至少要有5個(gè)DS18B20傳感器</p><p>  2.使用單線總線技術(shù),進(jìn)行溫度采集</p><p>  3.控制一個(gè)立體空間的溫度在一

21、個(gè)范圍之內(nèi),過(guò)熱能吹出冷風(fēng),過(guò)冷能吹出熱風(fēng)</p><p>  該溫度控制系統(tǒng)的設(shè)計(jì)包括硬件設(shè)計(jì)和軟件設(shè)計(jì)兩大部分,結(jié)合實(shí)際情況,該系統(tǒng)應(yīng)具備如下功能:  (1)實(shí)時(shí)采集溫度;  (2)顯示溫度; ?。?)串行傳送數(shù)據(jù); ?。?)控制外設(shè); ?。?)溫度超限報(bào)警; ?。?)可擴(kuò)展,形成多點(diǎn)溫度采集系統(tǒng),具有遠(yuǎn)程監(jiān)控等功能?! ≡谠摐囟瓤刂葡到y(tǒng)中STC89C52單片機(jī)不僅與溫度傳感器DS18B20,外

22、部設(shè)備,LCD1602液晶連接,還通過(guò)與串口電平芯片STC89C52RS連接,由數(shù)據(jù)線連接到PC 上,建立起遠(yuǎn)程通信。系統(tǒng)上電后,STC89C52 單片機(jī)驅(qū)動(dòng)溫度傳感器DS18B20 工作,進(jìn)行溫度數(shù)據(jù)采集,傳輸。STC89C52單片機(jī)在接到溫度傳感器DS18B20 傳送過(guò)來(lái)的溫度數(shù)據(jù)后,進(jìn)行操作,一方面送至數(shù)碼管顯示模塊進(jìn)行溫度顯示,另一方面將數(shù)據(jù)送至 PC 機(jī)上,方便在 PC 機(jī)進(jìn)行一些后續(xù)處理和控制操作,有利于遠(yuǎn)程控制的實(shí)現(xiàn)。溫度

23、控制系統(tǒng)總體框圖如所示?!   ? 系統(tǒng)硬件設(shè)計(jì)    系統(tǒng)的硬件設(shè)計(jì)部分主要由以下幾部分組成: ?。?)單片機(jī)最小系統(tǒng):采用STC89C52 單片機(jī);  (2)溫度采集模塊:采用DS18B20 </p><p>  1.2方案比較與確定</p><p>  當(dāng)將單片機(jī)用作測(cè)控系統(tǒng)時(shí),系統(tǒng)總要有被測(cè)信號(hào)懂得輸入通道,由計(jì)算機(jī)拾取必要的輸入信息。對(duì)于測(cè)量系統(tǒng)而言,如何準(zhǔn)確獲得被測(cè)

24、信號(hào)是其核心任務(wù);而對(duì)測(cè)控系統(tǒng)來(lái)講,對(duì)被控對(duì)象狀態(tài)的測(cè)試和對(duì)控制條件的監(jiān)察也是不可缺少的環(huán)節(jié)。</p><p>  傳感器是實(shí)現(xiàn)測(cè)量與控制的首要環(huán)節(jié),是測(cè)控系統(tǒng)的關(guān)鍵部件,如果沒(méi)有傳感器對(duì)原始被測(cè)信號(hào)進(jìn)行準(zhǔn)確可靠的捕捉和轉(zhuǎn)換,一切準(zhǔn)確的測(cè)量和控制都將無(wú)法實(shí)現(xiàn)。工業(yè)生產(chǎn)過(guò)程的自動(dòng)化測(cè)量和控制,幾乎主要依靠各種傳感器來(lái)檢測(cè)和控制生產(chǎn)過(guò)程中的各種參量,使設(shè)備和系統(tǒng)正常運(yùn)行在最佳狀態(tài),從而保證生產(chǎn)的高效率和高質(zhì)量。<

25、;/p><p><b>  溫度傳感器的選擇 </b></p><p>  方案一:采用熱電阻溫度傳感器。熱電阻是利用導(dǎo)體的電阻隨溫度變化的特性制成的測(cè)溫元件?,F(xiàn)應(yīng)用較多的有鉑、銅、鎳等熱電阻。其主要的特點(diǎn)為精度高、測(cè)量范圍大、便于遠(yuǎn)距離測(cè)量。</p><p>  鉑的物理、化學(xué)性能極穩(wěn)定,耐氧化能力強(qiáng),易提純,復(fù)制性好,工業(yè)性好,電阻率較高,因此

26、,鉑電阻用于工業(yè)檢測(cè)中高精密測(cè)溫和溫度標(biāo)準(zhǔn)。缺點(diǎn)是價(jià)格貴,溫度系數(shù)小,受到磁場(chǎng)影響大,在還原介質(zhì)中易被玷污變脆。按IEC標(biāo)準(zhǔn)測(cè)溫范圍-200~650℃,百度電阻比W(100)=1.3850時(shí),R0為100Ω和10Ω,其允許的測(cè)量誤差A(yù)級(jí)為±(0.15℃+0.002 |t|),B級(jí)為±(0.3℃+0.005 |t|)。</p><p>  銅電阻的溫度系數(shù)比鉑電阻大,價(jià)格低,也易于提純和加工;但

27、其電阻率小,在腐蝕性介質(zhì)中使用穩(wěn)定性差。在工業(yè)中用于-50~180℃測(cè)溫。</p><p>  方案二:采用DS18B20溫度傳感器。DS18B20 支持“一線總線”接口,測(cè)量溫度范圍為-55°C~+125°C,被測(cè)溫度用符號(hào)擴(kuò)展的16 位數(shù)字量方式串行輸出,在-10~+85°C 范圍內(nèi),精度為±0.5°C。DS18B20 采集到的現(xiàn)場(chǎng)溫度直接以先進(jìn)的單總線數(shù)據(jù)通

28、信方式傳輸,大大提高了系統(tǒng)的抗干擾性,適合于惡劣環(huán)境的現(xiàn)場(chǎng)溫度測(cè)量,如:環(huán)境控制、設(shè)備或過(guò)程控制、測(cè)溫類(lèi)消費(fèi)電子產(chǎn)品等。DS18B20 可程序設(shè)定9~12 位的分辨率,精度可達(dá)±0.5°C。DS18B20具有內(nèi)置的EEPROM,用戶設(shè)定的分辨率和報(bào)警溫度都可存儲(chǔ)在其中,且掉電后依然存在。綜合比較方案一與方案二,方案二更為適合于本設(shè)計(jì)系統(tǒng)對(duì)于溫度傳感器的選擇。</p><p><b>

29、  2系統(tǒng)硬件設(shè)計(jì)</b></p><p>  2.1系統(tǒng)硬件組成  本設(shè)計(jì)使用單片機(jī)作為控制核心,采用多個(gè)溫度傳感器對(duì)多點(diǎn)溫度進(jìn)行檢測(cè),以液晶顯示屏顯示檢測(cè)溫度,用繼電器模塊進(jìn)行報(bào)警。系統(tǒng)總體控制框圖如圖1所示:</p><p>  圖1 系統(tǒng)總體控制框圖</p><p>  2.2 單片機(jī)的典型電路:</p><p>  單

30、片機(jī)是整個(gè)系統(tǒng)的核心處理器,其負(fù)責(zé)驅(qū)動(dòng)溫度傳感器DS18B20 工作、溫度顯示、控制外圍設(shè)備的工作以及與上位機(jī)進(jìn)行通信等工作。本系統(tǒng)選用美國(guó)ATMAL 公司生產(chǎn)的AT89S52 單片機(jī)。AT89S52 是89 系列單片機(jī)的一種,它不但與8051,8052 指令,管腳完全兼容,而且其片內(nèi)的程序存儲(chǔ)器采用FLASH 工藝,用戶可以用電的方式瞬間擦除、改寫(xiě)。AT89S52 單片機(jī)還支持在線編程,用戶通過(guò)簡(jiǎn)單的電路連接就可以將電腦里的程序下載到

31、單片機(jī)中,減少調(diào)試程序時(shí)不斷拆卸和插入給芯片帶來(lái)的損壞。此外AT89S52 單片機(jī)有8 KB的程序存儲(chǔ)器和256 B 的數(shù)據(jù)存儲(chǔ)器,不需外部擴(kuò)展存儲(chǔ)芯片,可以降低硬件電路的復(fù)雜度。單片機(jī)最小系統(tǒng)主要由兩塊組成,其一為晶振起振電路,其二為復(fù)位電路,在此,采用按鍵手動(dòng)復(fù)位,相對(duì)來(lái)講,這種復(fù)位方式更加方便,更加人性化,不必要切斷電源即可對(duì)系統(tǒng)進(jìn)行復(fù)位。</p><p> ?。?)時(shí)鐘電路:如圖2連接即可構(gòu)成自激振蕩電路

32、,振蕩頻率取決于適應(yīng)晶體的振蕩頻率,范圍可取1.2~12MHZ,C1、C2主要起頻率微調(diào)和穩(wěn)定作用,電容可取5~30pF。</p><p>  圖2 單片機(jī)時(shí)鐘電路</p><p><b>  (2)復(fù)位電路</b></p><p>  上電復(fù)位電路:RC構(gòu)成微分電路,在接電瞬間產(chǎn)生一個(gè)微分脈沖,其寬度若大于2個(gè)機(jī)器周期,MCS—51型單片機(jī)將

33、復(fù)位。選用22uF電容、1kΩ電阻。如圖3所示:</p><p>  圖3 單片機(jī)復(fù)位電路</p><p>  2.3 DS18B20溫度傳感器和單片機(jī)接口技術(shù)</p><p>  2.3.1 DSl8B20簡(jiǎn)介</p><p>  DSl8B20溫度傳感器是美國(guó)DALLAS半導(dǎo)體公司繼DSl820之后最新推出的只用改進(jìn)型智能溫度傳感器。與傳

34、統(tǒng)的熱敏電阻相比,他能夠直接讀出被測(cè)溫度并且可根據(jù)要求通過(guò)簡(jiǎn)單的編程實(shí)現(xiàn)9~l2位的數(shù)字直讀方式。可以分別存93.75ms和750ms內(nèi)完成9位和12位的數(shù)字量,并且從DSl8B20讀出的信息或?qū)懭隓Sl8B20的信息僅需要一根口線(單線接口)讀寫(xiě),溫度變換功率來(lái)源于數(shù)據(jù)總線,總線本身也可以向所掛接DSl8B20供電,而無(wú)需額外電源。因而使用DSl8B20可使系統(tǒng)結(jié)構(gòu)更趨簡(jiǎn)單,可靠性更高。他在測(cè)溫精度,轉(zhuǎn)換時(shí)時(shí)間,傳輸距離,分辨率等方面

35、較DSl820有了很大的改進(jìn),給用戶帶來(lái)了更方便的使用和更令人滿意的效果。DSl8B20采用3腳PR35封裝或8腳SOIC封裝,其內(nèi)部結(jié)構(gòu)框圖如4所示:</p><p>  圖4 DSl8B20的內(nèi)部結(jié)構(gòu)圖</p><p>  DS18B20的內(nèi)部結(jié)構(gòu)主要有四部分組成:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL、配置寄存器。DS18B20的管腳排列如圖5所示:</

36、p><p>  圖5 DS18B20的管腳</p><p>  DS18B20的引腳說(shuō)明如下:</p><p>  GND :地 </p><p>  DQ :數(shù)據(jù)I/O </p><p>  VDD :電源 </p><p><b>  NC :空腳<

37、;/b></p><p>  64位激光ROM開(kāi)始8位是產(chǎn)品類(lèi)型的編號(hào),接著是每個(gè)器件的惟一的序號(hào)共有48位,最后8位是前56位的CRC校驗(yàn)碼,這也是多個(gè)DSl8B20可以采用一線進(jìn)行通信的原因。64位激光ROM的機(jī)構(gòu)如表1所示:</p><p>  表1 64位激光ROM的結(jié)構(gòu)</p><p>  MSB LSB MSB

38、 LSB MSB LSB</p><p>  DSl8B20溫度傳感器的內(nèi)部存儲(chǔ)器包括一個(gè)高速暫存RAM和一個(gè)非易失性的可電擦除EEPRAM。后者用于存儲(chǔ)TH,TL值。數(shù)據(jù)先寫(xiě)入RAM,經(jīng)校驗(yàn)后再傳給EEPRAM。而配置寄存器為高速暫存器中的第5個(gè)字節(jié),他的內(nèi)容用與確定溫度值的數(shù)字轉(zhuǎn)換分辨率,DSl8B20 工作時(shí)按此寄存器中的分辨率將溫度轉(zhuǎn)換為相

39、應(yīng)精度的數(shù)值。低5位一直都是1,TM是測(cè)試模式位,用于設(shè)置DSl8B20在工作模式還是在測(cè)試模式。如表2所示。在DSl8B20出廠時(shí)該位被設(shè)置為0,用戶不要去改動(dòng),Rl和R0決定溫度轉(zhuǎn)換精度位數(shù)。</p><p>  表2 字節(jié)各位的定義</p><p>  由表3可見(jiàn),設(shè)定的分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時(shí)間就越長(zhǎng)。因此,在實(shí)際應(yīng)用中要在分辨率和轉(zhuǎn)換時(shí)間權(quán)衡考慮。高速暫存存儲(chǔ)器除了配置

40、寄存器外,還有其他8個(gè)字節(jié)組成,其分配如表4所示。其中溫度信息(第l,2字節(jié)),TH和TL值第3,4節(jié),第6~8字節(jié),表現(xiàn)為全邏輯1;第9字節(jié)讀出的是前面所有的8字節(jié)的CRC碼,可用來(lái)保證通信正確。</p><p>  表3 數(shù)據(jù)分辨率和轉(zhuǎn)換時(shí)間</p><p>  當(dāng)DSl8B20接收到溫度轉(zhuǎn)換命令后,開(kāi)始啟動(dòng)轉(zhuǎn)換,如表4所示。轉(zhuǎn)換完成后的溫度值就以16位帶符號(hào)擴(kuò)展到二進(jìn)制補(bǔ)碼形式儲(chǔ)存在

41、高速暫存存儲(chǔ)器的第l,2字節(jié)。單片機(jī)可通過(guò)單線接口讀到該數(shù)據(jù),讀取時(shí)低位在前面,高位在后,數(shù)據(jù)格式以0.0625℃/LSB形式表示。對(duì)應(yīng)的溫度計(jì)算:當(dāng)符號(hào)位S=0時(shí),直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)S=1時(shí),先將補(bǔ)碼變換為原碼,再計(jì)算十進(jìn)制值。</p><p><b>  表4 碼制轉(zhuǎn)換</b></p><p>  在DSl8B20完成溫度變換之后,溫度值與貯存TH和T

42、L內(nèi)的觸發(fā)值相比較因?yàn)檫@些寄存器僅僅是8位,所以0.5℃位在比較時(shí)被忽略。TH或TL的最高有較位直接對(duì)應(yīng)于l6位溫度奇存器的符號(hào)位。如果溫度測(cè)量的結(jié)果高于TH或低于TL,那么器件內(nèi)告警標(biāo)志將置位。每次溫度測(cè)量更新此標(biāo)志。只要告警標(biāo)志置位,DSl8B20將對(duì)告警搜索命令做出響應(yīng)。這允許并聯(lián)連接許多DSl8B20,同時(shí)進(jìn)行溫度測(cè)量。如果某處溫度超過(guò)極限,那么可以識(shí)別出正在告警的器件并立即將其讀出而不必讀出非告警的器件。部分溫度轉(zhuǎn)換如表5所示

43、:</p><p>  表5 部分溫度轉(zhuǎn)換值</p><p>  2.3.2 DSl8B20具體參數(shù)及工作方式</p><p><b>  參數(shù)特性:</b></p><p> ?。?)獨(dú)特的單線接口只需l個(gè)接口引腳即可通信</p><p>  (2)多點(diǎn)綜合測(cè)溫能力使分布式溫度檢測(cè)應(yīng)用得以簡(jiǎn)化&

44、lt;/p><p>  (3)不需要外部元件</p><p> ?。?)可用數(shù)據(jù)線供電</p><p><b>  (5)需備份電源</b></p><p> ?。?)測(cè)量范圍從-55℃至+125℃增量值為0.5℃</p><p>  (7)以9位數(shù)字值方式讀出溫度</p><p&

45、gt;  (8)在1秒(典型值)內(nèi)把溫度變換為數(shù)字</p><p> ?。?)用戶可定義的非易失性的溫度告警設(shè)置</p><p> ?。?0)告警搜索命令識(shí)別和尋址溫度在編定的極限之外的器件溫度告警情況</p><p>  (11)應(yīng)用范圍包括恒溫控制工業(yè)系統(tǒng)消費(fèi)類(lèi)產(chǎn)品溫度計(jì)或任何熱敏系統(tǒng)</p><p><b>  極限參數(shù):&l

46、t;/b></p><p> ?。?)任何引腳相對(duì)于地的電壓-0.5V至+7.0V</p><p> ?。?)運(yùn)用溫度-55℃至+125℃</p><p> ?。?)貯存溫度-55。C至+125℃</p><p> ?。?)焊接溫度260℃/l0秒</p><p>  2.3.3 DS18B20與單片機(jī)接口電路&

47、lt;/p><p>  如圖6所示,為單片機(jī)與DS18B20的接口電路。DS18B20只有三個(gè)引腳,一個(gè)接地,一個(gè)接電源,一個(gè)數(shù)字輸入輸出引腳接單片機(jī)的P3.7口電源與數(shù)字輸入輸出腳間需要接一個(gè)4.7K的電阻。</p><p>  圖6 DS18B20與單片機(jī)接口電路 </p><p>  DSl8B20使用中注意到事項(xiàng):</p><p> 

48、 DSl8B20雖然具有測(cè)溫系統(tǒng)簡(jiǎn)單,測(cè)溫精度高、連接方便、占用I/O 口線少等優(yōu)點(diǎn),但在實(shí)際應(yīng)用中也應(yīng)注意以下問(wèn)題:</p><p>  (1)在實(shí)際片使用中發(fā)現(xiàn),應(yīng)使電源電壓保持在5v左右,如果電壓過(guò)低,會(huì)使所測(cè)得到溫度與實(shí)際溫度出現(xiàn)偏高現(xiàn)象,使溫度輸出定格在85℃</p><p> ?。?)連接DSl8B20的總線電纜是有長(zhǎng)度限制的。當(dāng)采用普通信號(hào)電纜傳輸長(zhǎng)度超過(guò)50m時(shí),讀取的測(cè)溫

49、數(shù)據(jù)發(fā)生錯(cuò)誤,當(dāng)采用雙絞線帶屏蔽電纜為總線電纜時(shí),正常通訊距離可達(dá)l50m,當(dāng)采用每米膠合次數(shù)更多的雙絞線帶屏蔽電纜時(shí),正常通訊距離可以進(jìn)一步加長(zhǎng)。這種情況主要由總線分布電容使信號(hào)波形產(chǎn)生畸變?cè)斐傻?。因此,存進(jìn)行長(zhǎng)距離測(cè)量時(shí)要充分考慮總線分布電容和阻抗匹配問(wèn)題。</p><p>  2.4LCD1602</p><p>  2.4.1 1602LCD的基本參數(shù)及引腳功能</p>

50、<p>  1602LCD分為帶背光和不帶背光兩種,基控制器大部分為HD44780,帶背光的比不帶背光的厚,是否帶背光在應(yīng)用中并無(wú)差別,兩者尺寸差別如圖7所示。</p><p>  圖7 LM016L結(jié)構(gòu)圖</p><p>  LCD1602主要技術(shù)參數(shù): </p><p>  容量:16×2個(gè)字符</p><p

51、>  芯片工作電壓:4.5—5.5V</p><p>  工作電流:2.0mA(5.0V)</p><p>  模塊最佳工作電壓:5.0V</p><p>  字符尺寸:2.95×4.35(W×H)mm</p><p><b>  引腳功能說(shuō)明:</b></p><p>

52、  1602LCD采用標(biāo)準(zhǔn)的14腳(無(wú)背光)或16腳(帶背光)接口,各引腳接口說(shuō)明如表6所示:</p><p><b>  表6引腳接口說(shuō)明表</b></p><p>  第1腳:VSS為地電源。</p><p>  第2腳:VDD接5V正電源。</p><p>  第3腳:VL為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度

53、最弱,接地時(shí)對(duì)比度最高,對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)一個(gè)10K的電位器調(diào)整對(duì)比度。</p><p>  第4腳:RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。</p><p>  第5腳:R/W為讀寫(xiě)信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫(xiě)操作。當(dāng)RS和R/W共同為低電平時(shí)可以寫(xiě)入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電

54、平R/W為低電平時(shí)可以寫(xiě)入數(shù)據(jù)。</p><p>  第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。</p><p>  第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。</p><p>  第15腳:背光源正極。</p><p>  第16腳:背光源負(fù)極。</p><p>  2.4.2 LCD16

55、02與單片機(jī)接口電路</p><p>  系統(tǒng)顯示電路由單片機(jī)AT89C51、字符液晶顯示器LCD1602和1k×8的排組構(gòu)成。單片機(jī)實(shí)現(xiàn)對(duì)LCD命令和顯示數(shù)據(jù)的讀寫(xiě)控制功能,P0口作數(shù)據(jù)口,與LCD1602L的D0~D7相接,在P0口與D0~D7數(shù)據(jù)線之間分別接8個(gè)上拉電阻,以確保電路能夠正常顯示。AT89C51的P1口作為L(zhǎng)CD的控制線,P2.0~P2.2分別接LCD1602的RS、RW和E端;LC

56、D1602的其它三個(gè)控制端V和V、V分別接電源和地。系統(tǒng)顯示電路組成如圖8所示。</p><p>  圖8 系統(tǒng)硬件電路組成</p><p>  2.5單片機(jī)控制繼電器</p><p>  首先看看繼電器的驅(qū)動(dòng)</p><p>  圖9繼電器接線圖這是典型的繼電器驅(qū)動(dòng)電路圖,這樣的圖在網(wǎng)絡(luò)上隨處可以搜到,并且標(biāo)準(zhǔn)教科書(shū)上一般也是這樣的電路圖

57、</p><p>  為什么要明白這個(gè)圖的原理?單片機(jī)是一個(gè)弱電器件,一般情況下它們大都工作在5V甚至更低.驅(qū)動(dòng)電流在mA級(jí)以下.而要把它用于一些大功率場(chǎng)合,比如控制電動(dòng)機(jī),顯然是不行的.所以,就要有一個(gè)環(huán)節(jié)來(lái)銜接,這個(gè)環(huán)節(jié)就是所謂的"功率驅(qū)動(dòng)".繼電器驅(qū)動(dòng)就是一個(gè)典型的、簡(jiǎn)單的功率驅(qū)動(dòng)環(huán)節(jié).在這里,繼電器驅(qū)動(dòng)含有兩個(gè)意思:一是對(duì)繼電器進(jìn)行驅(qū)動(dòng),因?yàn)槔^電器本身對(duì)于單片機(jī)來(lái)說(shuō)就是一個(gè)功率器件;

58、還有就是繼電器去驅(qū)動(dòng)其他負(fù)載,比如繼電器可以驅(qū)動(dòng)中間繼電器,可以直接驅(qū)動(dòng)接觸器,所以,繼電器驅(qū)動(dòng)就是單片機(jī)與其他大功率負(fù)載接口.這個(gè)很重要,因?yàn)?一直讓我們的電氣工程師(我指的是那些沒(méi)有學(xué)習(xí)過(guò)相應(yīng)的電子技術(shù)的)感到迷惑不解的是:一個(gè)小小的芯片,怎么會(huì)有如此強(qiáng)大的威力來(lái)控制像電動(dòng)機(jī)這樣強(qiáng)大的東西?</p><p>  怎么樣理解這個(gè)電路圖? 要理解這個(gè)電路,其實(shí)也比較容易.那么請(qǐng)您按照我的思路來(lái),應(yīng)該沒(méi)有問(wèn)題

59、:首先的,里面的三極管很重要.三極管是電子電路里很重要的一個(gè)元件.怎么樣理解三極管呢? 簡(jiǎn)單的來(lái)說(shuō)三極管有兩個(gè)作用,一個(gè)是放大作用,一個(gè)是開(kāi)關(guān)作用.(嚴(yán)格來(lái)講開(kāi)關(guān)作用是放大作用的極限情況,不過(guò)沒(méi)關(guān)系,把兩者分開(kāi),更便于理解它的工作原理).在這里,我們只了解它跟本電路有關(guān)的開(kāi)關(guān)作用.首先把三極管想成一個(gè)水龍頭.上面的Vcc就是水池,繼電器是一個(gè)水輪機(jī),下面的GND是比水池低的任何一點(diǎn).剛才說(shuō)過(guò),三極管就是水龍頭,它的把手就是那個(gè)帶有

60、電阻的引腳.現(xiàn)在,單片機(jī)的某一個(gè)需要控制這個(gè)繼電器電路的輸出引腳就是一只"手",當(dāng)單片機(jī)的這個(gè)引腳輸出低電平的時(shí)候,就像"手"在打開(kāi)三極管"水龍頭",水就從上往下流,繼電器"水輪機(jī)"就開(kāi)始轉(zhuǎn)起來(lái)了.反之,如果是輸出高電平,"手"就開(kāi)始關(guān)"水龍頭",繼電器"水輪機(jī)"因?yàn)闆](méi)有水流下來(lái),就會(huì)停止.這就

61、是三極管的開(kāi)關(guān)作用.簡(jiǎn)單的理解和記憶就是:三極管是一個(gè)開(kāi)關(guān)器件,其實(shí)你真的可以將它看成是一個(gè)開(kāi)關(guān),只不過(guò)它不是用手來(lái)控制,而是用電壓(電流)來(lái)控制的,因此,三極</p><p>  圖上還有一個(gè)東西,是保護(hù)二極管,如果不需要深入理解的話,你大可不必追就為什么有它存在,但是一定得記住,只要是用三極管驅(qū)動(dòng)繼電器的場(chǎng)合,一般都有它的存在.需要特別注意的是它的接法:并聯(lián)在繼電器兩端,陰極一定接vcc</p>

62、<p>  這里我們先要安裝好51試驗(yàn)板上的兩個(gè)輕觸按鈕開(kāi)關(guān),我們采用的是獨(dú)立式按鈕開(kāi)關(guān),也就是說(shuō)將開(kāi)關(guān)直接連接到電源的地和單片機(jī)的對(duì)應(yīng)引腳之間,這里K1接到單片機(jī)的P3.6引腳,K2接到P3.7。正常情況下單片機(jī)的P3.6、P3.7都被程序初始化時(shí)置“1” 當(dāng)有按鍵按下時(shí)對(duì)應(yīng)的單片機(jī)引腳被按鈕開(kāi)關(guān)下拉為“0”,這種方法比較直觀,而且比較簡(jiǎn)單,在按鍵數(shù)量不多的場(chǎng)合下使用很廣泛。</p><p>  

63、因?yàn)闄C(jī)械開(kāi)關(guān)開(kāi)關(guān)時(shí)有抖動(dòng),所以需要在程序中加一個(gè)軟件去抖動(dòng)程序,它的工作原理如下:當(dāng)單片機(jī)檢測(cè)到有按鍵被按下后立即執(zhí)行一個(gè)10毫秒的延時(shí)程序,然后再在檢測(cè)該引腳是否仍然為閉合狀態(tài)?如果仍然為閉合說(shuō)明確認(rèn)該鍵被按下立即執(zhí)行相應(yīng)的處理程序,否則可能是干擾,丟棄這次檢測(cè)結(jié)果。</p><p>  接下來(lái)我們?cè)侔惭b一個(gè)四位的撥碼開(kāi)關(guān),就是圖中紅色的開(kāi)關(guān),它相當(dāng)于四個(gè)裝在一起的撥動(dòng)開(kāi)關(guān),當(dāng)開(kāi)關(guān)撥到"ON"

64、;一側(cè)時(shí),對(duì)應(yīng)的那路就會(huì)接通,反之?dāng)嚅_(kāi).它在單片機(jī)中一般用于設(shè)置初始參數(shù),而且不經(jīng)常改變的場(chǎng)合。這里因?yàn)閱纹瑱C(jī)引腳資源不夠,所以我們只使用了撥碼開(kāi)關(guān)的第2、3、4位,第1位閑置。三個(gè)開(kāi)關(guān)可以邏輯組合出8種狀態(tài),所以我們能夠方便靈活地預(yù)置多達(dá)7種的倒計(jì)時(shí)時(shí)間。</p><p>  最后我們來(lái)安裝兩個(gè)繼電器和相關(guān)電路,有了繼電器我們的實(shí)驗(yàn)板不再僅僅是做做實(shí)驗(yàn)而已,可以用于控制一些負(fù)載,比如說(shuō):充電器,洗衣機(jī),電風(fēng)扇等

65、,使我們的實(shí)驗(yàn)板的實(shí)用功能大大增強(qiáng),這也是電子制作實(shí)驗(yàn)室網(wǎng)站的單片機(jī)實(shí)驗(yàn)板和其他公司的產(chǎn)品不同的地方。</p><p>  這里繼電器由相應(yīng)的S8050三極管來(lái)驅(qū)動(dòng),開(kāi)機(jī)時(shí),單片機(jī)初始化后的P2.3/P2.4為高電平,+5伏電源通過(guò)電阻使三極管導(dǎo)通,所以開(kāi)機(jī)后繼電器始終處于吸合狀態(tài),如果我們?cè)诔绦蛑薪o單片機(jī)一條:CLR P2.3或者CLR P2.4的指令的話,相應(yīng)三極管的基極就會(huì)被拉低到零伏左右,使相應(yīng)的三極管截

66、至,繼電器就會(huì)斷電釋放,每個(gè)繼電器都有一個(gè)常開(kāi)轉(zhuǎn)常閉的接點(diǎn),便于在其他電路中使用,繼電器線圈兩端反相并聯(lián)的二極管是起到吸收反向電動(dòng)勢(shì)的功能,保護(hù)相應(yīng)的驅(qū)動(dòng)三極管,這種繼電器驅(qū)動(dòng)方式硬件結(jié)構(gòu)比較簡(jiǎn)單。</p><p><b>  3 系統(tǒng)軟件設(shè)計(jì)</b></p><p><b>  3.1 主程序設(shè)計(jì)</b></p><p>

67、;  系統(tǒng)主流程圖如圖10所示。</p><p>  圖10 主程序流程圖</p><p>  3.2 讀DS18B20的序列號(hào)程序設(shè)計(jì) </p><p>  讀DS18B20的序列號(hào)的主程序設(shè)計(jì)流程圖如圖10所示,程序中主要對(duì)DS18B20的初始化子程序,然后讀出DS18B20的64位序列號(hào)存入到40H~47H中,然后將40H內(nèi)容送入P0口,顯示出40H中的二進(jìn)制

68、數(shù),記錄下來(lái),然后分別把41H-47H的內(nèi)容送入P0口顯示并記錄,五個(gè)DS18B20的序列號(hào)分別為:</p><p>  (1)6F0000030A2F6D28</p><p>  (2)600000030A2D0F28</p><p>  (3)2D0000030A384628</p><p>  (4)/20000030A516B28&l

69、t;/p><p>  (5)4F0000030A46/828</p><p>  圖11讀DS18B20的序列號(hào) 圖12 溫度報(bào)警子程序流程圖</p><p><b>  主程序流程圖</b></p><p>  3.3溫度報(bào)警子程序流程圖</p><p>  溫度報(bào)警子程序流程圖

70、如圖21所示。先將設(shè)定溫度報(bào)警上限值與當(dāng)前溫度帶借位相減,如果借位標(biāo)志位為1,調(diào)高溫度報(bào)警程序,溫度值后面顯示“>H”否則順序執(zhí)行,把當(dāng)前溫度值與下限報(bào)警溫度值相減,如果借位標(biāo)志位為1,調(diào)低溫報(bào)警程序,溫度值后面顯示“<L”,否則順序執(zhí)行,溫度值后顯示“!”。</p><p>  3.4 溫度的精度設(shè)計(jì)</p><p>  本設(shè)計(jì)要求溫度顯示精確到0.1度,DS18B20溫度傳

71、感器的高速暫存器TL中的低四位為小數(shù)位,二進(jìn)制數(shù)從0000~1111共16個(gè)數(shù),乘以0.0625即為應(yīng)顯示的數(shù)值,每個(gè)二級(jí)制數(shù)乘以0.0625取小數(shù)點(diǎn)后一位得到一個(gè)小數(shù)碼表,即0000對(duì)應(yīng)00H,0010對(duì)應(yīng)01H。取出的二進(jìn)制數(shù)與DB塊首地址相加為地址去尋址小數(shù)碼表,即可得到實(shí)際小數(shù)位的BCD碼。程序如下所示:</p><p>  MOV A,TEMPL</p><p>  ANL

72、A,#0FH ;取出小數(shù)位的溫度值 </p><p>  MOV DPTR,#TEMPDOTTAB</p><p>  MOVC A,@A+DPTR ;乘以0.0625</p><p>  MOV TEMPLC,A ;TEMPLC LOW=小數(shù)部分 BCD</p><p>&l

73、t;b>  小數(shù)部分碼表:</b></p><p>  TEMPDOTTAB:</p><p>  DB 00H,00H,01H,01H,02H,03H,03H,04H</p><p>  DB 05H,05H,06H,06H,07H,08H,08H,09H</p><p><b>  4系統(tǒng)仿真調(diào)試<

74、;/b></p><p>  4.1 軟件編程與調(diào)試簡(jiǎn)介</p><p>  Keil軟件是美國(guó)Keil Software 公司出品的51 系列兼容單片機(jī)C語(yǔ)言和匯編語(yǔ)言軟件開(kāi)發(fā)系統(tǒng) ,而且是目前最流行開(kāi)發(fā)MCS-51系列單片機(jī)的軟件。Keil提供了包括C編譯器、宏匯編、連接器、庫(kù)管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開(kāi)發(fā)方案,通過(guò)一個(gè)集成開(kāi)發(fā)環(huán)境(uVision)將這些部份組合

75、在一起。運(yùn)行Keil軟件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空閑的硬盤(pán)空間、WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。</p><p>  在KEIL軟件中編程的步驟如下:</p><p>  先建一個(gè)新的工程,保存到一個(gè)位置。 選擇處理器,這里選擇AT89C51。接下來(lái)會(huì)問(wèn)是否把Startup Code加入到工程,選否即可。工程就建完了。新建一

76、個(gè)文檔用來(lái)編輯程序。編輯完存為.c。接下來(lái)把保存的.c文件加入到工程里。下面進(jìn)行工程配置。點(diǎn)擊Project菜單下的Options for Target ‘Target 1’。在彈出對(duì)話框的Target 項(xiàng)里輸入晶振為12M,然后勾上Use On-chip ROM。在Output項(xiàng)里勾上Create HEX File。這就是產(chǎn)生要燒寫(xiě)的.hex文件。然后點(diǎn)擊Project菜單里的build target或Rebuild all targ

77、et files以編譯要燒寫(xiě)的.hex文件。編譯完會(huì)在下面Output Window里顯示編譯成功與否的信息和錯(cuò)誤提示。如果出現(xiàn)錯(cuò)誤,雙擊錯(cuò)誤提示處即可找到錯(cuò)誤程序語(yǔ)句</p><p>  4.2 系統(tǒng)軟、硬件交互仿真</p><p><b>  程序編譯</b></p><p>  (1)啟動(dòng)Protuse,選擇Protuse->New

78、 Protuse,在彈出的對(duì)話框中輸入工程的名字,點(diǎn)擊保存;選擇ATMEL公司的AT89C51單片機(jī)。</p><p>  (2)在Source Group 1上點(diǎn)擊右鍵,選擇“Add files to Group Source Group 1”,把所有的源文件加進(jìn)來(lái)。</p><p>  (3) 點(diǎn)擊Project->Build target或者使用快捷鍵F9,編譯工程。當(dāng)Out

79、put Windows中提示“0 Error”時(shí),則程序編譯成功,生成可執(zhí)行文件l.HEX。</p><p><b>  程序加載</b></p><p>  在編輯環(huán)境中雙擊AT89C51,在彈出的對(duì)話框中將編譯生成可執(zhí)行文件1.HEX .加載進(jìn)芯片中,設(shè)單片機(jī)的時(shí)鐘工作頻率為12MHZ。</p><p>  4.3 實(shí)物電路調(diào)試</p

80、><p>  DS18B20有三個(gè)引腳,在焊接電路板時(shí),分別將四個(gè)DS18B20的正極引腳并到一起,負(fù)極引腳并在一起,信號(hào)引腳并在一起,各引出一個(gè)引腳與單片機(jī)相連.</p><p>  編好的程序需要通過(guò)USB 轉(zhuǎn)串口線驅(qū)動(dòng)軟件才能下載到單片機(jī)中,在使用之前需要到設(shè)備管理器看一下,記住USB 轉(zhuǎn)串口線的端口號(hào)為COM3,選擇STC89C51單片機(jī),找到需要下載的程序即可下載到單片機(jī)中。把LCD

81、1602插到1602擴(kuò)展口上,LCD01602的三個(gè)控制端分別為P1.0~P1.2。分別從12864擴(kuò)展口和JTAG接口引出DS18B20的電源正極和負(fù)極接到DS18B20焊接板的正極和負(fù)極擴(kuò)展口,P3.7接到DS18B20的擴(kuò)展口。</p><p>  程序下載不進(jìn)單片機(jī),則要檢查電路,看有什么地方虛焊和漏焊,我在下載中就碰到了下載不下,后來(lái)檢查發(fā)現(xiàn)晶振中少了根線跟地線相連。系統(tǒng)調(diào)試完后應(yīng)對(duì)測(cè)量誤差和重復(fù)一致性

82、進(jìn)行多次實(shí)驗(yàn)分析,不斷優(yōu)化系統(tǒng)使其達(dá)到實(shí)際使用的測(cè)量要求。</p><p><b>  5總結(jié)展望</b></p><p>  本篇論文主要介紹了DS18B20的采集溫度功能,以及如何用單片機(jī)把LCD1602,繼電器和DS18B20聯(lián)系在一起,并發(fā)揮它們的作用。通過(guò)網(wǎng)上查閱,發(fā)現(xiàn)DS18B20多點(diǎn)溫度測(cè)量系統(tǒng)應(yīng)用廣泛,如:電力工業(yè)、煤礦、森林、火災(zāi)、高層建筑等場(chǎng)合。&

83、lt;/p><p>  經(jīng)過(guò)這一次課程設(shè)計(jì),我學(xué)了不少的知識(shí),學(xué)會(huì)了怎樣查閱資料和利用百度,以及熟練地使用PROTEUS仿真軟件,PROTEL99和KEIL開(kāi)發(fā)工具。做實(shí)物也是個(gè)很有難度跟細(xì)心的活,焊板要有耐心,不然容易出現(xiàn)虛焊跟漏焊。然后就如何找出芯片不能工作的原因,和發(fā)現(xiàn)問(wèn)題后如何去解決,問(wèn)同學(xué)跟老師是很好的解決方法,且快速有效,這就是所謂的人多力量大的道理。通過(guò)這次課程設(shè)計(jì),我更加深刻地認(rèn)識(shí)到只有將書(shū)本與具體的

84、實(shí)踐相結(jié)合,才會(huì)有真正的收獲,才能鞏固自己的所學(xué),認(rèn)識(shí)到自己的不足。</p><p><b>  致謝</b></p><p>  大學(xué)所學(xué)的知識(shí)在這次的課程設(shè)計(jì)及課程論文里得到了充分體現(xiàn),在完成這個(gè)課程設(shè)計(jì)的過(guò)程中,也遇到了不少的問(wèn)題,但在老師和同學(xué)的幫助下,問(wèn)題很快就得到了解決。在此過(guò)程中,我也學(xué)到了不少的新的知識(shí),自己的動(dòng)手能力得到了大大的提高,分析問(wèn)題和總結(jié)問(wèn)

85、題也積累了不少的經(jīng)驗(yàn),在此我衷心地感謝我的指導(dǎo)老師—,老師。感謝他對(duì)我完成這個(gè)課題的支持與幫助,在設(shè)計(jì)過(guò)程中給了我寶貴的建儀和意見(jiàn),同時(shí)也感謝我周邊的同學(xué),他們?yōu)槲姨峁┝撕芏嗟馁Y料和幫助。在此也感謝其他同學(xué)對(duì)我學(xué)業(yè)的支持與關(guān)心。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 李全利.《單片機(jī)原理及應(yīng)用技術(shù)》 北京高等教育出版社 2004.1

86、</p><p>  [2] 劉蘊(yùn)陶.《電工電子技術(shù)》 北京 高等教育出版社 2005.6. [3] 南玲玲. 《機(jī)械制圖及計(jì)算機(jī)繪圖》 北京 化學(xué)工業(yè)出版社 2003,7.</p><p>  [4] 朱清慧等. 《Proteus教程:電子線路設(shè)計(jì)、制版與仿真》 北京 清華大學(xué)出

87、版社 2008.9. </p><p>  [5] PROTUSE仿真論壇. http://www.protuse.com.cn/bbs/.</p><p>  [6] 51單片機(jī)學(xué)習(xí)網(wǎng)論壇. http://www.51c51.com/bbs.</p><p>  [7] 程序員開(kāi)發(fā)網(wǎng). http://www.pudn.com/.</p><p&

88、gt;  [8] 百度. http://www.baidu.com.cn/.</p><p>  [9] 豆丁網(wǎng). http://www.docin.com/</p><p><b>  附錄1:電路原理圖</b></p><p>  附錄2:設(shè)計(jì)的PCB圖</p><p><b>  附錄3:實(shí)物圖</

89、b></p><p><b>  附錄4:程序清單</b></p><p>  #include <REGX52.H></p><p>  #include <Intrins.h></p><p>  #include <stdio.h></p><p>

90、<b>  //引腳定義</b></p><p>  sbit DQ = P2^6;//數(shù)據(jù)線端口</p><p><b>  //接口定義</b></p><p>  sbit RS=P1^0;</p><p>  sbit RW=P1^1;</p><p>  sbit

91、 E=P1^2;</p><p>  sbit Buzz=P3^7; //繼電器</p><p>  sbit KeyEnter=P2^0;</p><p>  sbit KeyAdd=P2^1;</p><p>  sbit KeyDown=P2^2;</p><p>  sbit KeyExit=P2^3;<

92、/p><p>  #defineDATA P0</p><p>  //DS18B20序列號(hào),通過(guò)調(diào)用GetROMSequence()函數(shù)在P1口讀出(讀8次)也可直接查看仿真DS18B20的屬性得到</p><p>  unsigned char code ROMData1[8] = {0x28, 0xD6, 0x38, 0x0A, 0x03, 0x00, 0x00

93、, 0x2D};//U1</p><p>  unsigned char code ROMData2[8] = {0x28, 0x88, 0x46, 0x0A, 0x03, 0x00, 0x00, 0xDF};//U2</p><p>  unsigned char code ROMData3[8] = {0x28, 0x6B, 0x51, 0x0A, 0x03, 0x00, 0x00

94、, 0x82};//U3</p><p>  unsigned char code ROMData4[8] = {0x28, 0x6D, 0x2F, 0x0A, 0x03, 0x00, 0x00, 0xFF};//U4</p><p>  unsigned char code ROMData5[8] = {0x28, 0x9F, 0x2D, 0x0A, 0x03, 0x00, 0x00

95、, 0x60};//U5</p><p>  signed char H;//溫度上限</p><p>  signed char L;//溫度下限</p><p>  signed char temp_data;//存放溫度中間變量</p><p>  //大致6-10us延時(shí)</p><p>  void Del

96、ayUs2x(unsigned char t)</p><p><b>  { </b></p><p>  while(--t);</p><p><b>  }</b></p><p>  /*------------------------------------------------&

97、lt;/p><p>  mS延時(shí)函數(shù),大致延時(shí)1mS</p><p>  ------------------------------------------------*/</p><p>  void DelayMs(unsigned char tt)</p><p><b>  {</b></p><

98、;p>  while(tt--)</p><p><b>  {</b></p><p>  DelayUs2x(245);</p><p>  DelayUs2x(245);</p><p><b>  }</b></p><p><b>  }</b

99、></p><p>  //延時(shí)500ms子函數(shù)</p><p>  void Delay500ms()</p><p><b>  {</b></p><p>  unsigned char a, b, c;</p><p>  for (a = 0; a < 250; a++)&l

100、t;/p><p>  for (b = 0; b < 3; b++)</p><p>  for (c = 0; c < 220; c++);</p><p><b>  }</b></p><p>  //DS18B20初始化</p><p>  bit Initialization()

101、</p><p><b>  {</b></p><p>  bit dat=0;</p><p>  DQ = 1; //DQ復(fù)位</p><p>  DelayUs2x(5); //稍做延時(shí)</p><p>  DQ = 0; //單片機(jī)將DQ拉低</p>

102、<p>  DelayUs2x(200); //精確延時(shí) 大于 480us 小于960us</p><p>  DelayUs2x(200);</p><p>  DQ = 1; //拉高總線</p><p>  DelayUs2x(50); //15~60us 后 接收60-240us的存在脈沖</p><p>

103、  dat=DQ; //如果x=0則初始化成功, x=1則初始化失敗</p><p>  DelayUs2x(25); //稍作延時(shí)返回</p><p>  return dat;</p><p><b>  }</b></p><p>  //寫(xiě)一個(gè)字節(jié)(從低位開(kāi)始寫(xiě))</p><p&

104、gt;  void WriteByte(unsigned char btData)</p><p><b>  {</b></p><p>  unsigned char i, btBuffer;</p><p>  for (i = 0; i < 8; i++)</p><p><b>  {</

105、b></p><p>  btBuffer = btData >> i;</p><p>  if (btBuffer & 1)</p><p><b>  {</b></p><p><b>  DQ = 0;</b></p><p><b&

106、gt;  _nop_();</b></p><p><b>  _nop_();</b></p><p><b>  DQ = 1;</b></p><p>  DelayUs2x(15);</p><p><b>  }</b></p><p&

107、gt;<b>  else</b></p><p><b>  {</b></p><p><b>  DQ = 0;</b></p><p>  DelayUs2x(15);</p><p>  DQ = 1;</p><p><b>

108、  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  //讀一個(gè)字節(jié)(從低位開(kāi)始讀)</p><p>  unsigned char ReadByte()</p><p><b>  {<

109、;/b></p><p>  unsigned char i, btDest;</p><p>  for (i = 0; i < 8; i++)</p><p><b>  {</b></p><p>  btDest >>= 1;</p><p><b>  

110、DQ = 0;</b></p><p><b>  _nop_();</b></p><p><b>  _nop_();</b></p><p><b>  DQ = 1;</b></p><p>  DelayUs2x(15);</p><p

111、>  if (DQ) btDest |= 0x80; </p><p>  DelayUs2x(15);</p><p><b>  }</b></p><p>  return btDest;</p><p><b>  }</b></p><p><b>

112、  //序列號(hào)匹配</b></p><p>  void MatchROM(const unsigned char *pMatchData)</p><p><b>  {</b></p><p>  unsigned char i;</p><p>  Initialization();</p>

113、<p>  WriteByte(0x55);</p><p>  for (i = 0; i < 8; i++) WriteByte(*(pMatchData + i));</p><p><b>  }</b></p><p>  //得到64位ROM序列(在P1口顯示,必須與Proteus聯(lián)調(diào)且在單步調(diào)試下才能得到)&

114、lt;/p><p>  /*void GetROMSequence()</p><p><b>  {</b></p><p>  unsigned char i;</p><p>  Initialization();</p><p>  WriteByte(0x33);</p>&l

115、t;p>  for (i = 0; i < 8; i++)</p><p>  P1 = ReadByte();</p><p><b>  }*/</b></p><p><b>  //讀取溫度值</b></p><p>  unsigned int ReadTemperature

116、(unsigned char i)</p><p><b>  {</b></p><p>  unsigned int iTempDataH;</p><p>  unsigned char iTempDataL;</p><p>  Initialization();</p><p>  Wr

117、iteByte(0xcc);//跳過(guò)ROM匹配</p><p>  WriteByte(0x44);//啟動(dòng)轉(zhuǎn)換</p><p>  Delay500ms(); //調(diào)用一次就行</p><p>  Delay500ms(); </p><p>  Initialization();&

溫馨提示

  • 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ù)僅提供信息存儲(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)論