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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

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

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

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

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

10、tial。*/定時(shí)器初始化*/*定時(shí)器T0工作丁模式1,充當(dāng)16位定時(shí)器;T1工作丁模式2,充當(dāng)波特率發(fā)生器*/定時(shí)器T0的計(jì)數(shù)初值設(shè)為4C00H(對(duì)應(yīng)50ms)利用1s=50msx20,實(shí)現(xiàn)1s的延時(shí)程序串行通信初始化*/波特率的SMOD=0工作丁方式1,使能接收(REN=1)中斷初始化*/設(shè)置外中斷1中斷請(qǐng)求信號(hào)為下降沿允許中斷:定時(shí)器T0、外中斷1、申行通信啟動(dòng)T0啟動(dòng)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,同時(shí)選擇到channel1/*標(biāo)志位:中斷響應(yīng)前為0,循環(huán)等待轉(zhuǎn)換結(jié)束;轉(zhuǎn)換結(jié)束后,進(jìn)入中斷,置1*/中斷響應(yīng)前為0,以便循環(huán)等待轉(zhuǎn)換結(jié)束通過(guò)P2.7=0和WR啟動(dòng)AD轉(zhuǎn)換/*AD轉(zhuǎn)換結(jié)束后,進(jìn)入中斷程序,執(zhí)行,flag置1,跳出循環(huán),繼續(xù)執(zhí)行下面的語(yǔ)句*/把轉(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作為接受上位機(jī)信號(hào)的存儲(chǔ)單元在60H單元中放入初值00H向上位機(jī)發(fā)送AAH作為聯(lián)絡(luò)信號(hào)等待發(fā)送完成,并置TI為0,以等待下一次發(fā)送/*等待上位機(jī)的應(yīng)答信號(hào)*并加入加入1s超時(shí)的判斷*/if(T0_count!=0)RI=0;把接受到的應(yīng)答信號(hào)存入receive上位機(jī)準(zhǔn)備好接收數(shù)據(jù),向上位機(jī)傳送數(shù)據(jù)*receive=SBUF;if(rec

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

溫馨提示

  • 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)論