单片机原理及应用 (8).ppt
35页第九章 A/D和D/A转换器接口 9.1 MCS-51单片机与D/A转换器的 接口和应用 9.1.1 典型D/A转换器芯片DAC0832 DAC0832是一个8位D/A转换器芯片,单电源供电,从 +5V+15V均可正常工作,基准电压的范围为10V,电流 建立时间为1s,CMOS工艺,低功耗20mm其内部结构如图 9.1所示,它由1个8位输入寄存器、1个8位DAC寄存器和1个 8位D/A转换器组成和引脚排列如图9.2所示 该D/A转换器为20引脚双列直插式封装,各引脚含义如下: (1)D7D0转换数据输入 (2)CS片选信号(输入),低电平有效 (3)ILE数据锁存允许信号(输入),高电平有效 (4)WR1第一信号(输入),低电平有效该信号与ILE 信号共同控制输入寄存器是数据直通方式还是数据锁存方式 :当ILE=1和XFER=0时,为输入寄存器直通方式;当ILE=1和 WR1 =1时,为输入寄存器锁存方式 (5) WR2 第2写信号(输入),低电平有效.该信号与信号合 在一起控制DAC寄存器是数据直通方式还是数据锁存方式:当 WR2=0和XFER=0时,为DAC寄存器直通方式; 当WR2=1和XFER=0 时,为DAC寄存器锁存方式。
(6)XFER数据传送控制信号(输入),低电平有效 (7)Iout2电流输出“1”当数据为全“1”时,输出电流 最大; 为全“0”时输出电流最小 (8)Iout2电流输出“2” DAC转换器的特性之一是:Iout1 +Iout2=常数 (9)Rfb反馈电阻端 既运算放大器的反馈电阻端,电阻(15K)已固化在芯 片中因为DAC0832是电流输出型D/A转换器,为得到电压的转 换输出,使用时需在两个电流输出端接运算放大器,Rfb 即 为运算放大器的反馈电阻,运算放大器的接法如图9.3所示 (10)Vref基准电压,是外加高精度电压源,与芯片内的电 阻网络相连接,该电压可正可负,范围为-10V+10V. (11)DGND数字地 (12)AGND模拟地 9.1.2 DAC0832工作方式 DAC0832利用WR1 、 WR2 、ILE、XFER 控制信号可以构 成三种不同的工作方式 1)直通方式 WR1= WR2 =0时,数据可以从输入端经两 个寄存器直接进入D/A转换器 2)单缓冲方式 两个寄存器之一始终处于直通,即WR1=0 或WR2=0,另一个寄存器处于受控状态 3)双缓冲方式 两个寄存器均处于受控状态。
这种 工 作方式适合于多模拟信号同时输出的应用场合 9.1.3 单缓冲方式的接口与应用 1单缓冲方式连接 所谓单缓冲方式就是使DAC0832的两个输入寄存器中有 一个(多位DAC寄存器)处于直通方式,而另一个处于受控 锁存方式 单缓冲方式连接 如图9.3所示 为使DAC寄存器处于直通方式,应使WR2 =0和XFER=0为 此可把这两个信号固定接地,或如电路中把WR2与WR1相连, 把XFER与CS相连 为使输入寄存器处于受控锁存方式,应把WR1接80C51的 WR,ILE接高电平此外还应把CS接高位地址线或地址译码 输出,以便于对输入寄存器进行选择 图9.3DAC0832单缓冲方式接口 2单缓冲方式应用举例 【例9.1】锯齿波电压发生器 在一些控制应用中,需要有一个线性增长的电压(锯齿波) 来控制检测过程、移动记录笔或移动电子束等对此可通过 在DAC0832的输出端接运算放大器,由运算放大器产生锯齿波 来实现,其电路连接图如图9.4所示 图9.4 用DAC0832产生锯齿波电路 图中的DAC0832工作于单缓冲方式,其中输入寄存器受控 ,而DAC寄存器直通假定输入寄存器地址为7FFFH,产 生锯齿波的程序清单如下: MOV A, #00H ;取下限值 MOV DPTR,#7FFFH;指向0832口地址 MM: MOVX DPTR,A;输出 INC A;延时 NOP NOP NOP SJMP MM;反复 执行上述程序就可得到如图9.5所示的锯齿波。
图9.5 D/A 转换产生的锯齿波 几点说明: (1)程序每循环一次,A加1,因此实际上锯齿波的上升边是由 256个小阶梯构成的,但由于阶梯很小,所以宏观上看就如图 中所画的先行增长锯齿波 (2)可通过循环程序段的机器周期数,计算出锯齿波的周 期并可根据需要,通过延时的方法来改变波形周期若要 改变锯齿波的频率,可在AJMP MM指令前加入延迟程序即可 延时较短时可用NOP指令实现(本程序就是如此),需要 延时较长时,可以使用一个延长子程序延迟时间不同,波 形周期不同,锯齿波的斜率就不同 (3)通过A加1,可得到正向的锯齿波,反之A减1可得到负 向的锯齿波 (4) 程序中A的变化范围是0255,因此得到的锯齿波是 满幅度的如要求得到非满幅锯齿波,可通过计算求的数字 量的处置和终值,然后在程序中通过置初值和终值的方法实 现 【例9.2】矩形波电压发生器 采用单缓冲方式,口地址设为FEFFH. 参考程序如下: ORG 1100H START: MOV DPTR , #00FEH ;送DAC0832口地址 LOOP: MOV A , #dataH ;送高电平数据 MOVX DPTR , A LCALL DELAYH ;调用延时子程序 MOV A , #dataL ;送低电平数据 MOVX DPTR , A LCALL DELAYL ;调用延时子程序 SJMP LCALL 执行上述程序就可得到如图9.5所示的矩形波。
图9.5 D/A转换产生的矩形波 几点说明: (1)以上程序产生的是矩形波,其低点平的宽度由延 时子程序DELAYL所延时的时间来决定,高电平的宽度 则由DELAYH所延时的时间决定 (2) 改变延时子程序DELAYL和的DELAYH延时时间, 就可改变矩形波上下沿的宽度若DELAYL=DELAYH(两 者延时一样),则输出的是方波 (3) 改变上限值或下限值便可改变矩形波的幅值; 单极性输出时为0-5V或0+5V;双极性输出时为-5V +5V 【例9.3】三角波电压发生器 利用DAC0832产生三角波的参考程序如下: MOV A , #00H ;取下限值 MOVX DPTR , #FEFFH ;指向0832口地址 SS1: MOVX DPTR , A ;输出 NOP ;延时 NOP NOP SS2: INC A ;转换值增量 JNZ SS1 ;未到峰值,则继续 SS3: DEC A ;已到峰值,则取后沿 MOVX DPTR , A ;输出 NOP ;延时 NOP NOP JNZ SS3 ;未到谷值,则继续 SJMP SS2 ;已到谷值,则反复 9.1.4 双缓冲方式的接口与应用 在多路D/A转换的情况下,若要求同步转换输出,必 须采用双缓冲方式。
DAC0832采用双缓冲方式时,数字量 的输入锁存和D/A转换输出是分两步进行的 第一,CPU分时向各路D/A转换器输入要转换的数字 量并锁存在各自的输入寄存器中 第二,CPU对所有的D/A转换器发出控制信号,使各路 输入寄存器中的数据进入DAC寄存器,实现同步转换输出 图9.6为两片DAC0832与8031的双缓冲方式连接电路 ,能实现两路同步输出 图9.6 8031与DAC0832双缓冲方式接口电路 实现两路同步输出的程序如下: MOVDPTR,#0DFFFH;送0832(1)输入锁存器地址 MOVA,#data1;data1送0832(1)输入锁存器 MOVXDPTR,A; MOVDPTR,#0BFFFH;送0832(2)输入锁存器地址 MOVA,#data2;data2送0832(2)输入锁存器 MOVXDPTR,A; MOVDPTR,#7FFFH;送两路DAC寄存器地址 MOVXDPTR,A;两路数据同步转换输出 9.2 MCS-51单片机与A/D转换器的 接口和应用 9.2.1 典型A/D转换器芯片ADC0809 8路模拟信号的分时采集,片内有8路模拟选通开关 ,以及相应的通道抵制锁存用译码电路,其转换时间为 100s左右。
1.ADC0809的内部逻辑结构 ADC0809的内部逻辑结构图如图9-7所示 图9.7 ADC0809内部逻辑结构 图9.8 ADC0809引脚图 图中多路开关可选通8个 模拟通道,允许8路模拟 量分时输入,共用一个 A/D转换器进行转换,这 是一种经济的多路数据采 集方法地址锁存与译码 电路完成对A、B、C 3个 地址位进行锁存和译码, 其译码输出用于通道选择 ,其转换结果通过三态输 出锁存器存放、输出,因 此可以直接与系统数据总 线相连表9-1为通道选 择表,图9.9 ADC0809的 工作时序图 表9-1 通道选择表 图9.9 ADC0809的工作时序图 2信号引脚 ADC0809芯片为28引脚为双列直插式封装,其引脚排列 见图9.8 对ADC0809主要信号引脚的功能说明如下: IN7IN0模拟量输入通道 A、B、C地址线 通道端口选择线,A为低地址 ,C为 高地址,引脚图中为ADDA,ADDB和ADDC其地址状 态与通道对应关系见表9-1 ALE地址锁存允许信号对应ALE上跳沿,A、B、 C地址状态送入地址锁存器中 START转换启动信号START上升沿时,复位 ADC0809;START下降沿时启动芯片,开始进行A/D转换;在 A/D转换期间,START应保持低电平。
本信号有时简写为ST. D7D0数据输出线为三态缓冲输出形式,可以 和单片 机的数据线直接相连D0为最低位,D7为最高 OE输出允许信号用于控制三态输出锁存器向单 片机输出转换得到的数据OE=0,输出数据线呈高阻;OE=1 ,输出转换得到的数据 CLK 时钟信号ADC0809的内部没有时钟电路,所 需时钟信号由外界提供,因此有时钟信号引脚通常使用频 率为500KHz的时钟信号 EOC转换结束信号EOC=0,正在进行转换;EOC=1, 转换结束使用中该状态信号即可作为查询的状态 标 志,又可作为中断请求信号使用 Vcc +5V电源 Vref参考电源参考电压用来与输入的模拟信号进 行比较,作为逐次逼近的基准其典型值为 +5V(Vref(+)=+5V, Vref(-)=-5V) 9.2.2 MCS-51单片机与ADC0809的接口 ADC0809与MCS-51单片机的连接如图9.10所示电路 连接主要涉及两个问题一是8路模拟信号通道的选择, 二是A/D转换完成后转换数据的传送 1. 8路模拟通道选择 图9.10 ADC0809与MCS-51的连接 如图9.11所示模拟通道选择信号A、B、C分别接最低三位 地址A0、A1、A2即(P0.0、P0.1、P0.2),而地址锁存允许 信号ALE由P2.0控制,则8路模拟通道的地址为0FEF8H 0FEFFH.此外,通道地址选择以WR作写选通信号,这一部 分电路连接如图9.12所示。
图9.11 ADC0809的部分信号连接 图9.12 信号的时间配合 从图中可以看到,把ALE信号与START信号接在一起 了,这样连接使得在信号的前沿写入(锁存)通道地址 ,紧接着在其后沿就启动转换图9.19是有关信号的时 间配合示意图 启动A/D转换只需要一条MOVX指令在此之前,要将 P2.0清零并将最低三位与所选择的通道好像对应的口地址 送入数据指针DPTR中例如要选择IN0通道时,可采用如 下两条指令,即可启动A/D转换: MOV DPTR , #FE00H ;送入0809的口地址 MOVX DPTR , A ;启动A/D转换(IN0) 注意:此处的A与A/D转换无关,可为任意值 2.转换数据的传送 A/D转换后得到的数据应及时传送给单片机进行处理 数据传送的关键问题是如何确认A/D转换的完成,因为只有 确认完成后,才能进行传送为此可采用下述三种方式 (1)定时传送方式 对于一种A/D转换其来说,转。





