基于单片机实现的数据采集系统.docx

上传人:b****1 文档编号:3209787 上传时间:2023-05-05 格式:DOCX 页数:13 大小:161.70KB
下载 相关 举报
基于单片机实现的数据采集系统.docx_第1页
第1页 / 共13页
基于单片机实现的数据采集系统.docx_第2页
第2页 / 共13页
基于单片机实现的数据采集系统.docx_第3页
第3页 / 共13页
基于单片机实现的数据采集系统.docx_第4页
第4页 / 共13页
基于单片机实现的数据采集系统.docx_第5页
第5页 / 共13页
基于单片机实现的数据采集系统.docx_第6页
第6页 / 共13页
基于单片机实现的数据采集系统.docx_第7页
第7页 / 共13页
基于单片机实现的数据采集系统.docx_第8页
第8页 / 共13页
基于单片机实现的数据采集系统.docx_第9页
第9页 / 共13页
基于单片机实现的数据采集系统.docx_第10页
第10页 / 共13页
基于单片机实现的数据采集系统.docx_第11页
第11页 / 共13页
基于单片机实现的数据采集系统.docx_第12页
第12页 / 共13页
基于单片机实现的数据采集系统.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于单片机实现的数据采集系统.docx

《基于单片机实现的数据采集系统.docx》由会员分享,可在线阅读,更多相关《基于单片机实现的数据采集系统.docx(13页珍藏版)》请在冰点文库上搜索。

基于单片机实现的数据采集系统.docx

基于单片机实现的数据采集系统

单片机课程设计报告

题目:

数据采集系统

(一)设计任务

1.采用8051和ADC0809构成一个8通道数据采集系统。

能够顺序采集各个通道的信号。

2.先利用A/D转化器对各路电压进行采样,得到相应数字量,再按数字量与模拟量成正比关系运算得到相应的模拟电压值,然后将模拟量通过显示器显示出来。

3.采集信号的动态范围:

0~5V。

每个通道的采样速率:

100SPS。

4.要求四位LED数码管上轮流显示或单路选择显示,测试最小分辨率为0.019V,测量误差为±0.02V。

5.利用单片机仿真器,将采样数据送入单片机70H~77H存储单元。

6.编写相应的单片机采集程序,到达规定的性能。

(二)设计方案

硬件选择:

89C51,ADC0809,电源,单片机仿真器,LED,电位器,RAM,74LS02,开关K1K2。

接口芯片:

74LS244驱动及四个共阳极的LED数码管

软件部分:

1测量电压值最大是5V,显示最大值为5V。

2使用89C51单片机,6MH晶振,P0口读入A/D值,P2口为A/D转换控制口。

3采用T0定时100uS来产生5分钟来进行数据采集,

以下为主要芯片的简要介绍:

AD0809引脚图

1、AD0809的逻辑结构  

ADC0809是8位逐次逼近型A/D转换器。

它由一个8路模拟开关、一个地址锁存译码器、一个A/D转换器和一个三态输出锁存器组成(见图1)。

多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。

三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。

  

2、AD0809的工作原理  

IN0-IN7:

8条模拟量输入通道  

ADC0809对输入模拟量要求:

信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。

地址输入和控制线:

4条  

ALE为地址锁存允许输入线,高电平有效。

当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的  通道的模拟量进转换器进行转换。

A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。

通道选择表如下表所示。

CBA选择的通道000IN0  001IN1010IN2011IN3100IN4 101IN5 110IN6 111IN7  数字量输出及控制线:

11条  

ST为转换启动信号。

当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。

EOC为转换结束信号。

当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。

OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。

OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。

D7-D0为数字量输出线。

CLK为时钟输入信号线。

因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,VREF(+),VREF(-)为参考电压输入。

  

3、ADC0809应用说明  

(1)ADC0809内部带有输出锁存器,可以与AT89S51单片机直接相连。

  

(2)初始化时,使ST和OE信号全为低电平。

  

(3)送要转换的哪一通道的地址到A,B,C端口上。

  

(4)在ST端给出一个至少有100ns宽的正脉冲信号。

  

(5)是否转换完毕,我们根据EOC信号来判断。

  

(6)当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机了。

  

4、AD0809的应用  

了解完A/D转换芯片,下面我们以图2为例来完成它的程序设计。

电路说明:

CLK:

时钟输入信号,0809的时钟频率范围在10~1200kHz,典型值为640kHz。

图3ADC0809时序图

1.数据采集系统电路图:

图4系统电路图

ADC0809是带有8:

1多路模拟开关的8位A/D转换芯片,所以它可有8个模拟量的输入端,由芯片的A,B,C三个引脚来选择模拟通道中的一个。

A,B,C三端分别与8051的P1.0~P1.2相接。

地址锁存信号(ALE)和启动转换信号(START),由P2.7和/WR或非得到。

输出允许,由P2.7和/RD或非得到。

时钟信号,可有8051的ALE输出得到,不过当采用6M晶振时,应该先进行二分频,以满足ADC0809的时钟信号必须小于640K的要求。

(三)实验程序

ORG0000H

LJMPSTART

START:

CLRA

MOVP2,A

MOVR0,#70H

MOVR2,#0DH

LOOPMEM:

MOV@R0,A

INCR0

DJNZR2,LOOPMEM

MOV20H,#00H;00H位在20H字节中

MOVA,#0FFH

MOVP0,A;数据口

MOVP1,A;段码口

MOVP3,A;字位口

MAIN:

LCALLTEST;调用A/D转换程序

LCALLDISPLAY;调用显示程序

;显示子程序

DISPLAY:

JB00H,DISP11;为1跳DISP11

MOVR3,#08H;00H位=0循环显示

MOVR0,#70H;首地址

MOV7BH,#00H;选中0通道

DISLOOP1:

LCALLTUNBCD

MOVR2,#0FFH

DISLOOP2:

LCALLDISP

LCALLKEYWORK1

DJNZR2,DISLOOP2;延时

INCR0

INC7BH;循环选中8通道

DJNZR3,DISLOOP1

RET

DISP11:

MOVA,7BH;00H位=1跳来,实现单路显示

SUBBA,#01H

MOV7BH,A

ADDA,#70H

MOVR0,A

DISLOOP11:

LCALLTUNBCD

MOVR2,#0FFH

DISLOOP22:

LCALLDISP

LCALLKEYWORK2

DJNZR2,DISLOOP22;延时

INC7BH;通道号加1

RET

;显示数据转换为3位BCD码子程序

TUNBCD:

MOVA,@R0

MOVB,#51

DIVAB;A-商,B-余数

MOV7AH,A

MOVA,B

CLRF0

SUBBA,#1AH

MOVF0,C

MOVA,#10

MULAB

MOVB,#51

DIVAB

JBF0,LOOP2

ADDA,#5

LOOP2:

MOV79H,A

MOVA,B

CLRF0

SUBBA,#1AH

MOVF0,C

MOVA,#10

MULAB

MOVB,#51

DIVAB

JBF0,LOOP3

ADDA,#5

LOOP3:

MOV78H,A

RET

;LED扫描显示子程序

DISP:

MOVR1,#78H

MOVR5,#0FEH

PLAY:

MOVP1,#0FFH

MOVA,R5

ANLP3,A

MOVA,@R1

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVP1,A

JBP3.2,PLAY1

CLRP1.7

PLAY1:

LCALLDL5MIN

INCR1

MOVA,P3

JNBACC.3,ENDOUT

RLA

MOVR5,A

MOVP3,#0FFH

ENDOUT:

MOVP3,#0FFH

MOVP1,#0FFH

RET

TAB:

DB0C0H,0F9H,0A4H,0B0H,99H,92H,

82H,F8H,80H,90H,0FFH

;延时子程序

DL5MIN:

MOVTMOD,#10H

MOVTH1,#3CH

MOVTL1,#0B0H

CLRTF1

SETBTR1

MOVR4,#100

MOVR6,#30

WAIT0:

JNBTF1,WAIT0

CLRTF1

MOVTH1,#3CH

MOVTL1,#0B0H

DJNZR4,WAIT0

MOVR4,#100

DJNZR6,WAIT0

RET

A/D转换子程序

TEST:

CLRA

MOVP2,A

MOVR0,#70H;通道号地址

MOVR7,#08H;

LCALLTESTART

WAIT:

JBP3.7,MOVD;EOC=P3.7=1跳

AJMPWAIT

TESTART:

SETBP2.3;ALE=1

NOP

NOP

CLRP2.3

SETBP2.4;START=1

NOP

NOP

CLRP2.4

NOP

NOP

NOP

NOP

RET

MOVD:

SETBP2.5;OE=1

MOVA,P0

MOV@R0,A

CLRP2.5

INCR0;指向下一通道

MOVA,P2

INCA;地址加1

MOVP2,A

CJNEA,#08H,TESTEND

TESTEND:

JCTESTCON;C=1跳

CLRA

MOVP2,A

MOVA,#0FFH

MOVP0,A

MOVP1,A

MOVP2,A

RET

TESTCON:

LCALLTESTART

LJMPWAIT;

按键检测子程序

KEYWORK1:

JNBP3.5,KEY1;K1=P3.5=0跳KEY1

KEYOUT:

RET

KEY1:

LCALLDISP;按下K1后调用显示程序

JBP3.5,KEYOUT;K1=1跳(松开)

WAIT11:

JNBP3.5,WAIT12;K1=0跳

CPL00H;K1松开后切换显示方式

MOVR2,#0AH

MOVR3,#01H

RET

WAIT12:

LCALLDISP;按K1后调用显示

AJMPWAIT11

KEYWORK2:

JNBP3.5,KEY1;按K1后跳

JNBP3.6,KEY2;K2=0跳KEY2

RET

KEY2:

LCALLDISP;刷新显示

JBP3.6,KEYOUT;K2=1跳KEYOUT

WAIT22:

JNBP3.6,WAIT21;K2=0跳WAIT21

INC7BH;K2=1,通道号+1

MOVA,7BH

CJNEA,#08H,KEYOUT11

KEYOUT11:

JCKEYOUT1;C=1跳KEYOUT1

MOV7BH,#00H;通道号≥8,7BH清0

KEYOUT1:

RET

WAIT21:

LCALLDISP;刷新显示

AJMPWAIT22

END

(五)设计体会:

通过实验了解了A/D0809的作用以及其的接口作用,C52在整个实验做得作用了解锁存器的型号及作用,还有编程语言相互嵌套的强大魅力,同时也意识到自己知识的匮乏,对以后的学习是种无形的激励,总之这次实验我受益匪浅。

谢谢观赏

 

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2