標(biāo)題: 基于單片機(jī)的液位控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)論文 [打印本頁(yè)]

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







歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1