鍋爐自動(dòng)給水課程設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩26頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  前 言</b></p><p>  本文主要設(shè)計(jì)了一種基于單片機(jī)的鍋爐自動(dòng)給水系統(tǒng),本系統(tǒng)以8位單片機(jī)STC89C52RC作為系統(tǒng)控制處理器,采用液位上下限傳感器和DS18B20采集信息,采用數(shù)碼管和LCM作為顯示設(shè)備,采用WT588D語(yǔ)音警示及報(bào)溫。系統(tǒng)具有液位和溫度自動(dòng)檢測(cè)、報(bào)警和控制等功能。</p><p>  本系統(tǒng)在設(shè)計(jì)中主要由

2、液位檢測(cè)、溫度檢測(cè)、按鍵控制、液位控制、溫度控制、顯示部分、故障報(bào)警等幾部分組成來(lái)實(shí)現(xiàn)液位和溫度控制。用液位傳感器檢測(cè)液位,用DS18B20溫度傳感器來(lái)檢測(cè)液溫,用二個(gè)控制按鍵來(lái)實(shí)現(xiàn)按健控制,用四位7段LED顯示器和LCM128*64來(lái)完成顯示部分,用繼電器來(lái)控制水泵的啟停。本設(shè)計(jì)用單片機(jī)控制易于實(shí)現(xiàn)鍋爐液位、溫度控制而且有成本低、程序易于調(diào)試、一部分出現(xiàn)故障不會(huì)影響其他部分的工作、維修方便等優(yōu)點(diǎn)。</p><p&

3、gt;  關(guān)鍵詞:STC89C52單片機(jī); 液位控制; 溫度控制;報(bào)警</p><p><b>  PREFACE</b></p><p>  In modern society, with the development of industry, the residents living area of the centralized heat supply dem

4、and is also growing, steam boiler capacity continues to increase, the operation process requirements more stringent, the boiler liquid level control of a direct impact on people and equipment safety. Low level may make t

5、he boiler phenomenon of dry combustion, liquid level is too high will make the boiler steam pressure is too high, danger, the traditional liquid level control cannot r</p><p>  KEYWORDS:Single chip computer;

6、 peripheral chip; the boiler level control; automatic control and regulation to ensure the safe and economic operation</p><p><b>  目 錄</b></p><p><b>  1 緒論4</b></p&g

7、t;<p>  1.1研究背景和意義4</p><p><b>  1.2設(shè)計(jì)方案4</b></p><p>  2 系統(tǒng)硬件設(shè)計(jì)5</p><p>  2.1液位傳感器的介紹5</p><p>  2.2溫度傳感器的選擇5</p><p>  2.3 顯示電路的設(shè)計(jì)6

8、</p><p>  2.3.1數(shù)碼管6</p><p>  2.3.2LCM8</p><p>  2.4驅(qū)動(dòng)板介紹8</p><p>  2.4.1繼電器控制電路8</p><p>  2.4.2驅(qū)動(dòng)板模塊原理圖9</p><p>  2.5基礎(chǔ)板介紹10</p>

9、<p>  2.5.1單片機(jī)最小系統(tǒng)電路10</p><p>  2.5.2單片機(jī)部分10</p><p>  2.5.3復(fù)位電路11</p><p>  2.5.4時(shí)鐘電路11</p><p>  2.5.5串口通信部分12</p><p>  2.5.6總電源接口電路12</p>

10、<p>  3 系統(tǒng)軟件設(shè)計(jì)13</p><p>  3.1主程序流程13</p><p><b>  4總結(jié)14</b></p><p><b>  5致謝15</b></p><p><b>  參考文獻(xiàn)16</b></p><

11、;p>  附錄一:頭文件17</p><p>  1.ds18b20.h17</p><p>  附錄二:源文件20</p><p>  1.text1.c20</p><p><b>  第一章 引言</b></p><p>  1.1研究背景和意義</p>&l

12、t;p>  目前我國(guó)的燃煤鍋爐數(shù)量眾多,我國(guó)現(xiàn)有中、小型鍋爐30多萬(wàn)臺(tái),每年耗煤量占我國(guó)原煤產(chǎn)量的1/4,目前大多數(shù)工業(yè)鍋爐仍處于能耗高、浪費(fèi)大、環(huán)境污染嚴(yán)重的生產(chǎn)狀態(tài)。</p><p>  在現(xiàn)代社會(huì)中,隨著工業(yè)的發(fā)展,居民生活區(qū)的集中熱力供應(yīng)量的需求也越來(lái)越大,蒸汽鍋爐的容量不斷提高,對(duì)操作過(guò)程要求更加嚴(yán)格,鍋爐的液位控制直接影響人們自身和設(shè)備的安全。液位過(guò)低可能使鍋爐出現(xiàn)干燒現(xiàn)象,液位過(guò)高又會(huì)使鍋爐蒸

13、汽壓力過(guò)高,發(fā)生危險(xiǎn),傳統(tǒng)的液位控制不能進(jìn)行遠(yuǎn)距離的集中控制,自動(dòng)化程度低,調(diào)節(jié)精度差等缺點(diǎn),且單靠人工操作已不能適應(yīng),控制系統(tǒng)改造的必要性隨著科學(xué)技術(shù)的不斷進(jìn)步,被控對(duì)象越來(lái)越復(fù)雜,人們對(duì)控制精度的要求不斷提高。由于被控對(duì)象和過(guò)程的非線性、時(shí)變性,多參數(shù)間的強(qiáng)耦合、隨機(jī)干擾等因素,使得建立被控對(duì)象的精確數(shù)學(xué)模型變得很困難。在這些復(fù)雜的系統(tǒng)面前,傳統(tǒng)的控制方法無(wú)法滿足控制精度,而且系統(tǒng)穩(wěn)定性差。更好地對(duì)鍋爐進(jìn)行自動(dòng)化控制,同時(shí)隨著單片機(jī)

14、技術(shù),自動(dòng)控制技術(shù)的迅速發(fā)展,利用單片機(jī)及其外圍芯片實(shí)現(xiàn)鍋爐液位控制已經(jīng)成為可能,而且也成為一種發(fā)展的趨勢(shì),單片機(jī)不僅有體積小,安裝方便,功能較齊全等優(yōu)點(diǎn),而且有很高的性價(jià)比,因此應(yīng)用前景廣,同時(shí)有助于發(fā)現(xiàn)可能存在的故障,通過(guò)微機(jī)實(shí)現(xiàn)燃燒與給水系統(tǒng)的自動(dòng)控制與調(diào)節(jié),將保證鍋爐正常供氣供水,維持穩(wěn)定系統(tǒng),保證安全經(jīng)濟(jì)運(yùn)行。本文即是用單片現(xiàn)的一</p><p><b>  1.2設(shè)計(jì)方案</b>

15、</p><p>  本課題的研究對(duì)象為鍋爐的液位,對(duì)其液位進(jìn)行控制?;舅枷胧且許TC89C52作為控制器,通過(guò)STC89C52單片機(jī)、溫度傳感器(DS18B20)、LCM、WT588D等實(shí)現(xiàn)具有液位報(bào)警和控制的雙重功能,同時(shí)也具有溫度顯示控制播報(bào)的功能,并對(duì)溫度和液位情況進(jìn)行顯示。 系統(tǒng)硬件設(shè)計(jì)包括以下幾部分:STC89C52芯片為核心控制器,液位采集、溫度采集、鍵盤(pán)、顯示部分、報(bào)警部分、液位控制、溫度控制等

16、部分組成??蓪?shí)現(xiàn)的具體功能如下:</p><p> ?。?)當(dāng)液位低至給定的下限液位時(shí),停止水泵對(duì)鍋爐放水,啟動(dòng)水泵對(duì)鍋爐進(jìn)行加水,直到水滿超液位,工作狀態(tài)指示燈亮1個(gè),表明加水水泵在加水。</p><p> ?。?)當(dāng)液位高至給定上限的液位時(shí),停止水泵對(duì)鍋爐加水,啟動(dòng)水泵對(duì)鍋爐進(jìn)行放水,水泵工作狀態(tài)指示燈,表明放水水泵在放水。</p><p> ?。?)溫度過(guò)低,

17、啟動(dòng)加熱工作。溫度過(guò)高,停止加熱工作。</p><p> ?。?)有溫度和液位傳感器,同時(shí)可以顯示其狀態(tài)。</p><p><b> ?。?)溫度語(yǔ)音播報(bào)</b></p><p><b> ?。?)語(yǔ)音警示</b></p><p>  (7)按鍵控制顯示背光,設(shè)定上下限溫度及播報(bào)音量</p&g

18、t;<p>  第二章 系統(tǒng)硬件設(shè)計(jì)</p><p>  2.1液位傳感器的介紹</p><p>  傳感器是一種能感受被測(cè)物體物理量并將其轉(zhuǎn)化為便于傳輸或處理的電信號(hào)的裝置,在現(xiàn)代科技領(lǐng)域中,傳感器得到了廣泛應(yīng)用,各種信息的采集離不了各種傳感器,傳感器的基本功能在于能感受外界的各種“刺激”并作出迅速反映。本設(shè)計(jì)當(dāng)中我們采用的水位探測(cè)傳感器(如圖2.2所示)簡(jiǎn)單易行,經(jīng)濟(jì)實(shí)惠

19、。</p><p>  圖2.1液位傳感器原理圖</p><p>  圖2.2超液位 圖2.3欠液位</p><p>  2.2溫度傳感器的選擇</p><p>  目前我們可選擇許多類型的IC溫度傳感器與多種多樣的應(yīng)用相匹配。從簡(jiǎn)單的模擬輸出溫度傳感器到數(shù)字輸出的本地傳感器再到具有遠(yuǎn)程溫度監(jiān)測(cè)功能和復(fù)雜風(fēng)扇控制算法的高度集成的溫度監(jiān)

20、視系統(tǒng)。</p><p> ?。?)模擬溫度傳感器</p><p>  初期的IC溫度傳感器是提供一個(gè)與溫度成比例的輸出電壓或電流。通過(guò)改變熱敏電阻,使其為電阻隨溫度呈非線性關(guān)系變化的特性?,F(xiàn)在的模擬溫度傳感器無(wú)需附加線性化電路來(lái)校準(zhǔn)熱敏電阻的非線性,當(dāng)要求電壓與溫度之間呈線性關(guān)系時(shí),它是良好的選擇。</p><p>  雖然新的數(shù)字輸出溫度傳感器已經(jīng)在許多應(yīng)用中取

21、代了模擬輸出溫度傳感器,但是模擬輸出溫度傳感器仍然有用武之地。例如,AD590電流輸出溫度傳感器。該器件經(jīng)常用于遠(yuǎn)程溫度檢測(cè),因?yàn)楦咦杩闺娏鬏敵鍪蛊鋵?duì)長(zhǎng)線路傳輸?shù)碾妷航挡幻舾?,并且還能用于多種多樣的溫度檢測(cè)器應(yīng)用,具有+4 V ~ +30 V寬工作電壓范圍。</p><p>  (2)數(shù)字輸出溫度傳感器</p><p>  在許多應(yīng)用中,最終需要以數(shù)字形式提供溫度數(shù)據(jù)。這可以通過(guò)將一個(gè)模擬

22、溫度傳感器的輸出接到一個(gè)模數(shù)轉(zhuǎn)換器(ADC)來(lái)實(shí)現(xiàn)。然而,隨著IC產(chǎn)品制造技術(shù)的進(jìn)步,將這種ADC和許多其它功能一起集成到溫度傳感器的管芯上已經(jīng)成為經(jīng)濟(jì)有效的方法。它能降低成本、印制電路板(PCB)面積和功耗,同時(shí)簡(jiǎn)化系統(tǒng)設(shè)計(jì)工程師的任務(wù)。</p><p>  數(shù)字溫度傳感器類似于模擬溫度傳感器,但是它的輸出不是以電流或電壓形式而是將其轉(zhuǎn)換為1或0形式的數(shù)字量。因此,數(shù)字輸出溫度傳感器適合于連接到一個(gè)MCU。&l

23、t;/p><p>  本設(shè)計(jì)中溫度的測(cè)量是采用了數(shù)字溫度傳感器DS18B20。DS18B20為一線式數(shù)字溫度傳感器,它只有3個(gè)引腳,體積小,分辨率高,與單片機(jī)連線只需要一個(gè)I/O口就可以,可節(jié)省大量的引線和邏輯電路,硬件電路簡(jiǎn)單且價(jià)格也不貴。故采用此傳感器來(lái)實(shí)現(xiàn)溫度的檢測(cè)。</p><p>  圖2.4 DS18B20引腳圖</p><p>  2.3 顯示電路的設(shè)計(jì)&

24、lt;/p><p><b>  2.3.1數(shù)碼管</b></p><p>  本系統(tǒng)選用8位數(shù)碼管作為顯示器,用于顯示數(shù)字及特殊字符。對(duì)于多為數(shù)碼管顯示器來(lái)說(shuō),為了簡(jiǎn)化線路、降低成本,往往來(lái)采用以軟件為主的接口方法。由于各位數(shù)碼管的顯示段碼是互相并聯(lián)的,因此在同一時(shí)刻只能顯示同一種字符。對(duì)于這種接口電路來(lái)說(shuō),其顯示方法有靜態(tài)顯示和動(dòng)態(tài)顯示兩種。本系統(tǒng)采用動(dòng)態(tài)方法顯示。&l

25、t;/p><p>  2.3.1.1靜態(tài)顯示</p><p>  靜態(tài)顯示,就是每一個(gè)顯示器都要占用單獨(dú)的具有鎖存功能的I/O接口用于筆劃段字形代碼。這樣單片機(jī)只要把要顯示的字形代碼發(fā)送到接口電路,就不用管它了,直到要顯示新的數(shù)據(jù)時(shí),再發(fā)送新的字形碼,因此,使用這種方法單片機(jī)中CPU的開(kāi)銷小。</p><p>  2.3.1.2 動(dòng)態(tài)顯示</p><

26、p>  如果要在同一時(shí)刻顯示不同的字符,從電路上看,這是辦不到的。因此只能利用人眼視覺(jué)的殘留效應(yīng),采用動(dòng)態(tài)掃描顯示的方法,逐個(gè)地循環(huán)點(diǎn)亮各位數(shù)碼管,每位顯示1ms左右,是人眼看起來(lái)就好像在同時(shí)顯示不同的字符一樣。 </p><p>  在進(jìn)行動(dòng)態(tài)顯示時(shí),往往事先并不知道應(yīng)顯示什么內(nèi)容,這樣也就可以選擇被顯示字符的顯示段碼。為此,一般采用查表的方法,由待顯示的字符通過(guò)查表得到其對(duì)應(yīng)的顯示段碼。</p&g

27、t;<p><b>  圖2.5數(shù)碼管結(jié)構(gòu)</b></p><p>  圖2.6數(shù)碼管原理圖</p><p><b>  2.3.2 LCM</b></p><p>  系統(tǒng)選用1602液晶模塊顯示鍋爐內(nèi)溫度等相關(guān)信息。1602是一種采用5x7點(diǎn)陣圖形來(lái)顯示字符的液晶顯示器,根據(jù)顯示的容量可以分為1行16個(gè)字

28、、2行16個(gè)字、2行字等,下圖(圖2.7)就是TL1602液晶模塊的正面和反面。</p><p>  圖2.7 1602液晶模塊實(shí)物照片</p><p><b>  2.4驅(qū)動(dòng)板介紹</b></p><p>  2.4.1繼電器控制電路</p><p>  水泵(普蘭迪 微型直流隔膜水泵)的參數(shù):</p>

29、<p>  額定電壓:12V </p><p>  額定功率:45W </p><p>  最大壓力:1MPa </p><p>  最大流量:4L/min</p><p>  該電路由繼電器和閉合開(kāi)關(guān)、光電耦合器、水泵等組成。當(dāng)水位在低水位時(shí)單片機(jī)給P0.7送一個(gè)高電平導(dǎo)通光電耦合器然后光電耦合器驅(qū)動(dòng)導(dǎo)致繼電器閉合

30、從而讓12V的直流電接通使水泵加水。</p><p>  其中光電耦合器是以光為媒介傳輸電信號(hào)的一種電一光一電轉(zhuǎn)換器件。它由發(fā)光源和受光器兩部分組成。把發(fā)光源和受光器組裝在同一密閉的殼體內(nèi),彼此間用透明絕緣體隔離。發(fā)光源的引腳為輸入端,受光器的引腳為輸出端,在本設(shè)計(jì)當(dāng)中發(fā)光源為發(fā)光二極管,受光器為光敏三極管。在本設(shè)計(jì)當(dāng)中我們采用光電耦合器組成開(kāi)關(guān)電路的作用,能夠很好地將單片機(jī)信號(hào)穩(wěn)定地送給繼電器驅(qū)動(dòng)繼電器閉合。&

31、lt;/p><p>  繼電器是具有隔離功能的自動(dòng)開(kāi)關(guān)元件,在我們?cè)O(shè)計(jì)當(dāng)中主要來(lái)做自動(dòng)控制作用,我們采用+5V的直流電來(lái)控制12V的直流電,以達(dá)到控制水泵的作用。</p><p>  電磁式繼電器一般由鐵芯、線圈、銜鐵、觸點(diǎn)簧片等組成的。只要在線圈兩端加上一定的電壓,線圈中就會(huì)流過(guò)一定的電流,從而產(chǎn)生電磁效應(yīng),銜鐵就會(huì)在電磁力吸引的作用下克服返回彈簧的拉力吸向鐵芯,從而帶動(dòng)銜鐵的動(dòng)觸點(diǎn)與靜觸點(diǎn)

32、(常開(kāi)觸點(diǎn))吸合。當(dāng)線圈斷電后,電磁的吸力也隨之消失,銜鐵就會(huì)在彈簧的反作用力返回原來(lái)的位置,使動(dòng)觸點(diǎn)與原來(lái)的靜觸點(diǎn)(常閉觸點(diǎn))吸合。這樣吸合、釋放,從而達(dá)到了在電路中的導(dǎo)通、切斷的目的。對(duì)于繼電器的“常開(kāi)、常閉”觸點(diǎn),可以這樣來(lái)區(qū)分:繼電器線圈未通電時(shí)處于斷開(kāi)狀態(tài)的靜觸點(diǎn),稱為“常開(kāi)觸點(diǎn)”;處于接通狀態(tài)的靜觸點(diǎn)稱為“常閉觸點(diǎn)”。</p><p>  2.4.2驅(qū)動(dòng)板模塊原理圖</p><p&

33、gt;<b>  圖2.8電源原理圖</b></p><p>  圖2.9傳感器接口原理圖</p><p>  圖2.10繼電器控制原理圖</p><p><b>  2.5基礎(chǔ)板介紹</b></p><p>  2.5.1單片機(jī)最小系統(tǒng)電路</p><p>  系統(tǒng)電路部分

34、由單片機(jī)最小系統(tǒng)和功能模塊組成,其中單片機(jī)的最小系統(tǒng)是整個(gè)系統(tǒng)的核心部分。單片機(jī)的工作就是執(zhí)行用戶程序、指揮各部分硬件完成既定的任務(wù)。單片機(jī)具有結(jié)構(gòu)簡(jiǎn)單、控制功能強(qiáng)、可靠性高、體積小、價(jià)格低等優(yōu)點(diǎn),其應(yīng)用領(lǐng)域十分廣泛。最小系統(tǒng)原理框圖如圖2.11所示。</p><p>  圖2.11 最小系統(tǒng)原理框圖</p><p>  2.5.2單片機(jī)接口電路</p><p>

35、  該部分由單片機(jī)芯片、上拉電阻、插針等組成。本設(shè)計(jì)選用比較常見(jiàn)的STC89C52單片機(jī)芯片。其電路圖如圖2.12所示。</p><p>  圖2.12單片機(jī)芯片部分</p><p>  2.5.3復(fù)位電路 </p><p>  無(wú)論是單片機(jī)剛開(kāi)始接上電源,還是斷電后或者發(fā)生故障后都要復(fù)位。單片機(jī)復(fù)位是使CPU和系統(tǒng)中的其他功能部件都恢復(fù)到一個(gè)確定的初始狀態(tài),并從這

36、個(gè)狀態(tài)開(kāi)始工作。復(fù)位電路由電容串聯(lián)電阻組成,由圖并結(jié)合“電容電壓不能突變”性質(zhì),可以知道當(dāng)系統(tǒng)一通電,RST引腳將會(huì)出現(xiàn)高電平,并且,這個(gè)高電平持續(xù)的時(shí)間由電路的RC值來(lái)決定,典型的51單片機(jī)當(dāng)RST引腳的高電平持續(xù)兩個(gè)機(jī)器周期以上就將復(fù)位。教科書(shū)推薦C取10uF,R1取1K,R2取10K。也還有其他的取法,原理就是讓RC組合可以在RST引腳上長(zhǎng)生不少于2個(gè)機(jī)器周期的高電平。電路圖如圖2.13所示。</p><p&g

37、t;<b>  圖2.13復(fù)位電路</b></p><p><b>  2.5.4時(shí)鐘電路</b></p><p>  單片機(jī)是一個(gè)復(fù)雜的同步時(shí)序電路,為了保證同步工作方式的實(shí)現(xiàn),電路應(yīng)在唯一的時(shí)鐘信號(hào)控制下嚴(yán)格地按時(shí)序進(jìn)行工作。時(shí)鐘電路用于生產(chǎn)單片機(jī)工作所需要的時(shí)鐘信號(hào)。在MCS-51系列單片機(jī)內(nèi)部有一個(gè)高增益反向放大器,其輸入端引腳為XTAL

38、1,其輸出端引腳為XTAL2。</p><p>  一般的,電容C8、C9取22pF左右,晶振振蕩頻率越高,系統(tǒng)時(shí)鐘頻率越高,單片機(jī)的運(yùn)行速度也越快。在通常情況下,使用頻率為6MHz或12MHz的晶振。本系統(tǒng)中使用了單片機(jī)的串行口通信,一般晶振的頻率采用11.0592MHz。電路圖如圖2.14所示。</p><p><b>  圖2.14時(shí)鐘電路</b></p&

39、gt;<p>  2.5.5串口通信部分</p><p>  本部分的主要作用是單片機(jī)與pc機(jī)的信息交互。使編好的程序能下載到單片機(jī)中,使所設(shè)計(jì)的系統(tǒng)能按照預(yù)先的設(shè)想工作。其電路圖如圖2.15所示。</p><p>  圖2.15 串口通信部分電路</p><p>  2.5.6總電源接口電路</p><p>  本部分的作用是

40、給整個(gè)單片機(jī)系統(tǒng)供電,使其正常運(yùn)轉(zhuǎn)。</p><p>  圖2.16 電源接口電路</p><p>  第三章 系統(tǒng)軟件設(shè)計(jì)</p><p><b>  3.1主程序流程</b></p><p>  本鍋爐系統(tǒng)能夠?qū)崿F(xiàn)自動(dòng)給水加熱并且維持一定液位及水溫,可根據(jù)用戶要求進(jìn)行自動(dòng)放水隨后進(jìn)水,加熱維持系統(tǒng)在液位和水溫兩個(gè)參

41、數(shù)的恒定。</p><p>  圖3.1主程序流程圖</p><p><b>  第四章總結(jié)</b></p><p>  1.換用精度更高的液位傳感器,實(shí)現(xiàn)更精確地控制進(jìn)放水,合理利用能源。</p><p>  2.溫度調(diào)控改用雙向可控硅,用PID精準(zhǔn)控制,實(shí)現(xiàn)控制目的同時(shí)節(jié)能。</p><p>

42、;  3.增加上位機(jī)顯示與控制。</p><p><b>  第五章 致謝</b></p><p>  經(jīng)過(guò)三周的艱苦奮斗和不懈努力,我們一起完成了這次課程設(shè)計(jì)的設(shè)計(jì)和制作。綜合來(lái)看,本次課程設(shè)計(jì)包括硬件和軟件部分,是綜合多學(xué)科知識(shí)的平臺(tái),對(duì)于我們專業(yè)課的學(xué)習(xí)和知識(shí)面的擴(kuò)展有極大的幫助,也符合了對(duì)于復(fù)合型人才的培養(yǎng)目標(biāo)。當(dāng)然,成功的背后離不開(kāi)我們團(tuán)隊(duì)的合理分工與團(tuán)結(jié)合

43、作,更離不開(kāi)老師的指導(dǎo)與幫助。在此,小組全體成員衷心地感謝指導(dǎo)老師所做的不懈努力與無(wú)私奉獻(xiàn)。</p><p>  這次課程設(shè)計(jì)讓我們受益匪淺,我們不僅收獲了成功的喜悅,而且感受了學(xué)以致用,深深地體會(huì)了知識(shí)的力量。在設(shè)計(jì)制作過(guò)程中我們學(xué)會(huì)了為人處事,學(xué)會(huì)了團(tuán)隊(duì)合作,這是我們?cè)谶@次課程設(shè)計(jì)中最大的收獲。在品嘗這次課程設(shè)計(jì)中取得某種成功喜悅的同時(shí),我們也發(fā)現(xiàn)了自身的不足.這次課程設(shè)計(jì)讓我們受益終身, 將讓我們以后走得更

44、穩(wěn)、更遠(yuǎn)。</p><p>  由于時(shí)間倉(cāng)促,報(bào)告或有不盡人意之處,望諒解。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1]童詩(shī)白·模擬電子技術(shù)基礎(chǔ).北京:高等教育出版社,2001</p><p>  [2]閻石·數(shù)字電子技術(shù)基礎(chǔ).北京:高等教育出版社,1998</p&

45、gt;<p>  [3]譚浩強(qiáng).C程序設(shè)計(jì)(第三版)[M].北京:清華大學(xué)出版,2007</p><p>  [4]蔡美琴.MCS-51系列單片機(jī)系統(tǒng)[M].北京:高等教育出版社,2003</p><p>  [5]王靜霞.單片機(jī)應(yīng)用技術(shù)[M].北京:電子工業(yè)出版社(C語(yǔ)言版),2009</p><p>  [6] 周荷琴,吳秀清.微型計(jì)算機(jī)原理與接口

46、技術(shù)(第4版).中國(guó)科學(xué)技術(shù)大學(xué)出版社.2008.</p><p>  [7] 譚浩強(qiáng).C語(yǔ)言程序設(shè)計(jì)(第三版).清華大學(xué)出版社.2005.</p><p>  [8]  克尼漢[美]. The C Programming Language( The Second Edition).機(jī)械工業(yè)出版社2006</p><p>  [9]  H M Peitel,PJ D

47、eitel.C How to program, second Edition.</p><p>  [10] Aubrey Pilgrim. Build Your Own Pentium PC and Save a Bundle. MeGraw-Hill公司出版</p><p><b>  附錄一:頭文件</b></p><p>  1.ds1

48、8b20.h</p><p>  #include <reg52.h></p><p>  #include <intrins.h></p><p>  #define uchar unsigned char</p><p>  #define uint unsigned int</p><p>

49、;  //*****************************************DS1820端口設(shè)置****************************************</p><p>  sbit DS=P0^5; </p><p>  uint temp;</p><p>  //uint stemp=200;</p>

50、<p>  //uint xtemp=110;//上下限溫度值</p><p><b>  //延時(shí)函數(shù)</b></p><p>  void delay1(uint z)</p><p><b>  {</b></p><p><b>  uint x,y;</b>

51、;</p><p>  for(x=z;x>0;x--)</p><p>  for(y=110;y>0;y--);</p><p><b>  } </b></p><p>  void dsreset(void) //send reset and initialization command

52、</p><p><b>  {</b></p><p><b>  uint i;</b></p><p><b>  DS=0;</b></p><p><b>  i=103;</b></p><p>  while(i>

53、;0)i--;</p><p><b>  DS=1;</b></p><p><b>  i=4;</b></p><p>  while(i>0)i--;</p><p><b>  }</b></p><p>  bit tmpreadbit

54、(void) //read a bit</p><p><b>  {</b></p><p><b>  uint i;</b></p><p><b>  bit dat;</b></p><p>  DS=0;i++; //i++ for d

55、elay</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><p><b>  }</b></p&g

56、t;<p>  uchar tmpread(void) //read a byte date</p><p><b>  {</b></p><p>  uchar i,j,dat;</p><p><b>  dat=0;</b></p><p>  for(i=1;i<=

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

58、/p><p>  return(dat);</p><p><b>  }</b></p><p>  void tmpwritebyte(uchar dat) //write a byte to ds18b20</p><p><b>  {</b></p><p><

59、;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></p><p>  tes

60、tb=dat&0x01;</p><p>  dat=dat>>1;</p><p>  if(testb) //write 1</p><p><b>  {</b></p><p><b>  DS=0;</b></p><p><b&g

61、t;  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></p><p&

62、gt;<b>  {</b></p><p>  DS=0; //write 0</p><p>  i=8;while(i>0)i--;</p><p><b>  DS=1;</b></p><p><b>  i++;i++;</b></p>

63、<p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void tmpchange(void) //DS18B20 begin change</p><p><b>  {&

64、lt;/b></p><p>  dsreset();</p><p>  delay1(1);</p><p>  tmpwritebyte(0xcc); // address all drivers on bus</p><p>  tmpwritebyte(0x44); // initiates a single tempe

65、rature conversion</p><p><b>  }</b></p><p>  uint tmp() //get the temperature</p><p><b>  {</b></p><p><b>  float tt;</b&

66、gt;</p><p>  uchar a,b;</p><p>  dsreset();</p><p>  delay1(1);</p><p>  tmpwritebyte(0xcc);</p><p>  tmpwritebyte(0xbe);</p><p>  a=tmpread()

67、;</p><p>  b=tmpread();</p><p><b>  temp=b;</b></p><p>  temp<<=8; //two byte compose a int variable</p><p>  temp=temp|a;</p><

68、;p>  tt=temp*0.0625;</p><p>  temp=tt*10+0.5;</p><p>  return temp;</p><p><b>  }</b></p><p><b>  附錄二:源文件</b></p><p><b>  

69、1.Text1.c</b></p><p>  #include <reg52.h></p><p>  #include <ds18b20.h></p><p>  sbit rs=P2^0;</p><p>  sbit wr=P2^1;</p><p>  sbit lcden

70、=P2^2;</p><p>  sbit s2=P3^6;</p><p>  sbit s1=P3^7;</p><p>  sbit j1=P0^1; //繼電器j1//進(jìn)水</p><p>  sbit j2=P0^2; //繼電器j2//出水</p><p>  sbit

71、 j3=P0^3; //繼電器j3//加熱</p><p>  sbit up=P0^4; //上限限位開(kāi)關(guān)</p><p>  sbit down=P0^6; //下限限位開(kāi)關(guān)</p><p>  uchar a,b;//a標(biāo)志進(jìn)水過(guò)程 //b標(biāo)志放水過(guò)</p><p>  bit flag0;<

72、;/p><p>  uchar display[2];</p><p>  void delayus(unsigned int s)</p><p><b>  {</b></p><p>  unsigned int i;</p><p>  for(i=0; i<s; i++);</p

73、><p>  for(i=0; i<s; i++);</p><p><b>  }</b></p><p>  void delay(uint z) //延時(shí)函數(shù)</p><p><b>  {</b></p><p><b>  uint x,y;&

74、lt;/b></p><p>  for(x=z;x>0;x--)</p><p>  for(y=110;y>0;y--);</p><p><b>  }</b></p><p>  void write_com(uchar com) //液晶寫(xiě)指令</p><p>&

75、lt;b>  {</b></p><p><b>  rs=0;</b></p><p><b>  P1=com;</b></p><p><b>  lcden=0;</b></p><p><b>  delay(5);</b>&l

76、t;/p><p><b>  lcden=1 ;</b></p><p><b>  delay(5);</b></p><p><b>  lcden=0;</b></p><p><b>  }</b></p><p>  void

77、 write_data(uchar date) //液晶寫(xiě)數(shù)據(jù)</p><p><b>  {</b></p><p><b>  rs=1;</b></p><p><b>  P1=date;</b></p><p><b>  lcden=0;<

78、/b></p><p><b>  delay(5);</b></p><p><b>  lcden=1;</b></p><p><b>  delay(5);</b></p><p><b>  lcden=0;</b></p>

79、<p><b>  }</b></p><p>  void init() //液晶初始化</p><p><b>  {</b></p><p><b>  wr=0;</b></p><p>  write_com(0x38);</p>&l

80、t;p>  write_com(0x0c);</p><p>  write_com(0x06);</p><p>  write_com(0x01);</p><p>  write_com(0x80);</p><p><b>  }</b></p><p>  void distwo

81、(uchar add,uchar temp)//液晶顯示兩位數(shù)字</p><p><b>  {</b></p><p>  uchar shi,ge;</p><p>  shi=temp/10;</p><p>  ge=temp%10;</p><p>  write_com(0x80+

82、add);</p><p>  write_data(shi|0x30);</p><p>  write_data(ge|0x30);</p><p><b>  }</b></p><p>  void diszifu(uchar add,uchar *temp)</p><p><b&

83、gt;  {</b></p><p><b>  uchar i;</b></p><p>  write_com(0x80+add);</p><p>  for(i=0;temp[i]!='\0';i++)</p><p><b>  {</b></p>

84、<p>  write_data(temp[i]);</p><p><b>  delay(5);</b></p><p>  } </p><p><b>  }</b></p><p>  void distemp(uchar add,uint temp)&l

85、t;/p><p><b>  {</b></p><p>  uchar bai,shi,ge;</p><p>  bai=temp/100;</p><p>  shi=temp%100/10;</p><p>  ge=temp%100%10;</p><p>  wri

86、te_com(0x80+0x40+add);</p><p>  write_data(bai|0x30);</p><p>  write_data(shi|0x30);</p><p>  write_data(0x2e);</p><p>  write_data(ge|0x30);</p><p>  writ

87、e_data(0x43);</p><p>  display[2]=(bai<<4)|(shi);</p><p>  display[1]=ge; </p><p>  display[0]=0x22;</p><p><b>  } </b></p><p>  void

88、 active()</p><p><b>  {</b></p><p>  //進(jìn)水閥門(mén)繼電器j1吸合,進(jìn)水閥打開(kāi)</p><p>  if (down==0&&up==0)//上下液位傳感器沒(méi)浮,1為打開(kāi)繼電器</p><p><b>  {</b></p>&

89、lt;p><b>  j1=1;</b></p><p><b>  j2=0;</b></p><p><b>  j3=1;</b></p><p><b>  b=0;</b></p><p>  a=1;//進(jìn)水</p>&

90、lt;p><b>  }</b></p><p>  if(down==1&&up==0) </p><p><b>  {</b></p><p><b>  if(b==1)</b></p><p><b>  {</b>&l

91、t;/p><p>  if(temp>=250)</p><p><b>  {</b></p><p><b>  j1=1;</b></p><p><b>  }</b></p><p>  if(temp<=250)</p>

92、<p><b>  {</b></p><p><b>  j1=1;</b></p><p><b>  j3=1;</b></p><p>  while(!(temp>=300))</p><p><b>  {</b></p

93、><p>  tmpchange();</p><p>  distemp(9,tmp());</p><p>  temp=tmp();</p><p><b>  }</b></p><p><b>  j2=0;</b></p><p><b&

94、gt;  j3=0;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  } </b></p><p>  if (down==1&&up==1)</p><p&g

95、t;<b>  {</b></p><p><b>  j1=0; </b></p><p>  if(temp<=250) // 如果小于25度就加熱</p><p><b>  {</b></p><p><b>  j3=1;</b><

96、;/p><p><b>  j2=0;</b></p><p>  while(!(temp>=300))</p><p><b>  {</b></p><p>  tmpchange();</p><p>  distemp(9,tmp());</p>&

97、lt;p>  temp=tmp();</p><p><b>  }</b></p><p>  j3=0;//大于30度加熱關(guān)</p><p><b>  j2=1;</b></p><p><b>  b=1;</b></p><p><

98、b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p><b>  j3=0;</b></p><p><b>  j2=1;</b></p><p&g

99、t;<b>  b=1;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  //加熱繼電器j3吸合</p><p>  //出水閥門(mén)繼電器j2吸合,出水閥打開(kāi)</p><p>  /*if (do

100、wn==1 && temp>=250)</p><p><b>  {</b></p><p><b>  j2=1;</b></p><p><b>  }</b></p><p><b>  else</b></p>

101、<p><b>  {</b></p><p><b>  j2=0;</b></p><p><b>  } */</b></p><p><b>  } </b></p><p>  void main() //主函

102、數(shù)</p><p><b>  { </b></p><p><b>  uchar i;</b></p><p>  float temp;</p><p><b>  init();</b></p><p>  // init_timer();&

103、lt;/p><p><b>  j1=0;</b></p><p><b>  j2=0;</b></p><p><b>  j3=0;</b></p><p>  diszifu(0x40+4,"temp:");</p><p>  

104、while(1)</p><p><b>  {</b></p><p>  tmpchange();</p><p>  distemp(9,tmp());</p><p>  temp=tmp();</p><p><b>  active();</b></p&

溫馨提示

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

評(píng)論

0/150

提交評(píng)論