【正文】
個最小系統(tǒng),通過單片機(jī)來控制ADC0804的信號采集轉(zhuǎn)換以及對RS232串口通信的控制。所以我們采用的是ADC0804。但是兩種方案不同之處就在于傳感器的選擇和AD的選擇。3.掌握單片機(jī)最小系統(tǒng)的組成。如今傳感器的應(yīng)用是非常的廣泛,并且已經(jīng)融入到我們的生活,工作,科研等領(lǐng)域中。各種方式都根據(jù)其需要設(shè)計(jì)完成,其結(jié)構(gòu)、量程和精度適用于各自不同的場合,大多結(jié)構(gòu)較為復(fù)雜,制造成本偏高;市面上也有現(xiàn)成的液位計(jì),有投入式、浮球式、彈簧式等,多數(shù)成品價格驚人。能精確到厘米。旨在發(fā)揮我們的設(shè)計(jì),創(chuàng)新意識。所以我們的設(shè)計(jì)應(yīng)更加創(chuàng)新利用更小的成本設(shè)計(jì)生產(chǎn)出更好的傳感器。2總體方案設(shè)計(jì)通過查閱大量相關(guān)技術(shù)資料,并結(jié)合自己的實(shí)際知識,我主要提出了兩種技術(shù)方案來實(shí)現(xiàn)系統(tǒng)功能。對于AD的選擇主要是ADC0832與ADC0804之間的選擇。 本系統(tǒng)電路模塊主要分為四個單元模塊,它們分別是:傳感器輸出部分;ADC0804的數(shù)據(jù)采集轉(zhuǎn)換模塊;單片機(jī)最小系統(tǒng)模塊;。CS 、RD 用來讀A/D 轉(zhuǎn)換的結(jié)果,當(dāng)它們同時為低電平時,輸出數(shù)據(jù)鎖存器DB0~DB7 各端上出現(xiàn)8 位并行二進(jìn)制數(shù)碼。WR 由低跳高時A/D 轉(zhuǎn)換開始,8 位逐次比較需88=64 個時鐘周期,再加上控制邏輯操作,一次轉(zhuǎn)換需要66~73 個時鐘周期。模擬地AGND 和數(shù)字地DGND 分別設(shè)置引入端,使數(shù)字電路的地電流不影響模擬信號回路,以防止寄生耦合造成的干擾。4 軟件設(shè)計(jì) 本次設(shè)計(jì)主要用到的軟件主要涉及到單片機(jī)的c語言編程,上位機(jī)的VB部分的界面編程。 i=i。 REN=1。設(shè)置串口 = 9600,N,8,1 39。5 系統(tǒng)調(diào)試 硬件結(jié)構(gòu)部分硬件部分我們先是通過PROTEL軟件畫的AD部分;單片機(jī)部分和RS232部分的原理圖,然后這部分沒有畫PCB圖就直接用萬用板和排線進(jìn)行搭建的。在剛開始設(shè)計(jì)上位機(jī)顯示這部分時我們沒有想到由于系統(tǒng)整體的原因,所采集到得數(shù)據(jù)有很大的抖動,討論過后發(fā)現(xiàn)是有多方面的原因的。這說明AD的線性度還是比較高的。實(shí)現(xiàn)了將二進(jìn)制的量化轉(zhuǎn)換為以厘米為單位的ASCLL標(biāo)準(zhǔn)字符串形式傳送到PC機(jī)。這次智能綜合設(shè)計(jì)歷時接近一個月,在這期間可以說是苦多于甜,但是可以學(xué)到很多很多的東西,不僅可以鞏固以前所學(xué)過的知識,而且學(xué)到了很多書本上沒有接觸過的知識。通過這次課程設(shè)計(jì)自己看到了許多工程和一些產(chǎn)品中的要求,讓自己明白了自己現(xiàn)在缺乏很多工程意識和思考問題的全面性。x0。 rd=0。 TR1=1。 if(flag==1){ES=0。}上位機(jī)VB部分程序如下:Dim i As SingleDim j As IntegerDim k As IntegerDim d(1) As ByteDim b As LongDim c As DoubleDim summ As DoubleDim e(20) As DoublePrivate Sub Combo1_click() = + 1 39。收20個數(shù)據(jù)取平均值再顯示出來 減小抖動 j = j + 1 If j = 19 Then = False For k = 0 To 19 summ = summ + e(k) Next k c = summ / 20 summ = 0 i = (c / 255) * 10 If i Then = 0 = 0 Else = i * = * i * End If = True j = 0 End IfEnd Select附錄3 元器件清單元器件清單如下表1:品名單位單價(元)數(shù)量價格(元)STC89C52個616ADC0804個10110MAX232個2 24串口母頭套21.6USB轉(zhuǎn)串口線根20120面包板塊428排線米若干壓力傳感器D3B個25125晶振個2 1合計(jì) 表1:元器件清單表由于這次的設(shè)計(jì)所用的電阻電容是在實(shí)驗(yàn)室找的而且很便宜就沒有計(jì)算在成本內(nèi),總的來說這次設(shè)計(jì)的智能液位傳感器成本還在預(yù)算范圍內(nèi)。打開串口End SubPrivate Sub Command10_Click()EndEnd SubPrivate Sub Form_Load() 39。SBUF=j/2。//串口始能REN=1時允許串行口接收數(shù)據(jù) SM0=0。 i=i。y0。在設(shè)計(jì)過程中他為我們提供了很多的幫助和指導(dǎo)。通過畫程序方框圖可以使我們對所要完成的每一步任務(wù)都有一個很清楚的思路,讓我們明白每一步的任務(wù),同時在程序測試的過程中也有利于查錯。誤差主要就是來至壓力傳感器的輸出與ADC0804的輸入有一定的差距,這主要是由于整個系統(tǒng)連接起來過后傳感器的內(nèi)部電阻將其輸出電壓拉下來了,我們在以后對系統(tǒng)加入電壓跟隨器來改善。: 液面高度的測量數(shù)據(jù)這些數(shù)據(jù)都是在室內(nèi)測得的,在室溫30度左右測得。后來經(jīng)過老師對數(shù)字濾波的詳細(xì)講解,我們下來也查閱了于數(shù)字濾波相關(guān)的資料,然后運(yùn)用到上位機(jī)部分。比如像我們這次的設(shè)計(jì)就出現(xiàn)過這樣的問題,在焊接完單片機(jī)最小系統(tǒng)和RS232串口通信后覺得因該能下載程序到單片機(jī)內(nèi)部了,結(jié)果利用直流可調(diào)的穩(wěn)壓電源給單片機(jī)加了+5V的工作電壓結(jié)果單片機(jī)不能工作。以文本形式接收數(shù)據(jù) COM1 COM2 COM3 COM4 COM5 COM6j = 0End Sub程序的核心部分:VB的串口通訊控件MSCommPrivate Sub MSComm1_OnComm() Dim a As StringSelect Case Case EvReceive 39。//模式1,8位數(shù)據(jù),波特率由軟件設(shè)置 SM1=1。//延時 j=P1。該程序部分設(shè)計(jì)過程中使用的是keil軟件來編寫的,利用STCISP軟件進(jìn)行下載和調(diào)試的。所以輸入電壓的范圍可以通過調(diào)整VREF/2 引腳處的電壓加以改變,轉(zhuǎn)換器的零點(diǎn)無需調(diào)整。當(dāng)fCLK 超過640KHZ,轉(zhuǎn)換精度下降,超過極限值1460KHZ 時便不能正常工作。其典型應(yīng)用參數(shù)為:R=10KΩ,C=150PF,