嵌入式系統(tǒng)開發(fā)課程多路數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)_第1頁(yè)
嵌入式系統(tǒng)開發(fā)課程多路數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)_第2頁(yè)
嵌入式系統(tǒng)開發(fā)課程多路數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)_第3頁(yè)
嵌入式系統(tǒng)開發(fā)課程多路數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)_第4頁(yè)
嵌入式系統(tǒng)開發(fā)課程多路數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

多路數(shù)據(jù)收集系統(tǒng)設(shè)計(jì)2016.06題目要求所設(shè)計(jì)的數(shù)據(jù)收集系統(tǒng),共有16路信號(hào)輸入,每路信號(hào)都是0~10mV,每秒鐘收集一遍,將其數(shù)據(jù)傳給上位PC計(jì)算機(jī),本收集地點(diǎn)為50H。要求多路模擬開關(guān)用4067,A/D變換用ADC0809,運(yùn)算放大器用OP07,單片機(jī)用89C51,芯片用MAX232。設(shè)計(jì)其電路原理圖,用C51語(yǔ)言編制工作程序。整體方案設(shè)計(jì)依據(jù)題目要求,傳感器第一收集16路信號(hào),而后被多路模擬開關(guān)4067選通某一路信號(hào),接著經(jīng)過(guò)信號(hào)調(diào)治電路,由A/D變換器進(jìn)行模/數(shù)變換后發(fā)送給單片機(jī),以后經(jīng)過(guò)MAX232由RS232串口進(jìn)行通信,最后將數(shù)據(jù)傳達(dá)到上位PC計(jì)算機(jī)。所以,數(shù)據(jù)收集系統(tǒng)主要包含以下幾個(gè)主要環(huán)節(jié):信號(hào)選通環(huán)節(jié)因?yàn)轭}目要求收集的信號(hào)路數(shù)達(dá)到了16路,每一路信號(hào)的流通路線均同樣。假如為每路信號(hào)都設(shè)置相應(yīng)的放大、A/D變換單元,成本將大幅度提高。所以能夠接入一個(gè)多路模擬開關(guān)4076,輪番選通每一路信號(hào),實(shí)現(xiàn)多路信號(hào)共用一個(gè)運(yùn)算放大器和A/D變換單元,即降低了成本,又簡(jiǎn)化了電路。4067為16路模擬開關(guān),其內(nèi)部包含一個(gè)16選1的譯碼器和被譯碼輸出所控制的16個(gè)雙向模擬開關(guān)。當(dāng)嚴(yán)禁端INH置0時(shí),在I/N0-I/N15中被選中的某個(gè)輸入端與輸出公共端X接通,外面地點(diǎn)輸入端A、B、C、D決定了被選通端;當(dāng)INH置1時(shí),全部模擬開關(guān)均處于斷路狀態(tài)。信號(hào)調(diào)治電路為了方便信號(hào)的進(jìn)一步傳輸和辦理,一般均要在傳感器的輸出端接入信號(hào)調(diào)治電路,對(duì)傳感器輸出的信號(hào)進(jìn)行變換、隔絕、放大、濾波等辦理。此處的信號(hào)顛簸范圍只有0~10mV,屬于輕微信號(hào),需要進(jìn)行放大辦理。依據(jù)題目要求,本文設(shè)計(jì)的系統(tǒng)采納運(yùn)算放大器OP07。OP07是一種高精的度單片運(yùn)算放大器,其輸入失調(diào)電壓和漂移值均很低,適適用作前級(jí)放大器。A/D變換器因?yàn)閱纹瑱C(jī)只好辦理數(shù)字信號(hào),所以需要接入A/D變換器將模擬信號(hào)變換成數(shù)字信號(hào)。本文采納題目供給的ADC0809,它能夠和單片機(jī)直接通信。ADC0809由一個(gè)8路模擬開關(guān)、一個(gè)地點(diǎn)鎖存與譯碼器、一個(gè)A/D變換器和一個(gè)三態(tài)輸出鎖存器構(gòu)成。多路開關(guān)可選通8個(gè)模擬通道,同意8路模擬量分時(shí)輸入,共用A/D變換器進(jìn)行變換。三態(tài)輸出鎖器用于鎖存A/D變換完的數(shù)字量,當(dāng)OE端為高電平常,才能夠從三態(tài)輸出鎖存器取走變換完的數(shù)據(jù)。此處采納中止的方式使數(shù)據(jù)在單片機(jī)與ADC0809之間進(jìn)行互換,端口地點(diǎn)為FF50H;P0口和WR信號(hào)共同生成單片機(jī)的啟動(dòng)變換信號(hào);為了在啟動(dòng)變換的同時(shí)選通通道,將通道地點(diǎn)鎖存信號(hào)ALE與START相連;把P0口和RD同時(shí)處在有效位的組合信號(hào)與A/D變換器的輸出信號(hào)OE相連,那么通道的地點(diǎn)選擇和數(shù)據(jù)輸出共用一個(gè)地點(diǎn),可是二者不一樣時(shí)出現(xiàn);變換結(jié)束信號(hào)EOC經(jīng)過(guò)非門后接至89C51的INT1端。串口發(fā)送電路RS232是用正負(fù)電壓來(lái)表示邏輯狀態(tài),與TTL以高低電平表示邏輯狀態(tài)的規(guī)定不一樣。為了能夠同計(jì)算機(jī)接口或終端的TTL器件連結(jié),一定在RS232與TTL電路之間進(jìn)行電平的變換。本文采納題目供給的MAX232芯片達(dá)成TTL,EIA的雙向電平變換。系統(tǒng)原理框圖路模擬信號(hào)輸入多路模擬開關(guān)(4067)運(yùn)算放大器(OP07)A/D變換器(ADC0809)單片機(jī)(89C51)通信模塊(MAX232、RS232)PC上位計(jì)算機(jī)圖1系統(tǒng)原理框圖電路原理圖依據(jù)上文表達(dá)的設(shè)計(jì)方案的原理,能夠設(shè)計(jì)相應(yīng)的硬件電路圖,如圖2所示。圖2電路原理圖4程序設(shè)計(jì)方案依據(jù)前文所述,要實(shí)現(xiàn)題目要求,系統(tǒng)程序要包含3個(gè)主要模塊,即初始化系統(tǒng)、A/D變換模塊以及數(shù)據(jù)通信模塊。程序的整體流程圖如圖3所示。系系數(shù)統(tǒng)A/D統(tǒng)據(jù)初轉(zhuǎn)中通始換斷信化圖3程序整體流程圖系統(tǒng)初始化達(dá)成以及選通某一路模擬信號(hào)時(shí),單片機(jī)啟動(dòng)A/D變換器,對(duì)信號(hào)進(jìn)行的讀取、儲(chǔ)存操作。當(dāng)上位機(jī)發(fā)出懇求且要求的地點(diǎn)為50H時(shí),單片機(jī)進(jìn)入中止處理子程序,上傳數(shù)據(jù)。系統(tǒng)初始化主要達(dá)成準(zhǔn)時(shí)器,串行通信,中止的有關(guān)設(shè)置。(1)準(zhǔn)時(shí)器T0工作于模式1,充任16位準(zhǔn)時(shí)器,計(jì)數(shù)初值4C00H(對(duì)應(yīng)50ms),便于實(shí)現(xiàn)1s的巡回采樣;準(zhǔn)時(shí)器T1工作于模式2,充任波特率發(fā)生器,計(jì)數(shù)初值FDH,SMOD=0,獲得波特率為9.6K。(2)串行通信SMOD置1,同意單片機(jī)接收信號(hào)。(3)使能準(zhǔn)時(shí)器T0、外中止1、串行通信的中止。此中,T0中止達(dá)成1s的巡回采樣,外中止1達(dá)成A/D變換,串行通信中止達(dá)成與上位機(jī)的通信。A/D變換(1)用P1.4作為4067的使能控制;用P1.0、P1.1、P1.2、P1.3的組合狀態(tài)作為4067的通道地點(diǎn)選擇信號(hào)。(2)用P2.7作為A/D變換器的使能控制,數(shù)據(jù)從IN0輸入,地點(diǎn)映照為7FF0H。(3)經(jīng)過(guò)外面中止1巡回收集16路信號(hào),并存入從50H開始的后續(xù)單元里。數(shù)據(jù)通信當(dāng)數(shù)據(jù)變換達(dá)成后,由單片機(jī)向上位機(jī)發(fā)送聯(lián)系信號(hào)AAH,而后等候上位機(jī)返回應(yīng)答信號(hào):假如應(yīng)答信號(hào)為BBH,則向上位機(jī)發(fā)送數(shù)據(jù);反之則持續(xù)發(fā)送聯(lián)系信號(hào),并等候應(yīng)答。為了防止不測(cè)狀況致使的死循環(huán),所以加入了1s的超時(shí)考證,以保證下一次的巡回采樣得以順利進(jìn)行。源程序代碼/********************************************************************:program.cProgrammer:李博********************************************************************//***************************#include"reg52.h"#include"absacc.h"/**************************#defineucharunsignedchar#defineIN0XBYTE[0x7FF0]#defineP27P2^7#definechannelP1#defineE4067p1^4

頭文件**********************************/宏定義***********************************///定義ADC0809的IN0口地點(diǎn)//P2.7口,作為ADC0809的使能信號(hào)(低電平有效)/*P1.4作為4067的使能信號(hào)(低電平有效),P1.0、P1.1、P1.2、P1.3作為通道選擇*///4067使能控制端口(低電平有效)/**************************

全局變量***********************************/uchardata*result=0X50;//A/D變換的結(jié)果存入0X50及后來(lái)續(xù)地點(diǎn)單元ucharT0_count;//準(zhǔn)時(shí)器T0計(jì)數(shù),實(shí)現(xiàn)1s延時(shí)/*********************系統(tǒng)初始化函數(shù)initial()***************************/voidinitial(){/**************************準(zhǔn)時(shí)器初始化*******************************/TMOD=0X21;/*準(zhǔn)時(shí)器T0工作于模式1,充任16位準(zhǔn)時(shí)器;T1工作于模式2,充任波特率發(fā)生器*/TL0=0X00;//準(zhǔn)時(shí)器T0的計(jì)數(shù)初值設(shè)為4C00H(對(duì)應(yīng)50ms)TH0=0X4C;TL1=0XFD;//準(zhǔn)時(shí)器T1的計(jì)數(shù)初值設(shè)為FDH,SMOD=0,對(duì)應(yīng)波特率9.6KTH1=0XFD;T0_count=20;//利用1s=50ms×20,實(shí)現(xiàn)1s的延時(shí)程序/**************************串行通信初始化*****************************/SMOD=0X00;//波特率的SMOD=0SCON=0X50;//工作于方式1,使能接收(REN==1)/**************************中止初始化*********************************/IT1=1;//設(shè)置外中止1中止懇求信號(hào)為降落沿IE=0X96;//同意中止:準(zhǔn)時(shí)器T0、外中止1、串行通信TR0=1;//啟動(dòng)T0TR1=1;//啟動(dòng)T1}/*****************************************************************************************AD變換函數(shù)ADC0809()***************************************************************************************************/voidADC0809(){channel=0X00;//使能4067,同時(shí)選擇到channel1sbitADC_flag;/*標(biāo)記位:中止響應(yīng)前為0,循環(huán)等候變換結(jié)束;變換結(jié)束后,進(jìn)入中止,置1*/uchari;for(i=0;i<16;i++){ADC_flag=0;//中止響應(yīng)前為0,以便循環(huán)等候變換結(jié)束IN0=0;//經(jīng)過(guò)P2.7==0和WR啟動(dòng)AD變換while(!ADC_flag);/*AD變換結(jié)束后,進(jìn)入中止程序,履行,flag置1,跳出循環(huán),持續(xù)履行下邊的語(yǔ)句*/*(result+i)=IN0;//把變換結(jié)果存入89C51的RAM中channel=i;//選中下一路通道}p27=1;//4067不使能,A/DC不使能E4067=1;}/****履行完后,channel=15,result仍指向50H,4067不使能,ADC不使能**********//******************************************************************************************串行通信件數(shù)RS232()*****************************************************************************************************/voidRS232(){uchari;uchardata*receive=0X60;//把60H作為接受上位機(jī)信號(hào)的儲(chǔ)存單元*receive=0X00;//在60H單元中放入初值00HSBUF=0XAA;//向上位機(jī)發(fā)送AAH作為聯(lián)系信號(hào)while(TI==0);//等候發(fā)送達(dá)成,并置TI為0,以等候下一次發(fā)送TI=0;while(RI==0&&T0_count!=0);/*等候上位機(jī)的應(yīng)答信號(hào)***并加入加入1s超時(shí)的判斷***/if(T0_count!=0){RI=0;*receive=SBUF;//把接遇到的應(yīng)答信號(hào)存入receiveif(receive==0XBB)//上位機(jī)準(zhǔn)備好接收數(shù)據(jù),向上位機(jī)傳遞數(shù)據(jù){ET0=0;//關(guān)掉T0中止,保證在傳遞數(shù)據(jù)的過(guò)程中不進(jìn)行下一次采樣for(i=0;i<16;i++){SBUF=*(result+i);while(TI==0);TI=0;}ET0=1;//開啟T0中止}}}/************************************************************************************A/DC變換INT1中止,向單片機(jī)傳遞數(shù)據(jù)*******************************************************************************************/voidINT_ADC()interrupt2{ADC_flag=1;}/*****************************************************************************************準(zhǔn)時(shí)器T0中止,實(shí)現(xiàn)1s準(zhǔn)時(shí)************************************************************************************************/voidINT_T0()interrupt1{TL0=0X00;//準(zhǔn)時(shí)器T0計(jì)數(shù)初值4C00H(對(duì)應(yīng)50ms)TH0=0X4C;T0_count--;}/***********************************************************************************************主函數(shù)main()*******************************************************************************************************/voidmain(){ini

溫馨提示

  • 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論