基于單片機溫度計硬件系統(tǒng)開發(fā)畢業(yè)設(shè)計_第1頁
已閱讀1頁,還剩47頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  本科畢業(yè)設(shè)計(論文)</p><p>  基于單片機溫度計硬件系統(tǒng)開發(fā)</p><p>  2010 年 6 月</p><p><b>  摘 要</b></p><p>  隨著時代的進步和發(fā)展,單片機技術(shù)已經(jīng)普及到我們生活,工作,科研,各個領(lǐng)域,已經(jīng)成為一種比較成熟的技術(shù)。本文介紹了一種以

2、單片機為主要控制器件,以DS18B20為溫度傳感器的新型數(shù)字溫度計,本溫度計屬于多功能溫度計,可以設(shè)置上下限報警溫度,當(dāng)溫度不在設(shè)置范圍內(nèi)時,可以報警。系統(tǒng)主要包括硬件電路的設(shè)計和系統(tǒng)程序的設(shè)計。硬件電路主要包括主控制器,測溫電路和顯示電路等,主控制器采用單片機STC89C52,溫度傳感器采用美國DALLAS半導(dǎo)體公司生產(chǎn)的DS18B20,顯示電路采用4位共陰極LED數(shù)碼管以動態(tài)掃描法直讀顯示。系統(tǒng)程序主要包括主程序,讀出溫度子程序,溫

3、度轉(zhuǎn)換命令子程序,計算溫度子程序,顯示數(shù)據(jù)刷新子程序,報警溫度設(shè)置子程序等。</p><p>  由于采用了改進型智能溫度傳感器DS18B20作為檢測元件,與傳統(tǒng)的溫度計相比,本數(shù)字溫度計減少了外部的硬件電路,具有低成本和易使用的特點。DS18B20溫度計還可以在高溫報警、遠距離多點測溫控制等方面進行應(yīng)用開發(fā),具有很好的發(fā)展前景。 </p><p>  關(guān)鍵詞:單片機,數(shù)字控制,DS18B

4、20,STC89C52,數(shù)字溫度計</p><p><b>  Abstract</b></p><p>  With the progress and development, single-chip technology has spread to our lives, work, research in various fields has become a r

5、elatively mature technology. The  paper  introduced one kind of new  digital thermometer that take the MicroController Unit as the primary control component and take  DS18B20 as the temperature&#

6、160; sensor,the thermometer are multi-purpose thermometer, you can set upper and lower temperature alarm, when the temperature range is not set, it could be reported . The system m</p><p>  Because used the

7、advanced version intelligence temperature  sensor  DS18B20 as the examine  part, compared with the traditional thermometer, this digital thermometer reduced the exterior hardware electric circuit, has char

8、acteristic that the low cost and was easy to use. The DS18B20 thermometer also may used  to  the  high temperature  warning, the long-distance range multi- spots temperature  measured aspect and

9、so on temperature control carries on the application  development, has the very goo</p><p>  Key words: MicroController Unit, Digital control, DS18B20, STC89C52, Digital Thermometer</p><p>

10、<b>  目 錄</b></p><p><b>  1緒論1</b></p><p>  1.1軟件編程Keil51的簡介2</p><p>  1.2硬件電路設(shè)計Proteus的簡介2</p><p>  1.3設(shè)計中用到的所有電子器件2</p><p

11、>  2總體設(shè)計方案3</p><p>  2.1設(shè)計要求3</p><p>  2.2數(shù)字溫度計設(shè)計方案論證3</p><p>  2.3總體設(shè)計框圖5</p><p>  3系統(tǒng)硬件電路組成及工作原理6</p><p>  3.1DS18B20溫度傳感器與單片機的接口電路6</p

12、><p>  3.2DS18B20的使用方法11</p><p>  3.3STC89系列高性能單片機12</p><p>  3.47段LED數(shù)碼管電路及原理14</p><p>  3.5溫度報警電路15</p><p>  3.6系統(tǒng)整體硬件電路16</p><p>  4

13、系統(tǒng)軟件程序設(shè)計18</p><p>  4.1主程序18</p><p>  4.2讀取溫度子程序19</p><p>  4.3溫度轉(zhuǎn)換命令子程序20</p><p>  4.4計算溫度子程序21</p><p>  4.5顯示數(shù)據(jù)刷新子程序22</p><p>  

14、4.6溫度報警子程序23</p><p>  5系統(tǒng)總體調(diào)試24</p><p>  5.1硬件調(diào)試24</p><p>  5.1.1 排除邏輯故障24</p><p>  5.1.2 排除元器件失效24</p><p>  5.1.3 排除電源故障24</p><p>

15、;  5.2軟件調(diào)試25</p><p>  6設(shè)計總結(jié)與體會27</p><p>  6.1設(shè)計總結(jié)27</p><p>  6.2畢業(yè)設(shè)計心得體會28</p><p>  參 考 文 獻29</p><p><b>  致 謝30</b></p>&l

16、t;p>  附錄A 程序源代碼31</p><p>  附錄B 元器件清單41</p><p><b>  緒論</b></p><p>  溫度是一種最基本的環(huán)境參數(shù),人民的生活與環(huán)境的溫度息息相關(guān),在工業(yè)生產(chǎn)過程中要實時測量溫度,在農(nóng)業(yè)生產(chǎn)中也離不開溫度的測量,因此研究溫度的測量方法和裝置具有重要意義。在單片機的應(yīng)用中,一個很

17、重要的應(yīng)用就是對溫度進行檢測。測量溫度的關(guān)鍵是溫度傳感器,采用智能溫度傳感器以實現(xiàn)溫度數(shù)字化,既能以數(shù)字形式直接輸出被測溫度值,具有測量誤差小,分辨率高,抗干擾能力強,能夠遠程傳輸數(shù)據(jù),帶串行總線接口等優(yōu)點。溫度的數(shù)字輸出顯示在7段LED數(shù)碼管顯示器上。單片機、溫度傳感器與7段數(shù)碼管顯示器等電子器件的互聯(lián),可以研制和開發(fā)出具有高性價比的新一代測溫系統(tǒng)——基于單片機的數(shù)字溫度計。</p><p>  基于單片機的數(shù)

18、字溫度計設(shè)計,即對溫度進行實時測量,使用單線數(shù)字溫度傳感器DS18B20把溫度信號直接轉(zhuǎn)換成數(shù)字信號輸入單片機。經(jīng)單片機處理后,將實時溫度顯示在四個7段LED數(shù)碼管顯示器上。</p><p>  隨著人們生活水平的不斷提高,單片機控制無疑是人們追求的目標(biāo)之一,它所給人帶來的方便也是不可否定的,其中數(shù)字溫度計就是一個典型的例子,但人們對它的要求越來越高,要為現(xiàn)代人工作、科研、生活、提供更好的更方便的設(shè)施就需要從單片

19、機技術(shù)入手,一切向著數(shù)字化控制,智能化控制方向發(fā)展。</p><p>  由于甲型H1N1流感入境,所以為了把好關(guān),需對流動人口進行人體體溫測量。由于溫度傳感器DS18B20具有獨特的單總線接口僅需要一個端口引腳進行通信,可實現(xiàn)多點組網(wǎng)功能,零待機功耗,電壓范圍僅為3.0~5.5V而且具有讀數(shù)方便,測溫范圍廣,測溫準(zhǔn)確的特點,最主要的是用戶可定義報警設(shè)置,報警搜索命令識別并標(biāo)志超過程序限定溫度(溫度報警條件),那

20、么只要檢測到溫度超過設(shè)定的正常人體體溫就會發(fā)出報警,這樣就能更有效的防止流感的擴散。出于對此問題的探索,我通過上網(wǎng)查閱及相關(guān)資料的收集,做了本設(shè)計。</p><p>  本設(shè)計所介紹的數(shù)字溫度計與傳統(tǒng)的溫度計相比,具有讀數(shù)方便,測溫范圍廣,測溫準(zhǔn)確,其輸出溫度采用LED數(shù)碼管顯示,主要用于對測溫比較準(zhǔn)確的場所,該設(shè)計控制器使用單片機STC89C52,測溫傳感器使用DS18B20,用4位共陰極LED數(shù)碼管以串口傳送

21、數(shù)據(jù),實現(xiàn)溫度顯示,能準(zhǔn)確達到以上要求。</p><p>  完成本設(shè)計需要軟件編程和硬件電路設(shè)計,需要用到兩種軟件。</p><p>  軟件編程Keil51的簡介</p><p>  軟件編程用Keil Software公司提供的產(chǎn)品軟件uvision3 IDE,它集項目管理、編譯工具、代碼編寫工具、代碼調(diào)試以及仿真于一體,適合個人開發(fā)或人數(shù)少、多開發(fā)過程的管理

22、還不成熟的開發(fā)團體,這一軟件簡單易用。</p><p>  硬件電路設(shè)計Proteus的簡介</p><p>  硬件電路設(shè)計使用英國Lab Center Electronics公司推出的Proteus用于仿真單片機及其外圍設(shè)備的EDA工具軟件。Proteus具有高級原理布圖(isis)、混合模式仿真(Prospice)、PCB設(shè)計以及自動布線(ARES)等功能。Proteus的虛擬仿真技

23、術(shù)(USM)第一次真正實現(xiàn)了在物理原型出來之前對單片機應(yīng)用系統(tǒng)進行設(shè)計開發(fā)和測試。</p><p>  Keil51與Proteus配合使用可以在不需要硬件投入的情況下,完成單片機匯編語言、C語言等應(yīng)用系統(tǒng)的仿真開發(fā),從而縮短實際系統(tǒng)的研發(fā)周期,降低開發(fā)成本。</p><p>  設(shè)計中用到的所有電子器件</p><p>  單片機(STC89C52)、溫度傳感器(

24、DS18B20)、7段LED數(shù)碼管、晶振、排阻、電容、電阻、蜂鳴器、發(fā)光二極管、按鍵、NPN型三極管等。</p><p><b>  總體設(shè)計方案</b></p><p><b>  設(shè)計要求</b></p><p>  (1)穩(wěn)定測量范圍-55℃~125℃,溫度顯示范圍-9.9℃~99.9℃;</p>&l

25、t;p>  (2)測量精度可達到0.1℃;</p><p>  (3)四位共陰七段LED數(shù)碼管顯示;</p><p>  (4)可以任意設(shè)定溫度的上下限報警功能,當(dāng)下限報警溫度設(shè)置為0℃時,下限報警功能失效。</p><p>  數(shù)字溫度計設(shè)計方案論證</p><p>  方案一:采用模擬集成溫度傳感器</p><p

26、>  集成傳感器是采用硅半導(dǎo)體集成工藝而制成的,因此亦稱硅傳感器或單片集成溫度傳感器,它是將溫度傳感器集成在一個芯片上、可完成溫度測量及模擬信號輸出功能的專用IC。模擬集成溫度傳感器的主要特點是功能單一(僅測量溫度)、測溫誤差小、價格低、響應(yīng)速度快、傳輸距離遠、體積小、微功耗等,適合遠距離測溫、控溫,不需要進行非線性校準(zhǔn),外圍電路比較復(fù)雜。   圖2.1是AD590用于測量熱力學(xué)溫度的基本應(yīng)用電路。因

27、為流過AD590的電流與熱力學(xué)溫度成正比,當(dāng)電阻R1和電位器R2的電阻之和為1kΩ時,輸出電壓V0隨溫度的變化為1mV/K。但由于AD590的增益有偏差,電阻也有誤差,因此應(yīng)對電路進行調(diào)整。調(diào)整的方法為:把AD590放于冰水混合物中,調(diào)整電位器R2,使V0=273.2mV?;蛟谑覝叵?25℃)條件下調(diào)整電位器,使V0=273.2+25=298.2(mV)。但這樣調(diào)整只可保證在0℃或25℃附近有較高精度。</p><p

28、>  AD590把被測溫度轉(zhuǎn)換為電流再通過放大器和A/D轉(zhuǎn)換器,輸出數(shù)字量送給單片機進行溫度控制。這種設(shè)計需要用到A/D轉(zhuǎn)換電路,感溫電路比較麻煩,而且測量精度比較低。</p><p>  圖2.1 基于AD590測溫基本應(yīng)用電路</p><p>  方案二:采用數(shù)字單片智能溫度傳感器</p><p>  智能溫度傳感器(亦稱數(shù)字溫度傳感器)是微電子技術(shù)、計

29、算機技術(shù)和自動測試技術(shù)(ATE)的結(jié)晶。目前,已開發(fā)出多種智能溫度傳感器系列產(chǎn)品。智能溫度傳感器內(nèi)部都包含溫度傳感器、A/D轉(zhuǎn)換器、信號處理器、存儲器(或寄存器)和接口電路。有的產(chǎn)品還帶多路選擇器、中央控制器(CPU)、隨機存取存儲器(RAM)和只讀存儲器(ROM)。智能溫度傳感器的特點是能輸出溫度數(shù)據(jù)及相關(guān)的溫度控制量,適配各種微控制器(MCU)。智能溫度傳感器的總線技術(shù)也實現(xiàn)了標(biāo)準(zhǔn)化、規(guī)范化,所采用的總線主要有單線(1-WIRE)總

30、線、I2C總線、SMBUS總線和SPI總線。溫度傳感器作為從機可通過專用總線接口與主機進行通信。智能溫度控制器是在智能溫度傳感器的基礎(chǔ)上發(fā)展而成的。典型產(chǎn)品有DS18B20,智能溫度控制器適配各種微控制器,構(gòu)成智能化溫控系統(tǒng);它們還可以脫離微控制器單獨工作,自行構(gòu)成一個溫控儀。DS18B20是DALLAS公司生產(chǎn)的一線式數(shù)字溫度傳感器,具有3引腳TO-92小體積封裝形式;溫度測量范圍為-55℃~+125℃,可編程為9位~12位A/D轉(zhuǎn)換

31、精度,測溫分辨率可達0.0625℃,被測溫度用符號擴展的16位數(shù)字量</p><p>  DALLAS 半導(dǎo)體公司的數(shù)字化溫度傳感器DS18B20是世界上第一片支持“一線總線”接口的溫度傳感器。一線總線獨特而且經(jīng)濟的特點,使用戶可輕松地組建傳感器網(wǎng)絡(luò),為測量系統(tǒng)的構(gòu)建引入全新概念?,F(xiàn)在,新一代的DS18B20體積更小、更經(jīng)濟、更靈活。使您可以充分發(fā)揮“一線總線”的長處。 DS18B20、 DS1822 “一線總線

32、”數(shù)字化溫度傳感器。</p><p>  由于DS18B20將溫度傳感器、信號放大調(diào)理、A/D轉(zhuǎn)換、接口全部集成于一芯片,與單片機連接簡單、方便,與AD590相比是更新一代的溫度傳感器,所以溫度傳感器采用DS18B20。</p><p>  從以上兩種方案,很容易看出,采用方案二硬件電路比較簡單,軟件設(shè)計也比較簡單,而且測量的準(zhǔn)確度高,故本設(shè)計采用方案二。</p><p

33、><b>  總體設(shè)計框圖</b></p><p>  數(shù)字溫度計電路設(shè)計總體設(shè)計方框圖如圖2.2所示,控制器采用單片機STC89C52,溫度傳感器采用DS18B20,用4位LED數(shù)碼管以并口方式傳送數(shù)據(jù)并以動態(tài)掃描數(shù)碼管的方式實現(xiàn)溫度顯示。</p><p>  系統(tǒng)硬件電路組成及工作原理</p><p>  DS18B20溫度傳感器與單

34、片機的接口電路</p><p>  DS18B20溫度傳感器是美國DALLAS半導(dǎo)體公司最新推出的一種改進型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據(jù)實際要求通過簡單的編程實現(xiàn)9~12位的數(shù)字值讀數(shù)方式。DS18B20的性能特點如下:</p><p>  (1)獨特的單線接口僅需要一個端口引腳進行通信;</p><p>  (2

35、)多個DS18B20可以并聯(lián)在同一根數(shù)據(jù)線上,實現(xiàn)多點組網(wǎng)功能;</p><p>  (3)無須外部器件;</p><p>  (4)可通過數(shù)據(jù)線供電,電壓范圍為3.0~5.5V;</p><p><b>  (5)零待機功耗;</b></p><p>  (6)溫度以6或12位數(shù)字;</p><p&

36、gt;  (7)用戶可自定義設(shè)置報警溫度;</p><p>  (8)報警搜索命令識別并標(biāo)志超過程序限定溫度(溫度報警條件);</p><p>  (9)負電壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作; </p><p>  DS18B20采用3腳PR-35封裝或8腳SOIC封裝,其內(nèi)部結(jié)構(gòu)框圖如圖3.1所示。</p><p&

37、gt;  圖3.1 DS18B20內(nèi)部結(jié)構(gòu)</p><p>  64位ROM的結(jié)構(gòu)開始8位是產(chǎn)品類型的編號,接著是每個器件的惟一的序號,共有48位,最后8位是前面56位的CRC檢驗碼,這也是多個DS18B20可以采用一線進行通信的原因。溫度報警觸發(fā)器TH和TL,可通過軟件寫入戶報警上下限。</p><p>  TO-92封裝的DS18B20的引腳排列見下圖3.2,其引腳功能描述見下:&l

38、t;/p><p><b>  1.GND地信號。</b></p><p>  2.DQ:數(shù)據(jù)輸入/輸出引腳。開漏單總線接口引腳。當(dāng)被用在寄生電源下,也可以向器件提供電源。</p><p>  3.VDD:可選擇的VDD引腳。當(dāng)工作于寄生電源時,此引腳必須接地。</p><p>  圖3.2 DS18B20管腳圖</p

39、><p>  DS18B20溫度傳感器的內(nèi)部存儲器還包括一個高速暫存RAM和一個非易失性的可電擦除的EEPRAM。高速暫存RAM的結(jié)構(gòu)為8字節(jié)的存儲器,結(jié)構(gòu)如圖3.3所示。頭2個字節(jié)包含測得的溫度信息,第3和第4字節(jié)TH和TL的拷貝,是易失的,每次上電復(fù)位時被刷新。第5個字節(jié),為配置寄存器,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。DS18B20工作時寄存器中的分辨率轉(zhuǎn)換為相應(yīng)精度的溫度數(shù)值。該字節(jié)各位的定義如圖3.3

40、所示。低5位一直為1,TM是工作模式位,用于設(shè)置DS18B20在工作模式還是在測試模式,DS18B20出廠時該位被設(shè)置為0,用戶要去改動,R1和R0決定溫度轉(zhuǎn)換的精度位數(shù),來設(shè)置分辨率。</p><p>  圖3.3 DS18B20字節(jié)定義</p><p>  表3.1 溫度轉(zhuǎn)換時間表</p><p>  由表3.1可見,DS18B20溫度轉(zhuǎn)換的時間比較長,而且

41、分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時間越長。因此,在實際應(yīng)用中要將分辨率和轉(zhuǎn)換時間權(quán)衡考慮。</p><p>  高速暫存RAM的第6、7、8字節(jié)保留未用,表現(xiàn)為全邏輯1。第9字節(jié)讀出前面所有8字節(jié)的CRC碼,可用來檢驗數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。</p><p>  當(dāng)DS18B20接收到溫度轉(zhuǎn)換命令后,開始啟動轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號擴展的二進制補碼形式存儲在高速暫存

42、存儲器的第1、2字節(jié)。單片機可以通過單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時低位在先,高位在后,數(shù)據(jù)格式以0.0625℃/LSB形式表示。</p><p>  當(dāng)符號位S=0時,表示測得的溫度值為正值,可以直接將二進制位轉(zhuǎn)換為十進制;當(dāng)符號位S=1時,表示測得的溫度值為負值,要先將補碼變成原碼,再計算十進制數(shù)值。表3.2是一部分溫度值對應(yīng)的二進制溫度數(shù)據(jù)。</p><p>  表3.2 一部分溫度對

43、應(yīng)值表</p><p>  DS18B20完成溫度轉(zhuǎn)換后,就把測得的溫度值與RAM中的TH、TL字節(jié)內(nèi)容作比較。若T>TH或T<TL,則將該器件內(nèi)的報警標(biāo)志位置位,并對主機發(fā)出的報警搜索命令作出響應(yīng)。因此,可用多只DS18B20同時測量溫度并進行報警搜索。</p><p>  DS18B20的測溫原理,器件中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號送

44、給減法計數(shù)器1;高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變,所產(chǎn)生的信號作為減法計數(shù)器2的脈沖輸入。器件中還有一個計數(shù)門,當(dāng)計數(shù)門打開時,DS18B20就對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖進行計數(shù)進而完成溫度測量。計數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將-55℃所對應(yīng)的一個基數(shù)分別置入減法計數(shù)器1、溫度寄存器中,計數(shù)器1和溫度寄存器被預(yù)置在-55℃所對應(yīng)的一個基數(shù)值。</p><p>  減法計

45、數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行減法計數(shù),當(dāng)減法計數(shù)器1的預(yù)置值減到0時,溫度寄存器的值將加1,減法計數(shù)器1的預(yù)置將重新被裝入,減法計數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行計數(shù),如此循環(huán)直到減法計數(shù)器計數(shù)到0時,停止溫度寄存器的累加,此時溫度寄存器中的數(shù)值就是所測溫度值。其輸出用于修正減法計數(shù)器的預(yù)置值,只要計數(shù)器門仍未關(guān)閉就重復(fù)上述過程,直到溫度寄存器值大致被測溫度值。</p><p>  另

46、外,由于DS18B20單線通信功能是分時完成的,它有嚴(yán)格的時隙概念,因此讀寫時序很重要。系統(tǒng)對DS18B20的各種操作按協(xié)議進行。操作協(xié)議為:初使化DS18B20(發(fā)復(fù)位脈沖)→發(fā)ROM功能命令→發(fā)存儲器操作命令→處理數(shù)據(jù)。</p><p>  DS18B20可以采用兩種方式供電,一種是采用電源供電方式,此時DS18B20的1腳接地,2腳作為信號線,3腳接電源。另一種是寄生電源供電方式,如圖3.4 所示單片機端口

47、接單線總線,為保證在有效的DS18B20時鐘周期內(nèi)提供足夠的電流,可用一個MOSFET管來完成對總線的上拉。</p><p>  當(dāng)DS18B20處于寫存儲器操作和溫度A/D轉(zhuǎn)換操作時,總線上必須有強的上拉,上拉開啟時間最大為10us。采用寄生電源供電方式時VDD端接地。由于單線制只有一根線,因此發(fā)送接口必須是三態(tài)的。</p><p>  圖3.4 DS18B20與單片機的接口電路<

48、;/p><p>  DS18B20的使用方法</p><p>  由于DS18B20采用的是單總線協(xié)議方式,即在一根數(shù)據(jù)線實現(xiàn)數(shù)據(jù)的雙向傳輸,而對STC89C52單片機來說,硬件上并不支持單總線協(xié)議,因此,我們必須采用軟件的方法來模擬單總線的協(xié)議時序來完成對DS18B20芯片的訪問。</p><p>  (1) DS18B20的復(fù)位時序:</p><

49、p>  由于DS18B20是在一根I/O線上讀寫數(shù)據(jù),因此,對讀寫的數(shù)據(jù)位有著嚴(yán)格的時序要求。DS18B20有嚴(yán)格的通信協(xié)議來保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了幾種信號的時序:初始化時序、讀時序、寫時序。所有時序都是將主機作為主設(shè)備,單總線器件作為從設(shè)備。而每一次命令和數(shù)據(jù)的傳輸都是從主機主動啟動寫時序開始,如果要求單總線器件回送數(shù)據(jù),在進行寫命令后,主機需啟動讀時序完成數(shù)據(jù)接收;數(shù)據(jù)和命令的傳輸都是低位在先。<

50、/p><p>  圖3.5 DS18B20的復(fù)位時序</p><p>  (2)DS18B20的讀時序:</p><p>  對于DS18B20的讀時序分為讀0時序和讀1時序兩個過程。</p><p>  對于DS18B20的讀時隙是從主機把單總線拉低之后,在15秒之內(nèi)就得釋放單總線,以讓DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩€上。DS18B20在完成

51、一個讀時序過程,至少需要60us才能完成。</p><p>  圖3.6 DS18B20的讀時序</p><p>  (3)DS18B20的寫時序:</p><p>  對于DS18B20的寫時序仍然分為寫0時序和寫1時序兩個過程。</p><p>  對于DS18B20寫0時序和寫1時序的要求不同,當(dāng)要寫0時序時,單總線要被拉低至少60u

52、s,保證DS18B20能夠在15us到45us之間能夠正確地采樣IO總線上的“0”電平,當(dāng)要寫1時序時,單總線被拉低之后,在15us之內(nèi)就得釋放單總線。</p><p>  圖3.7 DS18B20的寫時序</p><p>  STC89系列高性能單片機</p><p>  MCS51單片機是目前國內(nèi)實用最廣泛的一種單片機型,全球各單片機生產(chǎn)廠商在MCS51內(nèi)核基

53、礎(chǔ)上,派生了大量的51內(nèi)核系列單片機,極大地豐富了MCS51的種群。其中,STC公司推出了STC89系列單片機,增加了大量的新功能,提高了51的性能,是MCS51家族中的佼佼者。</p><p>  STC89系列單片機是MCS-51系列單片機的派生產(chǎn)品。它們在指令系統(tǒng)、硬件結(jié)構(gòu)和片內(nèi)資源上與標(biāo)準(zhǔn)8052單片機完全兼容,DIP40封裝系列與8051為pin-to-pin兼容。STC89系列單片機高速(最高時鐘頻率

54、90MHz),低功耗,在系統(tǒng)/在應(yīng)用可編程(ISP,IAP),不占用戶資源。表3.3是STC89系列單片機資源一覽表。</p><p>  STC89系列單片機主要特性:</p><p>  (1)80C51核心處理器單元;</p><p>  (2)3V/5V工作電壓,操作頻率0~33MHz(STC89LE516AD最高可達90MHz);5V工作電壓,操作頻率0~

55、40MHz;</p><p>  (3)大容量內(nèi)部數(shù)據(jù)RAM:1K字節(jié)RAM;</p><p>  (4)64/32/16/8kB片內(nèi)Flash程序存儲器,具有在應(yīng)用可編程(IAP) ,在系統(tǒng)可編程(ISP),可實現(xiàn)遠程軟件升級,無需編程器;</p><p>  (5)支持12時鐘(默認(rèn))或6時鐘模式;</p><p>  (6)雙DPTR數(shù)

56、據(jù)指針;</p><p>  (7)SPI(串行外圍接口)和增強型UART ;</p><p>  (8)PCA(可編程計數(shù)器陣列),具有PWM的捕獲/比較功能;</p><p>  (9)4個8位I/O口,含3個高電流P1口,可直接驅(qū)動LED;</p><p>  (10)3個16位定時器/計數(shù)器;</p><p>

57、  (11)可編程看門狗定時器(WDT);</p><p>  (12)低EMI方式(ALE禁止);</p><p>  (13)兼容TTL和COMS邏輯電平;</p><p>  (14)掉電檢測和低功耗模式等。</p><p>  表3.3 STC89系列單片機資源一覽表</p><p>  7段LED數(shù)碼管電路

58、及原理</p><p>  7段LED數(shù)碼管是利用7個LED(發(fā)光二極管)外加一個小數(shù)點的LED組合而成的顯示設(shè)備,可以顯示0~9等10個數(shù)字和小數(shù)點,使用非常廣泛。</p><p>  這類數(shù)碼管可以分為共陽極與共陰極兩種,共陽極就是把所有LED的陽極連接到共同接點com,而每個LED的陰極分別為a、b、c、d、e、f、g及dp(小數(shù)點);共陰極則是把所有LED的陰極連接到共同接點com

59、,而每個LED的陽極分別為a、b、c、d、e、f、g及dp(小數(shù)點),如下圖3.8所示。圖中的8個LED分別與上面那個圖中的A~DP各段相對應(yīng),通過控制各個LED的亮滅來顯示數(shù)字。</p><p>  圖3.8 數(shù)碼管段碼圖</p><p>  還有一種比較常用的是四位數(shù)碼管,內(nèi)部的4個數(shù)碼管共用A~DP這8根數(shù)據(jù)線,為人們的使用提供了方便,因為里面有4個數(shù)碼管,所以它有4個公共端,加上

60、A~DP,共有12個引腳,下面便是一個共陰的四位數(shù)碼管的內(nèi)部結(jié)構(gòu)圖(共陽的與之相反)。引腳排列依然是從左下角的那個腳(1腳)開始,以逆時針方向依次為1-12腳,圖3.9中的數(shù)字與之一一對應(yīng)。</p><p>  圖3.9 四位共陰數(shù)碼管管腳圖</p><p><b>  溫度報警電路</b></p><p>  1、蜂鳴器的結(jié)構(gòu)原理</

61、p><p>  (1)壓電式蜂鳴器:壓電式蜂鳴器主要由多諧振蕩器、壓電蜂鳴片、阻抗匹配器及共鳴箱、外殼等組成。有的壓電式蜂鳴器外殼上還裝有發(fā)光二極管。</p><p>  多諧振蕩器由晶體管或集成電路構(gòu)成。當(dāng)接通電源后(1.5~15V直流工作電壓),多諧振蕩器起振,輸出1.5~2.5kHZ的音頻信號,阻抗匹配器推動壓電蜂鳴片發(fā)聲。</p><p>  壓電蜂鳴片由鋯鈦酸

62、鉛或鈮鎂酸鉛壓電陶瓷材料制成。在陶瓷片的兩面鍍上銀電極,經(jīng)極化和老化處理后,再與黃銅片或不銹鋼片粘在一起。</p><p>  (2)電磁式蜂鳴器:電磁式蜂鳴器由振蕩器、電磁線圈、磁鐵、振動膜片及外殼等組成。</p><p>  接通電源后,振蕩器產(chǎn)生的音頻信號電流通過電磁線圈,使電磁線圈產(chǎn)生磁場。振動膜片在電磁線圈和磁鐵的相互作用下,周期性地振動發(fā)聲。</p><p&

63、gt;  2、本設(shè)計采軟件處理報警,利用蜂鳴器進行報警輸出,采用直流供電。當(dāng)所測溫度超過或低于所預(yù)設(shè)的溫度時,數(shù)據(jù)口P3.7相應(yīng)拉高電平,報警輸出。(也可采用發(fā)光二級管報警電路,如果需要報警,則只需將相應(yīng)位置1,則發(fā)光報警)報警電路硬件連接見圖 3.10。</p><p>  圖3.10 蜂鳴器電路連接圖</p><p><b>  系統(tǒng)整體硬件電路</b><

64、/p><p>  溫度計電路設(shè)計原理圖如圖3.11所示,控制器使用單片機STC89C52,溫度傳感器使用DS18B20,用4位共陰LED數(shù)碼管以動態(tài)掃描法實現(xiàn)溫度顯示。</p><p>  本溫度計大體分三個工作過程。首先,由DS18820溫度傳感器芯片測量當(dāng)前的溫度,并將結(jié)果送入單片機。然后,通過89C52單片機芯片對送來的測量溫度讀數(shù)進行計算和轉(zhuǎn)換,最后將此結(jié)果送入數(shù)碼管顯示模塊進行顯示。

65、由圖可看到,本電路主要由DSl8820溫度傳感器芯片、四位數(shù)碼管顯示模塊芯片、報警電路和89C52單片機芯片組成。其中,DSI8B20溫度傳感器芯片采用“一線制”與單片機相連,它獨立地完成溫度量以及將溫度測量結(jié)果送到單片機的工作。</p><p>  圖3.11 數(shù)字溫度計電路原理圖</p><p><b>  系統(tǒng)軟件程序設(shè)計</b></p><

66、;p>  系統(tǒng)程序主要包括主程序,讀出溫度子程序,溫度轉(zhuǎn)換命令子程序,計算溫度子程序,顯示數(shù)據(jù)刷新子程序,溫度報警子程序等。</p><p><b>  主程序</b></p><p>  主程序的主要功能是負責(zé)溫度的實時顯示、讀出并處理DS18B20的測量的當(dāng)前溫度值,溫度測量每1s進行一次。這樣可以在一秒之內(nèi)測量一次被測溫度,其程序流程見圖4.1所示。<

67、;/p><p>  圖4.1 主程序流程圖</p><p><b>  讀取溫度子程序</b></p><p>  讀取溫度子程序的主要功能是讀取RAM中的9字節(jié),在讀出時需進行CRC校驗,校驗有錯時不進行溫度數(shù)據(jù)的改寫,其程序流程圖如圖4.2所示。</p><p>  圖4.2 讀溫度流程圖</p>&l

68、t;p><b>  溫度轉(zhuǎn)換命令子程序</b></p><p>  溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令,當(dāng)采用12位分辨率時轉(zhuǎn)換時間約為750ms,在本程序設(shè)計中采用1s顯示程序延時法等待轉(zhuǎn)換的完成,溫度轉(zhuǎn)換命令子程序流程圖如圖4.3所示。</p><p>  圖4.3 溫度轉(zhuǎn)換流程圖</p><p><b>  計算溫

69、度子程序</b></p><p>  計算溫度子程序?qū)AM中讀取值進行BCD碼的轉(zhuǎn)換運算,并進行溫度值正負的判定,其程序流程圖如圖4.4所示。</p><p>  圖4.4 計算溫度流程圖</p><p><b>  顯示數(shù)據(jù)刷新子程序</b></p><p>  顯示數(shù)據(jù)刷新子程序主要是對顯示緩沖器中的顯

70、示數(shù)據(jù)進行刷新操作,當(dāng)最高顯示位為0時將符號顯示位移入下一位,程序流程圖如圖4.5所示。</p><p>  圖4.5 顯示數(shù)據(jù)刷新流程圖</p><p><b>  溫度報警子程序</b></p><p>  溫度報警子程序主要是對當(dāng)前溫度值與預(yù)先設(shè)置的溫度值的比較,如果當(dāng)前溫度達到預(yù)設(shè)報警溫度時,調(diào)用溫度報警子程序讓單片機相應(yīng)端口輸出信號使

71、蜂鳴器和發(fā)光二極管實現(xiàn)聲光報警,程序流程圖如圖4.6所示。</p><p>  圖4.6 調(diào)用溫度報警子程序流程圖</p><p><b>  系統(tǒng)總體調(diào)試</b></p><p>  近年來隨著科技的飛速發(fā)展,單片機的應(yīng)用正在不斷地走向深入,同時帶動傳統(tǒng)控制檢測日新月異更新。在實時檢測和自動控制的單片機應(yīng)用系統(tǒng)中,單片機往往是作為一個核心部件

72、來使用,僅單片機方面知識是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu),以及針對具體應(yīng)用對象特點的軟件結(jié)合,加以完善。</p><p>  根據(jù)方案設(shè)計的要求,調(diào)試過程共分三大部分:硬件調(diào)試、軟件調(diào)試和軟硬聯(lián)調(diào)。 </p><p>  單片機系統(tǒng)的硬件調(diào)試和軟件調(diào)試是不能分開的,許多硬件錯誤是在軟件調(diào)試中被發(fā)現(xiàn)和糾正的。但通常是先排除明顯的硬件故障以后,再和軟件結(jié)合起來調(diào)試以進一步排除故障??梢娪布恼{(diào)試

73、是基礎(chǔ),如果硬件調(diào)試不通過,軟件設(shè)計則是無從做起。</p><p><b>  硬件調(diào)試</b></p><p>  5.1.1 排除邏輯故障</p><p>  這類故障往往由于設(shè)計和加工制板過程中工藝性錯誤所造成的。主要包括錯線、開路、短路。排除的方法是首先將加工的電路板認(rèn)真對照原理圖,看兩者是否一致。應(yīng)特別注意電源系統(tǒng)檢查,以防止電源短

74、路和極性錯誤,并重點檢查系統(tǒng)總線(地址總線、數(shù)據(jù)總線和控制總線)是否存在相互之間短路或與其它信號線路短路。必要時利用數(shù)字萬用表的短路測試功能,可以縮短排錯時間。</p><p>  5.1.2 排除元器件失效</p><p>  造成這類錯誤的原因有兩個:一個是元器件買來時就已壞了;另一個是由于安裝錯誤,造成器件燒壞??梢圆扇z查元器件與設(shè)計要求的型號、規(guī)格和安裝是否一致。在保證安裝無誤

75、后,用替換方法排除錯誤。</p><p>  5.1.3 排除電源故障</p><p>  在通電前,一定要檢查電源電壓的幅值和極性,否則很容易造成集成塊損壞。加電后檢查各插件上引腳的電位,一般先檢查VCC與GND之間電位,若在5V~4.8V之間屬正常。若有高壓,聯(lián)機仿真器調(diào)試時,將會損壞仿真器等,有時會使應(yīng)用系統(tǒng)中的集成塊發(fā)熱損壞。</p><p>  檢查電路

76、板及焊接的質(zhì)量情況,在檢查無誤后可通電檢查LED顯示器。若亮度不理想,可以調(diào)整P1口的上拉電阻大小,一般情況取200歐電阻即可。使用萬用表檢查電路的連接是否與原理圖的一致,并檢查是否有虛焊現(xiàn)象。</p><p><b>  軟件調(diào)試</b></p><p>  本系統(tǒng)的軟件系統(tǒng)全部采用C語言編寫,除語法與邏輯差錯外,當(dāng)確認(rèn)程序沒問題時,直接把生成的HEX文件下載到單片

77、機仿真調(diào)試。采取自下到上的方法,單獨調(diào)好每一個模塊,最后完成一個完整的系統(tǒng)調(diào)試。</p><p>  在KeilC51編譯環(huán)境下進行,源程序編譯及仿真調(diào)試應(yīng)分段或以子程序為單位逐個進行,先在Keil里進行單步運行調(diào)試,最后將Hex文件下載到單片機里,結(jié)合硬件進行實時調(diào)試。</p><p>  通過以上檢查后,將電路通電查看是否按要求正常工作,最終完成設(shè)計。</p><p

78、>  下面圖5.1為PROTEUS溫度計仿真電路圖。</p><p>  圖5.1 PROTUES放置電路圖</p><p><b>  設(shè)計總結(jié)與體會</b></p><p><b>  設(shè)計總結(jié)</b></p><p>  89STC52單片機,體積小,重量輕,抗干擾能力強,對環(huán)境要求不

79、高,價格低廉,可靠性高,靈活性好,即使是非電子計算機專業(yè)人員,通過學(xué)習(xí)一些專業(yè)基礎(chǔ)知識以后也能依靠自己的技術(shù)力量,來開發(fā)所希望的單片機應(yīng)用系統(tǒng)。本設(shè)計的溫度測量和報警系統(tǒng),只是單片機廣泛應(yīng)用于各行各業(yè)中的一例。</p><p>  本設(shè)計研究是基于單片機控制的溫度測量與報警系統(tǒng)的設(shè)計,介紹了對溫度的測量、顯示及報警,實現(xiàn)了溫度的實時顯示。 </p><p>  它具有微型化、低功耗、高性能

80、、抗干攏能力強、易配微處理器等優(yōu)點,特別適合于構(gòu)成多點溫度測控系統(tǒng),可直接將溫度轉(zhuǎn)化成串行數(shù)字信號供微機處理,而且每片DS18S20都有唯一的產(chǎn)品號并可存入其ROM中,以便在構(gòu)成大型溫度測控系統(tǒng)時在單線上掛接任意多個DS18S20芯片。從DS18S20讀出或?qū)懭隓S18S20信息僅需要一根口線,其讀寫及溫度變換功率來源于數(shù)據(jù)總線,該總線本身也可以向所掛接的DS18S20供電,而無需額處電源。DS18S20能提供九位溫度讀數(shù),它無需任何外

81、圍硬件即可方便地構(gòu)成溫度檢測系統(tǒng)。</p><p>  本設(shè)計利用STC89C52芯片控制溫度傳感器DS18B20,再輔之以部分外圍電路實現(xiàn)對環(huán)境溫度的測量,性能穩(wěn)定,精度較高,而且擴展性能很強大。由于DS18B20 支持單總線協(xié)議,我們可以將多個DS18B20 可以并聯(lián)在一起,CPU 只需一根端口線就能與多個DS18B20通信,占用較少的微處理器的端口就可以實現(xiàn)多點測溫系統(tǒng)。</p><p&

82、gt;  由于DS18B20的測量精度只有±0.5 度,往往很多場合需要更加精確的溫度,在所測溫度精度不變的基礎(chǔ)上必須對數(shù)據(jù)進行校正。不過,其誤差在時間和外部環(huán)境變化的條件下,保持相當(dāng)高的穩(wěn)定性。針對這一特性,對其進行誤差校正補償;這種誤差校正的補償方法,不需增加硬件電路,計算方法簡單,軟件費用也很小,既提高了測量精度,又不需增加成本。它充分單片機的處理能力,在單片機上用線性插補的數(shù)學(xué)方法對其進行誤差校正補償,能輕易地將其提高

83、其精度,從而達到更準(zhǔn)確地測量周圍環(huán)境的溫度。</p><p><b>  畢業(yè)設(shè)計心得體會</b></p><p>  經(jīng)過將近三個月的畢業(yè)設(shè)計,終于完成了我的數(shù)字溫度計的設(shè)計,雖然電路外觀不是很美觀,但從心底里說,還是高興的,畢竟這次設(shè)計把實物都做了出來,高興之余也從中學(xué)到了很多知識。</p><p>  在本次畢業(yè)設(shè)計的過程中,我發(fā)現(xiàn)很多的

84、問題,雖然以前還做過這樣的設(shè)計但這次設(shè)計真的讓我長進了很多,單片機畢業(yè)設(shè)計重點就在于軟件算法的設(shè)計,需要有很巧妙的程序算法,雖然以前寫過幾次程序,但我覺的寫好一個程序并不是一件簡單的事,舉個例子,以前寫的那幾次,數(shù)據(jù)加減時,我用的都是BCD碼,這一次,我全部用的都是16進制的數(shù)直接加減,顯示處理時再用除法去求出各位,感覺效果比較好;有好多的東西,只有我們?nèi)ピ囍隽?,才能真正的掌握,只學(xué)習(xí)理論有些東西是很難理解的,更談不上掌握。此次的畢業(yè)

85、設(shè)計真正讓我把學(xué)到的理論知識應(yīng)用到實際的設(shè)計中,同時也從實踐中鍛煉了自己的實驗動手能力,在實踐中檢驗了學(xué)到的知識。</p><p>  從這次的課程設(shè)計中,我真真正正的意識到,在以后的學(xué)習(xí)和工作中,要理論聯(lián)系實際,把我們所學(xué)的理論知識用到實際當(dāng)中,從實際中學(xué)到更多的知識。學(xué)習(xí)單機片機更是如此,程序只有在經(jīng)常的寫與讀的過程中才能提高,實驗動手能力只有在不斷的鍛煉中才能提升,這就是我在這次畢業(yè)設(shè)計中的最大收獲。<

86、;/p><p>  參 考 文 獻</p><p>  [1] 肖金球. 單片機原理和接口技術(shù)[M] . 北京:清華大學(xué)出版社,2008.</p><p>  [2] 馬長林. 單片機實踐應(yīng)用與技術(shù)[M] . 北京:清華大學(xué)出版社,2008.</p><p>  [3] 牛昱光. 單片機原理和接口技術(shù)[M] . 北京:電子工業(yè)出

87、版社, 2008.</p><p>  [4] 倪志蓮. 單片機應(yīng)用技術(shù)[M] . 北京:北京理工大學(xué)出版社, 2007.</p><p>  [5] 陳志旺. 51系列單片機系統(tǒng)設(shè)計與實踐[M] . 北京:電子工業(yè)出版社, 2010.</p><p>  [6] 趙亮. 單片機C語言編程與實例[M] . 北京:清華大學(xué)出版社, 2008.<

88、;/p><p>  [7] 樓然苗. 單片機課程設(shè)計指導(dǎo)[M] . 北京:北京航空航天大學(xué)出版社, 2007.</p><p>  [8] 王勇. 基于AT89S51的便攜式實時溫度檢測儀[A] . 儀表技術(shù)與傳感器[C], 2006.</p><p>  [9] 何立民. MCS-51系列單片機應(yīng)用系統(tǒng)設(shè)計[M] . 北京:北京航空航天大學(xué)出版社, 1

89、995.</p><p>  [10] 李玉峰,倪虹霞. MCS-51系列單片機原理與接口技術(shù)[M] . 北京:人民郵電出版社, 2004.</p><p>  [11] 肖來勝,馮建蘭. 單片機技術(shù)實用教程[M]. 武漢:華中科技大學(xué)出版社, 2004.</p><p>  [12] 丁明亮,唐前輝. 51單片機應(yīng)用設(shè)計與仿真[M] . 北京:北京

90、航空航天大學(xué)出版社, 2009.</p><p>  [13] G Jiang M Zhang,X Xie,S Li . Application on temperature control of DS18B20[M],Control Engineering of China, 2003.</p><p>  [14] I. Scott MacKenzie Raphael C. -W

91、. Phan . The 8051 microcontroller[M] Pearson Education, 2007.</p><p><b>  致 謝</b></p><p>  本畢業(yè)設(shè)計(論文)是在我的指導(dǎo)教師童懷老師的親切關(guān)懷和悉心指導(dǎo)下完成的。他嚴(yán)肅的科學(xué)態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神,精益求精的工作作風(fēng),深深地感染和激勵著我。從題目的選擇到最終完成,童懷

92、老師都始終給予我細心的指導(dǎo)和不懈的支持。</p><p>  在本畢業(yè)設(shè)計的設(shè)計和制作過程中,感謝老師給了我很大的幫助,在論文工作中,遇到了很多細節(jié)方面的問題,一直得到童懷老師的親切關(guān)懷和悉心指導(dǎo),使我得以順利的完成此次畢業(yè)設(shè)計的任務(wù),童懷老師以其豐厚的專業(yè)知識功底、嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度、求實的工作作風(fēng)和他敏捷的思維給我留下了深刻的印象,我將終生難忘并向他學(xué)習(xí)。再一次向他表示衷心的感謝,感謝他為學(xué)生營造的濃郁學(xué)習(xí)氛圍,

93、以及學(xué)習(xí)上的無私幫助。同時我也會將這種嚴(yán)謹(jǐn)?shù)淖黠L(fēng)運用到工作中去,為以后的社會實踐工作而努力。畢業(yè)設(shè)計的完成同時也離不開很多的同學(xué)熱心幫助,是他們在我遇到難題的時候給了我啟發(fā)。</p><p>  通過本次畢業(yè)設(shè)計,我在專業(yè)知識、專業(yè)技能和解決問題方法方面得到很大的提高。更深入了解并掌握了傳感器的基本理論知識,并在單片機實際電路開發(fā)和常用編程設(shè)計思路掌握方面有了一定程度的掌握,盡管本次設(shè)計還不是很完善,但這為我以后

94、的設(shè)計之路積累了寶貴的經(jīng)驗。</p><p>  由于本人水平有限,加之時間倉促,設(shè)計中疏漏和錯誤之處在所難免,希望老師給予諒解,同時也希望老師加以批評和指正,使我在以后的學(xué)習(xí)和工作中取得更大的成績。</p><p>  附錄A 程序源代碼</p><p>  /***************************************************

95、***************</p><p>  程序名稱:DS18B20溫度測量及報警;</p><p>  簡要說明:DS18B20溫度計,溫度測量范圍0-99.9攝氏度;</p><p>  可設(shè)置上限報警溫度、下限報警溫度;</p><p>  即高于上限值或者低于下限值時蜂鳴器和LED指示燈報警;</p><p

96、>  默認(rèn)上限報警溫度為38℃、默認(rèn)下限報警溫度為5℃;</p><p>  報警值可設(shè)置范圍:最低上限報警值等于當(dāng)前下限報警值;</p><p>  最高下限報警值等于當(dāng)前上限報警值;</p><p>  將下限報警值調(diào)為0時為關(guān)閉下限報警功能。 </p><p>  *********************************

97、*********************************/</p><p>  #include <AT89X52.h></p><p>  #include "DS18B20.h" </p><p>  #define uint unsigned int</p><p>  #define uc

98、har unsigned char //宏定義</p><p>  #define SET P3_1 //定義調(diào)整鍵</p><p>  #define ADD P3_2 //定義增加鍵</p><p>  #define DEC P3_3 //定義減少鍵</p><p>

99、;  #define BEEP P3_7 //定義蜂鳴器</p><p>  bit shanshuo_st; //閃爍間隔標(biāo)志</p><p>  bit beep_st; //蜂鳴器間隔標(biāo)志</p><p>  sbit DIAN = P1^7; //小數(shù)點</p><p>

100、;  uchar x=0; //計數(shù)器</p><p>  signed char m; //溫度值全局變量</p><p>  uchar n; //溫度值全局變量</p><p>  uchar set_st=0; //狀態(tài)標(biāo)志</p><p>  sign

101、ed char shangxian=38; //上限報警溫度,默認(rèn)值為38</p><p>  signed char xiaxian=5; //下限報警溫度,默認(rèn)值為5</p><p>  uchar code LEDData[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};</p>

102、<p>  /*****延時子程序*****/</p><p>  void Delay(uint num)</p><p><b>  {</b></p><p>  while( --num );</p><p><b>  }</b></p><p>  

103、/*****初始化定時器0*****/</p><p>  void InitTimer(void)</p><p><b>  {</b></p><p><b>  TMOD=0x1;</b></p><p><b>  TH0=0x3c;</b></p>&

104、lt;p>  TL0=0xb0; //50ms(晶振12M)</p><p><b>  }</b></p><p>  /*****定時器0中斷服務(wù)程序*****/</p><p>  void timer0(void) interrupt 1</p><p><b>  {</

105、b></p><p><b>  TH0=0x3c;</b></p><p><b>  TL0=0xb0;</b></p><p><b>  x++;</b></p><p><b>  }</b></p><p>  /

106、*****外部中斷0服務(wù)程序*****/</p><p>  void int0(void) interrupt 0</p><p><b>  {</b></p><p>  EX0=0; //關(guān)外部中斷0</p><p>  if(ADD==0&&set_st==1)</p

107、><p><b>  {</b></p><p>  shangxian++;</p><p>  if(shangxian>99)shangxian=99;</p><p><b>  }</b></p><p>  else if(ADD==0&&set

108、_st==2)</p><p><b>  {</b></p><p>  xiaxian++;</p><p>  if(xiaxian>shangxian)xiaxian=shangxian;</p><p><b>  } </b></p><p><b&

109、gt;  }</b></p><p>  /*****外部中斷1服務(wù)程序*****/</p><p>  void int1(void) interrupt 2</p><p><b>  {</b></p><p>  EX1=0; //關(guān)外部中斷2</p><p

110、>  if(DEC==0&&set_st==1)</p><p><b>  {</b></p><p>  shangxian--;</p><p>  if(shangxian<xiaxian)shangxian=xiaxian;</p><p><b>  }</b>

111、;</p><p>  else if(DEC==0&&set_st==2)</p><p><b>  {</b></p><p>  xiaxian--;</p><p>  if(xiaxian<0)xiaxian=0;</p><p><b>  }<

112、/b></p><p><b>  }</b></p><p>  /*****讀取溫度*****/</p><p>  void check_wendu(void)</p><p><b>  {</b></p><p>  uint a,b,c;</p>

113、<p>  c=ReadTemperature()-5; //獲取溫度值并減去DS18B20的溫漂誤差</p><p>  a=c/100; //計算得到百位數(shù)字</p><p>  b=c/10-a*10; //計算得到十位數(shù)字</p><p>  m=c/10; //計算得到整數(shù)位

114、</p><p>  n=c-a*100-b*10; //計算得到小數(shù)位</p><p>  if(m<0){m=0;n=0;} //設(shè)置溫度顯示上限</p><p>  if(m>99){m=99;n=9;} //設(shè)置溫度顯示上限 </p><p><b>  }<

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論