第11章da、ad转换的接口31280
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第11章 AT89S51单片机与D/A、 A/D 转换器的接口
1
内容概要 在单片机测控系统中,被测量的温度、压力、流量、速 度等非电物理量,须经传感器先转换模拟电信号,必须转 换成数字量后才能在单片机中用软件进行处理。 模拟量转换成数字量的器件为A/D转换器(ADC)。 数字量转换为模拟量的器件称为D/A转换器(DAC)。 本章介绍典型的ADC、DAC集成电路芯片,以及与单片 机的硬件接口设计及软件设计。
MOV R0,#0FEH ;DAC端口地址FEH→R0
MOVX @R0,A
;单片机的 和译码器FEH输出端有效
20
现举例说明单缓冲方式下DAC0832的应用。
【例11-1】 DAC0832用作波形发生器。试根据图11-3, 分别写出产生锯齿波、三角波和矩形波的程序。
在图11-3中,运算放大器A输出端Vout直接反馈到Rfb,故 这种接线产生的模拟输出电压是单极性的。产生上述三种波 形的参考程序如下。
P1.6
1IN-
V0
1OUT
A
P3.2/INT0 P2.0 P2.1 P2.2 P2.3
VCC
转速检测模块 电压检测模块 电机温度检测
ADC 0809
P0
P3.0
光
/WR /RD
P3.1
电 隔
ALE
P3.4
离
P3P.31/.7INT1
A/D转换
LED
行程开关1 行程开关2 行程开关3 行程开关4 手动开按钮 手动关按钮
与P0接口:因P0的特殊功能,需加锁存器。 如:DAC800、AD7520、AD7521等。
有锁存器:最好与P0直接接口。 如:DAC0832、DAC1230等。
7
2.主要技术指标 指标很多,使用者最关心的几个指标如下。
(1)分辨率 指单片机输入给D/A转换器的单位数字量的变化,所
引起的模拟量输出的变化,=输出满刻度值/2n(n为D/A转 换器的二进制位数)。习惯上用输入数字量的二进制位数 表示。位数越多,分辨率越高,即D/A转换器对输入量变 化的敏感程度越高。
11
11.1.2 AT89S51与8位D/A转换器0832的接口设计
1.DAC0832芯片介绍
(1)DAC0832的特性
DAC0832芯片具有两个输入数据寄存器的8位DAC,所 以能直接与AT89S51单片机连接,主要特性如下。
① 分辨率为8位。
② 电流输出,建立时间为1s。
③ 可双缓冲输入、单缓冲输入或直接数字输入。
19
图11-3中,WR2 和 XFER接地,故DAC0832的“8位 DAC寄存器”(见图11-2)工作于直通方式。
“8位输入寄存器”C受S W和R1 端控制,而且 由译 码器输出端FEH送来(也可由P2口的某一条口线来控制)。 因此,单片机执行如下两条指令就可在 WR1和 CS 上产
生低电平信号,使DAC0832接收AT89S51送来的数字量。
1M
103 10u
103
2M
47u
D S G 红外传感器
47K 470u
103 103
60K GND
VC IB VDD 2OUT 2IN1IN+
BISS0001
VSS
RR2 RC2 RC1 RR1
+5V 220K
102 330K
10n 330K
+5V
10K×6
AT89C51
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5
手动/自动切换 蜂鸣报警 电机过热报警 电压过高报警 速度异常报警
电机正转继电器J1
电机反转继电器J2
速度变换继电器J3 5
11.1 AT89S51单片机与DAC的接口——8位DAC 11.1.1 D/A转换器简介
1、按输入数字量的位数分:
8位、10位、12位和16位等;
2、按输入的数码分:
二进制方式和BCD码方式;
④ 单一电源供电(+5V~+15V)。
⑤ 低功耗,20mW。
12
(2)DAC0832的引脚及逻辑结构 引脚如图11-1所示,DAC0832的逻辑结构如图11-2所 示。
13
一W它、R将D2锁:AR已反F存经写C馈B有:电在0信反阻8输馈号引3电出入22阻端内,,寄,所部DA以C结,08RV参个3F构R2考正BE内端电电F及部:可压压输,引入也脚端可,接此负端电可压接,一范
{DAC0J8N3Z2=i;} DOWN
}
SJMP
UP
}
23
方波:
#include <absacc.h>
//定义绝对地址访问
③ 矩形波的#d产ef生ine uchar unsigned char
#define DAC0832 XBYTE[0xFE] ORvGoid 2d0e0la0yH(void);
率。
{ for (i=0;i<0xff;i++)
{DAC0832=i;}
}
}
22
②三三角角波波的:产生。
#include <absacc.h>
//定义绝对地址访问
#definOeRGuch2a0r00uHnsigned char
ST#AdReT:finMeOVDACR00,83#20FXEHBYTE[0x7FFF]
VREF
IOUT2
XWFRE传XI2RLF。E送:ER控I为中传O模必I全1UO制送拟时T为U须1电,T控信:01流输时&有+制锁号I输出,O存效信出电输U器TL端 流 出号2E。=1,最电常,当大流数用,为D。A寄当0来C。存D&寄控器AL存CE制2寄器存中器全转换器
IOUT1
Rfb
CS WR1
&
例如,8位的D/A转换器,若满量程输出为10V,根据 分辨率定义,则分辨率为10V/210= 10V/256=39.1mV
8
即输入的二进制数最低位的变化可引起输出的模拟电压变 化39.1mV,该值占满量程的0.391%,常用符号1LSB表示。 同理: 10位D/A转换 1 LSB = 9.77mV = 0.1%满量程 12位D/A转换 1 LSB = 2.44mV = 0.024%满量程 16位D/A转换 1 LSB = 0.076mV = 0.00076%满量程
直通方式不能直接与系统的数据总线相连,需另加锁存器, 故较少应用。
输入寄存器和DAC寄存器共用一个地址,同时选通输出;
WR1和WR2同时进行,并且不与DCAPCU0相83接2 。
特点:转换P速1 度快。8
D7~0
I输8L位E入数接寄当字电存引8量源0器脚C到,5和/1达DWA8RC位D1、0I8D0/3A~W2CR工寄D2I、作存7,/于器C就直都SXCWW、立FSRR通直E12/即R方接XF进式处ER行,于直D此导接/A时通接转+-,状地换态,8,位,从VO
存器中以的直接数接据到外送部运到算放大器围的为输+1出0V~-10V。外部标准电 8进DI位7行~DD锁IA0端接之I和也O模C存,在间I就UO拟寄I效这运。T,L是U电2样算TE:存说.流1此,放输:的,输相大器入和时出允当器为中端于的,一许,将输个I一入锁O常U个端数T存D反和A2压连,C馈输信通。电出过号阻端VR.E高FD与/电AT型平电有阻网络相
① 锯齿波的产生
ORG START: MOV
MOV
2000H R0,#0FEH A,#00H
;DAC地址FEH→ R0 ;数字量→A
21
LOOP: MOVX @R0,A
;数字量→D/A转换器
INC A
锯齿波:
;数字量逐次加1
#SiJnMcPludLeOO<Pabsacc.h> //定义绝对地址访问
3、按传送数字量的方式分:
并行方式和串行方式;D/A输出形式:
4、按输出形式分:
①电压;
电流输出型和电压输出型; ②电流 运算放大器 电压。
电压输出型又有单极性和双极性;
5、按与单片机的接口分:
带输入锁存的和不带输入锁存的。
6
注意区分D/A内部是否带有锁存器
D/A内
无锁存器
与P1、P2接口:不需加锁存器,直接接口。
10
(3)转换精度 理想情况下,转换精度与分辨率基本一致,位数越多
精度越高。 但由于电源电压、基准电压、电阻、制造工艺等各种
因素存在着误差。严格讲,转换精度与分辨率并不完全一 致。只要位数相同,分辨率则相同,但相同位数的不同转 换器转换精度会有所不同。
例如,某种型号的8位DAC精度为0.19%,而另一种 型号的8位DAC精度为0.05%。
2
单片机和被控实体间的接口示意图
微
D/A 功放
执行部件
工
业
机
A/D
放大 传感器
系
统
3
举例1:温度测控系统
电热箱 电热丝
温度传感器 放 模 大
A/D
数
单
片
调节电压 控温
光隔驱动 控制信号 机
双向可控硅
电~源
设定值 打印输出
4
举例3:红外线自动门控制系统原理图
+5V
20K
2.2u
3.3K
1M
10K
“8位DAC寄存器”用于存放待转换的数字量,由LE2 控制;
“8位D/A转换电路”受“8位DAC寄存器”输出的数 字量控制,能输出和数字量成正比的模拟电流。因此,需 外接I-V转换的运算放大器电路,才能得到模拟输出电压。
15
2.AT89S51单片机与DAC0832的接口电路设计 工作方式:直通,单缓冲,双缓冲
输出端得到转换的模拟量。
16
例:D/A转换程序,用DAC0832输出0~+5V锯齿波,
电路为直##iinn通cclluudd方ee<<式arebgs。5a1c.设ch.>hV> REF=-5V,若DAC0832地址
为00FEH#d,efi脉ne 冲DA周C0期832要XB求YT为E[01x0000FmEs]。
(1)单缓冲方式 指DAC0832内部的两个数据缓冲器有一个处于
直通方式,另一个处于受AT89S51单片机控制的锁存方 式。在实际应用中,如果只有一路模拟量输出,或虽是 多路模拟量输出但并不要求多路输出同步的情况下,可 采用单缓冲方式。
单缓冲方式的接口电路如图11-3所示。
18
图11-3所示的是单极性模拟电压输出电路,由于
DAC0832是8位(28=256)的D/A转换器,由基尔霍夫定
律列出的方程组可解得0832输出电压vo与输入数字量B的
关系为
vo
B • VREF 256
显然,输出的模拟电压vo和输入的数字量B以及基准电 压VREF成正比,且B为0时,vo也为0,输入数字量为255 时,vo为最大的绝对值输出,且不会大于VREF。
START: MOvoVidRm0,ain#0( F) EH {
INC A while(1) { ;升压
100ms
ACALL DELAfYor(;i=0延;i<时=215050;im=si+/+2)5/6*形:成决锯定齿锯波齿输出波值的,周最期大255*/
AJMP DACL{DAC0832=;i; 连续输/出*D/A转换输出*/
DELAY:…
}
;延时子程序
}
}
17
#define uchar unsigned char
#define DAC0832 XBYTE[0x0FE]
实际上,v每oi一d 上m升ain斜( 边) 要分成256个小台阶,每个小台
阶暂留时间{u为ch执a行r i后; 三条指令所需要的时间。因此 “INC
A”指令后插wh入ilNe(O1)P指令或延时程序,则可改变锯齿波频
#define uchar unsigned char
DACS:MOV MOV
DACL:MOVX
D#PdTeRfin,e #u0n0itFuEnHs;ign0e8d3in2t I/O地址 Av{,oid#s0t0aHir(void) ;开始输/出*锯0齿V波*/ @DPuTcRh,ar Ai; ;D/A转换
void {
main(
MOV
)A,#00H
Βιβλιοθήκη Baidu
UPu:charMiO; VX @R0,A;产生三角波的上升边
while(I1N)C A
{
JNZ UP
DOf{WoDrNA:(Ci=D00E8;C3i<20=xi;fA}f;i++;)A=0时减1为FFH, 产生三角波的下降边
for (i=M0xOfVf;Xi>0;i--) @R0,A
W存器R信中1号,:C入W将W写SR锁R:输信1存1是片入号必信否选数1须号,起信据和它作号I锁LC作用,ES存合为。、它到起第I和L输来E一允入同AV级G许CN决寄CD时锁输定存有
效W。R2
XFER
14
“8位输入寄存器”用于存放单片机送来的数字量,使输 入数字量得到缓冲和锁存,由LE1 加以控制;
使用时,应根据对D/A转换器分辨率的需要来选定D/A 转换器的位数。
9
(2)建立时间 描述D/A转换器转换快慢的一个参数,用于表明转换
时间或转换速度。其值为从输入数字量到输出达到终值误 差(1/2)LSB时所需的时间。
电流输出型的转换时间较短,而电压输出型的转换器, 由于要加上完成I-V转换的运算放大器的延迟时间,因此 转换时间要长一些。快速D/A转换器的转换时间可控制在 1s以下。
1
内容概要 在单片机测控系统中,被测量的温度、压力、流量、速 度等非电物理量,须经传感器先转换模拟电信号,必须转 换成数字量后才能在单片机中用软件进行处理。 模拟量转换成数字量的器件为A/D转换器(ADC)。 数字量转换为模拟量的器件称为D/A转换器(DAC)。 本章介绍典型的ADC、DAC集成电路芯片,以及与单片 机的硬件接口设计及软件设计。
MOV R0,#0FEH ;DAC端口地址FEH→R0
MOVX @R0,A
;单片机的 和译码器FEH输出端有效
20
现举例说明单缓冲方式下DAC0832的应用。
【例11-1】 DAC0832用作波形发生器。试根据图11-3, 分别写出产生锯齿波、三角波和矩形波的程序。
在图11-3中,运算放大器A输出端Vout直接反馈到Rfb,故 这种接线产生的模拟输出电压是单极性的。产生上述三种波 形的参考程序如下。
P1.6
1IN-
V0
1OUT
A
P3.2/INT0 P2.0 P2.1 P2.2 P2.3
VCC
转速检测模块 电压检测模块 电机温度检测
ADC 0809
P0
P3.0
光
/WR /RD
P3.1
电 隔
ALE
P3.4
离
P3P.31/.7INT1
A/D转换
LED
行程开关1 行程开关2 行程开关3 行程开关4 手动开按钮 手动关按钮
与P0接口:因P0的特殊功能,需加锁存器。 如:DAC800、AD7520、AD7521等。
有锁存器:最好与P0直接接口。 如:DAC0832、DAC1230等。
7
2.主要技术指标 指标很多,使用者最关心的几个指标如下。
(1)分辨率 指单片机输入给D/A转换器的单位数字量的变化,所
引起的模拟量输出的变化,=输出满刻度值/2n(n为D/A转 换器的二进制位数)。习惯上用输入数字量的二进制位数 表示。位数越多,分辨率越高,即D/A转换器对输入量变 化的敏感程度越高。
11
11.1.2 AT89S51与8位D/A转换器0832的接口设计
1.DAC0832芯片介绍
(1)DAC0832的特性
DAC0832芯片具有两个输入数据寄存器的8位DAC,所 以能直接与AT89S51单片机连接,主要特性如下。
① 分辨率为8位。
② 电流输出,建立时间为1s。
③ 可双缓冲输入、单缓冲输入或直接数字输入。
19
图11-3中,WR2 和 XFER接地,故DAC0832的“8位 DAC寄存器”(见图11-2)工作于直通方式。
“8位输入寄存器”C受S W和R1 端控制,而且 由译 码器输出端FEH送来(也可由P2口的某一条口线来控制)。 因此,单片机执行如下两条指令就可在 WR1和 CS 上产
生低电平信号,使DAC0832接收AT89S51送来的数字量。
1M
103 10u
103
2M
47u
D S G 红外传感器
47K 470u
103 103
60K GND
VC IB VDD 2OUT 2IN1IN+
BISS0001
VSS
RR2 RC2 RC1 RR1
+5V 220K
102 330K
10n 330K
+5V
10K×6
AT89C51
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5
手动/自动切换 蜂鸣报警 电机过热报警 电压过高报警 速度异常报警
电机正转继电器J1
电机反转继电器J2
速度变换继电器J3 5
11.1 AT89S51单片机与DAC的接口——8位DAC 11.1.1 D/A转换器简介
1、按输入数字量的位数分:
8位、10位、12位和16位等;
2、按输入的数码分:
二进制方式和BCD码方式;
④ 单一电源供电(+5V~+15V)。
⑤ 低功耗,20mW。
12
(2)DAC0832的引脚及逻辑结构 引脚如图11-1所示,DAC0832的逻辑结构如图11-2所 示。
13
一W它、R将D2锁:AR已反F存经写C馈B有:电在0信反阻8输馈号引3电出入22阻端内,,寄,所部DA以C结,08RV参个3F构R2考正BE内端电电F及部:可压压输,引入也脚端可,接此负端电可压接,一范
{DAC0J8N3Z2=i;} DOWN
}
SJMP
UP
}
23
方波:
#include <absacc.h>
//定义绝对地址访问
③ 矩形波的#d产ef生ine uchar unsigned char
#define DAC0832 XBYTE[0xFE] ORvGoid 2d0e0la0yH(void);
率。
{ for (i=0;i<0xff;i++)
{DAC0832=i;}
}
}
22
②三三角角波波的:产生。
#include <absacc.h>
//定义绝对地址访问
#definOeRGuch2a0r00uHnsigned char
ST#AdReT:finMeOVDACR00,83#20FXEHBYTE[0x7FFF]
VREF
IOUT2
XWFRE传XI2RLF。E送:ER控I为中传O模必I全1UO制送拟时T为U须1电,T控信:01流输时&有+制锁号I输出,O存效信出电输U器TL端 流 出号2E。=1,最电常,当大流数用,为D。A寄当0来C。存D&寄控器AL存CE制2寄器存中器全转换器
IOUT1
Rfb
CS WR1
&
例如,8位的D/A转换器,若满量程输出为10V,根据 分辨率定义,则分辨率为10V/210= 10V/256=39.1mV
8
即输入的二进制数最低位的变化可引起输出的模拟电压变 化39.1mV,该值占满量程的0.391%,常用符号1LSB表示。 同理: 10位D/A转换 1 LSB = 9.77mV = 0.1%满量程 12位D/A转换 1 LSB = 2.44mV = 0.024%满量程 16位D/A转换 1 LSB = 0.076mV = 0.00076%满量程
直通方式不能直接与系统的数据总线相连,需另加锁存器, 故较少应用。
输入寄存器和DAC寄存器共用一个地址,同时选通输出;
WR1和WR2同时进行,并且不与DCAPCU0相83接2 。
特点:转换P速1 度快。8
D7~0
I输8L位E入数接寄当字电存引8量源0器脚C到,5和/1达DWA8RC位D1、0I8D0/3A~W2CR工寄D2I、作存7,/于器C就直都SXCWW、立FSRR通直E12/即R方接XF进式处ER行,于直D此导接/A时通接转+-,状地换态,8,位,从VO
存器中以的直接数接据到外送部运到算放大器围的为输+1出0V~-10V。外部标准电 8进DI位7行~DD锁IA0端接之I和也O模C存,在间I就UO拟寄I效这运。T,L是U电2样算TE:存说.流1此,放输:的,输相大器入和时出允当器为中端于的,一许,将输个I一入锁O常U个端数T存D反和A2压连,C馈输信通。电出过号阻端VR.E高FD与/电AT型平电有阻网络相
① 锯齿波的产生
ORG START: MOV
MOV
2000H R0,#0FEH A,#00H
;DAC地址FEH→ R0 ;数字量→A
21
LOOP: MOVX @R0,A
;数字量→D/A转换器
INC A
锯齿波:
;数字量逐次加1
#SiJnMcPludLeOO<Pabsacc.h> //定义绝对地址访问
3、按传送数字量的方式分:
并行方式和串行方式;D/A输出形式:
4、按输出形式分:
①电压;
电流输出型和电压输出型; ②电流 运算放大器 电压。
电压输出型又有单极性和双极性;
5、按与单片机的接口分:
带输入锁存的和不带输入锁存的。
6
注意区分D/A内部是否带有锁存器
D/A内
无锁存器
与P1、P2接口:不需加锁存器,直接接口。
10
(3)转换精度 理想情况下,转换精度与分辨率基本一致,位数越多
精度越高。 但由于电源电压、基准电压、电阻、制造工艺等各种
因素存在着误差。严格讲,转换精度与分辨率并不完全一 致。只要位数相同,分辨率则相同,但相同位数的不同转 换器转换精度会有所不同。
例如,某种型号的8位DAC精度为0.19%,而另一种 型号的8位DAC精度为0.05%。
2
单片机和被控实体间的接口示意图
微
D/A 功放
执行部件
工
业
机
A/D
放大 传感器
系
统
3
举例1:温度测控系统
电热箱 电热丝
温度传感器 放 模 大
A/D
数
单
片
调节电压 控温
光隔驱动 控制信号 机
双向可控硅
电~源
设定值 打印输出
4
举例3:红外线自动门控制系统原理图
+5V
20K
2.2u
3.3K
1M
10K
“8位DAC寄存器”用于存放待转换的数字量,由LE2 控制;
“8位D/A转换电路”受“8位DAC寄存器”输出的数 字量控制,能输出和数字量成正比的模拟电流。因此,需 外接I-V转换的运算放大器电路,才能得到模拟输出电压。
15
2.AT89S51单片机与DAC0832的接口电路设计 工作方式:直通,单缓冲,双缓冲
输出端得到转换的模拟量。
16
例:D/A转换程序,用DAC0832输出0~+5V锯齿波,
电路为直##iinn通cclluudd方ee<<式arebgs。5a1c.设ch.>hV> REF=-5V,若DAC0832地址
为00FEH#d,efi脉ne 冲DA周C0期832要XB求YT为E[01x0000FmEs]。
(1)单缓冲方式 指DAC0832内部的两个数据缓冲器有一个处于
直通方式,另一个处于受AT89S51单片机控制的锁存方 式。在实际应用中,如果只有一路模拟量输出,或虽是 多路模拟量输出但并不要求多路输出同步的情况下,可 采用单缓冲方式。
单缓冲方式的接口电路如图11-3所示。
18
图11-3所示的是单极性模拟电压输出电路,由于
DAC0832是8位(28=256)的D/A转换器,由基尔霍夫定
律列出的方程组可解得0832输出电压vo与输入数字量B的
关系为
vo
B • VREF 256
显然,输出的模拟电压vo和输入的数字量B以及基准电 压VREF成正比,且B为0时,vo也为0,输入数字量为255 时,vo为最大的绝对值输出,且不会大于VREF。
START: MOvoVidRm0,ain#0( F) EH {
INC A while(1) { ;升压
100ms
ACALL DELAfYor(;i=0延;i<时=215050;im=si+/+2)5/6*形:成决锯定齿锯波齿输出波值的,周最期大255*/
AJMP DACL{DAC0832=;i; 连续输/出*D/A转换输出*/
DELAY:…
}
;延时子程序
}
}
17
#define uchar unsigned char
#define DAC0832 XBYTE[0x0FE]
实际上,v每oi一d 上m升ain斜( 边) 要分成256个小台阶,每个小台
阶暂留时间{u为ch执a行r i后; 三条指令所需要的时间。因此 “INC
A”指令后插wh入ilNe(O1)P指令或延时程序,则可改变锯齿波频
#define uchar unsigned char
DACS:MOV MOV
DACL:MOVX
D#PdTeRfin,e #u0n0itFuEnHs;ign0e8d3in2t I/O地址 Av{,oid#s0t0aHir(void) ;开始输/出*锯0齿V波*/ @DPuTcRh,ar Ai; ;D/A转换
void {
main(
MOV
)A,#00H
Βιβλιοθήκη Baidu
UPu:charMiO; VX @R0,A;产生三角波的上升边
while(I1N)C A
{
JNZ UP
DOf{WoDrNA:(Ci=D00E8;C3i<20=xi;fA}f;i++;)A=0时减1为FFH, 产生三角波的下降边
for (i=M0xOfVf;Xi>0;i--) @R0,A
W存器R信中1号,:C入W将W写SR锁R:输信1存1是片入号必信否选数1须号,起信据和它作号I锁LC作用,ES存合为。、它到起第I和L输来E一允入同AV级G许CN决寄CD时锁输定存有
效W。R2
XFER
14
“8位输入寄存器”用于存放单片机送来的数字量,使输 入数字量得到缓冲和锁存,由LE1 加以控制;
使用时,应根据对D/A转换器分辨率的需要来选定D/A 转换器的位数。
9
(2)建立时间 描述D/A转换器转换快慢的一个参数,用于表明转换
时间或转换速度。其值为从输入数字量到输出达到终值误 差(1/2)LSB时所需的时间。
电流输出型的转换时间较短,而电压输出型的转换器, 由于要加上完成I-V转换的运算放大器的延迟时间,因此 转换时间要长一些。快速D/A转换器的转换时间可控制在 1s以下。