版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 本科畢業(yè)設(shè)計(jì)(論文)</p><p> 基于單片機(jī)溫度計(jì)硬件系統(tǒng)開發(fā)</p><p> 2010 年 6 月</p><p><b> 摘 要</b></p><p> 隨著時(shí)代的進(jìn)步和發(fā)展,單片機(jī)技術(shù)已經(jīng)普及到我們生活,工作,科研,各個(gè)領(lǐng)域,已經(jīng)成為一種比較成熟的技術(shù)。本文介紹了一種以
2、單片機(jī)為主要控制器件,以DS18B20為溫度傳感器的新型數(shù)字溫度計(jì),本溫度計(jì)屬于多功能溫度計(jì),可以設(shè)置上下限報(bào)警溫度,當(dāng)溫度不在設(shè)置范圍內(nèi)時(shí),可以報(bào)警。系統(tǒng)主要包括硬件電路的設(shè)計(jì)和系統(tǒng)程序的設(shè)計(jì)。硬件電路主要包括主控制器,測(cè)溫電路和顯示電路等,主控制器采用單片機(jī)STC89C52,溫度傳感器采用美國(guó)DALLAS半導(dǎo)體公司生產(chǎn)的DS18B20,顯示電路采用4位共陰極LED數(shù)碼管以動(dòng)態(tài)掃描法直讀顯示。系統(tǒng)程序主要包括主程序,讀出溫度子程序,溫
3、度轉(zhuǎn)換命令子程序,計(jì)算溫度子程序,顯示數(shù)據(jù)刷新子程序,報(bào)警溫度設(shè)置子程序等。</p><p> 由于采用了改進(jìn)型智能溫度傳感器DS18B20作為檢測(cè)元件,與傳統(tǒng)的溫度計(jì)相比,本數(shù)字溫度計(jì)減少了外部的硬件電路,具有低成本和易使用的特點(diǎn)。DS18B20溫度計(jì)還可以在高溫報(bào)警、遠(yuǎn)距離多點(diǎn)測(cè)溫控制等方面進(jìn)行應(yīng)用開發(fā),具有很好的發(fā)展前景。 </p><p> 關(guān)鍵詞:?jiǎn)纹瑱C(jī),數(shù)字控制,DS18B
4、20,STC89C52,數(shù)字溫度計(jì)</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的簡(jiǎn)介2</p><p> 1.2硬件電路設(shè)計(jì)Proteus的簡(jiǎn)介2</p><p> 1.3設(shè)計(jì)中用到的所有電子器件2</p><p
11、> 2總體設(shè)計(jì)方案3</p><p> 2.1設(shè)計(jì)要求3</p><p> 2.2數(shù)字溫度計(jì)設(shè)計(jì)方案論證3</p><p> 2.3總體設(shè)計(jì)框圖5</p><p> 3系統(tǒng)硬件電路組成及工作原理6</p><p> 3.1DS18B20溫度傳感器與單片機(jī)的接口電路6</p
12、><p> 3.2DS18B20的使用方法11</p><p> 3.3STC89系列高性能單片機(jī)12</p><p> 3.47段LED數(shù)碼管電路及原理14</p><p> 3.5溫度報(bào)警電路15</p><p> 3.6系統(tǒng)整體硬件電路16</p><p> 4
13、系統(tǒng)軟件程序設(shè)計(jì)18</p><p> 4.1主程序18</p><p> 4.2讀取溫度子程序19</p><p> 4.3溫度轉(zhuǎn)換命令子程序20</p><p> 4.4計(jì)算溫度子程序21</p><p> 4.5顯示數(shù)據(jù)刷新子程序22</p><p>
14、4.6溫度報(bào)警子程序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è)計(jì)總結(jié)與體會(huì)27</p><p> 6.1設(shè)計(jì)總結(jié)27</p><p> 6.2畢業(yè)設(shè)計(jì)心得體會(huì)28</p><p> 參 考 文 獻(xiàn)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)過程中要實(shí)時(shí)測(cè)量溫度,在農(nóng)業(yè)生產(chǎn)中也離不開溫度的測(cè)量,因此研究溫度的測(cè)量方法和裝置具有重要意義。在單片機(jī)的應(yīng)用中,一個(gè)很
17、重要的應(yīng)用就是對(duì)溫度進(jìn)行檢測(cè)。測(cè)量溫度的關(guān)鍵是溫度傳感器,采用智能溫度傳感器以實(shí)現(xiàn)溫度數(shù)字化,既能以數(shù)字形式直接輸出被測(cè)溫度值,具有測(cè)量誤差小,分辨率高,抗干擾能力強(qiáng),能夠遠(yuǎn)程傳輸數(shù)據(jù),帶串行總線接口等優(yōu)點(diǎn)。溫度的數(shù)字輸出顯示在7段LED數(shù)碼管顯示器上。單片機(jī)、溫度傳感器與7段數(shù)碼管顯示器等電子器件的互聯(lián),可以研制和開發(fā)出具有高性價(jià)比的新一代測(cè)溫系統(tǒng)——基于單片機(jī)的數(shù)字溫度計(jì)。</p><p> 基于單片機(jī)的數(shù)
18、字溫度計(jì)設(shè)計(jì),即對(duì)溫度進(jìn)行實(shí)時(shí)測(cè)量,使用單線數(shù)字溫度傳感器DS18B20把溫度信號(hào)直接轉(zhuǎn)換成數(shù)字信號(hào)輸入單片機(jī)。經(jīng)單片機(jī)處理后,將實(shí)時(shí)溫度顯示在四個(gè)7段LED數(shù)碼管顯示器上。</p><p> 隨著人們生活水平的不斷提高,單片機(jī)控制無(wú)疑是人們追求的目標(biāo)之一,它所給人帶來的方便也是不可否定的,其中數(shù)字溫度計(jì)就是一個(gè)典型的例子,但人們對(duì)它的要求越來越高,要為現(xiàn)代人工作、科研、生活、提供更好的更方便的設(shè)施就需要從單片
19、機(jī)技術(shù)入手,一切向著數(shù)字化控制,智能化控制方向發(fā)展。</p><p> 由于甲型H1N1流感入境,所以為了把好關(guān),需對(duì)流動(dòng)人口進(jìn)行人體體溫測(cè)量。由于溫度傳感器DS18B20具有獨(dú)特的單總線接口僅需要一個(gè)端口引腳進(jìn)行通信,可實(shí)現(xiàn)多點(diǎn)組網(wǎng)功能,零待機(jī)功耗,電壓范圍僅為3.0~5.5V而且具有讀數(shù)方便,測(cè)溫范圍廣,測(cè)溫準(zhǔn)確的特點(diǎn),最主要的是用戶可定義報(bào)警設(shè)置,報(bào)警搜索命令識(shí)別并標(biāo)志超過程序限定溫度(溫度報(bào)警條件),那
20、么只要檢測(cè)到溫度超過設(shè)定的正常人體體溫就會(huì)發(fā)出報(bào)警,這樣就能更有效的防止流感的擴(kuò)散。出于對(duì)此問題的探索,我通過上網(wǎng)查閱及相關(guān)資料的收集,做了本設(shè)計(jì)。</p><p> 本設(shè)計(jì)所介紹的數(shù)字溫度計(jì)與傳統(tǒng)的溫度計(jì)相比,具有讀數(shù)方便,測(cè)溫范圍廣,測(cè)溫準(zhǔn)確,其輸出溫度采用LED數(shù)碼管顯示,主要用于對(duì)測(cè)溫比較準(zhǔn)確的場(chǎng)所,該設(shè)計(jì)控制器使用單片機(jī)STC89C52,測(cè)溫傳感器使用DS18B20,用4位共陰極LED數(shù)碼管以串口傳送
21、數(shù)據(jù),實(shí)現(xiàn)溫度顯示,能準(zhǔn)確達(dá)到以上要求。</p><p> 完成本設(shè)計(jì)需要軟件編程和硬件電路設(shè)計(jì),需要用到兩種軟件。</p><p> 軟件編程Keil51的簡(jiǎn)介</p><p> 軟件編程用Keil Software公司提供的產(chǎn)品軟件uvision3 IDE,它集項(xiàng)目管理、編譯工具、代碼編寫工具、代碼調(diào)試以及仿真于一體,適合個(gè)人開發(fā)或人數(shù)少、多開發(fā)過程的管理
22、還不成熟的開發(fā)團(tuán)體,這一軟件簡(jiǎn)單易用。</p><p> 硬件電路設(shè)計(jì)Proteus的簡(jiǎn)介</p><p> 硬件電路設(shè)計(jì)使用英國(guó)Lab Center Electronics公司推出的Proteus用于仿真單片機(jī)及其外圍設(shè)備的EDA工具軟件。Proteus具有高級(jí)原理布圖(isis)、混合模式仿真(Prospice)、PCB設(shè)計(jì)以及自動(dòng)布線(ARES)等功能。Proteus的虛擬仿真技
23、術(shù)(USM)第一次真正實(shí)現(xiàn)了在物理原型出來之前對(duì)單片機(jī)應(yīng)用系統(tǒng)進(jìn)行設(shè)計(jì)開發(fā)和測(cè)試。</p><p> Keil51與Proteus配合使用可以在不需要硬件投入的情況下,完成單片機(jī)匯編語(yǔ)言、C語(yǔ)言等應(yīng)用系統(tǒng)的仿真開發(fā),從而縮短實(shí)際系統(tǒng)的研發(fā)周期,降低開發(fā)成本。</p><p> 設(shè)計(jì)中用到的所有電子器件</p><p> 單片機(jī)(STC89C52)、溫度傳感器(
24、DS18B20)、7段LED數(shù)碼管、晶振、排阻、電容、電阻、蜂鳴器、發(fā)光二極管、按鍵、NPN型三極管等。</p><p><b> 總體設(shè)計(jì)方案</b></p><p><b> 設(shè)計(jì)要求</b></p><p> (1)穩(wěn)定測(cè)量范圍-55℃~125℃,溫度顯示范圍-9.9℃~99.9℃;</p>&l
25、t;p> (2)測(cè)量精度可達(dá)到0.1℃;</p><p> (3)四位共陰七段LED數(shù)碼管顯示;</p><p> (4)可以任意設(shè)定溫度的上下限報(bào)警功能,當(dāng)下限報(bào)警溫度設(shè)置為0℃時(shí),下限報(bào)警功能失效。</p><p> 數(shù)字溫度計(jì)設(shè)計(jì)方案論證</p><p> 方案一:采用模擬集成溫度傳感器</p><p
26、> 集成傳感器是采用硅半導(dǎo)體集成工藝而制成的,因此亦稱硅傳感器或單片集成溫度傳感器,它是將溫度傳感器集成在一個(gè)芯片上、可完成溫度測(cè)量及模擬信號(hào)輸出功能的專用IC。模擬集成溫度傳感器的主要特點(diǎn)是功能單一(僅測(cè)量溫度)、測(cè)溫誤差小、價(jià)格低、響應(yīng)速度快、傳輸距離遠(yuǎn)、體積小、微功耗等,適合遠(yuǎn)距離測(cè)溫、控溫,不需要進(jìn)行非線性校準(zhǔn),外圍電路比較復(fù)雜。 圖2.1是AD590用于測(cè)量熱力學(xué)溫度的基本應(yīng)用電路。因
27、為流過AD590的電流與熱力學(xué)溫度成正比,當(dāng)電阻R1和電位器R2的電阻之和為1kΩ時(shí),輸出電壓V0隨溫度的變化為1mV/K。但由于AD590的增益有偏差,電阻也有誤差,因此應(yīng)對(duì)電路進(jìn)行調(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把被測(cè)溫度轉(zhuǎn)換為電流再通過放大器和A/D轉(zhuǎn)換器,輸出數(shù)字量送給單片機(jī)進(jìn)行溫度控制。這種設(shè)計(jì)需要用到A/D轉(zhuǎn)換電路,感溫電路比較麻煩,而且測(cè)量精度比較低。</p><p> 圖2.1 基于AD590測(cè)溫基本應(yīng)用電路</p><p> 方案二:采用數(shù)字單片智能溫度傳感器</p><p> 智能溫度傳感器(亦稱數(shù)字溫度傳感器)是微電子技術(shù)、計(jì)
29、算機(jī)技術(shù)和自動(dòng)測(cè)試技術(shù)(ATE)的結(jié)晶。目前,已開發(fā)出多種智能溫度傳感器系列產(chǎn)品。智能溫度傳感器內(nèi)部都包含溫度傳感器、A/D轉(zhuǎn)換器、信號(hào)處理器、存儲(chǔ)器(或寄存器)和接口電路。有的產(chǎn)品還帶多路選擇器、中央控制器(CPU)、隨機(jī)存取存儲(chǔ)器(RAM)和只讀存儲(chǔ)器(ROM)。智能溫度傳感器的特點(diǎn)是能輸出溫度數(shù)據(jù)及相關(guān)的溫度控制量,適配各種微控制器(MCU)。智能溫度傳感器的總線技術(shù)也實(shí)現(xiàn)了標(biāo)準(zhǔn)化、規(guī)范化,所采用的總線主要有單線(1-WIRE)總
30、線、I2C總線、SMBUS總線和SPI總線。溫度傳感器作為從機(jī)可通過專用總線接口與主機(jī)進(jìn)行通信。智能溫度控制器是在智能溫度傳感器的基礎(chǔ)上發(fā)展而成的。典型產(chǎn)品有DS18B20,智能溫度控制器適配各種微控制器,構(gòu)成智能化溫控系統(tǒng);它們還可以脫離微控制器單獨(dú)工作,自行構(gòu)成一個(gè)溫控儀。DS18B20是DALLAS公司生產(chǎn)的一線式數(shù)字溫度傳感器,具有3引腳TO-92小體積封裝形式;溫度測(cè)量范圍為-55℃~+125℃,可編程為9位~12位A/D轉(zhuǎn)換
31、精度,測(cè)溫分辨率可達(dá)0.0625℃,被測(cè)溫度用符號(hào)擴(kuò)展的16位數(shù)字量</p><p> DALLAS 半導(dǎo)體公司的數(shù)字化溫度傳感器DS18B20是世界上第一片支持“一線總線”接口的溫度傳感器。一線總線獨(dú)特而且經(jīng)濟(jì)的特點(diǎn),使用戶可輕松地組建傳感器網(wǎng)絡(luò),為測(cè)量系統(tǒng)的構(gòu)建引入全新概念?,F(xiàn)在,新一代的DS18B20體積更小、更經(jīng)濟(jì)、更靈活。使您可以充分發(fā)揮“一線總線”的長(zhǎng)處。 DS18B20、 DS1822 “一線總線
32、”數(shù)字化溫度傳感器。</p><p> 由于DS18B20將溫度傳感器、信號(hào)放大調(diào)理、A/D轉(zhuǎn)換、接口全部集成于一芯片,與單片機(jī)連接簡(jiǎn)單、方便,與AD590相比是更新一代的溫度傳感器,所以溫度傳感器采用DS18B20。</p><p> 從以上兩種方案,很容易看出,采用方案二硬件電路比較簡(jiǎn)單,軟件設(shè)計(jì)也比較簡(jiǎn)單,而且測(cè)量的準(zhǔn)確度高,故本設(shè)計(jì)采用方案二。</p><p
33、><b> 總體設(shè)計(jì)框圖</b></p><p> 數(shù)字溫度計(jì)電路設(shè)計(jì)總體設(shè)計(jì)方框圖如圖2.2所示,控制器采用單片機(jī)STC89C52,溫度傳感器采用DS18B20,用4位LED數(shù)碼管以并口方式傳送數(shù)據(jù)并以動(dòng)態(tài)掃描數(shù)碼管的方式實(shí)現(xiàn)溫度顯示。</p><p> 系統(tǒng)硬件電路組成及工作原理</p><p> DS18B20溫度傳感器與單
34、片機(jī)的接口電路</p><p> DS18B20溫度傳感器是美國(guó)DALLAS半導(dǎo)體公司最新推出的一種改進(jìn)型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測(cè)溫元件相比,它能直接讀出被測(cè)溫度,并且可根據(jù)實(shí)際要求通過簡(jiǎn)單的編程實(shí)現(xiàn)9~12位的數(shù)字值讀數(shù)方式。DS18B20的性能特點(diǎn)如下:</p><p> (1)獨(dú)特的單線接口僅需要一個(gè)端口引腳進(jìn)行通信;</p><p> (2
35、)多個(gè)DS18B20可以并聯(lián)在同一根數(shù)據(jù)線上,實(shí)現(xiàn)多點(diǎn)組網(wǎng)功能;</p><p> (3)無(wú)須外部器件;</p><p> (4)可通過數(shù)據(jù)線供電,電壓范圍為3.0~5.5V;</p><p><b> (5)零待機(jī)功耗;</b></p><p> (6)溫度以6或12位數(shù)字;</p><p&
36、gt; (7)用戶可自定義設(shè)置報(bào)警溫度;</p><p> (8)報(bào)警搜索命令識(shí)別并標(biāo)志超過程序限定溫度(溫度報(bào)警條件);</p><p> (9)負(fù)電壓特性,電源極性接反時(shí),溫度計(jì)不會(huì)因發(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)品類型的編號(hào),接著是每個(gè)器件的惟一的序號(hào),共有48位,最后8位是前面56位的CRC檢驗(yàn)碼,這也是多個(gè)DS18B20可以采用一線進(jìn)行通信的原因。溫度報(bào)警觸發(fā)器TH和TL,可通過軟件寫入戶報(bào)警上下限。</p><p> TO-92封裝的DS18B20的引腳排列見下圖3.2,其引腳功能描述見下:&l
38、t;/p><p><b> 1.GND地信號(hào)。</b></p><p> 2.DQ:數(shù)據(jù)輸入/輸出引腳。開漏單總線接口引腳。當(dāng)被用在寄生電源下,也可以向器件提供電源。</p><p> 3.VDD:可選擇的VDD引腳。當(dāng)工作于寄生電源時(shí),此引腳必須接地。</p><p> 圖3.2 DS18B20管腳圖</p
39、><p> DS18B20溫度傳感器的內(nèi)部存儲(chǔ)器還包括一個(gè)高速暫存RAM和一個(gè)非易失性的可電擦除的EEPRAM。高速暫存RAM的結(jié)構(gòu)為8字節(jié)的存儲(chǔ)器,結(jié)構(gòu)如圖3.3所示。頭2個(gè)字節(jié)包含測(cè)得的溫度信息,第3和第4字節(jié)TH和TL的拷貝,是易失的,每次上電復(fù)位時(shí)被刷新。第5個(gè)字節(jié),為配置寄存器,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。DS18B20工作時(shí)寄存器中的分辨率轉(zhuǎn)換為相應(yīng)精度的溫度數(shù)值。該字節(jié)各位的定義如圖3.3
40、所示。低5位一直為1,TM是工作模式位,用于設(shè)置DS18B20在工作模式還是在測(cè)試模式,DS18B20出廠時(shí)該位被設(shè)置為0,用戶要去改動(dòng),R1和R0決定溫度轉(zhuǎn)換的精度位數(shù),來設(shè)置分辨率。</p><p> 圖3.3 DS18B20字節(jié)定義</p><p> 表3.1 溫度轉(zhuǎn)換時(shí)間表</p><p> 由表3.1可見,DS18B20溫度轉(zhuǎn)換的時(shí)間比較長(zhǎng),而且
41、分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時(shí)間越長(zhǎng)。因此,在實(shí)際應(yīng)用中要將分辨率和轉(zhuǎn)換時(shí)間權(quán)衡考慮。</p><p> 高速暫存RAM的第6、7、8字節(jié)保留未用,表現(xiàn)為全邏輯1。第9字節(jié)讀出前面所有8字節(jié)的CRC碼,可用來檢驗(yàn)數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。</p><p> 當(dāng)DS18B20接收到溫度轉(zhuǎn)換命令后,開始啟動(dòng)轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲(chǔ)在高速暫存
42、存儲(chǔ)器的第1、2字節(jié)。單片機(jī)可以通過單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時(shí)低位在先,高位在后,數(shù)據(jù)格式以0.0625℃/LSB形式表示。</p><p> 當(dāng)符號(hào)位S=0時(shí),表示測(cè)得的溫度值為正值,可以直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)符號(hào)位S=1時(shí),表示測(cè)得的溫度值為負(fù)值,要先將補(bǔ)碼變成原碼,再計(jì)算十進(jìn)制數(shù)值。表3.2是一部分溫度值對(duì)應(yīng)的二進(jìn)制溫度數(shù)據(jù)。</p><p> 表3.2 一部分溫度對(duì)
43、應(yīng)值表</p><p> DS18B20完成溫度轉(zhuǎn)換后,就把測(cè)得的溫度值與RAM中的TH、TL字節(jié)內(nèi)容作比較。若T>TH或T<TL,則將該器件內(nèi)的報(bào)警標(biāo)志位置位,并對(duì)主機(jī)發(fā)出的報(bào)警搜索命令作出響應(yīng)。因此,可用多只DS18B20同時(shí)測(cè)量溫度并進(jìn)行報(bào)警搜索。</p><p> DS18B20的測(cè)溫原理,器件中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送
44、給減法計(jì)數(shù)器1;高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變,所產(chǎn)生的信號(hào)作為減法計(jì)數(shù)器2的脈沖輸入。器件中還有一個(gè)計(jì)數(shù)門,當(dāng)計(jì)數(shù)門打開時(shí),DS18B20就對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖進(jìn)行計(jì)數(shù)進(jìn)而完成溫度測(cè)量。計(jì)數(shù)門的開啟時(shí)間由高溫度系數(shù)振蕩器來決定,每次測(cè)量前,首先將-55℃所對(duì)應(yīng)的一個(gè)基數(shù)分別置入減法計(jì)數(shù)器1、溫度寄存器中,計(jì)數(shù)器1和溫度寄存器被預(yù)置在-55℃所對(duì)應(yīng)的一個(gè)基數(shù)值。</p><p> 減法計(jì)
45、數(shù)器1對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)減法計(jì)數(shù)器1的預(yù)置值減到0時(shí),溫度寄存器的值將加1,減法計(jì)數(shù)器1的預(yù)置將重新被裝入,減法計(jì)數(shù)器1重新開始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到減法計(jì)數(shù)器計(jì)數(shù)到0時(shí),停止溫度寄存器的累加,此時(shí)溫度寄存器中的數(shù)值就是所測(cè)溫度值。其輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)器門仍未關(guān)閉就重復(fù)上述過程,直到溫度寄存器值大致被測(cè)溫度值。</p><p> 另
46、外,由于DS18B20單線通信功能是分時(shí)完成的,它有嚴(yán)格的時(shí)隙概念,因此讀寫時(shí)序很重要。系統(tǒng)對(duì)DS18B20的各種操作按協(xié)議進(jìn)行。操作協(xié)議為:初使化DS18B20(發(fā)復(fù)位脈沖)→發(fā)ROM功能命令→發(fā)存儲(chǔ)器操作命令→處理數(shù)據(jù)。</p><p> DS18B20可以采用兩種方式供電,一種是采用電源供電方式,此時(shí)DS18B20的1腳接地,2腳作為信號(hào)線,3腳接電源。另一種是寄生電源供電方式,如圖3.4 所示單片機(jī)端口
47、接單線總線,為保證在有效的DS18B20時(shí)鐘周期內(nèi)提供足夠的電流,可用一個(gè)MOSFET管來完成對(duì)總線的上拉。</p><p> 當(dāng)DS18B20處于寫存儲(chǔ)器操作和溫度A/D轉(zhuǎn)換操作時(shí),總線上必須有強(qiáng)的上拉,上拉開啟時(shí)間最大為10us。采用寄生電源供電方式時(shí)VDD端接地。由于單線制只有一根線,因此發(fā)送接口必須是三態(tài)的。</p><p> 圖3.4 DS18B20與單片機(jī)的接口電路<
48、;/p><p> DS18B20的使用方法</p><p> 由于DS18B20采用的是單總線協(xié)議方式,即在一根數(shù)據(jù)線實(shí)現(xiàn)數(shù)據(jù)的雙向傳輸,而對(duì)STC89C52單片機(jī)來說,硬件上并不支持單總線協(xié)議,因此,我們必須采用軟件的方法來模擬單總線的協(xié)議時(shí)序來完成對(duì)DS18B20芯片的訪問。</p><p> (1) DS18B20的復(fù)位時(shí)序:</p><
49、p> 由于DS18B20是在一根I/O線上讀寫數(shù)據(jù),因此,對(duì)讀寫的數(shù)據(jù)位有著嚴(yán)格的時(shí)序要求。DS18B20有嚴(yán)格的通信協(xié)議來保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了幾種信號(hào)的時(shí)序:初始化時(shí)序、讀時(shí)序、寫時(shí)序。所有時(shí)序都是將主機(jī)作為主設(shè)備,單總線器件作為從設(shè)備。而每一次命令和數(shù)據(jù)的傳輸都是從主機(jī)主動(dòng)啟動(dòng)寫時(shí)序開始,如果要求單總線器件回送數(shù)據(jù),在進(jìn)行寫命令后,主機(jī)需啟動(dòng)讀時(shí)序完成數(shù)據(jù)接收;數(shù)據(jù)和命令的傳輸都是低位在先。<
50、/p><p> 圖3.5 DS18B20的復(fù)位時(shí)序</p><p> (2)DS18B20的讀時(shí)序:</p><p> 對(duì)于DS18B20的讀時(shí)序分為讀0時(shí)序和讀1時(shí)序兩個(gè)過程。</p><p> 對(duì)于DS18B20的讀時(shí)隙是從主機(jī)把單總線拉低之后,在15秒之內(nèi)就得釋放單總線,以讓DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩€上。DS18B20在完成
51、一個(gè)讀時(shí)序過程,至少需要60us才能完成。</p><p> 圖3.6 DS18B20的讀時(shí)序</p><p> (3)DS18B20的寫時(shí)序:</p><p> 對(duì)于DS18B20的寫時(shí)序仍然分為寫0時(shí)序和寫1時(shí)序兩個(gè)過程。</p><p> 對(duì)于DS18B20寫0時(shí)序和寫1時(shí)序的要求不同,當(dāng)要寫0時(shí)序時(shí),單總線要被拉低至少60u
52、s,保證DS18B20能夠在15us到45us之間能夠正確地采樣IO總線上的“0”電平,當(dāng)要寫1時(shí)序時(shí),單總線被拉低之后,在15us之內(nèi)就得釋放單總線。</p><p> 圖3.7 DS18B20的寫時(shí)序</p><p> STC89系列高性能單片機(jī)</p><p> MCS51單片機(jī)是目前國(guó)內(nèi)實(shí)用最廣泛的一種單片機(jī)型,全球各單片機(jī)生產(chǎn)廠商在MCS51內(nèi)核基
53、礎(chǔ)上,派生了大量的51內(nèi)核系列單片機(jī),極大地豐富了MCS51的種群。其中,STC公司推出了STC89系列單片機(jī),增加了大量的新功能,提高了51的性能,是MCS51家族中的佼佼者。</p><p> STC89系列單片機(jī)是MCS-51系列單片機(jī)的派生產(chǎn)品。它們?cè)谥噶钕到y(tǒng)、硬件結(jié)構(gòu)和片內(nèi)資源上與標(biāo)準(zhǔn)8052單片機(jī)完全兼容,DIP40封裝系列與8051為pin-to-pin兼容。STC89系列單片機(jī)高速(最高時(shí)鐘頻率
54、90MHz),低功耗,在系統(tǒng)/在應(yīng)用可編程(ISP,IAP),不占用戶資源。表3.3是STC89系列單片機(jī)資源一覽表。</p><p> STC89系列單片機(jī)主要特性:</p><p> (1)80C51核心處理器單元;</p><p> (2)3V/5V工作電壓,操作頻率0~33MHz(STC89LE516AD最高可達(dá)90MHz);5V工作電壓,操作頻率0~
55、40MHz;</p><p> (3)大容量?jī)?nèi)部數(shù)據(jù)RAM:1K字節(jié)RAM;</p><p> (4)64/32/16/8kB片內(nèi)Flash程序存儲(chǔ)器,具有在應(yīng)用可編程(IAP) ,在系統(tǒng)可編程(ISP),可實(shí)現(xiàn)遠(yuǎn)程軟件升級(jí),無(wú)需編程器;</p><p> (5)支持12時(shí)鐘(默認(rèn))或6時(shí)鐘模式;</p><p> (6)雙DPTR數(shù)
56、據(jù)指針;</p><p> (7)SPI(串行外圍接口)和增強(qiáng)型UART ;</p><p> (8)PCA(可編程計(jì)數(shù)器陣列),具有PWM的捕獲/比較功能;</p><p> (9)4個(gè)8位I/O口,含3個(gè)高電流P1口,可直接驅(qū)動(dòng)LED;</p><p> (10)3個(gè)16位定時(shí)器/計(jì)數(shù)器;</p><p>
57、 (11)可編程看門狗定時(shí)器(WDT);</p><p> (12)低EMI方式(ALE禁止);</p><p> (13)兼容TTL和COMS邏輯電平;</p><p> (14)掉電檢測(cè)和低功耗模式等。</p><p> 表3.3 STC89系列單片機(jī)資源一覽表</p><p> 7段LED數(shù)碼管電路
58、及原理</p><p> 7段LED數(shù)碼管是利用7個(gè)LED(發(fā)光二極管)外加一個(gè)小數(shù)點(diǎn)的LED組合而成的顯示設(shè)備,可以顯示0~9等10個(gè)數(shù)字和小數(shù)點(diǎn),使用非常廣泛。</p><p> 這類數(shù)碼管可以分為共陽(yáng)極與共陰極兩種,共陽(yáng)極就是把所有LED的陽(yáng)極連接到共同接點(diǎn)com,而每個(gè)LED的陰極分別為a、b、c、d、e、f、g及dp(小數(shù)點(diǎn));共陰極則是把所有LED的陰極連接到共同接點(diǎn)com
59、,而每個(gè)LED的陽(yáng)極分別為a、b、c、d、e、f、g及dp(小數(shù)點(diǎn)),如下圖3.8所示。圖中的8個(gè)LED分別與上面那個(gè)圖中的A~DP各段相對(duì)應(yīng),通過控制各個(gè)LED的亮滅來顯示數(shù)字。</p><p> 圖3.8 數(shù)碼管段碼圖</p><p> 還有一種比較常用的是四位數(shù)碼管,內(nèi)部的4個(gè)數(shù)碼管共用A~DP這8根數(shù)據(jù)線,為人們的使用提供了方便,因?yàn)槔锩嬗?個(gè)數(shù)碼管,所以它有4個(gè)公共端,加上
60、A~DP,共有12個(gè)引腳,下面便是一個(gè)共陰的四位數(shù)碼管的內(nèi)部結(jié)構(gòu)圖(共陽(yáng)的與之相反)。引腳排列依然是從左下角的那個(gè)腳(1腳)開始,以逆時(shí)針方向依次為1-12腳,圖3.9中的數(shù)字與之一一對(duì)應(yīng)。</p><p> 圖3.9 四位共陰數(shù)碼管管腳圖</p><p><b> 溫度報(bào)警電路</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的音頻信號(hào),阻抗匹配器推動(dòng)壓電蜂鳴片發(fā)聲。</p><p> 壓電蜂鳴片由鋯鈦酸
62、鉛或鈮鎂酸鉛壓電陶瓷材料制成。在陶瓷片的兩面鍍上銀電極,經(jīng)極化和老化處理后,再與黃銅片或不銹鋼片粘在一起。</p><p> (2)電磁式蜂鳴器:電磁式蜂鳴器由振蕩器、電磁線圈、磁鐵、振動(dòng)膜片及外殼等組成。</p><p> 接通電源后,振蕩器產(chǎn)生的音頻信號(hào)電流通過電磁線圈,使電磁線圈產(chǎn)生磁場(chǎng)。振動(dòng)膜片在電磁線圈和磁鐵的相互作用下,周期性地振動(dòng)發(fā)聲。</p><p&
63、gt; 2、本設(shè)計(jì)采軟件處理報(bào)警,利用蜂鳴器進(jìn)行報(bào)警輸出,采用直流供電。當(dāng)所測(cè)溫度超過或低于所預(yù)設(shè)的溫度時(shí),數(shù)據(jù)口P3.7相應(yīng)拉高電平,報(bào)警輸出。(也可采用發(fā)光二級(jí)管報(bào)警電路,如果需要報(bào)警,則只需將相應(yīng)位置1,則發(fā)光報(bào)警)報(bào)警電路硬件連接見圖 3.10。</p><p> 圖3.10 蜂鳴器電路連接圖</p><p><b> 系統(tǒng)整體硬件電路</b><
64、/p><p> 溫度計(jì)電路設(shè)計(jì)原理圖如圖3.11所示,控制器使用單片機(jī)STC89C52,溫度傳感器使用DS18B20,用4位共陰LED數(shù)碼管以動(dòng)態(tài)掃描法實(shí)現(xiàn)溫度顯示。</p><p> 本溫度計(jì)大體分三個(gè)工作過程。首先,由DS18820溫度傳感器芯片測(cè)量當(dāng)前的溫度,并將結(jié)果送入單片機(jī)。然后,通過89C52單片機(jī)芯片對(duì)送來的測(cè)量溫度讀數(shù)進(jìn)行計(jì)算和轉(zhuǎn)換,最后將此結(jié)果送入數(shù)碼管顯示模塊進(jìn)行顯示。
65、由圖可看到,本電路主要由DSl8820溫度傳感器芯片、四位數(shù)碼管顯示模塊芯片、報(bào)警電路和89C52單片機(jī)芯片組成。其中,DSI8B20溫度傳感器芯片采用“一線制”與單片機(jī)相連,它獨(dú)立地完成溫度量以及將溫度測(cè)量結(jié)果送到單片機(jī)的工作。</p><p> 圖3.11 數(shù)字溫度計(jì)電路原理圖</p><p><b> 系統(tǒng)軟件程序設(shè)計(jì)</b></p><
66、;p> 系統(tǒng)程序主要包括主程序,讀出溫度子程序,溫度轉(zhuǎn)換命令子程序,計(jì)算溫度子程序,顯示數(shù)據(jù)刷新子程序,溫度報(bào)警子程序等。</p><p><b> 主程序</b></p><p> 主程序的主要功能是負(fù)責(zé)溫度的實(shí)時(shí)顯示、讀出并處理DS18B20的測(cè)量的當(dāng)前溫度值,溫度測(cè)量每1s進(jìn)行一次。這樣可以在一秒之內(nèi)測(cè)量一次被測(cè)溫度,其程序流程見圖4.1所示。<
67、;/p><p> 圖4.1 主程序流程圖</p><p><b> 讀取溫度子程序</b></p><p> 讀取溫度子程序的主要功能是讀取RAM中的9字節(jié),在讀出時(shí)需進(jìn)行CRC校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(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位分辨率時(shí)轉(zhuǎn)換時(shí)間約為750ms,在本程序設(shè)計(jì)中采用1s顯示程序延時(shí)法等待轉(zhuǎn)換的完成,溫度轉(zhuǎn)換命令子程序流程圖如圖4.3所示。</p><p> 圖4.3 溫度轉(zhuǎn)換流程圖</p><p><b> 計(jì)算溫
69、度子程序</b></p><p> 計(jì)算溫度子程序?qū)AM中讀取值進(jìn)行BCD碼的轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的判定,其程序流程圖如圖4.4所示。</p><p> 圖4.4 計(jì)算溫度流程圖</p><p><b> 顯示數(shù)據(jù)刷新子程序</b></p><p> 顯示數(shù)據(jù)刷新子程序主要是對(duì)顯示緩沖器中的顯
70、示數(shù)據(jù)進(jìn)行刷新操作,當(dāng)最高顯示位為0時(shí)將符號(hào)顯示位移入下一位,程序流程圖如圖4.5所示。</p><p> 圖4.5 顯示數(shù)據(jù)刷新流程圖</p><p><b> 溫度報(bào)警子程序</b></p><p> 溫度報(bào)警子程序主要是對(duì)當(dāng)前溫度值與預(yù)先設(shè)置的溫度值的比較,如果當(dāng)前溫度達(dá)到預(yù)設(shè)報(bào)警溫度時(shí),調(diào)用溫度報(bào)警子程序讓單片機(jī)相應(yīng)端口輸出信號(hào)使
71、蜂鳴器和發(fā)光二極管實(shí)現(xiàn)聲光報(bào)警,程序流程圖如圖4.6所示。</p><p> 圖4.6 調(diào)用溫度報(bào)警子程序流程圖</p><p><b> 系統(tǒng)總體調(diào)試</b></p><p> 近年來隨著科技的飛速發(fā)展,單片機(jī)的應(yīng)用正在不斷地走向深入,同時(shí)帶動(dòng)傳統(tǒng)控制檢測(cè)日新月異更新。在實(shí)時(shí)檢測(cè)和自動(dòng)控制的單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)往往是作為一個(gè)核心部件
72、來使用,僅單片機(jī)方面知識(shí)是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu),以及針對(duì)具體應(yīng)用對(duì)象特點(diǎn)的軟件結(jié)合,加以完善。</p><p> 根據(jù)方案設(shè)計(jì)的要求,調(diào)試過程共分三大部分:硬件調(diào)試、軟件調(diào)試和軟硬聯(lián)調(diào)。 </p><p> 單片機(jī)系統(tǒng)的硬件調(diào)試和軟件調(diào)試是不能分開的,許多硬件錯(cuò)誤是在軟件調(diào)試中被發(fā)現(xiàn)和糾正的。但通常是先排除明顯的硬件故障以后,再和軟件結(jié)合起來調(diào)試以進(jìn)一步排除故障??梢娪布恼{(diào)試
73、是基礎(chǔ),如果硬件調(diào)試不通過,軟件設(shè)計(jì)則是無(wú)從做起。</p><p><b> 硬件調(diào)試</b></p><p> 5.1.1 排除邏輯故障</p><p> 這類故障往往由于設(shè)計(jì)和加工制板過程中工藝性錯(cuò)誤所造成的。主要包括錯(cuò)線、開路、短路。排除的方法是首先將加工的電路板認(rèn)真對(duì)照原理圖,看兩者是否一致。應(yīng)特別注意電源系統(tǒng)檢查,以防止電源短
74、路和極性錯(cuò)誤,并重點(diǎn)檢查系統(tǒng)總線(地址總線、數(shù)據(jù)總線和控制總線)是否存在相互之間短路或與其它信號(hào)線路短路。必要時(shí)利用數(shù)字萬(wàn)用表的短路測(cè)試功能,可以縮短排錯(cuò)時(shí)間。</p><p> 5.1.2 排除元器件失效</p><p> 造成這類錯(cuò)誤的原因有兩個(gè):一個(gè)是元器件買來時(shí)就已壞了;另一個(gè)是由于安裝錯(cuò)誤,造成器件燒壞??梢圆扇z查元器件與設(shè)計(jì)要求的型號(hào)、規(guī)格和安裝是否一致。在保證安裝無(wú)誤
75、后,用替換方法排除錯(cuò)誤。</p><p> 5.1.3 排除電源故障</p><p> 在通電前,一定要檢查電源電壓的幅值和極性,否則很容易造成集成塊損壞。加電后檢查各插件上引腳的電位,一般先檢查VCC與GND之間電位,若在5V~4.8V之間屬正常。若有高壓,聯(lián)機(jī)仿真器調(diào)試時(shí),將會(huì)損壞仿真器等,有時(shí)會(huì)使應(yīng)用系統(tǒng)中的集成塊發(fā)熱損壞。</p><p> 檢查電路
76、板及焊接的質(zhì)量情況,在檢查無(wú)誤后可通電檢查L(zhǎng)ED顯示器。若亮度不理想,可以調(diào)整P1口的上拉電阻大小,一般情況取200歐電阻即可。使用萬(wàn)用表檢查電路的連接是否與原理圖的一致,并檢查是否有虛焊現(xiàn)象。</p><p><b> 軟件調(diào)試</b></p><p> 本系統(tǒng)的軟件系統(tǒng)全部采用C語(yǔ)言編寫,除語(yǔ)法與邏輯差錯(cuò)外,當(dāng)確認(rèn)程序沒問題時(shí),直接把生成的HEX文件下載到單片
77、機(jī)仿真調(diào)試。采取自下到上的方法,單獨(dú)調(diào)好每一個(gè)模塊,最后完成一個(gè)完整的系統(tǒng)調(diào)試。</p><p> 在KeilC51編譯環(huán)境下進(jìn)行,源程序編譯及仿真調(diào)試應(yīng)分段或以子程序?yàn)閱挝恢饌€(gè)進(jìn)行,先在Keil里進(jìn)行單步運(yùn)行調(diào)試,最后將Hex文件下載到單片機(jī)里,結(jié)合硬件進(jìn)行實(shí)時(shí)調(diào)試。</p><p> 通過以上檢查后,將電路通電查看是否按要求正常工作,最終完成設(shè)計(jì)。</p><p
78、> 下面圖5.1為PROTEUS溫度計(jì)仿真電路圖。</p><p> 圖5.1 PROTUES放置電路圖</p><p><b> 設(shè)計(jì)總結(jié)與體會(huì)</b></p><p><b> 設(shè)計(jì)總結(jié)</b></p><p> 89STC52單片機(jī),體積小,重量輕,抗干擾能力強(qiáng),對(duì)環(huán)境要求不
79、高,價(jià)格低廉,可靠性高,靈活性好,即使是非電子計(jì)算機(jī)專業(yè)人員,通過學(xué)習(xí)一些專業(yè)基礎(chǔ)知識(shí)以后也能依靠自己的技術(shù)力量,來開發(fā)所希望的單片機(jī)應(yīng)用系統(tǒng)。本設(shè)計(jì)的溫度測(cè)量和報(bào)警系統(tǒng),只是單片機(jī)廣泛應(yīng)用于各行各業(yè)中的一例。</p><p> 本設(shè)計(jì)研究是基于單片機(jī)控制的溫度測(cè)量與報(bào)警系統(tǒng)的設(shè)計(jì),介紹了對(duì)溫度的測(cè)量、顯示及報(bào)警,實(shí)現(xiàn)了溫度的實(shí)時(shí)顯示。 </p><p> 它具有微型化、低功耗、高性能
80、、抗干攏能力強(qiáng)、易配微處理器等優(yōu)點(diǎn),特別適合于構(gòu)成多點(diǎn)溫度測(cè)控系統(tǒng),可直接將溫度轉(zhuǎn)化成串行數(shù)字信號(hào)供微機(jī)處理,而且每片DS18S20都有唯一的產(chǎn)品號(hào)并可存入其ROM中,以便在構(gòu)成大型溫度測(cè)控系統(tǒng)時(shí)在單線上掛接任意多個(gè)DS18S20芯片。從DS18S20讀出或?qū)懭隓S18S20信息僅需要一根口線,其讀寫及溫度變換功率來源于數(shù)據(jù)總線,該總線本身也可以向所掛接的DS18S20供電,而無(wú)需額處電源。DS18S20能提供九位溫度讀數(shù),它無(wú)需任何外
81、圍硬件即可方便地構(gòu)成溫度檢測(cè)系統(tǒng)。</p><p> 本設(shè)計(jì)利用STC89C52芯片控制溫度傳感器DS18B20,再輔之以部分外圍電路實(shí)現(xiàn)對(duì)環(huán)境溫度的測(cè)量,性能穩(wěn)定,精度較高,而且擴(kuò)展性能很強(qiáng)大。由于DS18B20 支持單總線協(xié)議,我們可以將多個(gè)DS18B20 可以并聯(lián)在一起,CPU 只需一根端口線就能與多個(gè)DS18B20通信,占用較少的微處理器的端口就可以實(shí)現(xiàn)多點(diǎn)測(cè)溫系統(tǒng)。</p><p&
82、gt; 由于DS18B20的測(cè)量精度只有±0.5 度,往往很多場(chǎng)合需要更加精確的溫度,在所測(cè)溫度精度不變的基礎(chǔ)上必須對(duì)數(shù)據(jù)進(jìn)行校正。不過,其誤差在時(shí)間和外部環(huán)境變化的條件下,保持相當(dāng)高的穩(wěn)定性。針對(duì)這一特性,對(duì)其進(jìn)行誤差校正補(bǔ)償;這種誤差校正的補(bǔ)償方法,不需增加硬件電路,計(jì)算方法簡(jiǎn)單,軟件費(fèi)用也很小,既提高了測(cè)量精度,又不需增加成本。它充分單片機(jī)的處理能力,在單片機(jī)上用線性插補(bǔ)的數(shù)學(xué)方法對(duì)其進(jìn)行誤差校正補(bǔ)償,能輕易地將其提高
83、其精度,從而達(dá)到更準(zhǔn)確地測(cè)量周圍環(huán)境的溫度。</p><p><b> 畢業(yè)設(shè)計(jì)心得體會(huì)</b></p><p> 經(jīng)過將近三個(gè)月的畢業(yè)設(shè)計(jì),終于完成了我的數(shù)字溫度計(jì)的設(shè)計(jì),雖然電路外觀不是很美觀,但從心底里說,還是高興的,畢竟這次設(shè)計(jì)把實(shí)物都做了出來,高興之余也從中學(xué)到了很多知識(shí)。</p><p> 在本次畢業(yè)設(shè)計(jì)的過程中,我發(fā)現(xiàn)很多的
84、問題,雖然以前還做過這樣的設(shè)計(jì)但這次設(shè)計(jì)真的讓我長(zhǎng)進(jìn)了很多,單片機(jī)畢業(yè)設(shè)計(jì)重點(diǎn)就在于軟件算法的設(shè)計(jì),需要有很巧妙的程序算法,雖然以前寫過幾次程序,但我覺的寫好一個(gè)程序并不是一件簡(jiǎn)單的事,舉個(gè)例子,以前寫的那幾次,數(shù)據(jù)加減時(shí),我用的都是BCD碼,這一次,我全部用的都是16進(jìn)制的數(shù)直接加減,顯示處理時(shí)再用除法去求出各位,感覺效果比較好;有好多的東西,只有我們?nèi)ピ囍隽?,才能真正的掌握,只學(xué)習(xí)理論有些東西是很難理解的,更談不上掌握。此次的畢業(yè)
85、設(shè)計(jì)真正讓我把學(xué)到的理論知識(shí)應(yīng)用到實(shí)際的設(shè)計(jì)中,同時(shí)也從實(shí)踐中鍛煉了自己的實(shí)驗(yàn)動(dòng)手能力,在實(shí)踐中檢驗(yàn)了學(xué)到的知識(shí)。</p><p> 從這次的課程設(shè)計(jì)中,我真真正正的意識(shí)到,在以后的學(xué)習(xí)和工作中,要理論聯(lián)系實(shí)際,把我們所學(xué)的理論知識(shí)用到實(shí)際當(dāng)中,從實(shí)際中學(xué)到更多的知識(shí)。學(xué)習(xí)單機(jī)片機(jī)更是如此,程序只有在經(jīng)常的寫與讀的過程中才能提高,實(shí)驗(yàn)動(dòng)手能力只有在不斷的鍛煉中才能提升,這就是我在這次畢業(yè)設(shè)計(jì)中的最大收獲。<
86、;/p><p> 參 考 文 獻(xiàn)</p><p> [1] 肖金球. 單片機(jī)原理和接口技術(shù)[M] . 北京:清華大學(xué)出版社,2008.</p><p> [2] 馬長(zhǎng)林. 單片機(jī)實(shí)踐應(yīng)用與技術(shù)[M] . 北京:清華大學(xué)出版社,2008.</p><p> [3] 牛昱光. 單片機(jī)原理和接口技術(shù)[M] . 北京:電子工業(yè)出
87、版社, 2008.</p><p> [4] 倪志蓮. 單片機(jī)應(yīng)用技術(shù)[M] . 北京:北京理工大學(xué)出版社, 2007.</p><p> [5] 陳志旺. 51系列單片機(jī)系統(tǒng)設(shè)計(jì)與實(shí)踐[M] . 北京:電子工業(yè)出版社, 2010.</p><p> [6] 趙亮. 單片機(jī)C語(yǔ)言編程與實(shí)例[M] . 北京:清華大學(xué)出版社, 2008.<
88、;/p><p> [7] 樓然苗. 單片機(jī)課程設(shè)計(jì)指導(dǎo)[M] . 北京:北京航空航天大學(xué)出版社, 2007.</p><p> [8] 王勇. 基于AT89S51的便攜式實(shí)時(shí)溫度檢測(cè)儀[A] . 儀表技術(shù)與傳感器[C], 2006.</p><p> [9] 何立民. MCS-51系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)[M] . 北京:北京航空航天大學(xué)出版社, 1
89、995.</p><p> [10] 李玉峰,倪虹霞. MCS-51系列單片機(jī)原理與接口技術(shù)[M] . 北京:人民郵電出版社, 2004.</p><p> [11] 肖來勝,馮建蘭. 單片機(jī)技術(shù)實(shí)用教程[M]. 武漢:華中科技大學(xué)出版社, 2004.</p><p> [12] 丁明亮,唐前輝. 51單片機(jī)應(yīng)用設(shè)計(jì)與仿真[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è)計(jì)(論文)是在我的指導(dǎo)教師童懷老師的親切關(guān)懷和悉心指導(dǎo)下完成的。他嚴(yán)肅的科學(xué)態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神,精益求精的工作作風(fēng),深深地感染和激勵(lì)著我。從題目的選擇到最終完成,童懷
92、老師都始終給予我細(xì)心的指導(dǎo)和不懈的支持。</p><p> 在本畢業(yè)設(shè)計(jì)的設(shè)計(jì)和制作過程中,感謝老師給了我很大的幫助,在論文工作中,遇到了很多細(xì)節(jié)方面的問題,一直得到童懷老師的親切關(guān)懷和悉心指導(dǎo),使我得以順利的完成此次畢業(yè)設(shè)計(jì)的任務(wù),童懷老師以其豐厚的專業(yè)知識(shí)功底、嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度、求實(shí)的工作作風(fēng)和他敏捷的思維給我留下了深刻的印象,我將終生難忘并向他學(xué)習(xí)。再一次向他表示衷心的感謝,感謝他為學(xué)生營(yíng)造的濃郁學(xué)習(xí)氛圍,
93、以及學(xué)習(xí)上的無(wú)私幫助。同時(shí)我也會(huì)將這種嚴(yán)謹(jǐn)?shù)淖黠L(fēng)運(yùn)用到工作中去,為以后的社會(huì)實(shí)踐工作而努力。畢業(yè)設(shè)計(jì)的完成同時(shí)也離不開很多的同學(xué)熱心幫助,是他們?cè)谖矣龅诫y題的時(shí)候給了我啟發(fā)。</p><p> 通過本次畢業(yè)設(shè)計(jì),我在專業(yè)知識(shí)、專業(yè)技能和解決問題方法方面得到很大的提高。更深入了解并掌握了傳感器的基本理論知識(shí),并在單片機(jī)實(shí)際電路開發(fā)和常用編程設(shè)計(jì)思路掌握方面有了一定程度的掌握,盡管本次設(shè)計(jì)還不是很完善,但這為我以后
94、的設(shè)計(jì)之路積累了寶貴的經(jīng)驗(yàn)。</p><p> 由于本人水平有限,加之時(shí)間倉(cāng)促,設(shè)計(jì)中疏漏和錯(cuò)誤之處在所難免,希望老師給予諒解,同時(shí)也希望老師加以批評(píng)和指正,使我在以后的學(xué)習(xí)和工作中取得更大的成績(jī)。</p><p> 附錄A 程序源代碼</p><p> /***************************************************
95、***************</p><p> 程序名稱:DS18B20溫度測(cè)量及報(bào)警;</p><p> 簡(jiǎn)要說明:DS18B20溫度計(jì),溫度測(cè)量范圍0-99.9攝氏度;</p><p> 可設(shè)置上限報(bào)警溫度、下限報(bào)警溫度;</p><p> 即高于上限值或者低于下限值時(shí)蜂鳴器和LED指示燈報(bào)警;</p><p
96、> 默認(rèn)上限報(bào)警溫度為38℃、默認(rèn)下限報(bào)警溫度為5℃;</p><p> 報(bào)警值可設(shè)置范圍:最低上限報(bào)警值等于當(dāng)前下限報(bào)警值;</p><p> 最高下限報(bào)警值等于當(dāng)前上限報(bào)警值;</p><p> 將下限報(bào)警值調(diào)為0時(shí)為關(guān)閉下限報(bào)警功能。 </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ù)點(diǎn)</p><p>
100、; uchar x=0; //計(jì)數(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; //上限報(bào)警溫度,默認(rèn)值為38</p><p> signed char xiaxian=5; //下限報(bào)警溫度,默認(rèn)值為5</p><p> uchar code LEDData[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};</p>
102、<p> /*****延時(shí)子程序*****/</p><p> void Delay(uint num)</p><p><b> {</b></p><p> while( --num );</p><p><b> }</b></p><p>
103、/*****初始化定時(shí)器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> /*****定時(shí)器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; //計(jì)算得到百位數(shù)字</p><p> b=c/10-a*10; //計(jì)算得到十位數(shù)字</p><p> m=c/10; //計(jì)算得到整數(shù)位
114、</p><p> n=c-a*100-b*10; //計(jì)算得到小數(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. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于單片機(jī)數(shù)字溫度計(jì)畢業(yè)設(shè)計(jì)
- 基于單片機(jī)數(shù)字溫度計(jì)畢業(yè)設(shè)計(jì)
- 基于單片機(jī)數(shù)字溫度計(jì)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--基于單片機(jī)數(shù)字溫度計(jì)
- 基于單片機(jī)的數(shù)字溫度計(jì)畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的數(shù)字溫度計(jì)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)——基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)
- 基于單片機(jī)的溫度計(jì)的設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---基于單片機(jī)的溫度計(jì)的設(shè)計(jì)
- 基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì) 畢業(yè)設(shè)計(jì)
- 單片機(jī)的數(shù)字溫度計(jì)畢業(yè)設(shè)計(jì)
- 基于單片機(jī)控制的數(shù)字溫度計(jì)----畢業(yè)設(shè)計(jì)
- 基于5單片機(jī)的數(shù)字溫度計(jì)畢業(yè)設(shè)計(jì)
- 基于51單片機(jī)的數(shù)字溫度計(jì)-畢業(yè)設(shè)計(jì)
- 電子溫度計(jì)臺(tái)歷畢業(yè)設(shè)計(jì)--基于51單片機(jī)
- 單片機(jī)畢業(yè)設(shè)計(jì)--單片機(jī)設(shè)計(jì)數(shù)字溫度計(jì)
- 單片機(jī)數(shù)字溫度計(jì)設(shè)計(jì)硬件電路部分
- 基于單片機(jī)的數(shù)字溫度計(jì)畢業(yè)設(shè)計(jì)論文
- 畢業(yè)設(shè)計(jì)論文基于單片機(jī)的溫度計(jì)的設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)(論文)-基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論