【文档说明】单片机原理及应用-蔡启仲-第10章-AD和DA转换器的接口7.17资料课件.ppt,共(63)页,1.778 MB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-77073.html
以下为本文档部分文字说明:
1第10章AD和DA转换器的接口22目录内容概要10.1D/A转换器接口10.1.1D/A转换器原理10.1.251单片机与DAC0832的接口与编程10.1.351单片机与DAC1208的接口与编程10.2A/D
转换器接口10.2.1A/D转换器原理10.2.251单片机与ADC0809的接口10.2.351单片机与AD574的接口习题33内容概要微处理器只能够处理二进制数据,而计算机处理的物理量绝大多数都是模拟量,对于微处理器输出的二进制数据
需要通过数模转换电路将二进制数据转换成为模拟量输出,对于输入的模拟量需要通过模数转换电路将模拟量转换成为二进制数据给微处理器进行数据处理。本章介绍D/A转换器和A/D转换器的基本原理和技术指标,重点介绍D/A转换器和A/D转换器与51单片机的接口电路,以及D/A转换器和A/D转换器的编程
方法。410.1D/A转换器接口10.1.1D/A转换器原理1.D/A转换器基本工作原理D/A转换器(DigitaltoAnalogConverter,简称DAC),又称为数模转换器,是一种将二进制数字量转换成以参考量为基准的模拟量的转换器。下面以
4位二进制加权电阻网络型D/A转换器为例来说明D/A转换器的工作原理,转换原理图如图10–1所示。4由图10–1可见,4位二进制加权电阻网络D/A转换器由电阻网络、4个数码开关和一个求和运算放大器组成。其中,VREF:基
准电压,S0~S3:数码开关,受二进制位状态控制,相应二进制位为“0”:开关接地;相应二进制位为“1”:开关接VREF。5虚线框内电阻2nR:“权电阻”,是指二进制数的每一位代表的数值,电阻值越大,在“权电阻”上流过的“权电流”越小,经过运放
后得到的VO电压值越小,4个数码开关的不同组合,将产生16个不同的VO电压值。5根据运算放大器“电压虚短”和“电流虚断”的概念,可以得到:3210321044(2222)22REFREFOVVVddddM
一般地,n位二进制加权电阻网络型D/A转换器的输出电压为:由此可见,D/A转换器的输出电压VO正比于输入数字量M,无论D/A转换器的内部结构如何,最终得到计算输出电压VO的公式均相同。12101210(22...22)22nnREFREFOnnnnVVVddddM
62.D/A转换器的主要技术指标(1)分辨率分辨率:输入数字量的最低有效位(LSB)发生变化时,所对应的输出模拟量(电压或电流)的变化量。它反映了输出模拟量的最小变化值,通常定义为输出满刻度值FS与之比(n为D/A转换器的二进制位数)。对于5V
的满量程,8位的DAC,分辨率:5V/256=19.5mV,即输入的二进制数最低位的变化可引起输出模拟电压的变化量为19.5mV,常用符号1LSB表示;当采用12位的DAC时,分辨率:1LSB=5V/4096=1.22m
V。显然,位数越多分辨率就越高,即D/A转换器对输入量变化的敏感程度越高。67(2)转换精度转换精度:满量程时DAC实际的模拟输出值与理论值的接近程度。理想情况下,转换精度与分辨率基本一致,位数越多精度越高。但由于制造工艺等各种
因素存在着误差,严格讲,转换精度与分辨率并不完全一致。只要位数相同,分辨率则相同,但相同位数的不同转换器转换精度会有所不同。例如,满量程时理论输出为10V,实际输出值在10.01V~9.99V之间,其转换精度为±10mV。7(3)建立时间
建立时间:输入数字量变化后,输出模拟量稳定到终值误差(1/2)LSB时所经历的时间,是描述DAC转换速度快慢的一个重要参数。电流输出型DAC的建立时间短。电压输出型DAC的建立时间主要决定于运算放大器的响
应时间。根据建立时间的长短,可以将DAC分成超高速(<1μS)、高速(10μS~1μS)、中速(100μS~10μS)、低速(>=100μS)几档。83.D/A转换器的输出及接口形式D/A转换器的输出有两种形式:一种是电压输出型;另一种是电流输出型。电流输出型D/A转换器可在
其输出端再将电流输出转换为电压输出。D/A转换器的接口主要有并行接口和串行接口(如通用UART串行口、I2C串行口和SPI串行口等),因此在选择D/A转换器时,要考虑单片机与D/A转换器的接口形式。810.1.251单片机与DAC0832的
接口与编程DAC0832:8位电流输出型D/A转换器,转换时间为1μs,逻辑电平输入与TTL电平兼容,单一电源供电(+5V~+15V),功耗为20mW,可以直接与51单片机应用系统总线连接。DAC0832的主要特性:数据
输入可采用双缓冲、单缓冲或直通方式;电流输出,输出电流线性度可在满量程下调节。91.DAC0832的内部结构DAC0832的内部结构如图10–2所示,它由一个8位输入寄存器、一个8位DAC寄存器、一个8位D/A转换电路及控制电
路构成。8位输入寄存器:存放单片机送来的数字量,使输入数字量得到缓冲和锁存,由控制;8位DAC寄存器:存放待转换的数字量,由控制;8位D/A转换电路:受8位DAC寄存器输出的数字量控制,能输出和数字量成正比的模拟电流。DAC0832可以根据需要连接成两级输入锁存的双缓冲方式或一级输入锁
存的单缓冲方式,或完全直通的无缓冲方式。91LE2LE1010112.DAC0832的引脚图10–3为DAC0832的引脚分布图,各引脚功能定义如下:11:片选端,低电平时,本芯片被选中。ILE:数据锁存允许控制端,高电平有效。:第一级输入寄存器写选通控制,低电平有效。当=0,ILE=1,=0;待
转换的数据信号被锁存到第一级8位输入寄存器中。:数据传送控制,低电平有效。CSWR1CSWR1DI0~DI7:8位数字信号输入端,与单片机的数据总线P0口相连,用于接收单片机送来的待转换为模拟量的数字量,D
I7为最高位。XFER12:DAC寄存器写选通控制端,低电平有效。当=0,=0时,输入寄存器中待转换的数据写入8位DAC寄存器。IOUT1:D/A转换器电流输出1端,输入数字量全为“1”时,IOUT1最
大,输入数字量全为“0”时,IOUT1最小。IOUT2:D/A转换器电流输出2端,IOUT2+IOUT1=常数。Rfb:外部反馈信号输入端,内部已有反馈电阻Rfb,根据需要也可外接反馈电阻。VCC:电源输入端,在+5V~+15V范围内。122WRXFER2WRDG
ND:数字信号地。AGND:模拟信号地,最好与基准电压共地。“8位输入寄存器”用于存放单片机送来的数字量,使输入数字量得到缓冲和锁存,由加以控制;“8位DAC寄存器”用于存放待转换数字量,由控制;“8位D/A转换电路”受“8位DAC寄存器”输出的数
字量控制,能输出和数字量成正比的模拟电流。因此,需外接I-V转换的运算放大器电路,才能得到模拟输出电压。LE12LE133.DAC0832与51单片机的连接(1)单缓冲连接方式DAC0832与51单片机接
口的单缓冲连接电路如图10–4所示。1314图10–4中,和直接接地,由图10–2可知,8位DAC寄存器处于直通状态;ILE接+5V,8位输入寄存器受控于和信号,当为“0”时,即选中DAC0832,在信号的作用下将51单片机数据总线的8位数据→8位输入寄存器→8位DAC寄存器→8
位D/A转换电路→输出。所谓“单缓冲”是指单片机只需执行一条写操作指令,即可完成D/A转换。单缓冲工作方式适用于只有一路模拟量输出,或有几路模拟量输出但不要求同步输出的系统。设DPTR中的内容为DAC0832地址值,A中的内容为待转换的数据,执行指令MOVX@DPTR,A即可实现DA
C0832的数字到模拟量的转换。142WRXFER1WRCSCS1WR15例10–1试编写DAC0832以单缓冲方式输出如图10–5所示的锯齿波、三角波的D/A转换输出程序。设DAC0832的译码地址为FFFEH,51单片机晶振频率12MHz,Ta=100ms,
Tb=200ms。(1)锯齿波。分析:按照图10–5,锯齿波的周期Ta=100ms,最大幅值(30H)=64H=100,每个待转换的数字量维持T=1ms时间。即每间隔1ms,DAC0832的数据输入值加1一次,应用T0工作于方式1定时1ms,采
用定时中断方法编程实现。按照(5–3)式计算T0的定时初值:15-36655361101065536100064536FC18HX16ORG0000HLJMPSTARTORG000BH;
定时器/计数器T0的中断入口地址LJMPTIMER0;跳转到定时1ms的中断服务程序TIMER0ORG0030HSTART:MOVTMOD,#01H;T0为定时器工作方式1MOVTCON,#00H;初始化T0相关标志位MOVTL0,#18H;初始化T0定
时初值低8位MOVTH0,#0FCH;初始化T0定时初值高8位CLRA;DAC转换数据初值0送累加器AMOV30H,A;30H作为输出锯齿波数据的计数单元SETBET0;T0中断允许SETBEA;开总中断
SETBTR0;启动T0定时SJMP$;无限循环,等待中断1617TIMER0:PUSHACC;累加器A的内容压栈PUSH82H;DPL的地址值为82HPUSH83H;DPH的地址值为83HMOVDPTR,#0FFFEH;数据指针D
PTR指向DAC0MOVA,30H;待转换数据→AMOVX@DPTR,A;DAC0832转换数据,并输出INC30H;待转换数据加1CJNEA,#64H,LOOP;(A)与三角波最大值100比较,相等顺序执行CLRA;已输出一个周期的锯齿波,清转换数据初值MOV30H,A;清计
数单元的初始数据LOOP:MOVTL0,#18H;重装载T0定时初值低8位MOVTH0,#0FCH;重装载T0定时初值高8位POP83HPOP82HPOPACCRETI1718(2)三角波。分析:按照图10–5,三角波的周期Ta=200ms,最大幅值A=64H=100,每个待转换的数字量维持T
=1ms时间,DAC0832的输入数据每间隔1ms加1一次,应用T0工作于方式1定时1ms,采用定时中断方法编程。根据图10–5,比较三角波和锯齿波的波形,不同的地方在于1ms中断服务程序的编制,一是30H单元内容从0每1ms加1直
到64H(100),然后再从64H每1ms减1直到0,周而复始;二是需要判断是处于三角波的加1处理阶段,还是减1处理阶段。图10–6给出了1ms的中断服务程序的程序流程图,请读者按照题目要求以及参照例10–1(1)的程序和图10–6的中断服务程序流程图编制程序,注意比较转移指令CJNE的
功能和应用。18191920(2)双缓冲方式多路的D/A转换要求同步输出时,必须采用双缓冲同步方式。此方式工作时,数字量的输入锁存和D/A转换输出是分两步完成的。单片机必须通过来锁存待转换的数字量,通过来启动D/A转换(见图10-2)。图10–7的1
#和2#DAC0832工作在双缓冲方式下,51单片机可以实现分时执行两个8位数据的写操作,同时完成一次D/A转换,适用于要求同步输出多个模拟量的场合。20LE1LE2212122(3)直通工作方式根据图10–2,如果将DAC0832的ILE接+5V,、、和直接与系统的数字地连接,DI0~D
I7直接与51单片机的P1口连接,则8位DAC寄存器和8位输入寄存器处于输入数据与输出数据直通状态,51单片机P1口输出的数据直接传输到8位D/A转换电路进行D/A转换,输出模拟信号。22CS1WR2WRXFER2310.1.351单片机与D
AC1208的接口与编程DAC1208数模转换器是美国国家半导体公司生产的一种电流输出型高速并行D/A转换器,分辨率:12位,转换时间:1μs,功耗20mw。由于其片内有输入数据寄存器,能够与51单片机接口连接。1.DAC1208内部
结构DAC1208内部结构图如图10–8所示,由一个8位输入锁存器、一个4位输入锁存器、一个12位DAC寄存器和一个12位D/A转换器构成,与DAC0832结构相似,都能够连接成两级输入锁存的双缓冲方式或一级输
入锁存的单缓冲方式,或完全直通的无缓冲方式。232424252.DAC1208的引脚功能DAC1208的标准双列直插式芯片为24引脚,如图10–9所示。各引脚功能如下:2526(3):字节顺序控制信号。当=1,则8位和4位两个输入锁存器都被选中;当=0,则只选中4位输入锁存
器。(4):写信号,低电平有效,当信号变高电平时,8位和4位输入锁存器都进入锁存状态。(5):写信号,低电平有效。(6):数据传送控制信号,低电平有效,与配合。当=0,=0时,把8位和4位两个输入锁存器组成的12位待转换的数据传入12位D/A寄存器中。261/2BYTEBYTE1/2BYTEB
YTE1/2BYTEBYTE1WR2WRXFER2WRXFER2WR(1)DI11~DI0:12位数据输入引脚。(2):片选端,低电平有效,8位和4位输入锁存器被选中。CS27(7):D/A转换器电流输出1端,输入数字量全为“1”时,最大,输入数字量全为“0”时,最小。(8):D/A转换器电流
输出2端。(9):外部反馈信号输入端,为外部运算放大器提供一个反馈电压。根据需要还可以外接另外一个反馈电阻。(10):电源输入端,在+5V~+15V范围内。(11):参考电压输入,在–10V~+10V范围内。(12)GND:信号地。271OUTI1
OUTI2OUTIfbRCCVREFV283.DAC1208与51单片机的接口电路及转换方法图10–10为DAC1208与51单片机的接口电路图。假设单片机地址总线与DAC1208地址的无关位取0,则DAC1208的高8位输入锁存器地址为600
0H,低4位输入锁存器地址为4000H,12位DAC寄存器地址为8000H,采用双缓冲方式编程,先送高8位数据DI11~DI4,再送入低4位数据DI3~DI0,在12位数据分别写入两个输入锁存器后,再打开12位DAC寄存器,进行D/A转换。282929例10
–2根据图10–10,假设待转换的12位数字量高8位存放在30H,低4位数据存放在31H,试编写相应的D/A转换子程序。30303110.2A/D转换器接口在微处理器应用系统中,常常需要对物理量的模拟信号如电压、电流等进行采集和处理,需要把模拟信号转换成数字信号,微处理器才
能够进行数据处理,A/D转换器(AnalogtoDigitalConverter,简称ADC)能够实现这一功能。A/D转换器按分辨率分为4位、8位、10位、12位、14位、16位和输出BCD码的位、位等。按照转换速度大致可分为超高速(转换时间≤1ns),次超高速(转换时间≤1μs),高速
(转换时间≤330μs),中速(≤1ms),低速(转换时间≤1s)等。A/D转换器按照转换原理可分为逐次比较型A/D转换器、双积分型A/D转换器、并行比较型/串并行型、Σ-Δ调制型等,目前最常用的是逐次比较型A/D转换器、双积分型A/D转换器
。311321523210.2.1A/D转换器原理1.逐次比较型A/D转换器工作原理3233以8位逐次比较型A/D转换器为例,其内部结构如图10–11所示。它由8位寄存器、8位D/A转换器、电压比较器、控制逻辑和三态锁存缓冲器等部分组成。8位寄存器:存放8位二进制数码。当模拟量VIN送入电压比较
器后,启动信号有效,通过控制逻辑电路启动A/D转换,在时钟脉冲信号CLK的作用下进行A/D转换。首先,将8位寄存器清零,然后置其最高位(D7)为1,8位寄存器输出为10000000B,8位寄存器的内容经D/A转换器转换为相应的模拟电压VN,并与模拟输入电压VI
N进行比较,如果VIN>=VN,则8位寄存器中最高位的1保留,否则就将最高位清零。33然后,再使次高位(D6)置1,进行相同的过程直到8位寄存器中所有位都被确定,控制逻辑输出EOC=1,转换过程结束,8位寄存
器中的二进制数码就是A/D转换的结果,在OE信号的作用下,A/D转换的结果通过三态锁存缓冲器输出到微处理器的数据总线。逐次比较型A/D转换器是一种转换速度较高(转换时间大约在几微秒到几百微秒之间)、精度较高、功耗低的转换器。342.双积分型A/D
转换器的转换原理双积分型A/D转换器的电路原理如图10–12所示,由电子开关S、标准电压源VREF、积分器、比较器、计数器和控制逻辑等部件组成。双积分型A/D转换的原理:进行一次A/D转换需要二次积分。转换时,首先:控制
逻辑通过电子开关S把被测电压VIN加到积分器的输入端,积分器从零开始,在固定的时间T内对VIN积分,这个积分过程被称为定时积分,积分输出终值与VIN成正比。接着,控制逻辑将电子开关切换到极性与VIN相反的基准电压VREF上进行反向积分,由于基准电压VREF恒定,因此积分输
出将按T期间积分的值以恒定斜率下降,当比较器检测积分输出为零时,积分器停止工作,这个积分过程被称为定值积分。对标准电压VREF的反相积分时间T1与定值积分的初值成比例关系,即T1正比于输入模拟电压VIN。3435图
10–12(b)给出了两种不同输入电压(VIN>=)的积分情况,在T定时积分期间积分器输出的终值小,而定值积分下降斜率相同,因此定值积分时间T2也小。利用计数器对时钟脉冲的个数进行计数来测量定值积分时间T1(或T2),即可得到对应于模拟电压VIN的数字
量。35'INV'INV'INV363.A/D转换器的主要技术指标(1)分辨率ADC的分辨率:使输出数字量变化一个相邻数码所需输入模拟电压的变化量。分辨率是衡量A/D转换器能够分辨出输入模拟量最小变化程度的技术指标。分辨
率取决于A/D转换器的位数,习惯上用输出的二进制位数表示。例如,12位A/D转换器的满量程输入电压为5V,可输出12位二进制数,即用个数进行量化,其分辨率为1LSB,或者说A/D转换器能分辨出输入电压1.22mV的变化。3637(2)转换速率和
转换时间ADC的转换时间:完成一次A/D转换所需的时间(包括稳定时间)。转换速率:转换时间的倒数,即每秒转换的次数。(3)转换精度ADC的转换精度:定义为一个实际的A/D转换器与一个理想A/D转换器在量化值上的差值,可用绝对误差或相
对误差表示。373810.2.251单片机与ADC0809的接口ADC0809:逐次比较型A/D转换器,8位分辨率,采用单电源+5V供电,片内具有8路模拟开关,可对8路输入模拟电压实现分时转换,转换时间约为100μs,片内带有三态输出锁存器,可直接与51单片机
的数据总线相连接。1.ADC0809的内部逻辑结构ADC0809的内部逻辑结构如图10–13所示,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个8位A/D转换器和一个三态输出锁存器组成。383939408路模拟开关可以对8路
模拟输入通道选择1路模拟输入信号进行A/D转换,由C、B、A输入的地址值译码决定所选择的A/D转换的模拟输入通道。地址锁存器与译码电路完成对C、B、A的3个地址位的锁存和译码,三态输出锁器用于锁存A/D转换完的数字量,当EOC端为高电平时,表明一次A/D转换已完成,
51单片机可以从ADC0809的三态输出锁存器读出转换完的数据。40412.ADC0809的引脚双列直插式封装的ADC0809芯片为28引脚,如图10–14所示。主要引脚功能如下:(1)D7~D0:8位数字量输出引脚。(
2)IN7~IN0:8位模拟量输入引脚。电压范围为0~5V,若信号过小还需进行放大。另外输入的模拟量在A/D转换过程中应保持不变,因此对变化速度较快的模拟量,在输入前应增加采样保持电路。(3)VCC:+5V工作电压。GND:地。(4)VR(+)、VR(–):基准电压正负端,
用来与输入的模拟信号进行比较,作为逐次比较型A/D转换器的基准电压。4142(5)START:A/D转换启动信号输入引脚,正脉冲启动ADC0809,对由C、B、A选中模拟通道输入信号进行转换。(6)ALE:地址锁存允许信号输入引脚,上升沿将C、B、A地址信号锁
存到地址锁存器。(7)EOC:转换结束信号输出引脚,启动转换时为低电平,当转换结束时为高电平。(8)OE:输出允许控制信号输入引脚,高电平时打开三态输出缓冲器,使转换后的数字量从D7~D0引脚输出。(9)CLK:时钟信号输入引脚,ADC0809内部没有时钟电路,所需的时钟信号由外部提供。时钟频率
越高,A/D转换速度越快。(10)C、B、A:模拟通道选择的地址输入引脚,其取值为111~000,分别对应IN7~IN0。424343443.ADC0809与51单片机的接口电路设计ADC0809与51单
片机的接口电路如图10–15所示,ADC0809的通道选择线C、B、A分别与锁存器74LS373输出的低8位地址总线的A2、A1、A0连接。ADC0809的CLK引脚经由74LS74触发器构成的二分频电路与单片机的ALE引脚连接。假设单片机的振荡频率为6MHz,单片机引脚ALE输出1MHz
信号,则ADC0809的CLK引脚的输入频率为500KHz。ADC0809芯片的引脚没有片选信号端,其芯片最高地址的确定采用了一种特殊的方法予以解决。图10–15中,ADC0809的ALE输入引脚和START引脚并联再
与一个或非门的输出端连接,该或非门的两个输入端分别与51单片机的和P2.7引脚连接,P2.7为“0”:信号对ADC0809才是有效的写信号,信号能够将C、B、A地址值锁存,并按照该地址译码值选中的模拟通道输入信号启动转换;同理,P
2.7为“0”:信号对ADC0809才是有效的读信号。模拟输入通道IN7~IN0的地址分别为7FFFH~7FF8H(地址无关位置1)。44CSWRWRWRRD454574LS373174742LSA7..
.CBASTARTALEOEEOCCLKIN7IN6IN5IN4IN3IN2IN1IN0VR(+)VR(-)基准电压8路模拟输入单片机ADC080911D7D0~8A2A1A0QQDCKGOERDW
RP2.7P0.7P0.0~ALE图10–15ADC0809与51单片机的接口电路图10–15的这种接口电路连接方法中,两个或非门的各自一个输入端并联与P2.7连接作为ADC0809的最高地址位,则8路模拟输入通道IN7~
IN0的地址分别为:7FFFH~7FF8H(地址无关位置1)。4651单片机读取ADC0809转换后数据的两种方式(1)程序查询方式:将ADC0809的EOC端与单片机的某个I/O端口连接,首先由单片机发出A/D转换器的启动信号,然后单片机通过程序不断
读取EOC端的状态,判断EOC状态,如果EOC为“1”,表示转换结束,从A/D转换器读取转换后的数据,如果EOC为“0”,表示转换未完成,继续查询。(2)中断方式:把转换完成的状态信号EOC作为中断请求信号,采取中
断方式进行数据传送。如在图10–15中,ADC0809的EOC输出端增加一个非门与单片机的引脚连接,当A/D转换结束后,EOC状态由0→1时,向单片机发出中断请求信号,单片机响应中断,在中断服务程序中将A/D
转换的结果读出传输给累加器A,然后再启动下一次A/D转换。46INT047例10–3在图10–15中,将ADC0809的EOC端经过一个非门和单片机的引脚连接。采用中断方式对ADC0809的IN0路模拟信号进行采样一次,并把转换结果存储在
A中。ORG0000HAJMPMAINORG0003HAJMPLINT0;EOC由0→1中断请求,单片机响应中断ORG0030HMAIN:MOVDPTR,#7FF8H;将IN0路的地址值→DPTRSETBIT0;置为边沿触发SETBEASETBEX0;允许中断MOVX@DPTR,A;
执行该指令,P2.7=0,产生信号,;ALE和START信号有效,启动IN0路;A/D转换。A中的值可以是任意值。SJMP$;等待中断47INT0INT0INT0WR48LINT0:MOVDPTR,#7FF8HMOVXA,@DPTRMOVX@DPTR,A;再次启动对IN0路的A/D转换RETI
例10–4在数据处理和测控系统中,经常需要对多路模拟信号进行定时采样,在图10–15中,将ADC0809的EOC输出端增加一个非门与单片机P1.0引脚连接,采用定时100ms的中断方式对ADC0809的8路模拟信号进行
巡回采样一次,而每一路模拟信号的采样应用查询方式,并把每次8路转换结果按照顺序存储在51单片机内部RAM的30H~37H单元中。设51单片机时钟振荡频率为6MHz。分析:根据例10–4的要求,T0定时中断服务程序流程图如图10–16所示。主程序的初始化程序中主要完成T0的初始化,开T
0的中断和启动T0定时。按照图10–6的T0定时中断服务程序流程图编写T0定时中断服务程序。48494950TIME0:PUSHACCMOVTL0,#0B0HMOVTH0,#3CH;重置T0定时初值MOVDPTR,#7FF8H
;选中IN0通道MOVR1,#30H;置数据存储区首地址MOVR7,#08H;置通道数LOOP:MOVX@DPTR,A;启动A/D转换TEST:JBP1.0,TEST;判断转换是否已完成MOVXA,@DPTR;转换结束,读入转换结果MOV@R1,A;存入内
部RAM存储区INCDPTR;指向下一个通道INCR1;修改地址指针,指向下一个;采集通道存放数据的地址DJNZR7,LOOP;判断8个通道是否转换完成POPACCRETI505110.2.351单片机与AD574的接口AD574是AnalogDevic
es公司生产的12位逐次比较型快速A/D转换器,转换时间≤35s,转换精度≤0.05%。可进行12位或8位转换,可以一次输出转换好的12位数据,也可分两次输出,先高8位输出,后低4位输出。内部有三态输出缓冲
电路,输出电平与TTL和CMOS电平兼容,无须外加时钟电路,适合在高精度快速数据采集系统中使用。51521.AD574的引脚功能(1):片选信号,低电平有效。(2)CE:片允许信号,高电平有效。(3):读出/转换控制信号。当CE=1、=0、=0时启动A/D转换;当CE
=1、=0、=1时,可以读出A/D转换结果。(4):数据输出格式选择端,当=1时,12位数据同时输出;当=0时,A/D转换结果分两次输出,先高8位输出,后低4位输出,该引脚信号与A0引脚配合使用,引脚只能接VCC或GND。52CS/R
CCS/RC/RCCS12/812/812/853(5)A0:字节选择控制线。A0=1,8位A/D转换,完成一次A/D转换的时间是10s;A0=0,12位A/D转换,完成一次A/D转换的时间是35s。当=0时,在读出A/D转换结果期间,A0=0读出
高8位数据,A0=1读出低4位数据。两次读出的12位数据遵循左对齐原则,12位数据排列如表10–1所示。5312/8545455(6)电源线VL:数字逻辑电源+5V;VCC:+12V~+15V电源线;VEE:–15V~–12V电源
线;REFOUT:参考电压输出;REFIN:参考电压输入。AGND和DGND:模拟信号地和数字信号地。(7)BIPOFF:双极性偏差调整,用于调零。(8)10Vin和20Vin:模拟信号输入引脚。单极性输入时,允许输入的信号范
围为0~+10V或0~+20V;双极性输入时,允许输入的信号范围为–5~+5V或者–10~+10V。(9):转换结束信号,转换时为高电平,当转换结束时为低电平。55STS562.51单片机与AD574的接口设
计AD574工作在双极性输入方式时与51单片机的接口电路如图10–18所示,可实现对−5V~+5V或−10V~+10V模拟信号进行转换。图10–18中电位器R2用于调整双极性输入电路的零点,10VIN引脚输入−5V~+5V模拟信号,20VIN引脚输入−10V~+10V模拟信号。双极性输入时,输出的
转换结果D与模拟输入电压VIN之间的关系为:或5622048(1)INFSVDV(1)20482FSINVDV57其中VFS为满量程电压。上式求出的D为12位偏移二进制码,把D的最高位求反便得到补码,补码对应输入模拟量的符号和大小。例如,当模拟信号从10
VIN引脚输入,VFS=10V,若读得D=FFFH,即111111111111B=4095,代入上式,可求得VIN=4.9976V。A/D转换结果的高8位从DB11~DB4输出,低4位从DB3~DB0输出,即A0=0时,
读取结果的高8位;当A0=1时,读取结果的低4位。遵循左对齐的原则,DB3~DB0应接单片机的P0.7~P0.4。57585859例10–5根据图10–18接口电路,采用查询方式编写A/D转换程序,并把转换结果的12位数字量高8位存入单片机内部RAM的30H单元,低4位存入31H单元,遵循左
对齐原则。图10–18中,P0.2、P0.1和P0.0通过地址锁存器与AD574的、A0和连接,因此,51单片机对AD574的12位数据采集的操作处理过程如下:(1)启动转换。=0,A0=0且=0,则按12位转换,地址线无关位置1,则12位A/D转换的地址为11111111111110
00B=FFF8H。59CS/RCCS/RC60(2)读取转换结果。=0,A0=0,=1时读高8位,A0=1时读低4位,因而,读高8位数据的地址为FFF9H,读低4位数据的地址为FFFBH。(3)P1.0用于单片机查询A/D转换是否结束。AD574:MOVDPTR,#0F
FF8HMOVX@DPTR,A;启动AD574进行转换SETBP1.0;置P1.0为1,为读取P1.0输;入状态作准备LOOP:JBP1.0,LOOP;查询转换是否结束60CS/RC61INCDPTR;读高8位数据的地址→DPTR,准备读取结果MOVXA
,@DPTR;=1,读取高8位转换结果MOV30H,A;高8位转换结果存入30H单元INCDPTRINCDPTR;使=1,A0=1,;读低4位数据的地址→DPTRMOVXA,@DPTR;=1,A0=1,;读取低4位转换结果ANLA,#0F0HM
OV31H,A;低4位转换结果存入31H单元RET61/RC/RC/RC62习题10–1什么是A/D转换和D/A转换?为何要进行转换?各在什么应用情况下使用?10–2简述D/A转换器的主要性能指标,设某二进制12位
的DAC满量程输出电压为5V,试问它的分辨率是多少?10–3说明DAC0832的单缓冲、双缓冲和直通工作方式的接口电路、工作过程与特点。10–4上网查询,说明目前应用较广泛的A/D转换器主要有哪几种类型。10–5ADC0809器件有哪些主要技术指标?其含义是什么?10–6等待A/D转换
结束有哪几种方式?各有何特点?10–7DAC和ADC的主要技术指标中,量化误差、分辨率和精度有何区别?10–8按照图10–4,设51单片机晶振为6MHZ,要求DAC0832输出周期为10ms的方波,方波上限电平数据
为data1,下限电平数据为data2,请应用定时器中断5ms的方法编制程序。63习题10–9在图10–7中,如果译码器是74LS138,其C、B、A输入端分别与51单片机的P2.6、P2.5、P2.4连接,74LS138的与1#DAC0832的
连接,与1#和2#DAC0832的连接,与2#DAC0832的连接,写出1#和2#DAC0832的8位输入寄存器的地址,1#和2#DAC0832的8位DAC寄存器的地址,并绘制电路图。10–10应用ADC0809设计一个与51单片机接口的采用译码法编址的电路,每隔5秒对8个模拟通道各采样一次
,将采样结果保存在内部RAM的30H开始单元。画出原理图并编制采样程序。0YCS1YXFER2YCS