片机AD及DA转换接口.ppt

上传人:wuy****n92 文档编号:54012221 上传时间:2022-10-27 格式:PPT 页数:57 大小:249.50KB
返回 下载 相关 举报
片机AD及DA转换接口.ppt_第1页
第1页 / 共57页
片机AD及DA转换接口.ppt_第2页
第2页 / 共57页
点击查看更多>>
资源描述

《片机AD及DA转换接口.ppt》由会员分享,可在线阅读,更多相关《片机AD及DA转换接口.ppt(57页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、教学基本要求:教学基本要求:(1 1)、熟悉)、熟悉DAC0832DAC0832的内部结构及工作方式;的内部结构及工作方式;(2 2)、掌握单片机与)、掌握单片机与DAC0832DAC0832的接口原理;的接口原理;(3 3)、熟悉)、熟悉ADC0809ADC0809的内部结构及功能;的内部结构及功能;(4 4)、掌握单片机与)、掌握单片机与ADC0809ADC0809的接口原理;的接口原理;教学重点:教学重点:(1 1)、单片机与)、单片机与DAC0832DAC0832的接口原理;的接口原理;(2 2)、单片机与)、单片机与ADC0809ADC0809的接口原理;的接口原理;教学难点:教学难

2、点:(1 1)、单片机与)、单片机与DAC0832DAC0832接口的程序设计;接口的程序设计;(2 2)、单片机与)、单片机与ADC0809ADC0809接口的程序设计;接口的程序设计;第第1010章章 单片机单片机A/DA/D及及D/AD/A转换器接口转换器接口10.1 单片机片机测控系控系统与模与模拟输入通道入通道10.1.1 单片机片机测控系控系统概述概述测控包含控包含“测”与与“控控”两个两个过程。程。所所谓“测”就是就是实时采集被控采集被控对象的物理参量,象的物理参量,诸如温度、如温度、压力、流量、速度和力、流量、速度和转速等。速等。这些参量通常都是模些参量通常都是模拟量,量,即即

3、连续变化的物理量。化的物理量。所所谓“控控”就是把采集的数据就是把采集的数据经单片机片机计算、比算、比较等等处理后得出理后得出结论,以,以对被控被控对象象实施校正控制。但施校正控制。但经单片机片机处理后得到的是数字量理后得到的是数字量结果。果。测控系控系统离不开模离不开模拟量与数字量的相互量与数字量的相互转换,因此,模,因此,模/数数(A/D)与数与数/模模(D/A)转换也就成了也就成了测控系控系统的重要内容。的重要内容。10.1.2 模拟输入通道 模模拟输入通道的工作从采集信号开始。由于入通道的工作从采集信号开始。由于传感器采集感器采集到的模到的模拟信号幅信号幅值通常很小,而且通常很小,而且

4、连续变化的信号容易受到化的信号容易受到干干扰,因此,要,因此,要对传感器采集到的原始信号感器采集到的原始信号进行放大、采行放大、采样、保持、保持、滤波等波等处理后,才能送理后,才能送给A/D转换器。器。这一系列的一系列的处理理过程构成了模程构成了模拟输入通道,如下入通道,如下图。1.传感器感器 传感器的主要功能是采集信号,也兼有信号感器的主要功能是采集信号,也兼有信号转换功能,即把采集到的功能,即把采集到的非非电信号信号转换为电信号信号(电压或或电流流),以便于后,以便于后续处理。理。传感器的种感器的种类繁繁多,常用的多,常用的传感器有如下几种:感器有如下几种:温度温度传感器:感器:用于将温度

5、用于将温度转换为电信号。信号。光光电传感器:利用光感器:利用光电效效应将光信号将光信号转换为电信号。信号。湿度湿度传感器:感器:常用的湿度常用的湿度传感器有毛感器有毛发湿度湿度计、干湿球湿度、干湿球湿度计、金属氧、金属氧化物湿敏元件等。化物湿敏元件等。流量流量传感器:感器:用于用于测量液体和气体的流量。常用的流量量液体和气体的流量。常用的流量传感器有速度式感器有速度式流量流量计和容和容积式流量式流量计等。等。压力力传感器:感器:用于大气用于大气压力力(气气压)测量和容器壁量和容器壁压力力测量等。量等。机械量机械量传感器:感器:常用的机械量有拉力、常用的机械量有拉力、压力、位移、速度、加速度、扭

6、力、位移、速度、加速度、扭矩及荷重等。常矩及荷重等。常见的机械量的机械量传感器有感器有电阻阻应变片、力片、力传感器、荷重感器、荷重传感器、感器、位移位移传感器和感器和转速速传感器等。感器等。成分分析成分分析传感器:感器:用于用于对混合气体或混合物的成分混合气体或混合物的成分进行自行自动分析。分析。pH值传感器:感器:用于用于测量水溶液的酸碱度。量水溶液的酸碱度。2.放大器放大器 传感器得到的感器得到的电压或或电流信号往往幅度流信号往往幅度较小,小,难以直以直接接进行行A/D转换,需要使用放大器,需要使用放大器对模模拟信号信号进行放大行放大处理。理。放大器的种放大器的种类很多,但在模很多,但在模

7、拟输入通道中使用的是一入通道中使用的是一种具有高放大倍数并种具有高放大倍数并带深度深度负反反馈的直接耦合放大器,由的直接耦合放大器,由于它可以于它可以对输入信号入信号进行多种数学运算行多种数学运算(例如比例、加、例如比例、加、减、减、积分和微分等分和微分等),所以称,所以称为运算放大器。运算放大器运算放大器。运算放大器具有具有输入阻抗高,增益大,可靠性高,价格低和使用方便入阻抗高,增益大,可靠性高,价格低和使用方便等特点。等特点。现在已有各种在已有各种专用或通用的运算放大器可供用或通用的运算放大器可供选择。3.采采样/保持保持电路路 采采样是是为了跟踪了跟踪输入信号的入信号的变化,其化,其实质

8、是将一个是将一个连续变化的模化的模拟信号信号转换为时间上离散的采上离散的采样信号,采信号,采样频率要率要远高高于模于模拟信号中的最高信号中的最高频率成分率成分(一般一般为倍倍)。保持保持则是是为了把采了把采样信号保持一段信号保持一段时间,因,因为其后的其后的A/D转换需要有一个需要有一个时间过程。在保持期程。在保持期间要要维持信号的持信号的稳定,尽定,尽可能保持信号不可能保持信号不变。在模在模拟输入通道中,采入通道中,采样电路和保持路和保持电路是合在一起的,路是合在一起的,称称为采采样/保持保持电路。如下路。如下图所示。所示。4.滤波器波器 滤波可分波可分为模模拟滤波和数字波和数字滤波两种。波

9、两种。模模拟滤波由波由电子元器件搭建的子元器件搭建的滤波波电路完成,模路完成,模拟滤波波又可分又可分为无源和有源两种。无源无源和有源两种。无源滤波是使用无源器件波是使用无源器件(电感、感、电容和容和电阻阻)构成的构成的滤波波电路。有源路。有源滤波器波器则是用放大器和是用放大器和电容、容、电阻构成的阻构成的滤波波电路。路。数字数字滤波,就是通波,就是通过程序程序对采采样信号信号进行平滑加工,以行平滑加工,以提高其有用信号,消除或抑制干提高其有用信号,消除或抑制干扰信号。有多种数字信号。有多种数字滤波程波程序,例如,程序判断序,例如,程序判断滤波程序、中波程序、中值滤波程序、算波程序、算术平均平均

10、滤波程序、加波程序、加权平均平均滤波程序、一波程序、一阶滞后滞后滤波程序以及复合波程序以及复合滤波程序等。波程序等。与模与模拟滤波相比,数字波相比,数字滤波具有众多波具有众多优点,所以在点,所以在现代代测控系控系统中广泛使用数字中广泛使用数字滤波。数字波。数字滤波不但不需要硬件波不但不需要硬件设备,而且使用也很方便,只需在程序,而且使用也很方便,只需在程序进入数据入数据处理或控制算理或控制算法前,附加一段法前,附加一段滤波程序即可。波程序即可。A/D转换器:器:实现模模拟量量数字量的数字量的转换。1.按原理划分的芯片按原理划分的芯片类型型积分型分型A/D转换器。也称双斜率或多斜率器。也称双斜率

11、或多斜率A/D转换器。器。应用最用最为广泛,具有精度高、抗干广泛,具有精度高、抗干扰能力能力强等等优点。点。逐次逼近型逐次逼近型A/D转换器。原理器。原理简单,便于,便于实现,不存,不存在在时间延延迟问题。闪烁型型A/D转换器。最大特点是速度快,但功耗大且器。最大特点是速度快,但功耗大且电路复路复杂,所以芯片尺寸也比,所以芯片尺寸也比较大。大。型型A/D转换器。又称器。又称为过采采样A/D转换器。器。虽然出然出现得得较晚,但却具有分辨率高,价格便宜以及抗干晚,但却具有分辨率高,价格便宜以及抗干扰能力能力强等等优点。点。10.2 A/D 转换器器2.输入入电压信号形式信号形式单极性极性电压信号,

12、各种信号,各种A/D转换芯片都具有芯片都具有这种种输入入形式。一般可允形式。一般可允许电压变化范化范围是是0+5 V、0+10 V和和0+20 V等。等。双极形式的双极形式的电压信号,可正可信号,可正可负,虽然然还是通是通过一条一条引引线输入,但芯片上需要有一入,但芯片上需要有一对极性相反的工作极性相反的工作电源源与之配合。与之配合。差分信号是不共地的差分信号是不共地的电压信号,两个极性的差分信号信号,两个极性的差分信号需要两条信号需要两条信号线输入,在芯片上表示入,在芯片上表示为VIN+和和VIN-。差分差分电压信号可以从非信号可以从非0 V开始,其开始,其变化范化范围可以是可以是2 V、4

13、 V、5 V和和10 V等等。3.输出二出二进制代制代码形式形式二二进制制码A/D转换芯片芯片输出的是二出的是二进制代制代码,其位数可分,其位数可分为8位、位、10位、位、12位、位、14位、位、16位、位、20位和位和24位等。位等。BCD码A/D转换芯片芯片输出的是多位出的是多位BCD码,这类转换芯片的芯片的典型典型应用是在数字用是在数字电压表中,表中,输出的出的BCD码可直接送可直接送LED或或LCD进行行显示。常示。常见的的BCD码A/D转换芯片的位数有芯片的位数有3位半、位半、4位半和位半和5位半等。位半等。4.A/D转换器分辨率器分辨率 A/D转换器,被器,被转换量是量是电压,所以

14、分辨率是,所以分辨率是对输入入电压信号信号变化的分辨能力,化的分辨能力,A/D转换器位数越多,分辨率的器位数越多,分辨率的值越小,分辨能力就越越小,分辨能力就越强,亦即,亦即转换器器对输入量入量变化的敏感化的敏感程度也就越高。所以程度也就越高。所以选择A/D转换器器时,要把位数放在重要,要把位数放在重要的位置。的位置。5.A/D转换器的控制信号器的控制信号 A/D转换芯片中有一些控制信号,包括芯片中有一些控制信号,包括时钟信号、信号、转换启启动信号和信号和转换结束信号等,接口束信号等,接口连接接时要要对这些信号些信号进行行处理。理。(1)时钟信号信号 时钟信号信号A/D转换需要需要时钟信号的配

15、合,有些信号的配合,有些A/D转换芯芯片片(例如例如AD571等等)内部有内部有时钟电路。另外一些路。另外一些A/D转换芯片芯片(例如例如ADC0808/0809等等)内部没有内部没有时钟电路,所需路,所需时钟信号由信号由外界提供。外界提供。(2)转换启启动信号信号 转换启启动信号信号转换启启动信号信号应由由CPU提供,不同型号的提供,不同型号的A/D转换芯片芯片对转换启启动信号的要求不尽相同。有的要求脉信号的要求不尽相同。有的要求脉冲信号启冲信号启动,例如,例如ADC0804、ADC0809等芯片,而有的芯片等芯片,而有的芯片则要求要求电平信号启平信号启动,例如,例如AD570、AD571和

16、和AD574等等。6.转换结束与数据束与数据读取取 A/D转换后得到的数字量数据后得到的数字量数据应及及时传送送给单片机片机进行行处理,在数据理,在数据转换完成后,完成后,进行行读取。取。(1)定)定时等待方式等待方式 对于一个于一个A/D转换芯片来芯片来说,转换时间作作为一一项技技术指指标是已知且固定的,可用延是已知且固定的,可用延时的方法等待的方法等待转换结束,此即束,此即定定时等待方式。等待方式。(2)查询方式方式 A/D转换芯片都提供表明芯片都提供表明转换完成的状完成的状态信号,可以用信号,可以用查询方式,通方式,通过测试状状态就可以知道就可以知道转换是否完成。是否完成。(3)中断方式

17、)中断方式 表明表明转换是否完成的状是否完成的状态信号信号(ADC0809为EOC)都可作都可作为中断中断请求信号使用,从而可采用中断方式求信号使用,从而可采用中断方式进行行转换数据的数据的传送。送。10.2.1 810.2.1 8位位A/DA/D转换器芯片与转换器芯片与80C5180C51接口接口 ADC0809采用逐次逼近式采用逐次逼近式A/D转换原理,可实现转换原理,可实现8路路模拟信号的分时采集,片内有模拟信号的分时采集,片内有8路模拟选通开关,以及相路模拟选通开关,以及相应的通道地址锁存与译码电路,转换时间为应的通道地址锁存与译码电路,转换时间为100 s左右。左右。ADC0809的

18、内部逻辑结构如下图所示。的内部逻辑结构如下图所示。图中多路开关可中多路开关可选通通8个模个模拟通道,允通道,允许8路模路模拟量分量分时输入,共用一个入,共用一个A/D转换芯片芯片进行行转换。地址。地址锁存与存与译码电路完成路完成对A、B、C 3个地址位个地址位进行行锁存和存和译码,其,其译码输出出用于通道用于通道选择。8位位A/D转换器是逐次逼近式。器是逐次逼近式。输出出锁存器存器用于存放和用于存放和输出出转换得到的数字量。得到的数字量。2 2、信号引脚、信号引脚 ADC 0809ADC 0809转换器芯片为转换器芯片为2828引脚,双列直插式(引脚,双列直插式(DIPDIP)封装。)封装。(

19、1 1)、)、IN7IN7IN0IN0:模拟量输入通道;:模拟量输入通道;ADC0809ADC0809对输入模拟量的要求主要有:信号单极性,电压范围对输入模拟量的要求主要有:信号单极性,电压范围0 05 V5 V,若信号过小还需进行放大。另外,在,若信号过小还需进行放大。另外,在A/DA/D转换过程中,模转换过程中,模拟量输入的值不应变化太快,因此,对变化速度快的模拟量,在拟量输入的值不应变化太快,因此,对变化速度快的模拟量,在输入前应增加采样保持电路。输入前应增加采样保持电路。(2 2)、)、A A、B B、C C:地址线;:地址线;A A为低位地址,为低位地址,C C为高位地址,用于对模拟

20、通道进行选择;为高位地址,用于对模拟通道进行选择;C B A 选择的通道选择的通道0 0 00 0 10 1 00 1 11 0 01 0 1 1 1 0 1 1 1 IN0IN1IN2IN3IN4IN5IN6IN7(3 3)、)、ALEALE:地址锁存允许信号;:地址锁存允许信号;在对应在对应ALEALE上跳沿,上跳沿,A A、B B、C C地址状态送入地址锁存器中;地址状态送入地址锁存器中;(4 4)、)、STARTSTART:转换启动信号;:转换启动信号;STARTSTART上跳沿时,所有内部寄存器清上跳沿时,所有内部寄存器清0 0;STARTSTART下跳沿时,开始下跳沿时,开始进行进

21、行A/DA/D转换;在转换;在A/DA/D转换期间,转换期间,STARTSTART应保持低电平;应保持低电平;(5 5)、)、D7D7D0D0:数据输出线;:数据输出线;(6 6)、)、OEOE:输出允许信号;:输出允许信号;用于控制三态输出锁存器向单片机输出转换得到的数据。用于控制三态输出锁存器向单片机输出转换得到的数据。OE=0OE=0,输出数据线呈高电阻;,输出数据线呈高电阻;OE=1OE=1,输出转换得到的数据;,输出转换得到的数据;(7 7)、)、CLKCLK:时钟信号,通常使用频率为:时钟信号,通常使用频率为500kHz500kHz的时钟信号;的时钟信号;(8 8)、)、EOCEO

22、C:转换结束状态信号。:转换结束状态信号。EOC=0EOC=0,正在进行转换;,正在进行转换;EOC=1EOC=1,转换结束。该状态信号既可,转换结束。该状态信号既可作为查询的状态标志,又可以作为中断请求信号使用;作为查询的状态标志,又可以作为中断请求信号使用;(9 9)、)、VCCVCC:+5 V+5 V电源;电源;(1010)、)、VrefVref:参考电源。:参考电源。参考电压用来与输入的模拟信号进行比较,作为逐次逼近的参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准。其典型值为基准。其典型值为+5 V+5 V(Vref(+)=+5 VVref(+)=+5 V,Vref(-)=0

23、 VVref(-)=0 V)。3 3、MCS-51MCS-51单片机与单片机与ADC 0809ADC 0809接口接口 8路模拟通道选择信号路模拟通道选择信号A、B、C分别接最低分别接最低3位地址位地址A0、A1、A2(即、),而地址锁存允许信号(即、),而地址锁存允许信号ALE由控制,则由控制,则8路模拟路模拟通道的地址为通道的地址为FEF8HFEFFH。4 4、应用举例、应用举例 设计一个设计一个8 8路模拟量输入的巡回检测系统,采样数据依次存放在路模拟量输入的巡回检测系统,采样数据依次存放在片外片外RAM 0A0HRAM 0A0H0A7H0A7H单元中,单元中,ADC 0809ADC 0

24、809的的8 8路通道路通道IN0IN0IN7IN7的地址的地址分别为分别为FEF8HFEF8HFEFFHFEFFH,其数据采样的初始化程序和中断服务程序,其数据采样的初始化程序和中断服务程序如下:如下:设计思路:设计思路:执行一条执行一条“MOVX DPTR,A”指令,产生指令,产生WR信号,使信号,使ALE和和START有效,就可以启动一次有效,就可以启动一次A/D转换。但一次转换。但一次启动只能进行一个通道的转换,启动只能进行一个通道的转换,8个通道的个通道的A/D转换需按转换需按通道顺序逐个进行。为此,在程序中应当有改变通道号通道顺序逐个进行。为此,在程序中应当有改变通道号的指令,并且

25、每改变一次就执行一次启动的指令,并且每改变一次就执行一次启动A/D转换指令。转换指令。初始化程序:初始化程序:ORG 0000HORG 0000H LJMP MAIN LJMP MAIN ORG 0013H ORG 0013HLJMP ADCLJMP ADC ORG 0100HORG 0100H MAIN:MOV R0,#A0H ;MAIN:MOV R0,#A0H ;数据存数据存储区首址区首址MOV R2,#08H ;MOV R2,#08H ;通道通道计数数SETB IT1 ;SETB IT1 ;边沿触沿触发方式方式,下降沿下降沿SETB EA ;SETB EA ;中断允中断允许SETB EX

26、1 ;SETB EX1 ;外部中断外部中断1 1允允许MOV DPTR,#0FEF8H ;MOV DPTR,#0FEF8H ;通道首地址通道首地址LOOPLOOP:MOVX DPTRMOVX DPTR,A ;A ;启启动A/DA/D转换 LCALL DELY1MSLCALL DELY1MS DJNZ R2 DJNZ R2,LOOPLOOPLJMP MAINLJMP MAIN中断服务程序:中断服务程序:ORG 0500H ADC:MOVX A,DPTR;读;读A/D转换结果转换结果 MOVX R0,A ;存数;存数 INC DPTR;更新通道;更新通道 INC R0 ;更新暂存单元;更新暂存单元

27、 RETI ;返回;返回#include#include#define uchar unsigned char#define IN0 XBYTE 0 x7ff8 /*设置置AD0809的通道的通道0地址地址*/uchar k;uchar xdata*ad_adr;uchar idata ad10;void main()uchar i;while(1)IT1=1;EA=1;EX1=1;ad_adr=&IN0;k=0;for(i=0;i8;i+)/*处理理8通道通道*/*ad_adr=0;/*启启动转换*/daly1ms();void INTT1()interrupt 2void INTT1()i

28、nterrupt 2 adk=*ad_adr;adk=*ad_adr;ad_adr+;/*ad_adr+;/*下一通道下一通道*/k+;k+;ORG 0000H LJMP MAIN ORG 0100HMAIN:MOV R0,#0A0H;MOV R2,#08H;MOV DPTR,#0FEF8H;LOOP:MOVX DPTR,A ;启启动转换LOOPP:JB P3.3,LOOPP 查询转换是否是否结束束 MOVX A,DPTR;读A/D转换结果果 MOVX R0,A ;存数;存数 INC DPTR;更新通道;更新通道 INC R0 ;更新;更新暂存存单元元 DJNZ R2,LOOP LJMP MA

29、IN END用查询法实现:用查询法实现:采用采用查询方式,采集方式,采集结果放在数果放在数组ad中:中:#include#include#define uchar unsigned char#define IN0 XBYTE 0 x7ff8 /*设置置AD0809的通道的通道0地址地址*/sbit ad_busy=P33;/*即即EOC状状态*/void ad0809(uchar idata*x)/*采采样结果放指果放指针中的中的A/D采集函数采集函数*/uchar i;uchar xdata *ad_adr;ad_adr=&IN0;for(i=0;i8;i+)/*处理理8通道通道*/*ad_

30、adr=0;/*启启动转换*/i=i;/*延延时等待等待EOC变低低*/i=i;while(ad_busy=0);/*查询等待等待转换结束束*/xi=*ad_adr;/*存存转换结果果*/ad_adr+;/*下一通道下一通道*/void main(void)static uchar idata ad 10 ;while(1)ad0809(ad);/*采采样AD0809通道的通道的值*/利用利用ADC0809转换器,器,轮流采集模流采集模拟量量输入入电压信号,并将模信号,并将模拟量量转换成数字量,通成数字量,通过数数码管管显示器示器显示示(P1接段控,接段控,P2接位控接位控)(1)延)延时法法

31、 MAIN:MOVSP,#2FH MOVDPTR,#0FEF8HMOVX DPTR,ALCALL DELAYMOVX A,DPTRMOVB,#51DIVABMOVR0,AMOVA,BMOVB,#5DIVABMOVR1,AMOVA,BMOVR2,A MOVDPTR,#TABMOVA,R0MOVC A,A+DPTRMOVP2,#04HMOVP1,ALCALL DELAYMOVA,R1MOVCA,A+DPTRMOVP2,#08HMOVP1,ALCALLDELAYMOVA,R2MOVCA,A+DPTRMOVP2,#10HMOVP1,ALCALLDELAYLJMPMAINDELAY:。RETTAB:DB

32、 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END(2)中断法)中断法ORG0000HLJMPMAINORG0013HLJMPINTT1MAIN:MOV SP,#3FH MOV DPTR,#0FEF8HSETBEASETBEX1MOVX DPTR,A HERE:LJMPHEREINTT1:MOVX A,DPTRMOVB,#51DIVABMOVR0,AMOVA,BMOVB,#5DIVABMOVR1,AMOVA,BMOVR2,AMOVDPTR,#TABMOVA,R0MOVCA,A+DPTRMOVP2,#04HMOVP1,ALCALLDELAYMOVA

33、,R1MOVCA,A+DPTRMOVP2,#08HMOVP1,ALCALLDELAYMOVA,R2MOVCA,A+DPTRMOVP2,#10HMOVP1,ALCALLDELAYMOV DPTR,#0FEF8HMOVX DPTR,ARETIDELAY:。RETTAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END(3)查询法法MAIN:MOV SP,#2FH MOV DPTR,#0FEF8HCLR EALOOP0:MOVX DPTR,A LOOP:JB P3.3,LOOP MOVX A,DPTRMOVB,#51DIVABMOVR0,AMOV

34、A,BMOVB,#5DIVABMOVR1,AMOVA,BMOVR2,A。#include#include#define uchar unsigned char#define uint unsigned int#define ADC0809 XBYTE 0 xFEF8sbit EOC=P33;char code dis_code=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90,0 xff;char find_code=10,10,10,10;void DelayX1ms(uint count)uint j;while(cou

35、nt-!=0)for(j=0;j80;j+);void main()uint data1;ADC0809=0;while(1)do display();while(EOC);ADC0809=0;data1=ADC0809;find_code0=data1/51;/个位个位 find_code1=data1%51*10/51;/小数点后第一位小数点后第一位 find_code2=data1%51*10%51*10/51;/小数点后两位小数点后两位 display();void display()char k;P2=0 x10;k=find_code2;P1=dis_codek;DelayX1ms

36、(1);P2=0 x08;k=find_code1;P1=dis_codek;DelayX1ms(1);P2=0 x04;k=find_code0;P1=dis_codek;DelayX1ms(1);10.3 D/A10.3 D/A转换器接口器接口10.3.1 D/A10.3.1 D/A转换芯片转换芯片 1 1、概述、概述 D/AD/A转换器输入的是数字量,经转换后输出的是模拟量。转换器输入的是数字量,经转换后输出的是模拟量。D/AD/A转换器按输出形式可分为:转换器按输出形式可分为:(1 1)、电压输出形式)、电压输出形式 输入:二进制数或输入:二进制数或BCDBCD码数码数 输出:电压输出

37、:电压(2 2)、电流输出形式)、电流输出形式 输入:二进制数或输入:二进制数或BCDBCD码数码数 输出:电流输出:电流 D/A D/A转换器按其内部是否含有锁存器可分为:转换器按其内部是否含有锁存器可分为:(1 1)、内部无)、内部无数据锁存器数据锁存器的的D/AD/A转换器转换器(2 2)、内部有)、内部有数据锁存器数据锁存器的的D/AD/A转换器转换器 2 2、技术指标、技术指标 D/AD/A转换器的技术性能指标:转换器的技术性能指标:绝对精度、相对精度、线性度、输出电压范围、温度系数、输绝对精度、相对精度、线性度、输出电压范围、温度系数、输入数字代码种类(二进制或入数字代码种类(二进

38、制或BCDBCD码)等。码)等。(1 1)、)、分辩率分辩率 分辨率是分辨率是D/AD/A转换器对输入量变化敏感程度的描述,与输入数字转换器对输入量变化敏感程度的描述,与输入数字量的位数有关。量的位数有关。如果数字量的位数为如果数字量的位数为n n,则,则D/AD/A转换器的分辨率为转换器的分辨率为2 2-n-n。这就意味。这就意味着数着数/模转换器能对满刻度的模转换器能对满刻度的2 2-n-n输入量作出反应。输入量作出反应。使用时,应根据分辨率的需要来选定转换器的位数。使用时,应根据分辨率的需要来选定转换器的位数。DACDAC常可分常可分为为8 8位、位、1010位、位、1212位三种。位三

39、种。(2 2)、)、建立时间建立时间 建立时间是描述建立时间是描述D/AD/A转换速度快慢的一个参数,指从输入数字量转换速度快慢的一个参数,指从输入数字量变化到输出达到终值误差变化到输出达到终值误差(1/21/2)LSBLSB(最低有效位)时所需的(最低有效位)时所需的时间。通常以建立时间来表示转换速度。时间。通常以建立时间来表示转换速度。3 3、典型、典型D/AD/A转换器芯片转换器芯片DAC 0832DAC 0832 DAC0832 DAC0832是一个是一个8 8位位D/AD/A转换器。单电源供电,从转换器。单电源供电,从+5 V+5 V+15 V+15 V均可均可正常工作。基准电压的范

40、围为正常工作。基准电压的范围为10 V10 V;电流建立时间为;电流建立时间为1 s1 s;CMOSCMOS工艺,低功耗工艺,低功耗20 mW20 mW。DAC0832DAC0832转换器芯片为转换器芯片为2020引脚,双列直插式(引脚,双列直插式(DIPDIP)封装。)封装。DI7DI0:转换数据数据输入入。CS:片片选信号信号(输入入),低,低电平有效。平有效。ILE:数据数据锁存允存允许信号信号(输入),高入),高电平有效。平有效。WR1:第第1写信号写信号(输入),低入),低电平有效。平有效。XFER:数据数据传送控制信号送控制信号(输入),低入),低电平有效。平有效。WR2:第第2写

41、信号写信号(输入入),低,低电平有效。平有效。IOUT1:电流流输出出1。当数据。当数据为全全1时,输出出电流最大;流最大;为全全0时,输出出电流最小。流最小。IOUT2:电流流输出出2。RFB:反反馈电阻端,即运算放大器的反阻端,即运算放大器的反馈电阻端,阻端,电阻阻(15 k)已已固化在芯片中。固化在芯片中。DAC0832是是电流流输出型出型D/A转换器,器,为得到得到电压的的转换输出,使用出,使用时需在两个需在两个电流流输出端接运算放大器,出端接运算放大器,RFB即即为运算放大器的反运算放大器的反馈电阻。阻。VREF:基准基准电压,是外加高精度,是外加高精度电压源,与芯片内的源,与芯片内

42、的电阻网阻网络相相连接,接,该电压可正可可正可负,范,范围为-10+10 V。基准。基准电压决定决定D/A转换器的器的输出出电压范范围,例如,若,例如,若VREF接接+10 V,则输出出电压范范围是是0-10 V。DGND:数字地数字地。AGND:模模拟地地 DAC0832的内部的内部结构框构框图如下如下图所示。所示。输入通道由入通道由输入寄存器和入寄存器和DAC寄存器构成两寄存器构成两级数据数据输入入锁存,由存,由3个个“与与”门电路路组成控制成控制逻辑,产生生LE1和和LE2信号,分信号,分别对两个两个输入寄存器入寄存器进行控制。行控制。10.3.2 DAC0832单缓冲连接方式 所所谓单

43、缓冲冲连接方式,就是使接方式,就是使DAC0832DAC0832的两个的两个输入入寄存器中有一个寄存器中有一个(多多为DACDAC寄存器寄存器)处于直通状于直通状态,另一个,另一个处于受控的于受控的锁存状存状态。在。在实际应用中,如果只有一路模用中,如果只有一路模拟量量输出,或出,或虽是多路模是多路模拟量量输出但并不要求出但并不要求输出同步出同步的情况下,就的情况下,就应当采用当采用单缓冲方式。其冲方式。其连接如下接如下图所示。所示。【例例10.2】锯齿波的生成。在一些控制波的生成。在一些控制应用中,需要有用中,需要有一个一个线性增性增长的的电压(锯齿波波)来控制来控制检测过程,移程,移动记录

44、笔或移笔或移动电子束等。子束等。对此可通此可通过在在DAC0832的的输出端接运算放大器,由运算放大器出端接运算放大器,由运算放大器产生生锯齿波来波来实现,其其电路路连接如下接如下图所示。所示。ORG 0000HLJMP DASAWORG 0200HDASAW:MOV DPTR,#5000H;输入寄存器地址入寄存器地址MOV R0,#00H;转换初初值WW:MOV A,R0MOVX DPTR,A ;D/A转换INC R0;转换值增量增量NOP ;延延时NOPNOPAJMP WW END程序清单(假定输入寄存器地址为5000H)#include#include#define DA0832 XBY

45、TE 0 x7fff#define uchar unsigned char#define uint unsigned int void main(void)uchar i;while(1)for(i=0;i=255;i=i+)/*形成形成锯齿波波输出出值,最大,最大值为255*/DA0832=i;/*D/A转换输出出*/设计一个简单的单片机应用系统,利用设计一个简单的单片机应用系统,利用DAC0832输出连续输出连续周期性信号周期性信号。按下按下K0,产生方波;按下,产生方波;按下K1,产生锯齿波;按,产生锯齿波;按下下K2,产生三角波;按下,产生三角波;按下K3,产生正弦波。,产生正弦波。M

46、AIN:MOV DPTR,#7FFFH LCALL KEY MOV A,20H JB ACC.0,KEYAA JB ACC.1,KEYBB JB ACC.2,KEYCC JB ACC.3,KEYDD LJMP MAINKEYAA:MOV R0,#00H WW1:MOV A,#00H MOVX DPTR,A INC R0 CJNE R0,#8FH,WW1WW2:MOV A,#0FFH MOVX DPTR,A DJNZ R0,WW2 LCALL KEY MOV A,20H JB ACC.1,KEYBB JB ACC.2,KEYCC JB ACC.3,KEYDDLJMP KEYAAKEYBB:MOV

47、 R0,#0FFHWW3:MOV A,R0 MOVX DPTR,A DEC R0CJNE R0,#00H,WW3 LCALL KEY MOV A,20H JB ACC.0,KEYAA JB ACC.2,KEYCC JB ACC.3,KEYDDLJMP KEYBBKEYCC:MOV R0,#00HWW4:MOV A,R0 MOVX DPTR,A INC R0 CJNE R0,#0FFH,WW4WW5:MOV A,R0 MOVX DPTR,A DEC R0CJNE R0,#00H,WW5 LCALL KEY MOV A,20H JB ACC.0,KEYAA JB ACC.1,KEYBB JB AC

48、C.3,KEYDD LJMP KEYCCKEYDD:MOV R7,#00HWW6:MOV DPTR,#DK MOV A,R7 MOVC A,A+DPTR MOV DPTR,#7FFFH MOVX DPTR,A INC R7 CJNE R7,#0FFH,WW6LCALL KEY MOV A,20H JB ACC.0,KEYAA JB ACC.1,KEYBB JB ACC.2,KEYCC LJMP KEYDD KEY:。DK:DB 07FH,082H,085H,088H,08BH,08FH,092H,095H,098H,。END#include#include#define uchar unsig

49、ned char#define uint unsigned int#define DA0832 XBYTE 0 x7fffuchar key,jskey;uint i;uint code st=0 x7F,0 x82,0 x85,.uchar keyscan()uchar tmp;P1=0 xff;if(P1&0 xff)!=0 xff)/若有若有键按下按下 delay(1000);/延延时去抖去抖 if(P1&0 xff)!=0 xff)/有有键按下按下 tmp=(P1&0 xff);dowhile(P1&0 xff)!=0 xff);/判判键释放放tmp=tmp;return(tmp);/

50、还回回键值 return(0);/无无键按下按下,还回回0 void main(void)uchar i,v;uchar temp;v=keyscan();if(v=1|v=2|v=4|v=8)while(1)switch(v)case 1:while(v=1|v=0)for(i=0;i=255;i+)if(i128)DA0832=255;else DA0832=0;v=keyscan();break;case 2:while(v=2|v=0)for(i=0;i=255;i+)DA0832=i;v=keyscan();break;case 4:while(v=4|v=0)for(i=0;i=1

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 初中资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁