大学计算机课件 13DAC和ADC接口.ppt
41页第13章数模和模数转换器接口 13.1 MCS-51与DAC的接口 13.2 MCS-51与ADC的接口 13.3 MCS-51与V/F转换器的接口13.1 D/A转换器接口 13.1.1 D/A转换器概述 输出形式:电压输出、电流输出内部无锁存器:可与P1、P2口直接相接(因P1口和P2口的输出有 锁存功能)但与P0口相接,需增加锁存器 内部有锁存器:可与P0口直接相接主要技术指标: 分辨率 = 输出满刻度值/2n建立时间=从输入数字量到输出达到终值误差的(1/2)LSB所需的时间 13.1.2 8位并行DAC08321. DAC0832芯片介绍(1)DAC0832的特性美国国家半导体公司产品,具有两个输入数据寄存 器的8位DAC,能直接与MCS-51单片机相连主要特性如 下:* 分辨率为8位;* 电流输出,稳定时间为1s;* 可双缓冲输入、单缓冲输入或直接数字输入;* 单一电源供电(+5~+15V);(2)DAC0832的引脚及逻辑结构 引脚:DAC0832的逻辑结构:引脚功能: DI0~DI7:8位数字信号输入端CS*: 片选端 ILE: 数据锁存允许控制端,高电平有效。
WR1*:输入寄存器写选通控制端当CS*=0、ILE=1、WR1*=0时,数据信号被锁存在输入寄存器中 XFER*:数据传送控制WR2* :DAC寄存器写选通控制端当XFER*=0,WR2* =0时,输入寄存器状态传入DAC寄存器中IOUT1:电流输出1端,输入数字量全“1”时,IOUT1最大, 输入数字量全为“0”时,IOUT1最小 IOUT2:D/A转换器电流输出2端,IOUT2+IOUT1=常数Rfb:外部反馈信号输入端, 内部已有反馈电阻Rfb, 根据需要也可外接反馈电阻Vcc:电源输入端,可在+5V~+15V范围内DGND:数字信号地AGND:模拟信号地2.DAC0832与单片机的接口 (1)单缓冲方式 应用在只有一路模拟数据输出或有几路模拟数据 但不要求同时输出的场合16位地址为7FFFH,完成一次D/A 转换操作的指令如下:MOV DPTR,#7FFFH ;数据指针指向DAC0832MOV A,#DATA ; 数字量装入累加器MOVX @DPTR,A ;执行一次数字量写入并启动转换例:DAC0832用作波形发生器分别写出产生锯齿波、三角波和矩 形波的程序。
(1) 锯齿波的产生ORG 2000H START:MOV DPTR,#7FFFH ;数据指针指向DAC0832MOV A, #00H ; 数字量装入累加器 LOOP: MOVX @DPTR,A ;执行一次数字量写入并启动转换INC A ;数字量逐次加SJMP LOOP(2) 三角波的产生ORG 2000HSTART:MOV DPTR,#7FFFH ;数据指针指向DAC0832MOV A,#00H; 数字量装入累加器 UP: MOVX@ DPTR ,A ;三角波上升边 INC A JNZ UP DOWN: DEC A;A=0时再减1又为FFH MOVX@ DPTR ,A JNZ DOWN ;三角波下降边 SJMP UP(2)双缓冲方式 应用在有多路模拟数据并且要求同步输出的场合完成一次D/A转换操作的指令如下:MOV DPTR,#0DFFFH ;数据指针指向DAC0832(1)MOV A,#DATA1 ;数字量1装入累加器MOVX @DPTR,A ;数字量1送入DAC0832(1)中锁存MOV DPTR,#0BFFFH ;数据指针指向DAC0832(2)MOV A,#DATA2 ;数字量2装入累加器MOVX #DPTR,A ;数字量2送人DAC0832(2)中锁存MOV DPTR,#7FFFH ;给DAC0832(1)和(2)执行写操作MOVX @DPTR,A ;同时完成D/A转换输出3.DAC的应用接口与DAC的具体应用有关。
1) 单极性电压输出单极性模拟电压输出,可采用以上电路输出电 压Vout与输入数字量B的关系:Vout = -(B/256)*VRFE式中,B=b7·27+ b6·26+……+ b1·21+ b0·20;B为0时,Vout也为0,输入数字量为255时,Vout为 最大值,单极性 (2)双极性电压输出 Vout =(B-128)*(VREF/128)选用+VREF时: 输入数字量b7=1,则Vout为正; 输入数字量b7=0,则Vout为负 在选用-VREF时,Vout与+VREF时极性相反3)DAC用作程控放大器DAC还可作程控放大器: Vout = -Vin*(256/B) 256/B看作放大倍数输入数字量B不得为“0”13.2 MCS-51与ADC的接口 13.2.1 A/D转换器介绍分辨率用输出二进制位数或BCD码位数表示 例如AD574,二进制12位,即用212个数进行量化,分辨为1LSB, 百分数表示1/212=0.24‰例如双积分式A/D转换器MC14433, 分辨率为三位半若满字位为 1999,其分辨率为1/1999=0.05% 转换精度 可用绝对误差或相对误差表示: 绝对误差 = 量化间隔/2 量化间隔 = 满量程输入电压/(2n-1) 相对误差 =( 1/2n+1) ×100%A/D转换器的选择(1)A/D转换器位数的确定 A/D转换器按输出代码的有效位数分:8位、10位、12位等。
A/D转 换器的位数至少要比系统总精度要求的最低分辨率多1位2)A/D转换器转换速率的确定超高速(≤1ns)高速(≤1s) 20~100ns 中速(≤1ms)几s~ 100s低速(≤1s) 转换时间从几ms到几十ms等 如用转换时间为100s的集成A/D转换器,其转换速率为10千次/秒 根据采样定理和实际需要,一个周期的波形需采10个点,最高 也只能处理1kHz的信号把转换时间减小到10s,信号频率可提 高到10kHz3)是否加采样保持器 直流和变化非常缓慢的信号可不用采样保持器其他情况都要加采 样保持器根据分辨率、转换时间、信号带宽关系,是否要加采样保持器 转换时间100ms:8位ADC,无采样保持器时,信号的允许频率是0.12Hz;12位ADC,该频率为0.0077Hz 转换时间是100s:8位ADC,该频率为12Hz,12位ADC,该频率是0.77Hz4)工作电压和基准电压 选择使用单一+5V工作电压的芯片,与单片机系统共用一个电源就比较方便基准电压源是提供给A/D转换器在转换时所需要的参考电压,在要求较高精度时,基准电压要单独用高精度稳压电源供给13.2.2 8位并行ADC08091. ADC0809引脚及功能 逐次比较式8路模拟输入、8位输出的A/D转换器。
1)IN0~IN7:8路模拟信号输入端 (2) D0~D7:8位数字量输出端 (3) C 、B 、A:控制8路模拟通道的切换,C、B、A=000~111分别对应IN0~IN7通道 (4)控制信号端:OE 输出允许START 启动信号输入CLK 时钟信号输入(5)VR(+)和VR(-):参考电压输入3.MCS-51与ADC0809的接口 ADC0809与单片机接口的工作方式主要有查询方式和中断方式 ADC0809的时钟信号均由单片机的ALE端提供 如果单片机的晶振频率为12MHz,则ALE的频率为2MHz,4分频后输 入转换器中;如果晶振频率为6MHz则需进行2分频ADC0809具有通道地址锁存功能,其8个模拟通道由3位地址线ADDA ~ ADDC的编码来选择P2.0口 (低电平)作为ADC0809的地址线使用,相当于芯片的片选线 ,P2和P0口中其余未用到的口线均为1,因此8个模拟通道的16位地 址依次为FEF8H—FEFFHWR*写操作和RD*读操作均与P2.0相结合,通过或非门1和2实现通道 地址锁存、转换启动以及转换结果输出允许的联合控制WR*引脚输出低电平,启动A/D转换;RD*引脚输出低电平,读取A /D转换结果。
分频器的分频系数由单片机的晶振频率决定,采用一个D触发器, 可实现二分频,两个D触发器级联,可实现四分频1)查询方式 对输入的8路模拟信号轮流采样一次,把转换结果依次存放在单片 机内部RAM区50H—57H的地址单元每个通道转换结束时,EOC 会从低电平变为高电平,单片机用一条口线直接与EOC端相连,查 询EOC的电平状态,判断是否可以进行下一通道的采样ADC: MOV R1,#50H ;设置RAM区首地址MOV R7,#08H ;设置通道数MOV DPTR,#0FEF8H ;P0.0~0. 2=0,指向通道0 CLl: MOVX @DPTR,A ;启动A/D转换(A取任意值)JNB P3.3, $ ;查EOC未变高,继续等待MOVX A,@DPTR ;读取转换结果MOV @R1, A ;存放数据INC DPTR ;指向下一通道INC R1 ;指向下一地址DJNZ R7, CLl ;8通道未采样完,继续循环:(2)中断方式 对输入的8路模拟信号采用中断方式轮流采样一次,把转换的结果 依次存放在单片机内部RAM区50H—57H的地址单元。
每个通道转换 结束时,EOC会从低电平变为高电平,经反相器后,利用下降沿触 发INT1中断在中断服务程序中,读取转换结果并进行相应的处理 ORG 0000HAJMP ADC ;主程序ORG 0013H ;外中断1入口AJMP PRlORG 0030H ADC: MOV SP,#60H ;初始化,设堆栈MOV R1,#50H ;设置RAM区首址MOV R7,#08H ;设置通道数SETB IT1 ;设外部中断1为边沿触发SETB EA ;允许全局中断SETB EX1 ;允许外部中断1中断MOV DPTR,#0FEF8H ; P0.0~0.2=0 ,指向通道0 CLl: MOVX @DPTR,A ;启动A/D转换(A取任意值) WAIT:AJMP WAIT ;等待中断PRl:NOP ;中断服务程序MOVX A,@DPTR ;读取转换结果MOV @R1, A ;存放数据INC DPTR ;指向下一通道INC Rl ;指向下一地址DJNZ R7, CL1 ;8通道未采样完,继续循环CLR EA ;8通道转换完,禁止全局中断CLR EXl ;禁止外部中断1中断RETI ;中断返回 CL1: MOVX @DPTR,A ;再次启动A/D转换RETI ;中断返回13.2.3 8位串行A/D转换器TCL548/549 1. TCL548/549芯片结构及性能TCL548/549是8位串行开关电容逐次逼近式单片CMOS集成A/D 转换器芯片,具有控制口线少、时序简单、转换速度快、成本和功 耗较低等特点,适用于便携式的应用场合。
TCL548执行一次完整的“输入—转换—输出”操作需要22μs, TCL549则需要25 μs 最大总误差为±0.5LSB(最低有效位)电源电 压范围+3—+6V,功耗的典型值为6mW,最大值为5mW 2. TCl548/549的引脚功能:(1)Ain:模拟电压输入端2)Dout:数字信号输出端3)CS*:片选端4)CLK:时钟输入端5)REF+:基准电压正极,可接VCC,应加滤波电容6)REF—:基准电压负极,可接地7)VCC:供电电源端8)GND:接地端。





