1、 MCS-51MCS-51与与D/AD/A转换器、转换器、A/DA/D转换器的接口转换器的接口一、一、作业作业二、二、MCS-51与与DAC的接口的接口D/A转换器的原理及主要技术指标转换器的原理及主要技术指标MCS-51与与8位位DAC0832的接口的接口MCS-51与与12位位DAC1208的接口的接口 非电物理量非电物理量(温度、压力、流量、速度等),须经(温度、压力、流量、速度等),须经传感传感器器转换成模拟电信号(电压或电流),必须转换成数字量,转换成模拟电信号(电压或电流),必须转换成数字量,才能在单片机中处理。才能在单片机中处理。A/D转换器转换器(ADC):模拟量模拟量数字量的
2、器件数字量的器件,D/A转换器转换器(DAC):数字量数字量模拟量的器件模拟量的器件。数字量,也常常需要转换为模拟信号。数字量,也常常需要转换为模拟信号。11.1 MCS-51与与DAC的接口的接口 输入:输入:数字量,数字量,输出:输出:模拟量。模拟量。转换过程:转换过程:送到送到DACDAC的各位二进制数按其权的大小转换为相的各位二进制数按其权的大小转换为相应的模拟分量,再把各模拟分量叠加,其和就是应的模拟分量,再把各模拟分量叠加,其和就是D/AD/A转换的结果。转换的结果。使用使用D/AD/A转换器时,要注意区分转换器时,要注意区分:*D/A*D/A转换器的输出形式转换器的输出形式;*内
3、部是否带有锁存器。内部是否带有锁存器。11.1.1 D/A转换器的原理及主要技术指标转换器的原理及主要技术指标型型电电阻网阻网络络D/AD/A转换转换器器:虚地虚地1、D/A转换器的基本原理转换器的基本原理输出电压输出电压 的大小与数字量的对应关系的大小与数字量的对应关系:注:因使用反相比例放大器来实现电流到电压的转换,所以注:因使用反相比例放大器来实现电流到电压的转换,所以输出模拟信号输出模拟信号(VO)的极性与参考电压的极性与参考电压(VREF)极性相反。极性相反。n位数字量位数字量B与模拟量的关系式:当与模拟量的关系式:当2.主要技术指标主要技术指标(1)(1)分辨率分辨率(Resolu
4、tion)输入给输入给DACDAC的的单位数字量单位数字量变化引起的模拟量输出的变化引起的模拟量输出的变化,通常变化,通常定义为输出满刻度值与定义为输出满刻度值与2 2n n之比。之比。显然,二显然,二进制位数越多,分辨率越高。进制位数越多,分辨率越高。例如,例如,若满量程为若满量程为10V10V,根据定义则分辨率为,根据定义则分辨率为10V/210V/2n n。设。设8 8位位D/AD/A转换,即转换,即n=8n=8,分辨率为,分辨率为10V/210V/2n n=39.1mV=39.1mV,该值占满量程的,该值占满量程的0.391%0.391%,用,用1LSB1LSB表示。表示。同理:同理:
5、1010位位 D/AD/A:1 LSB=9.77mV=0.1%1 LSB=9.77mV=0.1%满量程满量程1212位位 D/AD/A:1 LSB=2.44mV=0.024%1 LSB=2.44mV=0.024%满量程满量程根据对根据对DACDAC分辨率的需要分辨率的需要,来选定来选定DACDAC的位数。的位数。(2)(2)建立时间建立时间(Establishing Time)描述描述DACDAC转换快慢的参数转换快慢的参数,表明转换速度。表明转换速度。定义:定义:为从输入数字量到输出达到终值误差为从输入数字量到输出达到终值误差(1/2)LSB(1/2)LSB(最低有效位最低有效位)时所需的时
6、间。时所需的时间。电流输出时间较短电流输出时间较短,电压输出,电压输出的,加上的,加上I-VI-V转换的时间,因此建立时间要长一些。快速转换的时间,因此建立时间要长一些。快速DACDAC可达可达1 1 s s以下。以下。线线性度(也称非性度(也称非线线性性误误差)差)是是实际转换实际转换特性曲特性曲线线与理想与理想直直线线特性之特性之间间的最大偏差。常以相的最大偏差。常以相对对于于满满量程的百分数量程的百分数表示。如表示。如是指是指实际输实际输出出值值与理与理论值论值之差在之差在满满刻度刻度的的以内。以内。(3)(3)线性度线性度(Linearity)v绝对精度(简称精度)绝对精度(简称精度)
7、是指在整个刻度范围内,任一输入是指在整个刻度范围内,任一输入数码所对应的模拟量实际输出值与理论值之间的最大误差。数码所对应的模拟量实际输出值与理论值之间的最大误差。绝对精度是由绝对精度是由DAC的增益误差(当输入数码为全的增益误差(当输入数码为全1时,实际时,实际输出值与理想输出值之差)、零点误差(数码输入为全时,输出值与理想输出值之差)、零点误差(数码输入为全时,DAC的非零输出值)、非线性误差和噪声等引起的。绝对精的非零输出值)、非线性误差和噪声等引起的。绝对精度(即最大误差)应小于度(即最大误差)应小于1个个LSB。v相对精度相对精度与绝对精度表示同一含义,用最大误差相对于满与绝对精度表
8、示同一含义,用最大误差相对于满刻度的百分比表示。刻度的百分比表示。(4)(4)绝对精度和相对精度绝对精度和相对精度(Conversion Accuracy)v 应当注意,应当注意,精度和分辨率具有一定的联系,但概念不同。精度和分辨率具有一定的联系,但概念不同。DAC的位数多时,分辨率会提高,对应于影响精度的量化的位数多时,分辨率会提高,对应于影响精度的量化误差会减小。但其它误差(如温度漂移、线性不良等)的影误差会减小。但其它误差(如温度漂移、线性不良等)的影响仍会使响仍会使DAC的精度变差。的精度变差。DAC0832 DAC0832是使用非常普遍的位是使用非常普遍的位D/AD/A转换转换器,由
9、于其片内器,由于其片内有有输输入数据寄存器,故可以直接与入数据寄存器,故可以直接与单单片机接口。片机接口。DAC0832DAC0832以以电电流形式流形式输输出,出,当需要当需要转换为电压输转换为电压输出出时时,可外接运算放大,可外接运算放大器。属于器。属于该该系列的芯片系列的芯片还还有有DAC0830DAC0830、DAC0831DAC0831,它,它们们可以相可以相互代互代换换。DAC0832DAC0832主要特性主要特性:v分辨率位;分辨率位;v电电流建立流建立时间时间SS;v数据数据输输入可采用双入可采用双缓缓冲、冲、单缓单缓冲或直通方式;冲或直通方式;v输输出出电电流流线线性度可在性
10、度可在满满量程下量程下调节调节;v逻辑电逻辑电平平输输入与入与TTLTTL电电平兼容;平兼容;v单单一一电电源供源供电电(5V5V15V15V););v低功耗,低功耗,20m20m。11.1.2 MCS-51与与8位位DAC0832的接口的接口1.DAC0832芯片介绍芯片介绍DAC0832DAC0832的逻辑结构:的逻辑结构:8位位DACDAC寄存器寄存器输入输入锁存器锁存器-+IOUT2IOUT1RfbVODI07AGNDILECS与与与WR1WR2XFERLE1LE2DIDI0 07 7:转换数据输入(:转换数据输入(8 8位);位);CSCS:片选信号(输入);:片选信号(输入);IL
11、EILE:数据锁存允许信号(输入:数据锁存允许信号(输入););XFERXFER:数据传送控制信号(输入);:数据传送控制信号(输入);WRWR1 1:第一写信号(输入),与:第一写信号(输入),与ILEILE共同控制输入寄存器是数据直通方式还是共同控制输入寄存器是数据直通方式还是 数据锁存方式;数据锁存方式;WRWR2 2:第:第2 2写信号(输入),与写信号(输入),与XFERXFER共同控制共同控制DACDAC寄存器是数据直通方式还是寄存器是数据直通方式还是 数据锁存方式;数据锁存方式;LE1LE1LE1LE1(LE2LE2LE2LE2)=0 0 0 0:锁存;:锁存;:锁存;:锁存;1
12、 1 1 1:直通。:直通。:直通。:直通。(2)DAC0832的引脚及逻辑结构的引脚及逻辑结构引脚:引脚:2.DAC的应用的应用(1)单极性电压输出单极性电压输出 单极性模拟电压输出,可采用图单极性模拟电压输出,可采用图11-5或图或图11-9所示接线。所示接线。输输出电压出电压Vout与与输入数字量输入数字量B的关系的关系:Vout=-(B/256)VRFE 式中,式中,B=b727+b626+b121+b020;B为为0时,时,Vout也为也为0,输入数字量为,输入数字量为255时,时,Vout为为最大值最大值,单极性。单极性。双极性电压输出,采用图双极性电压输出,采用图11-3接线:接
13、线:Vout=(B-128B-128)(VREF/128)由上式,在由上式,在选选用用+VREF时,(时,(1)若输入数字量)若输入数字量b71,则则Vout为为正;(正;(2)若输入数字量)若输入数字量b70,则则Vout为负。为负。在选用在选用-VREF时,时,Vout与与+VREF时极性相反。时极性相反。(2)双极性电压输出)双极性电压输出-VREF0(3)DAC用作程控放大器用作程控放大器DAC还可作程控放大器,见图还可作程控放大器,见图11-4。DAC的输出和输入之间的关系的输出和输入之间的关系:Vout=-Vin*(256/B)256/B看作看作放大倍数放大倍数。但输。但输入数字量
14、入数字量B不得为不得为“0”。3.MCS-51与与DAC0832的接口电路的接口电路有有3 3种工作方法:直通方式、单缓冲方式和双缓冲方式。种工作方法:直通方式、单缓冲方式和双缓冲方式。(1)(1)(1)(1)直通方式:直通方式:直通方式:直通方式:输入锁存器和输入锁存器和DAC寄存器共用一个地址,同时选通输寄存器共用一个地址,同时选通输出;出;WR1和和WR2同时进行,并且可不与同时进行,并且可不与CPU相接。相接。特点:转换速度快。特点:转换速度快。80C5180C51CSCSDAC0832DAC0832WRWR1 1P P1 1XFERXFER8 8WRWR2 2D D7 70 0+-V
15、 VO O地址地址FEHMOV R0,#0FEH;DAC地址地址FEHR0 MOVX R0,A;WR*和译码器和译码器FEH输出端有效输出端有效(2)单缓冲方式单缓冲方式例例11-1 DAC0832用作波形发生器。分别写出产生用作波形发生器。分别写出产生锯锯齿波、三角波齿波、三角波和和矩形波矩形波的程序。的程序。(1)锯齿波的产生锯齿波的产生 ORG 2000HSTART:MOV R0,#0FEH;DAC地址地址FEH R0MOV A,#00H;数字量;数字量ALOOP:MOVX R0,A;数字量;数字量D/A转换器转换器INC A;数字量逐次加;数字量逐次加1SJMP LOOP 每一上升斜边
16、分每一上升斜边分256256个小台阶,每个小台阶暂留时间为执行个小台阶,每个小台阶暂留时间为执行后三条指令所需要的时间后三条指令所需要的时间。(2)三角波的产生三角波的产生ORG 2000HSTART:MOV R0,#0FEH MOV A,#00HUP:MOVX R0,A ;三角波上升边;三角波上升边INC AJNZ UPDOWN:DEC A;A=0时再减时再减1又为又为FFHMOVX R0,AJNZ DOWN ;三角波下降边三角波下降边SJMP UPSJMP UP(3)矩形波的产生矩形波的产生 ORG 2000HSTART:MOV R0,#0FEHLOOP:MOV A,#data1MOVX
17、R0,A;置矩形波上限电平;置矩形波上限电平LCALL DELAY1;调用高电平延时程序;调用高电平延时程序MOV A,#data2MOVX R0,A;置矩形波下限电平;置矩形波下限电平LCALL DELAY2;调用低电平延时程序;调用低电平延时程序SJMP LOOP;重复进行下一个周期;重复进行下一个周期 DELAY1 DELAY1、DELAY2DELAY2为两个延时程序,决定矩形波高、低电平为两个延时程序,决定矩形波高、低电平时的持续时的持续时间时间。频率也可采用延时长短来改变。频率也可采用延时长短来改变。单缓冲方式适用于只有一路模拟量输出,或有几路模拟量输单缓冲方式适用于只有一路模拟量输
18、出,或有几路模拟量输出但并不要求同步的系统出但并不要求同步的系统。电阻的电阻的作用?作用?练习练习 D/AD/A转换程序,用转换程序,用DAC0832DAC0832输出输出0 0+5V+5V锯齿波,电路为锯齿波,电路为单单缓冲方式缓冲方式。设。设V VREFREF=-5V=-5V,若,若DAC0832DAC0832地址为地址为7FFFH7FFFH,脉冲周期要,脉冲周期要求为求为100ms100ms。100msDACS:MOV DPTR,#7FFFH;0832 I/O地址地址 MOV A,#00H ;开始输出;开始输出0VDACL:MOVXDPTR,A;D/A转换转换 INC A;升压;升压 A
19、CALLDELAY;延时延时100ms/256:决定锯齿波的周期:决定锯齿波的周期AJMP DACL;连续输出;连续输出DELAY:;延时子程序;延时子程序(3)双缓冲方式)双缓冲方式图图11-9中中DAC输出的输出的VX和和VY信号要同步,控制信号要同步,控制X-Y绘图仪绘绘图仪绘制的曲线光滑,否则绘制的制的曲线光滑,否则绘制的曲线是阶梯状曲线是阶梯状。多路多路同步输出,同步输出,必须采用双缓冲同步方式。必须采用双缓冲同步方式。1#DAC0832因和译码器因和译码器FDH相连,占有两个相连,占有两个端口地址端口地址FDH和和FFH。2#DAC0832的两个的两个端口地址端口地址为为FEH和和
20、FFH。其中,其中,FDH和和FEH分别为分别为1#和和2#DAC0832的数字量输入控的数字量输入控制端口地址,而制端口地址,而FFH为启动为启动D/A转换的端口地址。转换的端口地址。读P286 例例11-2 内部内部RAM中两个长度为中两个长度为20的数据块,起始地址为分别的数据块,起始地址为分别为为addr1和和addr2,编写能把,编写能把addr1和和addrr2中中数据数据从从1#和和2#DAC0832同步输出同步输出的程的程序。序。addr1和和addr2中的数中的数据,为绘制曲线的据,为绘制曲线的X、Y坐标点。坐标点。DAC0832各端口地址:各端口地址:FDH:1#DAC08
21、32数字量输入控制端口数字量输入控制端口FEH:2#DAC0832数字量输入控制端口数字量输入控制端口FFH:1#和和2#DAC0832启动启动D/A转换端口转换端口 工作寄存器工作寄存器0区的区的R1指向指向addr1;1区的区的R1指向指向addr2;0区的区的R2存放数据块长度;存放数据块长度;0区和区和1区的区的R0指向指向DAC端口地址。程序端口地址。程序为:为:ORG 2000Haddr1 DATA 20H;定义存储单元定义存储单元addr2 DATA 40H;定义存储单元定义存储单元DTOUT:MOV R1,#addr1;0区区R1指向指向addr1 MOV R2,#20 ;数据
22、块长度送数据块长度送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#DAC0832INC R1 ;修改修改addr1指针指针0区区R1SETB RS0 ;转转1区。区。MOV R0,#0FEH;1区区R0指向指向2#DAC0832数字量数字量 ;控制端口;控制端口MOV A,
23、R1 ;addr2中数据送中数据送AMOVX R0,A ;addr2中数据送中数据送2#DAC0832INC R1 ;修改;修改addr2指针指针1区区R1INC R0 ;1区区R0指向指向DAC的启动的启动D/A转换端口转换端口MOVX R0,A ;启动;启动DAC进行转换进行转换CLR RS0 ;返回;返回0区区DJNZ R2,NEXT ;若未完,则跳;若未完,则跳NEXTLJMP DTOUT ;若送完,则循环;若送完,则循环END11.1.3 MCS-51与与12位位DAC1208的接口的接口 8位位DAC分辨率不够,可采用分辨率不够,可采用12位位DAC。常用的有。常用的有AC1208
24、系列与系列与DAC1230系列。系列。1.DAC1208系列的结构引脚及特性系列的结构引脚及特性 双缓冲结构。不是用一个双缓冲结构。不是用一个12位锁存器,而是用一个位锁存器,而是用一个8位锁存位锁存器和一个器和一个4位锁存器,以便和位锁存器,以便和8位数据线相连。位数据线相连。主要特性:主要特性:(1)输出电流稳定时间:)输出电流稳定时间:1 s;(2)基准电压:)基准电压:VREF=-10+10V;(3)单工作电源:)单工作电源:+5+15V;(4)低功耗:)低功耗:20mW。引脚功能:引脚功能:CS*:片选信号。片选信号。WR1*:写信号,低电平有效写信号,低电平有效 BYTE1/BYT
25、E2*:字节顺序控制信号。字节顺序控制信号。1:开启开启8位和位和4位两个锁存器,将位两个锁存器,将12位全部打入锁存器。位全部打入锁存器。0:仅开启仅开启4位位输入锁存器。输入锁存器。XFER*:传送控制信号,与传送控制信号,与WR2*信号结合,将输入锁存器信号结合,将输入锁存器中的中的12位数据送至位数据送至DAC寄存器。寄存器。WR2*:辅助写。该信号与辅助写。该信号与XFER*信号相结合,当同信号相结合,当同为低电平时,把锁存器中数据打入为低电平时,把锁存器中数据打入DAC寄存器。当为寄存器。当为高电平时,高电平时,DAC寄存器中的数据被锁存起来。寄存器中的数据被锁存起来。DI0-DI
26、11:12位数据输入。位数据输入。IOUT1:D/A转换电流输出转换电流输出1。当。当DAC寄存器全寄存器全1时,输时,输 出电流最大,全出电流最大,全0时输出为时输出为0IOUT2:D/A转换电流输出转换电流输出2。IOUT1+IOUT2=常数常数RFB:反馈电阻输入反馈电阻输入VREF:参考电压输入参考电压输入IOUT1:D/A转换电流输出转换电流输出1。当。当DAC寄存器全寄存器全1时,输时,输 出电流最大,全出电流最大,全0时输出为时输出为0IOUT2:D/A转换电流输出转换电流输出2。IOUT1+IOUT2=常数常数VCC:电源电压电源电压DGND、AGND:数字地和模拟地数字地和模
27、拟地2.接口电路设计及软件编程接口电路设计及软件编程(1)接口电路设计接口电路设计 8031与与DAC1208转换器的接口如图转换器的接口如图11-11。高高8位输入寄存器端口地址:位输入寄存器端口地址:4001H;低低4位寄存器端口地址:位寄存器端口地址:4000H;DAC寄存器的端口地址:寄存器的端口地址:6000H。由于由于8031的的P0.0分时复用,所以用分时复用,所以用P0.0与与DAC1208的的 BYTE1/BYTE2*相连时,要有相连时,要有锁存器锁存器74LS377。外接外接AD581做做10V基准电压源。模拟电压输出接为双基准电压源。模拟电压输出接为双极性。极性。采用双缓
28、冲方式。采用双缓冲方式。先送高先送高8位数据位数据DI11 DI4,再送入低再送入低4位数位数据据DI3DI0,而不能按相反的顺序传送。如先送低,而不能按相反的顺序传送。如先送低4位后送高位后送高8位,结果会不正确。位,结果会不正确。在在12位数据分别正确地进入两个输入寄存器后位数据分别正确地进入两个输入寄存器后,再打开再打开DAC寄寄存器。存器。单缓冲方式不合适,在单缓冲方式不合适,在12位数据不是一次送入的情况下,边传送位数据不是一次送入的情况下,边传送边转换,会使输出产生错误的瞬间边转换,会使输出产生错误的瞬间毛刺毛刺。图中图中DAC1208的电流输出端外接两个运放的电流输出端外接两个运
29、放LF356,其中,其中运放运放1用作用作I/V转换转换,运放运放2实现实现双极性电压输出双极性电压输出(-10V+10V)。)。电位器电位器W1定零点,电位器定零点,电位器W2定满度。定满度。(2 2)软件编程)软件编程 设设12位数字量存放在内部位数字量存放在内部RAM的两个单元,的两个单元,12位数位数的的高高8位位在在DIGIT单元单元,低低4位位在在DIGIT+1单元的低单元的低4位位。按图按图11-11电路,电路,D/A转换程序如下:转换程序如下:MOV DPTRMOV DPTR,#4001H#4001H;8;8位输入寄存器地址位输入寄存器地址MOV R1MOV R1,#DIGIT
30、#DIGIT;高高8 8位数据地址位数据地址MOV AMOV A,R1R1;取出高取出高8 8位数据位数据MOVX DPTRMOVX DPTR,A A;高高8 8位数据送位数据送DAC1208DAC1208DEC DPLDEC DPL;指向指向4 4位输入寄存器地址位输入寄存器地址 INC R1INC R1;低低4 4位数据地址位数据地址MOV AMOV A,R1R1;取出低取出低4 4位数据位数据MOVX DPTRMOVX DPTR,A A;低低4 4位数据送位数据送DAC1208DAC1208MOV DPTRMOV DPTR,#6000H#6000H;DAC;DAC寄存器地址寄存器地址MO
31、VX DPTRMOVX DPTR,A A ;12;12位同步输出完成位同步输出完成1212位位D/AD/A转换转换11.1.4 MCS-51与与12位位DAC1230系列的接口系列的接口 DAC1230内部结构和应用特性与内部结构和应用特性与DAC1208完全相似,完全相似,只不过只不过DAC1230系列的低系列的低4位数据线在片内与高位数据线在片内与高4位数据位数据线相连线相连,在片外表现为在片外表现为8位数据线位数据线,故比,故比DAC1208少四少四个引脚,个引脚,20脚脚DIP封装。封装。内部结构及引脚如图内部结构及引脚如图11-12。DAC1230与与8位单片机的接口比位单片机的接口比DAC1208要简单;要简单;但但DAC1208系列与系列与16位单片机连接更方便。位单片机连接更方便。