基于單片機(jī)的電子聲音報(bào)溫溫度計(jì)_論文_第1頁
已閱讀1頁,還剩27頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p>  第四屆電子設(shè)計(jì)大賽(論 文)</p><p>  基于單片機(jī)的電子聲音報(bào)溫溫度計(jì)</p><p>  完成日期 2013 年 6 月 15 日</p><p><b>  1 引言4</b></p><p><b>  1.1研究背景4</b></

2、p><p><b>  1.2研究現(xiàn)狀4</b></p><p>  2 總體設(shè)計(jì)方案5</p><p><b>  2.1設(shè)計(jì)思路5</b></p><p>  2.2總體設(shè)計(jì)框圖5</p><p><b>  3 硬件設(shè)計(jì)7</b></p

3、><p>  3.1 單片機(jī)的選擇7</p><p>  3.1.1 STC89C52單片機(jī)的主要特性:7</p><p>  3.1.2 引腳功能及管腳電壓8</p><p>  3.2 NV035A語音芯片10</p><p>  3.3 溫度傳感器的選擇13</p><p>  3.

4、3.1 DS18B20的主要特性13</p><p>  3.3.2 DS18B20的實(shí)物圖14</p><p>  3.3.3 DS18B20使用中注意事項(xiàng)14</p><p>  3.4 溫度檢測電路15</p><p>  3.5 復(fù)位電路16</p><p>  3.6 時(shí)鐘電路17</p&g

5、t;<p><b>  4 軟件設(shè)計(jì)18</b></p><p><b>  4.1 概述18</b></p><p>  4.2 主程序模塊18</p><p><b>  5 仿真19</b></p><p><b>  6 綜合調(diào)試20&

6、lt;/b></p><p><b>  6.1焊接20</b></p><p><b>  6.2調(diào)試21</b></p><p><b>  結(jié)論21</b></p><p><b>  致謝21</b></p><p

7、><b>  參考文獻(xiàn)22</b></p><p><b>  附錄 源碼22</b></p><p>  摘 要:隨著現(xiàn)代化信息技術(shù)的飛速發(fā)展,單片機(jī)技術(shù)已經(jīng)十分普及,在實(shí)時(shí)檢測和自動控制的單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)往往是作為核心部件來使用。</p><p>  本論文介紹了一種以單片機(jī)STC89C52為主要控

8、制器件,以DS18B20為溫度傳感器通過LED屏傳送數(shù)據(jù),實(shí)現(xiàn)溫度顯示的新型數(shù)字溫度計(jì)。該數(shù)字溫度計(jì)的測量范圍為-55~125℃,顯示分辨率為0.1℃,誤差≤±1℃。由于采用了溫度傳感器DS18B20作為檢測元件,與傳統(tǒng)的溫度計(jì)相比,本文設(shè)計(jì)的數(shù)字溫度計(jì)減少了外部的硬件電路,具有讀數(shù)方便,測溫范圍廣,測溫精確,數(shù)字顯示,適用范圍寬等特點(diǎn)。該系統(tǒng)結(jié)構(gòu)簡單,抗干擾能力強(qiáng),適合于各種環(huán)境下進(jìn)行現(xiàn)場溫度測量,可廣泛應(yīng)用于工業(yè)控溫系統(tǒng)、

9、溫度計(jì)、消費(fèi)產(chǎn)品以及其它溫度測控系統(tǒng)。</p><p>  With the rapid development of modern information technology, MCS technology has been very popular, in the MCS application system for real-time detection and automatic control, M

10、CS is often as a core component to use.</p><p>  This paper introduces a single-chip microcomputer STC89C52 as the main control device, with the temperature sensor DS18B20 for transmitting the data through t

11、he LED screen, the realization of a new type of digital thermometer temperature display. The measuring range of the digital thermometer is -55 ~ 125 ℃, the display resolution is 0.1 ℃, error less than ± 1 ℃. Because

12、 of the temperature sensor DS18B20 as the measuring element, compared with the traditional thermometer, digital thermometer is </p><p>  關(guān)鍵詞:單片機(jī)STC89C52;NV035A語音芯片;溫度傳感器DS18B20;LED顯示屏等。</p><p>&

13、lt;b>  1 引言 </b></p><p>  隨著現(xiàn)代信息技術(shù)的飛速發(fā)展和傳統(tǒng)工業(yè)改造的逐步實(shí)現(xiàn),人們在生產(chǎn)過程中會越來越關(guān)注精密而實(shí)用的儀器,能夠獨(dú)立工作的溫度檢測和顯示系統(tǒng)應(yīng)用于諸多領(lǐng)域。其中語音數(shù)字溫度計(jì)就是一個(gè)典型的例子,但人們對它的要求越來越高,要為現(xiàn)代人工作、科研、生活等提供更好更方便快捷的設(shè)施就需要從單片機(jī)技術(shù)入手,一切向著數(shù)字化控制,智能化控制方向發(fā)展。</p&g

14、t;<p><b>  1.1研究背景</b></p><p>  目前溫度計(jì)的發(fā)展很快,從原始的玻璃管溫度計(jì)發(fā)展到了現(xiàn)在的熱電阻溫度計(jì)、熱電偶溫度計(jì)、數(shù)字溫度計(jì)、電子溫度計(jì)等等,溫度計(jì)中傳感器是它的重要組成部分,它的精度、靈敏度基本決定了溫度計(jì)的精度、測量范圍、控制范圍和用途等。傳感器應(yīng)用極其廣泛,目前已經(jīng)研制出多種新型傳感器。</p><p>  傳

15、統(tǒng)的溫度檢測以熱敏電阻為溫度敏感元件。熱敏電阻的成本低,但需后續(xù)信號處理電路,而且可靠性相對較差,測溫準(zhǔn)確度低,檢測系統(tǒng)也有一定的誤差。本設(shè)計(jì)所介紹的數(shù)字溫度計(jì)與傳統(tǒng)的溫度計(jì)相比,具有讀數(shù)方便,測溫范圍廣,測溫精確,數(shù)字顯示,適用范圍寬等特點(diǎn),主要用于對測溫比較準(zhǔn)確的場所或科研實(shí)驗(yàn)室使用,可廣泛用用于工業(yè)控溫系統(tǒng)、溫度計(jì)、消費(fèi)產(chǎn)品以及其它溫度測控系統(tǒng)。目前,該產(chǎn)品已在溫控系統(tǒng)中得到了廣泛使用。</p><p> 

16、 因此本設(shè)計(jì)就嘗試通過編程與芯片的結(jié)合來解決傳統(tǒng)數(shù)字溫度計(jì)的弊端,設(shè)計(jì)出新型語音數(shù)字溫度計(jì)。</p><p><b>  1.2研究現(xiàn)狀</b></p><p>  溫度傳感器的發(fā)展現(xiàn)狀:溫度傳感器使用范圍廣,數(shù)量多,居各種傳感器之首,其發(fā)展大致經(jīng)歷了以下3個(gè)階段: </p><p>  1、傳統(tǒng)的分立式溫度傳感器(含敏感元件)——熱電偶傳感器

17、,主要是能夠進(jìn)行非電量和電量之間轉(zhuǎn)換。</p><p>  2、模擬集成溫度傳感器/控制器,集成傳感器是采用硅半導(dǎo)體集成工藝制成的,因此亦稱硅傳感器或單片集成溫度傳感器。</p><p>  3、智能溫度傳感器。它是微電子技術(shù)、計(jì)算機(jī)技術(shù)和自動測試技術(shù)(ATE_)的結(jié)晶。智能溫度傳感器內(nèi)部包含溫度傳感器、A/D傳感器、信號處理器、存儲器(或寄存器)和接口電路。</p><

18、;p><b>  2 總體設(shè)計(jì)方案</b></p><p><b>  2.1設(shè)計(jì)思路</b></p><p>  本設(shè)計(jì)是一個(gè)基于單片機(jī)AT89C52的數(shù)字溫度計(jì)和溫度傳感器DS18B20的設(shè)計(jì),用來測量環(huán)境溫度,測量范圍為-10~120℃,顯示分辨率為0.1℃,誤差≤±0.5℃.整個(gè)設(shè)計(jì)系統(tǒng)主要包括硬件電路的設(shè)計(jì)和系統(tǒng)軟件的設(shè)

19、計(jì)。硬件電路主要包括主控制器,測溫電路和顯示電路等。主控制器采用單片機(jī)STC89C52,溫度傳感器采用美國DALLAS半導(dǎo)體公司生產(chǎn)的DS18B20來實(shí)現(xiàn)環(huán)境溫度的采集和A/D轉(zhuǎn)換,同時(shí)因其輸出為數(shù)字形式,且為串行輸出,這就方便了單片機(jī)進(jìn)行數(shù)據(jù)處理,但同時(shí)也對編程提出了更高的要求。單片機(jī)把采集到的溫度進(jìn)行相應(yīng)的轉(zhuǎn)換后,顯示電路采用LED顯示器以靜態(tài)掃描法直讀顯示。系統(tǒng)程序主要包括主程序,讀出溫度子程序,寫入溫度子程序,語音播報(bào)系統(tǒng)等。&

20、lt;/p><p><b>  2.2總體設(shè)計(jì)框圖</b></p><p>  本系統(tǒng)采用單片機(jī)作為微控制器,如圖2.1。單片機(jī)用STC89C52、NV035A語音芯片、溫度傳感器用DS18B20,采用12MHZ晶振,電源采用5V。該電路經(jīng)過設(shè)計(jì)分析、繪圖、仿真調(diào)試、制板、焊接等工作后溫度計(jì)成形。</p><p>  采用數(shù)字溫度芯片DS18B20

21、測量溫度,輸出信號全數(shù)字化。便于單片機(jī)處理及控制,省去傳統(tǒng)的測溫方法的很多外圍電路。且該芯片的物理化學(xué)性很穩(wěn)定,它能用做工業(yè)測溫元件,此元件線形較好。在0—100攝氏度時(shí),最大線形偏差小于0.1攝氏度。DS18B20的最大特點(diǎn)之一采用了單總線的數(shù)據(jù)傳輸,由數(shù)字溫度計(jì)DS18B20和微控制器STC89C52構(gòu)成的溫度測量裝置,它直接輸出溫度的數(shù)字信號,可直接與計(jì)算機(jī)連接。這樣,測溫系統(tǒng)的結(jié)構(gòu)就比較簡單,體積也不大。采用52單片機(jī)控制,軟件

22、編程的自由度大,可通過編程實(shí)現(xiàn)各種各樣的算術(shù)算法和邏輯控制,而且體積小,硬件實(shí)現(xiàn)簡單,安裝方便。</p><p>  圖2.1 總體設(shè)計(jì)框圖 </p><p>  2.3所用主要元器件</p><p>  單片機(jī)STC89C52一個(gè)、NV035A語音芯片、溫度傳感器DS18B20一個(gè)、12MHz晶振一個(gè)、二位共陽極LED顯示屏一個(gè)、電源一個(gè)、排阻一個(gè)、USB一個(gè)、

23、電阻電容及導(dǎo)線若干。</p><p><b>  3 硬件設(shè)計(jì)</b></p><p>  3.1 單片機(jī)的選擇</p><p>  STC89C52作為溫度測試系統(tǒng)設(shè)計(jì)的核心器件。該器件是INTEL公司生產(chǎn)的MCS一5l系列單片機(jī)中的基礎(chǔ)產(chǎn)品,采是一個(gè)低電壓,高性能CMOS 8位單片機(jī),片內(nèi)含8k bytes的可反復(fù)擦寫的Flash只讀程序存

24、儲器和256 bytes的隨機(jī)存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲單元,STC89C52單片機(jī)在電子行業(yè)中有著廣泛的應(yīng)用。單片機(jī)小系統(tǒng)的電路圖如圖3-1-1所示。</p><p>  圖3.1 單片機(jī)小系統(tǒng)電路</p><p>  3.1.1 STC89C52單片機(jī)的主要特性

25、:</p><p> ?。?)兼容MCS-51指令系統(tǒng),4K字節(jié)可編程閃爍存儲器;</p><p> ?。?)8k可反復(fù)擦寫(大于1000次)Flash ROM;</p><p> ?。?)壽命為1000次寫/擦周期,數(shù)據(jù)保留時(shí)間可10年以上;</p><p> ?。?)全靜態(tài)工作模式:0Hz-33Hz;</p><p&g

26、t; ?。?)三級程序存儲器鎖定;</p><p>  (6)128*8位內(nèi)部RAM,32可編程I/O線;</p><p>  (7)兩個(gè)16位定時(shí)器/計(jì)數(shù)器,6個(gè)中斷源;</p><p> ?。?)全雙工串行UART通道,低功耗的閑置和掉電模式;</p><p> ?。?)低功耗空閑和掉電模式,軟件設(shè)置睡眠和喚醒功能;</p>

27、<p>  (10)有PDIP、PQFP、TQFP及PLCC等幾種封裝形式,以適應(yīng)不同產(chǎn)品的需求。</p><p>  3.1.2 引腳功能及管腳電壓</p><p>  STC89C52為8位通用微處理器,采用工業(yè)標(biāo)準(zhǔn)的C51內(nèi)核,在內(nèi)部功能及管腳排布上與通用的89S52相同。如圖3.2所示。</p><p>  圖3.2 STC89C52引腳圖<

28、;/p><p><b> ?。?)P0口</b></p><p>  P0口是一組8位漏極開路型雙向I/O口,也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時(shí),每位能吸收電流的方式驅(qū)動8個(gè)TTL邏輯門電路,對端口P0寫“1”時(shí),可作為高阻抗輸入端用。</p><p>  在訪問外部數(shù)據(jù)存儲器或程序存儲器時(shí),這組口線分時(shí)轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復(fù)用,在訪

29、問期間激活內(nèi)部上拉電阻。</p><p>  在Flash編程時(shí),P0口接收指令字節(jié),而在程序校驗(yàn)時(shí),輸出指令字節(jié),校驗(yàn)時(shí),要求外接上拉電阻。</p><p><b> ?。?)P1口</b></p><p>  P1是一個(gè)帶內(nèi)部上拉電阻的8位雙向I/O口,P1的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個(gè)TTL邏輯門電路。對端口寫“1”,通過內(nèi)部的

30、上拉電阻把端口拉到高電平,此時(shí)可作輸入口。作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號拉低時(shí)會輸出一個(gè)電流(IIL)。</p><p><b> ?。?)P2口</b></p><p>  P2是一個(gè)帶有內(nèi)部上拉電阻的8位雙向I/O口,P2的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個(gè)TTL邏輯門電路。對端口P2寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)

31、可作輸入口,作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號拉低時(shí)會輸出一個(gè)電流(IIL)。</p><p>  在訪問外部程序存儲器或16位地址的外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX@DPTR指令)時(shí),P2口送出高8位地址數(shù)據(jù)。在訪問8位地址的外部數(shù)據(jù)存儲器(如執(zhí)行MOVX@RI指令)時(shí),P2口輸出P2鎖存器的內(nèi)容。</p><p>  Flash編程或校驗(yàn)時(shí),P2亦接收高位地址和一

32、些控制信號。</p><p><b>  (4)P3口</b></p><p>  P3口是一組帶有內(nèi)部上拉電阻的8位雙向I/O口。P3口輸出緩沖級可驅(qū)動(吸收或輸出電流)4個(gè)TTL邏輯門電路。對P3口寫入“1”時(shí),它們被內(nèi)部上拉電阻拉高并可作為輸入端口。此時(shí),被外部拉低的P3口將用上拉電阻輸出電流(IIL)。</p><p>  P3口除了作

33、為一般的I/O口線外,更重要的用途是它的第二功能。</p><p>  P3口還接收一些用于Flash閃速存儲器編程和程序校驗(yàn)的控制信號。</p><p><b>  (5)RST</b></p><p>  復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將使單片機(jī)復(fù)位。</p><p> ?。?)ALE

34、/PROG</p><p>  當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時(shí),ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時(shí)鐘振蕩頻率的1/6輸出固定的脈沖信號,因此它可對外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲器時(shí)將跳過一個(gè)ALE脈沖。</p><p>  對Flash存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。 </p>

35、<p>  如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置ALE禁止位無效。</p><p><b> ?。?)PSEN</b></p><p>  程序儲存允許(PSEN)輸出是外部程序存儲器的讀選

36、通信號,當(dāng)AT89C52由外部程序存儲器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次PSEN有效,即輸出兩個(gè)脈沖。在此期間,當(dāng)訪問外部數(shù)據(jù)存儲器,將跳過兩次PSEN信號。</p><p><b> ?。?)EA/VPP</b></p><p>  外部訪問允許。欲使CPU僅訪問外部程序存儲器(地址為0000H—FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位

37、LB1被編程,復(fù)位時(shí)內(nèi)部會鎖存EA端狀態(tài)。</p><p>  如EA端為高電平(接VCC端),CPU則執(zhí)行內(nèi)部程序存儲器中的指令。</p><p>  Flash存儲器編程時(shí),該引腳加上+12V的編程允許電源VPP,當(dāng)然這必須是該器件是使用12V編程電壓VPP。</p><p><b> ?。?)XTAL1</b></p>&l

38、t;p>  振蕩器反相放大器的及內(nèi)部時(shí)鐘發(fā)生器的輸入端。</p><p><b> ?。?0)XTAL2</b></p><p>  振蕩器反相放大器的輸出端。</p><p>  3.2 NV035A語音芯片</p><p>  電壓:1.8-5.5V </p><p><

39、b>  靜態(tài)電流:>2uA</b></p><p>  聲音驅(qū)動方式:PWM直接驅(qū)動8歐0.5W喇叭(所有的都可以,只是聲音大小差別)</p><p><b>  語音內(nèi)容:</b></p><p>  使用說明:語音芯片可以通過單片機(jī)等其他控制設(shè)備,任意組合上面的數(shù)字,從而到達(dá)語音播報(bào)時(shí)間、星期、年、月、日、溫度、濕度

40、等。例如:今天是2012年3月17日現(xiàn)在北京時(shí)間是21點(diǎn)28分30秒。</p><p>  語音芯片是特定的固定標(biāo)準(zhǔn)模塊,可以通過單片機(jī)最少一個(gè)IO口控制多達(dá)32段聲音任意調(diào)用和組合的語音標(biāo)準(zhǔn)芯片。通常最常用的控制方式是采用了模擬串行的控制方式(3個(gè)IO)。如需要播放第幾個(gè)地址的內(nèi)容就發(fā)送幾個(gè)脈沖,可以快速的控制多達(dá)32段地址的任意組合。</p><p>  單片機(jī)控制語音芯片電路圖:&l

41、t;/p><p>  控制原理說明:此控制方式是采用了模擬串行的控制方式。如需要播放第幾個(gè)地址的內(nèi)容就發(fā)送幾個(gè)脈沖(大于0.2ms即可,建議采用1ms左右,下同)的原理,可以快速的控制多達(dá)32段地址的任意組合。</p><p>  模擬串行工作時(shí)各IO的作用:</p><p>  BUSY:芯片工作時(shí)(播放聲音),輸出低電平,停止工作或者待機(jī)是,保持高電平;</p

42、><p>  DATA:接受控制脈沖的腳位。收到幾個(gè)脈沖,就播放第幾個(gè)地址的內(nèi)容;</p><p>  RST:任何時(shí)候,收到高電平,都可以使芯片的播放指針歸零(就是是DATA的腳位恢復(fù)到初始狀態(tài)),同時(shí)即刻使芯片停止,進(jìn)入待機(jī)狀態(tài);</p><p><b>  工作示例:</b></p><p>  例如現(xiàn)在需要播放第十段

43、聲音。單片機(jī)控制原理是:先發(fā)送一個(gè)復(fù)位脈沖到RST腳,接著發(fā)送10個(gè)脈沖到DATA腳。芯片即刻工作,播放第十段的聲音;如果需要播放第五段的聲音,則是:先發(fā)送一個(gè)復(fù)位脈沖到RST腳,接著發(fā)送5個(gè)脈沖到DATA腳。芯片即刻工作,播放第5段的聲音;</p><p>  例如需要連續(xù)播放第十段和第五段聲音:先發(fā)送一個(gè)復(fù)位脈沖到RST腳,接著發(fā)送10個(gè)脈沖到DATA腳。芯片即刻工作,播放第十段的聲音,同時(shí)單片機(jī)判斷語音芯片

44、的BUSY是否是高電平,如果不是則一直等待,如果是高電平,則發(fā)送一個(gè)復(fù)位脈沖到RST腳,接著發(fā)送5個(gè)脈沖到DATA腳。芯片即刻工作,播放第5段的聲音.依此類推。</p><p>  簡單測試:很多使用者初次使用時(shí)候,沒有完全了解工作原理或者連接不當(dāng),導(dǎo)致在系統(tǒng)上面調(diào)試很長時(shí)間,以至于懷疑芯片的穩(wěn)定性,現(xiàn)在提供最簡單的測試方式,以便了解其工作原理。同時(shí)也大大提供初次調(diào)試的成功率。</p><p&

45、gt;  3.3 溫度傳感器的選擇</p><p>  DS18B20溫度傳感器是美國DALLAS公司推出的一種改進(jìn)型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且具有耐磨耐碰,體積小,使用方便,封裝形式多樣等特點(diǎn),適用于各種狹小空間設(shè)備數(shù)字測溫和控制領(lǐng)域。</p><p>  3.3.1 DS18B20的主要特性</p><p>  (

46、1)適應(yīng)電壓范圍更寬,電壓范圍:3.0~5.5V,在寄生電源方式下可由數(shù)據(jù)線供電;</p><p> ?。?)獨(dú)特的單線接口方式,DS18B20在與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊;</p><p>  (3)DS18B20支持多點(diǎn)組網(wǎng)功能,多個(gè)DS18B20可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)組網(wǎng)多點(diǎn)測溫;</p><p>  (4)

47、DS18B20在使用中不需要任何外圍元件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi);</p><p> ?。?)溫范圍-55℃~+125℃,在-10~+85℃時(shí)精度為±0.5℃;</p><p> ?。?)可編程的分辨率為9~12位,對應(yīng)的可分辨溫度分別為0.5℃、0.25℃、0.125℃和0.0625℃,可實(shí)現(xiàn)高精度測溫;</p><p>

48、 ?。?)在9位分辨率時(shí)最多在93.75ms內(nèi)把溫度轉(zhuǎn)換為數(shù)字,12位分辨率時(shí)最多在750ms內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,速度更快;</p><p> ?。?)測量結(jié)果直接輸出數(shù)字溫度信號,以“一線總線”串行傳送給CPU,同時(shí)可傳送CRC校驗(yàn)碼,具有極強(qiáng)的抗干擾糾錯(cuò)能力;</p><p>  (9)負(fù)壓特性:電源極性接反時(shí),芯片不會因發(fā)熱而燒毀,但不能正常工作。</p><p

49、>  3.3.2 DS18B20的實(shí)物圖</p><p><b>  如圖3.3</b></p><p>  圖3.3 DS18B20實(shí)物圖</p><p>  3.3.3 DS18B20使用中注意事項(xiàng)</p><p>  DS18B20雖然具有測溫系統(tǒng)簡單、測溫精度高、連接方便、占用口線少等優(yōu)點(diǎn),但在實(shí)際應(yīng)用中也

50、應(yīng)注意以下幾方面的問題: </p><p>  (1)較小的硬件開銷需要相對復(fù)雜的軟件進(jìn)行補(bǔ)償,由于DS18B20與微處理器間采用串行數(shù)據(jù)傳送,因此 ,在對DS18B20進(jìn)行讀寫編程時(shí),必須嚴(yán)格的保證讀寫時(shí)序,否則將無法讀取測溫結(jié)果。在使用PL/M、C等高級語言進(jìn)行系統(tǒng)程序設(shè)計(jì)時(shí),對 DS18B20操作部分最好采用匯編語言實(shí)現(xiàn)。 </p><p> ?。?)在DS18B20的有關(guān)資料中均未

51、提及單總線上所掛DS18B20數(shù)量問題,容易使人誤認(rèn)為可以掛任意多個(gè) DS18B20,在實(shí)際應(yīng)用中并非如此。當(dāng)單總線上所掛DS18B20超過8個(gè)時(shí),就需要解決微處理器的總線驅(qū)動問題,這一點(diǎn)在進(jìn)行多點(diǎn)測溫系統(tǒng)設(shè)計(jì)時(shí) 要加以注意。 </p><p> ?。?)連接DS18B20的總線電纜是有長度限制的。試驗(yàn)中,當(dāng)采用普通信號電纜傳輸長度超過50m時(shí),讀取的 測溫?cái)?shù)據(jù)將發(fā)生錯(cuò)誤。當(dāng)將總線電纜改為雙絞線帶屏蔽電纜時(shí),正常

52、通訊距離可達(dá)150m,當(dāng)采用每米絞合次數(shù)更多的雙絞線帶屏蔽電纜時(shí),正 常通訊距離進(jìn)一步加長。這種情況主要是由總線分布電容使信號波形產(chǎn)生畸變造成的。因此,在用DS18B20進(jìn)行長距離測溫系統(tǒng)設(shè)計(jì)時(shí)要充分考 慮總線分布電容和阻抗匹配問題。 </p><p> ?。?)在DS18B20測溫程序設(shè)計(jì)中,向DS18B20發(fā)出溫度轉(zhuǎn)換命令后,程序總要等待DS1820的返回信號,一旦 某個(gè)DS18B20接觸不好或斷線,當(dāng)程序讀

53、該DS18B20時(shí),將沒有返回信號,程序進(jìn)入死循環(huán)。這一點(diǎn)在進(jìn)行DS18B20硬件連接和軟件設(shè)計(jì)時(shí)也要給予 一定的重視。 測溫電纜線建議采用屏蔽4芯雙絞線,其中一對線接地線與信號線,另一組接VCC和地線,屏蔽層在源端單點(diǎn)接地。</p><p>  3.4 溫度檢測電路</p><p>  DS18B20最大的特點(diǎn)是單總線數(shù)據(jù)傳輸方式,DS18B20的數(shù)據(jù)I/O均由同一條線來完成。DS18B

54、20的電源供電方式有2種:外部供電方式和寄生電源方式。工作于寄生電源方式時(shí),VDD和GND均接地,他在需要遠(yuǎn)程溫度探測和空間受限的場合特別有用,原理是當(dāng)1Wire總線的信號線DQ為高電平時(shí),竊取信號能量給DS18B20供電,同時(shí)一部分能量給內(nèi)部電容充電,當(dāng)DQ為低電平時(shí)釋放能量為DS18B20供電。但寄生電源方式需要強(qiáng)上拉電路,軟件控制變得復(fù)雜(特別是在完成溫度轉(zhuǎn)換和拷貝數(shù)據(jù)到E2PROM時(shí)),同時(shí)芯片的性能也有所降低。因此,在條件允許

55、的場合,盡量采用外供電方式。無論是內(nèi)部寄生電源還是外部供電,I/O口線要接5KΩ左右的上拉電。在這里采用前者方式供電。</p><p>  外部電源供電方式是DS18B20最佳的工作方式,工作穩(wěn)定可靠,抗干擾能力強(qiáng),而且電路也比較簡單,可以開發(fā)出穩(wěn)定可靠的多點(diǎn)溫度監(jiān)控系統(tǒng)。在開發(fā)中使用外部電源供電方式,畢竟比寄生電源方式只多接一根VCC引線。在外接電源方式下,可以充分發(fā)揮DS18B20寬電源電壓范圍的優(yōu)點(diǎn),即使電

56、源電壓VCC降到3V時(shí),依然能夠保證溫度量精度。</p><p>  由于DS18B20只有一根數(shù)據(jù)線,因此它和主機(jī)(單片機(jī))通信是需要串行通信,而AT89C52有兩個(gè)串行端口,所以可以不用軟件來模擬實(shí)現(xiàn)。經(jīng)過單線接口訪問DS18B20必須遵循如下協(xié)議:初始化、ROM操作命令、存儲器操作命令和控制操作。要使傳感器工作,一切處理均嚴(yán)格按照時(shí)序。</p><p><b>  3.4

57、復(fù)位電路</b></p><p>  如圖3.5所示。上電復(fù)位用RC電路,電容用10uF,電阻用10K。</p><p>  根據(jù)DS18B20的通訊協(xié)議,主機(jī)(單片機(jī))控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過三個(gè)步驟:每一次讀寫之前都要對DS18B20進(jìn)行復(fù)位操作,復(fù)位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對DS18B20進(jìn)行預(yù)定的操作。復(fù)位要求主CPU將數(shù)據(jù)線

58、下拉500微秒,然后釋放,當(dāng)DS18B20收到信號后等待16~60微秒左右,后發(fā)出60~240微秒的存在低脈沖,主CPU收到此信號表示復(fù)位成功。</p><p>  單片機(jī)復(fù)位是使CPU和系統(tǒng)中的其它功能部件都處在一個(gè)確定的初始狀態(tài),復(fù)位是單片機(jī)的初始化操作,其主要功能是把PC初始化為0000H,使單片機(jī)從0000H單元開始執(zhí)行程序。單片機(jī)復(fù)位的條件是:必須使RST引腳加上持續(xù)兩個(gè)機(jī)器周期的高電平,復(fù)位電路在接電

59、瞬間,RESET端的電位與VCC相同,隨著充電電流的減少,RESET的電位逐漸下降。只要保證RESET為高電平的時(shí)間大于兩個(gè)機(jī)器周期,便能正常復(fù)位。復(fù)位后PC值為0000H,表明復(fù)位后程序從0000H開始執(zhí)行,從第一個(gè)單元取指令。例如,若時(shí)鐘頻率為12MHz,每機(jī)器周期為1us,則只需2us以上的高電平,在RST引腳出現(xiàn)高電平后的第二個(gè)機(jī)器周期執(zhí)行復(fù)位。單片機(jī)復(fù)位期間不產(chǎn)生ALE信號,即ALE=1.表明單片機(jī)復(fù)位期間不會有任何取指操作。

60、</p><p><b>  圖3.5 復(fù)位電路</b></p><p><b>  3.5 時(shí)鐘電路</b></p><p>  單片機(jī)的晶振頻率低于40MHZ,所用我們采用12MHZ,加兩個(gè)30pF電容。如圖3.6所示。</p><p>  時(shí)鐘電路用于產(chǎn)生單片機(jī)工作所需要的時(shí)鐘信號,單片機(jī)本身

61、就是一個(gè)復(fù)雜的同步時(shí)序電路,為了保證同步工作方式的實(shí)現(xiàn),電路應(yīng)在唯一的時(shí)鐘信號控制下嚴(yán)格的按時(shí)序進(jìn)行工作。</p><p>  一般的晶振振蕩電路都是在一個(gè)反相放大器的兩端接入晶振,再有兩個(gè)電容分別接到晶振的兩端,另一端接地,這兩個(gè)電容串聯(lián)的容量值應(yīng)該等于負(fù)載電容。</p><p>  在單片機(jī)內(nèi)部有一個(gè)高增益反相放大器,其輸入端為芯片引腳XTAL1,輸出端為引腳XTAL2,在芯片的外部通

62、過這兩個(gè)引腳跨接晶體震蕩器和微調(diào)電容,形成反饋電路,就構(gòu)成一個(gè)穩(wěn)定的自激震蕩器,一般的晶振的負(fù)載電容為20pF-45pF之間,考慮到元件引腳的等效輸入電容,本設(shè)計(jì)采用兩個(gè)22pF的電容構(gòu)成晶振的振蕩電路。設(shè)計(jì)電路中所使用的是12MHz的晶振,機(jī)器周期為1us,具體的時(shí)鐘電路如圖3.7所示。</p><p><b>  圖3.6 晶振電路</b></p><p>  數(shù)

63、字顯示溫度計(jì)的工作原理:</p><p>  基于STC89C52的溫度測量系統(tǒng)電路圖把溫度轉(zhuǎn)化成帶符號的數(shù)字信號(以十六位補(bǔ)碼形式,占兩個(gè)字節(jié)),若采用帶屏蔽的雙絞電纜線,連線的長度可以達(dá)到150m,輸出腳I/0直接與單片機(jī)的P3.4相連,R1為上拉電阻,傳感器采用外部電源供電。STC89C52是整個(gè)系統(tǒng)的核心部分,內(nèi)含2 KB的FLASH ROM,用戶程序存放在這里。顯示器模塊由二位一體的共陽數(shù)碼管組成。系統(tǒng)

64、程序分傳感器控制程序和顯示器程序兩部分,傳感器控制程序是按照DSl8B20的通信協(xié)議編制。系統(tǒng)的工作是在程序控制下,完成對傳感器的讀寫和對溫度的顯示。</p><p><b>  4 軟件設(shè)計(jì)</b></p><p><b>  4.1 概述</b></p><p>  整個(gè)系統(tǒng)的功能是由硬件電路配合軟件來實(shí)現(xiàn)的,當(dāng)硬件基

65、本定型后,軟件的功能也就基本定下來了。從軟件的功能不同可分為兩大類:一是監(jiān)控軟件(主程序),它是整個(gè)控制系統(tǒng)的核心,專門用來協(xié)調(diào)各執(zhí)行模塊和操作者的關(guān)系。二是執(zhí)行軟件(子程序),它是用來完成各種實(shí)質(zhì)性的功能如測量、計(jì)算、顯示、通訊等。每一個(gè)執(zhí)行軟件是一個(gè)小的功能執(zhí)行模塊。這里將各執(zhí)行模塊一一列出,并為每一個(gè)執(zhí)行模塊進(jìn)行功能定義和接口定義。各執(zhí)行模塊規(guī)劃好后,就可以規(guī)劃監(jiān)控程序了。首先要根據(jù)系統(tǒng)的總體功能選擇一種最合適的監(jiān)控程序結(jié)構(gòu),然后

66、根據(jù)實(shí)時(shí)性的要求,合理地安排監(jiān)控軟件和各執(zhí)行模塊之間地調(diào)度關(guān)系。</p><p><b>  4.2 主程序模塊</b></p><p>  主程序需要調(diào)用2個(gè)子程序,各模塊程序功能如下:</p><p> ?。?)數(shù)碼管顯示程序:向數(shù)碼的顯示送數(shù),控制系統(tǒng)的顯示部分。</p><p> ?。?)溫度測試及處理程序:對溫

67、度芯片送過來的數(shù)據(jù)進(jìn)行處理,進(jìn)行判斷和顯示。</p><p>  (3)語音播報(bào)模塊,當(dāng)按鍵時(shí)播報(bào)當(dāng)前語音。</p><p>  主程序流程見圖4.1:</p><p><b>  5 仿真</b></p><p>  Proteus軟件是英國Labcenter electronics公司出版的EDA工具軟件(該軟件中國

68、總代理為廣州風(fēng)標(biāo)電子技術(shù)有限公司)。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。它是目前最好的仿真單片機(jī)及外圍器件的工具。雖然目前國內(nèi)推廣剛起步,但已受到單片機(jī)愛好者、從事單片機(jī)教學(xué)的教師、致力于單片機(jī)開發(fā)應(yīng)用的科技工作者的青睞。Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計(jì),真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計(jì)。是目前世界上唯一將電路仿真軟件

69、、PCB設(shè)計(jì)軟件和虛擬模型仿真軟件三合一的設(shè)計(jì)平臺,其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即將增加Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器。</p><p>  Proteus軟件具有其它EDA工具軟件的功能。這些功能是: &

70、lt;/p><p><b>  (1)原理布圖;</b></p><p>  (2)PCB自動或人工布線;</p><p>  (3)SPICE電路仿真。</p><p><b>  革命性的特點(diǎn):</b></p><p> ?。?)互動的電路仿真</p><

71、p>  用戶甚至可以實(shí)時(shí)采用諸如RAM,ROM,鍵盤,馬達(dá),LED,LCD,AD/DA,部分SPI器件,部分IIC器件。</p><p> ?。?)仿真處理器及其外圍電路</p><p>  可以仿真51系列、AVR、PIC、ARM、等常用主流單片機(jī)。還可以直接在基于原理圖的虛擬原型 上編程,再配合顯示及輸出,能看到運(yùn)行后輸入輸出的效果。配合系統(tǒng)配置的虛擬邏輯分析儀、示波器等,Pro

72、teus建立了完備的電子設(shè)計(jì)開發(fā)環(huán)境。</p><p><b>  6 綜合調(diào)試</b></p><p><b>  6.1焊接</b></p><p><b>  6.1.1焊接要求</b></p><p> ?。?)電阻、二極管(發(fā)光二極管除外)均采用水平安裝,緊貼印刷版。

73、</p><p> ?。?)電解電容等盡量插到底,元件底面離印刷版最高不能大于4毫米。</p><p>  (3)插件裝配要美觀、均勻、端正、整齊,不能歪斜,高矮要有序。</p><p>  (4)所焊出來的焊點(diǎn)要求圓滑、光亮、防止虛焊、搭焊和散錫。</p><p> ?。?)布局合理,疏密適當(dāng)。</p><p>  

74、(6)用比較好的助焊劑。</p><p><b>  6.1.2焊接方法</b></p><p>  (1)右手持電烙鐵。左手用尖嘴鉗或鑷子夾持元件或?qū)Ь€。焊接前,電烙鐵要充分預(yù)熱。烙鐵頭刃面上要吃錫,即帶上一定量焊錫。</p><p> ?。?)將烙鐵頭刃面緊貼在焊點(diǎn)處。電烙鐵與水平面大約成60℃角。以便于熔化的錫從烙鐵頭上流到焊點(diǎn)上。烙鐵頭

75、在焊點(diǎn)處停留的時(shí)間控制在2~3秒鐘。</p><p> ?。?)抬開烙鐵頭,左手仍持元件不動。待焊點(diǎn)處的錫冷卻凝固后,才可松開左手。</p><p>  (4)用鑷子轉(zhuǎn)動引線,確認(rèn)不松動,然后可用偏口鉗剪去多余的引線。</p><p> ?。?)焊接時(shí)先用焊錫把導(dǎo)線接一下,一遍有毛刺,有放電現(xiàn)象。</p><p><b>  6.2

76、調(diào)試</b></p><p>  對于整個(gè)系統(tǒng)的調(diào)試是將溫度傳感器置于被監(jiān)測溫度處,接通系統(tǒng)電源,系統(tǒng)開始運(yùn)行,隨著溫度的不斷上升,顯示溫度不斷變化,離開被監(jiān)測溫度處,顯示溫度不斷下降。</p><p><b>  結(jié)論</b></p><p>  經(jīng)過我的努力,完成了本次課題的任務(wù)。設(shè)計(jì)制作的數(shù)字溫度計(jì)LED顯示屏語音播報(bào),通過仿

77、真很好的完成了基本要求部分和發(fā)揮需要的功能,達(dá)到了預(yù)期的目的。</p><p><b>  致謝</b></p><p>  通過這次設(shè)計(jì),受益匪淺,這主要得益于認(rèn)真負(fù)責(zé)的工作態(tài)度、嚴(yán)謹(jǐn)活潑的治學(xué)精神和深厚專業(yè)的理論水平。在撰寫論文之前,自己對論文的基本要求理解不是很充分,在老師的幫助與指導(dǎo)下,現(xiàn)在對論文有了一定的認(rèn)識,對它的基本結(jié)構(gòu)、所要論述的重點(diǎn)問題、以及撰寫論文

78、的基本步驟和評審都達(dá)到了相當(dāng)?shù)乃?。老師無論在理論上還是在實(shí)踐中,都給予了本人很大的幫助,使自己的理論和技術(shù)水平都得到很大的提高,這對于自己以后的工作和學(xué)習(xí)都是一種巨大的鼓舞。</p><p>  在本系統(tǒng)的設(shè)計(jì)過程和論文編寫過程中,很多同學(xué)和朋友給予了我許多無私的幫助,給我的設(shè)計(jì)和論文提出了很多寶貴的修改意見,在這里,我向這些無私幫助我的人表示衷心的感謝和良好的祝愿。</p><p> 

79、 至此,衷心感謝各位老師及同學(xué)多年來的辛勤培育和教導(dǎo)!</p><p><b>  參考文獻(xiàn)</b></p><p>  1.楊居義,單片機(jī)課程設(shè)計(jì)指導(dǎo)——清華大學(xué)出版社,2009</p><p>  2.張毅剛,基于Proteus的單片機(jī)課程的基礎(chǔ)實(shí)驗(yàn)與課程設(shè)計(jì)——人民郵電出版社,2012</p><p>  3.黃友

80、銳,單片機(jī)原理及應(yīng)用——合肥工業(yè)大學(xué)出版社,2006</p><p>  4. 高吉祥.全國大學(xué)生電子設(shè)計(jì)競賽培訓(xùn)系列教程——數(shù)字系統(tǒng)與自動控制系統(tǒng)設(shè)計(jì).北京: 電子工業(yè)出版社,2007.</p><p>  5. 陳梓城等.實(shí)用電子電路設(shè)計(jì)與調(diào)試.北京:中國電力出版社,2006.</p><p>  6. 黃智偉等.全國大學(xué)生電子設(shè)計(jì)競賽系統(tǒng)設(shè)計(jì).北京:北京航空航

81、天大學(xué)出版社,2008.</p><p>  7. 趙廣林. Protel 99SE 電路設(shè)計(jì)與制版. 電子工業(yè)出版社,2005. </p><p>  8. 高等學(xué)校畢業(yè)設(shè)計(jì)(論文)指導(dǎo)手冊-電子信息卷. 高等教育出版社.</p><p><b>  附錄 源碼</b></p><p>  #include <

82、reg52.h></p><p>  #define uchar unsigned char</p><p>  #define uint unsigned int</p><p>  sbit ds=P2^2; //DS18B20信號線</p><p>  sbit dula=P2^6; //數(shù)碼管段選線</p

83、><p>  sbit wela=P2^7; //數(shù)碼管位選線</p><p>  sbit busy=P2^0; //判忙端接8腳</p><p>  sbit SDA=P2^1; //信號端接7腳</p><p>  sbit RST=P2^2; //觸發(fā)端接6腳</p><p>  sbit

84、dula1=P3^0; //數(shù)碼管1</p><p>  sbit dula2=P3^1; //數(shù)碼管2</p><p>  sbit dula3=P3^2; //數(shù)碼管3</p><p>  sbit LED=P1^7; //工作指示燈</p><p>  sbit key=P3^7; //按鍵</p>

85、<p>  uchar shi,ge,fen; //溫度顯示</p><p>  uint temp; //溫度變</p><p>  float f_temp;</p><p>  unsigned char code table[]={</p><p>  0xc0,0xf9,0xa4,0xb0,</p&

86、gt;<p>  0x99,0x92,0x82,0xf8,</p><p>  0x80,0x90,0x88,0x83,</p><p>  0xc6,0xa1,0x86,0x8e}; //不帶小數(shù)點(diǎn)的編碼</p><p>  unsigned char code table1[]={</p><p>  0x40,0x

87、79,0x24,0x30,</p><p>  0x19,0x12,0x02,0x78,</p><p>  0x00,0x10,0x08,0x03,</p><p>  0x46,0x21,0x06,0x0e}; </p><p>  void delay(uint a) //延時(shí)函數(shù)</p><p>

88、<b>  {</b></p><p>  unsigned char i;</p><p>  while(a--) </p><p><b>  {</b></p><p>  for(i = 0; i < 125; i++); </p><p><b>

89、  } </b></p><p><b>  }</b></p><p>  /*******************************************************************************************************************************/</p

90、><p>  void dsreset(void) //18B20復(fù)位,初始化函數(shù)</p><p><b>  {</b></p><p><b>  uint i;</b></p><p><b>  ds=0;</b></p><p><b&

91、gt;  i=103;</b></p><p>  while(i>0)i--;</p><p><b>  ds=1;</b></p><p><b>  i=4;</b></p><p>  while(i>0)i--;</p><p><b

92、>  }</b></p><p>  bit tempreadbit(void) //讀1位函數(shù)</p><p><b>  {</b></p><p><b>  uint i;</b></p><p><b>  bit dat;</b></p&

93、gt;<p>  ds=0;i++; //i++ 起延時(shí)作用</p><p>  ds=1;i++;i++;</p><p><b>  dat=ds;</b></p><p>  i=8;while(i>0)i--;</p><p>  return (dat);</p>

94、;<p><b>  }</b></p><p>  uchar tempread(void) //讀1個(gè)字節(jié)</p><p><b>  {</b></p><p>  uchar i,j,dat;</p><p><b>  dat=0;</b></

95、p><p>  for(i=1;i<=8;i++)</p><p><b>  {</b></p><p>  j=tempreadbit();</p><p>  dat=(j<<7)|(dat>>1); //讀出的數(shù)據(jù)最低位在最前面,這樣剛好一個(gè)字節(jié)在DAT里</p>&l

96、t;p><b>  }</b></p><p>  return(dat);</p><p><b>  }</b></p><p>  void tempwritebyte(uchar dat) //向18B20寫一個(gè)字節(jié)數(shù)據(jù)</p><p><b>  {</b>

97、</p><p><b>  uint i;</b></p><p><b>  uchar j;</b></p><p>  bit testb;</p><p>  for(j=1;j<=8;j++)</p><p><b>  {</b>&l

98、t;/p><p>  testb=dat&0x01;</p><p>  dat=dat>>1;</p><p>  if(testb) //寫 1</p><p><b>  {</b></p><p><b>  ds=0;</b></p&g

99、t;<p><b>  i++;i++;</b></p><p><b>  ds=1;</b></p><p>  i=8;while(i>0)i--;</p><p><b>  }</b></p><p><b>  else</b&g

100、t;</p><p><b>  {</b></p><p>  ds=0; //寫 0</p><p>  i=8;while(i>0)i--;</p><p><b>  ds=1;</b></p><p><b>  i++;i++;<

101、/b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void tempchange(void) //DS18B20 開始獲取溫度并轉(zhuǎn)換</p><p>

102、;<b>  {</b></p><p>  dsreset();</p><p><b>  delay(1);</b></p><p>  tempwritebyte(0xcc); // 寫跳過讀ROM指令</p><p>  tempwritebyte(0x44); // 寫溫度轉(zhuǎn)換指令&

103、lt;/p><p><b>  }</b></p><p>  uint get_temp() //讀取寄存器中存儲的溫度數(shù)據(jù)</p><p><b>  {</b></p><p>  uchar a,b;</p><p>  dsreset();</p&

104、gt;<p><b>  delay(1);</b></p><p>  tempwritebyte(0xcc);</p><p>  tempwritebyte(0xbe);</p><p>  a=tempread(); //讀低8位</p><p>  b=tempread();

105、 //讀高8位</p><p><b>  temp=b;</b></p><p>  temp<<=8; //兩個(gè)字節(jié)組合為1個(gè)字</p><p>  temp=temp|a;</p><p>  f_temp=temp*0.0625; //溫度在寄存器中為12位

106、分辨率位0.0625°</p><p>  temp=f_temp*10+0.5; //乘以10表示小數(shù)點(diǎn)后面只取1位,加0.5是四舍五入</p><p>  f_temp=f_temp+0.05; </p><p>  return temp; //temp是整型</p><p><b>  }&l

107、t;/b></p><p>  ////////////////////顯示程序//////////////////////////</p><p>  void display1(uchar num,uchar dat)</p><p><b>  {</b></p><p><b>  uchar i

108、;</b></p><p>  dula1=0; //顯示合理</p><p>  P0=table[dat];</p><p><b>  dula1=1;</b></p><p><b>  dula1=0;</b></p><p><b>

109、;  }</b></p><p>  void display2(uchar num,uchar dat)</p><p><b>  {</b></p><p><b>  uchar i;</b></p><p>  dula2=0; //顯示合理</p>&

110、lt;p>  P0=table1[dat];</p><p><b>  dula2=1;</b></p><p><b>  dula2=0;</b></p><p><b>  }</b></p><p>  void display3(uchar num,uchar

111、 dat)</p><p><b>  {</b></p><p><b>  uchar i;</b></p><p>  dula3=0; //顯示合理</p><p>  P0=table[dat];</p><p><b>  dula3=1;&l

112、t;/b></p><p><b>  dula3=0;</b></p><p><b>  }</b></p><p>  void dis_temp(uint t) //數(shù)據(jù)轉(zhuǎn)換函數(shù)</p><p><b>  {</b></p><p>

113、  //uchar shi,ge,fen;</p><p>  shi=t/100;</p><p>  display1(0,shi);</p><p>  ge=t%100/10;</p><p>  display2(1,ge);</p><p>  fen=t%100%10;</p><p&

114、gt;  display3(2,fen);</p><p><b>  }</b></p><p>  //////////////////////////////////////////////</p><p>  void init_com(void)//串口初始化程序</p><p><b>  {&l

115、t;/b></p><p>  TMOD = 0x20;</p><p>  PCON = 0x00;</p><p>  SCON = 0x50;</p><p>  TH1 = 0xFd;</p><p>  TL1 = 0xFd;</p><p><b>  TR1 = 1

116、;</b></p><p><b>  }</b></p><p>  void comm(char *parr) </p><p><b>  {</b></p><p><b>  do</b></p><p><b

117、>  {</b></p><p>  SBUF = *parr++; //發(fā)送數(shù)據(jù) </p><p>  while(!TI); //等待發(fā)送完成標(biāo)志為1</p><p>  TI =0; //標(biāo)志清零</p><p>  }

118、while(*parr); //保持循環(huán)直到字符為'\0'</p><p><b>  }</b></p><p>  void Music(unsigned char z)</p><p><b>  {</b></p><p>  //每讀取一個(gè)地址的內(nèi)容,先發(fā)送一個(gè)

119、觸發(fā)信號</p><p><b>  RST=1;</b></p><p><b>  delay(1);</b></p><p><b>  RST=0;</b></p><p><b>  delay(1);</b></p><p&

120、gt;  while(z>0)</p><p><b>  {</b></p><p><b>  SDA=1;</b></p><p><b>  delay(1);</b></p><p><b>  SDA=0;</b></p>

121、<p><b>  delay(1);</b></p><p><b>  z--;</b></p><p><b>  } </b></p><p><b>  }</b></p><p>  /**********************

122、*****************</p><p><b>  主函數(shù)</b></p><p>  ***************************************/</p><p>  void main()</p><p><b>  {</b></p><p&

123、gt;  uchar i,j,l,a[8],b;</p><p>  a[0]=23;//現(xiàn)在溫度是</p><p><b>  a[1];</b></p><p>  a[2]=11;//十</p><p><b>  a[3];</b></p><p>  a[4]=13

124、;//點(diǎn)</p><p><b>  a[5];</b></p><p>  a[6]=20;//度</p><p>  a[7]=25;//鈴聲</p><p><b>  dula=0;</b></p><p><b>  wela=0;</b>&l

溫馨提示

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

最新文檔

評論

0/150

提交評論