《系列单片机教程共.pptx》由会员分享,可在线阅读,更多相关《系列单片机教程共.pptx(92页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 非电物理量(温度、压力、流量、速度等),须经传感器转换成模拟电信号(电压或电流),必须转换成数字量,才能在单片机中处理。A/D转换器(ADC):模拟量数字量的器件,D/A转换器(DAC):数字量模拟量的器件。数字量,也常常需要转换为模拟信号。只需合理选用商品化的大规模ADC、DAC芯片,了解引脚及功能以及与单片机的接口设计。11.1 MCS-51与DAC的接口11.1.1 D/A转换器概述第1页/共92页1.概述 输入:数字量,输出:模拟量。转换过程:送到DAC的各位二进制数按其权的大小转换为相应的模拟分量,再把各模拟分量叠加,其和就是D/A转换的结果。使用D/A转换器时,要注意区分:*D/
2、A转换器的输出形式;*内部是否带有锁存器。(1)输出形式 两种输出形式:电压输出形式与电流输出形式。电流输出的D/A转换器,如需模拟电压输出,可在其输出端加一个I-V转换电路。第2页/共92页(2)D/A转换器内部是否带有锁存器 D/A转换需要一定时间,这段时间内输入端的数字量应稳定,为此应在数字量输入端之前设置锁存器,以提供数据锁存功能。根据芯片内是否带有锁存器,可分为内部无锁存器的和内部有锁存器的两类。*内部无锁存器的D/A转换器 可与P1、P2口直接相接(因P1口和P2口的输出有锁存功能)。但与P0口相接,需增加锁存器。*内部带有锁存器的D/A转换器 内部不但有锁存器,还包括地址译码电路
3、,有的还有双重或多重的数据缓冲电路,可与MCS-51的P0口直接相接。第3页/共92页2.主要技术指标(1)分辨率 输入给DAC的单位数字量变化引起的模拟量输出的变化,通常定义为输出满刻度值与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的位数。第4页/共92页(2)建立时间
4、 描述DAC转换快慢的参数,表明转换速度。定义:为从输入数字量到输出达到终值误差(1/2)LSB(最低有效位)时所需的时间。电流输出时间较短,电压输出的,加上I-V转换的时间,因此建立时间要长一些。快速DAC可达1s以下。(3)精度 理想情况,精度与分辨率基本一致,位数越多精度越高。但由于电源电压、参考电压、电阻等各种因素存在着误差,精度与分辨率并不完全一致。位数相同,分辨率则相同,但相同位数的不同转换器精度会有所不同。例如,某型号的8位DAC精度为0.19%,另一型号的8位DAC精度为0.05%。第5页/共92页11.1.2 MCS-51与8位DAC0832的接口1.DAC0832芯片介绍(
5、1)DAC0832的特性 美国国家半导体公司产品,具有两个输入数据寄存器的8位DAC,能直接与MCS-51单片机相连。主要特性如下:*分辨率为8位;*电流输出,稳定时间为1s;*可双缓冲输入、单缓冲输入或直接数字输入;*单一电源供电(+5+15V);第6页/共92页(2)DAC0832的引脚及逻辑结构引脚:第7页/共92页DAC0832DAC0832的的逻辑结构逻辑结构:第8页/共92页引脚功能:DI0DI7:8位数字信号输入端CS*:片选端。ILE:数据锁存允许控制端,高电平有效。WR1*:输入寄存器写选通控制端。当CS*=0、ILE=1、WR1*=0时,数据信号被锁存在输入寄存器中。XFE
6、R*:数据传送控制。WR2*:DAC寄存器写选通控制端。当XFER*=0,WR2*=0 时,输入寄存器状态传入DAC寄存器中。IOUT1:电流输出1端,输入数字量全“1”时,IOUT1最大,输入数字量全为“0”时,IOUT1最小。第9页/共92页IOUT2:D/A转换器电流输出2端,IOUT2+IOUT1=常数。Rfb:外部反馈信号输入端,内部已有反馈电阻Rfb,根据需要也可外接反馈电阻。Vcc:电源输入端,可在+5V+15V范围内。DGND:数字信号地。AGND:模拟信号地。“8位输入寄存器”用于存放CPU送来的数字量,使输入 数字量得到缓冲和锁存,由LE1*控制;“8位DAC寄存器”存放待
7、转换的数字量,由LE2*控制;“8位D/A转换电路”由T型电阻网络和电子开关组成,T 型电阻网络输出和数字量成正比的模拟电流。第10页/共92页2.DAC的应用接口与DAC的具体应用有关。(1)单极性电压输出 单极性模拟电压输出,可采用图11-5或图11-9所示接线。输出电压Vout与输入数字量B的关系:Vout=(B/256)*VRFE 式中,B=b727+b626+b121+b020;B为0时,Vout也为0,输入数字量为255时,Vout为最大值,单极性。(2)双极性电压输出 第11页/共92页 双极性电压输出,采用图11-3接线:Vout=(B128)*(VREF/128)由上式,在选
8、用+VREF时,(1)若输入数字量b71,则Vout为正;(2)若输入数字量b70,则Vout为负。在选用-VREF时,Vout与+VREF时极性相反。第12页/共92页(3)DAC用作程控放大器DAC还可作程控放大器,见图11-4。第13页/共92页DAC的输出和输入之间的关系:Vout=-Vin*(256/B)256/B看作放大倍数。但输入数字量B不得为“0”。3.MCS-51与DAC0832的接口电路(1)单缓冲方式 DAC0832的两个数据缓冲器有一个处于直通方式,另一个处于受控的锁存方式。在不要求多路输出同步的情况下,可采用单缓冲方式。单缓冲方式的接口如图11-5:第14页/共92页
9、 第15页/共92页第16页/共92页 由图,WR2*和XFER*接地,故DAC0832的“8位DAC寄存器”(图11-2)处于直通方式。“8位输入寄存器”受CS*和WR1*端控制,且由译码器输出端FEH送来(也可由P2口的某一根口线来控制)。因此,8031执行如下两条指令就可在WR1*和CS*上产生低电平信号,使0832接收8031送来的数字量。MOVR0,#0FEH ;DAC地址FEHR0 MOVX R0,A;WR*和译码器FEH输出端有效现说明DAC0832单缓冲方式的应用。例11-1 DAC0832用作波形发生器。分别写出产生锯齿波、三角波和矩形波的程序。第17页/共92页(1)锯齿波
10、的产生 ORG 2000HSTART:MOV R0,#0FEH;DAC地址FEH R0MOV A,#00H;数字量ALOOP:MOVX R0,A;数字量D/A转换器INC A;数字量逐次加1SJMP LOOP第18页/共92页 输入数字量从0开始,逐次加1,为FFH时,加1则清0,模拟输出又为0,然后又循环,输出锯齿波,如图11-6。每一上升斜边分256个小台阶,每个小台阶暂留时间为执行后三条指令所需要的时间。(2)三角波的产生ORG 2000HSTART:MOV R0,#0FEHMOV A,#00HUP:MOVXR0,A ;三角波上升边INC AJNZ UPDOWN:DEC A;A=0时再减
11、1又为FFHMOVX R0,AJNZ DOWN ;三角波下降边SJMP UP第19页/共92页(3)矩形波的产生 ORG 2000HSTART:MOV R0,#0FEHLOOP:MOV A,#data1MOVX R0,A;置矩形波上限电平LCALL DELAY1;调用高电平延时程序MOV A,#data2第20页/共92页MOVX R0,A;置矩形波下限电平LCALL DELAY2;调用低电平延时程序SJMP LOOP;重复进行下一个周期 DELAY1、DELAY2为两个延时程序,决定矩形波高、低电平时的持续时间。频率也可采用延时长短来改变。第21页/共92页(2)双缓冲方式 多路同步输出,必
12、须采用双缓冲同步方式。接口电路如图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绘图仪绘制的曲线光滑,否则绘制的曲线是阶梯状。控制程序如下:第22页/共92页第23页/共92页第24页/共92页 例11-2 内部RAM中两个长度为20的数据块,起始地址为分别为addr1和addr2,编写能把addr1和addrr2中数据从1#和2#DAC083
13、2同步输出的程序。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端口地址。程序为:第25页/共92页ORG 2000Haddr1 DATA 20H;定义存储单元addr2 DATA 40H;定义存储单元DTOUT:MOV R1,#addr1;0区R1指向addr1MOV R2,#20 ;数据块长度送0区R2
14、SETB RS0;切换到工作寄存器1区MOV R1,#addr2;1区R1指向addr2CLR RS0 ;返回0区NEXT:MOV R0,#0FDH ;0区R0指向1#DAC0832数 ;字量控制端口MOV A,R1 ;addr1中数据送AMOVX RO,A ;addr1中数据送1#DAC0832INC R1 ;修改addr1指针0区R1SETB RS0 ;转1区。第26页/共92页MOV R0,#0FEH;1区R0指向2#DAC0832数字量 ;控制端口MOV A,R1 ;addr2中数据送AMOVX R0,A ;addr2中数据送2#DAC0832INC R1 ;修改addr2指针1区R1
15、INC 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。常用的有DAC1208系列与DAC1230系列。第27页/共92页1.DAC1208系列的结构引脚及特性 双缓冲结构。不是用一个12位锁存器,而是用一个8位锁存器和一个4位锁存器,以便和8位数据线相连。引脚功能:CS*:片选信号。WR1*:写信号,低电平有效 BYTE1/BYTE2*:字节
16、顺序控制信号。1:开启8位和4位两个锁存器,将12位全部打入锁存器。0:仅开启4位输入锁存器。第28页/共92页XFERXFER*:传送控制信号,与传送控制信号,与WR2WR2*信号结合,将输入信号结合,将输入锁存器中的锁存器中的1212位数据送至位数据送至DACDAC寄存器。寄存器。WR2*:辅助写。该信号与XFER*信号相结合,当同为低电平时,把锁存器中数据打入DAC寄存器。当为高电平时,DAC寄存器中的数据被锁存起来。DI0-DI11:12位数据输入。IOUT1:D/A转换电流输出1。当DAC寄存器全1时,输 出电流最大,全0时输出为0第29页/共92页IOUT2:D/A转换电流输出2。
17、IOUT1+IOUT2=常数RFB:反馈电阻输入VREF:参考电压输入VCC:电源电压DGND、AGND:数字地和模拟地主要特性:(1)输出电流稳定时间:1s;(2)基准电压:VREF=-10+10V;(3)单工作电源:+5+15V;(4)低功耗:20mW。第30页/共92页第31页/共92页2.接口电路设计及软件编程(1)接口电路设计 8031与DAC1208转换器的接口如图11-11。高8位输入寄存器端口地址:4001H;低4位寄存器端口地址:4000H;DAC寄存器的端口地址:6000H。由于8031的P0.0分时复用,所以用P0.0与DAC1208的 BYTE1/BYTE2*相连时,要
18、有锁存器74LS377。外接AD581做10V基准电压源。模拟电压输出接为双极性。第32页/共92页第33页/共92页 采用双缓冲方式。先送高8位数据DI11 DI4,再送入低4位数据DI3DI0,而不能按相反的顺序传送。如先送低4位后送高8位,结果会不正确。在12位数据分别正确地进入两个输入寄存器后,再打开DAC寄存器。单缓冲方式不合适,在12位数据不是一次送入的情况下,边传送边转换,会使输出产生错误的瞬间毛刺。图中DAC1208的电流输出端外接两个运放LF356,其中运放1用作I/V转换,运放2实现双极性电压输出(-10V+10V)。电位器W1定零点,电位器W2定满度。第34页/共92页2
19、软件编程 设12位数字量存放在内部RAM的两个单元,12位数的高8位在DIGIT单元,低4位在DIGIT+1单元的低4位。按图11-11电路,D/A转换程序如下:MOV DPTR,#4001H;8位输入寄存器地址MOV R1,#DIGIT;高8位数据地址MOV A,R1;取出高8位数据MOVX DPTR,A;高8位数据送DAC1208DEC DPL;DPTR修改为4位输入寄 ;存器地址INC R1;低4位数据地址MOV A,R1;取出低4位数据MOVX DPTR,A;低4位数据送DAC1208第35页/共92页MOV DPTR,#6000H;DAC寄存器地址MOVX DPTR,A ;12位同步
20、输出完成12位D/A转换11.1.4 MCS-51与12位DAC1230系列的接口 DAC1230内部结构和应用特性与DAC1208完全相似,只不过DAC1230系列的低4位数据线在片内与高4位数据线相连,在片外表现为8位数据线,故比DAC1208少四个引脚,20脚DIP封装。内部结构及引脚如图11-12。DAC1230与8位单片机的接口比DAC1208要简单;但DAC1208系列与16位单片机连接更方便。第36页/共92页第37页/共92页11.2 MCS-51与ADC的接口11.2.1 A/D转换器概述 模拟量转换成数字量,便于计算机进行处理。随着超大规模集成电路技术的飞速发展,大量结构不
21、同、性能各异的A/D转换芯片应运而生。1.A/D转换器的分类 根据转换原理可将A/D转换器分成两大类(1)直接型A/D转换器(2)间接型A/D转换器。A/D转换器的分类如下:第38页/共92页第39页/共92页 目前使用较广泛的有:逐次比较式转换器、双积分式转换器、-式转换器和V/F转换器。逐次比较型:精度、速度和价格都适中,是最常用的A/D转换器件。双积分型:精度高、抗干扰性好、价格低廉,但转换速度慢,得到广泛应用。-型:具有积分式与逐次比较式ADC的双重优点。对工业现场的串模干扰具有较强的抑制能力,不亚于双积分ADC,但比双积分ADC的转换速度快,与逐次比较式ADC相比,有较高的信噪比,分
22、辨率高,线性度好不需采样保持电路。因此,-型得到重视。V/F转换型:适于转换速度要求不太高,远距离信号传输。第40页/共92页2.A/D转换器的主要技术指标(1)转换时间和转换速率 完成一次转换所需要的时间。转换时间的倒数为转换速率。并行式:2050ns,速率为5020M次/s(1M=106);逐次比较式:0.4s,速率为2.5M次/s。(2)分辨率 用输出二进制位数或BCD码位数表示。例如AD574,二进制12位,即用212个数进行量化,分辨为1LSB,百分数表示1/212=0.24。又如双积分式A/D转换器MC14433,分辨率为三位半。若满字位为1999,其分辨率为1/1999=0.05
23、%。第41页/共92页 量化过程引起的误差为量化误差,是由于有限位数字对模拟量进行量化而引起的误差。量化误差理论上规定为1个单位分辨率,提高分辨率可减少量化误差。(3)转换精度 定义为一个实际ADC与一个理想ADC在量化值上的差值。可用绝对误差或相对误差表示。3.A/D转换器的选择 按输出代码的有效位数分:8位、10位、12位等。按转换速度分为超高速(1ns)、高速(1s)中速(1ms)、低速(1s)等。第42页/共92页 为适应系统集成需要,将多路转换开关、时钟电路、基准电压源、二/十进制译码器和转换电路集成在一个芯片内,为用户提供方便。(1)A/D转换器位数的确定 系统总精度涉及的环节较多
24、:传感器变换精度、信号预处理电路精度和A/D转换器及输出电路、控制机构精度,还包括软件控制算法。A/D转换器的位数至少要比系统总精度要求的最低分辨率高1位,位数应与其他环节所能达到的精度相适应。只要不低于它们就行,太高无意义,且价高。8位以下:低分辨率,912位:中分辨率,13位以上:高分辨率。第43页/共92页(2)A/D转换器转换速率的确定 从启动转换到转换结束,输出稳定的数字量,需要一定的时间,这就是A/D转换器的转换时间。低速:转换时间从几ms到几十ms。中速:逐次比较型的A/D转换器的转换时间可从几s 100s左右。高速:转换时间仅20100ns。适用于雷达、数字通讯、实时光谱分析、
25、实时瞬态纪录、视频数字转换 系统等。如用转换时间为100s的集成A/D转换器,其转换速率为10千次/秒。根据采样定理和实际需要,一个周期的波形需采10个点,最高也只能处理1kHz的信号。把第44页/共92页转换时间减小到10s,信号频率可提高到10kHz。(3)是否加采样保持器 直流和变化非常缓慢的信号可不用采样保持器。其他情况都要加采样保持器。根据分辨率、转换时间、信号带宽关系,是否要加采样保持器:如果是8位ADC,转换时间100ms,无采样保持器,信号的允许频率是0.12Hz;如果是12位ADC,该频率为0.0077Hz。如果转换时间是100s,ADC是8位时,该频率为12Hz,12位时是
26、0.77Hz。(4)工作电压和基准电压 选择使用单一+5V工作电压的芯片,与单片机系统共用一个电源就比较方便。第45页/共92页 基准电压源是提供给A/D转换器在转换时所需要的参考电压,在要求较高精度时,基准电压要单独用高精度稳压电源供给。11.2.2 MCS-51与ADC 0809(逐次比较型)的接口1.ADC0809引脚及功能 逐次比较式8路模拟输入、8位输出的A/D转换器。引脚如图。第46页/共92页第47页/共92页 共28脚,双列直插式封装。主要引脚功能如下:(1)IN0IN7:8路模拟信号输入端。(2)D0D7:8位数字量输出端。(3)C、B、A:控制8路模拟通道的切换,C、B、A
27、=000111分别对应IN0IN7通道。(4)OE、START、CLK:控制信号端,OE为输出允许端,START为启动信号输入端,CLK为时钟信号输入端。(5)VR(+)和VR(-):参考电压输入端。2.ADC0809结构及转换原理 结构如图11-15。0809完成1次转换需100s左右,可对05V信号进行转换。第48页/共92页第49页/共92页3.MCS-51与ADC0809的接口 单片机如何来控制ADC?首先用指令选择0809的一个模拟输入通道,当执行MOVX DPTR,A时,单片机的WR*信号有效,产生一个启动信号给0809的START脚,对选中通道转换。转换结束后,0809发出转换结
28、束EOC信号,该信号可供查询,也可向单片机发出中断请求;当执行指令:MOVX A,DPTR,单片机发出RD*信号,加到OE端高电平,把转换完毕的数字量读到A中。查询和中断控制两种工作方式。(1)查询方式0809与8031单片机的接口如图11-16。第50页/共92页第51页/共92页 ALE脚的输出频率为1MHz,(时钟频率为6MHz),经D触发器二分频为500kHz时钟信号。0809输出三态锁存,8位数据输出引脚可直接与数据总线相连。引脚C、B、A分别与地址总线A2、A1、A0相连,选通IN0IN7中的一个。P2.7(A15)作为片选信号,在启动A/D转换时,由WR*和P2.7控制ADC的地
29、址锁存和转换启动,由于ALE和START连在一起,因此0809在锁存通道地址的同时,启动并进行转换。读取转换结果,用RD*信号和P2.7脚经或非后,产生的正脉冲作为OE信号,用以打开三态输出锁存器。第52页/共92页 对8路模拟信号轮流采样一次,采用软件延时的方式,并依次把结果转储到数据存储区。MAIN:MOV R1,#data;置数据区首地址 MOV DPTR,#7FF8H;端口地址送DPTR,P2.7=0,;且指向通道IN0MOVR7,#08H;置转换的通道个数LOOP:MOVX DPTR,A;启动A/D转换MOVR6,#0AH;软件延时,等待转换结束DELAY:NOPNOPNOPDJNZ
30、R6,DELAYMOVXA,DPTR;读取转换结果第53页/共92页MOVR1,A;存储转换结果INCDPTR;指向下一个通道INCR1;修改数据区指针DJNZR7,LOOP;8个通道全采样完否?未完则继续(2)中断方式 将图11-16中EOC脚经一非门连接到8031的INT1*脚即可。转换结束时,EOC发出一个脉冲向单片机提出中断申请,单片机响应中断请求,在中断服务程序读A/D结果,并启动0809的下一次转换,外中断1采用跳沿触发。第54页/共92页程序如下:INIT1:SETB IT1 ;外部中断1初始化编程SETB EA ;CPU开中断SETBEX1 ;选择外中断为跳沿触发方式MOVDP
31、TR,#7FF8H;端口地址送DPTRMOVA,#00H ;MOVXDPTR,A;启动0809对IN0通道转换;完成其他的工作中断服务程序:PINT1:MOV DPTR,#7FF8H;A/D结果送内部RAM单元30HMOVXA,DPTRMOV30H,AMOVA,#00H;启动0809对IN0的转换MOVXDPTR,A;RETI第55页/共92页11.2.3 MCS-51与AD574(逐次比较型)的接口 8位分辨率的ADC常常不够,采用10位、12位、16位A/D转换器。12位ADCAD574A(AD674A、AD1674A)。1.AD574简介 12位逐次比较型A/D转换器。转换时间为25s,
32、转换精度为0.05%,片内有三态输出缓冲电路,可直接与各种8位或16位的微处理器相连,而无须附加逻辑接口电路,且能与CMOS及TTL电平兼容。28脚双列直插式封装,引脚如图11-17。第56页/共92页第57页/共92页引脚的功能如下:CS*:片选信号端。CE:片启动信号。R/C*:读出/转换控制信号。12/8*:数据输出格式选择。1:12条数据线同时输出转换结果,0:转换结果为两个单字节输出,即只有高8位或低4位有效。A0:字节选择控制线。分为转换期间、读出期间在转换期间:0:进行12位转换(转换时间为25s);1:进行8位转换(转换时间为16s)。在读出期间:第58页/共92页结果的高8位
33、结果的低4位+4位尾00:高8位数据有效;1:低4位数据有效,中间4位为“0”,高4位为三态。因此当两次读出12位数据时,12位数据遵循左对齐原则,如下所示:上述五个控制信号组合的真值表如表11-1所示:第59页/共92页CECECSCS*R/CR/C*12/812/8*A0A0操操 作作0 0X X1 11 11 11 11 1X X1 10 00 00 00 00 0X XX X0 00 01 11 11 1X XX XX XX X+5V+5V地地地地X XX X0 01 1X X0 01 1无操作无操作无操作无操作初始化为初始化为1212位转换位转换初始化为初始化为8 8位转换位转换允许
34、允许1212位并行输出位并行输出允许高允许高8 8位输出位输出允许低允许低4 4位位+4+4位尾位尾0 0输出输出表11-1 AD574控制真值表第60页/共92页STS:转换结束状态引脚。转换完成时为低电平。可作为状态信息被CPU查询,也可用它的下跳沿向CPU发出中断申请,通知A/D转换已完成,可读取转换结果。2.AD574的工作特性 工作状态由CE、CS*、R/C*、12/8*、A0五个控制信号决定,当CE=1,CS*=0同时满足,才处于转换状态。AD574处于工作状态时,R/C*=0,启动A/D转换;R/C*=1为数据读出。12/8*和A0端用来控制转换字长和数据格式。A0=0按12位转
35、换方式启动转换;A0=1按8位转换方式启动转换。当AD574处于数据读出(R/C*=1)状态时,A0和12/8*第61页/共92页成为数据输出格式控制端。12/8*=1对应12位并行输出;12/8*=0对应8位的双字节输出。其中A0=0时输出高8位。A0=1时输出低4位,并以4个0补足尾随的4位。注意:12/8*端与TTL电平不兼容,故只能直接接+5V或地。另外A0在数据输出期间不能变化。3.AD574的单极性和双极性输入特性 图11-18(a)为单极性转换电路,可实现:010V或020V的转换。图11-18(b)为双极性转换电路,可实现:-5+5V或-10+10V的转换。第62页/共92页第
36、63页/共92页4.MCS-51与AD574的接口设计 见图11-19,AD574片内有时钟,无须外加。单极性方式:对010V或020V模拟信号进行转换。结果的高8位从DB11DB4输出,低4位从DB3DB0输出,如左对齐,DB3DB0接单片机数据总线高半字节。为实现启动转换和结果读出,片选信号由A1提供。读结果时,A1=0;CE信号由单片机的WR*和A7经一级或非门提供,R/C*由RD*和A7经一级或非门产生,A7应为低电平。输出状态信号STS接P3.2,供单片机查询A/D转换是否结束。12/8*端接+5V,AD574的A0由地址总线A0控制,实现全12位转换,并将12位数据分两次送入数据总
37、线上。第64页/共92页第65页/共92页完成一次A/D转换的程序如下:(假定结果高8位在R2中,低4位在R3中,按左对齐原则):MAIN:MOV R0,7CH ;选择AD574,并令A0=0MOVX R0,A;启动A/D转换LOOP:NOPJB P3.2,LOOP ;查询转换是否结束MOVX A,R0;读取高8位MOV R2,A ;存入R2中MOV R0,7DH;令A0=1MOVX A,R0;读取低4位地MOV R3,A ;存入R3中11.2.4 MCS-51与A/D转换器MC14433(双积分型)的接口第66页/共92页 双积分型由于两次积分时间比较长,所以转换速度慢,但精度可以做得比较高
38、;对周期变化的干扰信号积分为零,抗干扰性能也较好。常用的有3位双积分A/D转换器MC14433(精度相当于11位二进制数)和4位双积分A/D转换器ICL7135(精度相当于14位二进制数)。1.MC14433A/D转换器简介 MC14433是3位双积分型A/D转换器,优点:精度高、抗干扰性能好等,缺点:转换速度慢,约110次/秒。与国内产品5G14433完全相同,可互换。被转换电压量程为199.9mV或1.999V。转换完的数据以BCD码的形式分四次送出。第67页/共92页(1)MC14433的引脚功能说明 MC14433A/D转换器引脚如图11-20:第68页/共92页各引脚的功能如下:(1
39、)电源及共地端 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、CLKO:外接振荡器时钟调节电阻RC,RC一般 取470左右。第69页/共92页(3)转换启动/结束信号端 EOC:转换结束信号输出端,正脉冲有效。DU:启动新的转换,若DU与EOC相连,每当A/D转 换结束后,自动启动新的转换。(4)过量程信号输出端 OR*:当|
40、VX|VR,输出低电平。(5)位选通控制端 DS4DS1:分别为个、十、百、千位输出的选通脉冲,DS1对应千位,DS4对应个位。每个选通脉冲宽度为18个时钟周期,两个相应脉冲之间间隔为2个时钟周期。如图11-21所示第70页/共92页第71页/共92页(6)BCD码输出端 Q0Q3:BCD码数据输出线。Q3为最高位,Q0为最低位。当DS2、DS3和DS4选通期间,输出三位完整的BCD码数,但在DS1(千位)选通期间,输出端Q0Q3除了表示个位的0或1外,还表示被转换电压的正负极性(Q2=1为正)、欠量程还是过量程,具体含义如表11-2所示。第72页/共92页表11-2 DS1选通时Q3Q0表示
41、的结果Q3 Q2 Q1 Q0Q3 Q2 Q1 Q0表表 示示 结结 果果1 1 0 00 0 0 0 1 1 0 0 0 0 0 00 0 1 11 1 1 1 千位数为千位数为0 0千位数为千位数为1 1结果为正结果为正结果为负结果为负输入过量程输入过量程输入欠量程输入欠量程第73页/共92页2.MC14433与8031单片机的接口 如图11-12,MC1403(与5G1403相同)为+2.5V精密基准源。DU端与EOC端相连,即选择连续转换方式。EOC:转换结束输出标志。读取A/D转换结果可采用中断方式或查询方式。采用中断方式时,EOC端与8031外部中断输入端INT0*或INT1*相连。
42、采用查询方式EOC端可与任一I/O口线相连。第74页/共92页第75页/共92页 若用中断方式读结果,选用跳沿触发方式。如转换结果存到8031内部RAM的20H、21H单元中,格式如下:初始化程序开放CPU中断,允许外部中断1中断请求,置外部中断1为跳沿触发方式。每次A/D转换结束,都向CPU请求中断,CPU响应中断,执行中断服务程序,读取A/D转换的结果。程序:第76页/共92页ORG 001BH LJMP PINT1 ;跳外部中断1的中断服务程序ORG 0100HINITI:SETB IT1 ;选择外中断1为跳沿触发方式 MOV IE,84H;CPU开中断,允许外部中断1 PINT1:MO
43、V A,P1 ;外部中断1服务程序JNB Acc.4,PINT1;等待DS1选通信号的到来JB Acc.0,Per;是否过、欠量程,是则转向Per处理JB Acc.2,PL1;判结果极性,为正,跳PL1 SETB 07H ;结果为负,符号位07H置1AJMP PL2 ;PL1:CLR 07H ;结果为正,符号位清0PL2:JB Acc.3,PL3 ;千位为0,跳PL3 第77页/共92页 SETB 04H ;千位为1,把04H位置1 AJMP PL4 ;PL3:CLR 04H ;千位为0,把04H位清0PL4:MOV A,P1;JNB Acc.5,PL4 ;等待百位的选通信号DS2MOV R0
44、,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,P1JNB Acc.7,PL6 ;等待个位数选通信号DS4的到来;第78页/共92页XCHD A,R0;个位数送入21H单元的低4位RETIPEr:SETB 10H ;置过量程、欠量程标志RETI ;中断返回11.3 MCS-51与V/F转换器的接口 在既要求数据长距离传输又要求精确度较高的场
45、合,可使用V/F转换器代替A/D器件。V/F转换器是把电压信号转变为频率信号的器件,有良好的精度、线性,此外,电路简单,外围元件性能要求不高,适应环境能力强,转换速度不低于一般的双积分型A/D器件,且价格低,因此V/F转换技术广泛用于非快速A/D过程中。第79页/共92页11.3.1 用V/F转换器实现A/D转换的原理工作原理:把V/F转换器输出的频率信号作为计数脉冲,进行定时计数,这样计数器的计数值与V/F转换器输出的脉冲频率信号之间的关系为:f=D/T D:计数值,T:计数时间,就可求出V/F转换器的输出频率,从而知道输入电压V,这就实现了A/D转换。定时/计数器可用单片机内部的,也可使用
46、外部扩展的,用单片机把计数值取入内存即可进行数据处理。第80页/共92页11.3.2 常用V/F转换器LMX31简介 常用LMX31系列。包括LM131/LM231/LM331,适用于A/D转换器、高精度F/V变换器1主要特性(1)频率范围:1100KHz(2)低的非线性:0.01%(3)单电源或双电源供电(4)单电源供电电压为5V时,可保证转换精度(5)温度特性:最大50ppm/C(6)低功耗:Vs=5V时为15mw 有两种封装形式,如图11-24所示。第81页/共92页2电特性参数:(1)电源电压:15V(2)输入电压范围:010V(3)输出频率:10Hz11KHz(4)非线性失真:0.0
47、3%3LMX31的V/F转换外部接线 LMX31的V/F转换外部接线如图11-25所示。第82页/共92页第83页/共92页11.3.3 V/F转换器与MCS-51单片机接口 被测电压转换为与其成比例的频率信号后送入单片机进行处理。(1)直接与MCS-51接口。接口简单,频率信号接入单片机的定时器/计数器输入端即可。如下图。第84页/共92页(2)在一些电源干扰大、模拟电路部分容易对单片机产生电气干扰等恶劣环境中,可采用光电隔离的方法使V/F转换器与单片机无电信号联系,如图11-27。第85页/共92页(3)与单片机之间距离较远时需要采用驱动电路以提高传输能力。可采用串行通讯的驱动器和接收器来
48、实现。例如使用RS-422的驱动器和接收器时,允许最大传输距离为120m,如图11-28所示。其中SN75174/75175是RS-422标准的四差分线路驱动/接收器。第86页/共92页(4)采用光纤或无线传输时,需配以发送、接收装置。如图11-29、图11-30所示。第87页/共92页11.3.4 LM331应用举例本例使用LM331和8031内部定时器构成A/D转换电路使用 元件少、成本低、精度高。1.接口电路 MCS-51与LM331的接口电路如图11-31:第88页/共92页 V/F转换器最大输出频率为10KHz,输入电压为010V。由于V/F输出频率较低,因此采用测周期的方法。V/F
49、的输出经D触发器二分频后接至INT0*,作为T0计数信号。T0置定时器方式1,将T0的GATE位置1,就由INT0*和TR0来共同决定计数器是否工作。2.软件设计包括初始化和计数两部分。初始化:T0为方式1定时,并将GATE位置1。计数:首先判断INT0*电平,为低时,打开TR0位准备计数;变为高时,启动计数,再为低时停止计数并清TR0,读出数据,将T0的TH0、TL0清0,准备下一次计数。程序:第89页/共92页BEGIN:NOPMOV TMOD,09H;定时器T0初始化MOV TL0,00HMOV TH0,00HLOOP1:NOPJB P3.2,LOOP1SETB TR0LOOP2:NOPJNB P3.2,LOOP2LOOP3:NOPJB P3.2,LOOP3CLR TR0MOV B,TH0 ;高位计数值 B第90页/共92页MOV A,TL0;低位计数值 AMOV TL0,00HMOV TH0,00HAJMP LOOP1 本程序将计数结果高位存入B,低位存入A,以便后期处理。第91页/共92页感谢您的观看!第92页/共92页
限制150内