单片机模拟量接口

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

DAC0832的应用
• 双极性模拟量输出
10.2.3 DAC1208的结构与应用
• DAC1208为12位的D/A转换器 • DAC1208内部有三个寄存器
– 4位的输入寄存器,存放12位待转换数字量 的低4位 – 8位输入寄存器,存放12位待转换数字量的 高8位 – 12位的DAC寄存器,存放从两个输入寄存器 送来的12位数字量
• 单片机响应中断后,应该读取三态缓冲 器中的数字量。对地址8000H的一次读 操作可使OE引脚出现一个正脉冲 • 读取转换后数据
MOV MOVX DPTR, #8000H A, @DPTR
例 某系统使用图10-15所示的电路连接,共有8路模拟电压输入。 编写程序,将8路输入的实时转换结果存放于内RAM的40H~47H 单元中,程序主循环中将读取这些数据。 程序如下: DSEG AT 40H AIN:DS 8 CURR:DS 1 DSEG AT 60H STACK:DS 20H ADC09 XDATA 8000H CSEG AT 0000H ORG 0000H LJMP MAIN ORG 0003H LJMP INT0-ISR
C点电压为:-(1/2)*Vref A点电压为:-(1/8)*Vref
B点电压为:-(1/4)*Vref
10.1.1 D/A转换原理
22
V ref V V ref ref V ref 10 3 2 I 20 I1 2 2 2 3 22 R 216 R 16 R R 2RR 16 R VB VA V DC
例 使用图10-4所示的电路,编写产生三角波的子程序。 假设方波高电压所对应的数字量为Vhigh,低电压对应的数字 量为Vlow,则子程序如下: MOV DPTR , #6000H AGAIN:MOV A , #VHIGH MOVX @DPTR , A CALL DELAY Vhigh MOV A , #VLOW MOVX @DPTR , A Vlow CALL DELAY SJMP AGAIN
P2.7P2.6P2.5× × × × × × × × × × P0.2P0.1P0.0 B 1 0 0×××××××××× 0 8000H为启动A/D转换地址。 0 ADC0809的应用 0 B
CLK为ALE信号用 D触发器2分频得到
MOV DPTR ,#8000H
MOV A ,#05H
MOVX @DPTR ,A
MOV AGAIN: INC MOVX SJMP
0V(0)
DAC0832的应用
DPTR, #6000H A @DPTR, A AGAIN
;输入寄存器地址 ;数字量增1 ;转换 ;反复
-Vref(255)
例 使用图10-4所示的电路,编写产生方波的子程序。 假设三角波要求的最高电压是0V,最低电压为-Vref,则子程 序如下: MOV DPTR , #6000H CLR A DOWN: MOVX @DPTR , A 0V(0) CALL DELAY INC A JNZ DOWN MOV A , #0FEH -Vref(255) 三角波 UP: MOVX @DPTR , A CALL DELAY DEC A JNZ UP SJMP DOWN
• 以ADC0809和AD574A为例 • ADC0809是典型的8位逐次逼近式A/D转 换器,可对8路模拟信号分时进行A/D转 换 • AD574A 为12位A/D转换器
10.4.1 ADC0809的结构
2、ADC0809的引脚功能 采用DIP28引脚封装形式。各引脚功能如下。 •IN0~IN7:8路模拟电压输入,用于输入待转换的模拟电压。 •ADDA、ADDB、ADDC:地址信号,用于选择IN0~IN7中 的某一路模拟量。其中ADDC为最高位,ADDA为最低位。 •ALE:地址锁存允许信号。 •START:启动转换信号,高电平有效。上升沿清零SAR, 下降沿启动ADC工作。 •EOC:转换结束信号,高电平有效。在START信号上升沿 后0~8个时钟周期内,DOC变为低电平,转换结束时变高, 表示转换结束。 •OE:输出允许信号。 •2-1~2-8:数字量输出。 •CLK:时钟信号输入。 •VCC、GND、REF(+)、REF(-):
10.3.3 A/D转换器的选择
• 根据前向通道的总误差,选择A/D转换器精度 及分辨率 • 根据信号对象的变化率及转换精度要求,确定 A/D转换速度,保证系统实时性要求 • 根据环境条件选择A/D转换芯片的环境参数要 求 • 根据计算机接口特征,考虑如何选择A/D转换 器的输入输出特性
10.4 A/D转换器的应用
第10章 模拟量接口
本章重点
•D/A转换的原理与方法
•DAC0832/DAC1208的结构与应用
•A/D转换原理与方法
•ADC0809和ADC574A的结构与应用
模拟量接口
• 主要用于单片机控制和测量仪表中
后向通道
前向通道
10.1 D/A转换器
• 把数字信号转换成模拟信号的器件 • D/A转换器的输出可以是电流,也可以是 电压,但多数是电流信号 • 在大多数电路中,D/A转换器输出的电流 信号需要用运算放大器再转换成电压输 出
DAC1208的结构与应用
• 如果使用8255A作为输出口的扩展, DAC1208可以与8255A的A口或B口的8位、 以及C口的4位直接相连 • 但两个端口的数据仍然需要两次送出, 也须先高8位后低4位
10.3 A/D转换器
• 将模拟量转换成数字量 • 通常输入电压信号 • 输出二进制数字量 • A/D转换主要有计数式、双积分式、逐次 逼近式、Σ-Δ式等方法
DAC0832的应用
• 例 使用图10-4所示的电路,怎样产生正 弦波输出? • 每一时刻所对应的数字量可以使用三角 函数计算得出 • 通常将标准的正弦函数值(一个周期、或 半个周期、或1/4周期)事先计算出来,保 存到程序存储器中
DAC0832的应用
• 双缓冲方式
– 输入寄存器和DAC寄存器都由外部信号控制 – 通常用在多个DAC0832同步输出模拟信号的 场合 – 将各个DAC0832欲转换的数据准备好,依次 写入其输入寄存器,然后一个统一的写操作 启动所有的D/A转换,使得所需模拟信号能 同时出现
3 2 1 0
16 R
分辨率:D/A转换器能够分辨的最小电压差,通常用最低有效 位对应的模拟量来表示。若满量程记做Vfs,一个n位D/A转换 器的分辨率为Vfs/2n。
10.1.2 D/A转换器的指标
• • • • • • • •
分辨率 为输出电压接近理想值的程度,通常用数 字量的最低有效位(LSB)的一半表示,即 转换精度 ±(1/2)LSB。 建立时间 线性度 温度系数 电源抑制比 输出电平 工作温度范围
ADC0809的应用
• ADDC、ADDB和ADDA是连接到数据总线的 D2、D1和D0的,若执行
MOV MOV MOVX DPTR, #8000H A, #05H @DPTR, A
• 多路开关选择IN5输入的模拟电压送比较器 • START上的正脉冲启动ADC0809的工作
ADC0809的应用
10.1.3 D/A转换器的选型
• 主要考虑芯片的性能、结构及应用特性 • 用位数(8位、10位、12位等)表示的转换 精度是否能满足系统对误差的要求、转 换时间是否合理 • 结构和应用特性
– 输入特性、输出特性 – 锁存特性及转换控制 – 参考电压源
10.2 D/A转换器的应用
• DAC0830 • DAC0832的输入数字量为8位,具有双缓 冲、单缓冲和直通三种数据输入方式 • CMOS工艺,低功耗(20mW),逻辑电平 与TTL兼容 • 参考电压范围±10V;电流建立时间1µ s, 温度系数0.0002%
10.2.1 DAC0832的结构
10.2.2 DAC0832的应用
• 直通方式
– 控制信号减到最少 – 一般用于无计算机控制的系统
பைடு நூலகம்
• 单缓冲方式
– 内部的两个寄存器仅有一个受选通信号的控 制
DAC0832的应用
• 单缓冲方式
• 例 使用图10-4所示的电路,编写产生锯齿波 的子程序。 • 将输出数据依次增大,就会产生锯齿波,可编 写如下的子程序。
• Σ-Δ式A/D转换 • 根据前一采样值与后一采样值之差,即 所谓的增量进行量化编码 • 由于编码位数少,采样和编码可以同时 完成,因此不需要采样保持电路,大大 简化了系统的结构 • Δ表示增量,Σ表示求和
10.3.2 A/D转换器的指标
• • • • • 分辨率和量化误差 转换精度 转换时间与转换速率 电源灵敏度 失调(零点)温度系数和增益温度系数
DAC1208的结构与应用
• 尽管DAC1208有12条数据线,但MCS-51 的数据总线是8位的,一次只能传送8位 数据 • DAC1208中12位数字量输入的高8位是一 个整体,可以直接与数据总线相连 • 低4位可以连接到数据总线的低4位,也 可以连接到数据总线的高4位
高8位输入寄存器的地址为:8005H。 12位DAC寄存器的地址为:8000H。 低4位输入寄存器的地址为:8004H。 P2.7P2.6P2.5× × × × × × × ×P0.4P0.3P0.2 × ×B
DAC1208的结构与应用
1
0
0×××××××× 0 0 1 × 0B 0 1 × ×B 0 1 B
例 为图10-9所示的电路编写程序,将内RAM地址为40H和41H 中的12位数字量送DAC1208转换输出。其中40H中存放待转换数 字量的高8位数据,41H的高4位中存放待转换数字量的低4位数 据。 程序如下: MOV R0 , #40H MOV A , @R0 MOV DPTR , #8005H 先送高8位 MOVX @DPTR , A INC R0 MOV A , @R0 SWAP A MOV DPTR , #8004H 后送低4位 MOVX @DPTR , A MOV DPTR , #8000H 启动转换 MOVX @DPTR , A
ADC0809的时序
10.4.2 ADC0809的应用
• ADC0809内部有一个8位的三态输出锁存 缓冲器,所以它既可以看作一种A/D转换 器件,也可以看成是一个并行输入器件 • ADC0809可以直接和MCS-51接口,也可 以通过像8255A这样的并行接口芯片连接。 在大多数情况下,MCS-51单片机是和 ADC0809直接相连的
• 12位的D/A转换电路
DAC1208的结构与应用
DAC1208的结构与应用
• 向DAC1208送12位数字量时,应先送高8 位,再送低4位 • 实际电路中,一片DAC1208至少要占用3 个I/O端口地址,分别是4位输入寄存器、 8位输入寄存器和12位DAC寄存器 • 即DAC1208必须工作在双缓冲方式
I0 I1 I2 I3
•I
I I
2 3 0 二进制展开求和 1 2 3 1 0
V ref V ref
8R 8R
I3 I2 I1 I0
当输入二进制各位分别是D3、D2、D1、D0时,运算放大器的输 入电流为: V ref D 2 3 D 2 2 D 2 1 D 2 0
转换由信号S启动,并将计数器内容清0。
10.3.1 A/D转换原理
C=1,计数器从0开始计数
• 计数式A/D转换
C=0,计数停止
A/D转换原理
• 逐次逼近式A/D转换
若Vi﹥VO,则控制器使寄存器中数值增大。 若Vi﹤VO,则控制器使寄存器中数值减小。
A/D转换原理
• 双积分式A/D转换
A/D转换原理
• 双缓冲方式
0 0 1 1 1 0
DAC0832的应用
DAC0832(1)输入寄存器的地址为:2000H。
DAC0832(2)输入寄存器的地址为:6000H。
DAC0832(1)、(2)DAC寄存器的地址为:4000H。
程序代码如下: MOV DPTR , #2000H MOV A , #DATA1 MOVX @DPTR , A MOV DPTR , #6000H MOV A , #DATA2 MOVX @DPTR , A MOV DPTR , #4000H MOVX @DPTR , A
相关文档
最新文档