1.1k likes | 1.27k Views
8.1 显示器及其接口 8.2 键盘接口 8.3 D/A 转换器及其接口 8.4 A/D 转换器及其接口 8.5 打印机接口* 8.6 拨码盘及语音接口*. 第 8 章 51 单片机的接口技术. 8.3 D/A 转换器及其接口 8.4 A/D 转换器及其接口. 单片机和被控实体间的接口示意图. 8.3.1 D/A 转换器 8.3.2 51 单片机和 D/A 的接口. 8.3 D/A 转换器及其接口 . V REF. 8.3.1 D/A 转换器. 图 8-3-1 最简单 D/A 转换器框图.
E N D
8.1 显示器及其接口 8.2 键盘接口 8.3 D/A转换器及其接口 8.4 A/D转换器及其接口 8.5 打印机接口* 8.6 拨码盘及语音接口* 第8章51单片机的接口技术
8.3 D/A转换器及其接口 8.4 A/D转换器及其接口 单片机和被控实体间的接口示意图
8.3.1 D/A转换器 8.3.2 51单片机和D/A的接口 8.3 D/A转换器及其接口
VREF 8.3.1 D/A转换器 图8-3-1 最简单D/A转换器框图
关系式:Vout=B×VR 式中,VR为常量,由参考电压VREF决定;B为数字 量,常为一个二进制数。B的位数通常为8位和12位 等,由D/A转换器芯片型号决定。 B为n位时的通式为: B=bn-1bn-2…b1b0 =bn-1×2n-1+bn-2×2n-2+…+b1×21+ b0×20 式中,bn-1为B的最高位;b0为最低位。
D/A转换器的原理: 把输入数字量中每位都按其权值分别转换成模 拟量,并通过运算放大器求和相加(如图8-3-2所 示)。 1.D/A转换器的原理
图8-3-2 T型电阻网络型D/A转换器 根据克希荷夫定律,如下关系成立: I0==1/2·I1 I1==1/2·I2I2==1/2· I3 I3==VREF/2R
n位D/A转换器 8位D/A,B=0, Vout=0V; B=255, Vout=-(255/256)*5=-4.98V
D/A转换器的输出形式 电压输出 电流输出,输出加运放将电流转为电压。 D/A转换器的接口形式 并行,总线接口 串行,I2C, SPI, 串口 D/A转换器的输入锁存(并行接口) 无锁存器 不能与P0直接相连。 有锁存器 能与P0直接相连。
l 分辨率: 分辨率是指D/A转换器的单位数字量引起的模拟量输出的变化。一般定义为:输出模拟量满度值与2n的比值。 例如: 8位D/A, 输出满度是5V,分辨率为5/28=19.5mv l 转换精度: 转换精度指满度校准时,在全量程内,DAC的实际模拟输出值与理论值的最大相对误差。 l线性度: 线性度是指DAC的实际转换特性曲线和理想直线之间的最大偏移误差。 l建立时间 :建立时间是数据变化满刻度时,输出达到终值±(1/2)LSB所需的时间。 2.D/A转换器的性能指标
l DAC0832内部结构 DAC0832内部由三部分电路组成(图8-3-3)。 “8位输入寄存器”、“8位DAC寄存器”、“8位D/A转换电路”由8位T型电阻网络和电子开关组成。 3.DAC0832 图8-3-3 DAC0832原理框图
图8-3-4 DAC0832原理框图 l引脚功能 DAC0832共有20条引脚,双列直插式封装。 (1)数字量输入线DI7~DI0(8条);(2)控制线(5条);(3)输出线(3条); (4)电源和地线(4条)。
第一级寄存器选通: ILE=1, CE=0, WR1=0 第二级寄存器选通: WR2=0, XFER=0
1.DAC的应用 lDAC用作单极性电压输出 lDAC用作双极性电压输出(图8-3-5、表8-3-1) lDAC用作程控放大器(图8-3-6) 8.3.2 51单片机和D/A的接口
输入数字量B b7 b6 b5 b4 b3 b2 b1 b0 Vout(理想值) +VREF时 -VREF时 1 1 1 1 1 1 1 1 |VREF|-LSB -|VREF|+LSB ┆ ┆ ┆ 1 1 0 0 0 0 0 0 |VREF|/2 -|VREF|/2 ┆ ┆ ┆ 1 0 0 0 0 0 0 0 0 0 ┆ ┆ ┆ 0 1 1 1 1 1 1 1 -LSB LSB ┆ ┆ ┆ 0 0 1 1 1 1 1 1 -|VREF|/2-LSB |VREF|/2+LSB ┆ ┆ ┆ 0 0 0 0 0 0 0 0 -|VREF| |VREF| 表8-3-1 双极性输出电压与输入数字量的关系
2 图8-3-6用DAC0832作程控放大器
b Vin b
2.51单片机与8位DAC的接口 51单片机和DAC0832接口时,有三种连接方式: 直通方式 单缓冲方式(如图8-3-7所示) 双缓冲方式 (如图8-3-9所示)
+5V MOV A, #80H MOV R0, #0FEH MOVX @R0,A 图8-3-7 单缓冲方式下的DAC0832
Vref=5V 图8-3-8 DAC产生波形
锯齿波 ORG 0000H START: MOV R0,#0FEH CLR A LOOP: MOVX @R0, A INC A SJMP LOOP END
三角波 ORG 0000H START: MOV R0,#0FEH CLR A DOWN: MOVX @R0, A INC A JNZ DOWN UP: DEC A MOVX @R0, A JNZ UP SJMP DOWN END
矩形波 ORG 0000H START: MOV R0, #0FEH LOOP: MOV A, #33H MOVX @R0, A ACALL DELAY1 MOV A, #0FFH MOVX @R0, A ACALL DELAY2 SJMP LOOP END
FDH: 1#DAC0832 输入寄存器地址 FEH: 2#DAC0832 输入寄存器地址 FFH: 1#和2# DAC0832 DAC寄存器地址 图8-3-9 8031和两片DAC0832的接口(双缓冲方式)
设51单片机内部RAM中有两个长度为20的数据块,其起始地址分别为20H和40H,编写能把20H和40H中的数据同步从1#和2#DAC0832输出的程序。设51单片机内部RAM中有两个长度为20的数据块,其起始地址分别为20H和40H,编写能把20H和40H中的数据同步从1#和2#DAC0832输出的程序。 程序设计: 设0区R1寄存器指向20H单元,1区R1指向40H单元,0区R2寄存器存放数据块长度,0区和1区的R0指向DAC端口地址。
ORG 0000H addr1 DATA 20H ;与EQU类似给标号赋值 Addr2 DATA 40H DTOUT: MOV R1,#addr1 ;1#DAC数据区指针 MOV R2,#20 ;数据块长度计数器 SETB RS0 ; 切换到1区 MOV R1,#addr2 ;2#DAC数据区指针 CLR RS0 ; 回0区 NEXT: MOV R0, #0FDH ; 1#DAC 输入寄存器地址 MOV A, @R1 ;取1#DAC数据指针指向单元中的数据 MOVX @R0,A ;数据送1#DAC0832输入寄存器 INC R1 ; 修改1#数据指针
SETB RS0 ;转1区 MOV R0,#0FEH ;2#DAC输入寄存器地址 MOV A,@R1 ;取2#DAC数据指针指向单元中的数据 MOVX @R0,A ;数据送2#DAC0832输入寄存器 INC R1 ;修改2#数据指针 INC R0 ; 指向1#,2#DAC端口地址 MOVX @R0,A ;启动两片DAC0832同时进行转换 CLR RS0 ;回0区 DJNZ R2,NEXT ;数据未传送完,继续 LJMP DTOUT END
3.51单片机与12位DAC的接口 l DAC1208的内部结构和原理(图8-3-10) l 51单片机和DAC1208的连接(图8-3-11) l12位DAC AD667的功能结构与模拟输出 l AD667与单片机的接口设计
BYTE1/BYTE2=1, 8,4位输入寄存器同时开启 BYTE1/BYTE2=0, 仅4位输入寄存器开启 图8-3-10 DAC1208内部框图
高8位输入寄存器地址 4001H, 先送8位数据 低4位输入寄存器地址 4000H, 再送4位数据 DAC寄存器地址 6000H, 最后再打开DAC寄存器 图8-3-11 8031和DAC1208接口图
ORG 100H MOV DPTR, #4001H ; 8位输入寄存器地址 MOV R1, #DIGIT ;高8位数据地址 MOV A, @R1 ;取数据 MOVX @DPTR, A ;高8位送入DAC1208 DEC DPL ;4位输入寄存器地址 INC R1 ;低4位数据地址 MOV A, @R1 ;取数据 MOVX @DPTR, A ;低4位送入DAC1208 MOV DPTR, 6000H ;DAC寄存器地址 MOVX @DPTR, A ;同步作D/A转换 软件编程将存在DIGIT和DIGIT+1的12位数据送入DAC1208作D/A转换。
12位DAC AD667的功能结构与模拟输出 AD667:12位,并行输入,电压输出,建立时间≤3s。 双缓冲输入;硬件编程可输出+5V、+10V、2.5V、5V和10V; 内含高稳定的基准电压源,可方便地与4位、8位或16位微处理 器接口;双电源工作电压为12V~15V。 1. 引脚
运放相关 数字部分
3. 模拟电压输出范围的配置 AD667通过改变片外引脚的电路连接,可获得不同的输出电 压量程范围。单极性:0~5V 和 0~10V。 双极性:2.5V、5.5V 和 10V。
VREFOUT VREFIN ① 单极性电压输出 调零 调 满 度
VREFOUT VREFIN ② 双极性电压输出 调偏置 调 满 度
高 低 中 4. 数字输入控制 AD667的总线接口逻辑由4个独立的锁存器组成。 3个4位的输入数据锁存器构成第一级锁存器。 1个12位的DAC锁存器构成第二级锁存器。 4个锁存器由4个地址输入A0~A3和/CS控制,所有的控制都 是低电平有效。
5.数据编码代表的数值 单极性输出时,输入编码采用直接二进制编码。 全“0”数据输入000H产生零模拟电压输出; 全“1”数据输入FFFH产生比满量程少1LSB的模拟电压输出。 如10V满量程,FFFH对应的是9.9976V。
双极性输出时,输入编码采用偏移二进制编码。双极性输出时,输入编码采用偏移二进制编码。 数据输入为000H时,产生负的满量程电压输出; 数据输入为FFFH时,产生比满量程少1LSB的电压输出; 数据输入为800H时,产生零电压输出。 输入数字量N与输出模拟电压VOUT的关系
6. AD667与51单片机的接口 左对齐数据格式 右对齐数据格式 低8位第一级锁存器 FEH 高4位第一级锁存器 FDH 12位第二级锁存器 FBH 右对齐 7FH
7. 程序 假定低8位数据存20H,高4位数据存21H的低4位(右对齐)。 先对第一级锁存器送数据,然后再选通第二级锁存器,进行D/A 转换。 MOV A,20H ;取低8位数据 MOV DPTR,#7FFEH MOVX @DPTR,A ;低8位进第一级锁存器 MOV A,21H ;取高4位数据 MOV DPTR,#7FFDH MOVX @DPTR,A ;高4位进第一级锁存器 MOV DPTR,#7FFBH MOVX @DPTR,A ;选通第二级锁存器,启动转换 RET
8.4.1 A/D转换器概述 8.4.2 逐次逼近式A/D转换器的工作原理 8.4.3 51单片机和ADC0809的接口 8.4.4 51单片机和AD1674/AD574的接口 8.4 A/D转换器及其接口
模拟量输入通道用于将模拟信号转换成数字信 号,所要求的基本部件有: Ø模拟多路转换器与信号调理电路。 Ø采样/保持电路。 ØA/D转换器。 Ø通道控制电路。 目前单片的ADC芯片较多,对设计者来说,应会合理地 的选择芯片,掌握与单片机的接口技术。虽然现在部分的 单片机片内集成了A/D转换器,使用方便。在片内A/D转换 器不能满足需要,还是需外扩A/D转换器。
1.A/D转换器的分类 8.4.1 A/D转换器概述
逐次比较型A/D转换器,在精度、速度和价格上都适中,逐次比较型A/D转换器,在精度、速度和价格上都适中, 是最常用的A/D转换器。 双积分型A/D转换器,精度高、抗干扰性好、价格低廉, 转换速度较慢。在单片机应用领域中也得到广泛应用。 -式ADC兼具有积分式与逐次比较型ADC的双重优点。它 对工业现场的串模干扰具有较强的抑制能力,不亚于双积分的 ADC,但它比双积分ADC有较高的转换速度。 与逐次比较型ADC相比,有较高的信噪比,分辨率高,线性 度好,不需要采样保持电路。因此,−式ADC得到了重视。 A/D转换器的速度:超高速(Tconv≤1ns)、高速(Tconv ≤1s)、中速(Tconv≤1ms)、低速(Tconv≤1s)。 A/D转换器的位数:8,10,12,14,16等。 串行接口:SPI,I2C。
2. A/D转换器的性能指标 (1) 转换时间: 完成一次模拟量到数字量转换所需的 时间。转换时间的倒数为转换速率。 (2) 分辨率: 分辨率为n位表示它能对满量程输入的 1/2n的增量做出反映。用二进制位数n 来表示,如8位、12位、6位等。 若n=8,满量程输入为5V,则能辨别的模拟电压增量是5V/28=19.5mV。 (3) 转换精度:在满量程内,实际转换值与理想转换 值的最大误差。
(1) A/D转换器位数的确定 位数确定即分辨率的确定,决定精度要求。估算时至少比总精度要求的分辨率高一位。 (2) 转换速率的确定 根据实际需求确定A/D的转换速率。 温度、流量、压力等缓变量的采集可用慢速A/D, 几毫秒~上百毫秒。 转速、电流等的采集用几十微秒的A/D。 3. A/D转换器的选用 位数 速度
(3) 采样保持器的使用 原则上A/D转换器对模拟信号转换期间,其输入信号 应保持不变,通过采样保持器完成信号保持的功能。 对直流和相对A/D转换速率很慢的信号可以不用采样 保持器。 8位100us的A/D, 在无采保时, 能转换的最高正弦信 号频率为12Hz。 (4) 其他 工作电压 基准电压 串行与并行