收藏 分享(赏)

第9章80c51单片机的模拟量接口.ppt

上传人:cjc2202537 文档编号:1041328 上传时间:2018-06-07 格式:PPT 页数:61 大小:2.30MB
下载 相关 举报
第9章80c51单片机的模拟量接口.ppt_第1页
第1页 / 共61页
第9章80c51单片机的模拟量接口.ppt_第2页
第2页 / 共61页
第9章80c51单片机的模拟量接口.ppt_第3页
第3页 / 共61页
第9章80c51单片机的模拟量接口.ppt_第4页
第4页 / 共61页
第9章80c51单片机的模拟量接口.ppt_第5页
第5页 / 共61页
点击查看更多>>
资源描述

1、第9章 80C51单片机的模拟量接口,MCS-51与DAC的接口,D/A转换器的原理及主要技术指标,MCS-51与8位DAC0832的接口,非电物理量(温度、压力、流量、速度等),须经传感器转换成模拟电信号(电压或电流),必须转换成数字量,才能在单片机中处理。,A/D转换器(ADC):模拟量数字量的器件, D/A转换器(DAC):数字量模拟量的器件。,数字量,也常常需要转换为模拟信号。,9.1 MCS-51与DAC的接口,输入:数字量,输出:模拟量。 转换过程:送到DAC的各位二进制数按其权的大小转换为相应的模拟分量,再把各模拟分量叠加,其和就是D/A转换的结果。,使用D/A转换器时,要注意区

2、分:,* D/A转换器的输出形式;,* 内部是否带有锁存器。,9.1.1 D/A转换器的原理及主要技术指标,型电阻网络D/A转换器 :,虚地,1、D/A转换器的基本原理,输出电压 的大小与数字量的对应关系:,注:因使用反相比例放大器来实现电流到电压的转换,所以输出模拟信号(VO)的极性与参考电压(VREF)极性相反。,n位数字量B与模拟量的关系式:当,2.主要技术指标,(1)分辨率(Resolution),输入给DAC的单位数字量变化引起的模拟量输出的变化,通常定义为输出满刻度值与2n之比。显然,二进制位数越多,分辨率越高。,例如,若满量程为10V,根据定义则分辨率为10V/2n。设8位D/A

3、转换,即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)建立时间(Establishing Time),描述DAC转换快慢的参数,表明转换速度。定义:为从输入数字量到输出达到终值误差(1/2)LSB(最低有效位)时所需的时间。电流输出时间较短,电压输出的,加上I-V转换的时间,因此建立时间要长一些。快速DAC可达1s以下。,线性度(也称非线性误差)是实际转换特性曲线与理想

4、直线特性之间的最大偏差。常以相对于满量程的百分数表示。如是指实际输出值与理论值之差在满刻度的以内。,(3)线性度(Linearity),绝对精度(简称精度)是指在整个刻度范围内,任一输入数码所对应的模拟量实际输出值与理论值之间的最大误差。绝对精度是由DAC的增益误差(当输入数码为全1时,实际输出值与理想输出值之差)、零点误差(数码输入为全时,DAC的非零输出值)、非线性误差和噪声等引起的。绝对精度(即最大误差)应小于1个LSB。,相对精度与绝对精度表示同一含义,用最大误差相对于满刻度的百分比表示。,(4)绝对精度和相对精度(Conversion Accuracy),应当注意,精度和分辨率具有一

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

6、.2 MCS-51与8位DAC0832的接口,1. DAC0832芯片介绍,DAC0832的逻辑结构:,(2)DAC0832的引脚及逻辑结构,引脚:,2. MCS-51与DAC0832的接口电路,有3种工作方法:直通方式、单缓冲方式和双缓冲方式。,地址FEH,MOV R0,#0FEH ;DAC地址FEHR0,MOVX R0,A ;WR*和译码器FEH输出端有效,(2)单缓冲方式,例9-1 DAC0832用作波形发生器。分别写出产生锯齿波、三角波和矩形波的程序。,(1) 锯齿波的产生,ORG 2000H,START:MOV R0,#0FEH;DAC地址FEH R0,MOV A, #00H;数字量

7、A,LOOP: MOVX R0,A ;数字量D/A转换器,INC A ;数字量逐次加1,SJMP LOOP,每一上升斜边分256个小台阶,每个小台阶暂留时间为执行后三条指令所需要的时间。,改变频率,(2) 三角波的产生,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,(3) 矩形波的产生,ORG 2000H,START: MOV R0,#0FEH,LOOP: MOV A,#

8、data1,MOVX R0,A;置矩形波上限电平,LCALL DELAY1;调用高电平延时程序,MOV A,#data2,MOVX R0,A;置矩形波下限电平,LCALL DELAY2;调用低电平延时程序,SJMP LOOP;重复进行下一个周期,DELAY1、DELAY2为两个延时程序,决定矩形波高、低电平时的持续时间。频率也可采用延时长短来改变。,单缓冲方式适用于只有一路模拟量输出,或有几路模拟量输出但并不要求同步的系统。,电阻的作用?,练习 D/A转换程序,用DAC0832输出0+5V锯齿波,电路为单缓冲方式。设VREF=-5V,若DAC0832地址为7FFFH,脉冲周期要求为100ms。

9、,DACS:MOV DPTR,# 7FFFH ;0832 I/O地址 MOV A,#00H ;开始输出0VDACL:MOVXDPTR,A;D/A转换 INCA;升压 ACALLDELAY ;延时100ms/256:决定锯齿波的周期AJMPDACL;连续输出DELAY:;延时子程序,(3)双缓冲方式,下图中DAC输出的VX和VY信号要同步,控制X-Y绘图仪绘制的曲线光滑,否则绘制的曲线是阶梯状。多路同步输出,必须采用双缓冲同步方式。,1#DAC0832因和译码器FDH相连,占有两个端口地址FDH和FFH。2#DAC0832的两个端口地址为FEH和FFH。其中,FDH和FEH分别为1#和2#DAC

10、0832的数字量输入控制端口地址,而FFH为启动D/A转换的端口地址。,例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端口地址。

11、程序为:,1区的R0,0区的R0,ORG 2000H,addr1 DATA 20H ; 定义存储单元addr2 DATA 40H ; 定义存储单元,DTOUT: MOV R1,#addr1 ; 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 R0,A ; addr1中数据送1#DAC0832,INC

12、 R1 ; 修改addr1指针0区R1,SETB RS0 ; 转1区。MOV R0,#0FEH ;1区R0指向2#DAC0832数字量 ;控制端口MOV A,R1 ;addr2中数据送AMOVX R0,A ;addr2中数据送2#DAC0832,INC R1 ;修改addr2指针1区R1INC R0 ;1区R0指向DAC的启动D/A转换端口,MOVX R0,A ;启动DAC进行转换,CLR RS0 ;返回0区,DJNZ R2,NEXT ;若未完,则跳NEXTLJMP DTOUT ;若送完,则循环,END,仿真,仿真锯齿波及调整周期,仿真三角波及调整周期,仿真矩形波及调整周期和幅度,仿真正弦波,

13、仿真多种波形,用C语言仿真矩形波,9.2 MCS-51与 A/D转换器的接口,MCS-51与ADC的接口,A/D转换器概述,MCS-51与ADC 0809(逐次比较型)的接口,MCS-51与AD574(逐次比较型)的接口,MCS-51与A/D转换器MC14433(双积分型)的接口,9.2.1 A/D转换器概述,A/D转换器的分类,目前使用较广泛的有:逐次比较式转换器、双积分式转换器、-式转换器和V/F转换器。,逐次比较型:精度、速度和价格都适中,是最常用的A/D转换器件。,双积分型:精度高、抗干扰性好、价格低廉,但转换速度慢,得到广泛应用。,-型:具有积分式与逐次比较式ADC的双重优点。对工业

14、现场的串模干扰具有较强的抑制能力,不亚于双积分ADC,但比双积分ADC的转换速度快,与逐次比较式ADC相比,有较高的信噪比,分辨率高,线性度好不需采样保持电路。因此,-型得到重视。,V/F转换型:适于转换速度要求不太高,远距离信号传输。,30,2. A/D转换器的主要技术指标,转换时间和转换速率,完成一次转换所需要的时间。转换时间的倒数为转换速率。,(2) 分辨率,用输出二进制位数或BCD码位数表示。例如AD574,二进制12位,即用212个数进行量化,分辨为1LSB,百分数表示1/212=0.24。,又如双积分式A/D转换器MC14433, 分辨率为三位半。若满字位为1999,其分辨率为1/

15、1999=0.05%。,(3)转换精度,定义为一个实际ADC与一个理想ADC在量化值上的差值。可用绝对误差或相对误差表示。,3. A/D转换器的选择,按输出代码的有效位数分:8位、10位、12位等。,按转换速度分为超高速(1ns)、高速(1s)中速(1ms)、低速(1s)等。,为适应系统集成需要,将多路转换开关、时钟电路、基准电压源、二/十进制译码器和转换电路集成在一个芯片内,为用户提供方便。,(1)A/D转换器位数的确定,系统总精度涉及的环节较多:传感器变换精度、信号预处理电路精度和A/D转换器及输出电路、控制机构精度,还包括软件控制算法。,A/D转换器的位数至少要比系统总精度要求的最低分辨

16、率高1位,位数应与其他环节所能达到的精度相适应。只要不低于它们就行,太高无意义,且价高。,8位以下:低分辨率,912位:中分辨率,13位以上:高分辨率。,(2)A/D转换器转换速率的确定,从启动转换到转换结束,输出稳定的数字量,需要一定的时间,这就是A/D转换器的转换时间。,低速:转换时间从几ms到几十ms 。,中速:逐次比较型的A/D转换器的转换时间可从几s 100s左右。,高速:转换时间仅20100ns。适用于雷达、数字通讯、 实时光谱分析、实时瞬态纪录、视频数字转换 系统等。,如用转换时间为100s的集成A/D转换器,其转换速率为10千次/秒。根据采样定理和实际需要,一个周期的波形需采1

17、0个点,最高也只能处理1kHz的信号。把转换时间减小到10s,信号频率可提高到10kHz。,(3)是否加采样保持器,直流和变化非常缓慢的信号可不用采样保持器。其他情况都要加采样保持器。,根据分辨率、转换时间、信号带宽关系,是否要加采样保持器:如果是8位ADC, 转换时间100ms,无采样保持器,信号的允许频率是0.12Hz;如果是12位ADC,该频率为0.0077Hz。如果转换时间是100s,ADC是8位时,该频率为12Hz,12位时是0.77Hz。,(4)工作电压和基准电压,选择使用单一+5V工作电压的芯片,与单片机系统共用一个电源就比较方便。在要求较高精度时,基准电压要单独用高精度稳压电源

18、供给。,1、逐次逼近式ADC的转换原理,9.2.2 MCS-51与ADC 0809(逐次比较型)的接口,逐次比较式8路模拟输入、8位输出的A/D转换器。,2、ADC0809的引脚、参数及接口,(1)IN0IN7:8路模拟信号输入端。,(2) D0D7:8位数字量输出端。,(3) C 、B 、A:控制8路模拟通道的切换,(5) OE、START、CLK:控制信号端, OE为输出允许端,START为启动信号输入端,CLK为时钟信号输入端。,(4) VR(+)和VR(-):参考电压输入端。,ADC0808的引脚,主要性能为:分辨率为位;精度:ADC0809小于1LSB(ADC0808小于1/2LSB

19、);单+5V供电,模拟输入电压范围为05V;具有锁存控制的路输入模拟开关;可锁存三态输出,输出与TTL电平兼容;功耗为15mW;不必进行零点和满度调整;转换速度取决于芯片外接的时钟频率。时钟频率范围:101280KHz。典型值为时钟频率640KHz,转换时间约为100S。,ADC0809的时序图,查询、中断?,MCS-51与ADC0809的接口,首先用指令选择0809的一个模拟输入通道,当执行MOVX DPTR,A时,单片机的WR*信号有效,产生一个启动信号给0809的START脚,对选中通道转换。,转换结束后,0809发出转换结束EOC信号,该信号可供查询,也可向单片机发出中断请求;当执行指

20、令:MOVX A,DPTR,单片机发出RD*信号,加到OE端高电平,把转换完毕的数字量读到A中。,(1)查询方式见例1,(2)中断方式见例2,将图中EOC脚经一非门连接到8031的INT1*脚即可。转换结束时,EOC发出一个脉冲向单片机提出中断申请,单片机响应中断请求,在中断服务程序读A/D结果,并启动0809的下一次转换,外中断1采用跳沿触发。,MAIN:MOV R1,#DATA ;置数据区首地址 MOV DPTR,#7FF8H;指向通道 MOV R7,#08H;置通道数,LOOP:MOVX DPTR,A;启动A/D转换,HER: JB P3.3,HER ;查询A/D转换结束,MOVX A,

21、DPTR;读取A/D转换结果 MOV R1,A;存储数据,INC DPTR;指向下一个通道 INC R1 ;修改数据区指针 DJNZ R7,LOOP ;个通道转换完否? ,例1:对路模拟信号轮流采样一次,并依次把转换结果存储到片内RAM以DATA为起始地址的连续单元中。,INIT1: SETB IT1 ;外部中断1初始化编程SETB EA ;CPU开中断SETBEX1 ;选择外中断为跳沿触发方式,MOVDPTR,#7FF8H;端口地址送DPTRMOVA,#00H ;MOVXDPTR,A;启动0809对IN0通道转换,SJMP $ ;完成其他的工作,中断服务程序:,PINT1: MOV DPTR

22、,#7FF8H ;A/D结果送内部RAM单元 MOVX A,DPTR MOV 30H,A,MOVA,#00H;启动0809对IN0的转换MOVXDPTR,A;RETI,主程序:,例2:,双积分式ADC的转换原理(数电P487),9.2.4 MCS-51与A/D转换器MC14433(双积分型)的接口,双积分型由于两次积分时间比较长,所以转换速度慢,但精度可以做得比较高;对周期变化的干扰信号积分为零,抗干扰性能也较好。,1.MC14433的介绍,(1)电源及共地端,VDD:主工作电源+5V。,VEE:模拟部分的负电源端 接-5V。,VAG:模拟地端。,VSS: 数字地端。,VR: 基准电压输入端。

23、,各引脚的功能如下:,(2)外接电阻及电容端,R1:积分电阻输入端,转换电压VX=2V时, R1=470;VX=200mV时,R1=27k。,C1:积分电容输入端,一般取0.1F。,R1/C1:R1与C1的公共端。,CLKI、CLKO:外接振荡器时钟调节电阻RC,对时钟频率要求不高的场合,可选择一个电阻即可设定时钟频率,时钟频率为66kHz时,外接电阻取300k即可。,(4)过量程信号输出端,OR*:当|VX|VR,输出低电平。,(5)位选通控制端,(4)过量程信号输出端,(5)位选通控制端,DS4DS1:分别为个、十、百、千位输出的选通脉冲,DS1对应千位,DS4对应个位。每个选通脉冲宽度为

24、18个时钟周期,两个相应脉冲之间间隔为2个时钟周期。如图11-21所示,(3)转换启动/结束信号端,EOC:转换结束信号输出端,正脉冲有效。,DU:启动新的转换,若DU与EOC相连,每当A/D转 换结束后,自动启动新的转换。,(6)BCD码输出端,Q0Q3:BCD码数据输出线。Q3为最高位,Q0为最低位。,当DS2、DS3和DS4选通期间,输出三位完整的BCD码数,但在DS1(千位)选通期间,输出端Q0Q3除了表示个位的0或1外,还表示被转换电压的正负极性(Q2=1为正)、欠量程还是过量程,具体含义如表11-2所示。,(6)BCD码输出端,模拟电路部分有基准电压、模拟电压输入部分。被转换的模拟

25、电压输入量程为199.9mV或1.999V,与之对应的基准电压相应为200mV或2V两种。,数字电路部分由逻辑控制、BCD码及输出锁存器、多路开关、时钟以及极性判别、溢出检测等电路组成。MC14433采用字位动态扫描BCD码输出方式,即千、百、十、个位BCD码轮流地在Q0Q3端输出,同时在DS1DS4端出现同步字位选通信号。,主要的外接器件是时钟振荡器外接电阻RC、外接失调补偿电容C0和外接积分阻容元件R1、C1。,补充说明,MC14433选通脉冲时序,表 DS1选通时Q3Q0表示的结果,2. MC14433与8031单片机的接口,如图11-12,MC1403(与5G1403相同)为+2.5V

26、精密基准源。DU端与EOC端相连,即选择连续转换方式。EOC:转换结束输出标志。,读取A/D转换结果可采用中断方式或查询方式。采用中断方式时,EOC端与8031外部中断输入端INT0*或INT1*相连。采用查询方式EOC端可与任一I/O口线相连。,若用中断方式读结果,选用跳沿触发方式。如转换结果存到8031内部RAM的20H、21H单元中,格式如下:,初始化程序开放CPU中断,允许外部中断1中断请求,置外部中断1为跳沿触发方式。,每次A/D转换结束,都向CPU请求中断,CPU响应中断,执行中断服务程序,读取A/D转换的结果。,等于1,等于1,NO,开始,初始化参数,YES,读入数据,等于0,转

27、换结束,DS1值,等于0,千位=1入显示缓冲,缓冲地址加1,千位=0入显示缓冲,Q3值,等于1,DS2值,等于0,缓冲地址加1,屏蔽高四位 百位入缓,读入数据,屏蔽高四位十位入缓冲,读入数据,等于0,缓冲地址加1,DS3值,等于0,等于1,屏蔽高四位个位入缓冲,DS4值,读入数据,返回初始化,LED显示,等于1,实验十的流程图,ORG 0000LJMP INITIORG 0013HLJMP PINT1 ;跳外部中断1的中断服务程序,ORG 0100HINITI:SETB IT1 ;选择外中断1为跳沿触发方式MOV IE,84H ;CPU开中断,允许外部中断1 ,PINT1:MOV A,P1 ;

28、外部中断1服务程序 JNB Acc.4,PINT1 ;等待DS1选通信号的到来 JB Acc.0,Per ;是否过、欠量程,是则转向Per处理 JB Acc.2,PL1 ;判结果极性,为正,跳PL1,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的到来,SETB 07H ;结果为负,符号位07H置1AJMP PL2 ;,PL1: CLR 07H ;结果为正,符号位清0,PL2: JB Acc.3,PL3 ;千位为0,跳PL3,XCHD A,R0 ;个位数送入21H单元的低4位RETI,PEr:SETB 10H ;置过量程、欠量程标志RETI,SWAP A ;读入十位,高低4位交换INC R0 ;指针指向21H单元MOV R0,A ;十位数的BCD码送入21H的高4位,PL6: MOV A,P1 JNB Acc.7,PL6 ;等待个位数选通信号DS4的到来;,作业,个人作业小组作业 :发往 1. 2. 3. 4. 5.,2018/6/7,61,

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

当前位置:首页 > 高等教育 > 教育学

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报