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

下载本文档

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

文档简介

1、第9章 80C51单片机的模拟量接口,9.1 并行D/A转换器与单片机的接口,1. D/A转换原理,D/A转换的目的是把输入的数字信号转换成与此数字量大小成正比的模拟量,其中C为一个常数。,2. DAC主要性能指标,(1)D/A转换时间:D/A转换时间是指从一个数字量加载到DAC的数据输入端到DAC输出电压达到其最终电压的1/2LSB范围内的时间。一般在几十纳秒到几百微秒的范围。 (2)分辨率:输出电压值之间的最小差值就是 DAC的分辨率。 (3)D/A转换精度:D/A转换器实际输出电压与理论输出电压的偏差。通常以满输出电压VFS的百分数给出。如,精度为0.1%是指最大输出误差为VFS的0.1

2、%,如果VFS为5V,则最大输出误差为5mV。,3. 8位D/A转换器DAC0832,(1)DAC0832简介 DAC0832是一个8位T形电阻网络D/A转换器,转换时间为1s,可以工作在双缓冲模式、单缓冲模式和直通模式。输出为模拟电流,在应用中需要外接运算放大器转成电压输出。,CS:片选信号输入端,低电平有效。 ILE:输入锁存使能信号,高电平有效。 WR1:输入锁存器写选通信号,低电平有效;为低,允许8位数据总线上的数据输入到输入锁存器中,为高,锁存输入锁存器中的数据。 WR2:DAC数据寄存器写控制信号,低电平有效。为低,且为低电平时,输入锁存器中的数据传输到DAC数据寄存器中,并自动开

3、始进行D/A转换。 XFER:数据传输控制信号,低电平有效。与一起控制输入数据锁存器和DAC数据寄存器之间的数据传输。 DI7DI0:8位数据输入总线。,_,_,_,_,Iout1:DAC电流输出1端。 Iout2:DAC电流输出2端。 Iout1 + Iout2 =DAC满输出电流。 Rfb:内部反馈电阻引脚。 Vref:参考电压输入端,可在-10V+10V范围内选择,参考电压直接影响D/A转换的精度,需要外部提供稳定的电压,在精度要求高的场合需要外接高精度稳压器件,要求不高时,可以直接与到电源引脚连接。 VCC:电源,可在+5+15V间选择。 GND:地信号。,(2)DAC0832工作方式

4、 直通方式 单缓冲方式 使用DAC0832内部的锁存器或寄存器中任意一个工作在锁存方式。 双缓冲方式 将ILE接高电平,将地址译码后控制CS引脚和XFER引脚,但是需要给CS和XFER分配不同的地址,把WR1和WR2接到处理器的WR引脚。,_,_,_,_,_,_,_,(3)DAC0832与80C51单片机接口应用举例,1)单缓冲方式的应用举例 例: 在5V电压的工作系统中,通过80C51单片机控制DAC0832输出峰峰值为4V,频率为1kHz的三角波。,MOV DPTR,#7FFFH ;2个机器周期,执行时间为2s MOV A,#DATA ;1个机器周期,执行时间为1s MOVX DPTR,A

5、 ;2个机器周期,执行时间为1s CJNE Rn,#DATA, ;2个机器周期,执行时间为2s 则以上程序的执行时间共为7个机器周期,即7s,需要三角波的周期为1kHz,则其周期为1ms,上升时间为500s。峰峰值为4V,则DAC0832的最大值为4V,最小值为0V,参考电压为5V时,DAC0832的最小输出电压变化为5V/256=0.0195V。4V对应的数字量是4256/5205。如果设置DAC0832每次更新输出的间隔为10s,从零开始,则每次增加4,则增加50次后,数字量为200,对应输出为3.9V,然后再递减到0,如此重复即可近似符合要求。,ORG 0000H AJMP MAIN_S

6、TART ORG 0100H MAIN_START: MOV DPTR,#7FFFH; MOV A,#0 MOV R1,#0 ;开始输出三角波的上升沿 UP: MOVX DPTR,A ;2个机器周期 ADD A,#4 ; 1个机器周期 INC R1 ;记录输出次数,1个机器周期 NOP ;插入空操作,1个机器周期 NOP ;插入空操作,1个机器周期 NOP ;插入空操作,1个机器周期 NOP ;插入空操作,1个机器周期 CJNE R1, #51, UP;判断是否到达最大值,2个机器周期,开始输出三角波的下降沿 DOWN: CLR C SUBB A,#4 MOVX DPTR, A INC R1

7、NOP NOP NOP CJNE R1,#102,DOWN MOV R1,#0 SJMP UP,2)双缓冲方式的应用举例 例: 有一种绘图仪,输入两个模拟量x,y则可以在仪器上根据输入模拟量的变化绘制出x,y的关系曲线图。 有20组x,y值分别存在地址30H,50H开始的数据存储器中,编程绘制此组数据的关系曲线图。 下图U2的连接P2.5,其输入寄存器地址为0DFFFH, U3的连接P2.6,其输入寄存器地址为0BFFFH, 两个DAC0832的连接在一起接到P2.7,其地址为7FFFH。,ORG 0000H AJMP MAIN_START ORG 0100H MAIN_START: MOV

8、R0,#30H ;设置x数据指针 MOV R1,#50H ;设置y数据指针 MOV R2,#0 ;清计数器为零 ;输出x数据到DAC0832 U2的输入寄存器 GOON: MOV DPTR,#0DFFFH ;x数据DAC地址为DFFFH MOV A, R0 MOVX DPTR,A ;写数据到DAC0832 U2 INC R0 ;x数据指针指向下一个数据,;输出y数据到DAC0832 U2的输入寄存器 MOV DPTR,#0BFFFH ;y数据DAC地址为BFFFH MOV A,R1 MOVX DPTR,A ;写数据到DAC0832 U3 INC R1 ;y数据指针指向下一个数据 ;把所有DAC

9、0832的输入数据寄存器的数据写入到DAC转换寄存器,;1s后同时输出数据到绘图仪 MOV DPTR,#7FFFH ;DAC转换寄存器地址为7FFFH MOVX DPTR,A ;使能和,启动D/A转换 INC R2 ;统计输出数据个数 CJNE R2, #20,GOON ;输出20个数据后,绘图结束 SJMP $ ;停机 END,9.2 并行A/D转换器与单片机的接口,1. A/D转换的技术指标 量程:指A/D转换芯片所能转换的模拟输入电压的范围 分辨率:对微小输入量变化敏感程度的度量。 转换时间与转换速率:指从模拟量输入到转换结束输出数字量所需要的时间 ,转换速率则是转换时间的倒数。,2.

10、A/D转换原理 A/D转换是把连续的模拟电信号转换成时间和数值离散的数字信号的过程。实现转换的器件称为模数转换器,简称ADC。 A/D过程:采样、量化、编码。 A/D转换的电路种类很多,根据转换原理可以分为逐次逼近型、双积分型、并行式等。,3. 8位A/D转换器ADC0809 (1)ADC0809简介 8位逐次逼近型A/D转换器; 8路模拟电压; 分辨率为8位; 转换时间与输入时钟频率有关, 当工作时钟为640KHz时,转换时间典型值为100s;,IN0IN7:8路模拟信号输入引脚。 D0D7:8位A/D转换输出数据总线。输出数据与输入电压的关系式为 其中, 表示取整运算。 A、B、C:模拟通

11、道地址选择信号,A为最低位,C为最高位。 SC:转换开始引脚,正脉冲有效。 EOC:转换结束标志信号,高电平有效,表示转换结束。在与处理器连接时,此引脚可以用来向处理器发出中断,或者是供处理器软件查询。,OE:输出使能信号,OE为低电平时,ADC0809数据总线为高阻态,OE为高电平时,数据总线输出数据。 ALE:地址锁存使能信号。该信号的上升沿锁存模拟通道选择地址输入信号。 CLK:ADC0809内部控制电路工作的基准信号。ADC0809允许输入的时钟频率范围是101200kHz。 Vref+,Vref-:内部D/A转换器的参考电压正端和负端。 VCC,GND:芯片工作电源和地。ADC080

12、9工作电压为5V。,ADC0809通道地址选择表,(2)ADC0809工作原理,第一步:地址信号到ABC;ALE地址锁存信号输出高电平,在ALE的上升沿,ADC0809锁存地址信息,选定通道; 第二步:模拟信号输入到ADC的模拟输入脚,使SC高电平,在一定的延时时间内,EOC变成低电平,表示转换开始;接着,外接处理器发出SC低电平信号,ADC0809开始在时钟信号的控制下,进行转换,经过tC时间后,转换完成,EOC输出高电平,并保持高电平,直到下次SC上升沿才变低。从SC变成高电平直到EOC输出电平的时间内,模拟输入信号的电压值必须保持不变。,第三步:处理器查询到EOC变高后,或者是在EOC申

13、请中断后,处理器控制OE信号,使其变高,ADC0809输出数据,数据线在OE下降沿到来后变成高阻态。在OE为低电平时,数据线一直保持为高阻态,因此ADC0809的数据线可以直接连接到系统数据总线上。,(3)ADC0809与80C51单片机接口应用举例 例9.3 某光通信收发模块中,需要同时检测环境温度,发射光功率和接收功光率。现选用80C51作为控制器,设计系统。,ORG 0000H AJMP MAIN_START ORG 0003H AJMP INT_EX0_HANDLE ORG 0100H ;ADC0809中断处理子程序 INT_EX 0_HANDLE: MOVX A, DPTR ;读取A

14、DC0809的转换结果 MOV R0,A ;保存数据 INC R0 ;数据指针指向下一个位置 INC DPTR ;指向下一个模拟量 DJNZ R1,READ ;判断转换次数 MOV DPTR, #8000H ;重现开始新一轮A/D转换 MOV R0,#30H MOV R1,#03H,READ: MOVX DPTR,A ;一次A/D结束,重新启动0809 RETI ORG 0200H MAIN_START: MOV R0,#30H ;设置数据保存指针 MOV R1, #03H ;设计数据个数 MOV DPTR, #8000H ;设置0809的最低地址 SETB IT0 ;设置外部中断为下降沿触发

15、 SETB EX0 ;开外部中断0 SETB EA ;开全局中断 MOVX DPTR, A ;启动0809进行转换 SJMP $ END,AD1674:12位逐次逼近型A/D转换器。集成时钟电路、10V基准参考电压、采样保持电路和三态输出缓冲器。转换时间典型值为10s,1路模拟量输入。 量程可通过硬件连接选择: 单极性模式下:从10VIN输入为0 10V,从20VIN输入为0 20V; 双极性模式下:从10VIN输入为-5V +5V,从20VIN输入为-10V +10V。,4. 12位A/D转换器AD1674 (1)AD1674简介,AGND:模拟地。 A0:控制输入信号,在启动和读取数据时有

16、不同的作用。当转换启动时:若A0=0,则器件工作在12位ADC模式;若A0=1,则器件工作在8位ADC模式;当读取ADC结果时(R/=1),若A0=0,表示读取的是高8位数据(DB4DB11);若A0=1,表示读取的是低4位数据(DB0DB3)。 BIPOFF:双极性偏置端。工作在双极性模式时,通过一个50W电阻连接到REFOUT引脚;工作在单极性模式时,连接到模拟公共端。 CE:器件工作使能信号。高电平时允许芯片工作。 CS:片选信号,低电平有效。 DB11DB0:转换结果数据输出信号,三态输出。 DGND:数字地信号。 REFOUT:10V内部基准参考电压输出。 R/C:读/启动控制输入信

17、号。=1,表示读数据;=0,表示启动A/D转换。,_,_,REFIN:参考电压输入端,在正常使用时,经过一个50W电阻连接到参考电压输出端。 STS:器件工作状态输出信号。STS=1,表示转换正在进行;STS=0,表示转换结束。 VCC:+15V电压输入端。VEE:-15V电压输入端。 Vlogic:+5V电压输入端。 10VIN:10V量程模拟量输入端。单极性时,输入模拟量范围是010V;双极性时-5V+5V。20VIN:20V量程模拟量输入端。单极性时,输入模拟量范围是020V;双极性时-10V+10V。 12/8:12位、8位选择输入端。此引脚为高时,12位数据转换结果一次输出;此引脚为

18、低时,A0=0,12位转换结果的高8位从DB11DB4输出,A0=1,12位转换结果的低4位从DB3DB0输出。,_,(2)AD1674的工作原理 工作模式:12位A/D转换器,但可以工作在8位A/D转换模式下。 工作在12位ADC模式时,12位A/D转换结果的数据格式可以选择为12位格式和8位数据格式两种。 A/D转换结果的计算: AD1674可以工作在双极性方式和单极性方式。而且有两个模拟量输入引脚。 模拟量从10VIN引脚输入时,AD1674的量程是:单极性为0-10V,双极性为-5V-+5V。 模拟量从20VIN引脚输入时,AD1674的量程是:单极性为0-20V,双极性为-10V-+

19、10V。 两个模拟量输入引脚只能使用一个,不用时悬空。极性的选择决定于参考电压的连接方式。,A/D转换结果的计算:,单极性应用,AD1674单极性输入典型电路,双极性应用,AD1674的操作真值表,控制方法:,(3)AD1674与80C51的接口设计 80C51单片机是8位处理器,与ADC1674连接时要求其数据格式为8位。为了能够清楚讨论80C51与12位ADC的接口方式,我们设置AD1674工作在12位模式。,对应启动和读取一次A/D转换结果的参考程序: AD_CONVERTE: MOV R0,#40H ;把A/D转换的结果存在40H开始的两个单元内,;高地址存高8位,低地址存低4位加4个

20、0 MOV DPTR,#0FF7CH ;写片外存储单元FF7CH,启动AD1674 MOVX DPTR,A MOV P1,#0FFH JB P1.0,$ ;查询STS状态,直到STS=0,表示转换结束 MOV DPTR,#0FF7FH;读取A/D转换的低4位 MOVX A, DPTR ;存在40H单元的高4位,低4位全0 MOV R0, A INC R0 MOV DPTR,#0FF7EH;读取A/D转换的高8位, MOVX A, DPTR ;数据存在41H单元 MOV R0,A,9.3 串行A/D、D/A转换器与单片机的接口,1. 串行A/D、D/A转换器PCF8591 集成8位A/D、D/A

21、两种转换功能。其对外数据传输通过I2C串行总线进行,最高时钟速率为100kHz。最短转换周期为90s。 可以分时为4路独立的模拟量进行转换。D/A转换部分可以输出1路模拟量。 该器件I2C从地址的低三位由芯片的A0、A1和A2三个地址引脚决定。,AIN0AIN3:A/D转换器的4路模拟量输入引脚。 A0A2:芯片的I2C总线地址低3位设置引脚,A0为最低有效位。 AOUT:D/A转换器的模拟量输出引脚。 SCL:I2C总线的时钟输入引脚。PCF8591规定的最高时钟速率为100kHz。 SDA:I2C总线的数据传送引脚。PCF8591的寄存器设置、地址选择、A/D转换结果、D/A转换的输入数据

22、都在这根线上传送。 EXT:内部时钟、外部时钟选择引脚。EXT=1,从OSC引脚输入外部时钟;EXT=0,PCF使用内部时钟。 OSC:时钟引脚。选择内部时钟时,此引脚输出内部时钟;选择外部时钟时,此引脚输入外部时钟。 VCC,GND:电源和地。PCF8591的工作电压为2.56V。 VREF,AGND:内部D/A电阻网络的参考电源和地。,PCF8591的内部结构: 内部主要包括内部逐次逼近D/A转换模块,高精度比较器,两个模拟量采样保持模块,一个4路模拟开关,I2C总线接口模块,三个寄存器和其他控制模块。,2. 工作原理 I2C使用两根信号线进行串行数据传送,这两根信号线分别是:SCL时钟信

23、号,SDA数据信号。,进行D/A转换时,需要通过I2C传送数据到PCF8591。 第一个传送的字节是地址信息 第二个字节是写入PCF8591控制寄存器的数据,用来配置PCF8591。 第三个字节是写入D/A转换寄存器的数据。这个字节写完后,D/A转换开始进行,经过最长90s转换延迟后,PCF8591的模拟量输出引脚AOUT输出正比于输入数据的电压值。,(1)PCF8591的D/A转换工作原理,PCF8591地址格式,PCF8591控制寄存器格式,输出模拟电压与输入数据之间的关系为:,在使用PCF8591进行A/D转换之前,首先需要发送两个字节信息对PCF8591进行配置。 设置完成后,就是读取A/D转换结果。,选择单端输入时,A/D转换结果为二进制数, 与输入电压的关系为:,选择差分输入时,A/D转换结果为补码表示的二进制数,与输入电压的关系为:,3. 80C51与PCF8591的接口设计,从PCF8591读取一次A/D转换结果和启动PC8591进行一次D/A转换的的参考程序。 LCALL I2C_START ;启动I2C总线操作 MOV A,#10010001B ;访问PCF8591的A/D LCALL WR

温馨提示

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

评论

0/150

提交评论