多路数据采集系统.docx

上传人:b****6 文档编号:8246514 上传时间:2023-01-30 格式:DOCX 页数:22 大小:268.04KB
下载 相关 举报
多路数据采集系统.docx_第1页
第1页 / 共22页
多路数据采集系统.docx_第2页
第2页 / 共22页
多路数据采集系统.docx_第3页
第3页 / 共22页
多路数据采集系统.docx_第4页
第4页 / 共22页
多路数据采集系统.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

多路数据采集系统.docx

《多路数据采集系统.docx》由会员分享,可在线阅读,更多相关《多路数据采集系统.docx(22页珍藏版)》请在冰豆网上搜索。

多路数据采集系统.docx

多路数据采集系统

1前言

单片机自20世纪70年代问世以来,作为微机算机一个很重要的分支,应用广泛,发展迅速,已对人类社会产生了巨大的影响。

尤其是美国Intel公司产生的MCS-51系列单片机,由于其具有集成度高,处理功能强,可靠性好,系统结构简单,价格低廉,易于使用等优点,在我国已经得到广泛的应用,在智能仪器仪表,工业检测控制,电力电子,机电一体化等方面取得了令人瞩目的成果。

尽管目前已有世界各大公司研制的各种高性能的不同型号的单片机不断问世,但由于MCS-51单片机易于学习,掌握,性能价格比高,另外,以MCS-51单片机基本内核为核心的各种扩展型,增强型的单片机不断推出,所以在今后若干年内,MCS-51系列单片机仍是我国在单片机应用领域首选的机型。

在单片机的实时控制和智能仪表等应用系统中,控制或测量对象的有关变量,往往是一些连续变化的模拟量,如温度,压力,流量,速度等物理量。

这些模拟量必须转换成数字量后才能输入到单片机中进行处理。

单片机处理的结果,也常常需要转换为模拟信号。

若输入的是非电信号,还需要经过传感器转换成模拟电信号。

实现模拟量转换成数字量的器件称为模数转换器(ADC),数字量转换成模拟量的器件称为数模转换器(DAC)。

在大规模集成电路技术迅速发展的今天,对于单片机应用系统的设计人员来说。

只需要合理地选用商品化的大规模A/D,D/A集成电路芯片,了解他们的引脚,功能以及与单片机的接口方法。

本设计将着重从应用的角度,介绍典型的D/A,A/D集成电路芯片同MCS-51的硬件接口设计及软件的设计。

2总体方案设计

2.1方案论证

图2.1方案一原理图

图2.2方案二原理图

方案一:

本方案以单片机为核心系统,工作原理是首先用温度传感器AD590把现场温度转变成与现场温度成线性关系的电压,转变的电压再由ADC0809模数转换器转换成数字量,再通过AT89S51单片机采集数字量并存储起来,单片机把采集回来的数据经过处理又再次传送到DAC0832模数转换器进行转换,把数字量转变成模拟量。

并同时把采集的数据通过LED显示电路显示出来!

方案二:

本方案跟方案一一样同样以AT89S51单片机为核心,工作原理大致一样都是先用温度传感器AD590把现场温度转变成与现场温度成线性关系的电压,转变的电压通过LM331N电压频率转换器转变成频率,利用AT89S51单片机内部的计数器对频率进行计数,通过计数的大小来确定采集的温度大小,并同样单片机把采集回来的数据经过处理又再次传送到DAC0832模数转换器进行转换,把数字量转变成模拟量。

并同时把采集的数据通过LED显示电路显示出来!

2.2方案比较选择

方案一和方案二的工作原理大致一样,不同之处是采用ADC0809模数转换器还是LM331N电压频率转换器对温度的转换。

两方案的成本大致一样,但是使用方案一可以采集8路数据,并且采集速度,精度都相对方案二高。

所以本次设计选择方案一。

3单元模块设计

3.1测温电路

图3.1测温电路

如图3.1所示,电位器R2用于调整零点,R4用于调整运放LF355的增益。

调整方法如下:

在0℃时调整R2,使输出V0=0,然后在100℃时调整R4使V0=100mV。

如此反复调整多次,直至0℃时,V0=0mV,100℃时V0=100mV为止。

最后在室温下进行校验。

例如,若室温为25℃,那么V0应为25mV。

冰水混合物是0℃环境,沸水为100℃环境。

因为流过AD590的电流与热力学温度成正比,当电阻R1和电位器R2的电阻之和为1kΩ时,输出电压V0随温度的变化为1mV/K。

但由于AD590的增益有偏差,电阻也有偏差,因此应对电路进行调整,调整的方法为:

把AD590放于冰水混合物中,调整电位器R2,使V0=273.2+25=298.2(mV)。

但这样调整只保证在0℃或25℃附近有较高的精度。

3.2复位电路

图3.2复位电路

复位是单片机的初始化操作,只要给RESET引脚加上2个机器周期以上的高电平信号,就可使MCS—51单片机复位。

复位的主要功能是把PC初始化为0000H,使MCS—51单片机从0000H单元开始执行程序。

除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态,为摆脱死锁状态,也需按复位键重新启动。

单片机的复位电路通常采用上电复位和按钮复位的两种方式。

本设计采用图3.4上电复位电路.上电自动复位是通过外部复位电路的电容充电来实现的。

只要Vcc的上升时间不超过1ms,就可以实现自动上电复位。

除PC之外,复位操作还对其它寄存器有影响,他们的复位状态如表3.1所示,由表可以看出来,复位时,SP=07H;4个I/O端口P0-P3的引脚均为高电平,这在某些控制应用中,要考虑到引脚的高电平对外部控制电路的影响。

寄存器

复位状态

寄存器

复位状态

PC

0000H

TMOD

00H

Acc

00H

TCON

00H

PSW

00H

TH0

00H

B

00H

TL0

00H

SP

07H

TH1

00H

DPTR

0000H

TL1

00H

P0-P3

FFH

SCON

00H

IP

XXX00000B

SBUF

XXXXXXXXB

IE

0XX00000B

PCON

0XXX0000B

表3.1复位时片内各寄存器的状态

3.3时钟电路

图3.3时钟电路

时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊地一拍一拍地工作。

因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。

单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反相放大器的输入端为芯片引脚XTAL1,输出端为引脚XTAL2。

这两个引脚跨接石英振荡器和微调电容,就构成一个稳定的自激振荡器,图3.3为单片机内部时钟方式的振荡器电路。

晶体的频率越高,则系统的时钟频率也就越高,单片机的运行速度也就越快。

但反过来运行速度快对储存器的速度也就越高。

本设计为何采用6MHZ的晶振将在单片机与ADC0809接口电路中介绍。

3.4LED显示电路

图3.4显示电路

本设计使用动态扫描方法来显示温度的大小,在多位LED显示时,为了简化硬件电路,通常将所有位的段选线相应地并联在一起,由一个8位I/O口控制,形成段选线的多路复用。

而各位的共阳极或共阴极分别由相应的I/O线控制,实现各位的分时选通。

图3.4所示位一个4位7段LED动态显示器电路原理图。

由于考虑到单片机的I/O口有限所以使用了CD4511译码器进行扩张I/O口。

其中段选线占用一个8位I/O口,而位选线占用一个4位I/O口。

由于各位的段选线并联,段码的输出对各位来说都是相同的。

因此,同一时刻,如果各位位选都处于选通状态的话,4位LED将显示相同的字符。

若要各位LED能够显示出与本位相应的显示字符,就必须采用扫描显示方式,即在某一时刻,只让某一位的位选线处于选通状态,而其他各位的位选线处于关闭状态,同时,段选线上输出相应位要显示字符的段码。

这样同一时刻,4位LED中只有选通的那一位显示字符,而其他三位则是熄灭的。

同样,在下一时刻,只让下一位的位选线处于选通状态,而其他各位的位选线处于关闭状态,同时,在段选线上输出相应位将要显示字符的段码,则同一时刻,只有选通位显示出相应的字符,而其他各位则是熄灭的。

如此循环下去,就可以使各位显示出将要显示的字符,虽然这些字符是在不同时刻出现的,而同一时刻,只有以为显示,其他各位熄灭,但由于LED显示器的余辉和人眼的视觉暂留作用,只要每位显示间隔足够短,则可造成多为同时亮的假象,达到同时显示的目的。

LED不同位显示的时间间隔不能太短,因为发光二极管从导通到发光有一定的延时,导通时间太短,发光太弱人眼无法看清。

但也不能太长,因为毕竟要受限于临界闪烁频率,而且时间越长,占用CPU时间也越多。

另外,显示位增多,也将占用大量的CPU时间,因此动态显示实质是以牺牲CPU时间来换取元件的减小。

3.5单片机与ADC0809、DAC0832接口电路

图3.5单片机与ADC0809、DAC0832接口电路

3.5.1单片机与ADC0809接口电路

用单片机控制ADC时,多数采用查询和中断控制两种方法。

查询法是在单片机把启动命令送到ADC之后,执行别的程序,同时对ADC的状态进行擦互训,以检查ADC变换是否已经结束,如查询到变换已结束,则读入转换完毕的数据。

ADC0809与AT89S51片内无时钟,可利用AT89S51提供的地址锁存允许信号ALE经D触发器二分频后获得,ALE脚的频率是8051单片机时钟频率的1/6(但要注意的是,每当访问外部数据存储器时,将少一个ALE脉冲)。

如果单片机时钟频率采用6MHZ,则ALE脚的输出频率为1MHZ,再二分频后为500KHZ,恰好符合ADC0809对时钟频率的要求。

由于ADC0809具有输出三态锁存器,其八位数据输出引脚可直接与数据线总线相连。

地址译码引脚A,B,C分别与地址总线的低三位A0,A1,A2相连,以选通IN0—IN7中的一个通路。

将P2.7(地址总线A15)作为片选信号,在启动和START连在一起,因此ADC0809在锁存通道地址的同时,启动并进行转换。

在读取转换结果时,用低电平的读信号和P2.7脚经一级或非门后,产生的正脉冲作为OE信号,用以打开三态输出锁存器。

由以上分析可知:

在软件编写时,应令P2.7=A15=0;A0,A1,A2给出被选择的模拟通道的地址;执行一条输出指令,启动A/D转换;执行一条输入指令,读取转换结果。

3.5.2单片机与DAC0832接口电路

单片机与DAC0832接口时,可以有三种方式:

直通方式,单缓冲方式和双缓冲。

单缓冲方式是指DAC0832内部的两个数据缓冲器有一个处于直通方式,另一个处于受单片机控制的锁存方式。

在实际应用中,如果只有一路模拟量输出,或虽是多路模拟量输出但并不要求多路输出同步的情况下,就可采用单缓冲方式,本设计采用单缓冲方式。

由图3.5可知,WR2和XFER接地,故DAC0832的八位DAC寄存器工作于直通方式。

八位输入寄存器受CS和WR1端信号控制,而且CS由P2.6口来控制。

举个例子,当单片机执行如下两条指令就可在WR1和CS上产生低电平信号,使DAC0832接收8031送来的数字量。

指令:

MOVR0,#BFH;MOVX@R0,A

3.6程序设计

3.6.1程序流程图

3.6.2主程序

#include

#include

unsignedcharxdata*adcpoint;

unsignedcharxdata*dacpoint;

unsignedcharidata*cunshu;

unsignedcharidata*cunshuer;

unsignedchargewei,shiwei,baiwei,qianwei;

unsignedintfreq;

unsignedcharshu;

unsignedchari;

sbitLEDdian=P3^0;//小数点显示控制位

unsignedintcodezibiao[256]=

{0,20,39,59,78,98,118,137,157,176,196,216,235,255,275,

294,314,333,353,373,392,412,431,451,471,490,510,529,549,

569,588,608,627,647,667,686,706,725,745,765,784,804,824,

843,863,882,902,922,941,961,980,1000,1020,1039,1059,1078,

1098,1118,1137,1157,1176,1196,1216,1235,1255,1275,1294,

1314,1333,1353,1373,1392,1412,1431,1451,1471,1490,1510,

1529,1549,1569,1588,1608,1627,1647,1667,1686,1706,1725,1745,

1765,1784,1804,1824,1843,1863,1882,1902,1922,1941,1961,1980,

2000,2020,2039,2059,2078,2098,2118,2137,2157,2176,2196,2216,

2235,2255,2275,2294,2314,2333,2353,2373,2392,2412,2431,2451,

2471,2490,2510,2529,2549,2569,2588,2608,2627,2647,2667,2686,

2706,2725,2745,2765,2784,2804,2824,2843,2863,2882,2902,2922,

2941,2961,2980,3000,3020,3039,3059,3078,3098,3118,3137,3157,

3176,3196,3216,3235,3255,3275,3294,3314,3333,3353,3373,3392,

3412,3431,3451,3471,3490,3510,3529,3549,3569,3588,3608,3627,

3647,3667,3686,3706,3725,3745,3765,3784,3804,3824,3843,3863,

3882,3902,3922,3941,3961,3980,4000,4020,4039,4059,4078,4098,

4118,4137,4157,4176,4196,4216,4235,4255,4275,4294,4314,4333,

4353,4373,4392,4412,4431,4451,4471,4490,4510,4529,4549,4569,

4588,4608,4627,4647,4667,4686,4706,4725,4745,4765,4784,4804,

4824,4843,4863,4882,4902,4922,4941,4961,4980,5000};

voidDELAY(void);

voidDISPLAY(void);

voidCHULI(unsignedchar);

unsignedcharDAC(void);

voidmain(void)

{

while

(1)

{

adcpoint=0x7FF8;

dacpoint=0xBFFF;

LEDdian=0;

for(i=0;i<2;i++)

{DAC();

CHULI(shu);

DISPLAY();

}

}

}

unsignedcharDAC(void)//DAC和ADC转换函数

{*adcpoint=0x00;

DELAY();

shu=*adcpoint;

*cunshu=shu;

*dacpoint=shu;

cunshu++;

adcpoint++;

returnshu;

}

voidDELAY(void)//延时程序

{staticunsignedcharx,y;

for(x=0;x<20;x++)

for(y=0;y<20;y++);

}

voidCHULI(unsignedcharxunzhi)//调用显示函数时先

{freq=zibiao[xunzhi];//对输出数据处理

gewei=freq%10;

shiwei=(freq/10)%10;

baiwei=(freq/100)%10;

qianwei=freq/1000;

gewei=gewei|0x10;

shiwei=shiwei|0x20;

baiwei=baiwei|0x40;

qianwei=qianwei|0x80;

}

voidDISPLAY(void)//显示函数

{P1=gewei;

DELAY();

P1=shiwei;

DELAY();

P1=baiwei;

DELAY();

P1=qianwei;

LEDdian=1;

DELAY();

}

4特殊器件

4.1DAC0809数模转换器

图4.1ADC0809引脚图

ADC是一种逐次逼近式八路模拟输入,八位数字量输出的A/D转换器。

其引脚图如图4.1所示。

ADC0809共有28引脚,采用双列直插式封装。

1.IN0—IN7是八路模拟信号输入端。

2.D0—D7是八位数字量输出端。

3.A,B,C与ALE控制八路模拟通道的切换,A,B,C分别与三根地址线或数据线相连,三者编码对应八个通道地址口。

C,B,A=000—111分别对应IN0—IN7通道地址。

4.OE,START,CLK为控制信号端,OE为输出允许端,START为启动信号输入端,CLK为时钟信号输入端。

5.Vr+,Vr-为参考电压输入端。

ADC0809的结构框图如图4.2所示。

0809是采用逐次逼近的方法完成A/D转换的。

由单一的+5V电源供电;片内带有锁存功能的八路选一的模拟开关,由C,B,A的编码来决定所选的通道。

0809完成一次转换需100us左右。

输出具有TTL三态锁存缓冲器,可直接连到单片机的数据总线上。

通过适当的外接电路,0809可对0到5V的模拟信号进行转换。

ADC0809工作过程如下:

首先用指令选择0809的一个模拟输入通道,当执行

MOVX@DPTR,A时产生一个启动信号给START引脚送入脉冲,开始对选中通道转换。

当转换结束后发出结束信号,置EOC脚为高电平,该信号可作为中断申请对选中通道转换。

当读允许信号到,OE端有高电平,则可以读出转换的数字量。

利用MOVXA,@DPTR把该通道转换结果读到A累加器中。

图4.2ADC0809结构图

4.2DAC0832模数转换器

图4.3DAC0832引脚图图4.4DAC0832原理框图

4.2.1DAC0832其主要特性如下

1.分辨率8位;

2.电流输出,稳定时间位12us;

3.可双缓冲,单缓冲或直接数字输入;

4.只需在满量程下调整其线性度;

5.单一电源供电(+5V—+15V);

6.低功耗,20mv。

4.2.2各引脚功能如下

DI0—DI7为8位数字信号输入端,与CPU数据总线相连,用于输入CPU送来的待转换数字量,DI7为最高位。

CS:

片选端,当CS为低电平时,本芯片被选中工作。

ILE:

数据锁存允许控制端,高电平有效。

WR1:

第一级输入寄存器写选通控制,低电平有效,当CS=0,ILE=1,WR1=0时,数据信号被锁存到第一级8位输入寄存器中。

XFER:

数据传送控制,低电平有效。

WR2:

DAC寄存器写选通控制端,低电平有效,当XFER=0,WR1=0,输入寄存器状态传入8位DAC寄存器中。

Iout1:

D/A转换器电流输出1端,输入数字量全“1”时,Iout1最大,输入数字量全为“0”时,Iout1最小。

Iout2:

电流输出2端,Iout1+Iout2=常数。

Rfb:

外部反馈信号输入端,内部已有反馈电阻,根据需要也可外接反馈电阻。

Vcc:

电源输入端,可在(+5V—+15V)范围内。

Vref:

参考电压输入端,电压范围(-10V—+10V)之间。

DGND:

数字信号接地端。

AGND:

模拟信号接地端,最好也参考电压共地。

DAC0832内部由三部分电路组成,如图4.4所示。

“8位输入寄存器”用于存放CPU送来的数字量,使输入数字量得到缓冲和锁存,由LE1加以控制。

“8位DAC寄存器”用于存放待转换数字量,由LE2控制。

“8位D/A转换电路”由8位T型电阻网络和电子开关组成,电子开关受“8位DAC寄存器”输出控制,T型电阻网络能输出和数字量成正比的模拟电流。

因此,DAC0832通常需要外接运算放大器才能得到模拟输出电压。

4.3温度传感器

集成温度传感器AD590是美国模拟器件公司生产的集成两端感温电流源。

一.主要特性

AD590是电流型温度传感器,通过对电流的测量可得到所需要的温度值。

根据特性分挡,AD590的后缀以I,J,K,L,M表示。

AD590L,AD590M一般用于精密温度测量电路,其电路外形如图3-2所示,它采用金属壳3脚封装,其中1脚为电源正端V+;2脚为电流输出端I0;3脚为管壳,一般不用。

集成温度传感器的电路符号如图3-2所示。

图3-2AD590外形(图1)及电路符号(图2)

1、流过器件的电流(μA)等于器件所处环境的热力学温度(开尔文)度数,即:

IT/T=1μA/K

式中:

IT——流过器件(AD590)的电流,单位μA。

T——热力学温度,单位K。

2、AD590的测温范围-55℃-+150℃。

3、AD590的电源电压范围为4V-30V。

电源电压可在4V-6V范围变化,电流IT变化1μA,相当于温度变化1K。

AD590可以承受44V正向电压和20V反向电压,因而器件反接也不会损坏。

4、输出电阻为710MΩ。

5、精度高。

AD590共有I、J、K、L、M五档,其中M档精度最高,在-55℃~+150℃范围内,非线形误差±0.3℃。

2AD590的工作原理

  在被测温度一定时,AD590相当于一个恒流源,把它和5~30V的直流电源相连,并在输出端串接一个1kΩ的恒值电阻,那么,此电阻上流过的电流将和被测温度成正比,此时电阻两端将会有1mV/K的电压信号。

其基本电路如图3-3所示。

图3-3AD590内部核心电路

图3-3是利用ΔUBE特性的集成PN结传感器的感温部分核心电路。

其中T1、T2起恒流作用,可用于使左右两支路的集电极电流I1和I2相等;T3、T4是感温用的晶体管,两个管的材质和工艺完全相同,但T3实质上是由n个晶体管并联而成,因而其结面积是T4的n倍。

T3和T4的发射结电压UBE3和UBE4经反极性串联后加在电阻R上,所以R上端电压为ΔUBE。

因此,电流I1为:

   I1=ΔUBE/R=(KT/q)(lnn)/R

  对于AD590,n=8,这样,电路的总电流将与热力学温度T成正比,将此电流引至负载电阻RL上便可得到与T成正比的输出电压。

由于利用了恒流特性,所以输出信号不受电源电压和导线电阻的影响。

图3中的电阻R是在硅板上形成的薄膜电阻,该电阻已用激光修正了其电阻值,因而在基准温度下可得到1μA/K的I值。

4.4单片机AT89S51

AT89S51是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4kbytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。

它集Flash程序存储器既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中。

图4.1AT89S51原理图

4.4.1引脚功能说明

Vcc:

电源电压

GND:

P0口:

P0口是一组8位漏极开路型双向I/0口,也即地址/数据总线复用口。

作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“l”可作为高阻抗输入端用。

在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线

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

当前位置:首页 > PPT模板 > 简洁抽象

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1