版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 智能液位傳感器</b></p><p><b> 摘 要</b></p><p> 摘 要:介紹了壓力傳感器的應(yīng)用,設(shè)計(jì)了智能液位傳感器。此設(shè)計(jì)通過(guò)壓力傳感器測(cè)出液體的壓力,輸出0 - +5V的模擬電壓通過(guò)ADC0804采集轉(zhuǎn)換成數(shù)字量送入單片機(jī)處理,由RS232串口通信送到上位機(jī),并顯示出高度。此設(shè)計(jì)能完成0
2、-1.5m高度的液位測(cè)量,能精確到厘米。此設(shè)計(jì)主要由壓力傳感器,單片機(jī),ADC0804轉(zhuǎn)換器構(gòu)成。</p><p> 關(guān)鍵詞:智能液位傳感器,單片機(jī),AD轉(zhuǎn)換器</p><p> Abstract:This article introduces the application of pressure sensor, and designs a intelligent level se
3、nsor. This design detects the liquid pressure through the pressure sensors, and it will send the voltage from 0 to 5V which is converted into digital quantity by the simulation ADC0804 acquisition to the SCM processin
4、g. Then the digital will be sent to the PC which shows the high by RS232 serial interface communication. This design can finish 0 to 1.5 m high level measurement, and accurate </p><p> Keywords:Intelligence
5、 level sensor ,Single-chip microcomputer,AD converter </p><p><b> 目錄</b></p><p><b> 1緒論4</b></p><p> 1.1設(shè)計(jì)目的5</p><p> 1.2 設(shè)計(jì)任務(wù)與要求5</p
6、><p> 1.3 智能液位傳感器的基本原理5</p><p><b> 2總體方案設(shè)計(jì)6</b></p><p> 2.1 智能液位傳感器設(shè)計(jì)方案框圖6</p><p> 2.2 方案論證7</p><p> 2.3 方案可能的擴(kuò)展功能8</p><p>
7、 3 單元模塊電路的設(shè)計(jì)9</p><p> 3.1各單元模塊功能介紹及電路設(shè)計(jì)9</p><p> 3.1.1 傳感器輸出部分9</p><p> 3.1.2 ADC0804數(shù)據(jù)采集轉(zhuǎn)化部分9</p><p> 3.1.3 單片機(jī)最小系統(tǒng)模塊10</p><p> 3.1.4 RS232模塊1
8、1</p><p> 3.2 電路參數(shù)計(jì)算及元器件的選擇12</p><p> 3.2.1 元器件的選擇12</p><p> 3.3 特殊元器件介紹13</p><p> 3.2.1 ADC080414</p><p> 3.1.2 壓力傳感器D3B16</p><p>
9、 3.4 個(gè)單元模塊的聯(lián)接17</p><p><b> 4 軟件設(shè)計(jì)19</b></p><p> 4.1 軟件設(shè)計(jì)原理及所用的工具19</p><p> 4.1.1 單片機(jī)部分19</p><p> 4.1.2 上位機(jī)VB部分20</p><p> 4.2 軟件的設(shè)計(jì)流程框
10、圖22</p><p> 4.3 軟件設(shè)計(jì)總結(jié)23</p><p><b> 5 系統(tǒng)調(diào)試24</b></p><p> 5.1 硬件結(jié)構(gòu)部分24</p><p> 5.2 VB部分24</p><p> 5.3 壓力傳感器部分25</p><p>
11、 6 系統(tǒng)功能及指標(biāo)參數(shù)26</p><p> 6.1系統(tǒng)功能26</p><p> 6.2 系統(tǒng)各部分的測(cè)試參數(shù)26</p><p> 6.2.1 AD部分調(diào)試參數(shù)26</p><p> 6.2.2 系統(tǒng)測(cè)量液面高度的數(shù)據(jù)參數(shù)27</p><p> 6.2.3 調(diào)試總結(jié)28</p>
12、<p><b> 7 結(jié)論29</b></p><p> 8 總結(jié)與體會(huì)及感謝語(yǔ)30</p><p><b> 9 參考文獻(xiàn)31</b></p><p><b> 附錄32</b></p><p><b> 附錄1:32</b&g
13、t;</p><p><b> 附錄2:程序35</b></p><p> 附錄3 元器件清單38</p><p><b> 1緒論</b></p><p> 液位檢測(cè)在許多控制領(lǐng)域已較為普遍,各種類型的液位檢測(cè)傳感器較多,按原理分有浮子式、壓力式、超聲波式、吹氣式等。各種方式都根據(jù)其需
14、要設(shè)計(jì)完成,其結(jié)構(gòu)、量程和精度適用于各自不同的場(chǎng)合,大多結(jié)構(gòu)較為復(fù)雜,制造成本偏高;市面上也有現(xiàn)成的液位計(jì),有投入式、浮球式、彈簧式等,多數(shù)成品價(jià)格驚人。以上液位計(jì)多數(shù)輸出為模擬量電流或電壓,有些為機(jī)械指針讀數(shù),不能用于遠(yuǎn)程監(jiān)視;普遍適用于靜止液面,在波動(dòng)液面易引起讀數(shù)的波動(dòng);也有用電容法測(cè)液位的系統(tǒng),此法是一種簡(jiǎn)單易行的方案。本文利用壓力傳感器測(cè)液體壓力的原理,結(jié)合單片機(jī)設(shè)計(jì)出一種智能液位檢測(cè)裝置。</p><p&
15、gt; 本學(xué)期開(kāi)設(shè)了傳感器及傳感器技術(shù),單片機(jī)等課程。本課程設(shè)計(jì)是在學(xué)完這么多課程的基礎(chǔ)上,為了能更好的掌握這些課的內(nèi)容,把理論應(yīng)用于實(shí)際而提出來(lái)的。旨在發(fā)揮我們的設(shè)計(jì),創(chuàng)新意識(shí)。通過(guò)本課程設(shè)計(jì)可以掌握和鞏固傳感器的基本設(shè)計(jì)方法,工業(yè)水位的測(cè)量方法,單片機(jī)的基本應(yīng)用,顯示電路的連接等知識(shí)。進(jìn)一步加強(qiáng)對(duì)課堂理論知識(shí)的理解與綜合應(yīng)用能力,從而提高我們解決問(wèn)題的能力和創(chuàng)造發(fā)明能力。</p><p> 如今傳感器的應(yīng)
16、用是非常的廣泛,并且已經(jīng)融入到我們的生活,工作,科研等領(lǐng)域中。在我組進(jìn)行設(shè)計(jì)中我們首先對(duì)壓力傳感器輸出的電壓和對(duì)應(yīng)的液體高度進(jìn)行整理和多次測(cè)量得出一個(gè)比較與實(shí)際高度符合的函數(shù)。我們通過(guò)壓力傳感器測(cè)出液體壓力,利用ADC0804對(duì)傳感器的輸出電壓進(jìn)行采集并將模擬電壓信號(hào)轉(zhuǎn)換成數(shù)字電平信號(hào)0,1。然后將采集的數(shù)據(jù)送入單片機(jī)最小系統(tǒng)進(jìn)行處理然后利用RS232電平轉(zhuǎn)換送到PC機(jī),PC機(jī)上用VB編寫一個(gè)顯示界面,再在VB中利用程序?qū)?shù)字量轉(zhuǎn)換成以
17、厘米為單位的高度并顯示出來(lái)。</p><p> 液位傳感器的應(yīng)用雖然非常廣泛,但是現(xiàn)在高精度的液位的傳感器價(jià)格非常貴,實(shí)現(xiàn)民用還有一定的難度。所以我們的設(shè)計(jì)應(yīng)更加創(chuàng)新利用更小的成本設(shè)計(jì)生產(chǎn)出更好的傳感器。</p><p><b> 設(shè)計(jì)目的</b></p><p> 1.理解并掌握智能液位傳感器的原理及實(shí)現(xiàn)的方法。</p>
18、<p> 2. 掌握ADC,RS232電平轉(zhuǎn)換電路的原理,壓力傳感器的特性參數(shù)的計(jì)算及選擇。</p><p> 3.掌握單片機(jī)最小系統(tǒng)的組成。</p><p> 4.培養(yǎng)實(shí)踐技能,提高分析和解決實(shí)際問(wèn)題的能力。</p><p> 5.學(xué)習(xí)基本理論在實(shí)踐中綜合運(yùn)用的初步經(jīng)驗(yàn),掌握模擬電路及數(shù)字電路設(shè)計(jì)的基本方法、設(shè)計(jì)步驟,培養(yǎng)綜合設(shè)計(jì)與調(diào)試能力。&l
19、t;/p><p> 1.2 設(shè)計(jì)任務(wù)與要求</p><p> 1.利用一個(gè)液位傳感器及周邊電路,完成液位到電信號(hào)的轉(zhuǎn)換;液位測(cè)量采用測(cè)量液體的壓強(qiáng)的方式;測(cè)量范圍0-1.5米;</p><p> 2.設(shè)計(jì)一個(gè)單片機(jī)系統(tǒng)控制一個(gè)ADC對(duì)壓力變送器輸出的電信號(hào)進(jìn)行采集;</p><p> 3.編寫數(shù)據(jù)轉(zhuǎn)換程序;將二進(jìn)制的量化數(shù)據(jù)轉(zhuǎn)換為以厘米為
20、單位的ASCLL標(biāo)準(zhǔn)字符串形式傳送到PC機(jī);注:ASCLL標(biāo)準(zhǔn)字符串是以ASCLL碼為信息的編碼方式,字符串結(jié)尾數(shù)據(jù)是一個(gè)字節(jié)00H;</p><p> 4.設(shè)計(jì)單片機(jī)通信程序以及RS232電平轉(zhuǎn)換電路;</p><p> 5.設(shè)計(jì)單片機(jī)相關(guān)運(yùn)行程序;</p><p> 6.設(shè)計(jì)相關(guān)電路,如單片機(jī)系統(tǒng),模擬輸入通道,ADC,和電源電路等;</p>
21、<p> 7.報(bào)告格式嚴(yán)格按照《課程設(shè)計(jì)報(bào)告格式要求說(shuō)明》執(zhí)行;</p><p> 1.3 智能液位傳感器的基本原理</p><p> 本次設(shè)計(jì)的智能液位傳感器的基本原理是利用一個(gè)壓力傳感器測(cè)出在水管的水的壓力,壓力變送器的輸出為是0-5V的模擬電壓信號(hào)(或是4-20毫安的模擬電流信號(hào)),利用ADC0804對(duì)傳感器的輸出電壓進(jìn)行采集并將模擬電壓信號(hào)轉(zhuǎn)換成數(shù)字電平信號(hào)0,1
22、。然后將采集的數(shù)據(jù)送入單片機(jī)最小系統(tǒng)進(jìn)行處理然后利用RS232電平轉(zhuǎn)換送到PC機(jī),PC機(jī)上用VB的MS.COM控件編寫一個(gè)顯示界面,再在VB中利用程序?qū)?shù)字量轉(zhuǎn)換成以厘米為單位的高度并顯示出來(lái)。</p><p><b> 2總體方案設(shè)計(jì)</b></p><p> 通過(guò)查閱大量相關(guān)技術(shù)資料,并結(jié)合自己的實(shí)際知識(shí),我主要提出了兩種技術(shù)方案來(lái)實(shí)現(xiàn)系統(tǒng)功能。下面我將首先對(duì)
23、這兩種種方案的組成框圖和實(shí)現(xiàn)原理分別進(jìn)行說(shuō)明。</p><p> 2.1 智能液位傳感器設(shè)計(jì)方案框圖</p><p> 兩種方案的框圖如下圖:</p><p><b> 方案1:</b></p><p><b> 方案2:</b></p><p><b>
24、 2.2 方案論證</b></p><p> 對(duì)于方案1和2按照理論來(lái)看做出來(lái)能夠達(dá)到一定的預(yù)期效果,能達(dá)基本滿足本次設(shè)計(jì)的基本要求。但是兩種方案不同之處就在于傳感器的選擇和AD的選擇,現(xiàn)就這兩個(gè)方面來(lái)論述.為什么選擇方案2。</p><p> 方案1的傳感器部分是利用應(yīng)變片做的壓力變送器,其結(jié)構(gòu)如下圖2.1:</p><p><b>
25、圖 2.1 </b></p><p> 這是利用4片應(yīng)變片做的全橋電路其電壓靈敏度比單臂工作時(shí)提高了4倍,消除了一定的非線性誤差。其輸出的為電流信號(hào)但是非常小,所以在外部又加了一個(gè)差動(dòng)放大將信號(hào)放大才能滿足AD 0 - +5V的輸入電壓的要求。但是此類的工作都是提供1.5mA的橫流源,我們自己做的恒流源很難滿足要求。硬件部分完成以后還要對(duì)其進(jìn)行測(cè)試線性度,但是測(cè)量比較麻煩后期的數(shù)據(jù)處理也比較繁瑣,最
26、后達(dá)到的效果也比較差所以就沒(méi)有選擇應(yīng)變片制作。</p><p> 對(duì)于AD的選擇主要是ADC0832與ADC0804之間的選擇。</p><p> ADC0832是8位分辨率;+5V電源供電;輸入電壓為0 - +5V;工作頻率250HZ;轉(zhuǎn)換時(shí)間為32us;數(shù)據(jù)轉(zhuǎn)送是8位串行傳送;</p><p> ADC0804是8位分辨率;5V電源供電;輸入電壓為0 -
27、+5V;轉(zhuǎn)換時(shí)間的100us;存取時(shí)間是135us;數(shù)據(jù)傳送是8位并行傳送;</p><p> 通過(guò)直觀的觀察可以發(fā)現(xiàn)由于ADC0832的數(shù)據(jù)傳送是8位串行的所以傳完8位數(shù)據(jù)需要的時(shí)間為256us,而ADC0804為8位的并行數(shù)據(jù)傳送,傳8位數(shù)據(jù)只需100us。所以ADC0804的轉(zhuǎn)換存取速度更快,這樣系統(tǒng)的工作效率更高。所以我們采用的是ADC0804。</p><p> 綜上我們本次
28、設(shè)計(jì)液位傳感器采用的方案2。</p><p> 2.3 方案可能的擴(kuò)展功能</p><p> 我們這次設(shè)計(jì)的智能液位傳感器結(jié)構(gòu)還比較簡(jiǎn)單,只是完成測(cè)液位并讀出頁(yè)面高度的基本功能,在這幾完成后發(fā)現(xiàn)該系統(tǒng)還能擴(kuò)展許多功能。比如增加報(bào)警系統(tǒng)(應(yīng)用于比如水庫(kù)的水位測(cè)量時(shí)可以做下限報(bào)警和超限報(bào)警);遠(yuǎn)程的控制系統(tǒng)(比如家用的水塔水不足時(shí)可以控制水泵加水)。</p><p>
29、; 3 單元模塊電路的設(shè)計(jì)</p><p> 本節(jié)主要介紹系統(tǒng)各單元模塊的具體功能、電路結(jié)構(gòu)、工作原理、以及各個(gè)單元模塊之間的聯(lián)接關(guān)系;同時(shí)本節(jié)也會(huì)對(duì)相關(guān)電路中的參數(shù)計(jì)算、元器件選擇、以及核心器件進(jìn)行必要說(shuō)明。</p><p> 3.1各單元模塊功能介紹及電路設(shè)計(jì)</p><p> 本系統(tǒng)電路模塊主要分為四個(gè)單元模塊,它們分別是:傳感器輸出部分;ADC080
30、4的數(shù)據(jù)采集轉(zhuǎn)換模塊;單片機(jī)最小系統(tǒng)模塊;RS232模塊.各單元模塊功能及相關(guān)電路的具體說(shuō)明如下。</p><p> 3.1.1 傳感器輸出部分</p><p> 3.1.2 ADC0804數(shù)據(jù)采集轉(zhuǎn)化部分</p><p> 該級(jí)電路一共實(shí)現(xiàn)了兩個(gè)功能:第一個(gè)是對(duì)模擬電壓信號(hào)的采集。第二個(gè)功能是將模擬電壓信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)。</p><p&
31、gt; 這一級(jí)的原理圖如圖3.2:</p><p> 圖3.2 ADC0804數(shù)據(jù)采集轉(zhuǎn)換電路圖</p><p> 3.1.3 單片機(jī)最小系統(tǒng)模塊</p><p> 這部分主要是由STC89C52單片機(jī)組成的一個(gè)最小系統(tǒng),通過(guò)單片機(jī)來(lái)控制ADC0804的信號(hào)采集轉(zhuǎn)換以及對(duì)RS232串口通信的控制。</p><p> 該級(jí)電路原
32、理圖如圖3.3:</p><p> 圖3.3 單片機(jī)最小系統(tǒng)電路圖</p><p> 3.1.4 RS232模塊</p><p> RS232模塊主要通過(guò)USB轉(zhuǎn)串口線來(lái)與PC機(jī)通信將ADC0804采集和轉(zhuǎn)換的數(shù)據(jù)傳給上位機(jī)顯示出所測(cè)得液面高度。</p><p> 模塊的原理圖如圖3.4:</p><p>
33、; 圖3.4 RS232電路圖</p><p> 3.2 電路參數(shù)計(jì)算及元器件的選擇</p><p> 3.2.1 元器件的選擇</p><p> 設(shè)計(jì)所用儀器及器件如下表1:</p><p><b> 表1</b></p><p> 3.3 特殊元器件介紹</p>
34、<p> 這一節(jié)將對(duì)設(shè)計(jì)過(guò)程中用到的一些特殊元器件進(jìn)行介紹,主要是介紹該特殊元器件的內(nèi)部結(jié)構(gòu),工作原理,及使用時(shí)應(yīng)該注意的事項(xiàng)。</p><p> 3.2.1 ADC0804</p><p> ADC0804的內(nèi)部原理結(jié)構(gòu)圖如下圖3.5:</p><p> 圖3.5 ADC0804的內(nèi)部原理結(jié)構(gòu)圖 </p><p>
35、ADC0804主要技術(shù)指標(biāo)如下:</p><p> (1) 高阻抗?fàn)顟B(tài)輸出</p><p> (2) 分辨率:8 位(0~255)</p><p> (3) 存取時(shí)間:135 us</p><p> (4) 轉(zhuǎn)換時(shí)間:100 us</p><p> (5) 總誤差:-1- +1LSB</p>&
36、lt;p> (6) 工作溫度:ADC0804C為0度-70度;ADC0804L為-40 度-85 度</p><p> (7) 模擬輸入電壓范圍:0V - +5V</p><p> (8) 參考電壓:2.5V</p><p> (9) 工作電壓:5V</p><p> (10) 輸出為三態(tài)結(jié)構(gòu)</p><p
37、> ADC0804的引腳圖如下圖3.6:</p><p> 圖 3.6 ADC0804引腳圖</p><p> 引腳及功能特性如下:</p><p> CS 、RD 、WR (引腳1、2、3):是數(shù)字控制輸入端,滿足標(biāo)準(zhǔn)TTL 邏輯電平。其中CS 和WR 用來(lái)控制A/D 轉(zhuǎn)換的啟動(dòng)信號(hào)。CS 、RD 用來(lái)讀A/D 轉(zhuǎn)換的結(jié)果,當(dāng)它們同時(shí)為低電平時(shí)
38、,輸出數(shù)據(jù)鎖存器DB0~DB7 各端上出現(xiàn)8 位并行二進(jìn)制數(shù)碼。</p><p> LKI(引腳4)和CLKR(引腳19):ADC0801~0805 片內(nèi)有時(shí)鐘電路,只要在外部“CLKI”和“CLKR”兩端外接一對(duì)電阻電容即可產(chǎn)生A/D 轉(zhuǎn)換所要求的時(shí)鐘,其振蕩頻率為fCLK≈1/1.1RC。其典型應(yīng)用參數(shù)為:R=10KΩ,C=150PF,fCLK≈640KHZ,轉(zhuǎn)換速度為100μs。若采用外部時(shí)鐘,則外部f
39、CLK 可從CLKI 端送入,此時(shí)不接R、C。</p><p> 允許的時(shí)鐘頻率范圍為100KHZ~1460KHZ。</p><p> INTR (引腳5): INTR 是轉(zhuǎn)換結(jié)束信號(hào)輸出端,輸出跳轉(zhuǎn)為低電平表示本次轉(zhuǎn)換已經(jīng)完成,可作為微處理器的中斷或查詢信號(hào)。如果將CS 和WR 端與INTR 端相連,則ADC0804 就處于自動(dòng)循環(huán)轉(zhuǎn)換狀態(tài)。CS =0 時(shí),允許進(jìn)行A/D 轉(zhuǎn)換。&l
40、t;/p><p> WR 由低跳高時(shí)A/D 轉(zhuǎn)換開(kāi)始,8 位逐次比較需8×8=64 個(gè)時(shí)鐘周期,再加上控制邏輯操作,一次轉(zhuǎn)換需要66~73 個(gè)時(shí)鐘周期。在典型應(yīng)用fCLK=640KHZ 時(shí),轉(zhuǎn)換時(shí)間約為103μs~114μs。當(dāng)fCLK 超過(guò)640KHZ,轉(zhuǎn)換精度下降,超過(guò)極限值1460KHZ 時(shí)便不能正常工作。</p><p> VIN(+)(引腳)和VIN(-)(引腳7):被
41、轉(zhuǎn)換的電壓信號(hào)從VIN(+)和VIN(-)輸入,允許此信號(hào)是差動(dòng)的或不共地的電壓信號(hào)。如果輸入電壓VIN的變化范圍從0V到Vmax,則芯片的VIN(-)端接地,輸入電壓加到VIN(+)引腳。由于該芯片允許差動(dòng)輸入,在共模輸入電壓允的情況下,輸入電壓范圍可以從非零伏開(kāi)始,即Vmin 至Vmas。此時(shí)芯片的VIN(-)端應(yīng)該接入等于Vmin 的恒值電碼墳上,而輸入電壓VIN仍然加到VIN(+)引腳上。</p><p>
42、; AGND(引腳8)和DGND(引腳10):A/D 轉(zhuǎn)換器一般都有這兩個(gè)引腳。模擬地AGND 和數(shù)字地DGND 分別設(shè)置引入端,使數(shù)字電路的地電流不影響模擬信號(hào)回路,以防止寄生耦合造成的干擾。</p><p> VREF/2(引腳9):參考電壓VREF/2 可以由外部電路供給,從“VREF/2”端直接送入,VREF/2 端電壓值應(yīng)是輸入電壓范圍的二分之一。所以輸入電壓的范圍可以通過(guò)調(diào)整VREF/2 引腳處的
43、電壓加以改變,轉(zhuǎn)換器的零點(diǎn)無(wú)需調(diào)整。</p><p> ADC0804 轉(zhuǎn)換器的工作時(shí)序如圖3.7:</p><p> 圖3.7 工作時(shí)序圖</p><p> 3.1.2 壓力傳感器D3B</p><p> 我們這次智能液位傳感器設(shè)計(jì)使用的傳感器部分采用的是壓力傳感器D3B,液位測(cè)量采用的測(cè)量液體壓強(qiáng)的方式。壓力傳感器如下圖3.8:
44、</p><p><b> 圖 3.8</b></p><p> 傳感器主要參數(shù)如下:</p><p> 工作電壓:4.2v—6.2v;壓力范圍:0-----1000mm水柱,0----0.1Kg/c㎡;電壓輸出:0.23v---4.9v;線性度0.2%;外型:30×30×20mm 。</p
45、><p> 接線方式:每個(gè)接線柱下皆有標(biāo)示,G-接地,I-接+5V另與O-之間加載2.2K上拉電阻即可通過(guò)0-輸出</p><p> 傳感器本身不能放到水里,所以設(shè)計(jì)時(shí)我們是利用水管引水到傳感器中央的壓力感應(yīng)膜上。</p><p> 3.4 個(gè)單元模塊的聯(lián)接</p><p> 個(gè)單元的聯(lián)接如下圖3.9:</p><p&
46、gt; 圖 3.9 個(gè)單元模塊的聯(lián)接圖</p><p> 說(shuō)明:AD的輸入連接的是壓力傳感器的輸出端。</p><p><b> 4 軟件設(shè)計(jì)</b></p><p> 本次設(shè)計(jì)主要用到的軟件主要涉及到單片機(jī)的c語(yǔ)言編程,上位機(jī)的VB部分的界面編程。</p><p> 4.1 軟件設(shè)計(jì)原理及所用的工具<
47、/p><p> 4.1.1 單片機(jī)部分</p><p> 單片機(jī)程序部分主要功能是:控制ADC0804接收模擬數(shù)據(jù)轉(zhuǎn)換成數(shù)字量,由89C52接收數(shù)字量,將處理后的數(shù)字量通過(guò)串口通訊傳給上位機(jī)。</p><p> 該程序部分設(shè)計(jì)過(guò)程中使用的是keil軟件來(lái)編寫的,利用STC-ISP軟件進(jìn)行下載和調(diào)試的。主要就是通過(guò)STC89C52來(lái)控制AD采集轉(zhuǎn)換部分和串口通信,該
48、部分的核心程序如下:</p><p> void adopen() //adc0804初始化</p><p><b> { </b></p><p><b> wr=1;</b></p><p><b> wr=0;</b></p><p>
49、<b> wr=1;</b></p><p><b> delay(1);</b></p><p><b> rd=0;</b></p><p><b> i=i;</b></p><p><b> i=i;//延時(shí)</b>
50、</p><p><b> j=P1;</b></p><p><b> rd=1;</b></p><p><b> }</b></p><p> void initial()//串口初始化</p><p><b> {</
51、b></p><p> TMOD=0x20;//設(shè)置定時(shí)器1為工作方式2</p><p><b> TH1=0xfd;</b></p><p><b> TL1=0xfd;</b></p><p><b> TR1=1;</b></p><p&
52、gt; REN=1;//串口始能REN=1時(shí)允許串行口接收數(shù)據(jù)</p><p> SM0=0;//模式1,8位數(shù)據(jù),波特率由軟件設(shè)置</p><p><b> SM1=1;</b></p><p> EA=1;//總通斷</p><p> ES=1;//串口通斷</p><p><
53、b> }</b></p><p> 4.1.2 上位機(jī)VB部分</p><p> 這個(gè)部分主要是通過(guò)Microsoft Visual Basic 6.0這個(gè)軟件來(lái)編寫一個(gè)上位機(jī)界面來(lái)顯示所測(cè)得到的液面高度,利用的VB里面的串口通信控件MS.COM來(lái)實(shí)現(xiàn)的。</p><p> 顯示的輸入的兩個(gè)部分都是顯示在vb里的text文本框里的。<
54、/p><p><b> 核心程序如下:</b></p><p> 串口的設(shè)置如下程序:</p><p> Private Sub Form_Load() '設(shè)置串口</p><p> MSComm1.Settings = "9600,N,8,1"
55、 '串口通訊初始化:波特率為9600,沒(méi)有校驗(yàn)位,八位數(shù)據(jù)傳送,一位停止位</p><p> MSComm1.RThreshold = 1</p><p> MSComm1.InputMode = comInputModeText '以文本形式接收數(shù)據(jù)</p><p> Combo1.AddItem "COM1"&
56、lt;/p><p> Combo1.AddItem "COM2"</p><p> Combo1.AddItem "COM3"</p><p> Combo1.AddItem "COM4"</p><p> Combo1.AddItem "COM5"</
57、p><p> Combo1.AddItem "COM6"</p><p><b> j = 0</b></p><p><b> End Sub</b></p><p> 程序的核心部分:VB的串口通訊控件MSComm</p><p> Privat
58、e Sub MSComm1_OnComm() </p><p> Dim a As String</p><p> Select Case MSComm1.CommEvent</p><p> Case comEvReceive '每接收一個(gè)數(shù)據(jù)就觸發(fā)一次事件</p><p> a = M
59、SComm1.Input</p><p> b = Asc(a)</p><p> e(j) = b '收20個(gè)數(shù)據(jù)取平均值再顯示出來(lái) 減小抖動(dòng)</p><p><b> j = j + 1</b></p><p> If j = 19 Then</p>&l
60、t;p> MSComm1.PortOpen = False</p><p> For k = 0 To 19</p><p> summ = summ + e(k)</p><p><b> Next k</b></p><p> c = summ / 20</p><p><
61、;b> summ = 0</b></p><p> i = (c / 255) * 10</p><p> If i < 0.08 Then</p><p> Text2.Text = 0</p><p> Text1.Text = 0</p><p><b> Else&
62、lt;/b></p><p> Text2.Text = i * 1.04</p><p> Text1.Text = 18.33766 * i * 1.04</p><p><b> End If</b></p><p> MSComm1.PortOpen = True</p><p&
63、gt;<b> j = 0</b></p><p><b> End If</b></p><p> End Select</p><p><b> End Sub</b></p><p> 4.2 軟件的設(shè)計(jì)流程框圖</p><p> 4.
64、3 軟件設(shè)計(jì)總結(jié)</p><p> 軟件設(shè)計(jì)中主要運(yùn)用了所學(xué)的單片機(jī)課程和VB語(yǔ)言中的知識(shí),單片機(jī)中的程序用的是C語(yǔ)言。程序主要包含了ADC0804的初始化;調(diào)用串口功能;串口的初始化;延時(shí)程序,主代碼段實(shí)現(xiàn)了打開(kāi)AD并對(duì)數(shù)據(jù)進(jìn)行采集轉(zhuǎn)換。</p><p> 上位機(jī)利用的是VB的知識(shí),利用串口通信控件MS.COM來(lái)實(shí)現(xiàn)的。編寫出來(lái)的顯示界面如下圖4.1:</p><
65、p> 圖 4.1 顯示界面</p><p> 該界面內(nèi)可以選擇串口端口號(hào),達(dá)到了本次設(shè)計(jì)的基本要求,顯示了AD的輸入電壓和測(cè)得的液面高度值。</p><p><b> 5 系統(tǒng)調(diào)試</b></p><p> 5.1 硬件結(jié)構(gòu)部分</p><p> 硬件部分我們先是通過(guò)PROTEL軟件畫的AD部分;單片機(jī)部
66、分和RS232部分的原理圖,然后這部分沒(méi)有畫PCB圖就直接用萬(wàn)用板和排線進(jìn)行搭建的。這樣在焊接的過(guò)程中就會(huì)顯得比較麻煩,必須很細(xì)心才能很好的完成,如果哪個(gè)地方焊接錯(cuò)誤或者是將要用到的引腳沒(méi)有焊接上都會(huì)導(dǎo)致系統(tǒng)不能工作。比如像我們這次的設(shè)計(jì)就出現(xiàn)過(guò)這樣的問(wèn)題,在焊接完單片機(jī)最小系統(tǒng)和RS232串口通信后覺(jué)得因該能下載程序到單片機(jī)內(nèi)部了,結(jié)果利用直流可調(diào)的穩(wěn)壓電源給單片機(jī)加了+5V的工作電壓結(jié)果單片機(jī)不能工作。在經(jīng)過(guò)討論發(fā)現(xiàn)應(yīng)該是單片機(jī)沒(méi)有
67、起振,然后發(fā)現(xiàn)是晶振的兩個(gè)引腳焊接反了,這樣小小的失誤會(huì)導(dǎo)致嚴(yán)重的后果。</p><p> 在焊接好ADC0804部分后我們對(duì)其進(jìn)行了調(diào)試,在調(diào)試AD時(shí),我們發(fā)現(xiàn)通過(guò)P0口始終不能將數(shù)據(jù)寫到AD,后來(lái)經(jīng)過(guò)查閱資料發(fā)現(xiàn),要想使P0口輸出數(shù)據(jù)必須在P0口接上拉電阻,后來(lái)我們換P2口為數(shù)據(jù)輸出口,才成功將AD驅(qū)動(dòng)成功。</p><p><b> 5.2 VB部分</b>
68、</p><p> 上位機(jī)部分的調(diào)試是結(jié)合前面的AD采集系統(tǒng)一起來(lái)進(jìn)行調(diào)試的這樣下過(guò)會(huì)更直觀。這里的調(diào)試用到了直流可調(diào)的穩(wěn)壓電源,給單片機(jī)加上+5V的工作電壓后在AD輸入端加上0-5V的輸入電壓然后利用RS232串口通信將采集并轉(zhuǎn)換的電壓值顯示在PC上利用VB做的顯示界面上。結(jié)果發(fā)現(xiàn)當(dāng)AD沒(méi)有給輸入電壓時(shí),上位機(jī)顯示有輸入電壓,經(jīng)過(guò)查資料發(fā)現(xiàn)這是由于由于AD器件本身的原因,當(dāng)沒(méi)有給輸入時(shí),其輸入端呈高阻狀態(tài),所
69、以當(dāng)沒(méi)有輸入時(shí),所測(cè)到得電壓是錯(cuò)誤的,為了解決這個(gè)問(wèn)題我們嘗試了幾種方法,其中是用運(yùn)放做電壓跟隨器來(lái)進(jìn)行阻抗變換,使AD輸入端不再懸空,但是由于很多運(yùn)放都不是軌道軌的運(yùn)放(即不是滿伏輸出運(yùn)放),而且會(huì)大大增加硬件的結(jié)構(gòu),所以不選擇這種方法,后來(lái)我們想到給輸入端加下拉電阻的方法,可以將輸入端電壓拉至地端,并且當(dāng)有輸入時(shí),其顯示的電壓也是輸入電壓。</p><p> 在剛開(kāi)始設(shè)計(jì)上位機(jī)顯示這部分時(shí)我們沒(méi)有想到由于系
70、統(tǒng)整體的原因,所采集到得數(shù)據(jù)有很大的抖動(dòng),討論過(guò)后發(fā)現(xiàn)是有多方面的原因的。其一就是我們這次設(shè)計(jì)采用的AD0804的采集轉(zhuǎn)換時(shí)間為100us,這個(gè)時(shí)間是非常短的所以數(shù)據(jù)在不斷地更新。后來(lái)經(jīng)過(guò)老師對(duì)數(shù)字濾波的詳細(xì)講解,我們下來(lái)也查閱了于數(shù)字濾波相關(guān)的資料,然后運(yùn)用到上位機(jī)部分。在程序部分利用取多組數(shù)據(jù)再取均值的方法,雖然系統(tǒng)的測(cè)試速度有所變慢,但數(shù)據(jù)抖動(dòng)很小,只在百分位抖動(dòng),影響不大。</p><p> VB加的部
71、分程序如下:</p><p> For k = 0 To 19</p><p> summ = summ + e(k)</p><p><b> Next k</b></p><p> c = summ / 20</p><p><b> summ = 0</b>&
72、lt;/p><p> i = (c / 255) * 10</p><p> 5.3 壓力傳感器部分</p><p> 傳感器部分主要我們是購(gòu)買的成品回來(lái),在調(diào)試時(shí)主要是檢驗(yàn)其是否到達(dá)要求,輸出的線性度如何。在測(cè)試時(shí)我們把G-接地,I-接+5V另與O-之間加上2 K上拉電阻即可通過(guò)0-輸出,然后給傳感器裝上水管后先不加水看起輸出的電壓時(shí)多少,再不斷的加水看輸出的電
73、壓是否在給的范圍之內(nèi),再加水到傳感器的極限輸出即傳感器的最大輸出電壓是多少。</p><p> 6 系統(tǒng)功能及指標(biāo)參數(shù)</p><p><b> 6.1系統(tǒng)功能</b></p><p> 本次設(shè)計(jì)的智能液位傳感器主要能實(shí)現(xiàn)以下功能:</p><p> 壓力傳感器采用的測(cè)量液體的壓強(qiáng)的方式來(lái)實(shí)現(xiàn)測(cè)量液面高度;<
74、;/p><p> 設(shè)計(jì)的單片機(jī)系統(tǒng)能控制ADC對(duì)壓力傳感器的輸出電壓信號(hào)進(jìn)行采集并轉(zhuǎn)換;</p><p> 測(cè)量范圍能基本達(dá)到設(shè)計(jì)的要求在0-1米的范圍內(nèi)誤差較小;</p><p> 能在上位機(jī)上直觀的顯示出測(cè)量的液面高度;</p><p> 6.2 系統(tǒng)各部分的測(cè)試參數(shù)</p><p> 6.2.1 AD部分調(diào)
75、試參數(shù)</p><p> 在調(diào)通AD后我們對(duì)AD的數(shù)據(jù)采集功能進(jìn)行了測(cè)試,測(cè)試數(shù)據(jù)如下圖6.1:</p><p> 圖 6.1 AD的采集數(shù)據(jù)與給定的輸入數(shù)據(jù)</p><p> 這幾組數(shù)據(jù)都是在室內(nèi)測(cè)得的,都是在室溫接近30度的情況測(cè)得。我們對(duì)所測(cè)得的數(shù)據(jù)進(jìn)行了處理,一共測(cè)了5組數(shù)據(jù)(給定的輸入電壓是在直流穩(wěn)壓電源上直接讀的,而測(cè)得的數(shù)據(jù)則是通過(guò)我們所做的上位
76、機(jī)顯示程序讀出來(lái)的),求出了每組數(shù)據(jù)的樣本均值和樣本方差,通過(guò)直觀的觀察發(fā)現(xiàn)和給定的AD輸入誤差不是很大,我們也通過(guò)excel做表發(fā)現(xiàn)這幾組測(cè)得的數(shù)據(jù)與給定的輸入電壓誤差很小。這說(shuō)明AD的線性度還是比較高的。</p><p> 6.2.2 系統(tǒng)測(cè)量液面高度的數(shù)據(jù)參數(shù)</p><p> 這里測(cè)的數(shù)據(jù)是整個(gè)系統(tǒng)組在一起進(jìn)行的測(cè)量,測(cè)量我們所給的液面高度。</p><p&
77、gt; 測(cè)得的數(shù)據(jù)如下圖6.2:</p><p> 圖6.2 液面高度的測(cè)量數(shù)據(jù)</p><p> 這些數(shù)據(jù)都是在室內(nèi)測(cè)得的,在室溫30度左右測(cè)得。一共測(cè)了三組數(shù)據(jù),電壓利用上位機(jī)顯示程序直接讀得,而高度的數(shù)據(jù)則是用米尺測(cè)得,一個(gè)電壓對(duì)應(yīng)一個(gè)液面高度。數(shù)據(jù)處理則是求斜率的問(wèn)題,每一個(gè)高度對(duì)應(yīng)一個(gè)斜率主要為后面的上位機(jī)顯示液面高度的VB程序找一個(gè)理論的依據(jù)。這樣也可以看壓力傳感器的工作
78、的線性度如何。</p><p> 6.2.3 調(diào)試總結(jié)</p><p> 通過(guò)調(diào)試我們發(fā)現(xiàn)調(diào)試時(shí)最費(fèi)時(shí)間的藥考慮很多因素,調(diào)試過(guò)程要將整個(gè)系統(tǒng)組合起來(lái)看工作是否正常,能否達(dá)到基本的要求。</p><p> 我們?cè)O(shè)計(jì)的只能液位傳感器能基本滿足設(shè)計(jì)的基本要求,通過(guò)壓力傳感器測(cè)量液位的壓強(qiáng)方式,ADC0804對(duì)壓力傳感器的輸出的模擬電壓進(jìn)行采集和轉(zhuǎn)換送入單片機(jī)然后通
79、過(guò)RS232串口通信傳送到上位機(jī)上顯示液面的高度。實(shí)現(xiàn)了將二進(jìn)制的量化轉(zhuǎn)換為以厘米為單位的ASCLL標(biāo)準(zhǔn)字符串形式傳送到PC機(jī)。測(cè)量范圍在0-1米內(nèi)時(shí)誤差能基本滿足要求。誤差主要就是來(lái)至壓力傳感器的輸出與ADC0804的輸入有一定的差距,這主要是由于整個(gè)系統(tǒng)連接起來(lái)過(guò)后傳感器的內(nèi)部電阻將其輸出電壓拉下來(lái)了,我們?cè)谝院髮?duì)系統(tǒng)加入電壓跟隨器來(lái)改善。</p><p><b> 7 結(jié)論</b>&
80、lt;/p><p> 本次設(shè)計(jì)的智能液位傳感器達(dá)到了預(yù)期的基本要求,主要特色之一就是直接利用壓力傳感器測(cè)液體的壓力的方式實(shí)現(xiàn)了測(cè)液面的高度,這種方式實(shí)現(xiàn)起來(lái)比較容易;其二就是將測(cè)量系統(tǒng)與PC機(jī)相結(jié)合起來(lái)這樣對(duì)數(shù)據(jù)的讀數(shù)比較直觀,并且能精確到厘米。不過(guò)此設(shè)計(jì)也有很多不足之處,測(cè)量時(shí)要在容器的底部開(kāi)口才能讀出壓力,還可以加入報(bào)警系統(tǒng),當(dāng)測(cè)量超出范圍時(shí),系統(tǒng)自動(dòng)報(bào)警。還有就是還可以加上一定的數(shù)據(jù)存儲(chǔ)能力,這樣要對(duì)以前的數(shù)
81、據(jù)進(jìn)行研究的地方非常有幫助。</p><p><b> 8 總結(jié)與體會(huì)</b></p><p> 綜合上述各部分的測(cè)試結(jié)果,本設(shè)計(jì)完成了課程設(shè)計(jì)的大多數(shù)的要求。基本達(dá)到了預(yù)期的目標(biāo)。</p><p> 這次智能綜合設(shè)計(jì)歷時(shí)接近一個(gè)月,在這期間可以說(shuō)是苦多于甜,但是可以學(xué)到很多很多的東西,不僅可以鞏固以前所學(xué)過(guò)的知識(shí),而且學(xué)到了很多書本上沒(méi)
82、有接觸過(guò)的知識(shí)。以前接觸的那些程序都是很短很基礎(chǔ)的,但是在課程設(shè)計(jì)中碰到了一些復(fù)雜的程序編寫,這時(shí)畫程序方框圖就顯得很有必要了。通過(guò)畫程序方框圖可以使我們對(duì)所要完成的每一步任務(wù)都有一個(gè)很清楚的思路,讓我們明白每一步的任務(wù),同時(shí)在程序測(cè)試的過(guò)程中也有利于查錯(cuò)。</p><p> 另外,以前對(duì)于編程工具的使用還處于一知半解的狀態(tài)上,經(jīng)過(guò)一段上機(jī)的實(shí)踐,對(duì)于怎么去排錯(cuò)、查錯(cuò),怎么去看每一步的運(yùn)行結(jié)果,怎么去了解每個(gè)寄
83、存器的內(nèi)容以確保程序的正確性上都有了很大程度的提高。 </p><p> 這次課程設(shè)計(jì)終于順利完成了,在設(shè)計(jì)中遇到了很多編程問(wèn)題,最后在同學(xué)們的幫助下并且查閱了很多相關(guān)的資料才得以解決。通過(guò)本次課程設(shè)計(jì),我進(jìn)一步溫習(xí)和鞏固了課本的理論知識(shí),增強(qiáng)了理論聯(lián)系實(shí)際的能力,同時(shí)也增強(qiáng)了我通過(guò)檢索資料來(lái)獲取相關(guān)專業(yè)信息以及利用檢索到的信息來(lái)解決面臨問(wèn)題的能力。本次設(shè)計(jì)使我深刻認(rèn)識(shí)到自己軟件編程方面的知識(shí)薄弱,同時(shí)也使我體
84、會(huì)到軟件編程在實(shí)際硬件電路連接中的重要作用,軟件編程的使用使硬件開(kāi)銷大大減少,同時(shí)也使設(shè)計(jì)更加的簡(jiǎn)潔易于控制,在今后的學(xué)習(xí)中我們會(huì)加強(qiáng)軟件編程方面知識(shí)的積累和運(yùn)用,會(huì)更加注重理論與實(shí)際的結(jié)合。</p><p> 在這次作品制作過(guò)程中,我們知道了要真正的做出作品需要考慮非常多的因素,有些看似不起眼的細(xì)節(jié)都可能對(duì)電路產(chǎn)生巨大的影響,如連線是否可等。通過(guò)這次課程設(shè)計(jì)自己看到了許多工程和一些產(chǎn)品中的要求,讓自己明白了自
85、己現(xiàn)在缺乏很多工程意識(shí)和思考問(wèn)題的全面性。</p><p> 在此我要特別感謝我們的課程設(shè)計(jì)指導(dǎo)老師鄭海春老師。在設(shè)計(jì)過(guò)程中他為我們提供了很多的幫助和指導(dǎo)。在老師的身上我們學(xué)也到很多實(shí)用的知識(shí),在此我們表示感謝!同時(shí),對(duì)給過(guò)我們組幫助的所有同學(xué)和各位指導(dǎo)老師再次表示忠心的感謝!</p><p><b> 9 參考文獻(xiàn)</b></p><p>
86、; [1]汪德彪. MCS-51單片機(jī)原理及接口技術(shù)[M]. 北京電子工業(yè)出版社. 2004.</p><p> [2]胡文金,鐘秉翔. 單片機(jī)應(yīng)用技術(shù)實(shí)訓(xùn)教程[M]. 重慶大學(xué)出版社. 2005.</p><p> [3]張毅剛,彭喜元,董繼成. 單片機(jī)原理及應(yīng)用[M]. 重慶大學(xué)出版社. 2003.</p><p> [4] 謝自美.電子線路設(shè)計(jì)?實(shí)驗(yàn)?
87、測(cè)試[M] . 武漢:華中科技出版社,2000.5</p><p> [5] 譚浩強(qiáng).C程序設(shè)計(jì)(第三版)[M]. 北京:清華大學(xué)出版社,2008.1</p><p> [6] 王華奎.數(shù)字信號(hào)處理及應(yīng)用[M]. 北京:高等教育出版社,2006.12</p><p> [7] 姚燕南.微型計(jì)算機(jī)原理與接口技術(shù)[M]. 北京:高等教育出版社,2006.4<
88、/p><p> [8] 古天祥.電子測(cè)量原理[M]. 北京:機(jī)械工業(yè)出版社,2009.1</p><p> [9] 徐科軍.傳感器與檢測(cè)技術(shù)[M]. 北京:電子工業(yè)出版社,2010.11</p><p><b> 附錄</b></p><p><b> 附錄1:</b></p>&
89、lt;p><b> 總電路圖如下圖1:</b></p><p><b> 圖 1 總電路圖</b></p><p><b> 實(shí)物圖如下圖:</b></p><p><b> 實(shí)物圖1</b></p><p><b> 實(shí)物圖2
90、</b></p><p><b> 實(shí)物圖3</b></p><p><b> 附錄2:程序</b></p><p><b> 單片機(jī)程序如下:</b></p><p> #include<reg52.h></p><p>
91、; #define uchar unsigned char</p><p> #define uint unsigned int</p><p> uchar flag,i,j;</p><p> sbit wr=P3^6;</p><p> sbit rd=P3^7;</p><p> void dela
92、y(uint z)</p><p><b> {</b></p><p><b> uint x,y;</b></p><p> for(x=z;x>0;x--)</p><p> for(y=110;y>0;y--);</p><p><b>
93、 }</b></p><p> void adopen()//adc0804初始化</p><p><b> {</b></p><p><b> wr=1;</b></p><p><b> wr=0;</b></p><p>&
94、lt;b> wr=1;</b></p><p><b> delay(1);</b></p><p><b> rd=0;</b></p><p><b> i=i;</b></p><p><b> i=i;//延時(shí)</b>&
95、lt;/p><p><b> j=P1;</b></p><p><b> rd=1;</b></p><p><b> }</b></p><p> void initial()//串口初始化</p><p><b> {</b
96、></p><p> TMOD=0x20;//設(shè)置定時(shí)器1為工作方式2</p><p><b> TH1=0xfd;</b></p><p><b> TL1=0xfd;</b></p><p><b> TR1=1;</b></p><p&g
97、t; REN=1;//串口始能REN=1時(shí)允許串行口接收數(shù)據(jù)</p><p> SM0=0;//模式1,8位數(shù)據(jù),波特率由軟件設(shè)置</p><p><b> SM1=1;</b></p><p> EA=1;//總通斷</p><p> ES=1;//串口通斷</p><p><b
98、> }</b></p><p> void main()</p><p><b> {</b></p><p> initial(); </p><p><b> while(1)</b></p><p><b> {</b&
99、gt;</p><p> adopen();</p><p> if(flag==1)</p><p><b> {</b></p><p><b> ES=0;</b></p><p><b> flag=0;</b></p>
100、<p><b> SBUF=j/2;</b></p><p> while(!TI);</p><p><b> TI=0;</b></p><p><b> ES=1;</b></p><p><b> }</b></p&g
101、t;<p><b> }</b></p><p><b> }</b></p><p> void ser() interrupt 4//串口中斷</p><p><b> {</b></p><p> while(TI);flag=1;</p&g
102、t;<p><b> }</b></p><p> 上位機(jī)VB部分程序如下:</p><p> Dim i As Single</p><p> Dim j As Integer</p><p> Dim k As Integer</p><p> Dim d(1) As
103、 Byte</p><p> Dim b As Long</p><p> Dim c As Double</p><p> Dim summ As Double</p><p> Dim e(20) As Double</p><p> Private Sub Combo1_click()</p>
104、;<p> MSComm1.CommPort = Combo1.ListIndex + 1 '選擇通訊口</p><p><b> End Sub</b></p><p> Private Sub Command1_Click()</p><p> MSComm1.PortOpen = True
105、 '打開(kāi)串口</p><p><b> End Sub</b></p><p> Private Sub Command10_Click()</p><p><b> End</b></p><p><b> End Sub</b></p>
106、;<p> Private Sub Form_Load() '設(shè)置串口</p><p> MSComm1.Settings = "9600,N,8,1" '串口通訊初始化:波特率為9600,沒(méi)有校驗(yàn)位,八位數(shù)據(jù)傳送,一位停止位</p><p> MSComm1.RThreshold =
107、1</p><p> MSComm1.InputMode = comInputModeText '以文本形式接收數(shù)據(jù)</p><p> Combo1.AddItem "COM1"</p><p> Combo1.AddItem "COM2"</p><p> Combo1.AddI
108、tem "COM3"</p><p> Combo1.AddItem "COM4"</p><p> Combo1.AddItem "COM5"</p><p> Combo1.AddItem "COM6"</p><p><b> j = 0&
109、lt;/b></p><p><b> End Sub</b></p><p> Private Sub MSComm1_OnComm() '程序的核心部分:VB的串口通訊控件MSComm</p><p> Dim a As String</p><p> Select Case MSC
110、omm1.CommEvent</p><p> Case comEvReceive '每接收一個(gè)數(shù)據(jù)就觸發(fā)一次事件</p><p> a = MSComm1.Input</p><p> b = Asc(a)</p><p> e(j) = b '收20個(gè)
111、數(shù)據(jù)取平均值再顯示出來(lái) 減小抖動(dòng)</p><p><b> j = j + 1</b></p><p> If j = 19 Then</p><p> MSComm1.PortOpen = False</p><p> For k = 0 To 19</p><p> summ =
112、summ + e(k)</p><p><b> Next k</b></p><p> c = summ / 20</p><p><b> summ = 0</b></p><p> i = (c / 255) * 10</p><p> If i < 0
113、.08 Then</p><p> Text2.Text = 0</p><p> Text1.Text = 0</p><p><b> Else</b></p><p> Text2.Text = i * 1.04</p><p> Text1.Text = 18.33766 * i
114、 * 1.04</p><p><b> End If</b></p><p> MSComm1.PortOpen = True</p><p><b> j = 0</b></p><p><b> End If</b></p><p> E
115、nd Select</p><p><b> 附錄3 元器件清單</b></p><p> 元器件清單如下表1:</p><p><b> 表1:元器件清單表</b></p><p> 由于這次的設(shè)計(jì)所用的電阻電容是在實(shí)驗(yàn)室找的而且很便宜就沒(méi)有計(jì)算在成本內(nèi),總的來(lái)說(shuō)這次設(shè)計(jì)的智能液位傳感器成
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于單片機(jī)實(shí)現(xiàn)的智能液位傳感器畢業(yè)論文
- 單片機(jī)實(shí)現(xiàn)智能液位傳感器大學(xué)課題論文(設(shè)計(jì))word格式
- 畢業(yè)論文--基于單片機(jī)的智能傳感器設(shè)計(jì)(含外文翻譯)
- 畢業(yè)論文---基于單片機(jī)的液位控制系統(tǒng)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)(論文)+基于單片機(jī)的濕度傳感器設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)論文(設(shè)計(jì))基于單片機(jī)的液位控制系統(tǒng)設(shè)計(jì)
- 基于單片機(jī)的智能臺(tái)燈畢業(yè)論文
- 基于profibus-dp現(xiàn)場(chǎng)總線的智能液位傳感器接口研發(fā)——畢業(yè)論文
- 基于profibus-dp現(xiàn)場(chǎng)總線的智能液位傳感器接口研發(fā)——畢業(yè)論文
- 畢業(yè)論文---基于單片機(jī)的智能血壓設(shè)計(jì)
- 基于單片機(jī)的數(shù)字式軸角傳感器設(shè)計(jì)-畢業(yè)論文外文翻譯
- 基于單片機(jī)的wifi智能小車畢業(yè)論文
- 基于51單片機(jī)的智能小車畢業(yè)論文
- 基于智能傳感器和單片機(jī)的溫度監(jiān)測(cè)系統(tǒng).pdf
- 基于單片機(jī)的智能小車控制畢業(yè)論文
- 基于單片機(jī)的智能小車設(shè)計(jì)畢業(yè)論文
- 基于單片機(jī)的智能窗簾設(shè)計(jì)-智能電網(wǎng)畢業(yè)論文
- 基于單片機(jī)的智能風(fēng)扇控制器設(shè)計(jì)【畢業(yè)論文】
- 基于51單片機(jī)實(shí)現(xiàn)智能電飯煲功能的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文
- 基于單片機(jī)的濕度傳感器設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論