四川工程职业技术学院
单片机应用技术课程电子教案
Copyright ? Http://mcu.scetc.net
第 讲 18
单片机 A/D和 D/A应用接口技术
Copyright ? Http:// mcu.scetc.net 2 SiChuan Engnieering Technical College-1959
本讲主要内容,
18-1,A/D转换器基本知识
18-2,D/A转换器基本知识
18-3,光导智能小车硬件实现
18-4,ADC0832基本应用方法
18-5,光导智能小车软件实现
Copyright ? Http:// mcu.scetc.net 3 SiChuan Engnieering Technical College-1959
18-1,A/D转换器基本知识
具有 A/D和 D/A的单片机控制系统构成
Copyright ? Http:// mcu.scetc.net 4 SiChuan Engnieering Technical College-1959
18-1,A/D转换器基本知识
? 逐次逼近式 A/D转换原理
D / A 转 换 器
N 位 寄 存 器
控 制
逻 辑
V I N
S T A R T
E O C
V N
V R E F





D 7
D 0
D 3
D 5
D 1
D 2
D 4
D 6
O E
Copyright ? Http:// mcu.scetc.net 5 SiChuan Engnieering Technical College-1959
18-1,A/D转换器基本知识
? 双积分式 ADC转换原理
控 制 逻 辑
V I N



标 准 电 压


比 较 器
时 钟
积 分 器 输 出
t
T 2
T 1
T
Copyright ? Http:// mcu.scetc.net 6 SiChuan Engnieering Technical College-1959
18-1,A/D转换器基本知识
? A/D转换器的主要技术指标
? 分辨率
使输出数字量变化一个相邻数码所需输入模拟电压的变化量。常
用二进制的位数表示。
例如,12位 ADC的分辨率就是 12位,一个 10V满刻度的 12位 ADC能分辨
输入电压变化最小是,
10V× 1/212=2.4mV
? 量化误差
ADC把模拟量变为数字量,用数字量近似表示模拟量,这个过程称为量化。量化误差
是 ADC的有限位数对模拟量进行量化而引起的误差。
Copyright ? Http:// mcu.scetc.net 7 SiChuan Engnieering Technical College-1959
18-1,A/D转换器基本知识
? A/D转换器的主要技术指标
? 偏移误差
指输入信号为零时,输出信号不为零的值,所以有时又称为零值误差。
? 满刻度误差
满刻度误差又称为增益误差。指满刻度输出数码所对应的实际输入电压与理想输入电压之
差。
? 线性度
线性度有时又称为非线性度,指转换器实际的转换特性与理想直线的最大偏差。
Copyright ? Http:// mcu.scetc.net 8 SiChuan Engnieering Technical College-1959
18-1,A/D转换器基本知识
? A/D转换器的主要技术指标
? 绝对精度
在一个转换器中,任何数码所对应的实际模拟量输入与理论模拟输入之差的最大值,称为
绝对精度。对于 ADC而言,可以在每一个阶梯的水平中点进行测量,它包括了所有的误差。
? 转换速率
指 ADC能够重复进行数据转换的速度,即每秒转换的次数。而完成一次 A/D转换所需的时间
(包括稳定时间),则是转换速率的倒数。
Copyright ? Http:// mcu.scetc.net 9 SiChuan Engnieering Technical College-1959
18-2,D/A转换器基本知识
? T型电阻网络 D/A转换器的基本原理
10 10 10 10 10 10 10 10
2 R
D 7
R
2 R2 R 2 R 2 R 2 R 2 R 2 R 2 R
RRR
I 7
I 7
I
-
+
V R E F
I 6 I 5 I 4 I 3 I 2 I 1 I 0
I 6 I 5 I 4 I 3 I 2 I 1 I 0
R f b
I O 1
I O 2
D 6 D 5 D 4 D 3 D 2 D 1 D 0
V O
R
R R
Copyright ? Http:// mcu.scetc.net 10 SiChuan Engnieering Technical College-1959
18-2,D/A转换器基本知识
? D/A转换器的主要技术指标
? 分辨率
指输入数字量的最低有效位( LSB)发生变化时,所对应的输出模拟量(常为电压)的变
化量。它反映了输出模拟量的最小变化值。分辨率与输入数字量的位数有确定的关系,可
以表示成 FS / 2n。 FS表示满量程输入值,n为二进制位数。
例:对于 5V的满量程,采用8位的 DAC时,分辨率为 5V/256= 19.5mV;当采用 12位的
DAC时,分辨率则为 5V/4096= 1.22mV。(位数越多分辨率就越高)
? 线性度(非线性误差)
线性度是实际转换特性曲线与理想直线特性之间的最大偏差。常以相对于满量程的百分数
表示。如 ± 1%是指实际输出值与理论值之差在满刻度的 ± 1%以内。
Copyright ? Http:// mcu.scetc.net 11 SiChuan Engnieering Technical College-1959
18-2,D/A转换器基本知识
? D/A转换器的主要技术指标
? 绝对精度和相对精度
绝对精度(简称精度)是指在整个刻度范围内,任一输入数码所对应的模拟量实际输出值
与理论值之间的最大误差。
相对精度与绝对精度表示同一含义,用最大误差相对于满刻度百分比表示。
? 建立时间
建立时间是指输入的数字量发生满刻度变化时,输出模拟信号达到满刻度值的 ± 1/2LSB所
需的时间。是描述 D/A转换速率的一个动态指标。
电流输出型 DAC的建立时间短。电压输出型 DAC的建立时间主要决定于运算放大器的响应
时间。根据建立时间的长短,可以将 DAC分成超高速(< 1μS)、高速( 10~ 1μS)、中速
( 100~ 10μS)、低速( ≥100μS)等几类。
Copyright ? Http:// mcu.scetc.net 12 SiChuan Engnieering Technical College-1959
18-2,D/A转换器基本知识
? D/A转换器与单片机接口(单缓冲工作方式)
8 0 C 5 1
P 2, 7
P 0
W R
C S
X F E R
W R 1
W R 2
I L E
V C C
+ 5 V
-
+
R f b
V O
D
A
C
0
8
3
2
I O U T 1
I O U T 2
1 k Ω
1 M Ω
D I 0
D I 7
D G N D
V S S
适用于只有一路模拟量输出,或有几路模拟量输出但并不要求同步的系统
Copyright ? Http:// mcu.scetc.net 13 SiChuan Engnieering Technical College-1959
18-2,D/A转换器基本知识
? D/A转换器与单片机接口(双缓冲工作方式)
8 0 C 5 1
P 2, 7
P 0
W R
C S
X F E R
W R 1
W R 2
I L E
V C C
D
A
C
0
8
3
2
(
1
)
D I 0
D I 7
C S
X F E R
W R 1
W R 2
I L E
V C C
+ 5 V
D
A
C
0
8
3
2
(
2
)
D I 0
D I 7
P 2, 6
P 2, 5
适用于多路 D/A转换输出,并要求同步进行的系统
Copyright ? Http:// mcu.scetc.net 14 SiChuan Engnieering Technical College-1959
18-3,光导智能小车硬件实现
发车区
? 光导小车运行场地图例
Copyright ? Http:// mcu.scetc.net 15 SiChuan Engnieering Technical College-1959
18-3,光导智能小车硬件实现
? 光导智能小车基本原理
? 当 左边光电池输出电压大于右边光电池输出电压,表明光源处于小
车左侧,小车左转 。
? 当 右边光电池输出电压大于左边光电池输出电压,表明光源处于小
车右侧,小车右转 。
? 当 右边光电池输出电压等于左边光电池输出电压,表明光源处于小
车正前方,小车直线前进。
左边光电池 右边光电池
Copyright ? Http:// mcu.scetc.net 16 SiChuan Engnieering Technical College-1959
18-3,光导智能小车硬件实现
? 光导智能小车硬件电路
CS
A I N 1
A I N 2
C4
C A P
C5
C A P
G N D
V C C
C L K
D I / O
CS
1
C H 0
2
C H 1
3
G N D
4
V C C
8
C L K
7
DO
6
DI
5
U3
T L C 0 8 3 2
ADC0832
外围接口连接
光电池输出
信号处理电路
Copyright ? Http:// mcu.scetc.net 17 SiChuan Engnieering Technical College-1959
18-3,光导智能小车硬件实现
? 硬件电路原理分析
? 串行 A/D转换器接口电路
? 模拟电压输入接口
? CHO:模拟电压输入端口 0
? CH1:模拟电压输入端口 1
? 串行接口
? CS:片选信号
? CLK:时钟信号
? DI:数据输入端口
? DO:数据输出端口
? 光电池输出信号处理电路
? U1A构成一级跟随器,实现阻抗变换,消除后级电路对光电池的影响 ;
? U1B构成一级同向放大电路,并利用 RX实现增益调节,改变电路的灵敏度。
Copyright ? Http:// mcu.scetc.net 18 SiChuan Engnieering Technical College-1959
18-4,ADC0832的基本应用方法
? ADC0832简介
ADC0832是广泛应用的 8位串行 A/D转换器。 ADC0832是双通道输入,
并且可以软件配置成单端或差分输入,其串行输出可以方便的和标
准的移位寄存器及微处理器接口。
? ADC0832主要特性
? 转换时间,Flock=250KHz时为 32us
? 5V供电时输入范围,0~ 5V
? 输入输出完全兼容 TTL和 CMOS电路
? 全部非校准误差,± 1LSB
? 单 5V供电
? 工作温度范围,0℃ ~ 70℃
Copyright ? Http:// mcu.scetc.net 19 SiChuan Engnieering Technical College-1959
18-4,ADC0832的基本应用方法
? ADC0832的应用方法
? ADC0832处于工作状态时,置 CS端为低即可启动转换,并使所有的
逻辑电路使能,CS在整个转换过程中必须置为低电平。
? 转换结束后,转换的数据位依次从 D0端输出,并以最高位 (MSB)开
头。在经过 8个时钟后,数据输出完成,CS变高,内部所有寄存器清
零,此时,输出电路变为高阻状态。
? 如果希望开始另一个转换,CS必须有一个从高到低的跳变,且后面
应紧跟着输入地址数据 。
Copyright ? Http:// mcu.scetc.net 20 SiChuan Engnieering Technical College-1959
18-5,光导智能小车软件实现
? ADC0832程序清单
ORG 0000H
ADCDO BIT P3.6
ADCLK BIT P3.7
CS0832 BIT P2.0
ADCHSEL BIT 01H ; ADCHSEL为 00H时选择 CH0,为 01H时选择 CH1
AD,MOV R7,#08
CLR ADCLK
CLR CS0832
SETB ADCDO
SETB ADCLK
NOP
Copyright ? Http:// mcu.scetc.net 21 SiChuan Engnieering Technical College-1959
18-5,光导智能小车软件实现
? ADC0832程序清单 (续 )
CLR ADCLK
SETB ADCDO
SETB ADCLK
NOP
CLR ADCLK
MOV C,ADCHSEL
MOV ADCDO,C
SETB ADCLK
NOP
CLR ADCLK
NOP
Copyright ? Http:// mcu.scetc.net 22 SiChuan Engnieering Technical College-1959
18-5,光导智能小车软件实现
? ADC0832程序清单 (续 )
SETB ADCLK
NOP
SETB ADCD0
AD0,CLR ADCLK
NOP
SETB ADCLK
MOV C,ADCDO
RLC A
DJNZ R7,AD0
SETB CS0832
MOV 30H,A ;转换结果存在 30H中
Copyright ? Http:// mcu.scetc.net 23 SiChuan Engnieering Technical College-1959
18-5,光导智能小车软件实现
? 程序流程
左边加速,右边减速
设定 T0初值,启动 T0
开始
设定终点特征值,ADC0832初始化
PCA初始化
读取两边光电池的输出电压
左边 >右边
判断状态
左边 <右边 左边 =右边
前进 左边减速,右边加速
N
Y
是否到达终点 停车