单片机讲解9课件

D/AD/A和和A/DA/D转换器接口转换器接口 A/DA/D及及D/AD/A转换器的性能指标转换器的性能指标分辨率(分辨率(ResolutionResolution)分辨率是指分辨率是指A/DA/D转换器能分辨的最小输出模拟增量,取决于转换器能分辨的最小输出模拟增量,取决于输入数字量的二进制位数输入数字量的二进制位数转换精度(转换精度(Conversion AccuracyConversion Accuracy)转换精度指满量程时转换精度指满量程时ADCADC的实际模拟输出值和理论值的接近的实际模拟输出值和理论值的接近程度量程量程(满刻度范围满刻度范围FULL Scale Range)FULL Scale Range)量程是指输入模拟电压的变化范围例如某转换器具有量程是指输入模拟电压的变化范围例如某转换器具有10V10V的单极性范围或的单极性范围或-5-5+5V+5V的双极性范围则它们的量程都为的双极性范围则它们的量程都为10V10V满刻度只是个名义值,实际的满刻度只是个名义值,实际的A/DA/D,D/AD/A转换器的最大转换器的最大输出值总是比满刻度值小输出值总是比满刻度值小1/21/2n n,n n为转换器的位数。
例如为转换器的位数例如1212位的位的A/DA/D转换器,其满刻度值为转换器,其满刻度值为10V10V,而实际的最大输出值,而实际的最大输出值为为:A/DA/D转换器的主要技术指标转换器的主要技术指标)(9976.9409640951021101012V线性度(线性度(LinearityLinearity)线性度是指ADC的实际转换特性曲线和理想直线之间的最大偏移差转换时间(转换时间(Conversion Time)从发出启动转换开始直至获得稳定的二进代码所需的时间称为转换时间,转换时间与转换器工作原理及其位数有关,同种工作原理的转换器,通常位数越多,其转换时间越长D/AD/A转换器的主要技术指标转换器的主要技术指标 D/A D/A转换器的主要技术指标与转换器的主要技术指标与A/DA/D转换器基本相转换器基本相同,只是转换时间的概念略有不同,同,只是转换时间的概念略有不同,D/AD/A转换器的转换器的转换时间又叫建立时间,它是指当输入的二进制代转换时间又叫建立时间,它是指当输入的二进制代码从最小值突然跳变至最大值时,其模拟输出电压码从最小值突然跳变至最大值时,其模拟输出电压相应的满度跳跃并达到稳定所需的时间。
一般而言,相应的满度跳跃并达到稳定所需的时间一般而言,D/AD/A的转换时间比的转换时间比A/DA/D要短得多要短得多DACDAC芯片类型及接口方法芯片类型及接口方法各种类型的各种类型的DACDAC芯片都具有数字量输入端和模拟量芯片都具有数字量输入端和模拟量输出端及基准电压端数字输入端有以下几种类输出端及基准电压端数字输入端有以下几种类型:型:无数据锁存器,无数据锁存器,带单数据锁存器,带单数据锁存器,带带双数据锁存器,双数据锁存器,可接收串行数字输入第可接收串行数字输入第1 1种在种在与单片机接口时,要外加锁存器,第与单片机接口时,要外加锁存器,第2 2种和第种和第3 3种种可直接与单片机接口,第可直接与单片机接口,第4 4种与单片机接口十分简种与单片机接口十分简单,接收数据较慢,适用于远距离现场控制的场单,接收数据较慢,适用于远距离现场控制的场合模拟量输出有两种方式:电压输出及电流输合模拟量输出有两种方式:电压输出及电流输出电压输出的出电压输出的DACDAC芯片相当于一个电压源,其内芯片相当于一个电压源,其内阻很小,选用这种芯片时,与它匹配的负载电阻阻很小,选用这种芯片时,与它匹配的负载电阻应较大。
电流输出的芯片相当于电流源,其内阻应较大电流输出的芯片相当于电流源,其内阻较大,选用这种芯片时,负载电阻不可太大较大,选用这种芯片时,负载电阻不可太大在实际应用中,常选用电流输出的在实际应用中,常选用电流输出的DACDAC芯片实芯片实现电压输出,如图所示现电压输出,如图所示 无内部数据锁存器的无内部数据锁存器的DACDAC芯片,尤其是分辩率高于芯片,尤其是分辩率高于8 8位的位的DACDAC芯芯片,在设计与片,在设计与8 8位单片机接口时,要外加数据锁存器作为缓位单片机接口时,要外加数据锁存器作为缓冲器下图是一种单缓冲器接口下图是一种单缓冲器接口在在10位位DAC芯片与芯片与8位单片机之间接入两个锁存器,锁存器位单片机之间接入两个锁存器,锁存器A锁存锁存10位数据位数据中的低中的低8位,锁存器位,锁存器B锁存高锁存高2位单片机分两次输出数据,先输出低位单片机分两次输出数据,先输出低8位数位数据到锁存器据到锁存器A,后输出高,后输出高2位数据到锁存器位数据到锁存器B设锁存器设锁存器A和锁存器和锁存器B的地址的地址分别为分别为002CH和和002DH,则执行下列指令后完成一次,则执行下列指令后完成一次D/A转换:转换:MOV DPTR,#002CHMOV A,#DATA8MOVX DPTR,A ;输出低;输出低8位位INC DPTRMOV A,#DATA2MOVX DPTR,A ;输出高;输出高2位位这种接口存在一个问题,就是在输出低这种接口存在一个问题,就是在输出低8位数据和高位数据和高2位数据之间,会产生位数据之间,会产生“毛剌毛剌”现象,如图现象,如图3.3(b)所示。
假设两个锁存器原来的数据为所示假设两个锁存器原来的数据为0001111000,现在要求转换的数据为,现在要求转换的数据为0100001011,新数据分两次输出,新数据分两次输出,第一次输出低第一次输出低8位,这时位,这时DAC将把新的将把新的8位数据的与原来数据的高位数据的与原来数据的高2位一起位一起组成组成0000001011转换成输出电压,而该电压是不需要的,即所谓转换成输出电压,而该电压是不需要的,即所谓“毛刺毛刺”避免产生毛刺的方法之一是采用双组缓冲器结避免产生毛刺的方法之一是采用双组缓冲器结构,如下图所示构,如下图所示单片机先把低单片机先把低8 8位数据选通输入锁存器位数据选通输入锁存器1 1中,然后将高中,然后将高2 2位数据选位数据选通输入锁存器通输入锁存器3 3中,并同时选通锁存器中,并同时选通锁存器2 2,使锁存器,使锁存器2 2与锁存器与锁存器3 3组成组成1010位锁存器向位锁存器向DACDAC同时送入同时送入1010位数据由位数据由DACDAC转换成输出电转换成输出电压当地址如图中所示时,执行以下程序完成一次压当地址如图中所示时,执行以下程序完成一次D/AD/A转换:转换:MOV DPTRMOV DPTR,#6000H#6000HMOV AMOV A,#DATA8#DATA8MOVX DPTRMOVX DPTR,A A ;输出低;输出低8 8位数据位数据INC DPTRINC DPTRMOV AMOV A,#DATA2#DATA2MOVX DPTRMOVX DPTR,A A ;输出高;输出高2 2位位,并同时输出并同时输出1010位数据位数据典型典型D/AD/A转换器芯片转换器芯片DAC0832DAC0832及接口及接口 DAC0832DAC0832是一个是一个8 8位位D/AD/A转换器芯片,单电转换器芯片,单电源供电,从源供电,从+5V+5V+15V+15V均可正常工作,基准均可正常工作,基准电压的范围为电压的范围为10V10V,电流建立时间为,电流建立时间为1s1s,CMOSCMOS工艺,低功耗工艺,低功耗20mm20mm。
其内部结构由其内部结构由1 1个个8 8位输入寄存器、位输入寄存器、1 1个个8 8位位DACDAC寄存器和寄存器和1 1个个8 8位位D/AD/A转换器组成转换器组成DAC0832DAC0832的内部结构的内部结构DAC0832是典型的带内部双数据缓冲器的是典型的带内部双数据缓冲器的8位位D/A芯片图中芯片图中LE是是寄存命令,当寄存命令,当LE=1时,寄存器输出随输入变化,当时,寄存器输出随输入变化,当LE=0时,数据时,数据锁存在寄存器中当锁存在寄存器中当ILE端为高电平,端为高电平,CS与与WR1同时为低电平时,同时为低电平时,使得使得LE1=1;当;当WR1变为高电平时,输入寄存器便将输入数据锁存变为高电平时,输入寄存器便将输入数据锁存当当XFER与与WR2同时为低电平时,使得同时为低电平时,使得LE2=1,DAC寄存器的输出寄存器的输出随寄存器的输入变化,随寄存器的输入变化,WR2上升沿将输入寄存器的信息锁存在该寄上升沿将输入寄存器的信息锁存在该寄存器中DAC0832DAC0832的工作方式的工作方式 DAC0832DAC0832利用利用WRWR1 1 、WRWR2 2 、ILEILE、XFER XFER 控制信号控制信号可以构成三种不同的工作方式。
可以构成三种不同的工作方式直通方式直通方式 WRWR1 1=WR=WR2 2=0=0时,数据可以从输入时,数据可以从输入端经两个寄存器直接进入端经两个寄存器直接进入D/AD/A转换器2)2)单缓冲方式单缓冲方式两个寄存器之一始终处于直通,两个寄存器之一始终处于直通,即即WRWR1 1=0=0或或WRWR2 2=0=0,另一个寄存器处于受控状态另一个寄存器处于受控状态3)3)双缓冲方式双缓冲方式 两个寄存器均处于受控状态两个寄存器均处于受控状态这种工作方式适合于多模拟信号同时输出的应这种工作方式适合于多模拟信号同时输出的应用场合单缓冲方式的接口与应用单缓冲方式的接口与应用1 1单缓冲方式连接单缓冲方式连接 所谓单缓冲方式就是使所谓单缓冲方式就是使DAC0832DAC0832的两个输入寄存器的两个输入寄存器中有一个处于直通方式,而另一个处于受控锁存方式中有一个处于直通方式,而另一个处于受控锁存方式为使为使DACDAC寄存器处于直通方式,应使寄存器处于直通方式,应使WRWR2 2=0=0和和XFER=0XFER=0为此可把这两个信号固定接地,或如电路中把为此可把这两个信号固定接地,或如电路中把WRWR2 2与与WRWR1 1相连,把相连,把XFERXFER与与CSCS相连。
相连为使输入寄存器处于受控锁存方式,应把为使输入寄存器处于受控锁存方式,应把WRWR1 1接接80518051的的WRWR,ILEILE接高电平此外还应把接高电平此外还应把CSCS接高位地址线接高位地址线或地址译码输出,以便于对输入寄存器进行选择或地址译码输出,以便于对输入寄存器进行选择DAC0832DAC0832单缓冲方式接口单缓冲方式接口 WR74LS373GDAC0832DI7 0CSXFER1WR2WRVccILEVrefRfbIout1Iout2AGNDDGND-+5VP2.7ALEP080C51Vout2 2单缓冲方式应用举例单缓冲方式应用举例-波形发生器波形发生器在一些控制应用中,需要有一个线性增长的电压在一些控制应用中,需要有一个线性增长的电压(锯齿波)来控制检测过程、移动记录笔或移动电(锯齿波)来控制检测过程、移动记录笔或移动电子束等对此可通过在子束等对此可通过在DAC0832DAC0832的输出端接运算放大的输出端接运算放大器,由运算放大器产生锯齿波来实现,其电路连接器,由运算放大器产生锯齿波来实现,其电路连接如图所示如图所示CSDIODI71WR地址译码输出P0.7 P0.0WRILE VCCVrefRfbIout1Iout22WRXFER-+-+10V-10V10k10k+5V1/2LM324DAC0832图中的图中的DAC0832DAC0832工作于单缓冲方式,其中输入寄存器受控,工作于单缓冲方式,其中输入寄存器受控,而而DACDAC寄存器直通。
假定输入寄存器地址为寄存器直通假定输入寄存器地址为7FFFH7FFFH,产生,产生锯齿波的程序清单如下:锯齿波的程序清单如下:MOV AMOV A,#00H#00H ;取下限值;取下限值 MOV DPTRMOV DPTR,#7FFFH#7FFFH;指向;指向08320832口地址口地址MMMM:MOVX DPTRMOVX DPTR,A A ;输出;输出 INC AINC A;延时;延时 NOPNOP NOP NOP NOP NOP SJMP MM SJMP MM;反复;反复执行上述程序就可得到如下图所示的锯齿波执行上述程序就可得到如下图所示的锯齿波几点说明:几点说明:(1)(1)程序每循环一次,程序每循环一次,A A加加1 1,因此实际上锯齿波的上升边是由,因此实际上锯齿波的上升边是由256256个小阶梯构成的,但由于阶梯很小,所以宏观上看就如图个小阶梯构成的,但由于阶梯很小,所以宏观上看就如图中所画的先行增长锯齿波中所画的先行增长锯齿波FFHV00HTt(2 2)可通过循环程序段的机器周期数,计算出锯齿波的周)可通过循环程序段的机器周期数,计算出锯齿波的周期并可根据需要,通过延时的方法来改变波形周期。
若期并可根据需要,通过延时的方法来改变波形周期若要改变锯齿波的频率,可在要改变锯齿波的频率,可在AJMP MMAJMP MM指令前加入延迟程序即指令前加入延迟程序即可延时较短时可用可延时较短时可用NOPNOP指令实现(本程序就是如此),需指令实现(本程序就是如此),需要延时较长时,可以使用一个延长子程序延迟时间不同,要延时较长时,可以使用一个延长子程序延迟时间不同,波形周期不同,锯齿波的斜率就不同波形周期不同,锯齿波的斜率就不同3 3)通过)通过A A加加1 1,可得到正向的锯齿波,反之,可得到正向的锯齿波,反之A A减减1 1可得到负可得到负向的锯齿波向的锯齿波4 4)程序中程序中A A的变化范围是的变化范围是0 0255255,因此得到的锯齿波是,因此得到的锯齿波是满幅度的如要求得到非满幅锯齿波,可通过计算求的数满幅度的如要求得到非满幅锯齿波,可通过计算求的数字量的处置和终值,然后在程序中通过置初值和终值的方字量的处置和终值,然后在程序中通过置初值和终值的方法实现产生矩形波电压的产生矩形波电压的参考程序:参考程序:ORG 1100HORG 1100HSTART:MOV DPTR,#7FFFH START:MOV DPTR,#7FFFH ;送;送DAC0832DAC0832口地址口地址LOOP:MOV A,#dataH LOOP:MOV A,#dataH ;送高电平数据;送高电平数据 MOVX DPTR,AMOVX DPTR,A LCALL DELAYH LCALL DELAYH ;调用延时子程序;调用延时子程序 MOV A,#dataL MOV A,#dataL ;送低电平数据;送低电平数据 MOVX DPTR,AMOVX DPTR,A LCALL DELAYL LCALL DELAYL ;调用延时子程序;调用延时子程序 SJMP LCALLSJMP LCALL 执行上述程序就可得到如下图所示的矩形波执行上述程序就可得到如下图所示的矩形波V#dateH#dateLT/2T/2几点说明:几点说明:(1 1)以上程序产生的是矩形波,其低点平的宽度由延)以上程序产生的是矩形波,其低点平的宽度由延时子程序时子程序DELAYLDELAYL所延时的时间来决定,高电平的宽度所延时的时间来决定,高电平的宽度则由则由DELAYHDELAYH所延时的时间决定。
所延时的时间决定2 2)改变延时子程序改变延时子程序DELAYLDELAYL和的和的DELAYHDELAYH延时时间,延时时间,就可改变矩形波上下沿的宽度若就可改变矩形波上下沿的宽度若DELAYL=DELAYHDELAYL=DELAYH(两(两者延时一样),则输出的是方波者延时一样),则输出的是方波3 3)改变上限值或下限值便可改变矩形波的幅值;改变上限值或下限值便可改变矩形波的幅值;单极性输出时为单极性输出时为0 0-5V-5V或或0 0+5V+5V;双极性输出时为;双极性输出时为-5V5V+5V+5V双缓冲方式的接口与应用双缓冲方式的接口与应用 在多路在多路D/AD/A转换的情况下,若要求同步转换输出,必转换的情况下,若要求同步转换输出,必须采用双缓冲方式须采用双缓冲方式DAC0832DAC0832采用双缓冲方式时,数字量采用双缓冲方式时,数字量的输入锁存和的输入锁存和D/AD/A转换输出是分两步进行的转换输出是分两步进行的第一,第一,CPUCPU分时向各路分时向各路D/AD/A转换器输入要转换的数字转换器输入要转换的数字量并锁存在各自的输入寄存器中量并锁存在各自的输入寄存器中第二,第二,CPUCPU对所有的对所有的D/AD/A转换器发出控制信号,使各路转换器发出控制信号,使各路输入寄存器中的数据进入输入寄存器中的数据进入DACDAC寄存器,实现同步转换输出。
寄存器,实现同步转换输出下图为两片下图为两片DAC0832DAC0832与与80318031接实现的双缓冲方式连接电接实现的双缓冲方式连接电路,能实现两路同步输出路,能实现两路同步输出80518051与与DAC0832DAC0832的双缓冲方式接口的双缓冲方式接口 CSXFERRfbIout1Iout21WR2WRWRDAC0832DAC0832RfbIout1Iout2CSXFERDI7DI01WR2WRDI7DI0-+-+VxVyP0.7 P0.080C51P2.5P2.6P2.7实现两路同步输出的程序如下:实现两路同步输出的程序如下:MOV DPTR,#0DFFFH;送;送0832(1)输入锁存器地址)输入锁存器地址 MOV A,#data1 ;data1送送0832(1)输入锁存器)输入锁存器 MOVX DPTR,A;MOV DPTR,#0BFFFH;送;送0832(2)输入锁存器地址)输入锁存器地址 MOV A,#data2 ;data2送送0832(2)输入锁存器)输入锁存器 MOVX DPTR,A;MOV DPTR,#7FFFH ;送两路;送两路DAC寄存器地址寄存器地址 MOVX DPTR,A ;两路数据同步转换输出;两路数据同步转换输出 8051与与12位位DAC的接口的接口 DAC1208的内部结构和原理的内部结构和原理 与DAC0832相似,DAC1208也是双缓冲器结构,输入控制线与DAC0832也很相似,和用来控制输入寄存器,和用来控制DAC寄存器,但增加了一条控制线BYTE1/BYTE2,用来区 分 输 入 8 位 寄 存 器 和 4 位 寄 存 器,当BYTE1/BYTE2=1时,两个寄存器都被选中,BYTE1/BYTE2=0时,只选中4位输入寄存器。
DAC1208DAC1208内部结构框图内部结构框图 80518051和和DAC1208DAC1208的连接的连接MOV R0MOV R0,#21H#21H ;8 8位输入寄存器地址位输入寄存器地址MOV R1MOV R1,#DIG#DIG ;高;高8 8位数据地址位数据地址MOV AMOV A,R1 R1 ;取高;取高8 8位数据位数据MOVX R0MOVX R0,A A ;送;送DAC1208DAC1208DEC R0 DEC R0 ;4 4位输入寄存器地址位输入寄存器地址INC R1 INC R1 ;低;低4 4位数据地址位数据地址MOV AMOV A,R1 R1 ;取低;取低4 4位数据位数据SWAP A SWAP A ;与高;与高4 4位数交换位数交换MOVX R0MOVX R0,A A ;送;送DAC1208DAC1208MOV R0MOV R0,#22H#22H ;DAC1208DAC1208的的DACDAC寄存器地址寄存器地址MOVX R0MOVX R0,A A ;完成;完成1212位位D/AD/A转换设设4 4位输入寄存器地址为位输入寄存器地址为20H20H,8 8位输入寄存器地址为位输入寄存器地址为21H21H,采用,采用2 2根译码器输出线作为根译码器输出线作为DAC208DAC208的的(对应对应l l地址地址20H20H和和21H)21H)及及(对应地对应地址址22H)22H),设,设1212位数据存放在内部位数据存放在内部RAMRAM区的区的DIGDIG和和DIG+1DIG+1单元中,高单元中,高8 8位存于位存于DIGDIG,低,低4 4位存于位存于DIG+1DIG+1。
转换程序如下:转换程序如下:ADC接口技术接口技术阶梯波比较式阶梯波比较式ADC工作原理:工作原理:转换开始时,计数器复转换开始时,计数器复0 0,DACDAC的输出为的输出为Vd=0Vd=0若输入电压若输入电压ViVi为正,则比较器输出为正,则比较器输出VcVc为正,与门打开,计数器对时钟脉冲为正,与门打开,计数器对时钟脉冲进行计数,进行计数,DACDAC输出即随计数脉冲的增加而增加,如图所示,输出即随计数脉冲的增加而增加,如图所示,当当Vd ViVd Vi时,比较器输出变负,与门关闭,停止计数计数时,比较器输出变负,与门关闭,停止计数计数器的计数值正比于输入电压,完成了从输入模拟量器的计数值正比于输入电压,完成了从输入模拟量电压电压到计数器的计数值到计数器的计数值数字量的转换数字量的转换工作原理是单片机通过工作原理是单片机通过P1口发送一个口发送一个8位数据到位数据到DAC,比较器对比较器对DAC的输出的输出Vs和需要转换的模拟输入量和需要转换的模拟输入量Vx进进行比较比较的结果行比较比较的结果(为为0,表示,表示VsVx)送到单片机的送到单片机的T0引脚,单片机通过测试引脚引脚,单片机通过测试引脚T0来确定与模拟输入量来确定与模拟输入量Vx合适的数值。
合适的数值用单片机用单片机IO口实现比较式口实现比较式ADC编程思想是先从编程思想是先从P1口输出数据口输出数据10000000B然后测然后测T0,如果,如果T0为为0则保持数据最高位则保持数据最高位D7为为1,如果,如果T0为为1则清则清“0”D7位,再从位,再从P1口输口输出数据出数据1000000B,判,判T0,若,若T0为为0则保持则保持D6位为位为1,若,若T0为为1则清则清“0”D6位,如此进位,如此进行,最后从行,最后从P1口输出口输出1B,判,判T0,若,若T0为为0则保持则保持D0位为位为1,若,若T0为为1则清则清“0”D0位,至此便得到与位,至此便得到与Vx对应的对应的8位数位数值AD:MOV R7,#08H ;R7存放比较次数存放比较次数 MOV A,#0 MOV R6,#0 ;R6保存中间结果保存中间结果 MOV R5,#0 ;R5存放新的测试数据存放新的测试数据 SETB C ;置;置1进位位进位位CL1:MOV A,R5 RRC A ;(R5)带带C右环移一位右环移一位 MOV R5,A ORL A,R6 ;与;与R6值相加值相加 MOV P1,A ;从;从P1口输出测试数据口输出测试数据 JB T0,L2 ;若;若T0为为1则不保留此位则不保留此位 MOV R6,A ;若;若T0为为0则保留此位为则保留此位为1L2:DJNZ R7,L1 ;判;判8次比较完否。
次比较完否RET ADC0809ADC0809内部逻辑结构内部逻辑结构 ADC0809ADC0809引脚图引脚图 8位A/D转换器三态输出锁存缓冲器地址锁存与译码8位模拟开关Vref(+)12Vref(-)16ADC08097EOCMsbD7D01920211881517141113VccGNDOE910CLKSTART6ALE22ADDC23ADDB24ADDA25IN754321282726IN012345678910111213141516171819202122232425262728ADC0809IN3IN4IN5IN6IN7STARTEOCD3OECLOCKVccVref(+)GNDD1IN2IN1IN0ADDAADDBADDCALED7D6D5D4D0D2Vref(-)典型典型A/D转换器芯片转换器芯片ADC0809ADC0809ADC0809内部多路开关可选内部多路开关可选通通8 8个模拟通道,允许个模拟通道,允许8 8路路模拟量分时输入,共用一模拟量分时输入,共用一个个A/DA/D转换器进行转换,这转换器进行转换,这是一种经济的多路数据采是一种经济的多路数据采集方法地址锁存与译码集方法。
地址锁存与译码电路完成对电路完成对A A、B B、C 3C 3个地个地址位进行锁存和译码,其址位进行锁存和译码,其译码输出用于通道选择,译码输出用于通道选择,其转换结果通过三态输出其转换结果通过三态输出锁存器存放、输出,因此锁存器存放、输出,因此可以直接与系统数据总线可以直接与系统数据总线相连通道选择表通道选择表 C B A0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1被选择的通道IN0IN1IN2IN3IN4IN5IN6IN7ADC0809ADC0809的工作时序图的工作时序图 ALE地址AD模拟量输入INSTARTEOCOED0 D7数字量输出data ADC0809 ADC0809芯片为芯片为2828引脚为双列直插式封装,其引引脚为双列直插式封装,其引脚排列如图所示主要信号引脚的功能如下:脚排列如图所示主要信号引脚的功能如下:ININ7 7ININ0 0模拟量输入通道模拟量输入通道 A A、B B、CC地址线通道端口选择线,通道端口选择线,A A为为低地址,低地址,C C为为 高地址,引脚图中为高地址,引脚图中为ADDAADDA,ADDBADDB和和ADDCADDC。
其地址状态与通道对应关系见表其地址状态与通道对应关系见表9-19-1ALEALE地址锁存允许信号对应地址锁存允许信号对应ALEALE上跳沿,上跳沿,A A、B B、C C地址状态送入地址锁存器中地址状态送入地址锁存器中START START转换启动信号转换启动信号STARTSTART上升沿时,上升沿时,复位复位ADC0809ADC0809;STARTSTART下降沿时启动芯片,开始进行下降沿时启动芯片,开始进行A/DA/D转换;在转换;在A/DA/D转换期间,转换期间,STARTSTART应保持低电平应保持低电平本信号有时简写为本信号有时简写为ST.ST.D D7 7D D0 0数据输出线为三态缓冲输出形式,数据输出线为三态缓冲输出形式,可以和单片可以和单片 机的数据线直接相连机的数据线直接相连D D0 0为最低位,为最低位,D D7 7为最高为最高 OEOE输出允许信号用于控制三态输出锁输出允许信号用于控制三态输出锁存器向单片机输出转换得到的数据存器向单片机输出转换得到的数据OE=0OE=0,输出数,输出数据线呈高阻;据线呈高阻;OE=1OE=1,输出转换得到的数据输出转换得到的数据。
CLK CLK 时钟信号时钟信号ADC0809ADC0809的内部没有时钟电的内部没有时钟电路,所需时钟信号由外界提供,因此有时钟信号引脚路,所需时钟信号由外界提供,因此有时钟信号引脚通常使用频率为通常使用频率为500KHz500KHz的时钟信号的时钟信号EOCEOC转换结束信号转换结束信号EOC=0,EOC=0,正在进行转换;正在进行转换;EOC=1,EOC=1,转换结束使用中该状态信号即可作为查询的转换结束使用中该状态信号即可作为查询的状态状态 标志,又可作为中断请求信号使用标志,又可作为中断请求信号使用Vcc+5VVcc+5V电源VrefVref参考电源参考电压用来与输入的模拟参考电源参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准其典型值为信号进行比较,作为逐次逼近的基准其典型值为+5V(Vref+5V(Vref(+)(+)=+5V,Vref=+5V,Vref(-)(-)=-5V)=-5V)80518051单片机与单片机与ADC0809ADC0809的接口的接口 采用线选法规定其端口地址采用线选法规定其端口地址用单片机的用单片机的P2.7引脚作为片选信号引脚作为片选信号,因此端口地因此端口地址为址为7FFFH。
片选信号和信号一起经或非门产生片选信号和信号一起经或非门产生ADC0809的启动信号的启动信号START和地址锁存信号和地址锁存信号ALE;片选信号和信号一起经或非门产生;片选信号和信号一起经或非门产生ADC0809输出允许信号输出允许信号OE,OE=1时选通三态时选通三态门使输出锁存器中的转换结果送入数据总线门使输出锁存器中的转换结果送入数据总线ADC0809的的EOC信号经反相后接到信号经反相后接到8051的引脚的引脚 用于产生转换完成的中断请求信号用于产生转换完成的中断请求信号ADC0809芯芯片的片的3位模拟量输入通道地址码输入端位模拟量输入通道地址码输入端A、B、C分别接到分别接到8031的的P0.0、P0.1和和P0.2,故只要向端,故只要向端口地址口地址7FFFH分别写入数据分别写入数据00H07H,即可启,即可启动模拟量输入通道动模拟量输入通道07进行进行A/D转换转换数据的传送转换数据的传送 A/D转换后得到的数据应及时传送给单片机进行处理数据传送的关键问题是如何确认A/D转换的完成,因为只有确认完成后,才能进行传送为此可采用下述三种方式1 1)定时传送方式)定时传送方式 对于一种A/D转换其来说,转换时间作为一项技术指标是已知的和固定的。
例如ADC0809转换时间为128s,相当于6MHz的MCS-51单片机共64个机器周期可据此设计一个延时子程序,A/D转换启动后即调用此子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送2 2)查询方式)查询方式 A/D转换芯片由表明转换完成的状态信号,例如ADC0809的EOC端因此可以用查询方式,测试EOC的状态,即可却只转换是否完成,并接着进行数据传送3)中断方式)中断方式 把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送不管使用上述那种方式,只要一旦确定转换完成,即可通过指令进行数据传送首先送出口地址并以RD信号有效时,OE信号即有效,把转换数据送上数据总线,供单片机接受不管使用上述那种方式,只要一旦确认转换结束,便可通过指令进行数据传送所用的指令为:MOV DPTR,#7FFFH MOVX A ,DPTR该指令在送出有效口地址的同时,发出有效信号RD,使0809的输出允许信号OE有效,从而打开三态门输出,使转换后的数据通过数据总线送入A累加器中需要说明的是,ADC0809的三个地址端A、B、C既可如前所述与数据线相连,也可与地址线相连,例如与A0A2相连。
这时启动A/D转换的指令与上述类似,只不过A的内容为任意数例如当A、B、C分别与A0、A1、A2相连时,启动A/D转换只需要一条MOVX指令在此之前,要将P2.7清零并将最低三位与所选择的通道对应的口地址送入数据指针DPTR中例如要选择IN7通道时,可采用如下两条指令启动A/D转换:MOV DPTR,#7FFFH ;送入0809的口地址 MOVX DPTR,A ;启动A/D转换(IN7)注意:此处A中内容与A/D转换无关,可为任意值A/DA/D转换应用举例转换应用举例 采用中断工作方式对8路模拟输入信号依次进行A/D转换并把转换结果存入内部数据存储器的程序,设数据存储器的首地址为30H,采用前面的接口电路初始化程序:初始化程序:MOV R0,#30H ;数据区首地址MOV R4,#08H ;八路模拟信号MOV R2,#00H ;模拟通道0SETB EA ;开中断SETB EX1 ;允许外中断1SETB IT1 ;边沿触发MOV DPTR,#7FFFH;ADC0809端口地址MOV A,R2MOVX DPTR,A ;启动ADC0809SJMP$;等待中断服务程序:中断服务程序:MOVX A,DPTR ;输入转换结果MOV R0,A ;存入内存INC R0 ;数据区地址加1INC R2 ;修改输入通道MOV A,R2MOVX DPTR,A ;启动下一路通道DJNZ R4,LOOP ;八路未完,循环CLR EX1 ;八路完毕,关中断LOOP:RETI ;中断返回 AD574A与与8051单片机接口单片机接口AD574AAD574A逻辑控制真值表逻辑控制真值表 (a)启动与转换)启动与转换 (b)转换结果输出)转换结果输出 AD574A工作时序图工作时序图积分型积分型A/D 转换器工作原理转换器工作原理双积分型双积分型A/D转换器工作原理转换器工作原理 双积分型双积分型A/D转换是一种间接转换是一种间接A/D转换技术。
转换技术首先将模拟电压转换成积分时间,然后用数首先将模拟电压转换成积分时间,然后用数字脉冲计时方法转换成计数脉冲数,最后将字脉冲计时方法转换成计数脉冲数,最后将此代表模拟输入电压大小的脉冲数转换成二此代表模拟输入电压大小的脉冲数转换成二进制或进制或BCD码输出双积分双积分A/D转换电路原理及工作波型图转换电路原理及工作波型图1.准备期:开关S1、S2、S3断开,S4接通,积分电容C被短路,输出为02.采样期:开关S2、S3、S4断开,S1闭合,积分器对输入模拟电压+Vi进行积分,积分时间固定为T1,在采样期结束的t2时刻,积分器输出电压为:式中 为被测模拟电压在T1时间内的平均值itticVRCTdtVRCV1211dtVTVttii21113.比较期:从t2时刻开始,开关S1、S2、S4断开,S3闭合,将与被测模拟电压极性相反的标准电压-Er接到积分器的输入端(若被测模拟电压为-Vi,则S1、S3、S4断开,S2闭合,将+Er接到积分器的输入端),使积分器进行反向积分当积分器的输出回到0时,比较器的输出发生跳变设在t3时刻积分器回0,此时有:式中T2=t3-t2为比较周期rcttrcERCTVdtERCV232)(10在T2周期内对一个周期为的时钟脉冲进行计数,得:NT 2irVETTN12由于T1、Er、都是恒定值,从而计数值N就正比于被测模拟电压值,实现了A/D转换。
典型双积分典型双积分A/D转换器芯片转换器芯片ICL7135ICL7135是一种常用的4位半BCD码双积分型单片集成ADC芯片,其分辩率相当于14位二进制数,它的转换精度高,转换误差为1LSB,并且能在单极性参考电压下对双极性输入模拟电压进行A/D转换,模拟输入电压范围为01.9999V芯片采用了自动校零技术,可保证零点在常温下的长期稳定性,模拟输入可以是差动信号,输入阻抗极高ICL7135的输出时序图的输出时序图B8B8、B4B4、B2B2、B1B1:BCDBCD码数据输出,码数据输出,B8B8为最高位,为最高位,B1B1为最低位为最低位D5D5、D4D4、D3D3、D2D2、D1D1:BCDBCD码数据的位驱动信号输出端,分别码数据的位驱动信号输出端,分别选通万、千、百、选通万、千、百、十、个位十、个位ICL7135与单片机与单片机8031的接口电路的接口电路 ICL7135转换结果输出是动态的,因此必须通过并行接口才能与单片机连接上图所示为ICL7135通过并行接口芯片8155与单片机8031的接口电路图中74LS157为4位2选1 的数据多路开关,74LS157的SEL输入为低电平时,1A、2A、3A输入信息在1Y、2Y、3Y输出;SEL为高电平时,1B、2B、3B输入信息在1Y、2Y、3Y输出。
因此,当7135的高位选通信号D5输出为高电平时,万位数据B1和极性、过量程、欠量程标志输入到8155的PA0PA3,当D5为低电平时,7135的B8、B4、B2、B1输出低位转换结果的BCD码,此时BCD码数据线B8、B4、B2、B1输入到8155的PA3PA08155的定时器作为方波发生器,8031的晶振频取12MHz,8031 的ALE 端输出2MHz的频率信号给8155定时器输入端TIMERIN,定时器经16分频后,输出频率为125kHz的方波,作为7135的时钟脉冲8155的PA口工作于选通输入方式,ICL7135的数据输出选通脉冲线接到8155的PA口数据选通信号线ASTB(PC2),8155 PA口中断请求线AINTR(PC0)反相后接到8031的当ICL7135完成一次A/D转换以后,产生5个数据选通脉冲,分别将各位的BCD码结果和标志D1D4打入8155的PA口,PA口接收到一个数据以后,中断标志线AINTR(PC0)变高,通过反相器使单片机8031外部中断1 输入端变为低电平,向CPU请求中断,CPU响应中断后,读取8155PA口的数据7135A/D转换流程转换流程 三积分式三积分式ADC的工作原理的工作原理为了提高双分积式ADC的分辨率,出现了多积分式ADC。
下面简单介绍三重积分式ADC的工作原理它的特点是比较期由两段斜坡组成,当积分器输出电压接近0点时,突然换接数值较小的基准电压,从而降低了积分器输出电压的斜率,延长积分器回0的时间,使比较周期延长以获得更多的计数值,从而提高了分辨率而积分器在输出电压较高时,接入数值较大的基准电压,积分速度快,因而转换速度也快系统中有两个比较器,比较器1的比较电平为0电平,比较器2的比较电平为V,同时有两个基准电压Er和Er/2m工作过程如下:采样期:Sx接通,Spb、Sps断开,积分器对被测电压Vi积分,积分周期恒定为T1;比较期I:Spb接通,Sx、Sps断开,积分器对极性与Vi相反的基准电压Er进行积分,由于Er数值较大,故积分速度较快,积分周期为T21;比较期:当积分器输出达到比较器2的比较电平V时,通过控制电路使开关Sps接通,Spb、Sx断开,积分器对Er/2m积分由于基准电压减小,因而积分速度按比例降低当积分器输出电压达到零伏时,比较器1动作,通过控制电路使所有开关断开,积分器停止积分,一次A/D转换结束因为比较期的基准电压减小了2m倍,因此如果在两个比较期内计数脉冲频率保持不变,则在比较期内的计数值应乘以2m后才能与比较期内的计数值相加。
为此可采用如图所示的计数器结构在比较期内,与门1打开,计数器从2m位开始计数:在比较期内,与门2开,计数器从20位开始计数若在比较期内计得N1个钟脉冲,比较期内计得N2个时钟脉冲,则在整个比较期内计数器的计数值为 N=2mN1+N2 压压-频转换式频转换式ADC接口接口 V FC是根据电荷平衡原理工作的其原理电路如图所示核心部分是A1、Rf、和Cf组成的积分器开始时,二极管D1截止,D2导通,积分器对输入电压进行负向积分,积分电容Cf的充电电流为Vi/RfA2是带滞环的电压比较器每当比较器的输出从高电平变为低电平时,定时器就输出一个脉宽固定为Tj的负脉冲,使二极管D2截止,D1导通Ij从积分电容Cf上取走一分固定的电荷量IjTj由于IjVi/Rf,故在定时电路输出负脉冲期间,积分器的输出变成正向积分,直至电路恢复至初始态,以后就周期地重复上述过程所谓电荷平衡原理是指在一个周期中,积分电容得到的电荷量与放出电荷量相等,即 因此输出频率可表示为jjofiTITRVfjjiooRTIVTf1压压-频转换式频转换式ADC工作波形工作波形 利用VFC组成的A/D转换器的原理框图如图所示输入模拟电压Vi经VFC变成频率信号,加至控制与门,测量未进行时,与门关闭。
当测量开始时,由CPU发出启动脉冲,启动定时器工作,产生定时脉冲T,控制与门的打开时间在时间T内,VFC产生的频率信号由计数器进行计数由于 fO=KVi 式中fO为VFC的输出频率,K为比例常数,Vi为输入模拟电压计数器在时间T内的计数值为 N=TfO=KTVi 可见计数值N与输入模拟电压Vi成正比例,这样就把被测模拟电压变换成数字信号了只要改变定时器的时间T,就可改变输出的数字值N(对同样的Vi),从而可改变测量的分辨率如选用频率范围为0Hz1MHz的VFC,取定时时间T=1秒,计数器用6位半的BCD计数器,则分辨率可高达106。