嵌入式系統(tǒng)開發(fā)課程_第1頁
嵌入式系統(tǒng)開發(fā)課程_第2頁
嵌入式系統(tǒng)開發(fā)課程_第3頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

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

文檔簡介

1、多路數(shù)據(jù)采集系統(tǒng)設(shè)計2016.061題目要求所設(shè)計的數(shù)據(jù)采集系統(tǒng),共有16路信號輸入,每路信號都是010mV,每秒鐘采集一遍,將其數(shù)據(jù)傳給上位PC計算機,本采集地址為50H。要求多路模擬開關(guān)用4067,A/D轉(zhuǎn)換用ADC0809,運算放大器用OP07,單片機用89C51,芯片用MAX232。設(shè)計其電路原理圖,用C51語言編制工作程序。2總體方案設(shè)計根據(jù)題目要求,傳感器首先采集16路信號,然后被多路模擬開關(guān)4067選通某一路信號,接著通過信號調(diào)理電路,由A/D轉(zhuǎn)換器進行模/數(shù)轉(zhuǎn)換后發(fā)送給單片機,之后通過MAX232由RS232申口進行通訊,最終將數(shù)據(jù)傳遞到上位PC計算機。因此,數(shù)據(jù)采集系統(tǒng)主要包

2、括以下幾個主要環(huán)節(jié):2.1信號選通環(huán)節(jié)由丁題目要求采集的信號路數(shù)達到了16路,每一路信號的流通路線均相同。如果為每路信號都設(shè)置相應(yīng)的放大、A/D轉(zhuǎn)換單元,成本將大幅度提升。因此可以接入一個多路模擬開關(guān)4076,輪流選通每一路信號,實現(xiàn)多路信號共用一個運算放大器和A/D轉(zhuǎn)換單元,即降低了成本,乂簡化了電路。4067為16路模擬開關(guān),其內(nèi)部包括一個16選1的譯碼器和被譯碼輸出所控制的16個雙向模擬開關(guān)。當(dāng)禁止端INH置0時,在I/N0I/N15中被選中的某個輸入端與輸出公共端X接通,外部地址輸入端A、B、C、D決定了被選通端;當(dāng)INH置1時,所有模擬開關(guān)均處丁斷路狀態(tài)。2.2信號調(diào)理電路為了方便信

3、號的進一步傳輸和處理,一般均要在傳感器的輸出端接入信號調(diào)理電路,對傳感器輸出的信號進行變換、隔離、放大、濾波等處理。此處的信號波動范圍只有010mV,屆丁微弱信號,需要進行放大處理。按照題目要求,本文設(shè)計的系統(tǒng)選用運算放大器OP07。OP07是一種高精的度單片運算放大器,其輸入失調(diào)電壓和漂移值均很低,適合用作前級放大器。23A/D轉(zhuǎn)換器由丁單片機只能處理數(shù)字信號,所以需要接入A/D轉(zhuǎn)換器將模擬信號轉(zhuǎn)換成數(shù)字信號。本文采用題目提供的ADC0809,它可以和單片機直接通訊。ADC0809由一個8路模擬開關(guān)、一個地址鎖存與譯碼器、一個A/D轉(zhuǎn)換器和一個三態(tài)輸出鎖存器組成。多路開關(guān)可選通8個模擬通道,

4、允許8路模擬量分時輸入,共用A/D轉(zhuǎn)換器進行轉(zhuǎn)換。三態(tài)輸出鎖器用丁鎖存A/D轉(zhuǎn)換完的數(shù)字量,當(dāng)OE端為高電平時,才可以從三態(tài)輸出鎖存器取走轉(zhuǎn)換完的數(shù)據(jù)。此處采用中斷的方式使數(shù)據(jù)在單片機與ADC0809之間進行交換,端口地址為FF50H;P0口和WR信號共同生成單片機的啟動轉(zhuǎn)換信號;為了在啟動轉(zhuǎn)換的同時選通通道,將通道地址鎖存信號ALE與START相連;把P0口和旬同時處在有效位的組合信號與A/D轉(zhuǎn)換器的輸出信號OE相連,那么通道的地址選擇和數(shù)據(jù)輸出共用一個地址,但是兩者不同時出現(xiàn);轉(zhuǎn)換結(jié)束信號EOC通過非門后接至89C51的1NT1端。2-4串口發(fā)送電路RS232是用正負電壓來表示邏輯狀態(tài),與

5、TTL以高低電平表示邏輯狀態(tài)的規(guī)定不同。為了能夠同計算機接口或終端的TTL器件連接,必須在RS232與TTL電路之間進行電平的轉(zhuǎn)換。本文選用題目提供的MAX232芯片完成TTL,EIA的雙向電平轉(zhuǎn)換。2,5系統(tǒng)原理框圖16路模擬信號輸入圖1系統(tǒng)原理框圖多路模擬開關(guān)(4067)3電路原理圖錯誤!未找到引根據(jù)上文敘述的設(shè)計方I案的原理,可以設(shè)計相應(yīng)的硬件電曄圖,如用源。所示。運算放大富(OP07)圖2電路原理圖4程序設(shè)計方案A/D轉(zhuǎn)換器(ADC0809)根據(jù)前文所述,要實胃題目率求,系縊程序率句含3個f要模塊,即初始化系統(tǒng)、A/D轉(zhuǎn)換模塊以及數(shù)據(jù)通信模塊。仰機、你8«知錯誤未找到引用源。

6、所示。系統(tǒng)衩行的讀取、理子程序,r始化完戊以及遺存喋剿上修勰:才初始化爆模!'以信號口寸,蚯片機由州'位機發(fā)出請方(MAX232、RS232)地址為5(A/D轉(zhuǎn)換齊,對f舊時擇礦128文檔來源軸:爪網(wǎng)絡(luò)收集恂柿word版本可Jfr-I換PC上位計算機出數(shù)據(jù)通信'言號進,進入中斷處4,1系統(tǒng)初始化主要完成定時器,申行通信,中斷的相關(guān)設(shè)置。(1) 定時器T0工作丁模式1,充當(dāng)16位定時器,計數(shù)初值4C00H(對應(yīng)50ms),便丁實現(xiàn)1s的巡回采樣;定時器T1工作丁模式2,充當(dāng)波特率發(fā)生器,計數(shù)初值FDH,SMOD=0,得到波特率為9.6K。(2) 申行通信SMOD置1,允許

7、單片機接收信號。(3) 使能定時器T0、外中斷1、申行通信的中斷。其中,T0中斷完成1s的巡回采樣,外中斷1完成A/D轉(zhuǎn)換,申行通信中斷完成與上位機的通信。4,2A/D轉(zhuǎn)換(1) 用P1.4作為4067的使能控制;用P1.0、P1.1、P1.2、P1.3的組合狀態(tài)作為4067的通道地址選擇信號。(2) 用P2.7作為A/D轉(zhuǎn)換器的使能控制,數(shù)據(jù)從IN0輸入,地址映射為7FF0H。(3) 通過外部中斷1巡回采集16路信號,并存入從50H開始的后續(xù)單元里。43數(shù)據(jù)通信當(dāng)數(shù)據(jù)轉(zhuǎn)換完成后,由單片機向上位機發(fā)送聯(lián)絡(luò)信號AAH,然后等待上位機返回應(yīng)答信號:如果應(yīng)答信號為BBH,則向上位機發(fā)送數(shù)據(jù);反之則繼

8、續(xù)發(fā)送聯(lián)絡(luò)信號,并等待應(yīng)答。為了避免意外情況導(dǎo)致的死循環(huán),所以加入了1s的超時驗證,以保證下一次的巡回采樣得以順利進行。5源程序代碼/* Filename:program.c* Programmer:李博/*#include"reg52.h"#include"absacc.h"/*#defineucharunsignedchar#defineIN0XBYTE0x7FF0#defineP27P2A7#definechannelP1*/頭文件*/定義ADC0809的IN0口地址/P2.7口,作為ADC0809的使能信號(低電平有效)/*P1.4作為4067的

9、使能信號(低電平有效),P1.0、P1.1、P1.2、P1.3作為通道選擇*/4067使能控制端口(低電平有效)全局變量*/宏定義*/#defineE4067p1A4/*uchardata*result=0X50;ucharT0_count;/*voidinitial()/*TMOD=0X21;TL0=0X00;TH0=0X4C;定時器T1的計數(shù)初值設(shè)為FDH,SMOD=0,對應(yīng)波特率9.6KTL1=0XFD;TH1=0XFD;T0_count=20;/*SMOD=0X00;SCON=0X50;/*/A/D轉(zhuǎn)換的結(jié)果存入0X50及其后續(xù)地址單元定時器T0計數(shù),實現(xiàn)1s延時系統(tǒng)初女臺化函數(shù)ini

10、tial。*/定時器初始化*/*定時器T0工作丁模式1,充當(dāng)16位定時器;T1工作丁模式2,充當(dāng)波特率發(fā)生器*/定時器T0的計數(shù)初值設(shè)為4C00H(對應(yīng)50ms)利用1s=50msx20,實現(xiàn)1s的延時程序串行通信初始化*/波特率的SMOD=0工作丁方式1,使能接收(REN=1)中斷初始化*/設(shè)置外中斷1中斷請求信號為下降沿允許中斷:定時器T0、外中斷1、申行通信啟動T0啟動T1IT1=1;IE=0X96;TR0=1;TR1=1;/*ad轉(zhuǎn)換函數(shù)ADC0809()*/voidADC0809()channel=0X00;sbitADC_flag;uchari;for(i=0;i<16;i+

11、)ADC_flag=0;IN0=0;while(!ADC_flag);*(result+i)=IN0;使能4067,同時選擇到channel1/*標志位:中斷響應(yīng)前為0,循環(huán)等待轉(zhuǎn)換結(jié)束;轉(zhuǎn)換結(jié)束后,進入中斷,置1*/中斷響應(yīng)前為0,以便循環(huán)等待轉(zhuǎn)換結(jié)束通過P2.7=0和WR啟動AD轉(zhuǎn)換/*AD轉(zhuǎn)換結(jié)束后,進入中斷程序,執(zhí)行,flag置1,跳出循環(huán),繼續(xù)執(zhí)行下面的語句*/把轉(zhuǎn)換結(jié)果存入89C51的RAM中channel=i;選中下一路通道p27=1;/4067不使能,A/DC不使能E4067=1;/*執(zhí)行完后,channel=15,result仍指向50H,4067不使能,ADC不使能*/*/

12、*RS232()*/voidRS232()(uchari;uchardata*receive=0X60;*receive=0X00;SBUF=0XAA;while(TI=0);TI=0;while(RI=0&&T0_count!=0);/把60H作為接受上位機信號的存儲單元在60H單元中放入初值00H向上位機發(fā)送AAH作為聯(lián)絡(luò)信號等待發(fā)送完成,并置TI為0,以等待下一次發(fā)送/*等待上位機的應(yīng)答信號*并加入加入1s超時的判斷*/if(T0_count!=0)RI=0;把接受到的應(yīng)答信號存入receive上位機準備好接收數(shù)據(jù),向上位機傳送數(shù)據(jù)*receive=SBUF;if(rec

13、eive=0XBB)關(guān)掉T0中斷,保證在傳送數(shù)據(jù)的過程中不進行下一次采樣ET0=0;for(i=0;i<16;i+)SBUF=*(result+i);while(TI=0);TI=0;開啟T0中斷ET0=1;/*A/DC轉(zhuǎn)換INT1中斷,向單片機傳送數(shù)據(jù)*/voidINT_ADC()interrupt2ADC_flag=1;/*定時器T0中斷,實現(xiàn)1s定時*/voidINT_T0()interrupt1(TL0=0X00;TH0=0X4C;T0_count-;/*/定時器T0計數(shù)初值4C00H(對應(yīng)50ms)主函數(shù)main()*/voidmain()(initial();while(1)(ADC0809();do(RS232();while(T0_count);T0_count=20;

溫馨提示

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

最新文檔

評論

0/150

提交評論