1、1、概述、概述2、D/A转换原理转换原理3、A/D转换原理转换原理4、常用、常用D/A芯片举例芯片举例5、常用、常用A/D芯片芯片 在自动控制和测量系统中,被控制或被测量在自动控制和测量系统中,被控制或被测量的对象,如温度、压力、流量、速度、电压等都的对象,如温度、压力、流量、速度、电压等都是随时间连续变化且数值也连续可变的物理量。是随时间连续变化且数值也连续可变的物理量。这种连续变化的物理量通常称为模拟量。常这种连续变化的物理量通常称为模拟量。常以模拟电压或电流的形式输出,执行部件所要求以模拟电压或电流的形式输出,执行部件所要求的控制信号一般也都是模拟电压或电流。的控制信号一般也都是模拟电压
2、或电流。当计算机参与控制时,计算机要求的输入信号为当计算机参与控制时,计算机要求的输入信号为“数字量数字量”。把模拟量变换成数字量这一转换过程称为把模拟量变换成数字量这一转换过程称为A/D转换。转换。能将模拟量转换为数字量的器件称为模能将模拟量转换为数字量的器件称为模/数转换器数转换器(Analog Digital Converter),简称),简称ADC。经计算机处理后的结果是数字量,不能用它去直经计算机处理后的结果是数字量,不能用它去直接控制执行部件,需要先把它转换为模拟量,这接控制执行部件,需要先把它转换为模拟量,这个过程称为个过程称为D/A转换。转换。将数字量转换为模拟量的器件称为数将
3、数字量转换为模拟量的器件称为数/模转换器模转换器(Digital Analog Converter),简称),简称DAC。D/A转换是转换是A/D转换的逆过程。这两个互逆的转换转换的逆过程。这两个互逆的转换过程通常会出现在一个控制系统中。过程通常会出现在一个控制系统中。1、D/A转换的基本原理转换的基本原理 D/A转换器是一种把数字量转换为模拟量的线转换器是一种把数字量转换为模拟量的线性电子器件,它将计算机产生的控制量转换成性电子器件,它将计算机产生的控制量转换成模拟信号,用于驱动外部执行机构。模拟信号,用于驱动外部执行机构。采样:周期性地从被测对象得到一个电压的瞬时采样:周期性地从被测对象得
4、到一个电压的瞬时值,一个精确的模拟量值,一个精确的模拟量 量化:把采样所得的精确的模拟量量化为一个对量化:把采样所得的精确的模拟量量化为一个对应的数字量,一个离散的数字量应的数字量,一个离散的数字量 编码:根据计算机处理的数据格式进行编码,通编码:根据计算机处理的数据格式进行编码,通常把离散的数字量用二进制表示常把离散的数字量用二进制表示 采样、量化和编码必须统一规划采样、量化和编码必须统一规划 例:例:被采样的电压值范围被采样的电压值范围-5V +5V 用用8位二进制数表示位二进制数表示 则:则:-5V +5V的电压范围将等分为的电压范围将等分为256个等级个等级 在此范围内的任一电压值都将
5、被量化为一个在此范围内的任一电压值都将被量化为一个8位二进制数位二进制数 可把可把-5V +5V比作比作 0V 10V,并量化为,并量化为256个等级个等级 即:即:00000000 11111111,10/256=0.039V为一个等级为一个等级 电压模拟量电压模拟量二进制量化值二进制量化值电压模拟量电压模拟量二进制量化值二进制量化值0V000000005V100000000.039V000000015.039V100000010.078V000000105.078V10000010 4.92V011111109.92V111111004.96V011111119.96V11111111D/
6、A转换器的原理转换器的原理 D/A转换器的性能指标转换器的性能指标 DAC0832 D/A转换器转换器 12位位D/A转换器转换器DAC的接口(略)的接口(略)D/A转换器(转换器(Digital to Analog Convertor)数数-模模 模拟控制模拟控制 实时控制实时控制 输出电压输出电压=B(0 1)x 参考电压参考电压 如参考电压为如参考电压为5V,B=0.66,则输出电压为,则输出电压为3.3V B通常用二进制数表示,或通常用二进制数表示,或8位,或位,或12位位 二进制加权电阻网络二进制加权电阻网络 OA为运算放大器;为运算放大器;+为同向输入端,为同向输入端,-端为反向输
7、入端,两端为反向输入端,两端间阻抗即输入阻抗很高,可认为是等电位即端间阻抗即输入阻抗很高,可认为是等电位即A点为虚地点点为虚地点-+OAVoutb3b2b1b0R8R4R2R四位四位DAC寄存器寄存器0 10 10 10 1S3S2S1S0AIout1Iout2VrefI0I1I2I3IRfRf设设Vref=-10V 四位四位DAC寄存器即寄存器即b3 b0为为1101 I0=Vref/(8R)、I2=Vref/(2R)、I3=Vref/R 即:即:Iout1=I0+I2+I3=Vref=1.625Vref/R 根据基尔霍夫定律,根据基尔霍夫定律,Irf=-Iout1 若取若取Rf=R、则、则
8、Vout=Irf*R=-1.625Vref=16.25V 由于电阻均为集成电路电阻,上例中仅使用四位,如位数由于电阻均为集成电路电阻,上例中仅使用四位,如位数较多,制作精度很难保证,所以更常用的是较多,制作精度很难保证,所以更常用的是T型电阻网络型电阻网络 12181RRRT型电阻网络型电阻网络 根据基尔霍夫定律根据基尔霍夫定律Irf=-Iout1-+OARRRRVrefVoutb3b2b1b02R2R2R2R四位四位DAC寄存器寄存器0 10 10 10 1S3S2S1S0IRfRfAIout1Iout2I0I1I2I3R图中:图中:设设b3 b0=1101 Iout1=I3+I2+I0RV
9、refI16138133若取若取Rf=R;则;则VoutVRVrefRIRf125.81613RVIref23232II 431II 830II 分辨率(分辨率(Resolution)分辨率最小增量分辨率最小增量 8位表示位表示12位表示位表示最大值最大值1-2-80.99609375 1-2-120.999755859375最小值最小值0000最小可表示值最小可表示值2-80.003906252-120.000244140625转换精度(转换精度(Conversion Accuracy)通常为分辨率的一半通常为分辨率的一半 偏移量误差(偏移量误差(Offset Error)调零调零 线性度(
10、线性度(Linearity)取决于电阻的精度取决于电阻的精度 芯片简介芯片简介 DAC0832采用了二次缓冲输入数据方式(输入寄存器及采用了二次缓冲输入数据方式(输入寄存器及DAC寄存器)。可以在输出的同时采集下一个数字量,以提高寄存器)。可以在输出的同时采集下一个数字量,以提高转换速度。能够用于需要同时输出多个参数的模拟量系统。转换速度。能够用于需要同时输出多个参数的模拟量系统。二进制加权电阻网络二进制加权电阻网络-+OAVoutb3b2b1b0R8R4R2R四位四位DAC寄存器寄存器0 10 10 10 1S3S2S1S0AIout1Iout2VrefI0I1I2I3IRfRfT型电阻网络
11、型电阻网络-+OARRRRVrefVoutb3b2b1b02R2R2R2R四位四位DAC寄存器寄存器0 10 10 10 1S3S2S1S0IRfRfAIout1Iout2I0I1I2I3RDAC 0832内部结构框内部结构框DI7DI6DI5DI4DI3DI2DI1DI0ILECSWR1WR2XFERM3M1LE2LE18位位输入输入寄存器寄存器8位位DAC寄存器寄存器8位位D/A转换电路转换电路VrefIout2Iout1RfbAGNDDGNDVcc1314151645671918171120101282139DAC0832M2DAC0832的引脚图的引脚图1234567891020191
12、817161514131211VCCILEWR2XFERDI4DI4DI6DI7Iout2Iout1CSWR1AGNDDI3DI2DI1DI0VrefRfbDGNDDAC0832电源线(电源线(4条)条)Vcc 电源输入线电源输入线+5V +15V Vref 参考电压参考电压 -10V +10V DGND 数字量地数字量地 AGND 模拟量模拟量地地数字量输入线(数字量输入线(8条)条)DI7 DI0:与:与CPU的数据总线相连的数据总线相连 输出线(输出线(3条)条)Rfb 运算放大器反馈线,接运算放大器输出端运算放大器反馈线,接运算放大器输出端 Iout1、Iout2 模拟电流输出线模拟电
13、流输出线 Iout1+Iout2为一常数,通常接运算放大器的输入端为一常数,通常接运算放大器的输入端 控制线(控制线(5条)条)CS 片选,低电平有效片选,低电平有效 ILE 允许数字量输入,当允许数字量输入,当ILE高电平时,允许高电平时,允许8位输入寄存位输入寄存器输入数字量器输入数字量 XFER 传输控制输入,低电平有效传输控制输入,低电平有效 WR1、WR2 写命令输入写命令输入 WR1:控制数字量输入到:控制数字量输入到8位输入寄存器位输入寄存器 M1=ILE*M2=ILE*CS*WR1 当当ILE=1、CS=0、WR1=0 时时M1为为 1;此时,即在写脉冲有效期间,此时,即在写脉
14、冲有效期间,“直通直通”当上述条件有一个不满足,则当上述条件有一个不满足,则M1为为 0;此时,在此时,在0832 DI7 DI0上的数据被锁存进上的数据被锁存进 8位输入寄存器位输入寄存器 WR2:控制:控制D/A转换时间转换时间M3=WR2*XFER 当当WR2=0、XFER=0时,时,M3为为 1;此时此时8位位DAC寄存器的输出跟随输入变化寄存器的输出跟随输入变化(D触发器的触发器的Q端跟随端跟随D端变化);端变化);当当M3为为 0 时,时,8位输入寄存器的内容被锁存进位输入寄存器的内容被锁存进8位位DAC寄存器寄存器数数/模转换器芯片的输出电路模转换器芯片的输出电路电流输出转换为电
15、压输出电流输出转换为电压输出iRvout)/1(12RRiRvout反向电压输出反向电压输出同向电压输出同向电压输出单极性输出电路单极性输出电路RfbVoutRIout2Iout1111298Vref+5VRfbDAC08320 -5VOA256VrefBVout式中式中B为八位二进制数,为八位二进制数,0 B 255,Vref为参考电压为参考电压所以,当所以,当Vref为为+5V时,时,Vout为为 0 -5V单极性输出单极性输出 双极性输出电路双极性输出电路DAC0832RfbVref98112R12Vout1Vout2RRGI1I2I3CPU来来OA1OA2Vout=(B-128)Vre
16、f128数数/模转换器与微处理器的接口模转换器与微处理器的接口D/A转换器只有数据输入线,选片和写入控制线与微处转换器只有数据输入线,选片和写入控制线与微处理器有关。因此微处理器的接口比较简单,直接把数据输理器有关。因此微处理器的接口比较简单,直接把数据输出给出给D/A转换器。若转换器。若D/A转换器芯片内带有锁存寄存器,微转换器芯片内带有锁存寄存器,微处理器就把处理器就把D/A芯片当作一个并行输出端口;芯片当作一个并行输出端口;若若D/A转换器芯片内无锁存寄存器,微处理器就把转换器芯片内无锁存寄存器,微处理器就把D/A芯片当作一个并行输出的外设,二者之间还需增加并行输芯片当作一个并行输出的外
17、设,二者之间还需增加并行输出的接口。数出的接口。数/模转换器接口是通过模转换器接口是通过D/A转换器来实现模拟转换器来实现模拟输出,有时我们简称为输出,有时我们简称为“模出模出”。DAC0832的内部结构的内部结构 DAC0832的引脚功能的引脚功能 DAC0832作单极性电压输出作单极性电压输出 DAC0832作双极性电压输出作双极性电压输出 DAC0832的工作方式及应用举例的工作方式及应用举例8位位 D/A转换电路转换电路8位位 T型电阻网络和电子开关型电阻网络和电子开关 需外接运算放大器需外接运算放大器 DI7DI6DI5DI4DI3DI2DI1DI0ILECSWR1WR2XFERM3
18、M1LE2LE18位位输入输入寄存器寄存器8位位DAC寄存器寄存器8位位D/A转换电路转换电路VrefIout2Iout1RfbAGNDDGNDVcc1314151645671918171120101282139DAC0832M2P416 图图12 14 DAC0832的引脚图的引脚图1234567891020191817161514131211VCCILEWR2XFERDI4DI4DI6DI7Iout2Iout1CSWR1AGNDDI3DI2DI1DI0VrefRfbDGNDDAC0832v电源线(电源线(4条)条)Vcc 电源输入线电源输入线+5V +15V Vref 参考电压参考电压 -
19、10V +10V DGND 数字量地数字量地 AGND 模拟量地模拟量地v数字量输入线(数字量输入线(8条)条)DI7 DI0:与:与CPU的数据总线相连的数据总线相连 v输出线(输出线(3条)条)Rfb 运算放大器反馈线,接运算放大器输出端运算放大器反馈线,接运算放大器输出端 Iout1、Iout2 模拟电流输出线模拟电流输出线 Iout1+Iout2为一常数,通常接运算放大器的输入端为一常数,通常接运算放大器的输入端 v控制线(控制线(5条)条)CS 片选,低电平有效片选,低电平有效 ILE 允许数字量输入,当允许数字量输入,当ILE高电平时,允许高电平时,允许8位输位输入寄存器输入数字量
20、入寄存器输入数字量 XFER 传输控制输入,低电平有效传输控制输入,低电平有效 WR1、WR2 写命令输入写命令输入 WR1:控制数字量输入到:控制数字量输入到8位输入寄存器位输入寄存器 M1=ILE*M2=ILE*CS*WR1 当当ILE=1、CS=0、WR1=0 时时M1为为 1;此时,即在写脉冲有效期间,此时,即在写脉冲有效期间,“直通直通”当上述条件有一个不满足,则当上述条件有一个不满足,则M1为为 0;此时,在此时,在0832 DI7 DI0上的数据被锁存进上的数据被锁存进 8位输入寄存器位输入寄存器 WR2:控制:控制D/A转换时间转换时间M3=WR2*XFER 当当WR2=0、X
21、FER=0时,时,M3为为 1;此时此时8位位DAC寄存器的输出跟随输入变化寄存器的输出跟随输入变化(D触发器的触发器的Q端跟随端跟随D端变化);端变化);当当M3为为 0 时,时,8位输入寄存器的内容被锁存位输入寄存器的内容被锁存进进8位位DAC寄存器寄存器 RfbVoutRIout2Iout1111298Vref+5VRfbDAC08320 -5VOA式中式中B为八位二进制数,为八位二进制数,0 B 输入输入?把当前最高位置把当前最高位置1产生模拟输出产生模拟输出把当前最高位清把当前最高位清0把高位指针右移把高位指针右移是字尾吗是字尾吗?运算结果运算结果YNNY0.50.750.6250.
22、68751 2 3 4vt输入模输入模拟电压拟电压如输入模拟电压为如输入模拟电压为0.6875V,进行进行4位二进制的位二进制的A/D转换转换 置置1000,结果,结果 输入输入 置置1010,结果,结果 输入输入 置置1011,结果,结果=输入输入 转换速度(转换速度(Conversion Rate)一次一次A/D转换所需时间的倒数转换所需时间的倒数 8位逐次逼近式位逐次逼近式A/D转换器转换器0809的转换时间的转换时间约约100us 12位快速逐次逼近式位快速逐次逼近式A/D转换器转换器574A的转换时间的转换时间约约25us 转换精度(转换精度(Conversion Accuracy)
23、模拟误差:比较器误差、电阻网络中电阻值误差、电源波模拟误差:比较器误差、电阻网络中电阻值误差、电源波动等固定误差动等固定误差 数字误差:丢码误差、量化误差等非固定误差数字误差:丢码误差、量化误差等非固定误差 通常,位数越多,误差越小通常,位数越多,误差越小 模拟量是连续的模拟量是连续的 数字量是离散的数字量是离散的如满量程为如满量程为5V,用,用8位转换器时,分辨率为位转换器时,分辨率为5/255,则量化误差,则量化误差为为5/510 A/D转换器的性能指标转换器的性能指标分辨率分辨率 分辨率是指分辨率是指ADC对输入电压微小变化响应能力的度量。对输入电压微小变化响应能力的度量。绝对精度绝对精
24、度绝对精度是指在输出端产生给定的数字代码,实际需要的模拟输入值与绝对精度是指在输出端产生给定的数字代码,实际需要的模拟输入值与理论上要求的模拟输入值之差。理论上要求的模拟输入值之差。相对精度相对精度相对精度(又称线性度)是指满刻度值校准后,任意数字输出所对应的相对精度(又称线性度)是指满刻度值校准后,任意数字输出所对应的实际模拟输入值(中间值)与理论值(中间值)之差。实际模拟输入值(中间值)与理论值(中间值)之差。转换时间转换时间转换时间是指转换时间是指ADCADC完成一次转换所需的时间,即从启动信号开始到转换结完成一次转换所需的时间,即从启动信号开始到转换结束并得到稳定的数字输出量所需的时间
25、。通常为微秒级。束并得到稳定的数字输出量所需的时间。通常为微秒级。量程量程量程是指所能转换的输入电压范围量程是指所能转换的输入电压范围数数/模转换器的性能指标模转换器的性能指标分辨率分辨率 分辨率是最低有效位(分辨率是最低有效位(LSB)所对应的模拟量的大小。所对应的模拟量的大小。精度精度 精度反映精度反映D/A转换的精确度。转换的精确度。建立时间建立时间 建立时间定义为:在数字输入端输入满量程代码的变化后,建立时间定义为:在数字输入端输入满量程代码的变化后,DAC的模拟输出稳定到最终值的模拟输出稳定到最终值1/2LSB时所需的时间。时所需的时间。0809的内部结构的内部结构 0809的引脚功
26、能的引脚功能使用使用ADC0809的采样电路举例的采样电路举例逐次逼近寄存器逐次逼近寄存器树状开关树状开关IN0IN1IN2IN3IN4IN5IN6IN7ADDA ADDB ADDC ALESTARTCLOCK6 1011 13 12Vcc GND Vref(+)Vref(-)OEEOC(MSB)VinVst159726272812345三三态态输输出出锁锁存存器器2120191881514172-12-22-32-42-52-62-72-825 24 23 22八八路路模模拟拟开开关关控制电路控制电路比较器比较器地址锁存地址锁存与译码器与译码器256电阻阶梯电阻阶梯八路模拟开关及地址锁存与译
27、码器八路模拟开关及地址锁存与译码器 IN0 IN7输入模拟电压输入模拟电压 ALE锁存锁存A、B、C所指定的输入端口的模拟电压作为所指定的输入端口的模拟电压作为Vin进进行转换行转换 逐次逼近寄存器和比较器逐次逼近寄存器和比较器 转换时间转换时间为为100 s 逐次逼近寄存器:逐次逼近寄存器:在在A/D转换的过程中,暂存中间数字量转换的过程中,暂存中间数字量 在在A/D转换结束后,暂存结果数字量转换结束后,暂存结果数字量 并送到三态输出锁存器并送到三态输出锁存器 三态输出锁存器和控制电路三态输出锁存器和控制电路 三态输出锁存器用于锁存最后的转换结果三态输出锁存器用于锁存最后的转换结果 当当CP
28、U把把OE置成高电平时,即可从中读出转换结果置成高电平时,即可从中读出转换结果 256电阻阶梯和树状开关(以二位为例电阻阶梯和树状开关(以二位为例)对于对于8位的位的A/D转换器,转换器,则需则需256个分压电阻个分压电阻有有256个标准电压供树状个标准电压供树状开关使用开关使用 D1D0Vst000V010.5V101.5V112.5V二位电阻阶梯和树状开关二位电阻阶梯和树状开关ABCDGNDVref1210VstD0D1二位电阻阶梯和树状开关二位电阻阶梯和树状开关10104v2.5v1.5v0.5v0v1.5R1R1R0.5RX2IN0 IN7(8条)条)八路模拟电压输入线八路模拟电压输入
29、线 地址输入和控制线(地址输入和控制线(4条)条)ADDA、ADDB、ADDC:八路模拟电压输入的选择,:八路模拟电压输入的选择,译码后选其一译码后选其一 ALE:三根地址线的锁存信号:三根地址线的锁存信号 数字量输出及控制线(数字量输出及控制线(11条)条)START:转换启动脉冲:转换启动脉冲宽度大于宽度大于100ns,上升沿清逐次逼近寄存器,上升沿清逐次逼近寄存器SAR,下降沿启,下降沿启动动ADC转换转换EOC:转换结束信号输出转换结束信号输出当转换结束,数字量锁存进三态输出锁存器后,该引脚将输当转换结束,数字量锁存进三态输出锁存器后,该引脚将输出高电平出高电平OE:CPU允许输出允许
30、输出D0 D7:八位数字量输出:八位数字量输出电源线及其它(电源线及其它(5条)条)CLOCK:时钟,:时钟,ADC0809需要需要640KHz脉冲脉冲Vcc:+5V,电源输入,电源输入GND:地线地线Vref(+):参考电压,电阻阶梯网络用,通常接参考电压,电阻阶梯网络用,通常接VccVref(-):参考电压,电阻阶梯网络用,通常接地参考电压,电阻阶梯网络用,通常接地IO总线直接控制总线直接控制0809通过通过8255控制控制0809采样电路说明采样电路说明采样电路原理图采样电路原理图参考程序参考程序接口:接口:选择选择0809模拟输入通道模拟输入通道启动转换启动转换读取读取EOC信号信号读
31、取转换结果时保证使读取转换结果时保证使OE引脚为高电平引脚为高电平读取转换后的数字量可用查询或中断方式读取转换后的数字量可用查询或中断方式 查询:查询:启动后,定时查询启动后,定时查询EOC状态,本例采用查询方式状态,本例采用查询方式中断:中断:用用EOC信号作为信号作为CPU的中断请求信号的中断请求信号EOCD7D0OEALESTART CBAVccREF(+)CLKIN0IN1IN2IN3IN4IN5IN6IN7REF(-)GNDIORIOWA9A8A7A6A5A4A3A2A1A0D7 D0+5V500KHzD7D0ADC0809G1G2AG2BCB Y1A Y074LS138D7308H
32、308H 30FH300H 307H0809的八个模拟输入端的八个模拟输入端地址为地址为300H-307H 在选择模拟输入端口同在选择模拟输入端口同时,将把输入端口号锁时,将把输入端口号锁存并启动存并启动 一旦被选择输入端口的一旦被选择输入端口的A/D转换结束,转换结束,EOC将将为为1,通过,通过IO地址地址308H可读取可读取EOC的状态,以的状态,以监测监测D7是否为是否为1 再读取转换后的数字量再读取转换后的数字量本参考程序是对本参考程序是对0809进行进行256次循环采样,凡次循环采样,凡IN0的采样值的采样值存放在存放在BUF0中,中,IN1的采样值存放在的采样值存放在BUF1中,
33、中,有定义:有定义:BUF0DB100H DUP(0)BUF1DB100H DUP(0)BUF2DB100H DUP(0)BUF3DB100H DUP(0)BUF4DB100H DUP(0)BUF5DB100H DUP(0)BUF6DB100H DUP(0)BUF7DB100H DUP(0)把此程序段写成一个过程把此程序段写成一个过程SAMPLE:SAMPLEPROCNEAR;写成一个过程;写成一个过程PUSHAXPUSHBXPUSHCXPUSHDXPUSHSIMOVBX,OFFSET BUF0;以;以BUF0为基址为基址MOVCX,100H;循环采样总次数为;循环采样总次数为100H次次MO
34、VSI,0;SI为为BUF中的偏移量中的偏移量NEXT0:PUSHCXPUSHSIMOVCX,08H;每个循环中需对;每个循环中需对8个端口采样个端口采样MOVDX,300H;IN0的的IO地址为地址为300HNEXT1:OUTDX,AL;选择端口,当前;选择端口,当前AL的值无意义的值无意义PUSHDX;保存当前的端口号;保存当前的端口号MOVDX,308H;指向;指向EOC的地址的地址POLL:INAL,DXTESTAL,80H;如;如EOC不为不为0,则转换尚未启动,则转换尚未启动JNZPOLLNO_END:INAL,DXTESTAL,80H;如;如EOC不为不为1,则转换尚未结束,则转
35、换尚未结束JZNO_ENDPOPDX;转换已经结束,准备读取;转换已经结束,准备读取INAL,DXMOVBXSI,AL;读取采样值,存放于当前的;读取采样值,存放于当前的BUF中中INCDX;指向下一个端口;指向下一个端口ADDSI,100H;指向下一个;指向下一个BUFLOOPNEXT1;需对;需对8个端口采样个端口采样POPSIINCSIPOPCXLOOPNEXT0PUSHSIPUSHDXPUSHCXPUSHBXPUSHAXRETSAMPLEENDP采样电路说明采样电路说明采样电路原理图采样电路原理图参考程序参考程序接口:接口:使用使用8255作为作为0809的控制接口,即的控制接口,即C
36、PU通过对通过对8255相关端口的设定来完成:相关端口的设定来完成:选择选择0809的模拟输入通道的模拟输入通道启动转换启动转换读取读取EOC信号信号读取转换结果时保证使读取转换结果时保证使OE引脚为高电平引脚为高电平读取转换后的数字量可用查询或中断方式读取转换后的数字量可用查询或中断方式 查询:查询:启动后,定时查询启动后,定时查询EOC状态,本例采用查询方式状态,本例采用查询方式中断:中断:用用EOC信号作为信号作为CPU的中断请求信号的中断请求信号8255的的PA口定义为输入口定义为输入 PC7-4定义为输入定义为输入 PC3-0定义为输出定义为输出 PC2-0选择模拟输入通道选择模拟输
37、入通道PC3用于锁存和启动用于锁存和启动通过查询通过查询PC7可知可知A/D转转换是否结束换是否结束一旦一旦PC7为为1,即可读,即可读PA口得到转换后的数字量口得到转换后的数字量0809上的上的OE的电平由其的电平由其输出的输出的EOC提供提供D7D0EOCOECBAREF(+)REF(-)CLK GNDSTARTALE8255AADC0809Vcc500KHz8088系统总线系统总线PA7PA0PC7PC3PC2PC1PC0IN7IN6IN5IN4IN3IN2IN1IN0+5V+5VP428 图图12-23 用用8255控制控制ADC0809的电路图的电路图本参考程序是对本参考程序是对08
38、09的的8个模拟通道进行个模拟通道进行256次循环采样,凡次循环采样,凡IN0的的采样值存放在采样值存放在BUF0中,中,IN1的采样值存放在的采样值存放在BUF1中,中,已定义已定义8255A的的PA、PB、PC和控制口地址分别为和控制口地址分别为320H、321H、322H和和323H,系统已对,系统已对8255A进行了初始化:进行了初始化:PA、PB、PC7-4为为输入,输入,PC3-0为输出,为输出,在数据段中定义了在数据段中定义了8个采样缓冲区:个采样缓冲区:BUF0DB100H DUP(0)BUF1DB100H DUP(0)BUF2DB100H DUP(0)BUF3DB100H D
39、UP(0)BUF4DB100H DUP(0)BUF5DB100H DUP(0)BUF6DB100H DUP(0)BUF7DB100H DUP(0)有主控程序:有主控程序:CHANLDB?MAIN:CALLINITMOVBX,OFFSET BUF0;BX指向指向BUF0MOVSI,0;SI指向指向BUF0首址首址MOVCX,100H;需采样;需采样100H次次AGAIN:MOVCHANL,0;每次都从通道;每次都从通道0开始开始CALLSAMPLE;调用;调用SAMPLEINCSI;SI指向下一个单元指向下一个单元LOOPAGAIN;循环;循环100H次次 SAMPLEPROC NEARPUSH
40、 CX;CX进栈进栈PUSH SI;SI进栈进栈MOVCX,8;有;有8个通道个通道NEXT_IN:MOVDX,322H;指向;指向8255的的PC口口MOVAL,CHANL;CHANL中是通道号中是通道号OUTDX,AL;用;用PC2-0选择通道号选择通道号MOVDX,323H;指向;指向8255的控制口的控制口MOVAL,00000111B;置;置PC3为为1,即启动转换,即启动转换OUTDX,AL;所选择通道的;所选择通道的A/D转换转换NOP;延时;延时NOPMOVAL,00000110B;清;清PC3为为0,锁存并结束启动,锁存并结束启动OUTDX,ALMOVDX,322H;指向;指
41、向PC口口 NO_CONV:INAL,DX;读;读PC7,即,即EOCTESTAL,80H;PC7!=0,说明尚未启动,说明尚未启动JNZNO_CONV;等待;等待NO_EOC:INAL,DX;再读;再读PC7,即,即EOCTESTAL,80H;PC7!=1,说明尚未结束,说明尚未结束JZNO_EOC;等待;等待MOVDX,320H;指向;指向PA口口INAL,DX;读取转换值;读取转换值MOVBXSI,AL;存入当前所指向的;存入当前所指向的BUFADDSI,100H;SI指向下一个指向下一个BUFINCCHANL;CHANL为下一个通道为下一个通道LOOPNEXT_IN;循环;循环8次次P
42、OPSI;SI出栈出栈POPCX;CX出栈出栈RETSAMPLEENDPAD574A的结构特点的结构特点 AD574A的引脚功能的引脚功能使用使用AD574A的采样电路举例的采样电路举例AD574A是是12位逐次逼近式位逐次逼近式A/D转换器转换器 高精度快速采样高精度快速采样 25 s 内部集成有内部集成有时钟时钟参考电压参考电压三态锁存器三态锁存器使用时毋需外接使用时毋需外接CLOCK转换速度为转换速度为25 s0809为为100 s 输入模拟电压输入模拟电压可为单极性可为单极性0 10V或或0 20V也可为双极性也可为双极性-5V +5V或或-10V +10V0809只能是单极性只能是单
43、极性 数字量输出数字量输出可设定为可设定为12位一次性输出位一次性输出也可设定为分两次输出,第一次高也可设定为分两次输出,第一次高8位,第二位,第二次低次低4位位 1234567891011121314STSDB11DB10DB9DB8DB7DB6DB5DB4DB3DB2DB1DB0DCVlogic 12/8CSA0R/CCEVccREF OUTACREF INVeeBIP OFF10Vin20VinAD574A2827262524232221201918171615v模拟量输入线(模拟量输入线(3条)条)10Vin单极性时:单极性时:0 +10V,双极,双极性时:性时:-5V +10V20V
44、in单极性时:单极性时:0 +20V,双极,双极性时:性时:-10V +20VAC 模拟电压公共接地,常与模拟电压公共接地,常与DC相连相连v数字量输出线(数字量输出线(13条)条)DB11 DB0数字量输出线,数字量输出线,DB11为最高位为最高位DC 数字量公共接地,常与数字量公共接地,常与AC相连相连 控制线(控制线(6条)条)CS片选信号,低电平有效片选信号,低电平有效CE片选允许信号,高电平有效片选允许信号,高电平有效R/C为为0:启动;为:启动;为1:读取数字量:读取数字量A0与与12/8引脚配合,控制引脚配合,控制12位或位或8位操作位操作12/8 与与A0引脚配合,控制引脚配合
45、,控制12位或位或8位操作位操作STS 转换结束,高电平有效转换结束,高电平有效无操作无操作XXX1X无操作无操作XXXX0高高4位数字量输出位数字量输出10101低低8位数字量输出位数字量输出0010112位数字量输出位数字量输出X1101启动启动8位位A/D转换(奇地址)转换(奇地址)1X001启动启动12位位A/D转换(偶地址)转换(偶地址)0X001功功 能能A012/8R/CCSCE测试测试/调零线(调零线(3条)条)REFIN内部解码网络的参考电压输入线内部解码网络的参考电压输入线REFOUT内部解码网络的参考电压输出线内部解码网络的参考电压输出线BIP OFF 补偿调整线,当模拟
46、输入为零时,调整输补偿调整线,当模拟输入为零时,调整输出为零出为零 电压线(电压线(3条)条)VL+5V 电源线电源线VCC+12 +15V电源线电源线VEE-12 -15V 电源电源线线采样电路原理图采样电路原理图采样电路说明采样电路说明参考程序参考程序图图 AD574A的接口电路的接口电路DB11DB8DB7DB0STSCECS R/CPC7PC2PC1PC0D7 D0AD574A100+5VREF INREF OUT BIP OFFVin100KACDCA012/8 Vlogic模拟输入模拟输入系统总系统总线线D11 D8PB7PB0PA3PA0-12V 100K +12V1008255
47、A零调整零调整满量程调整满量程调整上述采样原理图中,用一个并型端口上述采样原理图中,用一个并型端口8255A作为作为AD574的接的接口控制芯片口控制芯片图中:图中:A0恒接地,为恒接地,为12位转换位转换 12/8恒接恒接1,并型输出,并型输出12位转换后的数字量位转换后的数字量 启动转换、读取状态、读取数字量等控制均由启动转换、读取状态、读取数字量等控制均由8255的的PC口控制口控制 上图中上图中8255A的的PA、PB、PC和控制口的和控制口的IO地址分别为地址分别为300H、301H、302H和和303H 8255A的的PA、PB口,定义为方式口,定义为方式0的输入、的输入、PC3-
48、0定义为输出、定义为输出、PC7-4定义为输入方式控制字为定义为输入方式控制字为10011010B 12/8接接+5V表示表示AD574A将并行输出将并行输出12位数字量,而位数字量,而CPU将分将分别读取别读取PA和和PB口,以得到转换后的口,以得到转换后的12位数字量位数字量 AD574A的启动和读取,将通过的启动和读取,将通过8255A的的PC2-0的控制信号来的控制信号来实现实现 而转换是否结束,将由读取而转换是否结束,将由读取8255A的的PC7(即(即AD574A的的STS)的状态来判断的状态来判断 PORT_AEQU300H;8255A的的PA口地址口地址PORT_BEQU301
49、H;8255A的的PB口地址口地址PORT_CEQU302H;8255A的的PC口地址口地址PORT_CRLEQU303H;8255A的的CTL口地址口地址SAMPDW?;12位采样数据存放单元位采样数据存放单元 MOV AL,00H;使;使CE=CS=R/C=0MOV DX,PORT_COUTDX,ALNOPNOPMOV AL,04H;使;使CE=1,CS=R/C=0 OUTDX,AL;启动;启动A/D转换转换NOPNOPMOV AL,03H;使;使CE=0、CS=R/C=1OUTDX,AL;结束启动;结束启动READ_STS:INAL,DX;读取;读取STS状态状态TEST AL,80H;
50、转换结束了吗;转换结束了吗?,D7=1为结束为结束JNZREAD_STSMOVAL,01H;使;使CE=CS=0,R/C=1OUTDX,AL;准备读取;准备读取NOPMOVAL,05H;使;使CE=1、CS=0、R/C=1 OUTDX,AL;允许读取;允许读取MOVDX,PORT_A;指向;指向PA口口INAL,DX;读取高;读取高4位位ANDAL,0FHMOVBH,ALMOVDX,PORT_B;指向;指向PB口口INAL,DX;读取低;读取低8位位MOVBL,ALMOVSAMP,BX;存入;存入SAMP中中MOVAL,03H;使;使CE=0、CS=R/C=1MOVDX,PORT_C;指向;指