版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 前 言</b></p><p> 溫度是表征物體冷熱程度的物理量。在很多生產(chǎn)過(guò)程中,特別是在冶金、化工、建材、食品、機(jī)械、石油等工業(yè)中,溫度的測(cè)量和控制都直接和安全生產(chǎn)、提高生產(chǎn)效率、保證產(chǎn)品質(zhì)量、節(jié)約能源等重大技術(shù)經(jīng)濟(jì)指標(biāo)相聯(lián)系。因此,溫度的測(cè)量與控制在國(guó)民經(jīng)濟(jì)各個(gè)領(lǐng)域中均受到了相當(dāng)程度的重視。</p><p> 單片機(jī)系統(tǒng)的開(kāi)發(fā)
2、應(yīng)用給現(xiàn)代工業(yè)測(cè)控領(lǐng)域帶來(lái)了一次新的技術(shù)革命,自動(dòng)化、智能化均離不開(kāi)單片機(jī)的應(yīng)用。將單片機(jī)控制方法運(yùn)用到溫度控制系統(tǒng)中,可以克服溫度控制系統(tǒng)中存在的嚴(yán)重滯后現(xiàn)象,同時(shí)在提高采樣頻率的基礎(chǔ)上可以很大程度的提高控制效果和控制精度。現(xiàn)代自動(dòng)控制越來(lái)越朝著智能化發(fā)展,在很多自動(dòng)控制系統(tǒng)中都用到了工控機(jī),小型機(jī)、甚至是巨型機(jī)處理機(jī)等,當(dāng)然這些處理機(jī)有一個(gè)很大的特點(diǎn),那就是很高的運(yùn)行速度,很大的內(nèi)存,大量的數(shù)據(jù)存儲(chǔ)器。但隨之而來(lái)的是巨額的成本。在很
3、多的小型系統(tǒng)中,處理機(jī)的成本占了系統(tǒng)成本的比例高達(dá)20%,而對(duì)于這些小型的系統(tǒng)來(lái)說(shuō),配置一個(gè)如此高速的處理機(jī)沒(méi)有任何必要,因?yàn)檫@些小系統(tǒng)追求經(jīng)濟(jì)效益,而不是最在乎系統(tǒng)的快速性,所以用成本低廉的單片機(jī)控制小型的,而又不是很復(fù)雜,不需要大量復(fù)雜運(yùn)算的系統(tǒng)中是非常適合的。 </p><p> 隨著電子技術(shù)以及應(yīng)用需求的發(fā)展,單片機(jī)技術(shù)得到了迅速的發(fā)展,在高集成度,高速度,低功耗以及高性能方面取得了很大的進(jìn)展。現(xiàn)在完全
4、可以運(yùn)用單片機(jī)和電子溫度傳感器對(duì)某處進(jìn)行溫度檢測(cè),而且可以很容易地做到多點(diǎn)的溫度檢測(cè),如果對(duì)此原理圖稍加改進(jìn),還可以進(jìn)行不同地點(diǎn)的實(shí)時(shí)溫度檢測(cè)和控制。</p><p><b> 1緒論</b></p><p> 1.1研究的目的和意義</p><p> 溫度是工業(yè)生產(chǎn)中主要被控參數(shù)之一,溫度控制自然是生產(chǎn)的重要控制過(guò)程。工業(yè)生產(chǎn)中溫度很難
5、控制,對(duì)于要求嚴(yán)格的的場(chǎng)合,溫度過(guò)高或過(guò)低將嚴(yán)重影響工業(yè)生產(chǎn)的產(chǎn)質(zhì)量及生產(chǎn)效率,降低生產(chǎn)效益。這就需要設(shè)計(jì)一個(gè)良好溫度控制器,隨時(shí)向用戶顯示溫度,而且能夠較好控制。單片機(jī)具有和普通計(jì)算機(jī)類似的強(qiáng)大數(shù)據(jù)處理能力,結(jié)合PID,程序控制可大大提高控制效力,提高生產(chǎn)效益[9]。</p><p> 例如鋼鐵生產(chǎn)過(guò)程中,按照工藝條件的規(guī)定保持一定的溫度才能保證產(chǎn)品質(zhì)量和設(shè)備的安全。對(duì)電氣設(shè)備進(jìn)行溫度的監(jiān)控,例如高壓開(kāi)關(guān)、變
6、壓器的出線套管等,判斷可能存在的熱缺陷,進(jìn)而能及時(shí)發(fā)現(xiàn)、處理、預(yù)防重大事故的發(fā)生。因此研究溫度控制儀具有重要的意義[10]。</p><p> 在單片機(jī)溫度測(cè)量系統(tǒng)中的關(guān)鍵是測(cè)量溫度、控制溫度和保持溫度,溫度測(cè)量是工業(yè)對(duì)象中主要的被控參數(shù)之一。因此,單片機(jī)溫度測(cè)量則是對(duì)溫度進(jìn)行有效的測(cè)量,并且能夠在工業(yè)生產(chǎn)中得到了廣泛的應(yīng)用,尤其在電力工程、化工生產(chǎn)、機(jī)械制造、冶金工業(yè)等重要工業(yè)領(lǐng)域中,擔(dān)負(fù)著重要的測(cè)量任務(wù)。在
7、日常生活中,也可廣泛實(shí)用于地?zé)?、空調(diào)器、電加熱器等各種家庭室溫測(cè)量及工業(yè)設(shè)備溫度測(cè)量場(chǎng)合[16]。</p><p> 目前市場(chǎng)上熱水器的控制系統(tǒng)大多存在功能單一、操作復(fù)雜、控制不方便等問(wèn)題,很多控制器只具有溫度和水位顯示功能,不具有溫度控制功能.即使熱水器具有輔助加熱功能。也可能由于加熱時(shí)間不能控制而產(chǎn)生過(guò)燒,從而浪費(fèi)電能。本文設(shè)計(jì)的熱水器控制系統(tǒng)以51單片機(jī)為檢測(cè)控制中心單元,具有溫度設(shè)定與控制功能。該控制器
8、和以往顯示儀相比具有性價(jià)比高、溫度控制與顯示精度高、使用方便和性能穩(wěn)定等優(yōu)點(diǎn),提高了電能的使用效率,具有可觀的經(jīng)濟(jì)效益和社會(huì)效益[18]。</p><p> 1.2國(guó)內(nèi)外發(fā)展?fàn)顩r</p><p> 溫度控制采用單片機(jī)設(shè)計(jì)的全數(shù)字儀表,是常規(guī)儀表的升級(jí)產(chǎn)品。溫度控制的發(fā)展引入單片機(jī)之后,有可能降低對(duì)某些硬件電路的要求,但這絕不是說(shuō)可以忽略測(cè)試電路本身的重要性,尤其是直接獲取被測(cè)信號(hào)的傳感
9、器部分,仍應(yīng)給予充分的重視,有時(shí)提高整臺(tái)儀器的性能的關(guān)鍵仍然在于測(cè)試電路,尤其是傳感器的改進(jìn)?,F(xiàn)在傳感器也正在受著微電子技術(shù)的影響,不斷發(fā)展變化。傳感器正朝著小型、固態(tài)、多功能和集成化的方向發(fā)展。 近年來(lái),溫度控制的發(fā)展尤為迅速。國(guó)內(nèi)外市場(chǎng)上已經(jīng)出現(xiàn)了多種多樣溫度控制儀表,應(yīng)用于社會(huì)的各個(gè)方面。例如能夠進(jìn)行程序控溫的智能多段溫度控制儀,能夠?qū)崿F(xiàn)數(shù)字PID和各種復(fù)雜控制規(guī)律的智能式溫度調(diào)節(jié)器等[11]。</p><p&
10、gt; 水溫系統(tǒng)的傳遞函數(shù)事先難以精確獲得,因而很難判斷哪一種控制方法能夠滿足系統(tǒng)對(duì)控制品質(zhì)的要求。但從對(duì)控制方法的分析來(lái)看,PID控制方法最適合本例采用。另一方面,由于可以采用單片機(jī)實(shí)現(xiàn)控制過(guò)程,無(wú)論采用上述哪一種控制方法都不會(huì)增加系統(tǒng)硬件成本,而只需對(duì)軟件作相應(yīng)改變即可實(shí)現(xiàn)不同的控制方案。因此本系統(tǒng)可以采用PID的控制方式,以最大限度地滿足系統(tǒng)對(duì)諸如控制精度、調(diào)節(jié)時(shí)間和超調(diào)量等控制品質(zhì)的要求[7]。</p><
11、p> 傳統(tǒng)的一位式模擬控制方案,選用模擬電路,用電位器設(shè)定值,反饋的溫度值和設(shè)定值比較后,決定加熱或不加熱。其特點(diǎn)是電路簡(jiǎn)單,易于實(shí)現(xiàn),但是系統(tǒng)所得結(jié)果的精度不高并且調(diào)節(jié)動(dòng)作頻繁,系統(tǒng)靜態(tài)差大、不穩(wěn)定。系統(tǒng)受環(huán)境影響大,不能實(shí)現(xiàn)復(fù)雜的控制算法,不能用數(shù)碼管顯示,不能用鍵盤(pán)設(shè)定[13]。</p><p> 傳統(tǒng)的二位式模擬控制方案,其基本思想與方案一相同,但由于采用上下限比較電路,所以控制精度有所提高。這
12、種方法還是模擬控制方式,因此也不能實(shí)現(xiàn)復(fù)雜的控制算法使控制精度做得較高,而且不能用數(shù)碼管顯示,對(duì)鍵盤(pán)進(jìn)行設(shè)定[13]。</p><p> 現(xiàn)在國(guó)內(nèi)外一般采用經(jīng)典的溫度控制系統(tǒng)。采用模擬溫度傳感器對(duì)加熱杯的溫度進(jìn)行采樣,通過(guò)放大電路變換為 0~5V 的電壓信號(hào),經(jīng)過(guò)A/D 轉(zhuǎn)換,保存在采樣值單元;利用鍵盤(pán)輸入設(shè)定溫度,經(jīng)溫度標(biāo)度轉(zhuǎn)換轉(zhuǎn)化成二進(jìn)制數(shù),保存在片內(nèi)設(shè)定值單元;然后調(diào)顯示子程序,多次顯示設(shè)定溫度和采樣溫度
13、,再把采樣值與設(shè)定值進(jìn)行 PID 運(yùn)算得出控制量,用其去調(diào)節(jié)可控硅觸發(fā)端的通斷,實(shí)現(xiàn)對(duì)電阻絲加熱時(shí)間的控制, 以此來(lái)調(diào)節(jié)水溫使其基本保持恒定[2]。</p><p> 采用單片機(jī)AT89C52設(shè)計(jì)溫度實(shí)時(shí)測(cè)量及控制系統(tǒng)。單片機(jī)AT89C52能夠根據(jù)溫度傳感器DS18B20所采集的溫度數(shù)據(jù)來(lái)控制加熱器或致冷器的啟停,從而把溫度控制在設(shè)定的范圍之內(nèi)。在溫控開(kāi)關(guān)被激活的情況下,當(dāng)溫度低于設(shè)定的下限時(shí),單片機(jī)啟動(dòng)加熱器
14、加熱,同時(shí)點(diǎn)亮綠色發(fā)光二極管,當(dāng)溫度高于設(shè)定的上限時(shí),單片機(jī)啟動(dòng)致冷器降溫,同時(shí)點(diǎn)亮紅色發(fā)光二極管。所有溫度數(shù)據(jù)均通過(guò)液晶顯示器LCM1602顯示出來(lái)。為了防止單片機(jī)掉電引起的數(shù)據(jù)丟失,溫度上下限的設(shè)定值存儲(chǔ)在AT24C02B中[8]。</p><p> 采用一線制數(shù)字溫度傳感器DS18B20來(lái)作為溫度傳感器。傳感器輸出信號(hào)進(jìn)4.7K的上拉電阻直接接到單片機(jī)的P1.0引腳上。DS18B20溫度傳感器是美國(guó)達(dá)拉斯
15、(DALLAS)半導(dǎo)體公司推出的應(yīng)用單總線技術(shù)的數(shù)字溫度傳感器。該器件將半導(dǎo)體溫敏器件、A/D轉(zhuǎn)換器、存儲(chǔ)器等做在一個(gè)很小的集成電路芯片上。溫度傳感器之所以選擇單線數(shù)字器件DS18B20,是在經(jīng)過(guò)多方面比較和考慮后決定的[12]。</p><p> 從硬件和軟件兩方面來(lái)講述水溫自動(dòng)控制過(guò)程,在控制過(guò)程中主要應(yīng)用AT89C52、ADC0809、LED顯示器、LM324比較器,而主要是通過(guò) DS18B20數(shù)字溫度傳
16、感器采集環(huán)境溫度,以單片機(jī)為核心控制部件,并通過(guò)四位數(shù)碼管顯示實(shí)時(shí)溫度的一種數(shù)字溫度計(jì)。軟件方面采用匯編語(yǔ)言來(lái)進(jìn)行程序設(shè)計(jì),使指令的執(zhí)行速度快,節(jié)省存儲(chǔ)空間。為了便于擴(kuò)展和更改,軟件的設(shè)計(jì)采用模塊化結(jié)構(gòu),使程序設(shè)計(jì)的邏輯關(guān)系更加簡(jiǎn)潔明了,使硬件在軟件的控制下協(xié)調(diào)運(yùn)作。 而系統(tǒng)的過(guò)程則是:首先,通過(guò)設(shè)置按鍵,設(shè)定恒溫運(yùn)行時(shí)的溫度值,并且用數(shù)碼管顯示這個(gè)溫度值.然后,在運(yùn)行過(guò)程中將采樣的溫度模擬量送入A/D轉(zhuǎn)換器中進(jìn)行模擬-數(shù)字轉(zhuǎn)換,再將轉(zhuǎn)
17、換后的數(shù)字量用數(shù)碼管進(jìn)行顯示,最后用單片機(jī)來(lái)控制加熱器,進(jìn)行加熱或停止加熱,直到能在規(guī)定的溫度下恒溫加熱[5]。</p><p><b> 2系統(tǒng)總體設(shè)計(jì)</b></p><p> 2.1系統(tǒng)設(shè)計(jì)任務(wù)與要求</p><p> 該溫度自動(dòng)控制系統(tǒng)采用AT89C52單片機(jī)為主控芯片,傳感器采用數(shù)字溫度傳感器DS18B20,實(shí)現(xiàn)對(duì)溫度的檢測(cè)和控
18、制。</p><p><b> 技術(shù)要求:</b></p><p> 1、能夠連續(xù)測(cè)量水的溫度值,用十進(jìn)制數(shù)碼管來(lái)顯示實(shí)際溫度,最小單位為1℃。</p><p> 2、能夠設(shè)定水的溫度值,設(shè)定范圍是30℃~90℃,溫度誤差≤±0.5℃。</p><p> 3、能夠?qū)崿F(xiàn)水溫的自動(dòng)控制,如果設(shè)定水溫為80℃
19、,則能使水溫保持恒定在80℃的溫度下運(yùn)行。</p><p> 4、用單片機(jī)AT89C52控制,通過(guò)按鍵來(lái)控制水溫的設(shè)定值,數(shù)值采用數(shù)碼管顯示。</p><p> 該溫度自動(dòng)控制系統(tǒng)由溫度信號(hào)采樣電路,鍵盤(pán)及顯示電路,溫度控制電路,報(bào)警電路,時(shí)鐘信號(hào)電路等構(gòu)成,并運(yùn)用PID算法進(jìn)行溫度控制和調(diào)整。</p><p> 根據(jù)設(shè)計(jì)任務(wù),詳細(xì)分析溫度自動(dòng)控制系統(tǒng)的設(shè)計(jì)需
20、求,并進(jìn)行軟硬件的總體設(shè)計(jì)。由鍵盤(pán)電路輸入設(shè)定溫度信號(hào)給單片機(jī),溫度信號(hào)采集電路采集現(xiàn)場(chǎng)溫度信號(hào)給單片機(jī),單片機(jī)根據(jù)輸入與反饋信號(hào)的偏差進(jìn)行PID計(jì)算,輸出反饋量給溫度控制電路,實(shí)現(xiàn)升溫。顯示電路實(shí)現(xiàn)現(xiàn)場(chǎng)溫度的實(shí)時(shí)監(jiān)控。設(shè)計(jì)人員需完成全部硬件和軟件的設(shè)計(jì),并利 Altium Designer 6.0仿真軟件對(duì)設(shè)計(jì)結(jié)果進(jìn)行驗(yàn)證。</p><p> 2.2系統(tǒng)方案的選擇</p><p>
21、在這個(gè)系統(tǒng)中我們從性能及設(shè)計(jì)成本考慮,我們選擇AT89C52芯片。AT89C52的廣泛使用,使單片機(jī)的價(jià)格大大下降。在溫度傳感器的選擇上我們采用溫度芯片DS18B20測(cè)量溫度。該芯片的物理化學(xué)性很穩(wěn)定,它能用做工業(yè)測(cè)溫元件,且此元件線形較好。該芯片直接向單片機(jī)傳輸數(shù)字信號(hào),便于單片機(jī)處理及控制。本制作的最大特點(diǎn)之一就是直接采用溫度芯片對(duì)溫度進(jìn)行測(cè)量,使數(shù)據(jù)傳輸和處理簡(jiǎn)單化。采用溫度芯片DS18B20測(cè)量溫度,體現(xiàn)了作品芯片化的這個(gè)趨勢(shì)。
22、部分功能電路的集成,使總體電路更簡(jiǎn)潔,搭建電路和焊接電路時(shí)更快。而且,集成塊的使用,有效地避免外界的干擾,提高測(cè)量電路的精確度。在這個(gè)過(guò)程中,我們通過(guò)單片機(jī)將傳感器所測(cè)量出來(lái)的溫度通過(guò)LCD1602可以顯示出來(lái)。這樣就能實(shí)時(shí)顯示溫度情況。</p><p> 本設(shè)計(jì)采用了PID控制。在工程實(shí)際中,PID控制器以其結(jié)構(gòu)簡(jiǎn)單、穩(wěn)定性好、工作可靠、調(diào)整方便而成為工業(yè)控制的主要技術(shù)之一。當(dāng)被控對(duì)象的結(jié)構(gòu)和參數(shù)不能完全掌握
23、,或得不到精確的數(shù)學(xué)模型,控制理論的其他技術(shù)也難以采用,系統(tǒng)控制器的結(jié)構(gòu)和參須依靠經(jīng)驗(yàn)和現(xiàn)場(chǎng)調(diào)試來(lái)確定時(shí),應(yīng)用PID控制技術(shù)最為方便。 PID控制器的參數(shù)整定是控制系統(tǒng)設(shè)計(jì)的核心內(nèi)容。它是根據(jù)被控過(guò)程的特性確定PID控制器的比例系數(shù)、積分時(shí)問(wèn)和微分時(shí)間的大小。PID控制器參數(shù)整定的方法概括起來(lái)有兩大類:一是理論計(jì)算整定法。它主要是依據(jù)系統(tǒng)的數(shù)學(xué)模型,經(jīng)過(guò)理論計(jì)算確定控制器參數(shù)。這種方法所得到的計(jì)算數(shù)
24、據(jù)未必可以直接用,還必須通過(guò)工程實(shí)際進(jìn)行調(diào)整和修改。二是工程整定方法,它主要依賴工程經(jīng)驗(yàn),直接且方法簡(jiǎn)單、易于掌握,在實(shí)際中被廣泛應(yīng)用。</p><p><b> 3器件和模塊的選用</b></p><p> 3.1 AT89C52單片機(jī)</p><p> AT89C52是一種低功耗、高性能8位微控制器,具有8K 在系可編程Flash 存
25、儲(chǔ)器。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使AT89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、有效的解決方案。 </p><p> AT89C52具有以下標(biāo)準(zhǔn)功能:8k字節(jié)Flash,256字節(jié)RAM,32 位I/O 口線,看門(mén)狗定時(shí)器,2個(gè)數(shù)據(jù)指針
26、,三個(gè)16位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,AT89C52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。 </p><p>&
27、lt;b> 其主要工作特性為:</b></p><p> 1、內(nèi)含8KB的Flash存儲(chǔ)器,擦寫(xiě)次數(shù)達(dá)1000次;</p><p> 2、內(nèi)含128字節(jié)的RAM;</p><p> 3、具有32根可編程I/O線;</p><p> 4、具有2個(gè)16位可編程定時(shí)器;</p><p> 5、具
28、有6個(gè)中斷源、5個(gè)中斷矢量、2級(jí)優(yōu)先權(quán)的中斷結(jié)構(gòu);</p><p> 6、具有1個(gè)全雙工的可編程串行通信接口;</p><p> 7、具有1個(gè)數(shù)據(jù)指針DPTR;</p><p> 8、兩種低功耗工作模式,即空閑模式和掉電模式;</p><p> 9、具有可編程的3級(jí)程序鎖定位;</p><p> 10、工作電
29、源電壓為5±1.2V,典型值為5V;</p><p> 11、最高工作頻率為24MHz。</p><p> 引腳排列如圖3.1所示。</p><p> 圖3.1 AT89C52引腳排列</p><p> 3.2 DS18B20傳感器</p><p> DS18B20原理與特性:采用了DS18B20
30、單總線可編程溫度傳感器,來(lái)實(shí)現(xiàn)對(duì)溫度的采集和轉(zhuǎn)換,大大簡(jiǎn)化了電路的復(fù)雜度,以及算法的要求。首先來(lái)介紹一下DS18B20這塊傳感器的特性及其功能: DSl8B20的管腳及特點(diǎn) DS18B20可編程溫度傳感器有3個(gè)管腳。內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL、配置寄存器。DS18B20的外形及管腳排列如圖3.2所示。</p><p> GND為接地線,DQ為數(shù)據(jù)輸入
31、輸出接口,通過(guò)一個(gè)較弱的上拉電阻與單片機(jī)相連。VDD為電源接口,既可由數(shù)據(jù)線提供電源,又可由外部提供電源,范圍3.0~5.5 V。本文使用外部電源供電。</p><p><b> 主要特點(diǎn)有: </b></p><p> 1. 用戶可自設(shè)定報(bào)警上下限溫度值。 </p><p> 不需要外部組件,能測(cè)量-55~+125℃ 范圍內(nèi)的溫度。&l
32、t;/p><p> -10℃ ~+85℃ 范圍內(nèi)的測(cè)溫準(zhǔn)確度為±0.5℃ 。</p><p> 圖3.2 DS18B20的外形及管腳圖</p><p> 通過(guò)編程可實(shí)現(xiàn)9~l2位的數(shù)字讀數(shù)方式,可在至多750 ms內(nèi)將溫度轉(zhuǎn)換成12 位的數(shù)字,測(cè)溫分辨率可達(dá)0.0625℃ 。 </p><p> 獨(dú)特的單總線接口方式,與微處理器
33、連接時(shí)僅需要一條線即可實(shí)現(xiàn)與微處理器雙向通訊。</p><p> 測(cè)量結(jié)果直接輸出數(shù)字溫度信號(hào),以“一線總線”串行傳送給CPU,同時(shí)可傳送CRC校驗(yàn)碼,具有極強(qiáng)的抗干擾糾錯(cuò)能力。</p><p> 負(fù)壓特性:電源極性接反時(shí),芯片不會(huì)因發(fā)熱而燒毀,但不能正常工作。</p><p> DS18B20支持多點(diǎn)組網(wǎng)的功能,多個(gè)DS18B20可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)
34、組網(wǎng)多點(diǎn)測(cè)溫。</p><p> DS18B20內(nèi)部功能模塊如圖3.3所示,</p><p> 圖3.3 DS18B20原理圖</p><p> DS18B20的讀寫(xiě)時(shí)序和測(cè)溫原理與DS1820相同,只是得到的溫度值的位數(shù)因分辨率不同DS18B20 為9位~12位A/D轉(zhuǎn)換精度,而DS1820為9位A/D轉(zhuǎn)換,雖然我們采用了高精度的芯片,但在實(shí)際情況上由于技術(shù)
35、問(wèn)題比較難實(shí)現(xiàn),而實(shí)際精度此時(shí)溫度寄存器中的數(shù)值即為所測(cè)溫度。斜率累加器用于補(bǔ)償和修正測(cè)溫過(guò)程中的非線性,其輸出用于修正計(jì)數(shù)器1的預(yù)置值。如下3.4的測(cè)溫原理圖不同,且溫度轉(zhuǎn)換時(shí)的延時(shí)時(shí)間由2s減為750ms。 DS18B20測(cè)溫原理如圖3.4所示。</p><p> 圖3.4 DS18B20的測(cè)溫原理框圖</p><p> 圖中低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率
36、的脈沖信號(hào)送給計(jì)數(shù)器1。則高溫度系數(shù)晶振隨溫度變化其振蕩率明顯改變,所產(chǎn)生的信號(hào)作為計(jì)數(shù)器2的脈沖輸入。計(jì)數(shù)器1和溫度寄存器被預(yù)置在-55℃所對(duì)應(yīng)的一個(gè)基數(shù)值時(shí)。計(jì)數(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重新開(kāi)始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到計(jì)數(shù)器2計(jì)數(shù)到0時(shí),停止溫度寄存器值。 </p><p>
37、; 在DS18B20測(cè)溫程序設(shè)計(jì)中,向DS18B20發(fā)出溫度轉(zhuǎn)換命令后,程序要等待DS18B20的返回信號(hào),一旦某個(gè)DS18B20接觸不好或斷線,當(dāng)程序讀該DS18B20時(shí),將沒(méi)有返回信號(hào),程序進(jìn)入死循環(huán)。這一點(diǎn)在進(jìn)行DS1820硬件連接和軟件設(shè)計(jì)時(shí)也要給予一定的重視。測(cè)溫電纜線采用屏蔽4芯雙絞線,其中有一對(duì)接地線與信號(hào)線,另一組接VCC和地線。</p><p> 3.3復(fù)位和時(shí)鐘電路的設(shè)計(jì)</p>
38、;<p> 本系統(tǒng)中采用手動(dòng)復(fù)位鍵復(fù)位相的方式。系統(tǒng)時(shí)鐘電路設(shè)計(jì)采用內(nèi)部方式。AT89C52內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器。這個(gè)放大器與作為反饋元件的片外晶體諧振器構(gòu)成一個(gè)自激振蕩器。外接晶體諧振器以及電容構(gòu)成并聯(lián)諧振電路,接在放大器的反饋回路中。本系統(tǒng)電路采用的晶體振蕩器頻率為11.0592MHz。采用這種頻率的晶體振蕩器的原因是可以方便的獲得標(biāo)準(zhǔn)的波特率。復(fù)位電路和時(shí)鐘電路如圖3.5所示。復(fù)位電路有上電自
39、動(dòng)復(fù)位和按鈕手動(dòng)復(fù)位兩種。上電復(fù)位是利用電容充電來(lái)實(shí)現(xiàn)的,上電瞬間RST/VPD端的電位與VCC相同,隨著充電電流的減少,RST/VPD的電位逐漸下降,圖3.5中的10K的電阻是施密特觸發(fā)器輸入端的一個(gè)下拉電阻,時(shí)間常數(shù)為10*10-6*10*103s=100ms,只要Vcc的上升時(shí)間不超過(guò)1ms,振蕩器建立時(shí)間不超過(guò)10ms,這個(gè)時(shí)間常數(shù)足以保證完成復(fù)位操作[6]。上電復(fù)位所需最短時(shí)間是震蕩周期建立時(shí)間加上2個(gè)機(jī)器周期時(shí)間。按鈕復(fù)位采
40、用電平復(fù)位方式,按下復(fù)位電鈕時(shí),電源對(duì)外接電容充電,使RST/VPD端為高電平,復(fù)位按鈕松開(kāi)后,電容通過(guò)內(nèi)部下拉電阻放電,逐漸使RST/VPD端恢復(fù)</p><p> 圖3.5 復(fù)位電路和時(shí)鐘電路</p><p> 3.4 溫度采集電路</p><p> 數(shù)據(jù)采集電路如圖3.6所示,1腳接地,2腳即為單總線數(shù)據(jù)口,3腳接電源。溫度傳感器DS18B20采集被控對(duì)
41、象的實(shí)時(shí)溫度,提供給AT89C52的P3.5口作為數(shù)據(jù)輸入。</p><p> 圖3.6 數(shù)據(jù)采集電路</p><p> 3.5顯示電路的設(shè)計(jì)</p><p> 數(shù)碼管顯示部分,采用與單片機(jī)相連接,將溫度傳感器采集到的信息迅速轉(zhuǎn)化為可視溫度,增加了可讀性。</p><p> 圖3.7數(shù)碼管顯示電路圖</p><p&
42、gt;<b> 3.6供電系統(tǒng)</b></p><p> 供電部分采用TL431構(gòu)成的恒壓源,TL431是一個(gè)有良好的熱穩(wěn)定性能的三端可調(diào)分流基準(zhǔn)源。他的輸出電壓用兩個(gè)電阻就可以任意的設(shè)置到從Verf(2.5V)到36V范圍內(nèi)的任何值。該器件的典型動(dòng)態(tài)阻抗為0.2Ω。其穩(wěn)壓電路圖如圖3.8:</p><p><b> 圖3.8供電電路 </b&g
43、t;</p><p> 4 PID控制和參數(shù)整定</p><p> 4.1 PID調(diào)節(jié)器控制原理</p><p> PID控制器是一種線性控制器,一種它根據(jù)給定值rin(t)與實(shí)際輸出值yout(t)構(gòu)成控制偏差:</p><p> Error(t)=rin(t)-yout(t)</p><p> PID控制
44、就是對(duì)偏差信號(hào)進(jìn)行比例、積分、微分運(yùn)算后,形成一種控制規(guī)律。即,控制器的輸出為:</p><p><b> ?。?.1)</b></p><p> 或?qū)懗蓚鬟f函數(shù)的形式:</p><p><b> ?。?.2)</b></p><p> 式中, kp——比例系數(shù);Ti——積分時(shí)間常數(shù);Td——微
45、分時(shí)間常數(shù)。簡(jiǎn)單說(shuō)來(lái),PID控制器各校正環(huán)節(jié)的作用如下:</p><p> 比例環(huán)節(jié):成比例地反映控制系統(tǒng)的偏差信號(hào)error(t),偏差一旦產(chǎn)生,控制器立即產(chǎn)生控制作用,以減小偏差[10]。</p><p> 比例控制: Gc(s)= Kp </p><p> 積分環(huán)節(jié):主要用于消除靜差,提高系統(tǒng)的無(wú)差度。積分作用的強(qiáng)盡弱取決于積分 時(shí)間常數(shù)Ti,Ti
46、越大,積分作用越弱,反之則越強(qiáng)。</p><p> 積分控制: Gc(s) = Kp/T is</p><p> 微分環(huán)節(jié):反偏差信號(hào)的變化趨勢(shì)(變化速率),并能在偏差信號(hào)變得太大之前, 在系統(tǒng)中引入一個(gè)有效的早期修正信號(hào),從而加快系統(tǒng)的動(dòng)作速度,減少調(diào)節(jié)時(shí)間。</p><p> 微分控制: Gc(s) =KpT ds</p><p&
47、gt; 4.2 PID控制的分類</p><p> 基本PID控制器的理想算式為</p><p><b> (4.3)</b></p><p><b> 式中</b></p><p> u(t)——控制器(也稱調(diào)節(jié)器)的輸出;</p><p> e(t)——控制器
48、的輸入(常常是設(shè)定值與被控量之差,即e(t)=r(t)-c(t));</p><p> Kp——控制器的比例放大系數(shù);</p><p> Ti ——控制器的積分時(shí)間;</p><p> Td——控制器的微分時(shí)間。</p><p> 設(shè)u(k)為第k次采樣時(shí)刻控制器的輸出值,可得離散的PID算式</p><p>
49、<b> (4.4)</b></p><p><b> , </b></p><p> 由于計(jì)算機(jī)的輸出u(k)直接控制執(zhí)行機(jī)構(gòu)(如閥門(mén)),u(k)的值與執(zhí)行機(jī)構(gòu)的位置(如閥門(mén)開(kāi)度)一一對(duì)應(yīng),所以稱式(2)為位置式PID控制算法。</p><p> 位置式PID控制算法的缺點(diǎn):當(dāng)前采樣時(shí)刻的輸出與過(guò)去的各個(gè)狀態(tài)有
50、關(guān),計(jì)算時(shí)要對(duì)e(k)進(jìn)行累加,運(yùn)算量大;而且控制器的輸出u(k)對(duì)應(yīng)的是執(zhí)行機(jī)構(gòu)的實(shí)際位置,如果計(jì)算機(jī)出現(xiàn)故障,u(k)的大幅度變化會(huì)引起執(zhí)行機(jī)構(gòu)位置的大幅度變化。</p><p> 增量式只需計(jì)算增量,算式中不需要累加,控制增量的確定僅與最近幾次偏差采樣值有關(guān),當(dāng)出現(xiàn)計(jì)算誤差或精度不足時(shí),對(duì)控制量計(jì)算的影響較小,且較容易通過(guò)加權(quán)處理獲得比較好的控制效果。</p><p> 4.3
51、數(shù)字PID參數(shù)的整定</p><p> PID控制器的參數(shù)整定是控制系統(tǒng)設(shè)計(jì)的核心內(nèi)容。它是根據(jù)被控過(guò)程的特性確定PID控制器的比例系數(shù)、積分時(shí)間和微分時(shí)間的大小。PID控制器參數(shù)整定的方法很多,概括起來(lái)有兩大類:一是理論計(jì)算整定法。它主要是依據(jù)系統(tǒng)的數(shù)學(xué)模型,經(jīng)過(guò)理論計(jì)算確定控制器參數(shù)。這種方法所得到的計(jì)算數(shù)據(jù)未必可以直接用,還必須通過(guò)工程實(shí)際進(jìn)行調(diào)整和修改。二是工程整定方法,它主要依賴工程經(jīng)驗(yàn),直接在控制系
52、統(tǒng)的試驗(yàn)中進(jìn)行,且方法簡(jiǎn)單、易于掌握,在工程實(shí)際中被廣泛采用。本設(shè)計(jì)采用PID歸一整定法把對(duì)控制臺(tái)三個(gè)參數(shù)(Kc、Ti、Td,)轉(zhuǎn)換為一個(gè)參數(shù)KP, 從而使問(wèn)題明顯簡(jiǎn)化。以達(dá)到控制器的特性與被控過(guò)程的特性相匹配,滿足某種反映控制系統(tǒng)質(zhì)量的性能指標(biāo)。</p><p> 4.4 PID計(jì)算程序 </p><p> PID調(diào)節(jié)規(guī)律的基本輸入輸出關(guān)系可用微分方程表示為:</p>
53、<p><b> (4.5)</b></p><p> 式中為調(diào)節(jié)器的輸入誤差信號(hào),且</p><p><b> (4.6)</b></p><p> 其中:為給定值,為被控變量;</p><p> 為調(diào)節(jié)器的輸出控制信號(hào);</p><p><b&
54、gt; 為比例系數(shù);</b></p><p><b> 為積分時(shí)間常數(shù);</b></p><p><b> 微分時(shí)間常數(shù)。</b></p><p> 計(jì)算機(jī)只能處理數(shù)字信號(hào),若采樣周期為T(mén)第n次采樣的輸入誤差為,且,輸出為,PID算法用的微分由差分代替,積分由代替,于是得到</p><
55、;p><b> ?。?.7)</b></p><p><b> 寫(xiě)成遞推形式為</b></p><p><b> △</b></p><p><b> =</b></p><p><b> =</b></p>
56、<p><b> =</b></p><p> = (4.8)</p><p> 其中: (4.9)</p><p><b> ?。?.10)</b&
57、gt;</p><p><b> ?。?.11)</b></p><p> 顯然,PID計(jì)算△un只需要保留現(xiàn)時(shí)刻en以及以前的兩個(gè)偏差量en-1和en-2。初始化程序初值en-1= en-2 =0 通過(guò)采樣并根據(jù)參數(shù)KP、KD、KI以及en、en-1和en-2計(jì)算△un。</p><p> 根據(jù)輸出控制增量△un,可求出本次控制輸出為&l
58、t;/p><p> +△= (4.12)</p><p> 下面對(duì)PID運(yùn)算加以說(shuō)明:</p><p> 所有的數(shù)都變成定點(diǎn)純小數(shù)進(jìn)行處理。</p><p> 算式中的各項(xiàng)有正有負(fù),以最高位作為符號(hào)位,最高位為0表示為正數(shù),為1表示負(fù)數(shù)。正負(fù)數(shù)都是補(bǔ)碼表示,最后的計(jì)算以原碼輸出。&l
59、t;/p><p> 節(jié)16位進(jìn)行計(jì)算,最后將運(yùn)算結(jié)果取成高8位有效值輸出。輸出控制量un的限幅處理。為了便于實(shí)現(xiàn)對(duì)晶閘管的通斷處理,PID的輸出在0~250之間。大于250或小于0的控制量都是沒(méi)有意義的,因在算法上對(duì)進(jìn)行限幅,即</p><p> = (4.13)</p><p> 圖4.1 PID計(jì)算程序的流程圖</p><p
60、> PID的計(jì)算公式采用位置式算法,計(jì)算公式為</p><p><b> +</b></p><p> = (4.14)</p><p><b> 5軟件設(shè)計(jì)</b></p><p> 系統(tǒng)的軟件主要由主程序模塊
61、、數(shù)據(jù)采集模塊、數(shù)據(jù)處理模塊、控制算法模塊等組成。主模塊的功能是為其余幾個(gè)模塊構(gòu)建整體框架及初始化工作;數(shù)據(jù)采集模塊的作用是將數(shù)字量采集并儲(chǔ)存到存儲(chǔ)器中;數(shù)據(jù)處理模塊是將采集到的數(shù)據(jù)進(jìn)行一系列的處理,其中最重要的是數(shù)字濾波程序:控制算法模塊完成控制系統(tǒng)的PID運(yùn)算并且輸出控制量。</p><p><b> 5.1主程序模塊</b></p><p> 主程序模塊要做
62、的主要工作是上電后對(duì)系統(tǒng)初始化和構(gòu)建系統(tǒng)整體軟件框架,其中初始化包括對(duì)單片機(jī)的初始化、串口初始化等。然后等待溫度設(shè)定,若溫度已經(jīng)設(shè)定好了,判斷系統(tǒng)運(yùn)行鍵是否按下,若系統(tǒng)運(yùn)行,則依次調(diào)用各個(gè)相關(guān)模塊,循環(huán)控制直到系統(tǒng)停止運(yùn)行。</p><p> 設(shè)計(jì)模塊圖如下圖5.1所示。</p><p><b> 圖5.1設(shè)計(jì)模塊圖</b></p><p>
63、; 主程序模塊的程序流程圖如圖5.2所示。</p><p> 5.2數(shù)據(jù)采集和顯示模塊</p><p> 數(shù)據(jù)采集模塊的任務(wù)是負(fù)責(zé)溫度信號(hào)的采集以及將采集到的數(shù)字量提供給單片機(jī)。</p><p> AT89C52通過(guò)控制DS18B20讀取實(shí)時(shí)溫度,然后,通過(guò)P0口送到LCD1602進(jìn)行顯示。顯示程序設(shè)計(jì)框圖如圖5.3所示。</p><p&
64、gt;<b> N</b></p><p><b> Y </b></p><p> 圖5.3顯示程序設(shè)計(jì)框圖</p><p><b> 6 仿真與實(shí)物展示</b></p><p> 6.1 Altium Designer 6.0軟件簡(jiǎn)介</p>&
65、lt;p> 2005年年底,Protel軟件的原廠商 Altium公 司推出了Protel系列的最新高端版本Altium Designer 6.0。 Altium Designer 6.0,它是完全一體化電子產(chǎn)品開(kāi)發(fā)系統(tǒng)的一個(gè)新版本,也是業(yè)界第一款也是唯一一種完整的板級(jí)設(shè)計(jì)解決方案。Altium Designer 是業(yè)界首例將設(shè)計(jì)流程、集成化 PCB 設(shè)計(jì)、可編程器件(如 FPGA)設(shè)計(jì)和基于處理器設(shè)計(jì)的嵌入式軟件開(kāi)發(fā)功能整合在
66、一起的產(chǎn)品,一種同時(shí)進(jìn)行PCB和FPGA設(shè)計(jì)以及嵌入式設(shè)計(jì)的解決方案,具有將設(shè)計(jì)方案從概念轉(zhuǎn)變?yōu)樽罱K成品所需的全部功能。 </p><p><b> 6.2仿真</b></p><p> 通過(guò)對(duì)電路的硬件設(shè)計(jì)和程序設(shè)計(jì),我們使用了PROTEUS對(duì)設(shè)計(jì)的電路進(jìn)行仿真設(shè)計(jì)。首先,我們將硬件電路在PROTEUS中連接好,按照設(shè)計(jì)總電路圖連接各個(gè)硬件,通過(guò)單片機(jī)C語(yǔ)言來(lái)進(jìn)
67、行編程,程序如附錄所示。通過(guò)KEIL軟件降我們的源程序轉(zhuǎn)換成目標(biāo)程序來(lái)進(jìn)行仿真,生成*.hex文件。最后從PROTEUS中,將我們的程序?qū)雴纹瑱C(jī)中,便能進(jìn)行實(shí)時(shí)仿真。</p><p> PCB電路圖如圖6.1所示:</p><p> 圖6.1整體設(shè)計(jì)PCB圖</p><p> 通過(guò)PCB圖做出的實(shí)物圖如圖6.2所示: </p><p
68、><b> 圖6.2 實(shí)物圖</b></p><p><b> 致 謝</b></p><p> 畢業(yè)設(shè)計(jì)已經(jīng)接近了尾聲,這也意味著我的大學(xué)生活就要結(jié)束了,學(xué)生活一晃而過(guò),回首走過(guò)的歲月,心中倍感充實(shí),當(dāng)我寫(xiě)完這篇畢業(yè)論文的時(shí)候,有一種如釋重負(fù)的感覺(jué),感慨良多。 </p><p> 首先,我要特別感謝我的
69、指導(dǎo)老師xx老師。做設(shè)計(jì)的過(guò)程是艱辛的,但是在我的努力之下還是完成了。在這個(gè)過(guò)程中xx老師給了我很大的的幫助,沒(méi)有她的盡心指導(dǎo)和嚴(yán)格的要求,我也不會(huì)順利完成這次設(shè)計(jì)。xx老師平日里工作繁多,但我做畢業(yè)設(shè)計(jì)的每個(gè)階段,從選題到查閱資料,論文提綱的確定,中期論文的修改,后期論文格式調(diào)整等各個(gè)環(huán)節(jié)中都給予了我悉心的指導(dǎo)。這幾個(gè)月以來(lái),xx老師不僅在學(xué)業(yè)上給我以精心指導(dǎo),同時(shí)還在思想給我以無(wú)微不至的關(guān)懷,在此謹(jǐn)向xx老師致以誠(chéng)摯的謝意和崇高的敬
70、意。其次,還要感謝這四年來(lái)教我知識(shí)的美味老師們,畢業(yè)論文能夠順利完成,你們也都有很大的功勞。 </p><p> 這次的畢業(yè)設(shè)計(jì),對(duì)于培養(yǎng)我們理論聯(lián)系實(shí)際的設(shè)計(jì)思想;訓(xùn)練綜合運(yùn)用有關(guān)課程的理論,結(jié)合生產(chǎn)實(shí)際反系和解決工程實(shí)際問(wèn)題的能力;鞏固、加深和擴(kuò)展有關(guān)方面的知識(shí)等方面有重要的作用。 </p><p> 寫(xiě)作畢業(yè)論文是一次再系統(tǒng)學(xué)習(xí)的過(guò)程,畢業(yè)論文的完成,同樣也意味著新、生活的開(kāi)
71、始。希望大家在將來(lái)的生活中繼續(xù)追逐最初的夢(mèng)想,永不放棄。</p><p> 在此,我還要特別感謝我的同學(xué)們,由于你們的幫助和支持,我才能克服一個(gè)一個(gè)的困難和疑惑,你們對(duì)本課題做了不少工作,直至本文的順利完成,給予我不少的幫助,謝謝你們!</p><p><b> 參考文獻(xiàn)</b></p><p> [1]陳妙芳,胡曉東.基于AT89C51
72、單片機(jī)的溫度控制系統(tǒng)設(shè)計(jì)[J].機(jī)械工程師,2009, (01): 151-152.</p><p> [2]趙鴻圖.基于單片機(jī)的溫度控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].微計(jì)機(jī)信息,2008, (26): 96-98.</p><p> [3]葉景.基于單片機(jī)的溫度控制系統(tǒng)的設(shè)計(jì)[J].中國(guó)新通信,2009, (13): 1-2.</p><p> [4]紀(jì)綱.HD7
73、279A鍵盤(pán)顯示驅(qū)動(dòng)芯片及應(yīng)用[J].儀表技術(shù),2001, (30): 15-16.</p><p> [5]羅云松.基于單片機(jī)AT89C51的溫度控制系統(tǒng)設(shè)計(jì)[J].中國(guó)科技信息,2009 (12): 23-25.</p><p> [6]楊萬(wàn)超.51單片機(jī)溫度控制系統(tǒng)設(shè)計(jì)[J].黑龍江科技信息,2009, (29): 3-4.</p><p> [7]張艷
74、艷.基于PID算法和89C52單片機(jī)的溫度控制系統(tǒng)[J].現(xiàn)代電子技術(shù),2009,(21): 8-9.</p><p> [8]胡朝.基于單片機(jī)的溫度控制系統(tǒng)的開(kāi)發(fā)應(yīng)用[J].商場(chǎng)現(xiàn)代化,2010, (14):62-65.</p><p> [9]張青.單片機(jī)溫度控制系統(tǒng)方案的研究[J].上海交通大學(xué)學(xué)報(bào),2007, (41):4-7.</p><p> [1
75、0]Zhou Z, Vucetic B. Design of adaptive modulstion using impact CSI in MIMO systems[J]. Elesctronics Lctters, 2004 ,40(17): 73-74.</p><p> [11]Dai L, Zhou S D,Zhang H R, et al, Closed-loop MIMO architecture
76、 based on water-filling[J]. Elesctronics Lctters, 2002 ,38(25):118-120.</p><p> [12]Narula A, Lopcz M J, Troct M D, et al.Efficient use of side information in multiplc-antenna data transmission over fading
77、channels[J]. IEEE </p><p> Katsuhiko Ogata.Moden Control Engineering.Publishing house of electronics industry,2000:196—202.</p><p> [13]趙娜.基于51單片機(jī)的溫度測(cè)量系統(tǒng)[J].微計(jì)算機(jī)信息, 2007, (16):146-148.</p&g
78、t;<p> [14]Jang J,Lee K B,Lee Y H,Transmit power and bit allocations for OFDM systems in a fading channcl [C] IEEE GLOHECOM,USA;IEEE, 2003: 858-862.</p><p> [15]劉伯春.智能PID調(diào)節(jié)器的設(shè)計(jì)及應(yīng)用[J].電子自動(dòng)化, 1995, (3
79、): 20~25.</p><p> [16]張佳賢.基于單片機(jī)的溫度控制器設(shè)計(jì)[J].科技與生活, 2010, (19): 5~8.</p><p> [17]歐亞軍.Proeus軟件在單片機(jī)實(shí)驗(yàn)中的應(yīng)用[J].科技信息, 2006, (1):1-2.</p><p> [18]葉劍超.單片機(jī)實(shí)驗(yàn)教學(xué)改進(jìn)芻議[J].臺(tái)州學(xué)院學(xué)報(bào), 2006, (1):3-4
80、.</p><p> [19]李朝青.單片機(jī)原理及接口技術(shù)[M]. 北京:北京航空航天大學(xué)出版社. 2006.</p><p> [20]王忠飛,胥芳.MCS-51 單片機(jī)原理及嵌入式系統(tǒng)應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2007.</p><p><b> 附 錄</b></p><p><b&g
81、t; 附錄1:?jiǎn)纹瑱C(jī)程序</b></p><p> //*************************************************************************************</p><p> //****************************李奇畢設(shè)******************************
82、****************</p><p> // Descriptoon: </p><p> // *采用89C52+DS1820+數(shù)碼管+蜂鳴器</p><p> //
83、 *DS1820設(shè)置為12位精度</p><p> // *環(huán)境溫度超過(guò)Alarm值 蜂鳴器報(bào)警 </p><p> // *Alarm值可通過(guò)按鍵自由設(shè)定</p><p> //*該溫度可設(shè)定范圍1--100度,測(cè)量范圍-55--125度
84、 </p><p> //**********************************************************************************</p><p> //*************************可調(diào)溫度報(bào)警器********************************************<
85、/p><p> #include <REG52.H></p><p> #include <intrins.h></p><p> #include <math.h></p><p> #define uchar unsigned char</p><p> unsigned
86、char code dis_code[]={ </p><p> 0xC0,/*0*/</p><p> 0xF9,/*1*/</p><p> 0xA4,/*2*/</p><p> 0xB0,/*3*/</p><p> 0x99,/*4*/</p><p> 0x
87、92,/*5*/</p><p> 0x82,/*6*/</p><p> 0xF8,/*7*/</p><p> 0x80,/*8*/</p><p> 0x90,/*9*/</p><p> 0xF7,/*負(fù)號(hào)*/</p><p> 0xB6,/*溫度設(shè)定狀態(tài)*/ };<
88、/p><p> uchar data dis_buf[8],i;</p><p> uchar data dis_index ; //數(shù)碼管顯示標(biāo)簽</p><p> uchar dis_digit=0xfe; //數(shù)碼管位選通控制端</p><p> sbit Spk=P3^7; //驅(qū)動(dòng)蜂鳴器報(bào)警<
89、;/p><p> sbit Key_UP = P3^3; //上調(diào)溫度</p><p> sbit Key_DOWN = P3^4; //下調(diào)溫度</p><p> sbit Key_SET = P3^2; //設(shè)定鍵(溫度設(shè)定)</p><p> /********************************
90、****************************</p><p> *18B20驅(qū)動(dòng)程序,DQ為數(shù)據(jù)口,接于P1.4</p><p> *11.0592M晶振,上拉4.7k電阻</p><p> *************************************************************/</p><p
91、> #define uchar unsigned char</p><p> #define uint unsigned int</p><p> sbit dq = P1^0; //定義18B20的數(shù)據(jù)端</p><p> bit flag;</p><p> uint Temperature;</p&
92、gt;<p> uchar gechar,shichar,baichar,Alarm;</p><p> uchar temp_buff[9]; //存儲(chǔ)讀取的字節(jié),read scratchpad為9字節(jié),read rom ID為8字節(jié)</p><p> uchar id_buff[8];</p><p><b> uchar *
93、p;</b></p><p> uchar crc_data;</p><p> uchar code CrcTable [256]={</p><p> 0, 94, 188, 226, 97, 63, 221, 131, 194, 156, 126, 32, 163, 253, 31, 65,</p>
94、<p> 157, 195, 33, 127, 252, 162, 64, 30, 95, 1, 227, 189, 62, 96, 130, 220,</p><p> 35, 125, 159, 193, 66, 28, 254, 160, 225, 191, 93, 3, 128, 222, 60, 98,</p>&l
95、t;p> 190, 224, 2, 92, 223, 129, 99, 61, 124, 34, 192, 158, 29, 67, 161, 255,</p><p> 70, 24, 250, 164, 39, 121, 155, 197, 132, 218, 56, 102, 229, 187, 89, 7,</p><
96、;p> 219, 133, 103, 57, 186, 228, 6, 88, 25, 71, 165, 251, 120, 38, 196, 154,</p><p> 101, 59, 217, 135, 4, 90, 184, 230, 167, 249, 27, 69, 198, 152, 122, 36,</p><p
97、> 248, 166, 68, 26, 153, 199, 37, 123, 58, 100, 134, 216, 91, 5, 231, 185,</p><p> 140, 210, 48, 110, 237, 179, 81, 15, 78, 16, 242, 172, 47, 113, 147, 205,</p><p&
98、gt; 17, 79, 173, 243, 112, 46, 204, 146, 211, 141, 111, 49, 178, 236, 14, 80,</p><p> 175, 241, 19, 77, 206, 144, 114, 44, 109, 51, 209, 143, 12, 82, 176, 238,</p><p
99、> 50, 108, 142, 208, 83, 13, 239, 177, 240, 174, 76, 18, 145, 207, 45, 115,</p><p> 202, 148, 118, 40, 171, 245, 23, 73, 8, 86, 180, 234, 105, 55, 213, 139,</p><p&
100、gt; 87, 9, 235, 181, 54, 104, 138, 212, 149, 203, 41, 119, 244, 170, 72, 22,</p><p> 233, 183, 85, 11, 136, 214, 52, 106, 43, 117, 151, 201, 74, 20, 246, 168,</p><p
101、> 116, 42, 200, 150, 21, 75, 169, 247, 182, 232, 10, 84, 215, 137, 107, 53}; //CRC校驗(yàn)表</p><p> /************************************************************</p><p> *Functio
102、n:延時(shí)處理 </p><p> *************************************************************/</p><p> void TempDelay (uint us)</p><p><b> {</b></p><p> while(us--);<
103、;/p><p><b> }</b></p><p> /************************************************************</p><p> *Function:18B20初始化</p><p> ********************************
104、*****************************/</p><p> void Init18b20 (void)</p><p><b> {</b></p><p><b> EA=0;</b></p><p><b> dq=1;</b></p>
105、;<p><b> _nop_();</b></p><p><b> dq=0;</b></p><p> TempDelay(86); //delay 530 uS//80</p><p><b> _nop_();</b></p><p><
106、;b> dq=1;</b></p><p> TempDelay(14); //delay 100 uS//14</p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> _nop_()
107、;</b></p><p><b> if(dq==0)</b></p><p> flag = 1; //detect 1820 success!</p><p><b> else</b></p><p> flag = 0; //detect 1820 fail!
108、</p><p> TempDelay(20); //20</p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> dq = 1;</b></p><p>&l
109、t;b> EA=1;</b></p><p><b> }</b></p><p> /************************************************************</p><p> *Function:向18B20寫(xiě)入一個(gè)字節(jié)</p><p> *
110、************************************************************/</p><p> void WriteByte (uchar wr) //單字節(jié)寫(xiě)入</p><p><b> {</b></p><p><b> uchar i;</b></p>
111、;<p><b> EA=0;</b></p><p> for (i=0;i<8;i++)</p><p><b> {</b></p><p><b> dq = 0;</b></p><p><b> _nop_();</b&
112、gt;</p><p> dq=wr & 0x01;</p><p> TempDelay(5); //delay 45 uS //5</p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p>
113、<b> dq=1;</b></p><p><b> wr >>= 1;</b></p><p><b> }</b></p><p><b> EA=1;</b></p><p><b> }</b><
114、/p><p> /************************************************************</p><p> *Function:讀18B20的一個(gè)字節(jié)</p><p> *************************************************************/</p>
115、<p> uchar ReadByte (void) //讀取單字節(jié)</p><p><b> {</b></p><p> uchar i,u=0;</p><p><b> EA=0;</b></p><p> for(i=0;i<8;i++)</p&g
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計(jì)---基于單片機(jī)的pid溫度控制器的設(shè)計(jì)
- 基于單片機(jī)的溫度控制畢業(yè)設(shè)計(jì)
- 基于430單片機(jī)的pid溫度控制
- 單片機(jī)的溫度控制畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)論文 基于單片機(jī)的溫度控制設(shè)計(jì)
- 基于單片機(jī)的溫度控制系統(tǒng)畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的溫度控制系統(tǒng)畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的智能pid控制器設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 基于單片機(jī)溫度控制系統(tǒng)設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的溫度控制系統(tǒng)畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的溫度控制系統(tǒng)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)-----基于單片機(jī)的溫度控制系統(tǒng)
- 基于單片機(jī)溫度控制系統(tǒng)的畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--基于單片機(jī)的溫度檢測(cè)與控制
- 基于單片機(jī)的模糊pid溫度控制系統(tǒng)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)----基于單片機(jī)的溫度控制系統(tǒng)設(shè)計(jì)
- 基于單片機(jī)的溫度控制系統(tǒng)設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---基于單片機(jī)的溫度控制系統(tǒng)設(shè)計(jì)
- 基于單片機(jī)的模糊pid溫度控制系統(tǒng)設(shè)計(jì)
- 基于單片機(jī)的pid溫度控制器研究【開(kāi)題報(bào)告+文獻(xiàn)綜述+畢業(yè)設(shè)計(jì)】
評(píng)論
0/150
提交評(píng)論