单片机8AD转换器和DA转换器

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3)双缓冲方式—— 两个寄存器均处于受控状态。 这种工作方式适合于多模拟信号同时输出的应 用场合。
单缓冲方式的接口与应用
1.单缓冲方式连接
所谓单缓冲方式就是使DAC0832的两个输入寄存器 中有一个处于直通方式,而另一个处于受控锁存方式。
为使DAC寄存器处于直通方式,应使WR2 =0和 XFER=0。为此可把这两个信号固定接地,或如电路中把 WR2与WR1相连,把XFER与CS相连。
;送DAC0832口地址 ;送高电平数据
;调用延时子程序 ;送低电平数据
;调用延时子程序
执行上述程序就可得到如下图所示的矩形波
V #dateH
#dateL
T/2
T/2
几点说明: (1)以上程序产生的是矩形波,其低点平的宽度由延 时子程序DELAYL所延时的时间来决定,高电平的宽度 则由DELAYH所延时的时间决定。 (2) 改变延时子程序DELAYL和的DELAYH延时时间, 就可改变矩形波上下沿的宽度。若DELAYL=DELAYH(两 者延时一样),则输出的是方波。 (3) 改变上限值或下限值便可改变矩形波的幅值; 单极性输出时为0~-5V或0~+5V;双极性输出时为5V~+5V。
在实际应用中,常选用电流输出的DAC芯片实 现电压输出,如图所示
无内部数据锁存器的DAC芯片,尤其是分辩率高于8位的DAC芯 片,在设计与8位单片机接口时,要外加数据锁存器作为缓 冲器。下图是一种单缓冲器接口。
在10位DAC芯片与8位单片机之间接入两个锁存器,锁存器A锁存10位数据 中的低8位,锁存器B锁存高2位。单片机分两次输出数据,先输出低8位数 据到锁存器A,后输出高2位数据到锁存器B。设锁存器A和锁存器B的地址 分别为002CH和002DH,则执行下列指令后完成一次D/A转换:
-
CS Iout2 +
Vout
XFER
WR
WR1 AGND
WR2 DGND
2.单缓冲方式应用举例--波形发生器
在一些控制应用中,需要有一个线性增长的电压 (锯齿波)来控制检测过程、移动记录笔或移动电 子束等。对此可通过在DAC0832的输出端接运算放大 器,由运算放大器产生锯齿波来实现,其电路连接 如图所示。
下图为两片DAC0832与8031接实现的双缓冲方式连接 电路,能实现两路同步输出。
8051与DAC0832的双缓冲方式接口
P2.5 P2.6 P2.7 P0.7 P0.0
WR
80C51
CS DAC0832
XFER
DI7
DI0
Rfb Iout1
-
WR1
Iout2
+
Vx
WR2
CS
XFER DAC0832
为使输入寄存器处于受控锁存方式,应把WR1接 8051的WR,ILE接高电平。此外还应把CS接高位地址线 或地址译码输出,以便于对输入寄存器进行选择。
DAC0832单缓冲方式接口
DAC0832 +5V
P0
ALE 80C51
P2.7
74LS373 G
Vcc ILE
Vref
DI7 0 IoRuftb1
MOV A, #00H
;取下限值
MOV DPTR,#7FFFH
;指向0832口地址
MM: MOVX @DPTR,A
;输出
INC A
;延时
NOP
NOP
NOP
SJMP MM
;反复
执行上述程序就可得到如下图所示的锯齿波。
V FFH
00H
t
T
几点说明: (1)程序每循环一次,A加1,因此实际上锯齿波的上升边是 由256个小阶梯构成的,但由于阶梯很小,所以宏观上看就如 图中所画的先行增长锯齿波。
MOV A,#data2
;data2送0832(2)输入锁存器
MOVX @DPTR,A ;
MOV DPTR,#7FFFH ;送两路DAC寄存器地址
MOVX @DPTR,A ;两路数据同步转换输出
8051与12位DAC的接口
DAC1208的内部结构和原理
与DAC0832相似,DAC1208也是双缓冲器结 构,输入控制线与DAC0832也很相似,和用 来控制输入寄存器,和用来控制DAC寄存器, 但增加了一条控制线BYTE1/ BYTE2 ,用来 区分输入8位寄存器和4位寄存器,当 BYTE1/BYTE2= 1时,两个寄存器都被选中, BYTE1/BYTE2=0时,只选中4位输入寄存器。
DAC1208内部结构框图
8051和DAC1208的连接
设4位输入寄存器地址为20H,8位输入寄存器地址为21H,采用2 根译码器输出线作为DAC208的(对应l地址20H和21H)及(对应地 址22H),设12位数据存放在内部RAM区的DIG和DIG+1单元中,高 8位存于DIG,低4位存于DIG+1。 转换程序如下:
MOV MOV MOV MOVX DEC INC MOV SWAP MOVX MOV MOVX
R0,#21H R1,#DIG A,@R1 @R0,A R0 R1 A,@R1 A @R0,A R0,#22H @R0,A
;8位输入寄存器地址 ;高8位数据地址 ;取高8位数据 ;送DAC1208 ;4位输入寄存器地址 ;低4位数据地址 ;取低4位数据 ;与高4位数交换 ;送DAC1208 ;DAC1208的DAC寄存器地址 ;完成12位D/A转换。
MOV MOV MOVX INC MOV MOVX
DPTR,#6000H A,#DATA8 @DPTR,A DPTR A,#DATA2 @DPTR,A
Βιβλιοθήκη Baidu
;输出低8位数据 ;输出高2位,并同时输出10位数据
典型D/A转换器芯片DAC0832及接口
DAC0832是一个8位D/A转换器芯片,单电 源供电,从+5V~+15V均可正常工作,基准 电压的范围为±10V,电流建立时间为1µs, CMOS工艺,低功耗20mm。其内部结构由1个8 位输入寄存器、1个8位DAC寄存器和1个8位 D/A转换器组成。
A/D及D/A转换器的性能指标
A/D转换器的主要技术指标
分辨率(Resolution) 分辨率是指A/D转换器能分辨的最小输出模拟增量,取决 于输入数字量的二进制位数。
转换精度(Conversion Accuracy) 转换精度指满量程时ADC的实际模拟输出值和理论值的接 近程度。
量程(满刻度范围——FULL Scale Range) 量程是指输入模拟电压的变化范围。例如某转换器具有 10V的单极性范围或-5~+5V的双极性范围。则它们的量程 都为10V。满刻度只是个名义值,实际的A/D,D/A转换器的 最大输出值总是比满刻度值小1/2n,n为转换器的位数。例 如12位的A/D转换器,其满刻度值为10V,而实际的最大输 出值为:
DAC0832的内部结构
DAC0832是典型的带内部双数据缓冲器的8位D/A芯片。图中LE是 寄存命令,当LE =1时,寄存器输出随输入变化,当LE =0时,数据 锁存在寄存器中。当ILE端为高电平,CS与WR1同时为低电平时, 使得LE1 =1;当WR1变为高电平时,输入寄存器便将输入数据锁存。 当XFER与WR2同时为低电平时,使得LE2 =1,DAC寄存器的输出 随寄存器的输入变化,WR2上升沿将输入寄存器的信息锁存在该寄 存器中。
产生矩形波电压的参考程序:
START: LOOP:
ORG 1100H MOV DPTR , #7FFFH MOV A , #dataH MOVX @ DPTR , A LCALL DELAYH MOV A , #dataL MOVX @ DPTR , A LCALL DELAYL SJMP LCALL
双缓冲方式的接口与应用
在多路D/A转换的情况下,若要求同步转换输出,必 须采用双缓冲方式。DAC0832采用双缓冲方式时,数字量 的输入锁存和D/A转换输出是分两步进行的。
第一, CPU分时向各路D/A转换器输入要转换的数字 量并锁存在各自的输入寄存器中。
第二,CPU对所有的D/A转换器发出控制信号,使各 路输入寄存器中的数据进入DAC寄存器,实现同步转换输 出。
(2)可通过循环程序段的机器周期数,计算出锯齿波的周 期。并可根据需要,通过延时的方法来改变波形周期。若 要改变锯齿波的频率,可在AJMP MM指令前加入延迟程序即 可。延时较短时可用NOP指令实现(本程序就是如此),需 要延时较长时,可以使用一个延长子程序。延迟时间不同, 波形周期不同,锯齿波的斜率就不同。 (3)通过A加1,可得到正向的锯齿波,反之A减1可得到负 向的锯齿波。 (4) 程序中A的变化范围是0~255,因此得到的锯齿波是 满幅度的。如要求得到非满幅锯齿波,可通过计算求的数 字量的处置和终值,然后在程序中通过置初值和终值的方 法实现。
+5V
地址 译码输出 P0.7 P0.0
ILE VCC
CS DIO
Vref
DAC0832 Rfb
DI7
WR
WR1
Iout1
-
Iout2
+
WR2 XFER
10k
+10V +
-10V
10k
1/2LM324
图中的DAC0832工作于单缓冲方式,其中输入寄存器受控, 而DAC寄存器直通。假定输入寄存器地址为7FFFH,产生 锯齿波的程序清单如下:
1
4095
10 10 212
10 4096
9.9976(V )
线性度(Linearity)
线性度是指ADC的实际转换特性曲线和理想 直线之间的最大偏移差。
转换时间(Conversion Time)
从发出启动转换开始直至获得稳定的二进代 码所需的时间称为转换时间,转换时间与转换 器工作原理及其位数有关,同种工作原理的转 换器,通常位数越多,其转换时间越长。
DI7 DI0 Rfb
Iout1
-
WR1
Iout2
+
Vy
WR2
实现两路同步输出的程序如下:
MOV DPTR,#0DFFFH;送0832(1)输入锁存器地址
MOV A,#data1
;data1送0832(1)输入锁存器
MOVX @DPTR,A ;
MOV DPTR,#0BFFFH;送0832(2)输入锁存器地址
各种类型的DAC芯片都具有数字量输入端和模拟量 输出端及基准电压端。数字输入端有以下几种类 型:①无数据锁存器,②带单数据锁存器,③带 双数据锁存器,④可接收串行数字输入。第1种在 与单片机接口时,要外加锁存器,第2种和第3种 可直接与单片机接口,第4种与单片机接口十分简 单,接收数据较慢,适用于远距离现场控制的场 合。模拟量输出有两种方式:电压输出及电流输 出。电压输出的DAC芯片相当于一个电压源,其内 阻很小,选用这种芯片时,与它匹配的负载电阻 应较大。电流输出的芯片相当于电流源,其内阻 较大,选用这种芯片时,负载电阻不可太大。
DAC0832的工作方式
DAC0832利用WR1 、 WR2 、ILE、XFER 控制信号 可以构成三种不同的工作方式。
1) 直通方式—— WR1= WR2 =0时,数据可以从输入 端经两个寄存器直接进入D/A转换器。
2)单缓冲方式——两个寄存器之一始终处于直通, 即WR1=0或WR2=0,另一个寄存器处于受控状态。
D/A转换器的主要技术指标
D/A转换器的主要技术指标与A/D转换器基本相 同,只是转换时间的概念略有不同,D/A转换器的 转换时间又叫建立时间,它是指当输入的二进制代 码从最小值突然跳变至最大值时,其模拟输出电压 相应的满度跳跃并达到稳定所需的时间。一般而言, D/A的转换时间比A/D要短得多。
DAC芯片类型及接口方法
避免产生毛刺的方法之一是采用双组缓冲器结 构,如下图所示。
单片机先把低8位数据选通输入锁存器1中,然后将高2位数据选 通输入锁存器3中,并同时选通锁存器2,使锁存器2与锁存器3 组成10位锁存器向DAC同时送入10位数据由DAC转换成输出电 压。当地址如图中所示时,执行以下程序完成一次D/A转换:
MOV DPTR,#002CH MOV A,#DATA8 MOVX @DPTR,A ;输出低8位 INC DPTR MOV A,#DATA2 MOVX @DPTR,A ;输出高2位
这种接口存在一个问题,就是在输出低8位数据和高2位数据之间,会产生 “毛剌”现象,如图3.3(b)所示。假设两个锁存器原来的数据为 0001111000,现在要求转换的数据为0100001011,新数据分两次输出, 第一次输出低8位,这时DAC将把新的8位数据的与原来数据的高2位一起 组成0000001011转换成输出电压,而该电压是不需要的,即所谓“毛刺”。
相关文档
最新文档