第8章MCS51与DA和AD的接口_第1页
第8章MCS51与DA和AD的接口_第2页
第8章MCS51与DA和AD的接口_第3页
第8章MCS51与DA和AD的接口_第4页
第8章MCS51与DA和AD的接口_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1单片机原理及其应用第8章MCS-51与D/A、A/D接口主要内容8.1MCS-51单片机与ADC的接口8.2MCS-51单片机与DAC的接口D/A转换器D/A转换器A/D转换器A/D转换器8.1MCS-51单片机与ADC的接口单片机测控系统单片机各种现场被测量传感器1传感器2传感器3放大器1放大器2放大器3多路模拟开关8.1MCS-51单片机与ADC的接口8.1.1A/D转换器概述实现模拟量变换成数字量的器件称A/D转换器.常用的有逐次比较式A/D和双积分式A/D.常用的逐次比较式A/D有ADC0809、ADC574、ADC1210等.常用的双积分式A/D有MC14433(3位半)、ICL7135(4位半)、ICL7109(12位二进制)、ICL7104(16位二进制)等等8.1MCS-51单片机与ADC的接口2、A/D转换器的主要性能指标①分辨率:指A/D转换器可转换成数字量的最小电压,是反映A/D转换器对最小模拟输入值的敏感度.通常是用A/D的位数来表示,比如8位、10位、12位等,所以,A/D转换器的输出数字量越多。其分辨率越高。如:8位ADC满量程为5V,则分辨率为5000mV/256=20mV,也就是说当模拟电压小于20mV,ADC就不能转换了

所以分辨率一般表示式为:分辨率=Vref/2位数(单极性)或分辨率=(V+ref-V-ref)/2位数(双极性)8.1MCS-51单片机与ADC的接口②转换时间:指从输入启动转换信号到转换结束,得到稳定的数字量输出的时间。一般转换速度越快越好(特别是动态信号采集)。超高速(转换时间<1ns)、高速(转换时间<1µs)、中速(转换时间<1ms)低速(转换时间<1s)等。如果采集对象是动态连续信号,要求f采≥2f信,也就是说必须在信号的一个周期内采集2个以上的数据,才能保证信号形态被还原,这就是“最小采样”原理。若f信=20kHz,则f采≥40kHz,其转换时间要求≤25µs.8.1MCS-51单片机与ADC的接口③转换精度:有绝对精度和相对精度绝对精度——指实际需要的模拟量与理论上的模拟量之差。相对精度——指当满刻度值校准后,任意数字量对应的实际模拟量与理论值之差。精度和分辨率不能混淆.8.1MCS-51单片机与ADC的接口④线性度:当模拟量变化时,A/D转换器输出的数字量,按比例变化的程度⑤量程:指能够转换的电压的范围0~5V0~10V⑥工作温度范围较好的A/D转换器工作温度范围为-40--85℃较差的A/D转换器工作温度范围为0--70℃8.1MCS-51单片机与ADC的接口8.1.2ADC0809与单片机接口1、ADC0809是一种常用的8位逐次比较式A/D.下图是ADC0809的内部结构图2、引脚图8.1MCS-51单片机与ADC的接口

IN3

IN4

IN5

IN6

IN7

START

EOC

D3

OE

CLOCK

VCC

VREF+

GND

D1

IN2

IN1

IN0

ADDA

ADDB

ADDC

ALE

D7

D6

D5

D4

D0

VREF-

D2

1

2

3

4

5

6

7

8

9

10

11

12

13

14

28

27

26

25

24

23

22

21

20

19

18

17

16

15

2

ADDCADDBADDA选择通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN78.1MCS-51单片机与ADC的接口3ADC0809的工作流程

START/ALE

地址锁存

ADDA/B/C

EOC

OE

D0~D7

转换结束

读取结果

DATA

启动8.1MCS-51单片机与ADC的接口①

输入3位地址,并使ALE=1,将地址存入地址锁存器中,经地址译码器译码从8路模拟通道中选通一路模拟量送到比较器。②

送START一高脉冲,START的上升沿使逐次逼近寄存器复位,下降沿启动A/D转换,并使EOC信号为低电平。③

当转换结束时,转换的结果送入到输出三态锁存器,并使EOC信号回到高电平,通知CPU已转换结束。④

当CPU执行一读数据指令,使OE为高电平,则从输出端D0~D7读出数据。8.1MCS-51单片机与ADC的接口4、ADC0809与8051接口P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7ALEWR

P2.7RDINTO+++5VGNDD0D1D2D3D4D5D6D7ADDAADDBADDCCLKALESTARTOEEOCIN0IN1IN2IN3IN4IN5IN6IN7

VREF+VREF-ADC08098051分频器00011100110IN0:0000HIN1:0001HIN2:0002HIN3:0003HIN4:0004HIN5:0005HIN6:0006HIN7:0007H8.1MCS-51单片机与ADC的接口设接口电路用于一个8路模拟量输入的巡回检测系统,使用中断方式采样数据,把采样转换所得的数字量按序存于片内RAM的30H~37H单元中。采样完一遍后停止采集。汇编语言编程:ORG0000HLJMPMAINORG0003HLJMPINT0ORG0100H;主程序MAIN:MOVR0,#30H;设立数据存储区指针MOVR2,#08H;设置8路采样计数值SETBIT0;设置外部中断0为边沿触发方式SETBEA;CPU开放中断SETBEX0;允许外部中断0中断MOVDPTR,#0000H;送入口地址并指向IN08.1MCS-51单片机与ADC的接口LOOP:MOVX@DPTR,A;启动A/D转换,A的值无意义HERE:SJMPHERE;等待中断ORG0200H;中断服务程序INT0:MOVXA,@DPTR;读取转换后的数字量MOV@R0,A;存入片内RAM单元INCDPTR;指向下一模拟通道INCR0;指向下一个数据存储单元DJNZR2,NEXT;8路未转换完,则继续CLREA;已转换完,则关中断CLREX0;禁止外部中断0中断RETI;中断返回NEXT:MOVX@DPTR,A;再次启动A/D转换RETI;中断返回8.1MCS-51单片机与ADC的接口C语言编程:#include<reg51.h>#include<absacc.h>//定义绝对地址访问#defineucharunsignedchar#defineIN0XBYTE[0x0000]//定义IN0为通道0的地址staticuchardatax[8];//定义8个单元的数组,存放结果ucharxdata*ad_adr;//定义指向通道的指针uchari=0;8.1MCS-51单片机与ADC的接口voidmain(void){IT0=1;//初始化EX0=1;EA=1;i=0;ad_adr=&IN0;//指针指向通道0*ad_adr=i;//启动通道0转换for(;;){;}//等待中断}8.1MCS-51单片机与ADC的接口voidint_adc(void)interrupt0//中断函数{x[i]=*ad_adr;//接收当前通道转换结果i++;ad_adr++;//指向下一个通道if(i<8){*ad_adr=i;//8个通道未转换完,启动下一个通道返回}else{EA=0;EX0=0;//8个通道转换完,关中断返回}}8.2.1D/A转换器概述一.D/A转换器的性能指标1.分辨率2.精度3.线性度4.温度灵敏度5.建立时间二.D/A转换的分类按输入数字量的位数分:8位、10位、12位和16位等;按输入的数码分:二进制方式和BCD码方式;按传送数字量的方式分:并行方式和串行方式;按输出形式分:电流输出型和电压输出型,电压输出型又有单极性和双极性;按与单片机的接口分:带输入锁存的和不带输入锁存的。8.2MCS-51单片机与DAC的接口分辨率是指D/A转换器所能产生的最小模拟量的增量,是数字量最低有效位(LSB)所对应的模拟值。例:8位D/A转换器的分辨率为满量程信号值的1/256。建立时间是指从数字量输入端发生变化开始,即从全0变为全1,到模拟输出稳定在满量程的±1/2LSB时所需要的时间,它是描述D/A转换器转换速率快慢的一个参数。三.D/A转换器与单处机的连接1.数据线的连接

D/A转换器与单片机的数据线的连接主要考虑两个问题:①位数:当高于8位的D/A转换器与8位数据总线的MCS-51单片机接口时,MCS-51单片机的数据必须分时输出,这时必须考虑数据分时传送的格式和输出电压的“毛刺”问题;

②D/A转换器有无输入锁存器:当D/A转换器内部没有输入锁存器时,必须在单片机与D/A转换器之间增设锁存器或I/O接口。2.地址线的连接一般的D/A转换器只有片选信号,而没有地址线。这时单片机的地址线采用全译码或部分译码,经译码器输出来控制D/A转换器的片选信号,也可由某一位I/O线来控制D/A转换器的片选信号。3.控制线的连接

D/A转换器主要有片选信号、写信号及启动转换信号等,一般由单片机的有关引脚或译码器提供。8.2MCS-51单片机与DAC的接口8.2.2MCS-51与8位DAC0832的接口一.DAC0832芯片

DAC0832是一种电流型D/A转换器,数字输入端具有双重缓冲功能,可以双缓冲、单缓冲或直通方式输入,它的内部结构如图。8.2MCS-51单片机与DAC的接口与与与DI0~DI7ILECSWR1WR2XFER输入寄存器DAC寄存器D/A转换器LE1LE2VREFRfbIOUT1IOUT2AGNDVCCDGNDDAC0832二.DAC0832的引脚DAC0832有20引脚,采用双列直插式封装,如图所示。CSWR1AGNDDI3DI2DI2DI0VREFRFBDGNDVCCILEWR2XFERDI4DI5DI6DI7IOUT1IOUT21234567891020191817161514131211其中:DI0~DI7(DI0为最低位):8位数字量输入端。ILE:数据允许控制输入线,高电平有效。片选信号。写信号线1。8.2MCS-51单片机与DAC的接口:写信号线2。:数据传送控制信号输入线,低电平有效。IOUT1:模拟电流输出线1。它是数字量输入为“1”的模拟电流输出端。IOUT2:模拟电流输出线2,它是数字量输入为“0”的模拟电流输出端,采用单极性输出时,IOUT2常常接地。Rfb:片内反馈电阻引出线,反馈电阻制作在芯片内部,用作外接的运算放大器的反馈电阻。VREF:基准电压输入线。电压范围为-10V~+10V。VCC:工作电源输入端,可接+5V~+15V电源。AGND:模拟地。DGND:数字地。三.DAC0832的工作方式DAC0832有三种方式:直通方式、单缓冲方式和双缓冲方式。8.2MCS-51单片机与DAC的接口8.2MCS-51单片机与DAC的接口1.直通方式:Vout-VCCILECSWR1DI0~DI7WR2XFERDGNDAGNDVREFRfbIOUT1IOUT2+5V--5V--A+-P2.7WRP1.0~P1.780512.单缓冲方式:8.2MCS-51单片机与DAC的接口Vout-VCCILECSWR1DI0~DI7WR2XFERDGNDAGNDVREFRfbIOUT1IOUT2+5V--5V--A+-P2.7WRP0.0~P0.78051DA转换器的地址:7FFFH3.双缓冲方式:8.2MCS-51单片机与DAC的接口P2.7P2.6WRP0.0~P0.78051

Vout-VCCILECSXFERWR1WR2DI0~DI7DGNDAGNDVREFRfbIOUT1IOUT2+5V--5V--A+-单片机对DA转换器的操作分两步进行:①使8位输入锁存器导通地址:7FFFH②使8位DAC寄存器导通地址:BFFFH四.DAC0832的应用

D/A转换器在实际中经常作为波形发生器使用,通过它可以产生各种各样的波形。

基本原理如下:利用D/A转换器输出模拟量与输入数字量成正比这一特点,通过程序控制CPU向D/A转换器送出随时间呈一定规律变化的数字,则D/A转换器输出端就可以输出随时间按一定规律变化的波形。8.2MCS-51单片机与DAC的接口例1:根据单缓冲的方式连接,编程从DAC0832输出端分别产生锯齿波、三角波和方波。DAC0832的口地址为7FFFH。锯齿波MOVDPTR,#7FFFHCLRALOOP:MOVX@DPTR,AINCASJMPLOOP三角波MOVDPTR,#7FFFHCLRALOOP1:MOVX@DPTR,AINCACJNEA,#0FFH,LOOP1LOOP2:MOVX@DPTR,ADECAJNZLOOP2SJMPLOOP1方波MOVDPTR,#7FFFHLOOP:MOVA,#00HMOVX@DPTR,AACALLDELAYMOVA,#FFHMOVX@DPTR,AACALLDELAYSJMPLOOPDELAY:MOVR7,#0FFHDJNZR7,$RET8.2MCS-51单片机与DAC的接口C语言编程:锯齿波:#include<absacc.h>//定义绝对地址访问#defineucharunsignedchar#defineDAC0832XBYTE[0x7FFF]voidmain(){uchari;while(1){for(i=0;i<0xff;i++)

{DAC0832=i;}}}8.2MCS-51单片机与DAC的接口#include<absacc.h>//定义绝对地址访问#defineucharunsignedchar#defineDAC0832XBYTE[0x7FFF]voidmain(){uchari;while(1){for(i=0;i<0xff;i++)

{DAC0832=i;}for(i=0xff;i>0;i--){DAC0832=i;}}}8.2MCS-51单片机与DAC的接口三角波:方波:#include<absacc.h>//定义绝对地址访问#defineucharunsignedchar#defineDAC0832XBYTE[0x7FFF]voiddelay(void);voidmain(){uchari;while(1){8.2MCS-51单片机与DAC的接口DAC0832=0;//输出低电平delay();//延时DAC0832=0xff;//输出高电平delay();//延时}}voiddelay()//延时函数{uchari;for(i=0;i<0xff;i++){;}}8.2MCS-51单片机与DAC的接口习题:利用DAC0832芯片,采用单缓冲方式,产生梯形波,分别用汇编语言和C语言编程实现。梯形波MOVDPTR,#7FFFHCLRALOOP1:MOVX@DPTR,AINCACJNEA,#0FFH,LOOP1MOVX@DPTR,AACALLDELAYLOOP2:MOVX@DPTR,ADECAJNZLOOP2ACALLDELAYSJMPLOOP1DELAY:MOVR7,#0FFHDJNZR7,$RET梯形波:#include<absacc.h>//定义绝对地址访问#defineucharunsignedchar#defineDAC0832XBYTE[0x7FFF]voiddelay(void);voidmain(){uchari;while(1){

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

{DAC0832=i;}

delay();//延时

8.2MCS-51单片机与DAC的接口for(i=0xff;i>0;i--){DAC0832=i;

}delay();}}voiddelay()//延时函数{uchari;for(i=0;i<0xff;i++){;}}设计实例多路数字电压表的设计1多路数字电压表的原理及功能①多路数字式电压表应用系统主要利用A/D转换器②处理过程如下:先用A/D转换器对各路电压值进行采样,得到相应的数字量,再按数字量与模拟量成正比关系运算得到对应的模拟电压值,然后把模拟值通过显示器显示出来。③设计时假设待测的输入电压为8路,电压值的范围为0~5V,要求能在四位LED数码管上轮流显示或单路选择显示。测量的最小分辨率为0.019V,测量误差为0.02V。

设计实例多路数字电压表的设计

根据系统的功能要求,控制系统采用AT89C52单片机,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论