1
D/A & A/D转换器及其与单片机接口
2
9.1 D/A转换器及其与单片机接口
9.1.1 D/A转换器的原理及主要技术指标
一,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
3
输出电压 的大小与数字量具有对应的关系 。
4
二,D/A转换器的主要性能指标
2n
1、分辨率
分辨率 是指输入数字量的最低有效位( LSB)发生变化时,
所对应的输出模拟量(常为电压)的变化量。它反映了输
出模拟量的最小变化值。
分辨率与输入数字量的位数有确定的关系,可以表示成 FS
/ 。 FS表示满量程输入值,n为二进制位数。对于 5V
的满量程,采用8位的 DAC时,分辨率为 5V/256= 19.5mV;
当采用 12位的 DAC时,分辨率则为 5V/4096= 1.22mV。显然,
位数越多分辨率就越高。
2、线性度
线性度(也称非线性误差) 是实际转换特性曲线与理想
直线特性之间的最大偏差。常以相对于满量程的百分数
表示。如 ± 1%是指实际输出值与理论值之差在满刻度
的 ± 1%以内。
5
3、绝对精度和相对精度
?绝对精度(简称精度) 是指在整个刻度范围内,任
一输入数码所对应的模拟量实际输出值与理论值之
间的最大误差。绝对精度是由 DAC的增益误差(当
输入数码为全 1时,实际输出值与理想输出值之差)、
零点误差(数码输入为全0时,DAC的非零输出
值)、非线性误差和噪声等引起的。绝对精度(即
最大误差)应小于 1个 LSB。
?相对精度 与绝对精度表示同一含义,用最大误差相
对于满刻度的百分比表示。
6
4、建立时间
?建立时间 是指输入的数字量发生满刻度变化时,
输出模拟信号达到满刻度值的 ± 1/2LSB所需的时
间。是描述 D/A转换速率的一个动态指标。
电流输出型 DAC的建立时间短 。 电压输出型 DAC
的建立时间主要决定于运算放大器的响应时间 。根
据建立时间的长短,可以将 DAC分成超高速(<
1μS)、高速( 10~ 1μS)、中速( 100~ 10μS)、
低速( ≥100μS)几档。
应当注意,精度和分辨率具有一定的联系,但
概念不同。 DAC的位数多时,分辨率会提高,对
应于影响精度的量化误差会减小。但其它误差
(如温度漂移、线性不良等)的影响仍会使 DAC
的精度变差。
7
9.1.2 DAC0832芯片及其与单片机接口
DAC0832是使用非常普遍的8位 D/A转换器,由于其片
内有输入数据寄存器,故可以直接与单片机接口。
DAC0832以电流形式输出,当需要转换为电压输出时,可
外接运算放大器。属于该系列的芯片还有 DAC0830、
DAC0831,它们可以相互代换。 DAC0832主要特性,
?分辨率8位;
?电流建立时间1 μ S;
?数据输入可采用双缓冲、单缓冲或直通方式;
?输出电流线性度可在满量程下调节;
?逻辑电平输入与 TTL电平兼容;
?单一电源供电(+ 5V~+ 15V);
?低功耗,20mW。
8
一,DAC0832内部结构及引脚
输 入
锁 存 器
D A C
寄 存 器
D / A
转 换 器
D I 7 ~ D I 0
I L E
C S
W R 1
W R 2
X F E R
V R E F
I O U T 2
I O U T 1
R f b
A G N D
V C C
&
&
&
L E 1 L E 2
9
10
二,DAC0832与 80C51单片机的接口
1、单缓冲工作方式
此方式 适用于只有一路模拟量输出,或有几路模拟量输出
但并不要求同步的系统 。
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
11
双极性模拟输出电压,
V R E F
+ 5 V
-
+
R f b
V O U T
D
A
C
0
8
3
2
I O U T 1
I O U T 2
2 R
D I 0
D I 7
D G N D
-
+
V D
2 R
R
A 1
A 2
A G N D
偏 移 码
双极性输出时的分辨率比单极性输出时降低
1/2,这是由于对双极性输出而言,最高位作为
符号位,只有 7位数值位。
12
2、双缓冲工作方式
多路 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
13
完成两路 D/A同步输出的程序如下:
MOV DPTR,#0DFFFH ;指向 0832(1)输入锁存器
MOV A,#data1
MOVX @DPTR,A ; data1送入 0832(1)输入锁存器
MOV DPTR,#0BFFFH ;指向 DAC0832(2)输入锁存器
MOV A,#data2
MOVX @DPTR,A ; data2送入 0832( 2)输入锁存器
MOV DPTR,#7FFFH ;同时启动 0832 (1),0832(2)
MOVX @DPTR,A ;完成 D/A转换输出
14
3、直通工作方式
?当 DAC0832芯片的片选信号、写信号、
及传送控制信号的引脚全部接地,允许输
入锁存信号 ILE引脚接+ 5V时,DAC0832
芯片就处于直通工作方式,数字量一旦输
入,就直接进入 DAC寄存器,进行 D/A转
换。
15
9.2 A /D转换器及其与单片机接口
9.2.1 A/D转换器的原理及主要技术指标
一、逐次逼近式 ADC的转换原理 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
16
二、双积分式 ADC的转换原理
控 制 逻 辑
V I N



标 准 电 压


比 较 器
时 钟
积 分 器 输 出
t
T 2
T 1
T
17
三,A/D转换器的主要技术指标
122
1、分辨率
?ADC的分辨率 是指使输出数字量变化一个
相邻数码所需输入模拟电压的变化量。常用
二进制的位数表示。例如 12位 ADC的分辨率
就是 12位,或者说分辨率为满刻度 FS的
1/ 。一个 10V满刻度的 12位 ADC能分辨输
入电压变化最小值是 10V× 1/ =2.4mV。122
18
2、量化误差
?ADC把模拟量变为数字量,用数字量近似表示模拟量,这个
过程称为量化。 量化误差是 ADC的有限位数对模拟量进行量
化而引起的误差 。实际上,要准确表示模拟量,ADC的位数
需很大甚至无穷大。一个分辨率有限的 ADC的阶梯状转换特
性曲线与具有无限分辨率的 ADC转换特性曲线(直线)之间
的最大偏差即是量化误差。
数 字 输 出
模 拟 电 压 输 入
0 0 0
0 0 1
0 0 2
0 0 3
0 0 4
0 0 5
0 0 6
0 0 7
1 L S B
数 字 输 出
模 拟 电 压 输 入
0 0 0
0 0 1
0 0 2
0 0 3
0 0 4
0 0 5
0 0 6
0 0 7
1 / 2 L S B
19
3、偏移误差
?偏移误差 是指输入信号为零时,输出信号不为零的
值,所以有时又称为零值误差。假定 ADC没有非线
性误差,则其转换特性曲线各阶梯中点的连线必定
是直线,这条直线与横轴相交点所对应的输入电压
值就是偏移误差。
4、满刻度误差
?满刻度误差 又称为增益误差。 ADC的满刻度
误差是指满刻度输出数码所对应的实际输入电
压与理想输入电压之差。
20
5,线性度
?线性度 有时又称为非线性度,它是指转换器实际的
转换特性与理想直线的最大偏差。
6、绝对精度
?在一个转换器中,任何数码所对应的实际模拟量输
入与理论模拟输入之差的最大值,称为 绝对精度 。对
于 ADC而言,可以在每一个阶梯的水平中点进行测
量,它包括了所有的误差。
7、转换速率
?ADC的 转换速率 是能够重复进行数据转换的速度,
即每秒转换的次数。而完成一次 A/D转换所需的时间
(包括稳定时间),则是转换速率的倒数。
21
主要性能为:
?分辨率为8位;
?精度,ADC0809小于 ± 1LSB( ADC0808小于
± 1/2LSB);
?单 +5V供电,模拟输入电压范围为 0~+ 5V;
?具有锁存控制的8路输入模拟开关;
?可锁存三态输出,输出与 TTL电平兼容;
?功耗为 15mW;
?不必进行零点和满度调整;
?转换速度取决于芯片外接的时钟频率。时钟频
率范围,10~ 1280KHz。典型值为时钟频率
640KHz,转换时间约为 100μS。
9.2.2 ADC0809芯片及其与单片机的接口
22
一,ADC0809的内部结构及引脚功能
I N 7







8 路
模 拟
开 关
地 址 锁
存 与
译 码
8 位
A / D
转 换

I N 0
C
B
A
A L E
3
D 7
D 0
D 3
D 5
D 1
D 2
D 4
D 6
O E
E O C
V R ( + ) V R ( - )
S T A R T C L K
1
2
3
4
5
6
7
8
9
1 0
1 1
1 2
1 3
1 4
2 8
2 7
2 6
2 5
2 4
2 3
2 2
2 1
2 0
1 9
1 8
1 7
1 6
1 5
I N 3
I N 4
I N 5
I N 6
I N 7
S T A R T
E O C
D 3
O E
C L K
V C C
V R ( + )
G N D
D 1
I N 2
I N 1
I N 0
A
B
C
A L E
D 7
D 6
D 5
D 4
D 0
V R ( - )
D 2
A
D
C
0
8
0
9
23
1,IN0~ IN7,8路模拟量输入端。
2,D7~ D0,8位数字量输出端。
3,ALE,地址锁存允许信号输入端。通常向此引脚输入一个正
脉冲时,可将三位地址选择信号 A,B,C锁存于地址寄存器内并
进行译码,选通相应的模拟输入通道。
4,START,启动 A/D转换控制信号输入端。一般向此引脚输入一
个正脉冲,上升沿复位内部逐次逼近寄存器,下降沿后开始 A/D
转换。
5,CLK,时钟信号输入端。
6,EOC,转换结束信号输出端。 A/D转换期间 EOC为低电平,A/D
转换结束后 EOC为高电平。
7,OE,输出允许控制端,控制输出锁存器的三态门。当 OE为高
电平时,转换结果数据出现在 D7~ D0引脚。当 OE为低电平时,
D7~ D0引脚对外呈高阻状态。
8,C,B,A,8路模拟开关的地址选通信号输入端,3个输入端
的信号为 000~ 111时,接通 IN0~ IN7对应通道。
9,VR(+),VR(-),分别为基准电源的正、负输入端。
24
二,ADC0809与单片机的接口
1、查询方式
E O C
A D C
0 8 0 9
D 0 ~ D 7
7
4
L
S
3
7
3
O E
G
A L E
8 0 C 3 1
D 7
:
:
D 0
Q 7
:
:
Q 0
P 3, 3
E A
P 0
A
B
C
C K Q
D Q
1
+
+
S T A R T
A L E
O E
C L K
W R
P 2, 7
R D
I N 0
I N 7
25
例:对8路模拟信号轮流采样一次,并依次把转换
结果存储到片内 RAM以 DATA为起始地址的连续单
元中。
MAIN,MOV R1,#DATA ;置数据区首地址
MOV DPTR,#7FF8H ;指向0通道
MOV R7,#08H ;置通道数
LOOP,MOVX @DPTR,A ;启动 A/D转换
HER,JB P3.3,HER ;查询 A/D转换结束
MOVX A,@DPTR ;读取 A/D转换结果
MOV @R1,A ;存储数据
INC DPTR ;指向下一个通道
INC R1 ;修改数据区指针
DJNZ R7,LOOP ;8个通道转换完否?
… …
26
2、中断方式
读取 IN0通道的模拟量转换结果,并送至片内 RAM以 DATA
为首地址的连续单元中。
ORG 0013H ;中断服务程序入口
AJMP PINT1
ORG 2000H
MAIN,MOV R1,#DATA ;置数据区首地址
SETB IT1 ;为边沿触发方式
SETB EA ;开中断
SETB EX1 ;允许中断
MOV DPTR,#7FF8H ;指向 IN0通道
MOVX @DPTR,A ;启动 A/D转换
LOOP,NOP ;等待中断
AJMP LOOP
27
ORG 2100H ;中断服务程序入口
PINT1,PUSH PSW ;保护现场
PUSH ACC
PUSH DPL
PUSH DPH
MOV DPTR,#7FF8H
MOVX A,@DPTR ;读取转换后数据
MOV @R1,A ;数据存入以 DATA为首地址的 RAM

INC R1 ;修改数据区指针
MOVX @DPTR,A ;再次启动 A/D转换
POP DPH ;恢复现场
POP DPL
POP ACC
POP PSW
RETI ;中断返回
28
主要性能为:
?逐次逼近 ADC,可选择工作于 12位,也可工作于 8
位。转换后的数据有两种读出方式,12位一次读出;
8位、4位两次读出。
?具有可控 三态输出缓冲器,逻辑电平为 TTL电平。
?非线性误差, AD574AJ为 ± 1LSB,AD574AK为
± 1/2LSB。
9.2.3 ADC574芯片及其与单片机的接口
?转换时间,最大转换时间为 25μS(属中档速度)。
?输入模拟信号,单极性时,范围为 0V~+ 10V和
0V~+ 20V,从不同引脚输入。双极性输入时,范
围为 0V~ ± 5V和 0V~ ± 10V,从不同引脚输入。
29
?输出码制,单极性输入时,输出数字量为原码,
双极性输入时,输出为偏移二进制码。
?具有+ 10.000V的高精度 内部基准电压源,只需
外接一只适当阻值的电阻,便可向 DAC部分的解
码网络提供参考输入。内部具有时钟产生电路,
不须外部接线。
?需三组电源,+ 5V,VCC(+ 12V~+ 15V)、
VEE(- 12V~- 15V)。由于转换精度高,所
提供电源必须有良好的稳定性,并进行充分滤波,
以防止高频噪声的干扰。
?低功耗,典型功耗为 390mW。
30
一,AD574A引脚功能
31
32
33
二,AD574A的单极性和双极性输入
+ 1 5 V
- 1 5 V
1 0 0 k Ω
1 0 0 k Ω
1 0 0 Ω
1 0 0 Ω
0 ~ 1 0 V
0 ~ 2 0 V
D G A G
1 0 V I N
2 0 V I N
B I P O F F
R E F I N
R E F O U T
A D 5 7 4
- 5 V ~ + 5 V
- 1 0 V ~ + 1 0 V
D G A G
1 0 V I N
2 0 V I N
A D 5 7 4
1 0 0 Ω
R E F I N
R E F O U T
B I P O F F
1 0 0 Ω
R 2
R 1
R 2
R 1
单极性输入 双极性输入
34
1、单极性输入电路
当输入电压为 VIN=0V~ +10V时,应从引脚
10VIN输入,当 VIN=0V~ +20V,应从 20VIN
引脚输入。输出数字量 D为无符号二进制码,
计算公式为:
D=4096 VIN/VFS
或, VIN=D VFS / 4096
式中 VIN为输入模拟量( V),VFS是满量程,如
果从 10VIN引脚输入,VFS =10V,
1LSB=10/4096=24( mV);若信号从 20VIN 引脚输
入,VFS =20V,1LSB=20/4096=49( mV)。
35
2、双极性输入电路
R1用于调整双极性输入电路的零点。如果输入信号 VIN在
- 5V~+ 5V之间,应从 10VIN引脚输入;当 VIN在- 10V~+
10V之间,应从 20 VIN引脚输入。
双极性输入时输出数字量 D与输入模拟电压 VIN之间的关系:
D= 2048( 1+2VIN / VFS)
或, VIN=( D/2048-1) VFS /2
式中 VFS的定义与单极性输入情况下对 VFS的定义相同。
由上式求出的数字量 D是 12位偏移二进制码。把 D的最高
位求反便得到补码。补码对应模拟量输入的符号和大小。同样,
从 AD574A读到的或应代到式中的数字量 D也是偏移二进制码。
例如,当模拟信号从 10 VIN引脚输入,则 VFS= 10V,若读得
D= FFFH,即 111111111111B= 4095,代入式中可求得 VIN
= 4.9976 V。
36
三,AD574A与单片机的接口
S T S
A D 5 7 4
D B 1 1
7
4
L
S
3
7
3
O E
G
A L E
8 0 C 3 1
D 7
:
:
D 0
Q 7
:
:
Q 0
P 1, 0
E A
P 0, 7
R / C
+
C E
W R
R D
1 0 0 Ω
R E F I N
R E F O U T
B I P O F F
1 0 0 Ω
R 2
R 1
- 5 V ~ + 5 V
- 1 0 V ~ + 1 0 V
A G
1 0 V I N
2 0 V I N
A 0
C S
1 2 / 8
P 0, 0
D B 4
D B 3
D B 0
D G
37
?采用双极性输入方式,可对 ± 5V或 ± 10V的模拟信号
进行转换。当 AD574A与 80C31单片机配置时,由于
AD574A输出 12位数据,所以当单片机读取转换结果
时,应分两次进行:当A 0=0时,读取高 8位;当A
0=1时,读取低 4位。
?转换结果的读取有三种方式,( a) STS空着不接,
单片机就只能在启动 AD574A转换后延时 25μS以上再
读取转换结果,即延时方式;( b) STS接到 80C31的
一条端口线上,单片机就可以采用查询方式。当查得
STS为低电平时,表示转换结束; (c) STS接到 80C31
的端,则可以采用中断方式读取转换结果。图中
AD574A的 STS与 80C31的 P1.0线相连,故采用查询
方式读取转换结果。
38
AD574A的转换程序段如下:
AD574A,MOV DPTR,#0FFF8H ;送端口地址入 DPTR
MOVX ﹫ DPTR,A ;启动 AD574A
SETB P1.0 ;置 P1.0为输入方式
LOOP,JB P1.0,LOOP ;检测 P1.0口
INC DPTR ;使 R/C为 1
MOVX A,﹫ DPTR ;读取高 8位数据
MOV 41H,A ;高 8位内容存入 41H单元
INC DPTR ;使,A0均为 1
INC DPTR ;
MOVX A,﹫ DPTR ;读取低 4位
MOV 40H, A ;将低 4位内容存入 40H单元
...,..
上述程序是按查询方式设计,也可按中断方式设计中断服务程序 。
39
MC14433是美国 Motorola公司生产的 3位半
双积分 A/D转换器,是目前市场上广为流行的典
型的 A/D转换器。 MC14433具有抗干扰性能好,
转换精度高(相当于 11位二进制数),自动校零,
自动极性输出,自动量程控制信号输出,动态字
位扫描 BCD码输出,单基准电压,外接元件少,
价格低廉等特点。但其 转换速度约 1~ 10次 /秒 。
在不要求高速转换的场合,如温度控制系统中,
被广泛采用。 5G14433与 MC14433完全兼容,可
以互换使用。
9.2.4 MC14433芯片及其与单片机的接口
40
一,MC14433的内部结构及引脚功能
C L K 0
多 路 选 择 开 关
控 制 逻 辑
C M O S 线 性 电 路
D U E O C
Q 0 ~ Q 3 D S 1 ~ D S 4
1
2
3
4
5
6
7
8
9
1 0
1 1
1 2
2 4
2 3
2 2
2 1
2 0
1 9
1 8
1 7
1 6
1 5
1 4
1 3
V A G
V R
V X
R 1
R 1 / C 1
C 1
C 0 1
C 0 2
D U
C L K 1
C L K 0
V E E
V D D
Q 3
Q 2
Q 1
Q 0
D S 1
D S 2
D S 3
D S 4
O R
E O C
V S S
M
C
1
4
4
3
3
锁 存 器
个 溢 出
极 性 判 别
十 百 千
1


C L K 1
R 1 C 0 2
C 0 1C 1R 1 / C 1
O R
V R
V A G
V X
41
?模拟电路部分 有基准电压、模拟电压输入部分。被
转换的模拟电压输入量程为 199.9mV或 1.999V,与
之对应的基准电压相应为+ 200mV或+ 2V两种。
?数字电路部分 由逻辑控制,BCD码及输出锁存器、
多路开关、时钟以及极性判别、溢出检测等电路组成。
MC14433采用字位动态扫描 BCD码输出方式,即千、
百、十、个位 BCD码轮流地在 Q0~ Q3端输出,同时
在 DS1~ DS4端出现同步字位选通信号。
?主要的外接器件 是时钟振荡器外接电阻 RC、外接
失调补偿电容 C0和外接积分阻容元件 R1,C1。
42
MC14433芯片的引脚功能如下:
( 1) VAG:被测电压 VX和基准电压 VR的接地端
(模拟地)。
( 2) VR:外接输入基准电压(+ 2V或+ 200mV)。
( 3) VX:被测电压输入端。
( 4) R1,R1/C1,C1,外接积分电阻 R1和积分电
容 C1元件端,外接元件典型值为:当量程为 2V时,
C1=0.1μF,R1=470kΩ;当量程为 200mV时,
C1=0.1μF,R1=27kΩ。
( 5) C01,C02:外接失调补偿电容 C0端,C0的
典型值为 0.1μF。
43
( 6) DU:更新输出的 A/D转换数据结果的输入端。当 DU与
EOC连接时,每次的 A/D转换结果都被更新。
( 7) CLK1和 CLK0,时钟振荡器外接电阻 RC端。时钟频率
随 RC的增加而下降。 RC的值为 300kΩ时,时钟频率为 147
kHz(每秒约转换 9次)。
( 8) VEE:模拟部分的负电源端,接- 5V。
( 9) VSS:除 CLK0端外所有输出端的低电平基准(数字
地)。当 VSS接 VAG (模拟地)时,输出电压幅度为
VAG~ VDD( 0~+ 5V);当 VSS接 VEE(- 5V)时,输出
电压幅度为 VEE~ VDD(- 5V~+ 5V),10V的幅度。实际
应用时一般是 VSS接 VAG,即模拟地和数字地相连。
( 10) EOC:转换周期结束标志输出。每当一个 A/D转换周
期结束,EOC端输出一个宽度为时钟周期二分之一宽度的正
脉冲。
44
?( 11),过量程标志输出,平时为高电平。当 大
于 VR时(被测电平输入绝对值大于基准电压),端输
出低电平。
?( 12) DS1~ DS4:多路选通脉冲输出端。 DS1对应千位,
DS4对应个位。每个选通脉冲宽度为 18个时钟周期,两个相
邻脉冲之间间隔 2个时钟周期。
OR Vx
OR
千 位 百 位 十 位 个 位
0, 5 T
1 8 T
2 T
E O C
D S 1
D S 2
D S 3
D S 4
Q 0 ~ Q 3
1 6 4 0 0 T
45
( 13) Q0~ Q3,BCD码数据输出线。其中 Q0为最低位,Q3
为最高位。当 DS2,DS3和 DS4选通期间,输出三位完整的
BCD码,即 0~ 9十个数字任何一个都可以。但在 DS1选通期
间,数据输出线 Q0~ Q3除了千位的 0或 1外,还表示了转换值
的正负极性和欠量程还是过量程,其含义见表。
46
?Q3表示千位( 1/2)数的内容,Q3 =“0”(低
电平)时,千位数为 1; Q3 =“1”
(高电平)时,千位数为 0;
?Q2 表示被测电压的极性,Q2 =“1”表示正极
性,Q2 =“0”表示负极性;
?Q0 =,1”表示被测电压在量程外(过或欠
量程),可用于仪表自动量程切换。当 Q3=“0”
时,表示过量程;当 Q3=“1”时,表示欠量程。
( 14) VDD:正电源端,接+ 5V。
47
二,MC14433与 80C51单片机的接口
E O C
M
C
1
4
4
3
3
P 1, 0
8 0 C 5 1
P 1, 7
1
C 0 1
D U
Q 0
I N T 1
Q 3
D S 1
D S 1
C 0 2
V E E
V S S
V D D
- 5 V
+ 5 V
M C
1 4 0 3
V R
V A G
V X
C L K 0
C L K 1
V X
R 1 / C 1C 1 R 1
0, 0 4 7 μ F
0, 0 2 μ F
0, 1 μ F
0, 1 μ F
4 7 0 K Ω
3 0 0 K Ω
1 K Ω
48
?尽管 MC14433需外接的元件很少,但为使其工作与最佳状
态,也必须 注意外部电路的连接和外接元器件的选择 。由于
片内提供时钟发生器,使用时只需外接一个电阻;也可采用
外部输入时钟或外接晶体振荡电路。 MC14433芯片工作电源
为 ± 5V,正电源接 VDD,模拟部分负电源端接 VEE,模拟地
VAG与数字地 VSS相连为公共接地端。为了提高电源的抗干
扰能力,正、负电源分别经去耦电容 0.047μF,0.02μF与
VSS( VAG)端相连 。
?MC14433芯片的 基准电压须外接,可由 MC1403
通过分压提供+ 2V或+ 200mV的基准电压。在一
些精度不高的小型智能化仪表中,由于+ 5V电源是
经过三端稳压器稳压的,工作环境又比较好,这样
就可以通过电位器对+ 5V直接分压得到。
49
?EOC是 A/D转换结束的输出标志信号,每一次 A/D
转换结束时,EOC端都输出一个 1/2时钟周期宽度的
脉冲。当给 DU端输入一个正脉冲时,当前 A/D转换
周期的转换结果将被送至输出锁存器,经多路开关
输出,否则将输出锁存器中原来的转换结果。所以
DU端与 EOC端相连,以选择连续转换方式,每次转
换结果都送至输出寄存器。
?由于 MC14433的 A/D转换结果是动态分时输出的
BCD码, Q0~ Q3和 DS1~ DS4都不是总线式 的。
因此,80C51单片机只能 通过并行 I/O接口或扩展 I/O
接口与其相连 。对于 80C31单片机的应用系统来说,
MC14433可以直接和其 P1口或扩展 I/O口 8155/8255
相连。
50
80C51读取 A/D转换结果可以采用中断方式或查
询方式。采用中断方式时,EOC端与 80C51外部
中断输入端或相连。采用查询方式时 EOC端可接
入 80C51任一个 I/O口或扩展 I/O口。
51
MC14433上电后,即对外部模拟输入电
压信号进行 A/D转换,由于 EOC与 DU端相
连,每次转换完毕都有相应的 BCD码及相
应的选通信号出现在 Q0~ Q3和 DS1~ DS4
上。当 80C51开放 CPU中断,允许外部中
断 1中断申请,并置外部中断为边沿触发方
式,在执行下列程序后,每次 A/D转换结束
时,都将把 A/D转换结果数据送入片内
RAM中的 2EH,2FH单元。这两个单元均
可位寻址。
52
初始化程序:
INI1,SETB IT1 ;选择为边沿触发方式
MOV IE,#10000100B ; CPU开中断,外部中断允许
...,..
中断服务程序:
PINT1,MOV A,P1
JNB ACC.4,PINT1 ;等待 DS1选通信号
JB ACC.0,PEr ;查是否过、欠量程,是则转 Per
JB ACC.2,PL1 ;查结果是正或负,1为正,0为负
SETB 77H ;负数符号置 1,77H为符号位位地址
AJMP PL2
PL1,CLR 77H ;正数,符号位置 0
PL2,JB ACC.3,PL3 ;查千位( 1/2位)数为 0或 1,ACC.3=0
时千位数为1
53
SETB 74H ;千位数置 1
AJMP PL4
PL3,CLR 74H ;千位数置 0
PL4,MOV A,P1
JNB ACC.5,PL4 ;等待百位 BCD 码选通信号 DS2
MOV R0,#2EH
XCHD A,@R0 ;百位数送入 2EH低 4位
PL5,MOV A,P1
JNB ACC.6,PL5 ;等待十位数选通信号 DS3
SWAP A ;高低 4位交换
INC R0 ;指向 2FH单元
MOV @R0,A ;十位数送入 2FH高 4位
PL6,MOV A,P1
JNB ACC.7,PL6 ;等待个位数选通信号 DS4
XCHD A,@R0 ;个位数送入 2FH低 4位
RETI ;中断返回
PEr,SETB 10H ;置过、欠量程标志
RETI ;中断返回