您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 哈工大单片机张毅刚课件-第11章
第11章MCS-51与D/A转换器、A/D转换器的接口非电物理量(温度、压力、流量、速度等),须经传感器转换成模拟电信号(电压或电流),必须转换成数字量,才能在单片机中处理。A/D转换器(ADC):模拟量→数字量的器件,D/A转换器(DAC):数字量→模拟量的器件。数字量,也常常需要转换为模拟信号。只需合理选用商品化的大规模ADC、DAC芯片,了解引脚及功能以及与单片机的接口设计。11.1MCS-51与DAC的接口11.1.1D/A转换器概述1.概述输入:数字量,输出:模拟量。转换过程:送到DAC的各位二进制数按其权的大小转换为相应的模拟分量,再把各模拟分量叠加,其和就是D/A转换的结果。使用D/A转换器时,要注意区分:*D/A转换器的输出形式;*内部是否带有锁存器。(1)输出形式两种输出形式:电压输出形式与电流输出形式。电流输出的D/A转换器,如需模拟电压输出,可在其输出端加一个I-V转换电路。(2)D/A转换器内部是否带有锁存器D/A转换需要一定时间,这段时间内输入端的数字量应稳定,为此应在数字量输入端的前设置锁存器,以提供数据锁存功能。根据芯片内是否带有锁存器,可分为内部无锁存器的和内部有锁存器的两类。*内部无锁存器的D/A转换器可与P1、P2口直接相接(因P1口和P2口的输出有锁存功能)。但与P0口相接,需增加锁存器。*内部带有锁存器的D/A转换器内部不但有锁存器,还包括地址译码电路,有的还有双重或多重的数据缓冲电路,可与MCS-51的P0口直接相接。2.主要技术指标(1)分辨率输入给DAC的单位数字量变化引起的模拟量输出的变化,通常定义为输出满刻度值与2n之比。显然,二进制位数越多,分辨率越高。例如,若满量程为10V,根据定义则分辨率为10V/2n。设8位D/A转换,即n=8,分辨率为10V/2n=39.1mV,该值占满量程的0.391%,用符号1LSB表示。同理:10位D/A:1LSB=9.77mV=0.1%满量程12位D/A:1LSB=2.44mV=0.024%满量程根据对DAC分辨率的需要,来选定DAC的位数。(2)建立时间描述DAC转换快慢的参数,表明转换速度。定义:为从输入数字量到输出达到终值误差(1/2)LSB(最低有效位)时所需的时间。电流输出时间较短,电压输出的,加上完成I-V转换的时间,因此建立时间要长一些。快速DAC可达1s以下。(3)精度理想情况,精度与分辨率基本一致,位数越多精度越高。但由于电源电压、参考电压、电阻等各种因素存在着误差。严格讲精度与分辨率并不完全一致。位数相同,分辨率则相同,但相同位数的不同转换器精度会有所不同。例如,某型号的8位DAC精度为0.19%,另一型号的8位DAC精度为0.05%。11.1.2MCS-51与8位DAC0832的接口1.DAC0832芯片介绍(1)DAC0832的特性美国国家半导体公司产品,具有两个输入数据寄存器的8位DAC,能直接与MCS-51单片机相连。主要特性如下:*分辨率为8位;*电流输出,稳定时间为1s;*可双缓冲输入、单缓冲输入或直接数字输入;*单一电源供电(+5~+15V);(2)DAC0832的引脚及逻辑结构引脚:DAC0832的逻辑结构如下:引脚功能:DI0~DI7:8位数字信号输入端CS*:片选端。ILE:数据锁存允许控制端,高电平有效。WR1*:输入寄存器写选通控制端。当CS*=0、ILE=1、WR1*=0时,数据信号被锁存在输入寄存器中。XFER*:数据传送控制。WR2*:DAC寄存器写选通控制端。当XFER*=0,WR2*=0时,输入寄存器状态传入DAC寄存器中。IOUT1:电流输出1端,输入数字量全“1”时,IOUT1最大,输入数字量全为“0”时,IOUT1最小。IOUT2:D/A转换器电流输出2端,IOUT2+IOUT1=常数。Rfb:外部反馈信号输入端,内部已有反馈电阻Rfb,根据需要也可外接反馈电阻。Vcc:电源输入端,可在+5V~+15V范围内。DGND:数字信号地。AGND:模拟信号地。“8位输入寄存器”用于存放CPU送来的数字量,使输入数字量得到缓冲和锁存,由LE1*控制;“8位DAC寄存器”存放待转换的数字量,由LE2*控制;“8位D/A转换电路”由T型电阻网络和电子开关组成,T型电阻网络输出和数字量成正比的模拟电流。2.DAC的应用接口与DAC的具体应用有关。(1)单极性电压输出单极性模拟电压输出,可采用图11-5或图11-9所示接线。输出电压Vout与输入数字量B的关系:Vout=-B*(VREF/256)式中,B=b7·27+b6·26+……+b1·21+b0·20;VREF/256为一常数。B为0时,Vout也为0,输入数字量为255时,Vout为最大值,输出电压为单极性。(2)双极性电压输出双极性电压输出,采用图11-3接线:Vout=(B-128)*(VREF/128)由上式,在选用+VREF时,(1)若输入数字量b7=1,则Vout为正;(2)若输入数字量b7=0,则Vout为负。在选用-VREF时,Vout与+VREF时极性相反。(3)DAC用作程控放大器DAC还可作程控放大器,见图11-4。DAC的输出和输入之间的关系:Vout=-(Vin/B)*256256/B看作放大倍数。但输入数字量B不得为“0”。3.MCS-51与DAC0832的接口电路(1)单缓冲方式DAC0832内部的两个数据缓冲器有一个处于直通方式,另一个处于受控的锁存方式。在实际应用中,如果只有一路模拟量输出,或虽是多路模拟量输出但并不要求多路输出同步的情况下,可采用单缓冲方式。单缓冲方式的接口如图11-5:由图,WR2*和XFER*接地,故DAC0832的“8位DAC寄存器”(图11-2)处于直通方式。“8位输入寄存器”受CS*和WR1*端控制,且由译码器输出端FEH送来(也可由P2口的某一根口线来控制)。因此,8031执行如下两条指令就可在WR1*和CS*上产生低电平信号,使0832接收8031送来的数字量。MOVR0,#0FEH;DAC地址FEH→R0MOVX@R0,A;WR*和译码器FEH输出端有效现举例说明DAC0832单缓冲方式的应用。例11-1DAC0832用作波形发生器。分别写出产生锯齿波、三角波和矩形波的程序。(1)锯齿波的产生ORG2000HSTART:MOVR0,#0FEH;DAC地址FEH→R0MOVA,#00H;数字量→ALOOP:MOVX@R0,A;数字量→D/A转换器INCA;数字量逐次加1SJMPLOOP输入数字量从0开始,逐次加1,为FFH时,加1则清0,模拟输出又为0,然后又循环,输出锯齿波,如图11-6。每一上升斜边分256个小台阶,每个小台阶暂留时间为执行后三条指令所需要的时间。(2)三角波的产生ORG2000HSTART:MOVR0,#0FEHMOVA,#00HUP:MOVX@R0,A;三角波上升边INCAJNZUPDOWN:DECA;A=0时再减1又为FFHMOVX@R0,AJNZDOWN;三角波下降边SJMPUP(3)矩形波的产生ORG2000HSTART:MOVR0,#0FEHLOOP:MOVA,#data1MOVX@R0,A;置矩形波上限电平LCALLDELAY1;调用高电平延时程序MOVA,#data2MOVX@R0,A;置矩形波下限电平LCALLDELAY2;调用低电平延时程序SJMPLOOP;重复进行下一个周期DELAY1、DELAY2为两个延时程序,决定矩形波高、低电平时的持续时间。频率也可采用延时长短来改变。(2)双缓冲方式多路同步输出,必须采用双缓冲同步方式。接口电路如图11-9:1#DAC0832因和译码器FDH相连,占有两个端口地址FDH和FFH。2#DAC0832的两个端口地址为FEH和FFH。其中,FDH和FEH分别为1#和2#DAC0832的数字量输入控制端口地址,而FFH为启动D/A转换的端口地址。图11-9中DAC输出的VX和VY信号要同步,控制X-Y绘图仪绘制的曲线光滑,否则绘制的曲线是阶梯状。控制程序如下:例11-2内部RAM中两个长度为20的数据块,起始地址为分别为addr1和addr2,编写能把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指向addr2;0区的R2存放数据块长度;0区和1区的R0指向DAC端口地址。程序为:ORG2000Haddr1DATA20H;定义存储单元addr2DATA40H;定义存储单元DTOUT:MOVR1,#addr1;0区R1指向addr1MOVR2,#20;数据块长度送0区R2SETBRS0;切换到工作寄存器1区MOVR1,#addr2;1区R1指向addr2CLRRS0;返回0区NEXT:MOVR0,#0FDH;0区R0指向1#DAC0832数;字量控制端口MOVA,@R1;addr1中数据送AMOVX@RO,A;addr1中数据送1#DAC0832INCR1;修改addr1指针0区R1SETBRS0;转1区。MOVR0,#0FEH;1区R0指向2#DAC0832数字量;控制端口MOVA,@R1;addr2中数据送AMOVX@R0,A;addr2中数据送2#DAC0832INCR1;修改addr2指针1区R1INCR0;1区R0指向DAC的启动D/A转换端口MOVX@R0,A;启动DAC进行转换CLRRS0;返回0区DJNZR2,NEXT;若未完,则跳NEXTLJMPDTOUT;若送完,则循环END11.1.3MCS-51与12位DAC1208的接口8位DAC分辨率不够,可采用12位DAC。常用的有DAC1208系列与DAC1230系列。1.DAC1208系列的结构引脚及特性双缓冲结构。不是用一个12位锁存器,而是用一个8位锁存器和一个4位锁存器,以便和8位数据线相连。引脚功能:CS*:片选信号。WR1*:写信号,低电平有效BYTE1/BYTE2*:字节顺序控制信号。1:开启8位和4位两个锁存器,将12位全部打入锁存器。0:仅开启4位输入锁存器。XFER*:传送控制信号,与WR2*信号结合,将输入锁存器中的12位数据送至DAC寄存器。WR2*:辅助写。该信号与XFER*信号相结合,当同为低电平时,把锁存器中数据打入DAC寄存器。当为高电平时,DAC寄存器中的数据被锁存起来。DI0-DI11:12位数据输入。IOUT1:D/A转换电流输出1。当DAC寄存器全1时,输出电流最大,全0时输出为0IOUT2:D/A转换电流输出2。IOUT1+IOUT2=常数RFB:反馈电阻输入VREF:参考电压输入VCC:电源电压DGND、AGND:数字地和模拟地主要特性:(1)输出电流稳定时间:1s;(2)基准电压:VREF=-10~+10V;(3)单工作电源:+5~+15V;(4)低功耗:20mW。2.接口电路设计及软件编程(1)接口电路设计8031与DAC1208转换器的接口如图11-11。高8位输入寄存器端口地址:4001H;低4位寄存器端口地址:4000H;DAC寄存器的端口地址:6000H。由于8031的P0.0分时复用,所以用P0.0与DAC1208的BYTE1/BYTE2*相连时,要有锁存器74LS377。外接AD581做10V基准电压源。模拟电压输出接为双极性。采用双缓冲方式。先送高8位数据DI11~DI4,再送入低4位数据DI3~DI0,而不能按相反的顺序传送。如先送低4位后送高8位,结果会不正确。在12位数据分别正确地进入两个输入寄存器后,再打开DAC寄存器。单缓冲方式不合适,在12位数据不是一次送入的情况下,边传送边转换,会使输出产生错误的瞬间毛刺。图中DAC1208的电流输出端外接两个运放LF3
本文标题:哈工大单片机张毅刚课件-第11章
链接地址:https://www.777doc.com/doc-3937646 .html