智能數(shù)字電壓表設(shè)計實驗報告_第1頁
智能數(shù)字電壓表設(shè)計實驗報告_第2頁
智能數(shù)字電壓表設(shè)計實驗報告_第3頁
智能數(shù)字電壓表設(shè)計實驗報告_第4頁
智能數(shù)字電壓表設(shè)計實驗報告_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

PAGEPAGE9實驗一智能數(shù)字電壓表設(shè)計一、實驗?zāi)康模?、掌握ADC0809芯片的性能和典型應(yīng)用及對應(yīng)的硬件電路。2、掌握A/D轉(zhuǎn)換芯片ADC0809將模擬量轉(zhuǎn)換成數(shù)字量的過程與基本原理。3、掌握了解A/D轉(zhuǎn)換軟件的不同控制方式。4、掌握VB軟件的基本使用方法以及其使用的編程語言。二、實驗內(nèi)容:1、運用單片機編寫程序,實現(xiàn)ADC0809的時序控制。2、運用VB編寫一個上位機顯示界面。3、實現(xiàn)對ADC0809器件的通道0上外接的可調(diào)電阻的模擬電壓轉(zhuǎn)換成數(shù)字量,通過所編寫的VB界面顯示出來。4、根據(jù)題目要求,設(shè)計電路,并進行實際硬件安裝與調(diào)試。三、實驗原理與設(shè)計(一)硬件部分1、ADC0809工作原理ADC0809是CMOS器件,不僅包括一個8位的逐次逼近型的ADC部分,而且還提供一個8通道的模擬多路開關(guān)和通道尋址邏輯,因而把它作為簡單的“數(shù)據(jù)采集系統(tǒng)”。利用它可直接輸入8個單端的模擬信號分時進行A/D轉(zhuǎn)換,常運用于多點巡回檢測和過程控制、運動控制中。1)主要技術(shù)指標和特性(1)分辨率:8位。(2)總的不可調(diào)誤差:ADC0808為±1/2LSB,ADC0809為±1LSB。(3)轉(zhuǎn)換時間取決于芯片時鐘頻率,如CLK=500kHz時,TCONV=128μs。(4)單一電源:+5V。(5)模擬輸入電壓范圍:單極性0~5V,雙極性±5V、±10V(需外加一定電路)。(6)具有可控三態(tài)輸出緩存器。(7)啟動轉(zhuǎn)換控制為脈沖式(正脈沖),上升沿使所有內(nèi)部寄存器清零,下降沿使A/D轉(zhuǎn)換開始。(8)使用時不需進行零點和滿刻度調(diào)節(jié)。2)內(nèi)部結(jié)構(gòu)和外部引腳介紹ADC0808/0809的內(nèi)部結(jié)構(gòu)如圖1所示以及各引腳定義分述如下:圖1ADC0809內(nèi)部結(jié)構(gòu)框圖(1)IN0~IN7——8路模擬輸入,通過3根地址譯碼線ADDA、ADDB、ADDC來選通一路。通道選擇表如下:通道選擇IN0IN1IN2IN3IN4IN5IN6IN7ADDAADDBADDC000001010011100101110111表1地址信號與選中通道關(guān)系表(2)D7~D0——A/D轉(zhuǎn)換后的數(shù)據(jù)輸出端,為三態(tài)可控輸出,故可直接和微處理器數(shù)據(jù)線連接。8位排列順序是D7為最高位,D0為最低位。(3)ADDA、ADDB、ADDC——模擬通道選擇地址信號,ADDA為低位,ADDC為高位。地址信號與選中通道對應(yīng)關(guān)系如表11.3所示。(4)VR(+)、VR(-)——正、負參考電壓輸入端,用于提供片內(nèi)DAC電阻網(wǎng)絡(luò)的基準電壓。在單極性輸入時,VR(+)=5V,VR(-)=0V;雙極性輸入時,VR(+)、VR(-)分別接正、負極性的參考電壓。(5)ALE——地址鎖存允許信號,高電平有效。當此信號有效時,A、B、C三位地址信號被鎖存,譯碼選通對應(yīng)模擬通道。在使用時,該信號常和START信號連在一起,以便同時鎖存通道地址和啟動A/D轉(zhuǎn)換。(6)START——A/D轉(zhuǎn)換啟動信號,正脈沖有效。加于該端的脈沖的上升沿使逐次逼近寄存器清零,下降沿開始A/D轉(zhuǎn)換。如正在進行轉(zhuǎn)換時又接到新的啟動脈沖,則原來的轉(zhuǎn)換進程被中止,重新從頭開始轉(zhuǎn)換。(7)EOC——轉(zhuǎn)換結(jié)束信號,高電平有效。該信號在A/D轉(zhuǎn)換過程中為低電平,其余時間為高電平。該信號可作為被CPU查詢的狀態(tài)信號,也可作為對CPU的中斷請求信號。在需要對某個模擬量不斷采樣、轉(zhuǎn)換的情況下,EOC也可作為啟動信號反饋接到START端,但在剛加電時需由外電路第一次啟動。(8)OE——輸出允許信號,高電平有效。當微處理器送出該信號時,ADC0808/0809的輸出三態(tài)門被打開,使轉(zhuǎn)換結(jié)果通過數(shù)據(jù)總線被讀走。在中斷工作方式下,該信號往往是CPU發(fā)出的中斷請求響應(yīng)信號。3)工作時序與使用說明ADC0809的工作時序如圖2所示。當通道選擇地址有效時,ALE信號一出現(xiàn),地址便馬上被鎖存,這時轉(zhuǎn)換啟動信號緊隨ALE之后(或與ALE同時)出現(xiàn)。START的上升沿將逐次逼近寄存器SAR復位,在該上升沿之后的2μs加8個時鐘周期內(nèi)(不定),EOC信號將變低電平,以指示轉(zhuǎn)換操作正在進行中,直到轉(zhuǎn)換完成后EOC再變高電平。微處理器收到變?yōu)楦唠娖降腅OC信號后,便立即送出OE信號,打開三態(tài)門,讀取轉(zhuǎn)換結(jié)果。圖2ADC0809工作時序2、下位機電路設(shè)計1)設(shè)計思路(1)由于選用通道IN0,ADDA、ADDB、ADDC應(yīng)為000,所以ADDA、ADDB、ADDC三個引腳分別接地。(2)通道IN0外接一個1K的滑動變阻器,使其兩端電壓可在0~5V之間變動。(3)ADC0809輸出允許信號OE接單片機串行中斷引腳P3.3,當0809轉(zhuǎn)換結(jié)束,輸出允許,進入串行中斷,CPU讀取SBUF中內(nèi)容,開始內(nèi)部轉(zhuǎn)換數(shù)據(jù)以便顯示。(4)單片機引腳P3.7、P3.6分別接一個外部開關(guān)按鈕,當按鈕為“開”時,單片機接收轉(zhuǎn)換數(shù)據(jù)以及發(fā)送顯示,當按鈕為“關(guān)”時,單片機不進行轉(zhuǎn)換工作。(5)運用單片機定時器0,給ADC0809一個它工作轉(zhuǎn)換需要的一個時鐘,所以ADC0809clock引腳接單片機定時器0 P3.4腳。(6)VREF(+),VREF(-)分別接電源與地,作為為參考電壓輸入。圖3下位機電路設(shè)計圖(二)軟件部分1、下位機程序編寫與分析下位機的程序主要作用是對AD0809進行時序控制,以及對0809轉(zhuǎn)換好的數(shù)據(jù)進行數(shù)值字符轉(zhuǎn)換,并且發(fā)送到上位機進行顯示。開始工作時,程序檢查上位機是否啟動開始按鈕,當按鍵為開始時,接著判斷是否有工作命令發(fā)出,有的話接受A/D轉(zhuǎn)換的結(jié)果,并把轉(zhuǎn)換好的數(shù)字信號,轉(zhuǎn)換為字符,當接收到上位機的命令,發(fā)送到上位機進行顯示。具體程序分析見附件。以下是下位機程序流程圖:檢查鍵盤輸入檢查鍵盤輸入初始化工作命令判斷A/D轉(zhuǎn)換數(shù)字字符轉(zhuǎn)換發(fā)送命令判斷結(jié)束發(fā)送數(shù)據(jù)開始是是否圖4下位機程序流程圖2、上位機界面設(shè)置及程序編寫上位機界面包括:1、顯示窗口,用于顯示測量數(shù)據(jù)。2、串口選擇下拉菜單,用于串口選擇。3、按鈕,串口打開即串口連接按鈕、開始測量按鈕、停止測量按鈕,退出按鈕。4、上位機程序,以及程序說明:PrivateSubCommand1_Click()'開始OnErrorGoToerraMSComm1.Output="1"'發(fā)送工作指令Timer1.Enabled=True'開定時器ExitSuberra:IfErr.Number=8018Then'出錯處理MsgBox"請選擇發(fā)送串口"EndIfEndSubPrivateSubCommand3_Click()'打開串口OnErrorGoToerraIfMSComm1.PortOpen=TrueThenMSComm1.PortOpen=Falsep=Val(Combo1.ListIndex)MSComm1.CommPort=1+p'串口選擇MSComm1.PortOpen=TrueMsgBox"串口成功打開"ExitSuberra:IfErr.Number=8002Then'出錯處理MsgBox"沒有這個串口,重新選擇"EndIfIfErr.Number=8005ThenMsgBox"該串口已使用,重新選擇"EndIfEndSubPrivateSubCommand4_Click()'停止OnErrorGoToerraMSComm1.Output="0"'發(fā)送停止指令Timer1.Enabled=False'關(guān)定時器ExitSuberra:IfErr.Number=8018Then'出錯處理MsgBox"請選擇發(fā)送串口"EndIfEndSubPrivateSubCommand5_Click()'退出程序OnErrorGoToerraMSComm1.Output="0"'發(fā)送停止測量指令Timer1.Enabled=False'關(guān)定時器EndExitSuberra:IfErr.Number=8018Then'出錯處理EndEndIfEndSubPrivateSubForm_Load()Timer1.Interval=150'定時器初始值--150msTimer1.Enabled=False'關(guān)定時器EndSubPrivateSubTimer1_Timer()'定時工作MSComm1.Output="2"'向下位機發(fā)送數(shù)據(jù)指指令Text2.Text=Trim(MSComm1.Input)'刷新上位機顯示EndSub總結(jié):通過這次智能數(shù)字電壓表的設(shè)計,使我們得到了一次專業(yè)知識、專業(yè)技能分析和解決現(xiàn)實問題的能力提升。本次實驗不管是硬件還是軟件的設(shè)計,都讓我們進一步理解了模數(shù)轉(zhuǎn)換的工作原理以及單片機的編程,使我們在實驗的應(yīng)用學習中,以及在用單片機編程設(shè)計思路技巧的掌握方面都能向前邁了一大步,課程設(shè)計讓我們把以前學習到的知識得到鞏固和進一步的提高認識,對這些上課所學的知識通過實驗,使我們鞏固并深化的認識和理解,使理論得以升華。在設(shè)計實驗的時候我們參考了很多資料,通過此次實驗,我們都有了很大的收獲,同時也使我們獲得了許多經(jīng)驗和教訓:(1)這次的硬件電路圖雖不是很復雜,但是選擇哪個設(shè)計方案比較合適,我們小組也做了討論。通過查找資料以及小組討論,最終確定了這個方案。通過討論使得我們對過去不太明白的知識點得到鞏固。(2)在軟件用C言語實現(xiàn)時,因為有很多種實現(xiàn)方案,我們都試著去如何使設(shè)計編程具有更好的簡潔性、可行性,最后在小組討論和嘗試下最后完成了的設(shè)計并且功能得到了較好的實現(xiàn)效果。(3)在做上位機界面時,在使用VC,還是VB進行編寫,有過考慮,由于以前VB軟件之前有學習過,所以小組討論使用熟悉的VB軟件進行編寫,盡量簡化界面程序也可達到預先要求。本次實驗是小組完成,不但加強了專業(yè)知識的學習,還提高了同學之間團結(jié)協(xié)作精神。附件:下位機程序#include<reg51.h>//****ADC0809定義**********************************sbitstart=P3^2;sbitk=P3^4;voidclock();//提供ADC0809脈沖--69個unsignedcharADC0809();//****全局定義************************************sbitStop=P3^6; //手動操作--“停止”sbitBegin=P3^7; //手動操作--“開始”unsignedcharInstruct=0;//指令接收bitSendData=0; //發(fā)送標志unsignedchari=0;V[5]={48,46,48,48,86};//"0.00V"unsignedintVOL=0; //電壓數(shù)值//**************************************************voidmain(void){ SCON=0x50;//REN=1允許串行接受狀態(tài),串口工作模式1 TMOD=0x20;//定時器工作方式2 PCON|=0x80;//波特率9600、數(shù)據(jù)位8、停止位1。效驗位無(11.0592) TH1=-6; TL1=-6; TR1=1; ES=1; //開串口中斷 EA=1; //開總中斷 while(1) { if(Stop==0)Instruct=48; //停止測量及發(fā)送 if(Begin==0)Instruct=49; //測量及發(fā)送數(shù)據(jù) if(Instruct==49) //9-10ms { i=10; //采樣10次均值 while(i--) VOL+=ADC0809(); VOL=VOL/10; P1=VOL; VOL=(VOL*49)/25; V[0]=(VOL/100)+48; //發(fā)送處理--數(shù)值字符轉(zhuǎn)換 V[2]=(VOL%100/10)+48; V[3]=(VOL%10)+48; if(SendData==1) //6-7ms { SBUF=32; //SUBF接受發(fā)送緩沖器--空格 while(TI==0); TI=0; for(i=0;i<5;i++) { SBUF=V[i]; while(TI==0); TI=0; } SendData=0; } VOL=0; } }}void

溫馨提示

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

評論

0/150

提交評論