C51单片机与DA转换器AD转换器的接口.ppt

上传人:牧羊曲112 文档编号:6502455 上传时间:2023-11-07 格式:PPT 页数:85 大小:1.15MB
返回 下载 相关 举报
C51单片机与DA转换器AD转换器的接口.ppt_第1页
第1页 / 共85页
C51单片机与DA转换器AD转换器的接口.ppt_第2页
第2页 / 共85页
C51单片机与DA转换器AD转换器的接口.ppt_第3页
第3页 / 共85页
C51单片机与DA转换器AD转换器的接口.ppt_第4页
第4页 / 共85页
C51单片机与DA转换器AD转换器的接口.ppt_第5页
第5页 / 共85页
点击查看更多>>
资源描述

《C51单片机与DA转换器AD转换器的接口.ppt》由会员分享,可在线阅读,更多相关《C51单片机与DA转换器AD转换器的接口.ppt(85页珍藏版)》请在三一办公上搜索。

1、第11章 89C51单片机与D/A转换器、A/D转换器的接口,非电物理量(温度、压力、流量、速度等),须经传感器转换成模拟电信号(电压或电流),必须转换成数字量,才能在单片机中处理。,A/D转换器(ADC):模拟量数字量的器件。D/A转换器(DAC):数字量模拟量的器件。,数字量,也常常需要转换为模拟信号。,只需合理选用商品化的大规模ADC、DAC芯片,了解引脚及功能以及与单片机的接口设计。,11.1 89C51与DAC的接口,11.1.1 D/A转换器概述,1.概述,输入:数字量,输出:模拟量。转换过程:送到DAC的各位二进制数按其权的大小转换为相应的模拟分量,再把各模拟分量叠加,其和就是D

2、/A转换的结果。,使用D/A转换器时,要注意区分:,*D/A转换器的输出形式;,*内部是否带有锁存器。,(1)D/A转换器的两种输出形式,两种输出形式:电压输出形式与电流输出形式。电流输出的D/A转换器,如需模拟电压输出,可在其输出端加一个I-V转换电路。,(2)D/A转换器内部是否带有锁存器,由于D/A转换需要一定的时间,在这段时间内D/A转换器输入端的数字量应保持稳定,为此应当在D/A转换器数字量输入端的设置锁存器。目前的D/A转换器内部大多带有锁存器,有的还具有双重或多重数据缓冲电路。,2.主要技术指标,(1)分辨率,输入给DAC的单位数字量变化引起的模拟量输出的变化,通常定义为输出满刻

3、度值与2n之比。显然,二进制位数越多,分辨率越高。,例如,若满量程为10V,根据定义则分辨率为10V/2n。设8位D/A转换,即n=8,分辨率为10V/2n=39.1mV,该值占满量程的0.391%,用1LSB表示。,同理:10位 D/A:1 LSB=9.77mV=0.1%满量程12位 D/A:1 LSB=2.44mV=0.024%满量程,根据对DAC分辨率的需要,来选定DAC的位数。,(2)建立时间,描述DAC转换快慢的参数,表明转换速度。定义:为从输入数字量到输出达到终值误差(1/2)LSB(最低有效位)时所需的时间。电流输出时间较短,电压输出再加上I-V转换时间,因此建立时间要长一些。快

4、速DAC可达1s以下。,(3)精度,理想情况,精度与分辨率基本一致,位数越多精度越高。但由于电源电压、参考电压、电阻等各种因素存在着误差,精度与分辨率并不完全一致。,位数相同,分辨率则相同,但相同位数的不同转换器精度会有所不同。例如,某型号的8位DAC精度为0.19%,另一型号的8位DAC精度为0.05%。,11.1.2 AT89C51与8位DAC0832的接口,1.DAC0832芯片介绍,(1)DAC0832的特性,美国国家半导体公司产品,具有两个输入数据寄存器的8位DAC,能直接与89C51单片机相连。主要特性如下:,*分辨率为8位;,*电流输出,稳定时间为1s;,*可双缓冲输入、单缓冲输

5、入或直接数字输入;,*单一电源供电(+5+15V);,(2)DAC0832的引脚及逻辑结构,引脚:,图11-1,DAC0832的逻辑结构:,图11-2,引脚功能:,DI0DI7:8位数字信号输入端,CS*:片选端。,ILE:数据锁存允许控制端,高电平有效。,WR1*:输入寄存器写选通控制端。当CS*=0、ILE=1、WR1*=0时,数据信号被锁存在输入寄存器中。,XFER*:数据传送控制。,WR2*:DAC寄存器写选通控制端。当XFER*=0,WR2*=0 时,输入寄存器状态传入DAC寄存器中。,IOUT1:电流输出1端,输入数字量全“1”时,IOUT1最大,输入数字量全为“0”时,IOUT1

6、最小。,IOUT2:D/A转换器电流输出2端,IOUT2+IOUT1=常数。Rfb:外部反馈信号输入端,内部已有反馈电阻Rfb,根据需要也可外接反馈电阻。Vcc:电源输入端,可在+5V+15V范围内。DGND:数字信号地。AGND:模拟信号地。“8位输入寄存器”用于存放CPU送来的数字量,使输入数字量得到缓冲和锁存,由LE1*控制;“8位DAC寄存器”存放待转换的数字量,由LE2*控制;“8位D/A转换电路”由T型电阻网络和电子开关组成,T型电阻网络输出和数字量成正比的模拟电流。因此,DAC0832通常需要外接I-V转换的运算放大器电路,才能得到模拟输出电压。,2.AT89C51与DAC083

7、2的接口电路设计 设计AT89C51单片机与DAC0832的接口电路时,常用单缓冲方式或双缓冲方式的单极性输出。(1)单缓冲方式 DAC0832的两个数据缓冲器有一个处于直通方式,另一个处于受控的锁存方式。在不要求多路输出同步的情况下,可采用单缓冲方式。单缓冲方式的接口如图11-3:,图11-3,图11-3中,WR2*和XFER*接地,故DAC0832的“8位DAC寄存器”(见图11-2)处于直通方式。“8位输入寄存器”受CS*和WR1*端控制,且由译码器输出端FEH送来(也可由P2口的某一根口线来控制)。因此,89C51执行如下两条指令就可在WR1*和CS*上产生低电平信号,使0832接收8

8、9C51送来的数字量。,MOVR0,#0FEH;DAC地址FEHR0,MOVX R0,A;WR*和译码器FEH输出端有效,现说明DAC0832单缓冲方式的应用。,例11-1 DAC0832用作波形发生器。试根据图11-3,分别写出产生锯齿波、三角波和矩形波的程序。,锯齿波的产生,ORG 2000H,START:MOV R0,#0FEH;DAC地址FEH R0,MOV A,#00H;数字量A,LOOP:MOVX R0,A;数字量D/A转换器,INC A;数字量逐次加1,SJMP LOOP,图11-4,输入数字量从0开始,逐次加1,为FFH时,加1则清0,模拟输出又为0,然后又循环,输出锯齿波,如

9、图11-4。,每一上升斜边分256个小台阶,每个小台阶暂留时间为执行后三条指令所需要的时间。,三角波的产生,ORG 2000H,START:MOV R0,#0FEH,MOV A,#00H,UP:MOVXR0,A;三角波上升边,INC A,JNZ UP,DOWN:DEC A;A=0时再减1又为FFH,MOVX R0,A,JNZ DOWN;,三角波下降边,SJMP UP,矩形波的产生,ORG 2000H,START:MOV R0,#0FEH,LOOP:MOV A,#data1,MOVX R0,A;置矩形波上限电平,LCALL DELAY1;调用高电平延时程序,MOV A,#data2,图11-5,

10、MOVX R0,A;置矩形波下限电平,LCALL DELAY2;调用低电平延时程序,SJMP LOOP;重复进行下一个周期,DELAY1、DELAY2为两个延时程序,决定矩形波高、低电平时的持续时间。频率也可采用延时长短来改变。,图11-6,(2)双缓冲方式,多路同步输出,必须采用双缓冲同步方式。接口电路如图11-7:,1#DAC0832因和译码器FDH相连,占有两个端口地址FDH和FFH。,2#DAC0832的两个端口地址为FEH和FFH。其中,FDH和FEH分别为1#和2#DAC0832的数字量输入控制端口地址,而FFH为启动D/A转换的端口地址。,图11-7中DAC输出的VX和VY信号要

11、同步,控制X-Y绘图仪绘制的曲线光滑,否则绘制的曲线是阶梯状。控制程序如下:,图11-7,例11-2 设AT89C51单片机内部RAM中有两个长度为20的数据块,其起始地址为分别为addr1和addr2,请根据图11-7所示,编写能把addr1和addrr2中数据从1#和2#DAC0832同步输出的程序。程序中addr1和addr2中的数据,即为绘图仪所绘制曲线的x、y坐标点。,DAC0832各端口地址:FDH:1#DAC0832数字量输入控制端口FEH:2#DAC0832数字量输入控制端口FFH:1#和2#DAC0832启动D/A转换端口,工作寄存器0区的R1指向addr1;1区的R1指向a

12、ddr2;0区的R2存放数据块长度;0区和1区的R0指向DAC端口地址。程序为:,ORG 2000H,addr1 DATA 20H;定义存储单元addr2 DATA 40H;定义存储单元,DTOUT:MOV R1,#addr;0区R1指向addr1,MOV R2,#20;数据块长度送0区R2,SETB RS0;切换到工作寄存器1区,MOV R1,#addr2;1区R1指向addr2,CLR RS0;返回0区,NEXT:MOV R0,#0FDH;0区R0指向1#DAC0832数;字量控制端口,MOV A,R1;addr1中数据送A,MOVX RO,A;addr1中数据送1#DAC0832,INC

13、 R1;修改addr1指针0区R1,SETB RS0;转1区。,MOV R0,#0FEH;1区R0指向2#DAC0832数字量;控制端口,MOV A,R1;addr2中数据送A,MOVX R0,A;addr2中数据送2#DAC0832,INC R1;修改addr2指针1区R1,INC R0;1区R0指向DAC的启动D/A转换端口,MOVX R0,A;启动DAC进行转换,CLR RS0;返回0区,DJNZ R2,NEXT;若未完,则跳NEXT,LJMP DTOUT;若送完,则循环,END,3DAC0832的单、双极性的电压输出有些应用场合需要DAC0832为单极性模拟电压输出,而有些场合则要求D

14、AC0832双极性模拟电压输出,下面简单介绍。(1)DAC用作单极性电压输出。在需要单极性模拟电压环境下,可以按照图11-3所示接线。由于DAC0832是8位的D/A转换器,由基尔霍夫定律列出方程组,故可得输出电压vo与输入数字量B的关系为式中,B=27b7+26b6+21b1+20b0;VREF/256为一常数。显然,vo和输入数字量B成正比。B为0时,vo也为0,输入数字量为255时,vo为最大值,输出电压为单极性。,(2)DAC用作双极性电压输出。在需双极性电压输出的场合下,可以按照图11-8所示接线。图中,DAC0832的数字量由单片机送来,A1和A2均为运算放大器,vo通过2R电阻反

15、馈到运算放大器A2输入端,其他如图11-8所示。G点为虚拟地,可由基尔霍夫定律列出方程组,并解得由上式可知,在选用+VREF时,若输入数字量最高位b7为“1”,则输出模拟电压vo为正;若输入数字量最高位为“0”,则输出模拟电压vo为负。在选用-VREF时,vo输出值正好和选用+VREF时极性相反。,图11-8,11.1.3 89C51与12位电压输出型D/A转换器AD667的接口设计8位DAC分辨率不够,可采用10位、12位、14位、16位的DAC。本节介绍89C51与12位D/A转换器AD667的接口设计。AD667是分辨率为12位的电压输出型D/A转换器,建立时间3s(至0.01%)。输入

16、方式:双缓冲输入;输出方式:电压输出,通过硬件编程可输出+5V,+10V,2.5V,5V和10V;内含高稳定的基准电压源可方便地与4位、8位或16位微处理器接口;双电源工作电压:12V15V。,1.引脚介绍标准28脚双列直插式。图11-9为引脚图,表11-1为其引脚说明。(1)内部功能结构及应用特性图11-10是AD667内部功能结构框图。应用特性:模拟电压输出范围的配置AD667通过片外引脚的不同连接,可获得不同的输出电压量程范围。单极性工作时,可以获得05V和010V的电压。双极性工作时,可获得2.5V,5.5V和10V的电压。具体量程配置可由引脚1,2,3,9的不同连接实现,如表11-2

17、所列。,图11-9,图11-10,由于AD667内置的量程电阻与其他元器件具有热跟踪性能,所以AD667的增益和偏置漂移非常小。,单极性电压输出 图11-11为010V单极性电压输出电路原理图。在电路运行之前,为保证转换精度,首先要进行电路调零和增益调节。电路调零 数字输入量全为“0”时,调节50k电位器W1,使其模拟电压输出端(VOUT)电压为0.000V。在大多数情况下,并不需要调零,只要把4脚与5脚相连(接地)即可。增益调节 数字输入量全为“1”时,调节100电位器W2,使其模拟电压输出为9.9976V,即满量程的10.000V减去1LSB(约为2.44mV)所对应的模拟输出量。,图11

18、-11,双极性电压输出 图11-12是-5V+5V双极性电压输出。在电路运行之前,为保证转换精度,首先要进行偏置调节和增益调节。,图11-12,内部/外部基准电压源的使用 AD667有内置低噪声基准电源,其绝对精度和温度系数都是通过激光修正的,具有长期的稳定性。片内基准电源可提供片内D/A转换器所需的基准电流,典型值为VREFIN端提供的0.5mA,BPOFF(Bipolar Offset)端提供的1.0mA。接地与动态电容的接法 模拟地AGND与电源地PGND分开,可以减少器件的低频噪声和增强高速性能。把地回路分开的目的是为了尽量减少低电平信号路径中的电流。AGND是输出放大器中的地端,应与

19、系统中的模拟地直接相连。,电源地PGND可以与模拟电源的接地点就近连接。最后AGND与PGND在一点上进行连接,一般连接到电源地PGND上。另外,AD667的电源引脚到模拟地引脚间应加上适当的去耦电容。在输出放大器反馈电阻两端加一个20pF的小电容,可以明显改善输出放大器的动态性能。数字输入控制与数据代码AD667的总线接口逻辑由4个独立的可寻址锁存器组成,其中有3个4位的输入数据锁存器(第一级锁存器)和1个12位的DAC锁存器(第二级锁存器)。利用3个4位锁存器可以直接从4位、8位或16位微处理器总线分次或一次加载12位数字量;一旦数字量被装入12位的输入数据锁存器,就可以把12位,数据传入

20、第二级的DAC锁存器,这种双缓冲结构可以避免产生错误的模拟输出。4个锁存器由4个地址输入A0A3和控制,所有的控制都是低电平有效,对应关系如表11-3所列。所有锁存器都是电平触发,当控制信号有效时,锁存器输出跟踪输入数据;当控制信号无效时,数据就被锁存。它允许一个以上的锁存器被同时锁存。建议任何未使用的数据和控制引脚最好与电源地相连,以改善抗噪声干扰特性。AD667使用正逻辑编码。,单极性输出时,输入编码采用直接二进制编码,输入000H产生 零模拟输出;输入FFFH产生比满量程少1LSB的模拟输出。,双极性输出时,输入编码采用偏移二进制编码。输入为000H时,产生负的满量程输出;输入为FFFH

21、时,产生比满量程少1LSB的模拟输出;输入为800H时,模拟输出为0。其中1LSB为最低位对应的模拟电压。双极性输出时输入与输出关系如图11-13所示,输入数字量N与输出模拟电压VOUT的关系为:式中,VR为输出电压量程。,图11-13,与微处理器的接口数据格式AD667与位微处理器接口的数据格式为左对齐或右对齐的数据格式。2AD667与89C51单片机的接口图11-14所示为AD667与89C51单片机接口电路。,图11-14,AT89C51把AD667所占的3个端口地址视为外部数据存储器的3个单元,对其进行选通。假定低8位数据存于20H单元,高4位数据存入21H的低4位,实现D/A转换的程

22、序如下:MOVA,20HMOVDPTR,#7FFEHMOVXDPTR,A;低8位进第一级锁存器MOVA,21HMOVDPTR,#7FFDHMOVXDPTR,A;高4位进第一级锁存器MOVDPTR,#7FFBHMOVXDPTR,A;启动第二级锁存器RET,11.2 AT89C51单片机与ADC的接口11.2.1 A/D转换器概述 A/D转换器(ADC)的作用就是把模拟量转换成数字量,以便于计算机进行处理。随着超大规模集成电路技术的飞速发展,A/D转换器的新设计思想和制造技术层出不穷。为满足各种不同的检测及控制任务的需要,大量结构不同、性能各异的A/D转换芯片应运而生。1A/D转换器简介 尽管A/

23、D转换器的种类很多,但目前广泛应用在单片机应用系统中的主要有以下几种类型:逐次比较型转换器、双积分型转换器、-式转换器。,逐次比较型:精度、速度和价格都适中,是最常用的A/D转换器件。双积分型:精度高、抗干扰性好、价格低廉,但转换速度慢,得到广泛应用。-型:具有积分式与逐次比较式ADC的双重优点。对工业现场的串模干扰具有较强的抑制能力,不亚于双积分ADC,但比双积分ADC的转换速度快,与逐次比较式ADC相比,有较高的信噪比,分辨率高,线性度好不需采样保持电路。因此,-型得到重视。V/F转换型:适于转换速度要求不太高,远距离信号传输。,2.A/D转换器的主要技术指标(1)转换时间和转换速率 完成

24、一次转换所需要的时间。转换时间的倒数为转换速率。(2)分辨率 用输出二进制位数或BCD码位数表示。例如AD574,二进制12位,即用212个数进行量化,分辨为1LSB,百分数表示1/212=0.24。又如双积分式A/D转换器MC14433,分辨率为三位半。若满字位为1999,其分辨率为1/1999=0.05%。,量化过程引起的误差为量化误差,是由于有限位数字对模拟量进行量化而引起的误差。量化误差理论上规定为1个单位分辨率,提高分辨率可减少量化误差。,(3)转换精度,定义为一个实际ADC与一个理想ADC在量化值上的差值。可用绝对误差或相对误差表示。,11.2.2 89C51与ADC 0809(逐

25、次比较型)的接口,ADC0809引脚及功能 逐次比较式8路模拟输入、8位输出的A/D转换器。引脚如图11-15所示。,图11-15,共28脚,双列直插式封装。主要引脚功能如下:,(1)IN0IN7:8路模拟信号输入端。,(2)D0D7:8位数字量输出端。,(3)C、B、A:控制8路模拟通道的切换,C、B、A=000 111分别对应IN0IN7通道。,(4)OE、START、CLK:控制信号端,OE为输出允许端,START 为启动信号输入端,CLK为时钟信号输入端。,VR(+)和VR(-):参考电压输入端。,2.ADC0809结构及转换原理,结构如图11-16。,0809完成1次转换需100s左

26、右,可对05V信号进行转换。,图11-16,3.AT89C51与ADC0809的接口,单片机如何来控制ADC?首先用指令选择0809的一个模拟输入通道,当执行MOVX DPTR,A时,单片机的WR*信号有效,产生一个启动信号给0809的START脚,对选中通道转换。转换结束后,0809发出转换结束EOC信号,该信号可供查询,也可向单片机发出中断请求;当执行指令:MOVX A,DPTR,单片机发出RD*信号,加到OE端高电平把转换完毕的数字量读到A中。,查询和中断控制两种工作方式。,(1)查询方式,0809与89C51单片机的接口如图11-17。,图11-17,ALE脚的输出频率为1MHz,(时

27、钟频率为6MHz),经D触发器二分频为500kHz时钟信号。,0809输出三态锁存,8位数据输出可直接与数据总线相连。,引脚C、B、A分别与地址总线A2、A1、A0相连,选通IN0IN7中的一个。P2.7(A15)作为片选信号,在启动A/D转换时,由WR*和P2.7控制ADC的地址锁存和转换启动,由于ALE和START连在一起,因此0809在锁存通道地址的同时,启动并进行转换。,读取转换结果,用RD*信号和P2.7脚经或非后,产生的正脉冲作为OE信号,用以打开三态输出锁存器。,对8路模拟信号轮流采样一次,采用软件延时的方式,并依次把结果转储到数据存储区。,MAIN:MOV R1,#data;置

28、数据区首地址,MOV DPTR,#7FF8H;端口地址送DPTR,P2.7=0,;且指向通道IN0,MOVR7,#08H;置转换的通道个数,LOOP:MOVX DPTR,A;启动A/D转换,MOVR6,#0AH;软件延时,等待转换结束,DELAY:NOP,NOP,NOP,DJNZR6,DELAY,MOVXA,DPTR;读取转换结果,MOVR1,A;存储转换结果,INCDPTR;指向下一个通道,INCR1;修改数据区指针,DJNZR7,LOOP;8个通道全采样完否?未完则继续,(2)中断方式,将图11-17中EOC脚经一非门连接到8031的INT1*脚即可。转换结束时,EOC发出一个脉冲向单片机

29、提出中断申请,单片机响应中断请求,在中断服务程序读A/D结果,并启动0809的下一次转换,外中断1采用跳沿触发。,程序如下:,INIT1:SETB IT1;外部中断1初始化编程,SETB EA;CPU开中断,SETBEX1;选择外中断为跳沿触发方式,MOVDPTR,#7FF8H;端口地址送DPTR,MOVA,#00H;,MOVXDPTR,A;启动0809对IN0通道转换,;完成其他的工作,中断服务程序:,PINT1:MOV DPTR,#7FF8H;A/D结果送内部RAM单元30H,MOVXA,DPTR,MOV30H,A,MOVA,#00H;启动0809对IN0的转换,MOVXDPTR,A;,R

30、ETI,11.2.3 MCS-51与AD1674(逐次比较型)的接口,在某些单片机应用系统中,8位ADC常常不够,必须选择分辨率大于8位的芯片,如10位、12位、16位A/D转换器,由于10位、16位接口与12位类似,因此仅以常用的12位A/D转换器AD1674为例介绍。,1.AD1674简介 12位逐次比较型。转换时间为25s,转换精度为0.05%,AD574A是AD574的改进产品,AD674A又是AD574A的改进产品。它们的引脚、内部结构和外部应用特性基本相同,但最大转换速度由25s提高到15s。目前带有采样保持器的12位改进型产品AD1674正以其优良的性能价格比逐渐取代AD574A

31、和AD674A。,28脚双列直插式封装,引脚如图11-18。,图11-18,引脚的功能如下:,CS*:片选信号端。,CE:片启动信号。,R/C*:读出/转换控制信号。,12/8*:数据输出格式选择。,1:12条数据线同时输出转换结果,,0:转换结果为两个单字节输出,即只有高8位或低4位有效。,A0:字节选择控制线。分为转换期间、读出期间,在转换期间:,0:进行12位转换(转换时间为25s);,1:进行8位转换(转换时间为16s)。,在读出期间:,0:高8位数据有效;,1:低4位数据有效,中间4位为“0”,高4位为三态。,因此当两次读出12位数据时,12位数据遵循左对齐原则,如下所示:,上述五个

32、控制信号组合的真值表如表11-4所示:,表11-4 AD574控制真值表,STS:转换结束状态引脚。,转换完成时为低电平。可作为状态信息被CPU查询,也可用它的下跳沿向CPU发出中断申请,通知A/D转换已完成,可读取转换结果。,2.AD1674的工作特性,工作状态由CE、CS*、R/C*、12/8*、A0五个控制信号决定,当CE=1,CS*=0同时满足,才处于转换状态。,AD1674处于工作状态时,R/C*=0,启动A/D转换;R/C*=1为数据读出。12/8*和A0端用来控制转换字长和数据格式。A0=0按12位转换方式启动转换;A0=1按8位转换方式启动转换。当AD1674处于数据读出(R/

33、C*=1)状态时,A0和12/8*成为数,据输出格式控制端。12/8*=1对应12位并行输出;12/8*=0对应8位的双字节输出。其中A0=0时输出高8位。A0=1时输出低4位,并以4个0补足尾随的4位。,注意:12/8*端与TTL电平不兼容,故只能直接接+5V或地。另外A0在数据输出期间不能变化。,3.AD1674的单极性和双极性输入特性,图11-19(a)为单极性转换电路,可实现:010V或020V的转换。,图11-19(b)为双极性转换电路,可实现:-5+5V或-10+10V的转换。,图11-19,4.AT89C51单片机与AD1674的接口,图11-20所示AD1674与AT89C51

34、单片机的接口电路。由于AD1674片内含有高精度的基准电压源和时钟电路,从而使AD1674在不需要任何外加电路和时钟信号的情况下完成A/D转换,使用非常方便。该电路采用双极性输入接法,可对-5+5V或-10+10V模拟信号进行转换。也可采用单极性输入接法,具体电路见图11-19(a)。转换结果的高8位从DB11DB4输出,低4位从DB3DB0输出,即A0=0时,读取结果的高8位;当A0=1时,读取结果的低4位。若遵循左对齐的原则,DB3DB0应接单片机的P0.7P0.4。STS引脚接单片机的P1.0引脚,采用查询方式读取转换结果。,图11-20,当单片机执行对外部数据存储器写指令,使CE=1,

35、CS*=0,R/C*=0,A0=0时,启动A/D转换。当单片机查询到P1.0引脚为低电平时,转换结束,单片机使CE=1,CS*=0,R/C*=1,A0=0,读取结果高8位;CE=1,CS*=0,R/C*=1,A0=1,读取结果低4位。转换的查询方式的程序如下(高8位转换结果存入R2中,低4位存入R3中,遵循左对齐原则):,AD1674:MOVR0,0F8H;端口地址送R0 MOVXR0,A;启动AD574A进行转换 SETBP1.0;置P1.0为输入LOOP:NOP JBP1.0,LOOP;查询转换是否结束 NCR0;使R/1,准备读取结果 MOVXA,R0;读取高8位转换结果 MOVR2,A

36、;高8位转换结果存入R2中 INC R0;使R/1,A01 INC R0 MOVXA,R0;读取低4位转换结果 MOVR3,A;低4位转换结果存入R3中,11.2.4 AT89C51与A/D转换器MC14433(双积分型)的接口双积分型转换速度慢,但精度可以做得比较高;对周期变化的干扰信号积分为零,抗干扰性能也较好。常用的有3位双积分A/D转换器MC14433(精度相当于11位二进制数)和4位双积分A/D转换器ICL7135(精度相当于14位二进制数)。MC14433A/D转换器简介MC14433是3位双积分型A/D转换器,优点:精度高、抗干扰 性能好等,缺点:转换速度慢,约1-10次/秒。与

37、国内产品 5G14433完全相同,可互换。被转换电压量程为199.9mV或1.999V。转换结果以BCD码的形式分四次送出。,(1)MC14433的引脚功能说明 MC14433A/D转换器引脚如图11-21:,图11-21,各引脚的功能如下:,(1)电源及共地端,VDD:主工作电源+5V。,VEE:模拟部分的负电源端,接-5V。,VAG:模拟地端。,VSS:数字地端。,VR:基准电压输入端。,(2)外接电阻及电容端,R1:积分电阻输入端,转换电压VX=2V时,R1=470;VX=200mV时,R1=27k。,C1:积分电容输入端,一般取0.1F。,R1/C1:R1与C1的公共端。,CLKI、C

38、LKO:外接振荡器时钟调节电阻RC,RC一般 取470左右。,(3)转换启动/结束信号端,EOC:转换结束信号输出端,正脉冲有效。,DU:启动新的转换,若DU与EOC相连,每当A/D转换结束后,自动启动新的转换。,(4)过量程信号输出端,OR*:当|VX|VR,输出低电平。,(5)位选通控制端,DS4DS1:分别为个、十、百、千位输出的选通脉冲,DS1对应千位,DS4对应个位。每个选通脉冲宽度为18个时钟周期,两个相应脉冲之间间隔为2个时钟周期。如图11-22所示,图11-22,(6)BCD码输出端,Q0Q3:BCD码数据输出线。Q3为最高位,Q0为最低位。,当DS2、DS3和DS4选通期间,

39、输出三位完整的BCD码数,但在DS1(千位)选通期间,输出端Q0Q3除了表示个位的0或1外,还表示被转换电压的正负极性(Q2=1为正)、欠量程还是过量程,具体含义如表11-5所示。,表11-5 DS1选通时Q3Q0表示的结果,由表11-5可知:(1)Q3表示最高位千位(1/2位)。Q3=0对应“1”,反之对应“0”。(2)Q2表示极性。Q2=1为正极性,Q2=0为负极性。(3)Q0=1表示过量程或欠量程。当Q3=0时,表示过量程;当Q3=1时,表示欠量程。,2.MC14433与AT89C51单片机的接口,如图11-23,MC1403(与5G1403相同)为+2.5V精密基准源。DU端与EOC端

40、相连,即选择连续转换方式。EOC:转换结束输出标志。读取A/D转换结果可采用中断方式或查询方式。采用中断方式时,EOC端与AT89C51外部中断输入端INT0*或INT1*相连。采用查询方式EOC端可与任一I/O口线相连。,图11-23,若用中断方式读结果,选用跳沿触发方式。如转换结果存到8031内部RAM的20H、21H单元中,格式如下:,初始化程序开放CPU中断,允许外部中断1中断请求,置外部中断1为跳沿触发方式。,每次A/D转换结束,都向CPU请求中断,CPU响应中断,执行中断服务程序,读取A/D转换的结果。,程序:,图11-24,ORG 001BH,LJMP PINT1;跳外部中断1的

41、中断服务程序,ORG 0100H,INITI:SETB IT1;选择外中断1为跳沿触发方式,MOV IE,84H;CPU开中断,允许外部中断1,PINT1:MOV A,P1;外部中断1服务程序,JNB Acc.4,PINT1;等待DS1选通信号的到来,JB Acc.0,Per;是否过、欠量程,是则转向Per处理,JB Acc.2,PL1;判结果极性,为正,跳PL1,SETB 07H;结果为负,符号位07H置1,AJMP PL2;,PL1:CLR 07H;结果为正,符号位清0,PL2:JB Acc.3,PL3;千位为0,跳PL3,SETB 04H;千位为1,把04H位置1,AJMP PL4;,PL3:CLR 04H;千位为0,把04H位清0,PL4:MOV A,P1;,JNB Acc.5,PL4;等待百位的选通信号DS2,MOV R0,20H;指针指向20H单元,XCHD A,R0;百位20H单元低4位,PL5:MOV A,P1;,JNB Acc.6,PL5;等待十位数的选通信号DS3的到来,SWAP A;读入十位,高低4位交换,INC R0;指针指向21H单元,MOV R0,A;十位数的BCD码送入21H的高4位,PL6:MOV A,P1,JNB Acc.7,PL6;等待个位数选通信号DS4的到来;,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号