久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 10874|回復: 0
收起左側

基于單片機的液位控制系統設計與實現論文

[復制鏈接]
ID:273739 發表于 2018-1-9 14:10 | 顯示全部樓層 |閱讀模式
XX學院
單片機系統設計三級項目
設計說明書
(2011/2012學年第二學期)
      題    目 :基于單片機的水位檢測報警系統_
專業班級 :   XXXXXXXX            
學生姓名 :       XXX XX         
學    號:      XXXXX            
指導教師 :XXXXXXXXXXXXXXXXXXX     
           XXXXXXXXXXXXXXXXXX      
設計周數 :    XXXXXXXXX           
設計成績 :                     
           XXXX年XX月XX日
XX學院
單片機系統設計  三級項目任務書
一、題目: 基于單片機基于單片機的水位檢測報警系統設計與實現  
二、參與項目班級:            XXXXXXXXXXXXXX                 
三、項目起止時間:         XXXXXXXXXXXXXXXXXXXXX               
四、原始數據及主要任務:
    原始數據:水位傳感器;51單片機;揚聲器。
主要任務:⑴根據技術要求和現有開發環境,分析設計題目;⑵設計系統實現的方案;⑶設計并繪制電路原理圖;⑷畫出功能模塊的程序流程圖;⑸使用匯編語言(或C語言)編寫實現程序;⑹結合硬件調試、修改并完善程序;⑺編寫項目報告。
五、技術要求:
⑴利用單片機及揚聲器、水位傳感器等器件設計;
⑵將探測到的水位變化信號轉換為電壓信號,經調理電路整形處理為TTL電平送入單片機;
⑶單片機對送入的信號進行數據處理,在LED或LCD上進行水位顯示,超出水位警戒線時發出報警提示。
學    生(簽字):                         系 主 任(簽字):              
指導教師(簽字):                         院 長 (簽字):               
目錄
1.項目設計要求與任務        3
2.項目設計正文        3
    2.1 課題背景及研究意義分析        3
    2.2 課題現狀        4
    2.3 設計思路及方案        4
        2.3.1 水位傳感方式的選擇        4
        2.3.2 水位傳感器的特點及應用        5
    2.4系統的組成        6
        2.4.1系統工作原理        6
        2.4.2穩壓電路        6
        2.4.3水位顯示電路        7
        2.4.4振蕩電路和復位電路        8
        2.4.5自動報警電路        8
3.水位檢測系統的整體電路仿真圖        9
3.1硬件連接實物圖        9
4. 各種水位下的仿真圖        10
    4.1 高水位狀態下仿真圖        10
4.2 低水位狀態下仿真圖        10
5. 通信單元硬件設計        11
6.上位機顯示單元        11
6.1上位機接受部分窗體控件        12
7. 項目設計總結        14
8. 參考文獻        15
附錄1        16
1設計要求與任務
設計要求:⑴利用單片機及揚聲器、水位傳感器等器件設計;⑵將探測到的水位變化信號轉換為電壓信號,經調理電路整形處理為TTL電平送入單片機;⑶單片機對送入的信號進行數據處理,在LED或LCD上進行水位顯示,超出水位警戒線時發出報警提示。
原始數據:水位傳感器;51單片機;揚聲器。
主要任務:⑴根據技術要求和現有開發環境,分析設計題目;⑵設計系統實現的方案;⑶設計并繪制電路原理圖;⑷畫出功能模塊的程序流程圖;⑸使用匯編語言(或C語言)編寫實現程序;⑹結合硬件調試、修改并完善程序;⑺編寫項目報告。
2  項目設計正文
2.1 課題背景及研究意義分析:
在工農業生產中,常常需要測量液體液位。隨著國家工業的迅速發展,液位測量技術被廣泛應用到石油、化工、醫藥、食品等各行各業中。低溫液體(液氧、液氮、液氬、液化天然氣及液體二氧化碳等)得到廣泛的應用,作為貯存低溫液體的容器要保證能承受其載荷;在發電廠、煉鋼廠中,保持正常的鍋爐汽包水位、除氧器水位、汽輪機凝氣器水位、高、低壓加熱器水位等,是設備安全運行的保證;在教學與科學研究中,也經常碰到需要進行液位控制的實驗裝置。
本設計是利用STC89C52單片機設計一種水位控制系統。主要是基于單片機的硬件設計以及程序設計, 包括測量電路部分、鍵盤輸入控制部分、液位實時數顯輸出部分以及液位控制部分,還在此基礎上添加報警器。本設計只是概念性設計了電路部分,并不涉及具體的數值設定,經過了實際應用檢測。
該系統實現了水位監測,水位控制,水位顯示,故障報警功能。在設計中主要采用了傳感技術、單片機技術、弱電控制強電技術、C語言編程等技術。本文還講述了水位控制系統工作的基本原理,介紹了電路接口原理圖,給出了相應了設計流程圖和C語言程序。
本文主要是為了更多得了解單片機,掌握單片機的組成部分和控制原理,最終達到設計出“單片機水位控制系統的”的目的。實驗證明,單片機控制的水位控制系統的硬件電路簡單,軟件功能完善,控制系統可靠,充分發揮了單片機的性能,可以大大的提高單片機的開發效率。
2.2  課題現狀
目前,市面上進行液位測量的儀表種類繁多,但是同時具有測量、監控、數據記錄及處理的液位測量裝置并不多。在某些工業控制系統中,數據的測量這一基本功能已不能滿足現代工業的要求,往往需要對大批數據進行記錄,對其進行后期處理分析,實現差錯控制、工藝改善、資源優化等一系列工作。為了獲得大批量的數據,得到可靠的分析資料,往往需要長期、多網點的監控記錄。在液位測量這一領域中,如江河湖海、城市用水等方面,大量數據長時間,多網點的采集記錄分析具有普遍的意義。液位的變化分析,有助于人們進一步對自然環境、天氣變化甚至是災害預警提供可靠的支持。
單片機是一種集成電路芯片,是采用超大規模集成電路技術把具有數據處理能力的中央處理器CPU隨即存儲器RAM,只讀存儲器ROM、多種I/O口和中斷系統、定時器、計時器等功能集成到一塊硅片上構成的一個小而完善的計算機系統。
中央處理器CPU是單片微型計算機指揮、執行中心,由它讀程序并執行指令。CPU功能,是以不同方式來執行各種指令。有的指令涉及到各個寄存器之間的關系;有的指令涉及到單片機核心電路內部各功能部件的關系;有的則與外部器件發生關系?偟膩碚fCPU是通過復雜的時序電路來完成不同的指令功能的。
對于本設計單片機結構簡單實用性強,功能齊全,技術先進,使實現這設計不難實現。同時,C語言是單片機的重要“組成”,如果能掌握好C語言編程,這將很大程度上提高了開發效率。
在設計過程中我們采用了軟硬件雙結合的方式,軟件設計的方法簡化了硬件的要求,為設計創造了條件。單片機采用的STC89C52的單片機。
2.3 設計思路及方案
2.3.1水位傳感方式的選擇
簡單的控制方式有浮標式、電極式等,這些控制方式的優點是結構簡單,成本低廉。但有很多問題存在,比如是精度不高,不能進行數值顯示,另外很容易引起誤查,且只能單獨控制,與計算機進行通信連接比較難實現,很難快速準確傳輸信號,所以不利于水位信號的傳送。
2.3.2水位傳感器的特點及應用
水位浮球開關特點:1小型浮球液位開關是一種結構簡單,使用方便的液位控制零件,它設有復雜的電路,不會受到干擾,只要材質選擇正確,任何性質液體、壓力、溫度皆可使用。液體介質性質與浮球關系:2液體比重不同時,浮球的動作位置將會有所變動,一般SG比水小時,浮球浸在液體中部分將相對增多。3浮球開關產品參考比重以水(SG=1)所以使用時在選用浮球時須考慮液位的比重SG,一定大于浮球規格所標示,否則,浮球開關無法浮動。4粘度高不會干涸的液體,一般應選用外徑較大的不銹鋼浮球。5浮球開關是使用磁鐵來感應磁簧開關,因此被測液位應無鐵屑,否則鐵屑粘在浮球上面浮球浮不起來會影響浮球隊開關的動作。用途:不銹鋼浮球液位開關專門用于各種中小型常壓和受壓儲液罐的液位檢測、信號遠傳、開關報警,可適用于各種衛生、環保、有毒、帶濃酸堿腐蝕性強介液體使用。
     
圖1 水位浮球式傳感器及工作原理
浮子開關是利用開關上面磁性浮子隨液位升或降,使開關檢測管內設定位置的干簧管芯片動作,發出接點開(關)轉換信號。
動作原理:在密閉的非導磁性管內安裝有一個或多個干簧管,然后將此管穿過一個或多個中空且內部有環形磁鐵的浮球,液體的上升或下降將帶動浮球一起上下移動,從而使該非導磁性管內的干簧管產生吸合或斷開的動作,從而輸出一個開關信號,也叫做無源觸點信號。
應用范圍:
我們常見的浮子開關一般水箱里面控制水位,用水箱高液位或者低液位報警作用。還可以用在飲水機、空調、加濕器、霧化器、空壓機、凈水器、水箱、熱水爐、水池、油箱、油罐、壓力罐、一些有酸堿液體的大小型設備。
適用范圍廣、安裝形式多樣側裝、直裝、頂部和底部安裝、螺紋法蘭安裝達到多點液位報警效果!
無源器件,性能穩定可靠,安全方便,抗干擾能力強,結構簡單,安裝方便,維護費用低。
2.4系統的組成
水位控制系統由電源電路、水位探測傳感電路、穩壓電路、繼電器控制電機加水電路、水位顯示電路、單片機STC89C52組成。系統組成的方框圖如下:
圖2 系統組成方框圖
2.4.1系統工作原理
當水箱里的水位在低水位的時候傳感器傳給穩壓電路一個低電平,低電平通過穩壓電路里的NPN三極管、電容、電阻轉換成高電平。單片機收到高電平,表示水箱里沒有水了需要系統開始運作,給水箱加水,這時單片機通知紅燈緩慢閃爍,蜂鳴器報警。水位達到高水位時傳感器同時傳送給單片機一個低電平,紅燈閃爍頻率加快,蜂鳴器報警頻率加快。
同理,水位從高水位下降時,水位離開高水位線時,高水位傳感器探頭與電源斷開,傳感器輸出高電平給單片機。當水位下降到蓄水位時,紅燈閃爍變慢。2.4.2穩壓電路
      
圖3 穩壓電路圖
本電路的主要作用是使從傳感器輸入的電平能夠穩定的輸入到單片機中,,是由三極管9013、兩個電阻、和一個無極性電容組成。
如果我們不使用此穩壓電路也能實現我們的設計目的,但有時會產生水位誤判和不穩定現象,所以我認為此電路是不可缺少的。
2.4.3水位顯示電路
圖4 水位顯示電路圖
本電路采用不不同顏色的LED作為顯示裝置,有單片機P2.0、P2.3口控制進行水位顯示。紅燈閃爍緩慢代表水位在低水位。紅燈閃爍急促表示在高水位以上。
此電路采用的是共陽極的,所以只有單片機給發光二極管為低電平的時候才能是發光二極管點亮。R1, R4,為上拉電阻起限壓控流作用。
LED(Light Emitting Diode),發光二極管,是一種固態的半導體器件,它可以直接把電轉化為光。LED的心臟是一個半導體的晶片,晶片的一端附著LED燈株在一個支架上,一端是負極,另一端連接電源的正極,使整個晶片被環氧樹脂封裝起來。半導體晶片由兩部分組成,一部分是P型半導體,在它里面空穴占主導地位,另一端是N型半導體,在這邊主要是電子。但這兩種半導體連接起來的時候,它們之間就形成一個“P-N結”。當電流通過導線作用于這個晶片的時候,電子就會被推向P區,在P區里電子跟空穴復合,然后就會以光子的形式發出能量,這就是LED發光的原理。而光的波長決定光的顏色,是由形成P-N結材料決定的。
2.4.4振蕩電路和復位電路
圖5 振蕩電路和復位電路圖
振蕩電路和復位電路是單片機不可缺少的部分,是單片機的重要組成,它們集成在單片機里,對于單片機穩定工作有至關重要的作用。并且可以延長它的使用壽命。
2.4.5自動報警電路
下列二種情況發生系統報警:
1當水位達到上限極限水位時報警,水位到達上限極限水位時系統發出報警;
2當水位達到下限極限水位時報警,水位到達下限極限水位時系統發出報警;
          圖6 自動報警電路的接線圖
3水位檢測系統的整體電路仿真圖
圖7 水位控制系統仿真圖
3.1實物圖
圖8 實物圖
4 各種水位情況下的仿真圖
4.1 高水位狀態
加水水到達在蓄水位時:高水位警示燈紅燈閃爍急促,蜂鳴器快頻率鳴叫。仿真圖如下所示:
圖9高水位仿真圖
4.2 低水位狀態
水位減少到低水位時:低水位警示紅燈閃爍,蜂鳴器低頻率鳴叫。仿真圖如下所示:
圖10 低水位仿真圖
5通信單元硬件設計
MAX485僅有8個管腳,電路設計比較簡單。
RO引腳接到單片機串口接收引腳RXD(P3.0),DI引腳接到單片機串口發送引腳TXD(P3.1)。由于MAX485為半雙工通信方式,不能同時發送和接收數據,只能通過控制RE和DE引腳的狀態來進行發送數據和接收數據的轉換。為了節省單片機I/O口資源,將RE和DE引腳連在一起,輸入低電平時,MAX485處于接收狀態;輸入高電平時,其處于發送數據狀態。定義RE和DE連接在一起的網絡標號為E,接入單片機P1口,用于發送與接收的轉換。A,B端為發送接收差分信號端,一般需在A,B端之間加匹配電阻,匹配電阻為120Ω。
硬件電路如圖3-13:
圖12 串行通信模塊電路圖
6上位機顯示單元
上位機編程與下位機結合對應,下位機發“0”代表當前水位為高水位,下位機發“1” 代表當前水位為低水位。
水位變化當高水位發“0”時上位機接受到對應ASCII碼為48,此時上位機顯示“警戒!當前水位為高水位!”。
水位變化當高水位發“1”時上位機接受到對應ASCII碼為49,此時上位機顯示“警戒!當前水位太低!”。
圖13 上位機程序代碼
6.1上位機接受部分控件窗體
圖14 水位檢測報警系統窗體
7設計總結
通過這次項目設計,上位機和下位機的編程中我對軟件開發有了進步的了解,把理論知識應用于實驗中。也讓我重新熟悉了C語言和C#語言的相關內容,加深了對C語言、C#語言知識的深化和用途的理解。在這次的項目設計過程中,我發現自己的基礎知識和應用能力都很差。剛接過項目,按照設計步驟走的時候,在很多都卡住了,原理的知識忘記了很多,以至于在設計開始時必須得先復習一下相關的基礎知識。
在老師和同學的幫助下我順利的完成了這次項目設計,對于我來說,收獲最大的是方法和能力;那些分析和解決問題的能力。在整個項目設計的過程中,我發現我們學生在經驗方面十分缺乏,空有理論知識,沒有理性的知識;有些東西可能與實際脫節?傮w來說,我覺得像課程設計這種類型的作業對我們的幫助還是很大的,它需要我們將學過的相關知識系統地聯系起來,從中暴露出自身的不足,以待改進!
本次的項目設計,培養了我們綜合應用設計項目及其他項目的理論知識和理論聯系實際,應用生產實際知識解決工程實際問題的能力;在設計的過程中還培養出了我們的團隊精神,同學們共同協作,解決了許多個人無法解決的問題;在今后的學習過程中我們會更加努力和團結。
我決定認真總結這次項目設計的經驗,以及學習到的知識,來更加的充實自己的頭腦和完善自己的知識結構。另外,我也在這次設計中看到了自己的許多不足之處,通過項目設計,發現自己在理論研究和實際工作能力等方面都得到了提高,同時在老師的指導和課題組同學的共同幫助下,及時總結研究成果,這些無疑會對我今后的工作和學習帶來很大的幫助?傊,這次的課程設計的順利完成使我受益匪淺。
要做好一個項目的設計,就必須做到:在設計程序之前,對所用單片機的內部結構有一個系統的了解,知道該單片機有哪些資源;要有一個清晰的思路和一個完整的軟件流程圖;在設計程序時,不能妄想一次將整個程序設計好,反復修改、不斷改進是程序設計的必經之路;要養成注釋程序的好習慣,這樣為資料的保留和交流提供了方便;在設計中遇到的問題要記錄,以免下次遇到同樣的問題。
在這次的項目設計中,我真正的意識到,在以后的學習中,要理論聯系實際,把我們所學的理論知識用到實際當中,學習單片機更是如此,程序只有在經常寫與讀的過程中才能提高,這就是這次項目設計的最大收獲。
8 參考文獻
[1]王祁. 智能儀器設計基礎[M]. 北京:機械工業出版社,2009.
[2]張毅剛,彭喜元,董繼成.單片機原理及應用[M].北京:高等教育出版社,2003.
[3]蔡黎.一種基于單片機的水位控制系統設計[J].儀器儀表用戶,2007,14(4):44-45.
[4]李書旗,沈金榮.液位測量傳感器系統的設計與實現[J].計算機測量與控制,2009,17(11):2131-2133.
[5]王洪君.單片機原理及應用[M]. 濟南:山東大學出版社,2009
[6]閻石. 數字電子技術基礎[M]. 北京:高等教育出版社,2006.
[7]劉得營,張志霞等.單片機原理及接口技術[M].中國水利水電出版社 2006.3-4
[8]劉剛 《單片機原理及應用》 中國林業出版社
評    語
   
成    績
   
   
指導教師
(簽字)
   
            年    月    日
附錄1
上位機程序設計
水位檢測報警系統C#語言程序如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;
using System.Threading;
namespace 水位檢測報警系統上位機控制
{
    public partial class Form1 : Form
    {
        SerialPort port;
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
           String[] PortNames = SerialPort.GetPortNames();
            comboBoxPort.Items.Clear();
            if (PortNames.Length > 0)
            {
                for (Int32 i = 0; i < PortNames.Length; i++)
                {
           comboBoxPort.Items.Add(PortNames);
                }
                comboBoxPort.SelectedIndex = 0;
                comboBoxBaudRate.SelectedIndex = 1;
                comboBoxData.SelectedIndex = 0;
                comboBoxStop.SelectedIndex = 1;
            }
            else
            {comboBoxPort.Text = "無串口"; }
            btnClosePort.Enabled = false;
        }
        public delegate void showInfo(string str);
        byte[] cmd = new byte[2];
        Thread t;
        private void btnOpenPort_Click(object sender, EventArgs e)
        {
            port = new SerialPort();
            port.PortName = comboBoxPort.SelectedItem.ToString();
            port.BaudRate = Convert.ToInt32(comboBoxBaudRate.SelectedItem);
            port.Parity = Parity.None;
            port.DataBits = Convert.ToInt16(comboBoxData.SelectedItem);
            port.StopBits = StopBits.One;
            if (port.IsOpen == false)
            {
                try
                {
                    port.Open();
                    t = new Thread(new ThreadStart(RecieveData));
                    t.Start();
                    listBox1.Items.Add("串口打開成功!");
                    btnClosePort.Enabled = true;
                    btnOpenPort.Enabled = false;
                    comboBoxBaudRate.Enabled = false;
                    comboBoxData.Enabled = false;
                    comboBoxPort.Enabled = false;
                    comboBoxStop.Enabled = false;
                }
                catch {
                    listBox1.Items.Add("串口打開失敗");
                }
            }
        }
        private void RecieveData()
        {
            while (true)
            {
                int str;
                float st;
                string info;
                str = port.ReadByte();
                switch (str)
                {
                    case 48:
                        info = "警戒!當前水位為高水位!";
                        break;
                    case 49:
                        info = "警戒!當前水位太低!";
                        break;
                    default:
                        info = "接收數據失敗,無法知道當前水位!";
                        break;
                }
                showinfo(info);
            }
        }
        public void showinfo(string str)
        {
            if (listBox1.InvokeRequired)
            {
                showInfo d = new showInfo(showinfo);
                listBox1.Invoke(d, str);
            }
            else
            {
                listBox1.Items.Add(str);
                listBox1.SelectedIndex = listBox1.Items.Count - 1;
            }
        }
        private void btnClosePort_Click(object sender, EventArgs e)
        {
            if(t.IsAlive)
            {
                t.Abort();                     
            }
            try
            {
                port.Close();
                listBox1.Items.Add("串口關閉成功!");
                btnOpenPort.Enabled = true;
                comboBoxBaudRate.Enabled = true;
                comboBoxData.Enabled = true;
                comboBoxPort.Enabled = true;
                comboBoxStop.Enabled = true;
                btnClosePort.Enabled = false;
            }
            catch {
                listBox1.Items.Add("串口關閉失敗!");
            }
        }
        private void btnOpen_Click(object sender, EventArgs e)
        {
        }
        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
        }
        private void comboBoxStop_SelectedIndexChanged(object sender, EventArgs e)
        {
        }
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (t.IsAlive)
            {
                t.Abort();
            }
            try
            {
                port.Close();
                listBox1.Items.Add("串口關閉成功!");
            }
            catch
            {
                listBox1.Items.Add("串口關閉失敗!");
            }
        }
        private void button1_Click(object sender, EventArgs e)
        {
            listBox1.Items.Clear();
        }
        }
    }


回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲综合一区二区三区 | 颜色网站在线观看 | 少妇诱惑av | 久久er99热精品一区二区 | 亚洲成人在线免费 | 成av人电影在线 | 亚洲91 | 午夜视频网站 | 在线播放中文字幕 | 天天干天天插 | 国产精品乱码一二三区的特点 | 久久精品国产免费 | 四虎影院在线播放 | 97精品国产 | 999久久| 欧美日韩一区二区在线 | 一级全黄少妇性色生活免费看 | 国产成人久久精品 | 欧美日韩国产一区二区三区 | 国产精品久久国产精品久久 | 黄色片网此 | 亚洲人在线观看视频 | 中文成人在线 | 日日爱av| 久久ww| 亚洲精品久久久久久久久久久 | 欧美不卡一区二区 | 亚洲综合激情 | 日韩免费视频一区二区 | 亚洲国产高清免费 | 天天玩天天干天天操 | 亚洲欧美日韩在线 | 精品在线视频播放 | 性色视频在线观看 | 91免费入口| 黄毛片 | 国产高清久久久 | 另类视频区 | 午夜av影院 | 国产一区二区在线观看视频 | 成人综合视频在线观看 |