畢業(yè)設(shè)計(jì)基于51單片機(jī)控制的水塔自動(dòng)供水系統(tǒng)設(shè)計(jì)_第1頁(yè)
畢業(yè)設(shè)計(jì)基于51單片機(jī)控制的水塔自動(dòng)供水系統(tǒng)設(shè)計(jì)_第2頁(yè)
畢業(yè)設(shè)計(jì)基于51單片機(jī)控制的水塔自動(dòng)供水系統(tǒng)設(shè)計(jì)_第3頁(yè)
畢業(yè)設(shè)計(jì)基于51單片機(jī)控制的水塔自動(dòng)供水系統(tǒng)設(shè)計(jì)_第4頁(yè)
畢業(yè)設(shè)計(jì)基于51單片機(jī)控制的水塔自動(dòng)供水系統(tǒng)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩24頁(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、畢 業(yè) (設(shè) 計(jì)) 論 文題目: 基于51單片機(jī)控制的水塔自動(dòng)供水系統(tǒng)系部:電氣工程與自動(dòng)化系專業(yè):自動(dòng)化技術(shù)班級(jí):電氣A0701班姓名:李月鵬指導(dǎo)教師:陳毅朋、張慧明山 西 綜 合 職 業(yè) 技 術(shù) 學(xué) 院摘要微型計(jì)算機(jī)SCMC,簡(jiǎn)稱單片機(jī),又稱單片微控制器,它不是完成某一個(gè)邏輯功能的芯片,而是把一個(gè)計(jì)算機(jī)系統(tǒng)集成到一個(gè)芯片上。這種計(jì)算機(jī)的最小系統(tǒng)只用了一片集成電路,可進(jìn)行簡(jiǎn)單運(yùn)算和控制。雖然單片機(jī)只有一個(gè)芯片,但無(wú)論從組成還是從功能上看,它已具備了計(jì)算機(jī)系統(tǒng)的屬性,是一個(gè)簡(jiǎn)單的微型計(jì)算機(jī)。單片機(jī)以其體積小、功能全、價(jià)格優(yōu)等種種優(yōu)勢(shì)充斥著整個(gè)市場(chǎng)?,F(xiàn)在,單片機(jī)的使用領(lǐng)域已十分廣泛,如智能儀表、

2、實(shí)時(shí)工控、導(dǎo)航系統(tǒng)、家用電器等。單片機(jī)開(kāi)發(fā)出的各種產(chǎn)品遍布于我們?nèi)粘I钪械拿總€(gè)角落。為了加深對(duì)單片機(jī)智能型控制器的了解,經(jīng)過(guò)綜合分析,本次設(shè)計(jì)最終選取了由51單片機(jī)控制的智能型液位控制器作為研究項(xiàng)目,本文對(duì)單片機(jī)水塔水位控制系統(tǒng)進(jìn)行了整體設(shè)計(jì),完成了單片機(jī)水塔水位控制系統(tǒng)硬件接線圖和流程圖以及單片機(jī)內(nèi)部控制程序設(shè)計(jì),并完成了開(kāi)發(fā)板模擬仿真過(guò)程。通過(guò)此次設(shè)計(jì)過(guò)程,自己在分析問(wèn)題、解決問(wèn)題方面的能力得到了很大程度的提高。關(guān)鍵詞: MCS-51單片機(jī)液壓傳感器 AD轉(zhuǎn)換 水塔水位檢控目 錄引言31、系統(tǒng)設(shè)計(jì)方案比較及論證32、系統(tǒng)原理框圖43、工作原理44、硬件設(shè)計(jì)44.1 STC89C52RC單

3、片機(jī)簡(jiǎn)介44.2 鎖存器(74HC573)簡(jiǎn)介54.3 ADC0804簡(jiǎn)介64.4單片機(jī)與繼電器及蜂鳴器的接口電路74.5 井中缺水信號(hào)檢測(cè)電路84.6 壓力傳感器介紹94.7 LCD1602液晶顯示屏接線圖及其引腳功能圖104.8開(kāi)關(guān)電源部分105、軟件設(shè)計(jì)125.1 程序流程圖125.2 程序流程圖解析136、實(shí)驗(yàn)仿真結(jié)果137、結(jié)束語(yǔ)13致謝14附錄15附錄1 PCB原理圖15附錄2 C程序16參考文獻(xiàn)26基于51單片機(jī)控制的水塔自動(dòng)供水系統(tǒng)山西綜合職業(yè)技術(shù)學(xué)院 李月鵬引言    水塔供水的主要問(wèn)題是塔內(nèi)水位應(yīng)始終保持在一定范圍,避免“空塔”、“溢塔”現(xiàn)象發(fā)

4、生。目前,控制水塔水位方法較多,其中較為常用的是由單片機(jī)控制實(shí)現(xiàn)自動(dòng)運(yùn)行,使水塔內(nèi)水位保持恒定,以保證連續(xù)正常地供水。實(shí)際供水過(guò)程中要確保水位在允許的范圍內(nèi)浮動(dòng),應(yīng)采用水壓監(jiān)測(cè)來(lái)控制水位。首先通過(guò)壓力傳感器實(shí)時(shí)檢測(cè)水壓,測(cè)量水位變化,再變送成電壓信號(hào)傳回單片機(jī),由單片機(jī)執(zhí)行內(nèi)部控制程序指令,從而控制水泵電動(dòng)機(jī),保證水位在正常范圍內(nèi)變化。為此,這里給出以STC公司的STC89C52RC單片機(jī)為核心器件、以壓力傳感器為檢測(cè)原件、通過(guò)ADC0804芯片為信號(hào)轉(zhuǎn)換原件的水塔水位檢測(cè)控制系統(tǒng)仿真設(shè)計(jì),實(shí)現(xiàn)水位的自動(dòng)檢測(cè)控制、電機(jī)故障檢測(cè)和報(bào)警等功能,通過(guò)在51單片機(jī)實(shí)驗(yàn)開(kāi)發(fā)板上實(shí)際仿真,實(shí)驗(yàn)結(jié)果表明:該

5、系統(tǒng)具有良好的檢測(cè)和控制功能,實(shí)用性很強(qiáng)。1 系統(tǒng)設(shè)計(jì)方案比較及論證對(duì)于液位進(jìn)行控制的方式有很多,而應(yīng)用較多的主要有2種,一種是通過(guò)簡(jiǎn)單的機(jī)械控制裝置來(lái)實(shí)現(xiàn),而另一種是由復(fù)雜的控制器來(lái)控制。兩種方式的實(shí)現(xiàn)簡(jiǎn)介如下: (1)簡(jiǎn)單的機(jī)械式控制方式。其常用形式有浮標(biāo)式、電極式等,這種控制形式的優(yōu)點(diǎn)是結(jié)構(gòu)簡(jiǎn)單,成本低廉。存在問(wèn)題是精度不高,不能進(jìn)行數(shù)值顯示,另外很容易引起誤動(dòng)作,且只能單獨(dú)控制,與計(jì)算機(jī)進(jìn)行通信較難實(shí)現(xiàn)。 (2)復(fù)雜控制器控制方式。這種控制方式是通過(guò)安裝在水塔出口管道上的壓力傳感器來(lái)把出口水壓變成標(biāo)準(zhǔn)工業(yè)電信號(hào)的模擬信號(hào),再經(jīng)過(guò)前置放大、AD轉(zhuǎn)換模塊變換成數(shù)字信號(hào)傳送到單片機(jī)中,而后經(jīng)

6、單片機(jī)運(yùn)算和給定參量的比較,進(jìn)行PID運(yùn)算,得出調(diào)節(jié)參量;最后經(jīng)由DA變換給調(diào)壓、變頻調(diào)速裝置輸入給定端,控制其輸出電壓變化,來(lái)調(diào)節(jié)電機(jī)轉(zhuǎn)速,以達(dá)到控制水箱液位的目的。 針對(duì)上述2種控制方式,以及設(shè)計(jì)需達(dá)到的性能要求,這里選取第二種控制方式,同時(shí)考慮到成本問(wèn)題需要把PID控制去掉。最終形成的方案是,利用單片機(jī)為控制核心,設(shè)計(jì)一個(gè)對(duì)水塔水位能進(jìn)行自動(dòng)監(jiān)控的工控系統(tǒng)。根據(jù)監(jiān)控對(duì)象的特征,要求實(shí)時(shí)檢測(cè)水塔的液位高度,并與開(kāi)始預(yù)設(shè)定的上、下限值做比較,由單片機(jī)控制固態(tài)繼電器的開(kāi)斷進(jìn)行液位的調(diào)整,最終達(dá)到液位的預(yù)設(shè)定值范圍內(nèi)。檢測(cè)值若高于上限設(shè)定值時(shí),要求報(bào)警,同時(shí)斷開(kāi)繼電器,使水泵停止上水;檢測(cè)值若低

7、于下限設(shè)定值,要求報(bào)警,同時(shí)開(kāi)啟繼電器,控制水泵開(kāi)始上水?,F(xiàn)場(chǎng)在LCD1602液晶屏上實(shí)時(shí)顯示測(cè)量值,從而實(shí)現(xiàn)對(duì)水箱液位的自動(dòng)監(jiān)控。 在功能上,本設(shè)計(jì)還預(yù)留了兩個(gè)調(diào)參按鍵,通過(guò)這兩個(gè)按鍵可以自由設(shè)定水塔內(nèi)水位的上下限值,以此來(lái)實(shí)現(xiàn)人工可控功能。2系統(tǒng)原理框圖 圖1 系統(tǒng)原理框圖3工作原理基于51單片機(jī)實(shí)現(xiàn)液位控制的控制器是以STC89C52RC芯片為核心,由鍵盤(pán)、LCD1602液晶顯示、ADC0804模數(shù)轉(zhuǎn)換、液壓傳感器、開(kāi)關(guān)電源、蜂鳴報(bào)警、電磁繼電器等部分組成。工作過(guò)程如下:水塔液位發(fā)生變化時(shí),引起水塔中液壓傳感器的輸出電壓值變化,即把壓力變化量轉(zhuǎn)化成電壓信號(hào);該信號(hào)經(jīng)過(guò)運(yùn)算放大電路放大后變

8、成幅度為05 V標(biāo)準(zhǔn)信號(hào),送入AD轉(zhuǎn)換器,AD轉(zhuǎn)換器把模擬信號(hào)量變成數(shù)字信號(hào)量,再由單片機(jī)進(jìn)行實(shí)時(shí)數(shù)據(jù)采集,并進(jìn)行處理,根據(jù)設(shè)定要求控制輸出,同時(shí)由液晶屏顯示液位高度。通過(guò)鍵盤(pán)能夠自由設(shè)置水位上下限值。該系統(tǒng)控制器的最大特點(diǎn)是可直觀地顯示水位占水塔容積的百分量,并可任意控制水位上下限高度。 4硬件設(shè)計(jì)液位控制器的硬件主要包括由單片機(jī)、液壓傳感器(帶變送器)、鍵盤(pán)電路、液晶顯示電路、AD轉(zhuǎn)換器和輸出控制電路等。 4.1 STC89C52單片機(jī)簡(jiǎn)介單片機(jī)采用的是由STC公司生產(chǎn)的雙列40腳STC89C52RC芯片。STC公司生產(chǎn)的STC89C52RC單片機(jī),是一款性價(jià)比非常高的單片機(jī),普通用戶可完

9、全將其當(dāng)作一般的51單片機(jī)來(lái)使用,高級(jí)用戶可使用其擴(kuò)展功能。 STC公司的單片機(jī)內(nèi)部資源比起來(lái)ATMEL公司的單片機(jī)要豐富的多,它內(nèi)部有1280字節(jié)的SRAM、8-64K字節(jié)的內(nèi)部程序存儲(chǔ)器、2-8K字節(jié)的ISP引導(dǎo)碼、除P0-P3口外還多出了P4口(PLCC封裝)、片內(nèi)自帶8路8位AD(AD系列),片內(nèi)自帶EEPROM、單片機(jī)內(nèi)自帶看門(mén)狗、雙數(shù)據(jù)指針等。目前STC公司的單片機(jī)在國(guó)內(nèi)市場(chǎng)上的占有率與日俱增。其中在這里我們把P0口連接LCD1602液晶顯示屏;P1口用于AD轉(zhuǎn)換;P2口用于控制電磁閥、蜂鳴報(bào)警和鍵盤(pán)輸入;P3口用于讀寫(xiě)控制和中斷等。下圖是STC89C52RC單片機(jī)管腳圖。圖2 S

10、TC89C52RC單片機(jī)管腳圖4.2鎖存器(74HC573)簡(jiǎn)介鎖存器,顧名思義,就是把輸入端的數(shù)據(jù)鎖存(或送出)到輸出端,如下圖所示,第11角(鎖存端)為高電平的時(shí)候,右邊D0-D7的輸入與左邊Q0-Q7的輸出是直通的,就是說(shuō),輸入端是什么電平,輸出端就是什么電平,可以把它當(dāng)作不存在。當(dāng)?shù)?1角為低電平的時(shí)候,左右兩端就被斷開(kāi)了,無(wú)論輸入端怎么變化,輸出端都不會(huì)變化,當(dāng)?shù)?1角由低電平變?yōu)楦唠娖降囊凰查g,輸入端的數(shù)據(jù)立刻被傳送到輸出端,并且在11角保持為高電平期間,輸出端數(shù)據(jù)始終的輸入端數(shù)據(jù)相同,如果此時(shí)我們?cè)俅伟训?1角設(shè)置為低電平,那么以后當(dāng)輸入端無(wú)論再怎么變化,輸出端都不會(huì)變化而是保持

11、剛才第11角在下降沿(由高電平到低電平跳變)之間時(shí)輸入端的值,這樣就達(dá)到了鎖存數(shù)據(jù)的目的,這也就是所謂的總線設(shè)計(jì)思路,一個(gè)8位的數(shù)據(jù)線加一個(gè)鎖存器后就可以擴(kuò)接多個(gè)元件,當(dāng)選通哪個(gè)元件的片選信號(hào),就送數(shù)據(jù)給那個(gè)元件。圖3 74HC573管腳圖4.3ADC0804簡(jiǎn)介ADC0804是8位全MOS中速A/D轉(zhuǎn)換器,它是逐次逼近式A/D 轉(zhuǎn)換器,片內(nèi)有三態(tài)數(shù)據(jù)輸出鎖存器,可以和單片機(jī)直接接口。單通道輸入,轉(zhuǎn)換時(shí)間大約為100us。ADC0804轉(zhuǎn)換時(shí)序是:當(dāng)CS0 許可進(jìn)行A/D轉(zhuǎn)換。WR由低到高時(shí),A/D開(kāi)始轉(zhuǎn)換。CS與WR同時(shí)有效時(shí)啟動(dòng)A/D轉(zhuǎn)換,轉(zhuǎn)換結(jié)束產(chǎn)生INTR信號(hào)(低電平有效),可供查詢或

12、者中斷信號(hào)。在CS和RD的控制下可以讀取數(shù)據(jù)結(jié)果。在使用時(shí)可選擇中斷、查詢和延時(shí)等待3種方式編制AD轉(zhuǎn)換程序。本實(shí)驗(yàn)沒(méi)有使用INTR信號(hào),而是采用了延時(shí)等待的方式,以便把中斷口留給LCD1602液晶顯示屏接線使用。AD轉(zhuǎn)換電路在控制器中起主導(dǎo)作用,用它來(lái)將液壓傳感器輸出的模擬電壓信號(hào)轉(zhuǎn)換成單片機(jī)能處理的數(shù)字量。下圖是AD轉(zhuǎn)換部分原理圖,在接線時(shí)先要經(jīng)過(guò)運(yùn)算放大器和分壓電路把傳感器輸出的電流信號(hào)轉(zhuǎn)換成電壓信號(hào),然后輸入到AD轉(zhuǎn)換器。由于實(shí)際條件較為有限,在此暫時(shí)由電位器來(lái)代替模擬液壓傳感器傳回的電壓信號(hào)量。圖4 ADC0804與單片機(jī)接線圖4.4單片機(jī)與繼電器及蜂鳴器的接口電路簡(jiǎn)介 &

13、#160;采用光電耦合器的開(kāi)關(guān)量輸出電路如下圖所示。+5V電源為單片機(jī)電源,+24V電源為開(kāi)關(guān)量輸出電源,兩個(gè)電源是隔離的。當(dāng)單片機(jī)輸出端口輸出高電平時(shí),經(jīng)與非門(mén)電路,A點(diǎn)為低電平,經(jīng)光耦器件使驅(qū)動(dòng)晶體管V導(dǎo)通,出口繼電器J得電吸合。當(dāng)輸出端輸出低電平時(shí),經(jīng)與非門(mén)電路,A點(diǎn)輸出高電平,經(jīng)光耦器件使V截止,J釋放。以此來(lái)控制水泵執(zhí)行運(yùn)行或停止工作。圖5 單片機(jī)與繼電器接口電路原理圖說(shuō)明:P2.5口接的J,是為了判斷接觸器是否吸合,從而判知水泵是否得電,以此來(lái)檢測(cè)配合完成單片機(jī)內(nèi)部程序的運(yùn)行。也就是說(shuō)程序流程圖上的“判斷水泵的前一個(gè)工作狀態(tài)”就是通過(guò)此處的接觸器常開(kāi)觸點(diǎn)J的通斷來(lái)判斷的。圖6 單片

14、機(jī)與蜂鳴器接口電路原理圖4.5 井中缺水信號(hào)檢測(cè)電路圖7 井中缺水信號(hào)檢測(cè)電路說(shuō)明:通過(guò)井中的兩電極是否導(dǎo)通來(lái)判斷井中是否缺水,當(dāng)井中水位過(guò)低、不足以淹沒(méi)兩檢測(cè)電極,則P2.0口會(huì)檢測(cè)到一個(gè)低電平輸入信號(hào),單片機(jī)可判知井中缺水,并作出相應(yīng)的動(dòng)作指令,如缺水報(bào)警、水泵停機(jī)等緊急動(dòng)作。4.6 壓力傳感器介紹經(jīng)過(guò)市場(chǎng)及網(wǎng)上實(shí)際調(diào)查發(fā)現(xiàn),目前的液壓傳感器價(jià)格普遍偏高,多為高規(guī)格工業(yè)用品。為實(shí)現(xiàn)低價(jià)位高功能,在此我們通過(guò)氣壓傳感器改制了一個(gè)液壓傳感器。同樣可以滿足實(shí)際要求。傳感器使用SY一9411LD型變送器,它內(nèi)部含有1個(gè)壓力傳感器和相應(yīng)的放大電路。該壓力傳感器是美國(guó)SM公司生產(chǎn)的5552型OEM壓阻

15、式壓力傳感器,其有全溫度補(bǔ)償及標(biāo)定(O70),傳感器經(jīng)過(guò)特殊加工處理,用堅(jiān)固的耐高溫塑料外殼封裝。其引腳分布如圖3所示。1腳為信號(hào)輸出(一);2腳為信號(hào)輸出(一);3腳為激勵(lì)電壓;4腳為地;5腳為信號(hào)輸出(+);6腳為信號(hào)輸出(+)。 在水塔底部安裝1根直徑為5 mm的軟管,一端安裝在水塔底部;另一端與傳感器連接。水塔水位高度發(fā)生變化時(shí),引起軟管內(nèi)氣壓變化,然后傳感器把氣壓轉(zhuǎn)換成電壓信號(hào),輸送到AD轉(zhuǎn)換器。 圖8 SY-9411L-D型變送器引腳結(jié)構(gòu)圖4.7 LCD1602液晶顯示屏接線圖及其引腳功能圖圖9 LCD1602與單片機(jī)的接線圖圖10LCD1602液晶屏的各引腳功能圖4.8 開(kāi)關(guān)電源

16、部分隨著全球?qū)δ茉磫?wèn)題的重視,電子產(chǎn)品的耗能問(wèn)題將愈來(lái)愈突出,如何降低其待機(jī)功耗,提高供電效率成為一個(gè)亟待解決的問(wèn)題。傳統(tǒng)的線性穩(wěn)壓電源雖然電路結(jié)構(gòu)簡(jiǎn)單、工作可靠,但它存在著效率低(只有40% 50%)、體積大、銅鐵消耗量大,工作溫度高及調(diào)整范圍小等缺點(diǎn)。為了提高效率,人們研制出了開(kāi)關(guān)式穩(wěn)壓電源,它的效率可達(dá)85% 以上,穩(wěn)壓范圍寬,除此之外,還具有穩(wěn)壓精度高、不使用電源變壓器等特點(diǎn),是一種較理想的穩(wěn)壓電源。正因?yàn)槿绱?,開(kāi)關(guān)式穩(wěn)壓電源已廣泛應(yīng)用于各種電子設(shè)備中,本著節(jié)能環(huán)保、電能高效利用的原則,本設(shè)計(jì)選用了開(kāi)關(guān)電源為整個(gè)模塊供電。下面是對(duì)開(kāi)關(guān)電源基本原理的簡(jiǎn)單介紹。1 開(kāi)關(guān)式穩(wěn)壓電源的基本工作

17、原理        開(kāi)關(guān)式穩(wěn)壓電源接控制方式分為調(diào)寬式和調(diào)頻式兩種,在實(shí)際的應(yīng)用中,調(diào)寬式使用較多,在目前開(kāi)發(fā)和使用的開(kāi)關(guān)電源集成電路中,絕大多數(shù)為脈寬調(diào)制型。因此下面就主要介紹調(diào)寬式開(kāi)關(guān)穩(wěn)壓電源。調(diào)寬式開(kāi)關(guān)穩(wěn)壓電源的基本原理可參見(jiàn)下圖。圖11 調(diào)寬式開(kāi)關(guān)穩(wěn)壓電源的基本原理對(duì)于單極性矩形脈沖來(lái)說(shuō),其直流平均電壓Uo取決于矩形脈沖的寬度,脈沖越寬,其直流平均電壓值就越高。直流平均電壓。可由公式計(jì)算,即Uo=Um×T1/T,式中Um為矩形脈沖最大電壓值;T為矩形脈沖周期;T1為矩形脈沖寬度。從上式可以看出,當(dāng)Um 與T

18、 不變時(shí),直流平均電壓Uo 將與脈沖寬度T1 成正比。這樣,只要我們?cè)O(shè)法使脈沖寬度隨穩(wěn)壓電源輸出電壓的增高而變窄,就可以達(dá)到穩(wěn)定電壓的目的。2 開(kāi)關(guān)式穩(wěn)壓電源的原理電路  開(kāi)關(guān)式穩(wěn)壓電源的基本電路框圖如圖二所示。交流電壓經(jīng)整流電路及濾波電路整流濾波后,變成含有一定脈動(dòng)成份的直流電壓,該電壓進(jìn)人高頻變換器被轉(zhuǎn)換成所需電壓值的方波,最后再將這個(gè)方波電壓經(jīng)整流濾波變?yōu)樗枰闹绷麟妷骸?#160;      控制電路為一脈沖寬度調(diào)制器,它主要由取樣器、比較器、振蕩器、脈寬調(diào)制及基準(zhǔn)電壓等電路構(gòu)成。這部分電路目前已集成化,制成了各種

19、開(kāi)關(guān)電源用集成電路。控制電路用來(lái)調(diào)整高頻開(kāi)關(guān)元件的開(kāi)關(guān)時(shí)間比例,以達(dá)到穩(wěn)定輸出電壓的目的。                                          

20、60;     圖12 開(kāi)關(guān)電源基本電路框圖     5.軟件設(shè)計(jì)5.1 程序流程圖 圖13 程序流程圖5.2程序流程圖解析1 正常工作時(shí):(1)假設(shè)初始時(shí)水塔中無(wú)水,經(jīng)過(guò)開(kāi)始、初始化程序后首先判斷是否有按鍵鍵入,如果有的話執(zhí)行按鍵調(diào)試子程序,通過(guò)按鍵可以設(shè)定上限位,下限位值。設(shè)定完成后再執(zhí)行AD轉(zhuǎn)換,接下來(lái)是判斷一下液晶屏上是否有報(bào)警指示輸出,如果有的話就不執(zhí)行顯示水塔液位這一子程序,直接判斷是否首次啟動(dòng)AD轉(zhuǎn)換;否則在液晶屏上顯示通過(guò)AD轉(zhuǎn)換得來(lái)的水塔水位值。下一步再判斷AD轉(zhuǎn)換是否是首次啟動(dòng),是首次

21、啟動(dòng)就直接判斷測(cè)量值是否小于預(yù)設(shè)的上限位AD值,如果此時(shí)小于上限位,再判斷是否小于下限位AD值,如果判得小于下限位則再判斷井中是否有水,接著如果判得井中有水就執(zhí)行上水工作。經(jīng)過(guò)一個(gè)延時(shí)程序后再執(zhí)行下一次循環(huán)。(2)有所不同的是在執(zhí)行到判得檢測(cè)值大于下限位時(shí)不執(zhí)行上述循環(huán),而是再判斷之前水泵的工作狀態(tài),如果之前水泵是上水狀態(tài)則轉(zhuǎn)到判斷井中是否有水,接著再執(zhí)行上水工作,否則繼續(xù)循環(huán)保持水泵停機(jī)狀態(tài)。(3)當(dāng)水塔中的水高出上限位,此時(shí)執(zhí)行斷開(kāi)繼電器這一指令,讓水泵停機(jī)。到此,上水工作完成。繼續(xù)循環(huán)檢測(cè),用戶用水會(huì)使水塔水位低于上限值,這時(shí)再執(zhí)行判斷之前水泵是否在上水狀態(tài),如果判得之前水泵沒(méi)在上水狀態(tài)

22、則繼續(xù)執(zhí)行循環(huán)判斷,如此一來(lái)就保證了低于水位下限時(shí)水泵開(kāi)始上水,并一直上水達(dá)到上限位為止。再保持水塔水位用到低于下限位時(shí)開(kāi)始打水。2 出現(xiàn)故障時(shí):(1)當(dāng)井中水位傳感器檢測(cè)到井中缺水時(shí)會(huì)調(diào)用報(bào)警子程序,在液晶屏上顯示“井中缺水”字樣,并響起蜂鳴器,同時(shí)斷開(kāi)控制水泵的繼電器。再執(zhí)行一個(gè)長(zhǎng)延時(shí)子程序,等待井中積攢下足夠的水后再執(zhí)行上水工作。(2)當(dāng)判斷AD值始終保持不變次數(shù)達(dá)到十次時(shí),則需要再判斷控制水泵的繼電器是否一直吸合,如果滿足這兩個(gè)條件則可判知水泵可能出現(xiàn)故障,這時(shí)就需要液晶顯示“水泵故障”,同時(shí)蜂鳴報(bào)警,并立即斷開(kāi)控制水泵的繼電器。6 實(shí)驗(yàn)仿真結(jié)果    根

23、據(jù)所設(shè)計(jì)系統(tǒng)的軟件流程圖,編寫(xiě)相應(yīng)的程序在kill軟件環(huán)境下實(shí)現(xiàn)仿真,并且還通過(guò)51單片機(jī)實(shí)驗(yàn)開(kāi)發(fā)板進(jìn)行了模擬實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)能夠?qū)崿F(xiàn)水位檢測(cè)、電機(jī)故障檢測(cè)、處理和報(bào)警等功能,具有良好的檢測(cè)控制功能,可移植性和擴(kuò)展性強(qiáng)。7 結(jié)束語(yǔ)    該系統(tǒng)設(shè)計(jì)是基于在單片機(jī)嵌入式系統(tǒng)基礎(chǔ)上而設(shè)計(jì)的,充分利用單片機(jī)強(qiáng)大控制功能,該檢測(cè)控制系統(tǒng)經(jīng)過(guò)軟件仿真實(shí)驗(yàn)和單片機(jī)實(shí)驗(yàn)開(kāi)發(fā)板模擬實(shí)驗(yàn),基本實(shí)現(xiàn)了水位模擬檢測(cè)、電機(jī)故障模擬檢測(cè)、處理和報(bào)警等功能。進(jìn)一步優(yōu)化了系統(tǒng)軟硬件整體功能,可實(shí)時(shí)實(shí)現(xiàn)水塔自動(dòng)控制,因此,該系統(tǒng)在水塔自動(dòng)控制領(lǐng)域有著廣闊的應(yīng)用前景。致謝經(jīng)過(guò)半個(gè)多月的匆

24、忙準(zhǔn)備,我們組所選的“基于51單片機(jī)控制的水塔自動(dòng)供水系統(tǒng)”終于小有所成。在這期間非常感謝我的導(dǎo)師陳毅鵬老師和張慧明老師,還有所有培育過(guò)我的老師們!是他們悉心指導(dǎo)、耐心教誨下才讓我逐漸發(fā)現(xiàn)知識(shí)的“廬山真面目”,并從中體驗(yàn)到了學(xué)習(xí)研究過(guò)程中所帶來(lái)的巨大樂(lè)趣。這些天我還體悟到一個(gè)道理:任何一件偉大的事情都是由若干個(gè)細(xì)節(jié)堆砌而成的,要想取得最后的成功,那就必須把握好中間過(guò)程的每一個(gè)細(xì)節(jié)。同時(shí)在這里我也要感謝我的隊(duì)友們,是大家的共同努力才贏得了這次小小的勝利,團(tuán)隊(duì)的力量是偉大的,三人行必有我?guī)熝伞B仿湫捱h(yuǎn)兮,吾將上下而求索!在今后的工作學(xué)習(xí)中我會(huì)深深的記住并運(yùn)用此次獲得的經(jīng)驗(yàn)教訓(xùn),相信以后的日子里

25、在該行業(yè)領(lǐng)域我會(huì)有更大的收獲。附錄附錄1 PCB原理圖附錄2 C程序#include <reg52.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intsbit adrd=P37; /IO口定義sbit diola=P25;sbit dula=P26;sbit wela=P27; sbit BEEP=P23 ; /蜂鳴器驅(qū)動(dòng)線sbit LCD_RS = P35; sbit LCD_RW = P36;sbit LCD_EN = P34;bit presence,flag;uch

26、ar code cdis1 = " PLEASE CHECK "uchar code cdis2 = " DEEP: "uchar code cdis3 = "TH: TL: "unsigned char data deep_data2 = 0x00,0x00;unsigned char data deep_alarm2 = 0x0a,0xff;unsigned char data display5 = 0x00,0x00,0x00,0x00,0x00; /深度值顯示unsigned char data display13 = 0x0

27、0,0x00,0x00; unsigned char code mytab18 = 0x0C,0x12,0x12,0x0C,0x00,0x00,0x00,0x00;unsigned char code mytab28 = 0x01,0x1b,0x1d,0x19,0x1d,0x1b,0x01,0x00; /小喇叭#define delayNOP(); _nop_();_nop_();_nop_();_nop_();unsigned char deep,deep_comp,timecount,count,compare_th,compare_tl;/數(shù)據(jù)存放位置void Disp_deep_ala

28、rm(uchar addr,uchar num);void Natural_Menu ();void spk(uchar addr);void set_deep_alarm();void deep_compare();void beep();/*/void delay1(int ms) unsigned char y; while(ms-) for(y = 0; y<250; y+) _nop_(); _nop_(); _nop_(); _nop_(); /檢查L(zhǎng)CD忙狀態(tài) /*lcd_busy為1時(shí),忙,等待。lcd-busy為0時(shí),閑,可寫(xiě)指令與數(shù)據(jù)*/*/bit lcd_busy(

29、) bit result; LCD_RS = 0; LCD_RW = 1; LCD_EN = 1; delayNOP(); result = (bit)(P0&0x80); LCD_EN = 0; return(result); /*/*寫(xiě)指令數(shù)據(jù)到LCD */ /*RS=L,RW=L,E=高脈沖,D0-D7=指令碼。 /*/void lcd_wcmd(uchar cmd) delay1(10); LCD_RS = 0; LCD_RW = 0; LCD_EN = 0; _nop_(); _nop_(); P0 = cmd; delayNOP(); LCD_EN = 1; delayNO

30、P(); LCD_EN = 0; /*/*寫(xiě)顯示數(shù)據(jù)到LCD /*RS=H,RW=L,E=高脈沖,D0-D7=數(shù)據(jù)。 /*/void lcd_wdat(uchar dat) delay1(10); LCD_RS = 1; LCD_RW = 0; LCD_EN = 0; P0 = dat; delayNOP(); LCD_EN = 1; delayNOP(); LCD_EN = 0; /*/* LCD初始化設(shè)定 /*/void lcd_init() delay1(15); lcd_wcmd(0x01); /清除LCD的顯示內(nèi)容 lcd_wcmd(0x38); /16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù)

31、 delay1(5); lcd_wcmd(0x38); delay1(5); lcd_wcmd(0x38); delay1(5); lcd_wcmd(0x0c); /顯示開(kāi),關(guān)光標(biāo) delay1(5); lcd_wcmd(0x06); /移動(dòng)光標(biāo) delay1(5); lcd_wcmd(0x01); /清除LCD的顯示內(nèi)容 delay1(5);/*/* 設(shè)定顯示位置 /*/void lcd_pos(uchar pos) lcd_wcmd(pos | 0x80); /數(shù)據(jù)指針=80+地址變量/*/*us級(jí)延時(shí)函數(shù) /*/void Delay(unsigned int num) while( -n

32、um );/*/* 讀取深度 /*/ Read_deep(void) uchar a,sl; TR0=0; /關(guān)中斷,防止讀數(shù)錯(cuò)誤 wela=1; P0=0; /選通ADCS LCD_RW=0;/AD寫(xiě)入(隨便寫(xiě)個(gè)什么都行, LCD_RW=1; P0=0xff; /關(guān)閉ADCS Delay(10); wela=0; /關(guān)閉有AD片選信號(hào)鎖存器的鎖/存端以防止在操作數(shù)碼管時(shí)使AD的片選發(fā)生變化 for(a=20;a>0;a-) ; /需要注意的是ADC0804在寫(xiě)和/讀之間的時(shí)間間隔要足夠長(zhǎng)否則無(wú)法讀出數(shù)據(jù) for(a=20;a>0;a-); /這里把顯示部分放這里的原 wela=1

33、; /重新打開(kāi)有AD片選信號(hào)鎖存器 P1=0xff; /讀取P1口之前先給其寫(xiě)全1 P0=0; /選通ADCS adrd=0; /AD讀使能 sl=P1;/AD數(shù)據(jù)讀取賦給P1口 adrd=1; P0=0xff; /關(guān)閉ADCS LCD_RW=0; deep_data0 = sl ; /深度 TR0=1; /開(kāi)中斷/*/* 數(shù)據(jù)轉(zhuǎn)換與深度顯示 /*/ Disp_Temperature() display4=deep_data0&0x0f; display0=(display4*10/16)+0x30; display4=(deep_data0&0xf0)>>4)|(

34、deep_data1&0x0f)<<4); display3=display4/100+0x30; display1=display4%100; display2=display1/10+0x30; display1=display1%10+0x30; if(display3=0x30) /高位為0,不顯示 display3=0x20; if(display2=0x30) /次高位為0,不顯示 display2=0x20; ; ; lcd_pos(0x07); lcd_wdat(display3); /百位數(shù)顯示 lcd_wdat(display2); /十位數(shù)顯示 lcd

35、_wdat(display1); /個(gè)位數(shù)顯示 lcd_wdat('.'); lcd_wdat(display0); /小數(shù)位數(shù)顯示 lcd_wdat('%'); /顯示%void beep() unsigned char y; for (y=0;y<100;y+) Delay(70); BEEP=!BEEP; /BEEP取反 ; BEEP=1; /關(guān)閉蜂鳴器Delay(25000);/*/* ad0804 正常顯示菜單 /*/void Natural_Menu () uchar m; lcd_init(); /初始化LCD lcd_pos(0); /設(shè)置

36、顯示位置為第一行的第1個(gè) for(m=0;m<16;m+); lcd_wdat(cdis2m); /顯示字符 lcd_pos(0x40); /設(shè)置顯示位置為第二行第1個(gè)字 for(m=0;m<16;m+); lcd_wdat(cdis3m); /顯示字符 Read_deep(); Disp_deep_alarm(0x43,0); /顯示deeph值 Disp_deep_alarm(0x4b,1); /顯示deepl值 Disp_Temperature(); /顯示實(shí)時(shí)深度值/*/ 顯示報(bào)警深度/*/void Disp_deep_alarm(uchar addr,uchar num)

37、 /0=TH,1=TL display12=deep_alarmnum/100+0x30; display10=deep_alarmnum%100; display11=display10/10+0x30; display10=display10%10+0x30; lcd_pos(addr); lcd_wdat(display12); /百位數(shù)顯示 lcd_wdat(display11); /十位數(shù)顯示 lcd_wdat(display10); /個(gè)位數(shù)顯示 /*/ Time0中斷函數(shù)/*/void Time0(void) interrupt 1 using 0 TH0=0x4c; /50ms定時(shí) TL0=0x00; timecount+; if(timecount>9) timecount=0; flag=flag; ;/*/*小喇叭閃動(dòng) */*/void spk(uchar addr) if(flag) lcd_pos(ad

溫馨提示

  • 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ù)網(wǎng)僅提供信息存儲(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)論