A/D 转换器与单片机的接口技术
-
Upload
kelsey-hurley -
Category
Documents
-
view
120 -
download
0
description
Transcript of A/D 转换器与单片机的接口技术
![Page 1: A/D 转换器与单片机的接口技术](https://reader033.fdocuments.net/reader033/viewer/2022061407/5681313b550346895d97b437/html5/thumbnails/1.jpg)
Copyright http://www.myvtc.edu.cn 2006
A/D 转换器与单片机的接口技术 从物理信号到电信号的转换A/D 转换器的作用是将模拟的电信号转换成数字信号。在将
物理量转换成数字量之前,必须先将物理量转换成电模拟量,这种转换是靠传感器完成的。传感器的种类繁多,如温度传感器,压力传感器、光传感器、气敏传感器等。
温度传感器:典型的温度传感器有热电偶和热敏电阻。热电偶是利用热点效应来工作的,室温下的输出电压为毫伏级的。热敏电阻是一种半导体新型感温元件,具有负的电阻温度系数,当温度升高时,其电阻减小。
湿度传感器:是利用湿度变化引起其电阻值或电容量变化原理制成的,即将湿度变化转换成电量变化。
![Page 2: A/D 转换器与单片机的接口技术](https://reader033.fdocuments.net/reader033/viewer/2022061407/5681313b550346895d97b437/html5/thumbnails/2.jpg)
Copyright http://www.myvtc.edu.cn 2006
气敏传感器:半导体气敏传感器是利用半导体于某种气体接
触式电阻机功率函数变化这一效应来检测气体的成分或浓度的传感器。
压电式或压阻式传感器:某些电解质(石英晶体压电陶瓷),在沿一定的方向受外力的作用而变形时,内部会产生极化的现象,同时在其表面产生电荷。而当外力撤销时又重新回到不带电的状态。利用这些介质可以做成压电式传感器。
固体受到作用力后,电阻率(或电阻)就要发生变化,这种效应称压阻式效应,利用它可做成压阻式传感器。
![Page 3: A/D 转换器与单片机的接口技术](https://reader033.fdocuments.net/reader033/viewer/2022061407/5681313b550346895d97b437/html5/thumbnails/3.jpg)
Copyright http://www.myvtc.edu.cn 2006
主要参数:分辨率 :表示 A/D 对模拟输入的分辨能力,由它确定能被 A/D 辨别的
最小模拟量,通常也用二进制位来表示。
量化误差:是在 A/D 转换中由于整量化所产生的固有误差。对于舍入(四舍五入)量化误差在 1/2LSB 之间。
转换时间:是 A/D 转换完成一次所需要的时间。
绝对精度:是 A/D 转换器输出端所产生的数字代码中,分别对应于实际需要的模拟输入值与理论上要求的模拟输入值之差。
相对误差:是满刻度校准以后,任意数字输出所对应的实际模拟输入值(中间值)与理论值(中间值)之差。
漏码:如果模拟输入连续增加(或减小)时,数字输出不是连续增加(或减小)而是越过某一个数字,即出现漏码。
A/D 转换器的性能参数与术语
![Page 4: A/D 转换器与单片机的接口技术](https://reader033.fdocuments.net/reader033/viewer/2022061407/5681313b550346895d97b437/html5/thumbnails/4.jpg)
Copyright http://www.myvtc.edu.cn 2006
A/D 转换器的选取原则:A/D 转换器用于什么系统?输出数据的位数是多少?系统
应该达到多高的精度和线性度?提供给 A/D 转换器的输入信号范围多大?是单极性的还是
双极性的?信号的驱动能力怎样?是否要经过缓冲滤波和采样 / 保持?
对 A/D 转换器输出的数字代码及逻辑电平的要求如何?是二进制码还是 BCD 码,是串行还是并行?
系统是在静态下工作还是在动态下工作?带宽多少?采样速率为多少?
参考电压是内部的还是外部的?是固定的还是变化的?A/D 转换器的工作环境如何?噪声、温度、振动等条件如
何?电源电压、功耗、几何尺寸等其它因素。
A/D 转换器的选取原则:
![Page 5: A/D 转换器与单片机的接口技术](https://reader033.fdocuments.net/reader033/viewer/2022061407/5681313b550346895d97b437/html5/thumbnails/5.jpg)
Copyright http://www.myvtc.edu.cn 2006
分辨率为 8 位,精度为 8 位。转换时间: 100 微秒8 个模拟输入通道,有通道地址锁存。数据有三态输出能力。输入电压范围为 0~+5v
零偏差和满量程误差均小于 1/2LSB ,不需要校准
单一 +5v 电源供电工作温度范围为 -40~+85℃功耗为 15mw
ADC0809 的原理框图和引脚说明
![Page 6: A/D 转换器与单片机的接口技术](https://reader033.fdocuments.net/reader033/viewer/2022061407/5681313b550346895d97b437/html5/thumbnails/6.jpg)
Copyright http://www.myvtc.edu.cn 2006
D0 ~ D7 : 8 位数字量输出引脚。IN0 ~ IN7 : 8 路模拟量输入引脚。Vcc : +5V 工作电源。GND :地。VREF(+) :参考电压正端。VREF(-) :参考电压负端。START : A/D 转换启动信号输入端。ALE :地址锁存允许信号输入端。EOC :转换结束输出引脚。OE :输出允许控制端。CLK :转换时钟信号。 500kHz 左右。ADDA 、 ADDB 、 ADDC :地址输入线。
VCC 11
VREF(+) 12
D1 14
GND 13
IN3 1
EOC 7
IN4 2
START 6
IN6 4
IN7 5
IN5 3
CLK 10
OE 9
D3 8
28 IN2
22 ALE
27 IN1
23 ADDC
25 ADDA
24 ADDB
26 IN0
19 D5
20 D6
21 D7
18 D4
17 D0
15 D2
16 VREF(-)
ADC0809
![Page 7: A/D 转换器与单片机的接口技术](https://reader033.fdocuments.net/reader033/viewer/2022061407/5681313b550346895d97b437/html5/thumbnails/7.jpg)
Copyright http://www.myvtc.edu.cn 2006
ADC0809 的通道选择:
被选通的通道 ADDC ADDB ADDA
被选通的通道 ADDC ADDB ADDA
IN0 0 0 0 IN4 1 0 0
IN1 0 0 1 IN5 1 0 1
IN2 0 1 0 IN6 1 1 0
IN3 0 1 1 IN7 1 1 1
![Page 8: A/D 转换器与单片机的接口技术](https://reader033.fdocuments.net/reader033/viewer/2022061407/5681313b550346895d97b437/html5/thumbnails/8.jpg)
Copyright http://www.myvtc.edu.cn 2006
工作时序如图所示。转换由 START 为高电平来启动( START 和 CLOCK 可不同步), START 的上升沿将 SAR 复位,真正转换是从 START 的下降沿开始。在 START 的上升沿之后的 2 微妙加 8 个时钟周期, EOC状态输出信号将变低,以指示转换操作正在进行中。 EOC 保持低电平直至转换完成后再变为高电平。当 OUTPUT ENABLE (允许数据输出)被置为高电平时,三态门打开,数据锁存器的内容输出到数据总线上。
ADC0809 工作时序
![Page 9: A/D 转换器与单片机的接口技术](https://reader033.fdocuments.net/reader033/viewer/2022061407/5681313b550346895d97b437/html5/thumbnails/9.jpg)
Copyright http://www.myvtc.edu.cn 2006
ADC0809 与单片机接口
通道地址:78H~7FH
ADC0809 与 51 单片机接口
![Page 10: A/D 转换器与单片机的接口技术](https://reader033.fdocuments.net/reader033/viewer/2022061407/5681313b550346895d97b437/html5/thumbnails/10.jpg)
Copyright http://www.myvtc.edu.cn 2006
程序清单:ORG 0030H
START : MOV R0 , #40H ;采样数据存放首址 MOV R1 , #78H ; IN0 通道地址 MOV R2 , #08H ;模拟量通道数 CLR EX0 ;禁止中断
LOOP : MOVX @R1 , A ;启动 A/D 转换 MOV R3 , #20H ;延时一会儿,约 40us
DELY : DJNZ R3 , DELY ;等待 EOC 信号变低 SETB P3.2 ;设置 P3.2 为输入模式
POLL : JB P3.2 , POLL ;查询转换是否结束 MOVX A , @R1 ;读取转换结果 MOV @R0 , A ;存放结果 INC R0 INC R1
DJNZ R2 , LOOP ; 8 通道未完,则采集下一通道
HERE : SJMP HEREEND
程序控制查询方式(查询方式)
![Page 11: A/D 转换器与单片机的接口技术](https://reader033.fdocuments.net/reader033/viewer/2022061407/5681313b550346895d97b437/html5/thumbnails/11.jpg)
Copyright http://www.myvtc.edu.cn 2006
中断方式 (主程序)程序清单:
ORG 0000HSTART : AJMP MAIN
ORG 0003HAJMP EXINT0
ORG 0050hMAIN : MOV PSW , #00H ;设置第 0 工作区 MOV R0 , #40H ;采样数据存放首址
MOV R1 , #78H ; IN0 通道地址MOV R2 , #08H ;模拟量通道数MOVX @R1 , A ;启动 A/D 转换SETB IT0 ;外部中断 0 为边沿触发方式SETB EX0 ;允许外部中断 0 中断SETB EA ;开放 CPU 中断
HERE : SJMP HERE
中断方式(主程序)
![Page 12: A/D 转换器与单片机的接口技术](https://reader033.fdocuments.net/reader033/viewer/2022061407/5681313b550346895d97b437/html5/thumbnails/12.jpg)
Copyright http://www.myvtc.edu.cn 2006
EXINT0 : PUSH PSW ;保护现场
CLR RS0 CLR RS1 ;设置当前工作区为 0区MOVX A , @R1 ;读取转换结果MOV @R0 , A ;存放结果INC R0 ;修改存储区地址指针INC R1 ;通道号加 1DJNZ R2 , NEXT ; 8 通道未完,则采集下一通道CLR EX0 ;采集完毕,则停止中断SJMP DONE
NEXT : MOVX @R1 , A ;启动下一通道 A/D 转换DONE : POP PSW
RETI ;中断返回 END
中断方式(中断服务程序)
![Page 13: A/D 转换器与单片机的接口技术](https://reader033.fdocuments.net/reader033/viewer/2022061407/5681313b550346895d97b437/html5/thumbnails/13.jpg)
Copyright http://www.myvtc.edu.cn 2006
ADC574A 是一种价格低廉,应用较广的 12 位逐次逼近式模 / 数转换器芯片,可以直接与 8 位、 12 位、 16 位总线的处理器相连。主要的参数
ADC574A
性能参数 ADC574AJ ADC574AK ADC574AL
分辨率 / 位 12
转换时间 / 微妙 25
线形误差保证无漏码的最低分辨率 11 12
工作温度范围 /℃ 0~~70 ℃
温度系数 / ℃-1 单极性偏移 10*10-6 5*10-6
温度系数 / ℃-1 双极性偏移 10*10-6 5*10-6
增益 50*10-6 27*10-6 10*10-6
输入电压 /V (单极性) 0~~+10V 或 0~~+20V
输入电压 /V (双极性) -5~~+5V 或 -10~~+10V
功耗 /mw 390 (典型) ; 725 (最大)
![Page 14: A/D 转换器与单片机的接口技术](https://reader033.fdocuments.net/reader033/viewer/2022061407/5681313b550346895d97b437/html5/thumbnails/14.jpg)
Copyright http://www.myvtc.edu.cn 2006
引脚特性:D0 ~ D11 : 12 位数字量输出。CE :片选信号,高电平有效。CS :片选信号,低电平有效。R/C :数据读 / 启动信号。 R/C=1 时, 读取转换结果; R/C=0 时,启动 A/D 转换。12/8 :输出数据长度选择信号。A0 :字节选择信号。在 =0状态下, A0=0 启动 12 位 A/D 转换, A0=1
动 8 位 A/D 转换。在 =1且 =0状态下, A0=0读高 8 位数据, A0=1读低 4 位数据。STS : AD574A 的工作状态信号。 STS=1 表示正处于转换状态; STS=0 表示转换完毕。
CSCR /
VEE 11
BIPOFF 12
20VIN 14
10VIN 13
VL 1
VCC 7
12/8 2
CE 6
A0 4
R/C 5
CS 3
REFIN 10
AGND 9
REFOUT 8
28 STS
22 D6
27 D11
23 D7
25 D9
24 D8
26 D10
19 D3
20 D4
21 D5
18 D2
17 D1
16 D0
AD574A
15 DGND
ADC574A 引脚特性
![Page 15: A/D 转换器与单片机的接口技术](https://reader033.fdocuments.net/reader033/viewer/2022061407/5681313b550346895d97b437/html5/thumbnails/15.jpg)
Copyright http://www.myvtc.edu.cn 2006
10VIN : 10V 模拟电压输入。单极性时为 0 ~+ 10V ,双极性时为- 5V ~+ 5V 。20VIN : 20V 模拟电压输入。单极性时为 0 ~+ 20V ,双极性时为- 10V ~+ 1
0V 。REFIN :参考输入,用于满量程调节。REFOUT :内部 10V 参考电压输出。BIPOFF :偏置输入,用于零点调节。VCC 、 VEE 、 VL :+ 15V 、- 15V 、+ 5V 供电电源。AGND :模拟地。DGND :数字地。
CS 8/12
CE CS R/ ! C 12/8 A0 工作状态
0 × × × × 禁止× 1 × × × 禁止1 0 0 × 0 启动 12 位转换1 0 0 × 1 启动 8 位转换1 0 1 1 × 12 位数据输出1 0 1 0 0 高 8 位数据输出1 0 1 0 1 低 4 位数据输出
ADC574A 引脚特性
ADC574 工作时序表
![Page 16: A/D 转换器与单片机的接口技术](https://reader033.fdocuments.net/reader033/viewer/2022061407/5681313b550346895d97b437/html5/thumbnails/16.jpg)
Copyright http://www.myvtc.edu.cn 2006
AD574A 的工作时序:AD574A 的工作时序
CE
CS
R/C
A0
STS
D11~D0
CE
CS
R/C
A0
STS
D11~D0高阻
数据
(a) 启动和转换
(b) 读 取数据
![Page 17: A/D 转换器与单片机的接口技术](https://reader033.fdocuments.net/reader033/viewer/2022061407/5681313b550346895d97b437/html5/thumbnails/17.jpg)
Copyright http://www.myvtc.edu.cn 2006
单极性和双极性电路 :
(a) 单 极 性 电路
(b) 双极性电路
0~10V
0~20V
-5V~+5V
-10V~+10V
W1
W2
W1
W2
ADC574 的两种应用形式
![Page 18: A/D 转换器与单片机的接口技术](https://reader033.fdocuments.net/reader033/viewer/2022061407/5681313b550346895d97b437/html5/thumbnails/18.jpg)
Copyright http://www.myvtc.edu.cn 2006
启动 A/D地址: 00H读高 8位地址: 01H读低 4位地址: 03H
AD574A 与 MCS-51 系列单片机接口
![Page 19: A/D 转换器与单片机的接口技术](https://reader033.fdocuments.net/reader033/viewer/2022061407/5681313b550346895d97b437/html5/thumbnails/19.jpg)
Copyright http://www.myvtc.edu.cn 2006
对模拟量电压采集一次,将结果放在单片机内部的 30H 和31H 单元的参考程序如下:
ORG 0030HMOV R0 , #00H ; A7 、 A1 、 A0 为低电
平MOV R1 , #30H ;结果单元地址MOVX@R0 , A ;启动 A/D 转换
TEST : JB P3.2 , TEST ;查询转换是否完成MOV R0 , #01H ; A7 和 A1=0 、 A0=1MOVXA , @R0 ;读转换结果高 8 位MOV @R1 , A ;存入 30H 单元MOV R0 , #03H ; A7=0 、 A1 和 A0=1
数据采集程序
![Page 20: A/D 转换器与单片机的接口技术](https://reader033.fdocuments.net/reader033/viewer/2022061407/5681313b550346895d97b437/html5/thumbnails/20.jpg)
Copyright http://www.myvtc.edu.cn 2006
MOVXA , @R0 ;读转换结果低 4 位
XCHD A , @R1 ;把结果的 D7 ~ D4 位移至低4 位
SWAPA ;调整、拼装成低 8 位 INC R1
MOV @R1 , A ;存放低 8 位DEC R1MOV A , @R1SWAPA ;结果的 D11 ~ D8 位移至字节低 4 位MOV @R1 , A ;存放高 4 位
HERE : SJMP HERE
END
![Page 21: A/D 转换器与单片机的接口技术](https://reader033.fdocuments.net/reader033/viewer/2022061407/5681313b550346895d97b437/html5/thumbnails/21.jpg)
Copyright http://www.myvtc.edu.cn 2006
ADC 和 MCU 接口应注意的几个问题 A/D 芯片的数字输出问题
转换结果数据应由 A/D 芯片锁存,数据输出最好具有三态能力。
A/D 芯片和 CPU 的时序配合问题1. 固定延时等待法 2. 保持等待法3. 中断响应法 4. 查询法 5. 双缓冲法 A/D 分辨率超过 MCU 数据总线宽度时的接口 不能只用一条指令,而要用两条输入指令才能把
A/D 转换的整个数字结构传送给微处理器。
![Page 22: A/D 转换器与单片机的接口技术](https://reader033.fdocuments.net/reader033/viewer/2022061407/5681313b550346895d97b437/html5/thumbnails/22.jpg)
Copyright http://www.myvtc.edu.cn 2006
ADC TLC2543芯片TLC2543 是 TI公司的 12 位串行模数转换器,使用开关电容逐次逼近技术完成 A/D 转换过程。由于是串行输入结构,能够节省 51 系列单片机 I/O资源;且价格适中,分辨率较高,因此在仪器仪表中有较为广泛的应用。
2TLC2543 的特点( 1 ) 12 位分辩率 A/D 转换器;
( 2 )在工作温度范围内 10μs 转换时间;( 3 ) 11 个模拟输入通道;( 4 ) 3 路内置自测试方式;( 5 )采样率为 66kbps ;( 6 )线性误差 ±1LSBmax ;( 7 )有转换结束输出 EOC ;( 8 )具有单、双极性输出;( 9 )可编程的 MSB 或 LSB 前导;( 10 )可编程输出数据长度。
![Page 23: A/D 转换器与单片机的接口技术](https://reader033.fdocuments.net/reader033/viewer/2022061407/5681313b550346895d97b437/html5/thumbnails/23.jpg)
Copyright http://www.myvtc.edu.cn 2006
ADC TLC2543芯片管脚特性
![Page 24: A/D 转换器与单片机的接口技术](https://reader033.fdocuments.net/reader033/viewer/2022061407/5681313b550346895d97b437/html5/thumbnails/24.jpg)
Copyright http://www.myvtc.edu.cn 2006
AIN0~ AIN10 :模拟量输入端。 11 路输入信号由内部多路器选通。对于 4.1MHz 的 I/OCLOCK ,驱动源阻抗必须小于或等于 50Ω ,而且用60pF 电容来限制模拟输入电压的斜率
CS !:片选端。在 端由高变低时,内部计数器复位。由低变高时,在设定时间内禁止 DATAINPUT 和 I/O CLOCK 。
DATAINPUT :串行数据输入端。由 4 位的串行地址输入来选择模拟量输入通道
DATA OUT : A/D 转换结果的三态串行输出端。 为高时处于高阻抗状态, 为低时处于激活状态
EOC :转换结束端。在最后的 I/OCLOCK 下降沿之后, EOC 从高电平变为低电平并保持到转换完成和数据准备传输为止
CLOCk :输入 / 输出时钟端。 I/OCLOCK 接收串行输入信号并完成以下四个功能:( 1 )在 I/O CLOCK 的前 8 个上升沿, 8 位输入数据存入输入数据寄存器。( 2 )在 I/OCLOCK 的第 4 个下降沿,被选通的模拟输入电压开始向电容器充电,直到 I/OCLOCK 的最后一个下降沿为止。( 3 )将前一次转换数据的其余 11 位输出到 DATA OUT端,在 I/OCLOCK 的下降沿时数据开始变化。( 4 ) I/OCLOCK 的最后一个下降沿,将转换的控制信号传送到内部状态控制位
![Page 25: A/D 转换器与单片机的接口技术](https://reader033.fdocuments.net/reader033/viewer/2022061407/5681313b550346895d97b437/html5/thumbnails/25.jpg)
Copyright http://www.myvtc.edu.cn 2006
REF+ :正基准电压端。基准电压的正端(通常为 Vcc )被加到 REF+ ,最大的输入电压范围由加于本端与 REF-端的电压差决定
REF- :负基准电压端。基准电压的低端(通常为地)被加到 REF-
Vcc :电源 GND :地时序:一个片选( !cs )脉冲要插到每次转换的开始处,或是在转换时
序的开始处变化一次后保持 为低,直到时序结束。每次转换和数据传递使用 16 个时钟周期和在每次传递周期之间插入 的时序
![Page 26: A/D 转换器与单片机的接口技术](https://reader033.fdocuments.net/reader033/viewer/2022061407/5681313b550346895d97b437/html5/thumbnails/26.jpg)
Copyright http://www.myvtc.edu.cn 2006
TLC2543 与 MCS-51 单片机接口
![Page 27: A/D 转换器与单片机的接口技术](https://reader033.fdocuments.net/reader033/viewer/2022061407/5681313b550346895d97b437/html5/thumbnails/27.jpg)
Copyright http://www.myvtc.edu.cn 2006
对 0 通道进行采集、结果为 16 位、 MSB前导、单极性,将采集的数据放入 40H 和 41H 单元的程序如下:
ORG 0030HSTART : MOV SP , #50H
MOV R0 , #40HMOV P1 , #04H ;初始化 P1 口CLR P1.0 ;置 I/O CLOCK 为低SETB P1.3 ;置为高MOV A , 30H
LOOP0 : MOV R2 , #02H ;结果为高低两字节
MOV R5 , #08H ;输入寄存器和结果的 8 位数据
TLC2543 与 51 接口的程序
![Page 28: A/D 转换器与单片机的接口技术](https://reader033.fdocuments.net/reader033/viewer/2022061407/5681313b550346895d97b437/html5/thumbnails/28.jpg)
Copyright http://www.myvtc.edu.cn 2006
LOOP : MOV C , P1.2 ;读一位数据到 C 中
RLC A ;输出数据到 A 的最低位,输入数据到 C
MOV P1.1 , C ;写输入数据SETB P1.0 ;产生 I/O CLOCK脉冲CLR P1.0
DJNZ R5 , LOOP ; 8 位数据未完则继续MOV @R0 , A ;存放结果DJNZ R2 , LOOP0 ;一次未完则继续AJMP START ;开始新一次转换END