智能水塔水位控制器畢業(yè)設計論文_第1頁
智能水塔水位控制器畢業(yè)設計論文_第2頁
智能水塔水位控制器畢業(yè)設計論文_第3頁
智能水塔水位控制器畢業(yè)設計論文_第4頁
智能水塔水位控制器畢業(yè)設計論文_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、智能水塔水位控制器目 錄第一章 前言 2 第二章 功能說明,結合功能框圖 3第三章 使用操作說明 5第四章 原理圖分析主要部分工作原理 7第五章 PCB板制作 9第六章 主要芯片資料應用說明 11第七章 程序框圖及說明 15第八章 調試數據記錄表及調試故障現(xiàn)象及其解決方法 16第九章 心得體會 20第十章 致謝 22第十一章 參考文獻 23第十二章 附錄(源程序) 24第一章 前 言目前我國水資源已經相當的匱乏,如何節(jié)約用水也成為了電子愛好者設計制作的焦點?,F(xiàn)有的二級供水方式,既先用水泵從水井中抽到蓄水池中供用戶使用,要求蓄水池的水位必須保持一定的高度,還需要防止水的溢出??墒乾F(xiàn)在市售的都是傳

2、統(tǒng)的水位控制器,多以浮球式、觸點式為主,可靠性不好,有著無法改進的致命缺點,如:無水位顯示,無電機保護,可靠性不高,控制精度改進度不大,壽命不長相對于機械式水位控制器,電子式的水位控制器有著無可比擬的優(yōu)點:添加水位顯示電路、電機保護電路、強制性手動開、關機電路可以達到水位顯示、簡單的電機保護、水位自動控制,控制精度是傳統(tǒng)機械式水位控制器的幾何倍。本控制器采用了高效率、高穩(wěn)定性、低功耗的ATMEL80s51單片機,具有水位狀態(tài)顯示、抽水時間顯示、并有故障檢測功能。集高效、高精度、高穩(wěn)定性、低功耗、高性價比、良好的人機交流界面、操作簡便、顯示直觀以及低功耗等功能于一體的智能水塔水位控制器無疑將會家

3、用水位控制器極具競爭力的一匹黑馬。第二章 功能說明,結合功能框圖數碼管顯示 狀態(tài)指示燈 按鍵 控制部分潛水泵 報警裝置 水位開關 結構方框圖(-)本產品控制部分采用低電壓,高性能CMOS8位微處理器ATMEL的AT89S51,該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,功能十分強大并且價格低廉。水位開關采用三組帶環(huán)行磁鐵的密封在水管中的干簧管,磁鐵在水的浮力作用下吸合干簧管而使之導通,靈敏度很高。工作電壓: 220V 10%消耗功率: 0.1W(待機) 2W(工作)控制輸出功率:6.6K

4、W水位控制精度: 5cm短期使用環(huán)境溫度: 4075度短期使用環(huán)境濕度: 5%95%穩(wěn)定使用環(huán)境溫度: 20度50度長期使用環(huán)境濕度: 35%80%誤 差 : 1%2.1 各部分的設計:2.1.1 水位開關的設計: 三個水位開關由三個鋼簧管組成。分別安裝在水塔的高,中,低部位。最高是停止抽水,最低是啟動抽水,中間是起時間報警保護水泵作用。2.1.2 潛水泵的選擇: 水泵為單相水泵。潛水泵安裝在水源內部。2.1.3 設計按鍵部分:復位按鍵,維護按鍵,模式按鍵,功能按鍵,電源開關。 復位按鍵設計在內部。維護按鍵,模式按鍵,功能按鍵,電源開關按鍵都安裝在外部。 2.1.4 數碼管顯示設計: 抽水時間

5、和次數,由一個四位數碼管顯示2.1.5 報警器的設計: 以低電平觸發(fā)。當電機出現(xiàn)空轉,欠壓,失壓,水源缺水以及系統(tǒng)電路出現(xiàn)故障時,進行自動報警并且自動控制電機停止運轉。2.1.6 狀態(tài)指示燈設計: 當紅、黃、綠三燈同時亮起時顯示水位已滿,紅燈閃爍表示高水位警告顯示,紅燈亮表示高水位正常顯示,黃燈亮表示中水位顯示,綠燈亮表示低水位正常顯示,綠燈閃爍表示低水位警告,紅黃綠三燈同時閃爍表示水源缺水報警。2.1.7 控 制 部 分: 按下電源開關后,本產品開始自動檢測,若無故障則開始工作,檢測水塔內的水位,若水位過低則綠燈閃爍,自動啟動水泵開始抽水直到水滿,數碼管開始顯示抽水時間,水位過中間時黃燈會亮

6、,當水抽滿時三盞等全亮;如果水位正常則本產品進入待機狀態(tài)。第三章 使用操作說明3.1 產品操作簡介:三盞燈常亮高水位警告紅燈閃爍水滿紅燈常亮高水位正常黃燈常亮中水位顯示綠燈常亮低水位正常綠燈閃爍低水位警告三燈閃爍水源缺水報警 指示燈功能表(一)本產品為智能化水位自動控制器,接同電源后無須任何操作即可自動工作。如有必要也可通過按鍵在任何正常工作情況下強制開啟停止水泵。產品面板上有三個按鍵,左邊一個紅色帶鎖的維護鍵,中間一個綠色點觸式模式鍵、和右邊一個綠色點觸式按鍵,內部還有一個復位按鍵,按下復位鍵則恢復默認設置。四個數碼管分別顯示和記錄抽水次數、時間。當紅、黃、綠三燈同時亮起時顯示水位已滿,紅燈

7、閃爍表示高水位警告顯示,紅燈亮表示高水位正常顯示,黃燈亮表示中水位顯示,綠燈亮表示低水位正常顯示,綠燈閃爍表示低水位警告,紅黃綠三燈同時閃爍表示水源缺水報警。 操作規(guī)程:按下電源開關后,本產品開始自動檢測,若無故障則開始工作,檢測水塔內的水位,若水位過低則綠燈閃爍,自動啟動水泵開始抽水直到水滿,數碼管開始顯示抽水時間,水位過中間時黃燈會亮,當水抽滿時三盞等全亮;如果水位正常則本產品進入待機狀態(tài)。 用水時,數碼管全部顯示橫杠,三盞指示燈顯示相應的水位,燈的顯示情況與水位狀況如下所示:本產品的水位為自動控制,在水位過低時可自動抽水,水滿則自動停機。若想進入手動狀態(tài),在抽水狀態(tài)下按下紅色維護鍵,再按

8、下功能鍵就停止抽水,再按一次則再次啟動水泵抽水;在待機狀態(tài)下按下紅色維護鍵,再按一次功能鍵就啟動水泵抽水,再按一次則停止抽水。注意:在水已經滿了的時候,按啟動鍵無效,不能手動啟動水泵。在不抽水的用水期按下維護鍵,數碼管顯示00-00,可通過功能鍵可以翻閱以前的抽水次數和時間。當出現(xiàn)了一些程序錯誤不能正常工作的時候,按下內部的復位鍵則可以解決大部分的問題。按下復位鍵的同時再按下模式跟功能按鍵1S以上則清除所有數據,恢復出廠狀態(tài)。第四章 原理圖分析主要部分工作原理 4.1 電源部分采用了常用的三端穩(wěn)壓電路。通過變壓器將220v的市電降成12v的交流電,經過D1D4橋堆和2200UF電容進行整流、濾

9、波,通過0.1uf電容濾出高次諧波,得到了波形叫平穩(wěn)的13.2v左右的直流電,通過7812后得到了非常平穩(wěn)的12v直流電;再經過一次相同的穩(wěn)壓過程得到了紋波系數更小的5v直流電。整個電路的輸出功率也完全可以達到本廠品的需求。 原理圖(-)4.2 主面板: 主要是由TA89S51、24C04存儲芯片和一些外圍電路構成主要由小電流控制大電流。由三個水位開關分別裝在水塔的“上,中,下”三個水位。當水塔水位在底水位時,底水位傳感器信號輸入給TA89S51 P2.5-P2.7,然后TA89S51通過P3.7控制光耦來控制水泵抽水,直到水塔抽滿,水泵才停.在抽水的過程中4位數碼管顯抽水時間,和的抽水的次數

10、.4.3 TA89S51各引腳所對應外電路如下:P0.0P0.7數碼管驅動P1.0P1.2按鍵控制輸入端P1.3P1.5指示燈輸出端P1.6P1.7接24C204第5、6腳P2.0P2.4數碼管位選信號輸出P2.5P2.7傳感器信號輸入P3.7接光耦第2腳4.4 24C04各引腳功能:第1、2、3、4、7腳接地第8腳接電源4.5 光耦各引腳功能:第1腳5v電源第2腳P3.7第3腳懸空第4腳三極管Q5基極第5腳12v電源第6腳懸空第五章 PCB板制作5.1 主面板PCB: 5.2 控制與顯示PCB:5.3 電源部分:5.5 電路板的選用: 選用環(huán)氧樹脂板, 環(huán)氧樹脂與銅箔有極好的粘合力,同箔的附

11、著強度與工作溫度高,可以在260度的焊錫熔中不起泡。也可使用覆銅聚四氟乙烯玻璃布層壓板。不同的材料有不同的特點,由調試中可能多次更換元件,所以要考慮到銅箔的粘合力。5.6 布線注意事項:布線的好環(huán)直接影響著放大器的性能,不好的線路板,會使信號產生歧變,產生本底噪音生尖峰脈沖干擾等,為了盡避免上述影響,線路板在線出盡量做到:5.6.1 接照信號的傳輸路徑由小到大的順序在電路板上合路的布置各各元器的位置,盡量縮短各元器件之間的距離,以減少外部干擾的引入和不必要的干擾。5.6.2 在供電線路中,大電流通過的路徑應盡量度設計得實一些,以降低電源內阻,使電流能順利通過。5.6.3 在供電線路中,應盡量避

12、免大電流的印刷電路式導線交布置在小電流通路的中間或附近,以免造成對小電流的干擾。5.6.4 走線時,應盡量走大于90度直角的線以防止產生尖峰脈沖造成干擾。5.6.5 在設計電線時,盡量使星型供電方式,而且地的低盡量離濾波電的地端近。,5.6.6 大功率元件與小功率元件盡量分開布線。第六章 主要芯片資料應用說明6.1 AT89S51單片機:ATMEL公司生產的AT89S51單片機是采用高性能的表態(tài)8051設計,由先進工藝制造,并帶有非易性FLADSH程序存儲器。它是一種高性能、低功耗的8位CMOS微處理芯片,市場應用多。主要性能特點有: l 8KB FLASH ROM,可以擦除1000次以上,數

13、據保存10年。 l 256字節(jié)內部RAM。 l 電源控制模式時鐘可停止和恢復;空閑模式;掉電模式。 l 5個中斷源。 l 2個中斷優(yōu)先級。 l 4個8位I/O口。 l 全雙工增強型UART。 l 2個16位定時/計數器,T0、T1(標準80C51) l全靜態(tài)工作方式:024MHz。6.2 8051單片機的簡介:MCS-51單片機是Intel公司在1980年繼MCS-48系列8位單片機之后推出的高檔8位單片機。MCS-51單片機在性能和片內功能方面大大優(yōu)于MCS-48系列單片機。MCS-51的典列產品有:8031、8051、8751。8051內部有4KBROM,8751內部有4KBEPROM,8

14、031片內無ROM;除此之外,三者的內部結構完全相同。在此主要介紹8051單片機。8051單片機內部由CPU、4KBROM、256B有RAM、兩個16位的定時/計數器T0和T1,4個8位的I/O端口P0、P1、P2、P3、串行口等組成。其內部原理框圖如下:芯片內部結構圖(-)6.2.1 8位CPU由運算器、指令寄存器、定時和控制電路、振蕩器等電路組成。為整個單片機芯片提供控制邏輯時序信號,并完成各類算術、邏輯運算。6.2.2 存儲器電路:由4K字節(jié)的ROM或EPROM,以及程序地址寄存器等組成程序存儲器電路。用來存放程序。若內部存儲器容量不足,可擴展外部存儲器,程序存儲器最大容量可達64K字節(jié)

15、。由128個字節(jié)的RAM及RAM地址寄存器等組成數據存儲器電路,用以存放用戶數據。也可擴展外部數據存儲器,外擴最大容量可達64K字節(jié)。還有20幾個特殊功能寄存器(SFR)。包括累加器ACC、B寄存器、數據指針DPTR等,用以臨時存放中間運算結果或一些特殊用途等。6.2.2 輸入、輸出接口電路P0、P1、P2、P3口的鎖存器、驅動器及串行口控制等組成并行/串行接口電路,完成片機與外部設備之間的數據交換。兩個16位定時/計數電路構成定時器/計數器接口。中斷電路為5個中斷源提供中斷邏輯控制信號。AT89S51工作極限參數:工作溫度 儲藏溫度 任一腳對地電壓 1.0V to +7.0V最高工作電壓 6

16、.6直流輸出電流 25.0mA6.3 引腳說明:8051單片機的外形結構為40條引腳雙列直插式封裝,其引腳排列如圖:引腳說明圖(-)6.3.1 主電源引腳Uss(20腳):電路地電平。Ucc(40腳):正常運行和編程校驗時為+5V電源。6.3.2 外接晶振或外部振蕩器引腳XTAL1和XTAL2:接外部晶振電路。當采用外部振蕩電路時,XTAL1應當接地,XTAL2接外部振蕩信號的輸入。6.3.3 制引腳RST/Upd:RST是復位信號輸入端。Upd為備用電源輸入端,即Ucc掉電時,由此引腳提供備用電源,以保持內部RAM的信息。ALE/PROG:ALE是地址鎖存允許信號。PROG為編程脈沖輸入端,

17、即當選用8751單片機時,對片內程序存儲器進行編程時,由此引腳輸入編程脈沖。PSEN:訪問外部程序存儲器選通信號,低電平有效。Upp/EA:EA為訪問內部或外部程序存儲器選擇信號。為1時,訪問內部程序存儲器;當程序計數器PC超過片內程序存儲器地址時,將自動轉向外部程序存儲器繼續(xù)運行。為0時,則只能訪問外部程序存儲器。6.3.4 輸入/輸出口引腳P0口(3239):8位漏極開路雙向并行I/O端口。當訪問外部存儲器時,它是復用的地址和數據總路線;外部不擴展只做單片使用時,用做雙向I/O口;在進行片內部程序校驗期間,作指令代碼輸出,負載能力為8個LSTTL。P1口(18):8位準雙向并行I/O端口,

18、在片內程序校驗期間,作低8位地址用。負載能力為4個LSTTL。P2口(2128):8位準雙向并行I/O端口。當訪問外部存儲器時做高8位地址用;不做外部擴展時,則做為準雙向I/O口使用;在片內程序校驗時作高8位地址線負載能力為4個LSTTL。第七章 程序框圖及說明開始調用函數庫初始化源程序水位、按鍵掃描狀態(tài)掃描數碼管顯示指示燈狀態(tài)24C04讀寫操作啟停加水時間計時蜂鳴器報警電機運行監(jiān)控 程序流程圖(-)程序清單詳見附錄第八章 調試數據記錄表及調試故障現(xiàn)象及解決方法8.1 硬件調試: (一)、首先我們將硬件分為五個小模塊(電源模塊、主面板模塊、顯示模塊、按鍵和指示燈模塊、傳感器部件)進行腐蝕并焊接

19、好元件,將各個模塊都進行測試。8.1.1 電源模塊:說明:因為我們的繼電器需要12V進行驅動,所以在此我們所選用的變壓器為220V12V交流變壓器,整流元件選用7812跟7805穩(wěn)壓管。調試:它的輸出電壓就得到了我們所需要的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。立即取下變壓器。將電路進行檢測,在此我就對元件的引腳分別加以測試,看其是否短接。經過測試發(fā)現(xiàn)7812穩(wěn)壓管的散熱片與電容的接地腳短接,7805穩(wěn)壓管的散熱騙與電阻

20、的的輸入腳短接。我們將穩(wěn)壓管平放在電路板上,測試無短接的情況下再次接上變壓器。電源指示燈亮,用萬用表測試輸出電壓,分別為+12.05V、+4.98V、GND。電源部分正常工作。將測試數據交給PCB制作人,讓他修改好PCB,不讓散熱片再次有短接的情況。8.1.2 主面板模塊:說明:主面板選用AT89S51芯片進行控制,24C04芯片作為外部存儲擴充空間。AT89S51單片機控制光耦芯片的斷開與閉合來控制NPN三極管的導通,繼電器的驅動電壓是+12V直流,當三極管導通后繼電器的線圈就有了+12V的直流電壓。從而觸發(fā)繼電器的斷開與閉合。調試:主要測試對象是繼電器能否帶動大功率的水泵(750W),復位

21、電路是否正常。繼電器:將電源插在主面板上,接好水泵,寫入一個測試程序,將AT89S51的17腳置為低電平,接通電源后,查看繼電器是否閉合。得到預期的實驗結果,繼電器正常工作。#includesbit P37=a ;main()a=0;(在光耦芯片中,我們可以看到當給以P3.7低電平(GND)時,光耦芯片將會導通,三極管將會導通從而使繼電器閉合,水泵工作。)按下電源開關,查看水泵是否正常工作,繼電器能否承受起20mA的沖擊電流,測試后發(fā)現(xiàn),水泵正常工作。繼電器完好無損!主面板的繼電器部分正常。復位電路:接好電源后,測試單片AT89S51的RST腳的電壓,測試數據得出為0V。按下復位按鍵后進行測試

22、,RST腳的電壓為0.8V。依據復位電路的原理,按鍵復位不正常,檢測元件是否有電源(+12V、+5V)與地(GND)是否有短路,在線路的檢查中沒有出現(xiàn)短路情況,將原理圖進行分析,查看元件時候放置正確,結果檢查發(fā)現(xiàn)24C04芯片被接反,取下芯片再次測試,按下按鍵,RST腳為電壓為3.8V,依據單片機復位電路的原理,單片機以高電平復位。得出按鍵復位正常工作。8.1.3 顯示模塊: 說明:我們所使用的是共陽極四位八段數碼管,位接高電平(高電平是+3V以上,以數碼管的要求不能超過5V。)調試:首先用萬用表測試數碼管是否是損壞,將萬用表調至二極管測量檔位,將正表筆接位,接位1時,負表筆接段選a.b.c.

23、d.e.f.dp段,查看數碼管是否顯示各個段,測試后,位1正常,然后分別接位2、位3、位4結果顯示全部正常,數碼管無損壞。結合主面板測試,寫入一個測試程序,將AT89S51的P0、P2口置為低電平,接通電源后,查看數碼管顯示是否為滿格。得到預期的實驗結果,數碼管顯示為滿格。#includesbit P0=a ;sbit P2=b;main()a=0;b=0;8.1.4 按鍵和指示燈模塊:說明:當接上單片機時,若單片機的引腳沒有定義,其默認就為高電平。當指示燈引腳為低電平時指示燈亮。調試:首先檢查按鍵是否正常,沒按下時為斷開,按下按鍵則導通,測試結果,沒按下時其為閉合,經過檢測,發(fā)現(xiàn)電路板在敷銅

24、時將兩個腳接到了一起,解決方法,用刀片將外圍的銅全部刮掉,將方案交給PCB制作人,進行修改PCB。結合主面板進行測試按鍵,放入一個單片機,不寫入任何程序,按鍵的引腳默認為高電平,接入電源,用萬用表測試引腳,結果為高電平,當按下按鍵則為低電平,用萬用表進行測試是否為低電平,測試結果為低電平。測試指示燈時,寫入一個程序:將AT89S51的P1.3P1.5腳置為低電平,接通電源后,查看指示燈是否亮。得到預期的實驗結果,指示燈亮。#includesbit P13=a;sbit P14=b;sbit P15=c;main()a=0;b=0;c=0;8.1.5 傳感器部件:說明:我們使用的是鋼簧管,當鋼簧

25、管受到磁場力時就會閉合,沒有磁場力時則會斷開,我們在此使用三個鋼簧管作為傳感器部件,達到三個水位顯示效果。接出四根線,三根單片機引腳線,一根接地線。 調試:用磁芯去吸引鋼簧管,再用萬用表測試鋼簧管是否閉合,測試結果,閉合。傳感器部件一切正常。 接入主面板進行調試,放入一個沒有程序的單片機,接上電源,用磁芯吸引鋼簧管,用萬用表測試其相對應的單片機腳是否為低電平。測試結果,沒當吸引鋼簧管時其單片機相對應的管腳為低電平。得出結論,此鋼簧管進入面板調試一切正常。8.1.6 總結調試:組合全部面板:寫入一個測試程序,查看數碼管顯示、指示燈的亮、滅,按鍵功能是否正常。接入電源,運行該程序,查看其效果是否一

26、切正常,調試結果該組合部分全部正常,然后將所有有誤差的PCB修改好,腐蝕出電路板,焊接好元件,經過全部組合后的調試方法進行調試,其電路能夠順利的進行工作。8.2 軟件調試:8.2.1 水位按鍵掃描程序的調試。將high_water_scan()等函數的輸出項如high_up_pulse,high_down_pulse直接聯(lián)系到P0 口觀測P0口輸出電壓是否正確。8.2.2 狀態(tài)掃描函數的調試。該函數輸出項都為外部輸出,可以直接從數碼管等外部器件知函數否正常。由觀測結果進行調試。8.2.3 蜂鳴器報警函數的調試。蜂鳴器為4分之1秒響一次。時間周期 由計時器 0提供。由觀測結果進行調試。8.2.4

27、 指示燈狀態(tài)函數的調試。在自動運行模式時,由傳感器提信號,低水位綠燈亮,中水位黃燈亮,高水位紅燈亮由觀測結果進行調試。8.2.5 數碼管顯示函數的調試。在自動運行模式時,數碼管顯示當前加水時間,在查詢模式顯示歷史加水時間,在手動模式時顯示-。由觀測結果進行調試。8.2.6 24C04讀寫操作函數的調試。在計時10次之后,進入查詢模式,按下模式/功能進行上翻/下翻。由觀測結果進行調試。8.2.7 電機運行監(jiān)控函數的調試。在所有的調試完成之后,進入手動模式,進行啟動/停止操作觀察繼電器是否工作。進入自動模式,移動干簧管觀察繼電器是否與設計思路工作方式相同。 由上述步聚依次調試、改進直至完成所有目標

28、任務第九章 心得體會在一個多月的時間里我們終于完成了畢業(yè)設計智能水塔控制器。這段時間我們雖然相當辛苦但收獲良多。許許多多的困難被我們克服,只因為我們是一個優(yōu)良的團隊有一個相當負責相當能干的指導老師,而在此期間學到的將使我受用終身。1、市場會因為競爭而使商品變得極為精練和符合供求關系。在當初選擇畢業(yè)設計課題時我就瞄準了水塔控制器這種看似簡單的東西。在我國廣大農村地區(qū)因為生活水平的提高農民們再也不想沒天都去井里打水用了,他們非常希望擁有城里人一樣的自來水供水系統(tǒng)。于是由水井、潛水電泵、家用水塔、自動水位控制器組成的自動供水系統(tǒng)的市場前景變得相當可觀,而該系統(tǒng)的核心自動水位控制器又是其中最有利可圖的

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

30、件的選擇就像做菜時的原料一樣,選得好你就成功了一大半。確定了目標后就馬不停蹄的開始設計工作。原始數據資料找齊了,元件的選擇是一個大難關,必盡我們實際操作的經驗太少。雖然有老師的大力幫助但元件上的問題還是在之后的時間里造成了一些相當棘手的問題幾乎讓我們推倒重來。3、程序的價值往往比硬件高。我們的作品是用單片機控制的,我自認為程序方面我還有拿得出手的地方便主動請纓承擔了下來。在編寫過程中我了解到實際應用中的程序和書上的習題根本是兩回事。書上的習題往往把所有的條件都告訴你了。而在實際中沒有人會告訴你將會發(fā)生什么但是所有的可能性你都得想到,要做到這點非常困難。生活經驗的不足和邏輯思維訓練不夠使我編寫出

31、來的程序漏洞百出。在無數次修改和老師的幫助下我終于在硬件完成調試之前編寫出了調試用的軟件。這次程序的編寫中我體會到硬件是比較死板的只要能夠運行他就一定是好的,而軟件呢,它在沒有語法錯誤的情況下都能運行但卻不一定是好的甚至錯得更厲害。而且軟件還可以在一定程度上禰補硬件的不足,而硬件卻很難反過來禰補軟件,所以軟件往往比硬件值錢。4、包裝也很重要 在前期市場調查時我們只買了一個樣品,后來我們又拿到了另一個價值35元包裝很好看,可等我們拆開一看里面結構幾乎是一樣的??删推F了十幾元,這讓我從此很注重包裝。并且精心設計了我們作品的包裝,雖然并不是太好看但在思想上我已經邁進了一大步。第 十一 章 參 考

32、 文 獻單片機原理及控制技術 李全利模擬電子技術 戴士弘 C語言程序設計成奮華 路惠民 Keil Cx51 單片機高級語言編程與應用 徐愛鈞 彭秀華 課堂筆記、上機、課堂作業(yè)及教材等。 網上資料、網上書庫內的材料。第十二章 附 錄12.1 源程序#include #define LED_LIGHT 0#define LED_OUT 1#define SPEAK_ON 0#define SPEAK_OFF 1#define W_MOTOR_START 0#define W_MOTOR_STOP 1/*輸入輸出端口*/sbit high_water_s=P25; /上水位干璜管sbit mid_w

33、ater_s=P26; /中水位干璜管sbit lower_water_s=P27; /下水位干璜管sbit speak=P24; /蜂鳴器驅動端口sbit led_red=P13; /紅色指示燈端口sbit led_yellow=P14; /黃色指示燈端口sbit led_green= P15; /綠色指示燈端口sbit maintain_key=P10; /維護開關端口(第一個按鍵)bit flag_maintain=0;bit flag_maintain_stroken=0;sbit mode_key=P11; /模式鍵端口(第二個鍵)bit flag_mode=0;bit flag_m

34、ode_stroken;sbit function_key=P12; /功能鍵端口(第三個鍵)bit flag_function=0;bit flag_func_stroken=0;sbit w_motor=P37; /電機驅動端口sfr data_seg_port=0x80; /數碼管段碼驅動端口sfr data_wei_port=0xa0; /數碼管位碼驅動端口/*狀態(tài)表示位*/bit high_up_pulse=0; /上水位上升沿bit high_down_pulse=0; /上水位下降沿bit mid_up_pulse=0; /中水位上升沿bit mid_down_pulse=0;

35、/中水位下降沿bit lower_up_pulse=0; /下水位上升沿bit lower_down_pulse=0; /下水位下降沿bit flag_start_t0=0; /定時器啟停標示 bit flag_add_water=0; /加水標志 0為用水狀態(tài)、1為加水狀態(tài)bit flag_motor_error=0; /電機出錯或下水源缺水bit flag_erase_24c04 /24c04數據刪除標志 /*基本處理數據*/char code seg10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; /定義數據段碼char code

36、 wei8=0x7f,0x0bf,0x0df,0x0ef,0x0f7,0x0fb,0x0fd,0x0fe; /P2.0為S1 定義數據位碼 /個位在wei7、高位在wei0 int count_50ms=0; /50ms計時變量char water_point_status=0; /水塔水位狀態(tài)標示bit flag_250ms; /0.25ms閃爍標志char display_data4; /數碼管顯示數據數組char add_water_count=0; /加水次數char find_water_count=0; /查閱加水次數char lower_add_water_time=0; /下層

37、加水時間分鐘char up_add_water_time=0; /上層加水時間分鐘char add_water_time_second; /加水時間秒鐘char add_water_time_minute; /加水時間分鐘char add_water_uptime=0; /加上層水時間char add_water_downtime=0; /加下層水時間char add_water_uptime_storage=0; /存儲加上層水時間char add_water_downtime_storage=0; /存儲加下層水時間char mod_status=0; /0為手動啟停方式 1為手動查閱上次

38、加水時間(通過功能鍵執(zhí)行) char ram_write_24c044; /24c04寫數組char ram_read_24c044; /24c04讀數組 /*延時函數*/void delay(int n) int i; for(i=0;i2)mod_status=0; if(mod_status=0) if(flag_func_stroken) flag_func_stroken=0;flag_add_water=flag_add_waterif(flag_add_water) /手動起動電機start_counter_timer();elsestop_counter_timer(); /手

39、動停止電機 else if(mod_status=1) if(flag_func_stroken) flag_func_stroken=0;find_water_count-;if(find_water_count0)find_water_count=add_water_count; /修改查詢指針 else ; if(flag_erase_24c04=1)clr_24c04(); /刪除24c04中有效數據 /ifelse /復位控制過程到正常監(jiān)控階段(非調整階段) flag_mode_stroken=0; mod_status=0;flag_func_stroken=0;flag_eras

40、e_24c04=0; /*狀態(tài)掃描函數*/bit flag_add_water=0; /加水標志 0為用水狀態(tài)、1為加水狀態(tài)void status_scan(void)if(flag_add_water=0) /用水方式狀態(tài)掃描 if(high_down_pulse&high_water_s=1) /上位警戒水位water_point_status=1;high_down_pulse=0;else if(high_up_pulse&high_water_s=0) /上水位water_point_status=2;high_up_pulse=0; else if(mid_down_pulse&m

41、id_water_s=1) /中水位water_point_status=3;mid_down_pulse=0;elseif(mid_up_pulse&mid_water_s=0) /下水位water_point_status=4;mid_up_pulse=0;else if(lower_down_pulse&lower_water_s=1) /下位警告水位water_point_status=5;lower_down_pulse=0;else if(lower_up_pulse&lower_water_s=0) /水塔嚴重缺水狀態(tài)water_point_status=6;lower_up_p

42、ulse=0; start_counter_timer();/自動啟動電機elseif(high_up_pulse&high_water_s=1)water_point_status=0;high_up_pulse=0; else ; else /加水方式狀態(tài)掃描 if(lower_down_pulse&lower_water_s=0)water_point_status=7;lower_down_pulse=0;else if(lower_up_pulse&lower_water_s=1)water_point_status=8;lower_up_pulse=0;else if(mid_do

43、wn_pulse&mid_water_s=0)water_point_status=9;mid_down_pulse=0;else if(mid_up_status&mid_water_s=1)water_point_status=10;mid_up_pulse=0;else if(high_down_pulse&high_water_s=0)water_point_status=11;high_down_pulse=0;else if(high_up_pulse&high_water_s=1)water_point_status=12;high_up_pulse=0;stop_counter_timer();/自動停止電機else ; /*蜂鳴器報警函數*/void warn_speak(void)if(flag_250ms)speak=SPEAK_ON;elsespe

溫馨提示

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

評論

0/150

提交評論