第 9 章 单片机与数 / 模及模 / 数转换接口
description
Transcript of 第 9 章 单片机与数 / 模及模 / 数转换接口
第第 99 章 单片机与数章 单片机与数 // 模及模模及模 // 数转换接口数转换接口
9.1 MCS-519.1 MCS-51 单片机与单片机与 D/AD/A 转换器的接口和应转换器的接口和应用用
9.2 MCS-519.2 MCS-51 单片机与单片机与 A/DA/D 转换器的接口和应转换器的接口和应用用
本章要求本章要求
1.1. 了解掌握单片机与了解掌握单片机与 D/AD/A 转换器的接口和应转换器的接口和应用 用
2.2. 了解掌握了解掌握 D/AD/A 转换器的原理与转换器的原理与 DAC0832DAC0832
3.3. 了解掌握单片机与了解掌握单片机与 A/DA/D 转换器的接口和应转换器的接口和应用用4.4. 了解掌握了解掌握 A/DA/D 转换器的原理与转换器的原理与 ADC080ADC08099
9.1 MCS-519.1 MCS-51 单片机与单片机与 D/A D/A 转换器的接口和应转换器的接口和应用用
一一 . . D/A D/A 转换器转换器概述概述⑴ 概述
1. 电压与电流输出形式
2. 带与不带锁存器的 D/A 转换器
9.1 MCS-519.1 MCS-51 单片机与单片机与 D/A D/A 转换器的接口和应转换器的接口和应用用
一一 . . D/A D/A 转换器转换器概述概述⑵D/A 转换器的主要技术指标1. 分辨率
分辨率指最小输出电压 ( 对应的输入数字量最低有效位为 1) 与最大输出电压 ( 对应的数字输入量所有位全为 1) 之比。例如,对于 10 位 D/A 转换器,其分辨率为 1/1024
2. 转换精度 D/A 的转换精度主要取决于 D/A 转换器的二进
制位数。例如, 8 位的 D/A 相对误差是 1/256 ,16 位的 D/A 相对误差为 1/65 536 。显然,二进制位数越多精度越高。
3. 建立时间 D/A 转换器是指从数字输入端发生变化开始,到
输出模拟信号电压 ( 或模拟信号电流 ) 达到满刻度值 (1/2)LSB 时所需要的时间。
2. 带数据锁存器的 D/A 转换器的接口方法 1) DAC0832 特性与结构 DAC0832 具有两个输入数据寄存器的 8 位 D
AC ,分辨率为 8 位,电流稳定时间 1 μs ,可采用单缓冲、双缓冲或直接数字输入工作方式,转换结果为电流型,它能直接与 51 系列单片机 接 口 。 DAC0809 是 单 一 电 源 供 电 ( + 5 V ~+ 15 V) ,低功耗。图 8-18 是 DAC0832的内部逻辑结构图。
DAC¼Ä´æÆ÷
Q7Q6Q5Q4Q3Q2Q1Q0
ÊäÈë¼Ä´æÆ÷
D7D6D5D4D3D2D1D0
Q7Q6Q5Q4Q3Q2Q1Q0
D/Aת»»Æ÷
D17D16D15D14D13D12D11D10
&
¡Ý1
¡Ý1
ILE
Rfb
IOUT1
IOUT2
VREF
AGNDCS
1WR
2WR
XFER
2LE
D7D6D5D4D3D2D1D0
1LE
图 8-18 DAC0832 的内部结构图
• 2) DAC0832 引脚功能介绍• 图 8-19 是 DAC0832 的引脚图。各引脚功能如
下:• (1) DI0 ~ DI7 :数据输入线。• (2) ILE :数据锁存允许端,高电平有效。• (3) :输入寄存器选择信号端,低电平有
效。• (4) :输入寄存器的写选通信号端,低电平有
效。• (5) : DAC 寄存器的写选通信号端,低电平
有效。• (6) :数据转换控制信号线,低电平有效。
CS
1WR
2WR
XFER
12345678910
CSWR1
AGNDDI3DI2DI1
LSB DI0VREF
RfbDGND
20191817161514131211
VCCILEWR2
XFERDI4DI5DI6DI7 MSBIOUT2IOUT1
图 8-19 DAC0832 的引脚图
• (7) VREF :基准电源输入端。• (8) Rfb :反馈信号输入端 ( 反馈电阻在
芯片内部 ) 。• (9) IOUT1 、 IOUT2 :电流输出端。• (10) VCC :电源输入端。• (11) AGND :模拟信号地。• (12) DGND :数字信号地。
• 3) DAC0832 与 AT89C51 的接口
• 从图 8-19 可知,只有当和 ILE 同时有效时,才能够通过 将数据写入输入寄存器。
• (1) 单缓冲工作方式:在应用系统中,当只有一路模拟量输出或虽有多路模拟量但不需要做同步输出时,就可以采用单缓冲工作方式。
1WR
图 8-20 DAC0832 单缓冲方式下的连接方法
• 在图 8-20 中, D/A 转换器的基准电压 VREF 取自 MC1403 的分压输出, LM324 的功能是把电流型输出转换成单极性的电压型输出,由于 、 并接到地址锁存器的 A0 ,所以 0832 的口地址为FFFEH 。
• 按照图 8-23 ,产生梯形波的程序如下:
CS XFER
• START:MOV DPTR, #0FFFEH ;选中0832
• STEP: MOV R6 , #20H ;置阶跃值• MOV R4 , #05H ;置阶跃次数• MOV A, #00H;送初值• LOOP : MOVX @DPTR , A ;启动 D/A 转换
• ACALL DELAY ;调延时程序• ADD A ,R6 ;加阶跃值• DJNZ R4 , LOOP ;重复数到否• AJMP STEP
• (2) 双缓冲工作方式:双缓冲工作方式用于需要同时输出几路模拟信号的场合。此种方式下,每一路模拟量都需要一片 DAC0832 ,从而构成多个 0832同步输出系统,图 8-21 是两路模拟信号同步输出的电路连接方法。
D0
D7¡«
G
Q0
Q7
¡«
OE
ALE
P0
WR
D0
D7
¡«
CS
XFER
1WR
WR2
OUT1I
OUT2I
Rfb
D0
D7¡«
CS
XFER
1WR
WR2
OUT1I
OUT2I
Rfb
8λ
8λ
A2 A1 A0
A7¡«A074LS373
DAC0832(1)
DAC0832(2)
8λ
AT89C51
£«
£
£«
£
ʾ
²¨
Æ÷
X
Y
A
A
图 8-21 两路模拟信号同步输出系统
• 下面是按照图 8-21 使两路模拟电压同时输出的程序清单:
• MOV DPTR , #0FFFEH
• MOV A , #Xdata
• MOVX @DPTR , A
• ; Xdata 写入第一片 0832 的输入寄存器
• MOV DPTR , #0FFFDH
• MOV A , #Ydata
• MOVX @DPTR , A
• ; Ydata 写入第二片 0832 的输入寄存器
• MOV DPTR , #0FBH
• MOV @DPTR , A
• ;两片 0832 的输入寄存器的数据同时送到各自的 DAC 寄存器
9.1 MCS-519.1 MCS-51 单片机与单片机与 D/A D/A 转换器的接口和应转换器的接口和应用用
二二 . . 典型典型 D/A D/A 转换器转换器芯片芯片 DAC083DAC08322
9.1 MCS-519.1 MCS-51 单片机与单片机与 D/A D/A 转换器的接口和应用转换器的接口和应用
三三 . . 单缓冲方式的接口与应用单缓冲方式的接口与应用
8.3 A/D 转换器及接口技术• 8.3.1 A/D 转换器概述• 在大规模集成电路高速发展的今天,
由于计算机控制技术在工程领域内的广泛应用, A/D 转换器在应用系统中占据着重要的地位。为了满足各种不同的检测及控制任务的需要,大量结构不同,性能各异的 A/D 转换电路应运而生。尽管 A/D 转换器的种类繁多,但目前广泛使用的还是逐次比较式和双积分式。
• 8.3.2 A/D 转换器的主要技术指标• A/D 转换器的主要技术指标如下:• (1) 分辨率:指对输入模拟量变
化的灵敏度。习惯上用输出二进制的位数或 BCD 码位数表示。
• (2) 转换精度:指与数字输出量所对应的模拟输入量的实际值与理论值之间的差值。精度有绝对精度和相对精度两种表示方法。
• (3) 转换速率:指能够重复进行数据转换的速度,即每秒转换的次数,而完成一次 A/D 转换所需的时间 ( 包括稳定时间 ) ,为转换速率的倒数。
• 8.3.3 AT89C51 单片机与 ADC0809接口应用
• 1. ADC0809 内部结构及特性• ADC0809 是 8 位逐次比较式 A/
D 转换器,其内部包括 8 位 A/D 转换器,8 路模拟开关、三态输出锁存器以及地址译码器等。它可分别对 8 路 0 ~ 5 V 模拟量输入信号进行转换。输出量有三态锁存缓冲,可直接连到单片机的数据总线上。图 8-10 是 ADC0809 的内部结构图。
8·ģÄ⿪¹Ø
µØÖ·Ëø´æ
ÓëÒëÂë
Èý̬Êä³öËø´æ
D0(2- 8)D1(2- 7)D2(2- 6)D3(2- 5)D4(2- 4)D5(2- 3)D6(2- 2)D7(2- 1)
EOC
8λA/D
ת»»Æ÷3
8
A
B
C
ALE
START CLK
VR(£ )VR(£«) OE
IN7IN6IN5IN4IN3IN2IN1IN0
图 8-10 ADC0809 内部结构图
• 2. ADC0809 引脚功能• 图 8-11 是 ADC0809 的引脚图,引
脚功能如下: • (1) IN0 ~ IN7 : 8 路模拟量输的
入端。• (2) 2-1 ~ 2-8 : 8 位数字量输出端口,
2-1 为最高有效位, 2-8 为最低有效位。• (3) START :启动控制输入端,加
正脉冲,立即启动 A/D 转换。•
IN3IN4IN5IN6IN7
STARTEOC2£ 5
OECLKVCC
REF(£«)GND
2£ 7
2827262524232221201918171615
1234567891011121314
IN2IN1IN0ADDAADDBADDCALE2£ 1
2£ 2
2£ 3
2£ 4
2£ 8
REF(£ )2£ 6
图 8-11 ADC0809 引脚图
• (4) ALE :地址锁存控制端。 • (5) EOC :转换结束信号输出端。 • (6) OE :输出允许控制端。 • (7) CLK :时钟信号输入端。• (8) REF( + ) 、 REF( - ) :参考电压
输入端,一般REF( + ) 接 VCC , REF(- ) 接GND 。
• (9) ADDA 、 ADDB 、 ADDC : 8 位模拟开关的 3 位地址选通输入端,用来选择对应的输入通道,其对应关系如表 8-2 所示。
• (10) VCC 和 GND :电源端和接地端。
• 表 8-2 8 路模拟开关功能表
ADDC ADDB ADDA 输入通道
0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1
IN0IN1IN2IN3IN4IN5IN6IN7
• 3. AT89C51 与 ADC0809 接口• ADC0809 与 AT89C51 的连接有三
种方式:查询方式、中断方式和定时方式。应用时采用什么方式,应该根据具体情况来选择。
• 图 8-12 为单片机 AT89C51 与 ADC0809 的硬件电路图。该连接图既可作为中断方式,又可作为查询方式,通过软件编程,这两种方式都能够实现。
74LS373
D0 D1 D2 D3 D4 D5 D6 D7
Q0 Q1 Q2
P0.5P0.4P0.3P0.2P0.1P0.0
P0.6P0.7
AT89C51
ALE
P2.0
2£ 8
2£ 7
2£ 6
2£ 5
2£ 4
2£ 3
2£ 2
2£ 1
START
ALEOE
EOC IN7IN6IN5IN4IN3IN2IN1IN0
¡Ý1
¡Ý1
1RD
WR
INT0
ADDAADDBADDC
GOE
CLK
REF(£«)
REF(£ )
GND
£«5 V
ADC0809
图 8-12 AT89C51 与 ADC0809 的接口图
[ 例 8.3] 用查询方式分别对 8 路模拟信号轮流采样一次,并依次把结果转存到以 30H 为首址的数据存储区,程序如下:
MAIN : MOV R1 , #30H ;置数据区首址 MOV DPTR , #0FFF8H ;指向 IN0 MOV R7 , #08H ;置通道数 LOOP : MOVX @DPTR ,A ;启动 A/D 转换 MOV R6 , #05H;软件延时DLAY : NOP DJNZ R6 , DLAY
WAIT : JNB P3.2, WAIT ;查询EOC 是否为高,高则转换结束 MOVX A, @DPTR;读取转换结果 MOV @R1, A;存取数据 INC DPTR ;指向下一个通道 INC R1 ;指向下一个存储单元 DJNZ R7, LOOP ;巡回检测八个通道 RET
• [ 例 8.4] 利用中断方式分别对 8 路模拟信号轮流采集一次,转换结果依次存放在首址为 30H 的片内数据区,程序如下:
• ORG 0000H• AJMP MAIN • ORG 0003H• AJMP PINT1• MIAN: MOV R1, #30H ;置数据区首址• MOV DPTR , #0FEF8H ;指向 IN0• MOV R7, #08H
• SETB IT0• SETB EX0 ;开中断• SETB EA• LOOP : MOVX @DPTR , A ;启动 A/D
转换• • PINT1 : MOVX A , @DPTR ;读取数
据• MOV @R1, A ;存取数据
• INC R1 ;更新存储单元 • INC DPTR ;更新通道• DJNZ R7 , DONE • CLR EXO ;关中断• CLR EA• RETI ;中断返回• DONE : MOVX @DPTR , A• RETI
• 8.3.4 AT89C51 与 MC14433 接口应用• 1. MC14433 的结构及特性• MC14433 是 3 位双积分 A/D
转换器,它具有抗干扰性能好、转换精度高、自动校零、自动极性输出、自动量程控制信号输出、动态高位扫描 BCD码输出、单基准电压、过量欠量程输出标志等特点,但其转换速度慢,在不要求高速转换的场合被广泛地应用。
2
1
• 2.MC14433 引脚介绍• MC14433 的引脚如图 8-13 所示。各引脚功
能如下:• (1) VAG :被测电压 VX 和基准电压 VR 的接地
端 ( 模拟地 ) 。• (2) VR :外接基准电压 ( + 2 V 或+ 200 mV) 。• (3) VX :被测电压输入端。• (4) R1 , R1/C1 , C1 :外接积分电阻和外
接积分电容端。• (5) CO1 , CO2 :外接失调补偿电容,典型
值为 0.1 μF 。
• (6) DU :更新输出的 A/D 转换数据结果的输入端,当 DU 与 EOC 相连时,每次的 A/D转换结果都被更新。
• (7) CLK1 , CLK0 :时钟信号输入、输出端。
• (8) VDD 、 VEE :分别为正电源端( 接+ 5 V) 和模拟负电源端 ( 接- 5 V) 。
• (9) VSS :数字地或系统地。 • (10) EOC :转换周期结束标志,每当一
个 A/D 转换周期结束,输出一个宽度为时钟周期二分之一的正脉冲。
• (11) (11) OR :过量程标志,平时为高电平,当 |VX|>VR 时,为低电平。
• (12) DS1 ~ DS4 :多路选通脉冲输出端, DS1 对应千位, DS4 对应个位,每个选通脉冲宽度为 18 个时钟周期,两个相邻脉冲之间间隔 2 个时钟周期,其脉冲时序图见图 8-14 。
ǧλ °Ùλ ʮλ ¸öλ ǧλ °Ùλ
1/2CLKÖÜÆÚ ¡Ö16 400¸öʱÖÓÖÜÆÚ
EOC
(×î¸ßλ)DS11/2λ
DS2
DS3
(×îµÍλ)DS4
Q3¡«Q0
18¸öʱÖÓÂö³åÖÜÆÚ
2¸öʱÖÓÂö³åÖÜÆÚ
图 8-14 MC14433 选通脉冲时序图
• (13) Q0 ~ Q3 : BCD 码数据输出端,其中 Q0 为最低位, Q3 为最高位。在 DS2 、 DS3 和 DS4 选通期间,分别输出三位完整的 BCD 码,即 0 ~ 9 这 10 个数码中的任何一个。但在 DS1 选通期间, Q0 ~ Q3 输出除了表示千位的 0或 1 外,还表示了正负极性及欠过量程,其含义见表 8-3 。
• 表 8-3 DS1 选通时 Q0 ~ Q3 表示的输出结果
DS1 Q3 Q2 Q1 Q0 输出结果状态
1 1 × × 0 千位数为 0
1 0 × × 0 千位数为 1
1 × 1 × 0 输出结果为正值
1 × 0 × 0 输出结果为负值
1 0 × × 1输入信号为过量
程
1 1 × × 1输入信号为欠量
程
• 3. AT89C51 与 MC14433 的接口• 由于 MC14433 的 A/D 转换结果是
动态分时输出 BCD 码。 Q0 ~ Q3 和 DS1 ~ DS4 都不是总线式的,因此,单片机只能通过并行口或扩展并行口与其相连。图 8-15 为 AT89C51 与 MC14433的硬件接口图。
•
Q0Q1Q2Q3DS1DS2DS3DS4
P1.5P1.4P1.3P1.2P1.1P1.0
P1.6P1.7
EOCDUCO1
CO2
CLKI CLKO VX
VR
VAG
C1 R1/C1 R1VDD
VEE
MC1403
1MC14433
AT89C51
1INT
0.1 F
0.047 F
0.02 F
£«5 V
£ 5 V
1V
VX
£«5 V
300 k
0.01 F 470 k
图 8-15 AT89C51 与 MC14433 接口图
• 图 8-15 中, MC14433 用集成精密+ 2.5 V 电压基准源经电位器分压作为 A/D 转换的基准电压。EOC 与 DU 相连,用来选择连续转换方式,每次转换结果都送至输出寄存器,并且由 EOC 作为查询或中断方式读取转换结果的输入信号。
• 用 MC14433设计的 A/D 转换电路中,在程序设计时,因为要对符号位进行位处理,所以要将数据保存在能够进行位处理的单元。下面的程序是在中断程序中用查询方式读取 MC14433 的 BCD 码扫描输出值,并将读取的数据存在能进行位寻址的 2E
H 、 2FH 单元,数据存放格式如图 8-16 所示。
·ûºÅ ¡Á ¡Á ǧ °Ù
D7 D4 D3 D0
Ê® ¸ö
D4 D3D7
2EH
2FH
D0
图 8-16 数据存放格式
• 程序如下:• MAIN : SETB IT1 ; INT1 为边沿触发方式
• MOV IE , #10000100B • ;
CPU 开中断,允许 INT1 中断• 中断服务程序:• PINT1 : MOV A , P1 • JNB ACC.4 , PINT1 ;等待
DS1 信号• JB ACC.0 , PER ;过欠量程转 PER
• JB ACC.2 , PL1 ;结果为正转 PL1
• SETB 77H ;负数,符号位置 1
• AJMP PL2
• PL1 : CLR 77H ;正数,符号位清 0
• PL2 : JB ACC.3 , PL3 ; ACC.3=0 时,千位数为 1
• SETB 74H ;千位数置 1
• AJMP PL4
• PL3 : CLR 74H ;千位数清零• PL4 : MOV A , P1 • JNB ACC.5 , PL4 • ;等待百位 BCD 码的选通信号
• MOV R0 , #2EH • XCHD A , @R0 ;百位数送入 2E
H 低 4 位• PL5 : MOV A , P1 • JNB ACC.6 , PL5 ;等待十位数选通信号 DS3
• SWAP A ;高低 4 位交换• INC R0 ;指向 2FH单元• MOV @R0 ,A ;十位数送入 2FH• PL6 :MOV A ,P1 • JNB ACC.7 , PL6 ;等待个位数选通信号DS4
• XCHD A , @R0 ;个位数送入 2FH 低4 位
• RETI • PER:SETB 10H ;置过欠量程标志• RETI
9.1 MCS-519.1 MCS-51 单片机与单片机与 D/A D/A 转换器的接口和应用转换器的接口和应用
四四 . . 双缓冲方式的接口与应用双缓冲方式的接口与应用
9.2 MCS-519.2 MCS-51 单片机与单片机与 A/D A/D 转换器的接口和应用转换器的接口和应用
一一 . . 典型典型 A/D A/D 转换器芯片转换器芯片 ADC0809ADC0809
9.2 MCS-519.2 MCS-51 单片机与单片机与 A/D A/D 转换器的接口和应用转换器的接口和应用
二二 . MCS-51. MCS-51 单片机与单片机与 ADC 0809ADC 0809 接接口口
9.2 MCS-519.2 MCS-51 单片机与单片机与 A/D A/D 转换器的接口和应用转换器的接口和应用
三三 . MCS-51. MCS-51 单片机与单片机与 ADC 0809ADC 0809 接口应用接口应用
作业练习题作业练习题
P253: P253: 一 一 . 1. 1 、、 44 、、 6~306~30
二 二 . 1. 1 、、 22 、、 44 、、 66 、、 9~149~14