2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩46頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  畢業(yè)設計</b></p><p>  題目 智能水塔水位控制器</p><p><b>  目 錄</b></p><p>  第一章 前言………………………………………………… 2 </p><p>  第二章

2、 功能說明,結合功能框圖………………………… 3</p><p>  第三章 使用操作說明 …………………………………… 5</p><p>  第四章 原理圖分析主要部分工作原理 …………………… 7</p><p>  第五章 PCB板制作 ………………………………………… 9</p><p> 

3、 第六章 主要芯片資料應用說明…………………………… 11</p><p>  第七章 程序框圖及說明 …………………………………… 15</p><p>  調試數(shù)據(jù)記錄表及調試故障現(xiàn)象及其解決方法… 16</p><p>  心得體會 ………………………………………… 20</p><p>  第十章

4、 致謝……………………………………………… 22</p><p>  第十一章 參考文獻………………………………………… 23</p><p>  第十二章 附錄(源程序)………………………………… 24</p><p>  第一章 前 言</p><p>  目前我國水資源已經(jīng)相當?shù)膮T乏,如何節(jié)約

5、用水也成為了電子愛好者設計制作的焦點。</p><p>  現(xiàn)有的二級供水方式,既先用水泵從水井中抽到蓄水池中供用戶使用,要求蓄水池的水位必須保持一定的高度,還需要防止水的溢出??墒乾F(xiàn)在市售的都是傳統(tǒng)的水位控制器,多以浮球式、觸點式為主,可靠性不好,有著無法改進的致命缺點,如:無水位顯示,無電機保護,可靠性不高,控制精度改進度不大,壽命不長……</p><p>  相對于機械式水位控制器,

6、電子式的水位控制器有著無可比擬的優(yōu)點:添加水位顯示電路、電機保護電路、強制性手動開、關機電路可以達到水位顯示、簡單的電機保護、水位自動控制,控制精度是傳統(tǒng)機械式水位控制器的幾何倍。</p><p>  本控制器采用了高效率、高穩(wěn)定性、低功耗的ATMEL80s51單片機,具有水位狀態(tài)顯示、抽水時間顯示、并有故障檢測功能。集高效、高精度、高穩(wěn)定性、低功耗、高性價比、良好的人機交流界面、操作簡便、顯示直觀以及低功耗等功

7、能于一體的智能水塔水位控制器無疑將會家用水位控制器極具競爭力的一匹黑馬。</p><p>  第二章 功能說明,結合功能框圖</p><p><b>  結構方框圖(-)</b></p><p>  本產(chǎn)品控制部分采用低電壓,高性能CMOS8位微處理器ATMEL的AT89S51,該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業(yè)標準的

8、MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,功能十分強大并且價格低廉。</p><p>  水位開關采用三組帶環(huán)行磁鐵的密封在水管中的干簧管,磁鐵在水的浮力作用下吸合干簧管而使之導通,靈敏度很高。</p><p>  工作電壓: 220V ±10%</p><p>  消耗功率: 0.1W(待機) 2

9、W(工作)</p><p>  控制輸出功率:≤6.6KW</p><p>  水位控制精度: ±5cm</p><p>  短期使用環(huán)境溫度: -40~75度</p><p>  短期使用環(huán)境濕度: 5%~95%</p><p>  穩(wěn)定使用環(huán)境溫度: -20度~50度</p>

10、<p>  長期使用環(huán)境濕度: 35%~80%</p><p>  誤 差 : <1%</p><p>  2.1 各部分的設計:</p><p>  2.1.1 水位開關的設計:</p><p>  三個水位開關由三個鋼簧管組成。</p><p>  分別安裝在水塔的高,中,低部位。&l

11、t;/p><p>  最高是停止抽水,最低是啟動抽水,中間是起時間報警保護水泵作用。</p><p>  2.1.2 潛水泵的選擇:</p><p><b>  水泵為單相水泵。</b></p><p>  潛水泵安裝在水源內(nèi)部。</p><p>  2.1.3 設計按鍵部分:</p>

12、<p>  復位按鍵,維護按鍵,模式按鍵,功能按鍵,電源開關。</p><p>  復位按鍵設計在內(nèi)部。維護按鍵,模式按鍵,功能按鍵,電源開關按鍵都安裝在外部。</p><p>  2.1.4 數(shù)碼管顯示設計: </p><p>  抽水時間和次數(shù),由一個四位數(shù)碼管顯示</p><p>  2.1.5 報警器的設計:<

13、/p><p><b>  以低電平觸發(fā)。</b></p><p>  當電機出現(xiàn)空轉,欠壓,失壓,水源缺水以及系統(tǒng)電路出現(xiàn)故障時,進行自動報警并且自動控制電機停止運轉。</p><p>  2.1.6 狀態(tài)指示燈設計:</p><p>  當紅、黃、綠三燈同時亮起時顯示水位已滿,紅燈閃爍表示高水位警告顯示,紅燈亮表示高水位

14、正常顯示,黃燈亮表示中水位顯示,綠燈亮表示低水位正常顯示,綠燈閃爍表示低水位警告,紅黃綠三燈同時閃爍表示水源缺水報警。</p><p>  2.1.7 控 制 部 分:</p><p>  按下電源開關后,本產(chǎn)品開始自動檢測,若無故障則開始工作,檢測水塔內(nèi)的水位,若水位過低則綠燈閃爍,自動啟動水泵開始抽水直到水滿,數(shù)碼管開始顯示抽水時間,水位過中間時黃燈會亮,當水抽滿時三盞等全亮;

15、如果水位正常則本產(chǎn)品進入待機狀態(tài)。</p><p>  第三章 使用操作說明</p><p>  3.1 產(chǎn)品操作簡介:</p><p><b>  指示燈功能表(一)</b></p><p>  本產(chǎn)品為智能化水位自動控制器,接同電源后無須任何操作即可自動工作。如有必要也可通過按鍵在任何正常工作情況下強制開啟停止

16、水泵。</p><p>  產(chǎn)品面板上有三個按鍵,左邊一個紅色帶鎖的維護鍵,中間一個綠色點觸式模式鍵、和右邊一個綠色點觸式按鍵,內(nèi)部還有一個復位按鍵,按下復位鍵則恢復默認設置。</p><p>  四個數(shù)碼管分別顯示和記錄抽水次數(shù)、時間。</p><p>  當紅、黃、綠三燈同時亮起時顯示水位已滿,紅燈閃爍表示高水位警告顯示,紅燈亮表示高水位正常顯示,黃燈亮表示中水

17、位顯示,綠燈亮表示低水位正常顯示,綠燈閃爍表示低水位警告,紅黃綠三燈同時閃爍表示水源缺水報警。 </p><p>  操作規(guī)程:按下電源開關后,本產(chǎn)品開始自動檢測,若無故障則開始工作,檢測水塔內(nèi)的水位,若水位過低則綠燈閃爍,自動啟動水泵開始抽水直到水滿,數(shù)碼管開始顯示抽水時間,水位過中間時黃燈會亮,當水抽滿時三盞等全亮;如果水位正常則本產(chǎn)品進入待機狀態(tài)。</p><p>  用水時,

18、數(shù)碼管全部顯示橫杠,三盞指示燈顯示相應的水位,燈的顯示情況與水位狀況如下所示:</p><p>  本產(chǎn)品的水位為自動控制,在水位過低時可自動抽水,水滿則自動停機。若想進入手動狀態(tài),在抽水狀態(tài)下按下紅色維護鍵,再按下功能鍵就停止抽水,再按一次則再次啟動水泵抽水;在待機狀態(tài)下按下紅色維護鍵,再按一次功能鍵就啟動水泵抽水,再按一次則停止抽水。</p><p>  注意:在水已經(jīng)滿了的時候,按啟

19、動鍵無效,不能手動啟動水泵。</p><p>  在不抽水的用水期按下維護鍵,數(shù)碼管顯示00-00,可通過功能鍵可以翻閱以前的抽水次數(shù)和時間。</p><p>  當出現(xiàn)了一些程序錯誤不能正常工作的時候,按下內(nèi)部的復位鍵則可以解決大部分的問題。按下復位鍵的同時再按下模式跟功能按鍵1S以上則清除所有數(shù)據(jù),恢復出廠狀態(tài)。</p><p>  第四章 原理圖分析主要部分工

20、作原理</p><p>  4.1 電源部分采用了常用的三端穩(wěn)壓電路。通過變壓器將220v的市電降成12v的交流電,經(jīng)過D1~D4橋堆和2200UF電容進行整流、濾波,通過0.1uf電容濾出高次諧波,得到了波形叫平穩(wěn)的13.2v左右的直流電,通過7812后得到了非常平穩(wěn)的12v直流電;再經(jīng)過一次相同的穩(wěn)壓過程得到了紋波系數(shù)更小的5v直流電。整個電路的輸出功率也完全可以達到本廠品的需求。</p>&

21、lt;p><b>  原理圖(-)</b></p><p>  4.2 主面板: 主要是由TA89S51、24C04存儲芯片和一些外圍電路構成主要由小電流控制大電流。由三個水位開關分別裝在水塔的“上,中,下”三個水位。當水塔水位在底水位時,底水位傳感器信號輸入給TA89S51 P2.5-P2.7,然后TA89S51通過P3.7控制光耦來控制水泵抽水,直到水塔抽滿,水泵才停.在抽水的

22、過程中4位數(shù)碼管顯抽水時間,和的抽水的次數(shù).</p><p>  4.3 TA89S51各引腳所對應外電路如下:</p><p>  4.4 24C04各引腳功能:</p><p>  4.5 光耦各引腳功能:</p><p>  第五章 PCB板制作</p><p>  5.1 主面板PCB:</

23、p><p>  5.2 控制與顯示PCB:</p><p>  5.3 電源部分:</p><p>  5.5 電路板的選用:</p><p>  選用環(huán)氧樹脂板, 環(huán)氧樹脂與銅箔有極好的粘合力,同箔的附著強度與工作溫度高,可以在260度的焊錫熔中不起泡。也可使用覆銅聚四氟乙烯玻璃布層壓板。不同的材料有不</p><p&

24、gt;  同的特點,由調試中可能多次更換元件,所以要考慮到銅箔的粘合力。</p><p>  5.6 布線注意事項:</p><p>  布線的好環(huán)直接影響著放大器的性能,不好的線路板,會使信號產(chǎn)生歧變,產(chǎn)生本底噪音生尖峰脈沖干擾等,為了盡避免上述影響,線路板在線出盡量做到:</p><p>  5.6.1 接照信號的傳輸路徑由小到大的順序在電路板上合路的布置各

25、各元器的位置,盡量縮短各元器件之間的距離,以減少外部干擾的引入和不必要的干擾。</p><p>  5.6.2 在供電線路中,大電流通過的路徑應盡量度設計得實一些,以降低電源內(nèi)阻,使電流能順利通過。</p><p>  5.6.3 在供電線路中,應盡量避免大電流的印刷電路式導線交布置在小電流通路的中間或附近,以免造成對小電流的干擾。</p><p>  5.6.

26、4 走線時,應盡量走大于90度直角的線以防止產(chǎn)生尖峰脈沖造成干擾。</p><p>  5.6.5 在設計電線時,盡量使星型供電方式,而且地的低盡量離濾波電的地端近。,</p><p>  5.6.6 大功率元件與小功率元件盡量分開布線。</p><p>  第六章 主要芯片資料應用說明</p><p>  AT89S51單片機

27、:</p><p>  ATMEL公司生產(chǎn)的AT89S51單片機是采用高性能的表態(tài)8051設計,由先進工藝制造,并帶有非易性FLADSH程序存儲器。它是一種高性能、低功耗的8位CMOS微處理芯片,市場應用多。主要性能特點有:</p><p>  8KB FLASH ROM,可以擦除1000次以上,數(shù)據(jù)保存10年。</p><p>  256字節(jié)內(nèi)部RAM。</

28、p><p><b>  電源控制模式</b></p><p>  ——時鐘可停止和恢復;</p><p><b>  ——空閑模式;</b></p><p><b>  ——掉電模式。</b></p><p><b>  5個中斷源。</b&

29、gt;</p><p><b>  2個中斷優(yōu)先級。</b></p><p><b>  4個8位I/O口。</b></p><p>  全雙工增強型UART。</p><p>  2個16位定時/計數(shù)器,T0、T1(標準80C51)</p><p>  全靜態(tài)工作方式:02

30、4MHz。</p><p>  6.2 8051單片機的簡介:</p><p>  MCS-51單片機是Intel公司在1980年繼MCS-48系列8位單片機之后推出的高檔8位單片機。MCS-51單片機在性能和片內(nèi)功能方面大大優(yōu)于MCS-48系列單片機。</p><p>  MCS-51的典列產(chǎn)品有:8031、8051、8751。8051內(nèi)部有4KBROM,875

31、1內(nèi)部有4KBEPROM,8031片內(nèi)無ROM;除此之外,三者的內(nèi)部結構完全相同。在此主要介紹8051單片機。</p><p>  8051單片機內(nèi)部由CPU、4KBROM、256B有RAM、兩個16位的定時/計數(shù)器T0和T1,4個8位的I/O端口P0、P1、P2、P3、串行口等組成。其內(nèi)部原理框圖如下:</p><p>  芯片內(nèi)部結構圖(-)</p><p>&

32、lt;b>  8位CPU</b></p><p>  由運算器、指令寄存器、定時和控制電路、振蕩器等電路組成。為整個單片機芯片提供控制邏輯時序信號,并完成各類算術、邏輯運算。</p><p>  6.2.2 存儲器電路:</p><p>  由4K字節(jié)的ROM或EPROM,以及程序地址寄存器等組成程序存儲器電路。用來存放程序。若內(nèi)部存儲器容量不足

33、,可擴展外部存儲器,程序存儲器最大容量可達64K字節(jié)。</p><p>  由128個字節(jié)的RAM及RAM地址寄存器等組成數(shù)據(jù)存儲器電路,用以存放用戶數(shù)據(jù)。也可擴展外部數(shù)據(jù)存儲器,外擴最大容量可達64K字節(jié)。</p><p>  還有20幾個特殊功能寄存器(SFR)。包括累加器ACC、B寄存器、數(shù)據(jù)指針DPTR等,用以臨時存放中間運算結果或一些特殊用途等。</p><p

34、><b>  輸入、輸出接口電路</b></p><p>  P0、P1、P2、P3口的鎖存器、驅動器及串行口控制等組成并行/串行接口電路,完成片機與外部設備之間的數(shù)據(jù)交換。兩個16位定時/計數(shù)電路構成定時器/計數(shù)器接口。中斷電路為5個中斷源提供中斷邏輯控制信號。</p><p>  AT89S51工作極限參數(shù):</p><p>  6.

35、3 引腳說明:</p><p>  8051單片機的外形結構為40條引腳雙列直插式封裝,其引腳排列如圖:</p><p><b>  引腳說明圖(-)</b></p><p>  6.3.1 主電源引腳</p><p>  Uss(20腳):電路地電平。</p><p>  Ucc(40腳):

36、正常運行和編程校驗時為+5V電源。</p><p>  6.3.2 外接晶振或外部振蕩器引腳</p><p>  XTAL1和XTAL2:接外部晶振電路。當采用外部振蕩電路時,XTAL1應當接地,XTAL2接外部振蕩信號的輸入。</p><p><b>  制引腳</b></p><p>  RST/Upd:RST是

37、復位信號輸入端。Upd為備用電源輸入端,即Ucc掉電時,由此引腳提供備用電源,以保持內(nèi)部RAM的信息。</p><p>  ALE/PROG:ALE是地址鎖存允許信號。PROG為編程脈沖輸入端,即當選用8751單片機時,對片內(nèi)程序存儲器進行編程時,由此引腳輸入編程脈沖。</p><p>  PSEN:訪問外部程序存儲器選通信號,低電平有效。</p><p>  Up

38、p/EA:EA為訪問內(nèi)部或外部程序存儲器選擇信號。為1時,訪問內(nèi)部程序存儲器;當程序計數(shù)器PC超過片內(nèi)程序存儲器地址時,將自動轉向外部程序存儲器繼續(xù)運行。為0時,則只能訪問外部程序存儲器。</p><p><b>  輸入/輸出口引腳</b></p><p>  P0口(32~39):8位漏極開路雙向并行I/O端口。當訪問外部存儲器時,它是復用的地址和數(shù)據(jù)總路線;外部

39、不擴展只做單片使用時,用做雙向I/O口;在進行片內(nèi)部程序校驗期間,作指令代碼輸出,負載能力為8個LSTTL。</p><p>  P1口(1~8):8位準雙向并行I/O端口,在片內(nèi)程序校驗期間,作低8位地址用。負載能力為4個LSTTL。</p><p>  P2口(21~28):8位準雙向并行I/O端口。當訪問外部存儲器時做高8位地址用;不做外部擴展時,則做為準雙向I/O口使用;在片內(nèi)程序

40、校驗時作高8位地址線負載能力為4個LSTTL。</p><p>  第七章 程序框圖及說明</p><p><b>  程序流程圖(-)</b></p><p><b>  程序清單詳見附錄</b></p><p>  第八章 調試數(shù)據(jù)記錄表及調試故障現(xiàn)象及解決方法</p><

41、p>  8.1 硬件調試:</p><p> ?。ㄒ唬?、首先我們將硬件分為五個小模塊(電源模塊、主面板模塊、顯示模塊、按鍵和指示燈模塊、傳感器部件)進行腐蝕并焊接好元件,將各個模塊都進行測試。</p><p>  8.1.1 電源模塊:</p><p>  說明:因為我們的繼電器需要12V進行驅動,所以在此我們所選用的變壓器為220V~12V交流變壓器,整

42、流元件選用7812跟7805穩(wěn)壓管。</p><p>  調試:它的輸出電壓就得到了我們所需要的12V、5V、GND電源。焊接好元件后,接好變壓器,發(fā)現(xiàn)電源的指示燈不亮,用手觸摸7812與7805穩(wěn)壓管,發(fā)現(xiàn)7812與7805穩(wěn)壓管嚴重發(fā)熱,用萬用表測量輸出電壓,發(fā)現(xiàn)12V、5V于GND的電壓都為0.36V。立即取下變壓器。</p><p>  將電路進行檢測,在此我就對元件的引腳分別加以

43、測試,看其是否短接。經(jīng)過測試發(fā)現(xiàn)7812穩(wěn)壓管的散熱片與電容的接地腳短接,7805穩(wěn)壓管的散熱騙與電阻的的輸入腳短接。我們將穩(wěn)壓管平放在電路板上,測試無短接的情況下再次接上變壓器。電源指示燈亮,用萬用表測試輸出電壓,分別為+12.05V、+4.98V、GND。電源部分正常工作。</p><p>  將測試數(shù)據(jù)交給PCB制作人,讓他修改好PCB,不讓散熱片再次有短接的情況。</p><p>

44、  8.1.2 主面板模塊:</p><p>  說明:主面板選用AT89S51芯片進行控制,24C04芯片作為外部存儲擴充空間。AT89S51單片機控制光耦芯片的斷開與閉合來控制NPN三極管的導通,繼電器的驅動電壓是+12V直流,當三極管導通后繼電器的線圈就有了+12V的直流電壓。從而觸發(fā)繼電器的斷開與閉合。</p><p>  調試:主要測試對象是繼電器能否帶動大功率的水泵(750W

45、),復位電路是否正常。</p><p>  繼電器:將電源插在主面板上,接好水泵,寫入一個測試程序,將AT89S51的17腳置為低電平,接通電源后,查看繼電器是否閉合。得到預期的實驗結果,繼電器正常工作。</p><p>  #include<reg51.h></p><p>  sbit P3^7=a ;</p><p><

46、;b>  main()</b></p><p><b>  {</b></p><p><b>  a=0;</b></p><p><b>  }</b></p><p> ?。ㄔ诠怦钚酒?,我們可以看到當給以P3.7低電平(GND)時,光耦芯片將會導通,三

47、極管將會導通從而使繼電器閉合,水泵工作。)按下電源開關,查看水泵是否正常工作,繼電器能否承受起20mA的沖擊電流,測試后發(fā)現(xiàn),水泵正常工作。繼電器完好無損!主面板的繼電器部分正常。</p><p>  復位電路:接好電源后,測試單片AT89S51的RST腳的電壓,測試數(shù)據(jù)得出為0V。按下復位按鍵后進行測試,RST腳的電壓為0.8V。依據(jù)復位電路的原理,按鍵復位不正常,檢測元件是否有電源(+12V、+5V)與地(G

48、ND)是否有短路,在線路的檢查中沒有出現(xiàn)短路情況,將原理圖進行分析,查看元件時候放置正確,結果檢查發(fā)現(xiàn)24C04芯片被接反,取下芯片再次測試,按下按鍵,RST腳為電壓為3.8V,依據(jù)單片機復位電路的原理,單片機以高電平復位。得出按鍵復位正常工作。</p><p>  8.1.3 顯示模塊:</p><p>  說明:我們所使用的是共陽極四位八段數(shù)碼管,位接高電平(高電平是+3V以上,以數(shù)

49、碼管的要求不能超過5V。)</p><p>  調試:首先用萬用表測試數(shù)碼管是否是損壞,將萬用表調至二極管測量檔位,將正表筆接位,接位1時,負表筆接段選a.b.c.d.e.f.dp段,查看數(shù)碼管是否顯示各個段,測試后,位1正常,然后分別接位2、位3、位4結果顯示全部正常,數(shù)碼管無損壞。</p><p>  結合主面板測試,寫入一個測試程序,將AT89S51的P0、P2口置為低電平,接通電源

50、后,查看數(shù)碼管顯示是否為滿格。得到預期的實驗結果,數(shù)碼管顯示為滿格。</p><p>  #include<reg51.h></p><p>  sbit P0=a ;</p><p>  sbit P2=b;</p><p><b>  main()</b></p><p><

51、b>  {</b></p><p><b>  a=0;</b></p><p><b>  b=0;</b></p><p><b>  }</b></p><p>  8.1.4 按鍵和指示燈模塊:</p><p>  說明:當接

52、上單片機時,若單片機的引腳沒有定義,其默認就為高電平。當指示燈引腳為低電平時指示燈亮。</p><p>  調試:首先檢查按鍵是否正常,沒按下時為斷開,按下按鍵則導通,測試結果,沒按下時其為閉合,經(jīng)過檢測,發(fā)現(xiàn)電路板在敷銅時將兩個腳接到了一起,解決方法,用刀片將外圍的銅全部刮掉,將方案交給PCB制作人,進行修改PCB。</p><p>  結合主面板進行測試按鍵,放入一個單片機,不寫入任何

53、程序,按鍵的引腳默認為高電平,接入電源,用萬用表測試引腳,結果為高電平,當按下按鍵則為低電平,用萬用表進行測試是否為低電平,測試結果為低電平。</p><p>  測試指示燈時,寫入一個程序:將AT89S51的P1.3~P1.5腳置為低電平,接通電源后,查看指示燈是否亮。得到預期的實驗結果,指示燈亮。</p><p>  #include<reg51.h></p>

54、<p>  sbit P1^3=a;</p><p>  sbit P1^4=b;</p><p>  sbit P1^5=c;</p><p><b>  main()</b></p><p><b>  {</b></p><p><b>  a=0

55、;</b></p><p><b>  b=0;</b></p><p><b>  c=0;</b></p><p><b>  }</b></p><p>  8.1.5 傳感器部件:</p><p>  說明:我們使用的是鋼簧管,當鋼

56、簧管受到磁場力時就會閉合,沒有磁場力時則會斷開,我們在此使用三個鋼簧管作為傳感器部件,達到三個水位顯示效果。接出四根線,三根單片機引腳線,一根接地線。</p><p>  調試:用磁芯去吸引鋼簧管,再用萬用表測試鋼簧管是否閉合,測試結果,閉合。傳感器部件一切正常。</p><p>  接入主面板進行調試,放入一個沒有程序的單片機,接上電源,用磁芯吸引鋼簧管,用萬用表測試其相對應的單片機腳是

57、否為低電平。測試結果,沒當吸引鋼簧管時其單片機相對應的管腳為低電平。得出結論,此鋼簧管進入面板調試一切正常。</p><p><b>  總結調試:</b></p><p>  組合全部面板:寫入一個測試程序,查看數(shù)碼管顯示、指示燈的亮、滅,按鍵功能是否正常。接入電源,運行該程序,查看其效果是否一切正常,調試結果該組合部分全部正常,然后將所有有誤差的PCB修改好,腐蝕

58、出電路板,焊接好元件,經(jīng)過全部組合后的調試方法進行調試,其電路能夠順利的進行工作。</p><p>  8.2 軟件調試:</p><p>  8.2.1 水位按鍵掃描程序的調試。</p><p>  將high_water_scan()等函數(shù)的輸出項如high_up_pulse,high_down_pulse直接聯(lián)系到P0 口觀測P0口輸出電壓是否正確。<

59、;/p><p>  狀態(tài)掃描函數(shù)的調試。</p><p>  該函數(shù)輸出項都為外部輸出,可以直接從數(shù)碼管等外部器件知函數(shù)否正常。由觀測結果進行調試。</p><p>  蜂鳴器報警函數(shù)的調試。</p><p>  蜂鳴器為4分之1秒響一次。時間周期 由計時器 0提供。由觀測結果進行調試。</p><p>  指示燈狀態(tài)函數(shù)

60、的調試。</p><p>  在自動運行模式時,由傳感器提信號,低水位綠燈亮,中水位黃燈亮,高水位紅燈亮由觀測結果進行調試。。</p><p>  數(shù)碼管顯示函數(shù)的調試。</p><p>  在自動運行模式時,數(shù)碼管顯示當前加水時間,在查詢模式顯示歷史加水時間,在手動模式時顯示----。由觀測結果進行調試。</p><p>  24C04讀寫

61、操作函數(shù)的調試。</p><p>  在計時10次之后,進入查詢模式,按下模式/功能進行上翻/下翻。由觀測結果進行調試。</p><p>  電機運行監(jiān)控函數(shù)的調試。</p><p>  在所有的調試完成之后,進入手動模式,進行啟動/停止操作觀察繼電器是否工作。進入自動模式,移動干簧管觀察繼電器是否與設計思路工作方式相同。</p><p> 

62、 由上述步聚依次調試、改進直至完成所有目標任務</p><p>  第九章 心得體會</p><p>  在一個多月的時間里我們終于完成了畢業(yè)設計——智能水塔控制器。這段時間我們雖然相當辛苦但收獲良多。許許多多的困難被我們克服,只因為我們是一個優(yōu)良的團隊有一個相當負責相當能干的指導老師,而在此期間學到的將使我受用終身。</p><p>  1、市場會因為競爭而使

63、商品變得極為精練和符合供求關系。</p><p>  在當初選擇畢業(yè)設計課題時我就瞄準了水塔控制器這種看似簡單的東西。在我國廣大農(nóng)村地區(qū)因為生活水平的提高農(nóng)民們再也不想沒天都去井里打水用了,他們非常希望擁有城里人一樣的自來水供水系統(tǒng)。于是由水井、潛水電泵、家用水塔、自動水位控制器組成的自動供水系統(tǒng)的市場前景變得相當可觀,而該系統(tǒng)的核心自動水位控制器又是其中最有利可圖的部分。我想以我現(xiàn)在學到的知識自己設計一個應該不

64、是太難的事。當我們四個志同道合的同學組合到一起時我們便開始行動了。為了牟利所做的設計首先要做的事便是市場調查。但出乎我們意料之外的是此時的市場上已經(jīng)充斥著各式各樣的水塔控制器了,最便宜的僅二十幾元。我們買回一個拆開一看它簡單得幾乎沒有任何電路,成本不超過十元,但它確有最基本的功能。簡單一算便知它的利潤超過100%,這使我們相當受鼓舞,但它超低的成本是我們無法超越的。正在我們一籌莫展之際老師指給我們一條明路:別人做低端我們可以做高端啊。沒

65、錯我們學了這么多電子知識為什么不做個功能強大的水位控制器呢?而此時我們還沒看到市場上有超過100元的產(chǎn)品。</p><p>  2、元器件的選擇就像做菜時的原料一樣,選得好你就成功了一大半。</p><p>  確定了目標后就馬不停蹄的開始設計工作。原始數(shù)據(jù)資料找齊了,元件的選擇是一個大難關,必盡我們實際操作的經(jīng)驗太少。雖然有老師的大力幫助但元件上的問題還是在之后的時間里造成了一些相當棘手

66、的問題幾乎讓我們推倒重來。</p><p>  3、程序的價值往往比硬件高。</p><p>  我們的作品是用單片機控制的,我自認為程序方面我還有拿得出手的地方便主動請纓承擔了下來。在編寫過程中我了解到實際應用中的程序和書上的習題根本是兩回事。書上的習題往往把所有的條件都告訴你了。而在實際中沒有人會告訴你將會發(fā)生什么但是所有的可能性你都得想到,要做到這點非常困難。生活經(jīng)驗的不足和邏輯思維

67、訓練不夠使我編寫出來的程序漏洞百出。在無數(shù)次修改和老師的幫助下我終于在硬件完成調試之前編寫出了調試用的軟件。這次程序的編寫中我體會到硬件是比較死板的只要能夠運行他就一定是好的,而軟件呢,它在沒有語法錯誤的情況下都能運行但卻不一定是好的甚至錯得更厲害。而且軟件還可以在一定程度上禰補硬件的不足,而硬件卻很難反過來禰補軟件,所以軟件往往比硬件值錢。</p><p><b>  4、包裝也很重要</b&g

68、t;</p><p>  在前期市場調查時我們只買了一個樣品,后來我們又拿到了另一個價值35元包裝很好看,可等我們拆開一看里面結構幾乎是一樣的??删推F了十幾元,這讓我從此很注重包裝。并且精心設計了我們作品的包裝,雖然并不是太好看但在思想上我已經(jīng)邁進了一大步。</p><p>  第十章 致 謝</p><p>  在論文即將完成之際,回顧緊張但又充實的學

69、習和開發(fā)過程,本人在此向所有關心我們及幫助我們的老師和同學們致以最真誠的感謝。</p><p>  在本次畢業(yè)設計中,我們從指導老師----xx老師,身上學到了很多東西。他認真負責的工作態(tài)度,嚴謹?shù)闹螌W精神和深厚的理論水平都使我們受益匪淺。他無論在理論上還是在實踐中,都給與我們很大的幫助,使我們得到很大的提高,這對于我以后的工作和學習都有一種巨大的幫助,在此感謝他耐心的輔導。在做畢業(yè)設計的整個過程中,xx老師都提

70、出了許多寶貴意見,沒有他的指導,我們就不能較好的完成課題設計的任務。</p><p>  另外,我們還要感謝在這幾年來對我們有所教導的老師和電子教研室所有老師。他們孜孜不倦的教誨不但讓我學到了很多知識,而且讓我掌握了學習的方法,更教會了我們做人處事的道理,在此表示感謝。同時,在產(chǎn)品設計、市場調查、制產(chǎn)品和廣告設計過程中還有的和同專業(yè)的同學也給了我們不少幫助,這里一并表示感謝。</p><p&g

71、t;  衷心的感謝我的指導老師(xx老師),還有電子教研室的各位老師對我設計所提的寶貴意見,并再次感謝各位老師對我三年來的栽培。謝謝!</p><p>  第 十一 章 參 考 文 獻</p><p>  《單片機原理及控制技術》…………………………… 李全利</p><p>  《模擬電子技術》……………………………………… 戴士弘</p>

72、<p>  《C語言程序設計》………………………………成奮華 路惠民</p><p>  《Keil Cx51 單片機高級語言編程與應用》 ……徐愛鈞 彭秀華</p><p>  課堂筆記、上機、課堂作業(yè)及教材等。</p><p>  網(wǎng)上資料、網(wǎng)上書庫內(nèi)的材料。第十二章 附 錄</p><p><b>  12

73、.1 源程序</b></p><p>  #include <reg52.h></p><p>  #define LED_LIGHT 0</p><p>  #define LED_OUT 1</p><p>  #define SPEAK_ON 0</p><p>  #define

74、 SPEAK_OFF 1</p><p>  #define W_MOTOR_START 0</p><p>  #define W_MOTOR_STOP 1</p><p>  /***********************************輸入輸出端口***************************/</p><p>  s

75、bit high_water_s=P25^; //上水位干璜管</p><p>  sbit mid_water_s=P2^6; //中水位干璜管</p><p>  sbit lower_water_s=P2^7; //下水位干璜管</p><p>  sbit speak=P2^

76、4; //蜂鳴器驅動端口</p><p>  sbit led_red=P1^3; //紅色指示燈端口</p><p>  sbit led_yellow=P1^4; //黃色指示燈端口</p><p>  sbit led_green= P1^5;

77、 //綠色指示燈端口</p><p>  sbit maintain_key=P1^0; //維護開關端口(第一個按鍵)</p><p>  bit flag_maintain=0;</p><p>  bit flag_maintain_stroken=0;</p><p> 

78、 sbit mode_key=P1^1; //模式鍵端口(第二個鍵)</p><p>  bit flag_mode=0;</p><p>  bit flag_mode_stroken;</p><p>  sbit function_key=P1^2; //功能鍵端口(第三個鍵)</p&g

79、t;<p>  bit flag_function=0;</p><p>  bit flag_func_stroken=0;</p><p>  sbit w_motor=P3^7; //電機驅動端口</p><p>  sfr data_seg_port=0x80; //數(shù)碼管段

80、碼驅動端口</p><p>  sfr data_wei_port=0xa0; //數(shù)碼管位碼驅動端口</p><p>  /***************************狀態(tài)表示位**************************************/</p><p>  bit high_up_pulse=0;

81、 //上水位上升沿</p><p>  bit high_down_pulse=0; //上水位下降沿</p><p>  bit mid_up_pulse=0; //中水位上升沿</p><p>  bit mid_down_pulse=0; //中水位下降沿</p&g

82、t;<p>  bit lower_up_pulse=0; //下水位上升沿</p><p>  bit lower_down_pulse=0; //下水位下降沿</p><p>  bit flag_start_t0=0; //定時器啟停標示 </p><

83、p>  bit flag_add_water=0; //加水標志 0為用水狀態(tài)、1為加水狀態(tài)</p><p>  bit flag_motor_error=0; //電機出錯或下水源缺水</p><p>  bit flag_erase_24c04 //24c04數(shù)據(jù)刪除標志</p><

84、p>  /*********************************基本處理數(shù)據(jù)*******************************/</p><p>  char code seg[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //定義數(shù)據(jù)段碼</p><p>  char code wei

85、[8]={0x7f,0x0bf,0x0df,0x0ef,0x0f7,0x0fb,0x0fd,0x0fe}; //P2.0為S1 定義數(shù)據(jù)位碼 </p><p>  //個位在wei[7]、高位在wei[0] </p><p>  int count_50ms=0; //50ms計時變量</p><p>  char water_point_status=0;

86、 //水塔水位狀態(tài)標示</p><p>  bit flag_250ms; //0.25ms閃爍標志</p><p>  char display_data[4]; //數(shù)碼管顯示數(shù)據(jù)數(shù)組</p><p>  char add_water_count=0;

87、 //加水次數(shù)</p><p>  char find_water_count=0; //查閱加水次數(shù)</p><p>  char lower_add_water_time=0; //下層加水時間分鐘</p><p>  char up_

88、add_water_time=0; //上層加水時間分鐘</p><p>  char add_water_time_second; //加水時間秒鐘</p><p>  char add_water_time_minute; //加水時

89、間分鐘</p><p>  char add_water_uptime=0; //加上層水時間</p><p>  char add_water_downtime=0; //加下層水時間</p><p>  char add_water_uptime_stor

90、age=0; //存儲加上層水時間</p><p>  char add_water_downtime_storage=0; //存儲加下層水時間</p><p>  char mod_status=0; //0為手動啟停方式 1為手動查閱上次加水時間(通過功能鍵執(zhí)行) </p><p&g

91、t;  char ram_write_24c04[4]; //24c04寫數(shù)組</p><p>  char ram_read_24c04[4]; //24c04讀數(shù)組 </p><p>  /*******************************延時函數(shù)************************************/</p>

92、<p>  void delay(int n)</p><p><b>  {</b></p><p><b>  int i;</b></p><p>  for(i=0;i<n;i++)</p><p><b>  ;</b></p><

93、;p><b>  }</b></p><p>  /***************************水位、按鍵掃描函數(shù)*******************************/</p><p>  void high_water_scan(void) //上水位檢測</p><p><b>  {&l

94、t;/b></p><p>  if(high_water_s=1)</p><p><b>  {</b></p><p>  delay(1000);</p><p>  if(high_water_s=0)</p><p>  high_down_pulse </p>&

95、lt;p><b>  }</b></p><p>  if(high_water_s=0)</p><p><b>  {</b></p><p>  delay(1000);</p><p>  if(high_water_s=1)</p><p>  high_up

96、_pulse </p><p><b>  }</b></p><p><b>  }</b></p><p>  void mid_water_scan(void) //中水位檢測</p><p><b>  {</b></p><p>

97、  if(mid_water_s=1)</p><p><b>  {</b></p><p>  delay(1000);</p><p>  if(mid_water_s=0)</p><p>  mid_down_pulse </p><p><b>  }</b>&l

98、t;/p><p>  if(mid_water_s=0)</p><p><b>  {</b></p><p>  delay(1000);</p><p>  if(mid_water_s=1)</p><p>  mid_up_pulse </p><p><b&g

99、t;  }</b></p><p><b>  }</b></p><p>  void lower_water_scan(void) //下水位檢測</p><p><b>  {</b></p><p>  if(lower_water_s=1)</p><

100、p><b>  {</b></p><p>  delay(1000);</p><p>  if(lower_water_s=0)</p><p>  lower_down_pulse </p><p><b>  }</b></p><p>  if(lower_w

101、ater_s=0)</p><p><b>  {</b></p><p>  delay(1000);</p><p>  if(lower_water_s=1)</p><p>  lower_up_pulse </p><p><b>  }</b></p>

102、<p><b>  }</b></p><p>  void mode_key_scan(void) //模式鍵掃描</p><p><b>  {</b></p><p>  if(mode_key==0)</p><p><b>  {</b>

103、</p><p>  delay(100);</p><p>  if(mode_key==0)</p><p>  flag_mode=1;</p><p><b>  }</b></p><p>  if(mode_key&&flag_mode)</p><

104、p>  flag_mode_stroken=1;</p><p><b>  }</b></p><p>  void function_key_scan(void) //功能鍵掃描</p><p><b>  {</b></p><p>  if(function_key=

105、=0)</p><p><b>  {</b></p><p>  delay(100);</p><p>  if(function_key==0)</p><p>  flag_function=1;</p><p><b>  }</b></p><

106、p>  if(flag_function&&function_key)</p><p>  flag_func_stroken=1;</p><p><b>  }</b></p><p>  void erase_24c04(void)</p><p><b>  {</b>

107、</p><p>  if(maintain_key==0&&mode_key==0&&function_key==0)</p><p><b>  {</b></p><p>  delay(1000)</p><p>  if(maintain_key==0&&mode

108、_key==0&&function_key==0)</p><p>  flag_erase_24c04=1; </p><p><b>  }</b></p><p><b>  }</b></p><p>  void key_scan(void)

109、 //按鍵掃描</p><p><b>  {</b></p><p>  mode_key_scan();</p><p>  function_key_scan();</p><p>  erase_24c04();</p><p>  if(maintain_key==0)

110、 //按下功能鍵</p><p><b>  {</b></p><p>  mode_key_scan(); //掃描模式鍵</p><p>  if(flag_mode_stroken)</p><p><b>  {</b></p><p&

111、gt;  flag_mode_stroken=0;</p><p>  mod_status++; //記錄模式狀態(tài)</p><p>  if(mod_status>2)mod_status=0;</p><p><b>  }</b></p><p>  if(mod_status

112、==0)</p><p><b>  {</b></p><p>  if(flag_func_stroken)</p><p><b>  {</b></p><p>  flag_func_stroken=0;</p><p>  flag_add_water=~flag

113、_add_water</p><p>  if(flag_add_water) //手動起動電機</p><p>  start_counter_timer();</p><p><b>  else</b></p><p>  stop_counter_timer();

114、//手動停止電機</p><p><b>  }</b></p><p><b>  }</b></p><p>  else if(mod_status==1)</p><p><b>  {</b></p><p>  if(flag_func_st

115、roken)</p><p><b>  {</b></p><p>  flag_func_stroken=0;</p><p>  find_water_count--;</p><p>  if(find_water_count<0)find_water_count=add_water_count; //修

116、改查詢指針</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else </b></p><p><b>  {</b></p><p><b>  ;</b

117、></p><p><b>  }</b></p><p>  if(flag_erase_24c04==1)</p><p>  clr_24c04(); //刪除24c04中有效數(shù)據(jù)</p><p><b>  }</b></p><p>&l

118、t;b>  }//if</b></p><p>  else //復位控制過程到正常監(jiān)控階段(非調整階段)</p><p><b>  {</b></p><p>  flag_mode_stroken=0; </p><p>  mod_status=0;

119、</p><p>  flag_func_stroken=0;</p><p>  flag_erase_24c04=0;</p><p><b>  }</b></p><p><b>  }</b></p><p>  /*************************

120、*******狀態(tài)掃描函數(shù)********************************/</p><p>  bit flag_add_water=0; //加水標志 0為用水狀態(tài)、1為加水狀態(tài)</p><p>  void status_scan(void)</p><p><b>  {</b></p&g

121、t;<p>  if(flag_add_water==0) //用水方式狀態(tài)掃描</p><p><b>  {</b></p><p>  if(high_down_pulse&&high_water_s==1) //上位警戒水位</p><p>

122、;  {water_point_status=1;high_down_pulse=0;}</p><p>  else if(high_up_pulse&&high_water_s==0) //上水位</p><p>  {water_point_status=2;high_up_pulse=0;}</p><p><b>  

溫馨提示

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

評論

0/150

提交評論