第9章80C51单片机模拟量接口_第1页
第9章80C51单片机模拟量接口_第2页
第9章80C51单片机模拟量接口_第3页
第9章80C51单片机模拟量接口_第4页
第9章80C51单片机模拟量接口_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第9章80C51单片机模拟量接口第一页,共61页。

非电物理量(温度、压力、流量、速度等),须经传感器转换成模拟电信号(电压或电流),必须转换成数字量,才能在单片机中处理。A/D转换器(ADC):模拟量→数字量的器件,

D/A转换器(DAC):数字量→模拟量的器件。数字量,也常常需要转换为模拟信号。第二页,共61页。9.1MCS-51与DAC的接口

输入:数字量,输出:模拟量。转换过程:送到DAC的各位二进制数按其权的大小转换为相应的模拟分量,再把各模拟分量叠加,其和就是D/A转换的结果。使用D/A转换器时,要注意区分:*D/A转换器的输出形式;*内部是否带有锁存器。9.1.1D/A转换器的原理及主要技术指标第三页,共61页。T型电阻网络D/A转换器:虚地1、D/A转换器的基本原理第四页,共61页。输出电压的大小与数字量的对应关系:第五页,共61页。注:因使用反相比例放大器来实现电流到电压的转换,所以输出模拟信号(VO)的极性与参考电压(VREF)极性相反。n位数字量B与模拟量的关系式:当第六页,共61页。2.主要技术指标(1)分辨率(Resolution)

输入给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的位数。第七页,共61页。(2)建立时间(EstablishingTime)

描述DAC转换快慢的参数,表明转换速度。定义:为从输入数字量到输出达到终值误差(1/2)LSB(最低有效位)时所需的时间。电流输出时间较短,电压输出的,加上I-V转换的时间,因此建立时间要长一些。快速DAC可达1s以下。线性度(也称非线性误差)是实际转换特性曲线与理想直线特性之间的最大偏差。常以相对于满量程的百分数表示。如±1%是指实际输出值与理论值之差在满刻度的±1%以内。(3)线性度(Linearity)第八页,共61页。绝对精度(简称精度)是指在整个刻度范围内,任一输入数码所对应的模拟量实际输出值与理论值之间的最大误差。绝对精度是由DAC的增益误差(当输入数码为全1时,实际输出值与理想输出值之差)、零点误差(数码输入为全0时,DAC的非零输出值)、非线性误差和噪声等引起的。绝对精度(即最大误差)应小于1个LSB。相对精度与绝对精度表示同一含义,用最大误差相对于满刻度的百分比表示。(4)绝对精度和相对精度(ConversionAccuracy)

应当注意,精度和分辨率具有一定的联系,但概念不同。DAC的位数多时,分辨率会提高,对应于影响精度的量化误差会减小。但其它误差(如温度漂移、线性不良等)的影响仍会使DAC的精度变差。第九页,共61页。DAC0832是使用非常普遍的8位D/A转换器,由于其片内有输入数据寄存器,故可以直接与单片机接口。DAC0832以电流形式输出,当需要转换为电压输出时,可外接运算放大器。属于该系列的芯片还有DAC0830、DAC0831,它们可以相互代换。DAC0832主要特性:分辨率8位;电流建立时间1μS;数据输入可采用双缓冲、单缓冲或直通方式;输出电流线性度可在满量程下调节;逻辑电平输入与TTL电平兼容;单一电源供电(+5V~+15V);低功耗,20mW。

9.1.2MCS-51与8位DAC0832的接口1.DAC0832芯片介绍第十页,共61页。DAC0832的逻辑结构:第十一页,共61页。8位DACDAC寄存器输入锁存器-+IOUT2IOUT1RfbVODI0~7AGNDILECS与与与WR1WR2XFERLE1LE2DI0~7:转换数据输入(8位);CS:片选信号(输入);ILE:数据锁存允许信号(输入);XFER:数据传送控制信号(输入);WR1:第一写信号(输入),与ILE共同控制输入寄存器是数据直通方式还是数据锁存方式;WR2:第2写信号(输入),与XFER共同控制DAC寄存器是数据直通方式还是数据锁存方式;LE1(LE2)=0:锁存;1:直通。第十二页,共61页。(2)DAC0832的引脚及逻辑结构引脚:第十三页,共61页。2.MCS-51与DAC0832的接口电路有3种工作方法:直通方式、单缓冲方式和双缓冲方式。(1)直通方式:

输入锁存器和DAC寄存器共用一个地址,同时选通输出;WR1和WR2同时进行,并且可不与CPU相接。

特点:转换速度快。80C51CSDAC0832WR1P1XFER8WR2D7~0+-VO第十四页,共61页。地址FEHMOV R0,#0FEH ;DAC地址FEH→R0MOVX@R0,A ;WR*和译码器FEH输出端有效(2)单缓冲方式第十五页,共61页。例9-1DAC0832用作波形发生器。分别写出产生锯齿波、三角波和矩形波的程序。(1)锯齿波的产生

ORG2000HSTART: MOVR0,#0FEH ;DAC地址FEH→R0 MOVA,#00H ;数字量→ALOOP: MOVX@R0,A ;数字量→D/A转换器 INCA ;数字量逐次加1SJMPLOOP

每一上升斜边分256个小台阶,每个小台阶暂留时间为执行后三条指令所需要的时间。改变频率第十六页,共61页。(2)三角波的产生ORG2000HSTART:MOVR0,#0FEHMOVA,#00HUP:MOVX @R0,A

;三角波上升边INCAJNZUPDOWN:DECA ;A=0时再减1又为FFHMOVX@R0,AJNZDOWN

;三角波下降边SJMPUP第十七页,共61页。(3)矩形波的产生

ORG2000HSTART:

MOVR0,#0FEHLOOP:MOVA,#data1MOVX@R0,A ;置矩形波上限电平LCALLDELAY1 ;调用高电平延时程序MOVA,#data2MOVX@R0,A ;置矩形波下限电平LCALLDELAY2 ;调用低电平延时程序SJMPLOOP ;重复进行下一个周期DELAY1、DELAY2为两个延时程序,决定矩形波高、低电平时的持续时间。频率也可采用延时长短来改变。第十八页,共61页。

单缓冲方式适用于只有一路模拟量输出,或有几路模拟量输出但并不要求同步的系统。

电阻的作用?第十九页,共61页。练习

D/A转换程序,用DAC0832输出0~+5V锯齿波,电路为单缓冲方式。设VREF=-5V,若DAC0832地址为7FFFH,脉冲周期要求为100ms。100msDACS:MOVDPTR,#7FFFH;0832I/O地址

MOVA,#00H ;开始输出0VDACL:MOVX @DPTR,A

;D/A转换

INC A

;升压

ACALL

DELAY;延时100ms/256:决定锯齿波的周期

AJMP DACL

;连续输出DELAY:…

;延时子程序第二十页,共61页。(3)双缓冲方式下图中DAC输出的VX和VY信号要同步,控制X-Y绘图仪绘制的曲线光滑,否则绘制的曲线是阶梯状。多路同步输出,必须采用双缓冲同步方式。1#DAC0832因和译码器FDH相连,占有两个端口地址FDH和FFH。2#DAC0832的两个端口地址为FEH和FFH。其中,FDH和FEH分别为1#和2#DAC0832的数字量输入控制端口地址,而FFH为启动D/A转换的端口地址。

第二十一页,共61页。第二十二页,共61页。

例9-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端口地址。程序为:1区的R00区的R0第二十三页,共61页。ORG2000Haddr1DATA20H ;定义存储单元addr2DATA40H ;定义存储单元DTOUT:MOVR1,#addr1 ;0区R1指向addr1 MOVR2,#20 ;数据块长度送0区R2 SETBRS0 ;切换到工作寄存器1区

MOVR1,#addr2 ;1区R1指向addr2 CLRRS0 ;返回0区NEXT:MOVR0,#0FDH;0区R0指向1#DAC0832

;数字量控制端口

MOVA,@R1;addr1中数据送A MOVX@R0,A;addr1中数据送1#DAC0832INCR1 ;修改addr1指针0区R1第二十四页,共61页。SETBRS0 ;转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;若送完,则循环END第二十五页,共61页。仿真仿真锯齿波及调整周期仿真三角波及调整周期仿真矩形波及调整周期和幅度仿真正弦波仿真多种波形用C语言仿真矩形波第二十六页,共61页。9.2MCS-51与A/D转换器的接口MCS-51与ADC的接口A/D转换器概述MCS-51与ADC0809(逐次比较型)的接口MCS-51与AD574(逐次比较型)的接口MCS-51与A/D转换器MC14433(双积分型)的接口第二十七页,共61页。9.2.1A/D转换器概述A/D转换器的分类第二十八页,共61页。

目前使用较广泛的有:逐次比较式转换器、双积分式转换器、Σ-Δ式转换器和V/F转换器。

逐次比较型:精度、速度和价格都适中,是最常用的A/D转换器件。

双积分型:精度高、抗干扰性好、价格低廉,但转换速度慢,得到广泛应用。Σ-Δ型:具有积分式与逐次比较式ADC的双重优点。对工业现场的串模干扰具有较强的抑制能力,不亚于双积分ADC,但比双积分ADC的转换速度快,与逐次比较式ADC相比,有较高的信噪比,分辨率高,线性度好不需采样保持电路。因此,Σ-Δ型得到重视。V/F转换型:适于转换速度要求不太高,远距离信号传输。第二十九页,共61页。2.A/D转换器的主要技术指标转换时间和转换速率

完成一次转换所需要的时间。转换时间的倒数为转换速率。(2)分辨率

用输出二进制位数或BCD码位数表示。例如AD574,二进制12位,即用212个数进行量化,分辨为1LSB,百分数表示1/212=0.24‰。

又如双积分式A/D转换器MC14433,分辨率为三位半。若满字位为1999,其分辨率为1/1999=0.05%。(3)转换精度

定义为一个实际ADC与一个理想ADC在量化值上的差值。可用绝对误差或相对误差表示。30第三十页,共61页。3.A/D转换器的选择

按输出代码的有效位数分:8位、10位、12位等。

按转换速度分为超高速(≤1ns)、高速(≤1s)中速(≤1ms)、低速(≤1s)等。

为适应系统集成需要,将多路转换开关、时钟电路、基准电压源、二/十进制译码器和转换电路集成在一个芯片内,为用户提供方便。第三十一页,共61页。(1)A/D转换器位数的确定

系统总精度涉及的环节较多:传感器变换精度、信号预处理电路精度和A/D转换器及输出电路、控制机构精度,还包括软件控制算法。A/D转换器的位数至少要比系统总精度要求的最低分辨率高1位,位数应与其他环节所能达到的精度相适应。只要不低于它们就行,太高无意义,且价高。8位以下:低分辨率,9~12位:中分辨率,13位以上:高分辨率。第三十二页,共61页。(2)A/D转换器转换速率的确定

从启动转换到转换结束,输出稳定的数字量,需要一定的时间,这就是A/D转换器的转换时间。低速:转换时间从几ms到几十ms。中速:逐次比较型的A/D转换器的转换时间可从几s~100s左右。高速:转换时间仅20~100ns。适用于雷达、数字通讯、实时光谱分析、实时瞬态纪录、视频数字转换系统等。

如用转换时间为100s的集成A/D转换器,其转换速率为10千次/秒。根据采样定理和实际需要,一个周期的波形需采10个点,最高也只能处理1kHz的信号。把转换时间减小到10s,信号频率可提高到10kHz。第三十三页,共61页。(3)是否加采样保持器

直流和变化非常缓慢的信号可不用采样保持器。其他情况都要加采样保持器。

根据分辨率、转换时间、信号带宽关系,是否要加采样保持器:如果是8位ADC,转换时间100ms,无采样保持器,信号的允许频率是0.12Hz;如果是12位ADC,该频率为0.0077Hz。如果转换时间是100s,ADC是8位时,该频率为12Hz,12位时是0.77Hz。(4)工作电压和基准电压

选择使用单一+5V工作电压的芯片,与单片机系统共用一个电源就比较方便。在要求较高精度时,基准电压要单独用高精度稳压电源供给。第三十四页,共61页。1、逐次逼近式ADC的转换原理9.2.2MCS-51与ADC0809(逐次比较型)的接口CLK第三十五页,共61页。逐次比较式8路模拟输入、8位输出的A/D转换器。2、ADC0809的引脚、参数及接口第三十六页,共61页。(1)IN0~IN7:8路模拟信号输入端。(2)D0~D7:8位数字量输出端。(3)C、B、A:控制8路模拟通道的切换(5)OE、START、CLK:控制信号端,OE为输出允许端,START为启动信号输入端,CLK为时钟信号输入端。(4)VR(+)和VR(-):参考电压输入端。ADC0808的引脚第三十七页,共61页。主要性能为:分辨率为8位;精度:ADC0809小于±1LSB(ADC0808小于±1/2LSB);单+5V供电,模拟输入电压范围为0~+5V;具有锁存控制的8路输入模拟开关;可锁存三态输出,输出与TTL电平兼容;功耗为15mW;不必进行零点和满度调整;转换速度取决于芯片外接的时钟频率。时钟频率范围:10~1280KHz。典型值为时钟频率640KHz,转换时间约为100μS。第三十八页,共61页。ADC0809的时序图第三十九页,共61页。查询、中断?MCS-51与ADC0809的接口第四十页,共61页。

首先用指令选择0809的一个模拟输入通道,当执行MOVX@DPTR,A时,单片机的WR*信号有效,产生一个启动信号给0809的START脚,对选中通道转换。

转换结束后,0809发出转换结束EOC信号,该信号可供查询,也可向单片机发出中断请求;当执行指令:MOVXA,@DPTR,单片机发出RD*信号,加到OE端高电平,把转换完毕的数字量读到A中。第四十一页,共61页。(1)查询方式见例1(2)中断方式见例2

将图中EOC脚经一非门连接到8031的INT1*脚即可。转换结束时,EOC发出一个脉冲向单片机提出中断申请,单片机响应中断请求,在中断服务程序读A/D结果,并启动0809的下一次转换,外中断1采用跳沿触发。第四十二页,共61页。MAIN:MOVR1,#DATA;置数据区首地址

MOVDPTR,#7FF8H;指向0通道

MOVR7,#08H;置通道数LOOP:MOVX@DPTR,A;启动A/D转换HER:JBP3.3,HER;查询A/D转换结束MOVXA,@DPTR;读取A/D转换结果

MOV@R1,A;存储数据INCDPTR;指向下一个通道

INCR1;修改数据区指针

DJNZR7,LOOP;8个通道转换完否?

……例1:对8路模拟信号轮流采样一次,并依次把转换结果存储到片内RAM以DATA为起始地址的连续单元中。第四十三页,共61页。INIT1:SETB IT1

;外部中断1初始化编程

SETB EA

;CPU开中断

SETB EX1

;选择外中断为跳沿触发方式MOV DPTR,#7FF8H;端口地址送DPTRMOV A,#00H;MOVX @DPTR,A ;启动0809对IN0通道转换SJMP$ ;完成其他的工作中断服务程序:PINT1:MOVDPTR,#7FF8H;A/D结果送内部RAM单元 MOVXA,@DPTR MOV 30H,AMOV A,#00H ;启动0809对IN0的转换MOVX @DPTR,A;RETI主程序:例2:第四十四页,共61页。双积分式ADC的转换原理(数电P487)9.2.4MCS-51与A/D转换器MC14433(双积分型)的接口

双积分型由于两次积分时间比较长,所以转换速度慢,但精度可以做得比较高;对周期变化的干扰信号积分为零,抗干扰性能也较好。

第四十五页,共61页。1.MC14433的介绍第四十六页,共61页。(1)电源及共地端VDD:主工作电源+5V。VEE:模拟部分的负电源端接-5V。VAG:模拟地端。VSS:数字地端。VR:基准电压输入端。各引脚的功能如下:第四十七页,共61页。(2)外接电阻及电容端R1:积分电阻输入端,转换电压VX=2V时,

R1=470Ω;VX=200mV时,R1=27kΩ。C1:积分电容输入端,一般取0.1F。R1/C1:R1与C1的公共端。CLKI、CLKO:外接振荡器时钟调节电阻RC,对时钟频率要求不高的场合,可选择一个电阻即可设定时钟频率,时钟频率为66kHz时,外接电阻取300kΩ即可。第四十八页,共61页。(4)过量程信号输出端OR*:当|VX|<VR,输出低电平。(5)位选通控制端(4)过量程信号输出端(5)位选通控制端DS4~DS1:分别为个、十、百、千位输出的选通脉冲,DS1对应千位,DS4对应个位。每个选通脉冲宽度为18个时钟周期,两个相应脉冲之间间隔为2个时钟周期。如图11-21所示(3)转换启动/结束信号端EOC:转换结束信号输出端,正脉冲有效。DU:启动新的转换,若DU与EOC相连,每当A/D转换结束后,自动启动新的转换。第四十九页,共61页。(6)BCD码输出端Q0~Q3:BCD码数据输出线。Q3为最高位,Q0为最低位。

当DS2、DS3和DS4选通期间,输出三位完整的BCD码数,但在DS1(千位)选通期间,输出端Q0~Q3除了表示个位的0或1外,还表示被转换电压的正负极性(Q2=1为正)、欠量程还是过量程,具体含义如表11-2所示。(6)BCD码输出端第五十页,共61页。第五十一页,共61页。模拟电路部分有基准电压、模拟电压输入部分。被转换的模拟电压输入量程为199.9mV或1.999V,与之对应的基准电压相应为+200mV或+2V两种。数字电路部分由逻辑控制、BCD码及输出锁存器、多路开关、时钟以及极性判别、溢出检测等电路组成。MC14433采用字位动态扫描BCD码输出方式,即千、百、十、个位BCD码轮流地在Q0~Q3端输出,同时在DS1~DS4端出现同步字位选通信号。主要的外接器件是时钟振荡器外接电阻RC、外接失调补偿电容C0和外接积分阻容元件R1、C1。

补充说明第五十二页,共61页。MC14433选通脉冲时序第五十三页,共61页。表DS1选通时Q3~Q0表示的结果Q3Q2Q1Q0表示结果1××00××0×1×0×0×00××11××1千位数为0千位数为1结果为正结果为负输入过量程输入欠量程第五十四页,共61页。2.MC14433与8031单片机的接口

如图11-12,MC1403(与5G1403相同)为+2.5V精密基准源。DU端与EOC端相连,即选择连续转换方式。EOC:转换结束输出标志。

读取A/D转换结果可采用中断方式或查询方式。采用中断方式时,EOC端与8031外部中断输入端INT0*或INT1*相连。采用查询方式EOC端可与任一I/O口线相连。第五十五页,共61页。

若用中断方式读结果,选用跳沿触发方式。如转换结果存到8031内部RAM的20H、21H单元中,格式如下:

初始化程序开放CPU中断,允许外部中断1中断请求,置外部中断1为跳沿触发方式。

每次A/D转换结束,都向CPU请求中断,CPU响应中断,执行中断服务程序,读取A/D转换的结果。第五十六页,共61页。等于1等于1NO开始初始化参数YES读入数据等于0转换结束DS1值等于0千位=1入显示缓冲缓冲地址加1千位=0入显示缓冲Q3值等于1DS2值等于0缓冲地址加1屏蔽高四位百位入缓读入数据

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论