《单片机技术应用》项目四 AD与DA转换_第1页
《单片机技术应用》项目四 AD与DA转换_第2页
《单片机技术应用》项目四 AD与DA转换_第3页
《单片机技术应用》项目四 AD与DA转换_第4页
《单片机技术应用》项目四 AD与DA转换_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

项目四

A/D与D/A转换

任务一制作基于DAC0832的LED灯调光器

任务二制作基于ADC0832的数字电压表

知识测评

任务一制作基于DAC0832的LED灯调光器4.1.1任务提出

设计单片机控制的基于DAC0832的LED灯调光器,本任务使用两个按键(一个加计数按键,一个减计数按键)使单片机输出一可调的数字量,经DAC0832转换后输出一可调电压,驱动LED灯调光,同时由显示单元显示数字量的变化。首先设计单片机控制的DAC0832转换电路,其中显示电路可利用前所学习的知识进行记时计,并根据电路图在完成电路联接及根据本任务提供的程序调试电路。任务一制作基于DAC0832的LED灯调光器4.1.2项目分析工作任务的要求单片机为控制器,并通过两个按键调节LED灯的亮度。可以设计两个独立式按键连接单片机的某个I/O口,通过单片机编程来读取按键的次数,并由单片机程序处理后,将这个按键次数(数字量)通过P0口送给数模转换器转换成模拟信号,为了使LED灯有足够的亮度,数模转换器输出的模拟信号经集成运算放大器放大后,再连接到LED灯。任务一制作基于DAC0832的LED灯调光器4.1.3相关知识

一、D/A转换的基本知识

D/A转换的基本原理是应用电阻解码网络,将N位数字量逐位转换为模拟量并求和,从而实现将N位数字量转换为相应的模拟量。

设D为N位二进制数字量,UA为电压模拟量,UREF为参考电压,无论A/D或D/A,其转换关系为:

UA=D×UREF/2N

(其中:D=D0×20+D1×21+…+DN-1×2N-1)

任务一制作基于DAC0832的LED灯调光器1.

D/A转换器的主要性能指标(1)分辨率分辨率是D/A转换器对输入量变化敏感程度的描述,与输入数字量的位数有关。如果数字量的位数为n,则D/A转换器的分辨率为2-n。这就意味着D/A转换器能对满刻度的2-n

输入量做出反应。例如,基准电压为5V,那么8位D/A转换器的分辨率为5V/256=19.53mV,12位D/A转换器的分辨率为1.22mV。(2)精度

D/A转换器的精度定义为实际输出电压或电流与理论值之间的误差。这是DAC的静态指标,一般采用采用最小有效位LSB的分数表示,例如±l/2LSB。如果分辨率为20mV。则它的精度是±10mV。例如,满量程时的理论输出值为10V,实际输出值是在9.99V~10.01V之间,其转换精度为±10mV。对于分辨率很高的D/A转换器并不一定具有很高的精度。(3)线性度

D/A转换器的线性度定义为数字量变化时,DAC输出的模拟电压或电流按比例关系变化的程度。理想的DAC是线性的,但实际上有误差,在0~2n-1的数字转换范围内,实际输出电流或电压与理论值之间的最大偏差称为线性误差。(4)转换时间当输入至D/A转换器的二进制数发出变化时,模拟输出电压或电流达到稳定数值(即进入规定的精度范围内)所需要的时间。该指标表明了D/A转换器的转换速度。一般来说,电流输出型DAC的稳定时间是几微秒,电压输出型DAC的稳定时间取决于运算放大器的响应时间,通常为几十微秒。

任务一制作基于DAC0832的LED灯调光器2.D/A转换器分类

D/A转换器的种类很多,在精度、速度和价格方面千差万别,按输出形式分为电流输出器件和电压输出器件,多数为电流型;按输入数字量位数来分有8位、10位、12位和16位等;为适应各种场合的需要,现在又生产出各种用途的D/A转换器,如双D/A、4通道D/A及串行D/A转换器等。任务一制作基于DAC0832的LED灯调光器二、51系列单片机与DAC0832的接口电路

1.

DAC0832芯片简介

DAC0832是美国国家半导体公司生产的8位D/A转换器,与单片机完全兼容,是目前国内应用最广的8位D/A芯片(请特别注意ADC0832与DAC0832的区别),同系列芯片还有DAC0830、DAC0831。(1)DAC0832主要性能指标①分辨率:8位。②输出电流稳定时间:1μs。③非线性误差:0.20%FSR。④温度系数:2*106/°C。⑤逻辑输入电平:TTL。⑥功耗:20mW。⑦电源:+5V~+15V。⑧工作方式:双缓冲、单缓冲、直通。(2)DAC0832的结构与原理DAC0832的原理框图如图4-1所示。DAC0832主要由8位输入寄存器、8位DAC寄存器、8位D/A转换器以及输入控制电路四部分组成。8位输入寄存器用于存放主机送来的数字量,使输入数字量得到缓冲和锁存,由ILE、/CS、/WR1控制;8位DAC寄存器用于存放待转换的数字量,由/WR2、/XFER控制;8位D/A转换器输出与数字量成正比的模拟电流;由与门、非与门组成的输入控制电路来控制2个寄存器的选通或锁存状态。任务一制作基于DAC0832的LED灯调光器任务一制作基于DAC0832的LED灯调光器图4-1DAC0832片内结构

(3)DAC0832的引脚功能图4-2为DAC0832芯片引脚图。①DI0~DI7:8位数据输入端。②ILE:输入数据允许锁存信号,高电平有效。③/CS:片选端,低电平有效。④/WR1:输入寄存器写选通信号,低电平有效。/WR2:DAC寄存器写选通信号,低电平有效。⑤XFER:数据传送信号,低电平有效。⑥IOUT1、IOUT2:电流输出端。⑦RFB:反馈电流输入端。⑧UREF:基准电压输入端。⑨Vcc:正电源端;AGND:模拟地;DGND:数字地。任务一制作基于DAC0832的LED灯调光器图4-2DAC0832引图

(4)DAC0832工作方式从图4-1可以看出,在DAC0832内部有两个寄存器,输入信号要经过这两个寄存器才能进入D/A转换器进行D/A转换。而控制这两个寄存器的控制信号有5个:输入寄存器由ILE、/CS、/WR1控制;DAC寄存器由/WR2、/XFER控制。因此,用软件指令控制这5个控制端:ILE、/CS、/WR1、/WR2、/XFER,可实现三种工作方式:

⑴直通工作方式:5个控制端均有效,直接D/A;⑵单缓冲工作方式:5个控制端一次选通;

双缓冲工作方式:5个控制端分二次选通。任务一制作基于DAC0832的LED灯调光器2.

DAC0832与单片机的硬件连接

D/A转换器与单片机硬件连接主要考虑两个方面:数字量输入和外部控制信号的连接。(1)数字量输入端的连接数字量输入端的连接从两方面考虑,一是D/A转换器的位数,然后是D/A转换器的内部结构:D/A转换器内部没有输入锁存器时,必须在CPU与D/A转换器之间增设锁存器或I/O口;若有输入锁存器时,则可直接连接。DAC0832与单片机的接口连接时,只需要将P0口的8位口线与D/A转换器的8位数字输入端一一对应连接即可。任务一制作基于DAC0832的LED灯调光器(2)外部控制信号的连接外部控制信号主要是片选信号、写信号及启动信号,此外还有电源及参考电平。DAC0832的片选信号由地址线或地址译码器提供,写信号由单片机的/WR信号提供,启动信号一般为片选信号及写信号的合成。连接方式有三种:直通方式、单缓冲方式和双缓冲方式。①直通工作方式:所谓直通工作方式就是将DAC0832的两个寄存器的5个控制端均预先置为有效,使两个寄存器都开通,处于数据接收状态,只要数字信号送到数据输入端DI0~DI7,就立即直接进入D/A转换,这种方式主要用于不带微机的电路中。任务一制作基于DAC0832的LED灯调光器②单缓冲工作方式所谓单缓冲方式就是使DAC0832的两个输入寄存器中有一个处于直通方式,而另一个处于受控的锁存方式。其指导思想是5个控制端由单片机一次选通;在实际应用中,如果只有一路模拟量输出,或虽有几路模拟量但并不要求同步输出时,就可采用单缓冲方式。连接如图4-3所示,DAC0832作为80C51的一个扩展I/O口,地址为7FFFH。80C51输出的数字量从P0口输入到DAC0832的DI0~DI7,µA741将电流信号转换为电压信号,RP1调零,RP2调满度。任务一制作基于DAC0832的LED灯调光器任务一制作基于DAC0832的LED灯调光器图4-3DAC0832单缓冲工作方式接口电路双缓冲工作方式所谓双缓冲方式就是把DAC0832的两个锁存器都接成受控锁存方式。双缓冲DAC0832的连接如图4-4所示。采用地址译码输出分别接CS和XFER来实现,然后再给WR1和WR2提供写选通信号,及5个控制端分二次选通,这样就完成了两个锁存器都可控的双缓冲接口方式。在多路D/A转换情况下,若要求同步输出,就必须采用双缓冲方式。任务一制作基于DAC0832的LED灯调光器任务一制作基于DAC0832的LED灯调光器图4-4DAC0832双缓冲方式接口电路3.DAC0832的软件设计

例4-1

DAC0832的单缓冲方式接口图4-5是DAC0832与89S52的单缓冲方式接口。单缓冲方式下,ILE接+5V,始终保持有效。第二写信号WR2和传送允许信号XFER连接到地,基准电压VREF连接到+5V。DAC0832的片信号CS和单片机的P2.0相连,可以确定DAC0832的地址为FEFFH。WR1引脚和单片机的P3.6相连接。这种单缓冲方式适用于只有一路模拟量输出的场合。任务一制作基于DAC0832的LED灯调光器图4-5DAC0832与89S52的单缓冲方式接口任务一制作基于DAC0832的LED灯调光器根据图4-5设计如下程序,编程输出一个锯齿波电压信号#include“reg52.h”#include”absacc.h”#defineDACPORTXBYTE[0XFEFF]Voidmain(void){Unsignedchari;While(1){For(i=0;i<=255;i++)DACPORT=i;}}任务一制作基于DAC0832的LED灯调光器4.1.4任务实施一、基于DAC0832LED灯调光器系统硬件设计根据工作任务要求设计的单片机控制的基于DAC0832LED灯调光器系统电路原理图如图4-6所示,本电路由89C51单片机、、数模转换器DAC0832、LED显示电路等组成。DAC0832工作于单缓冲方式,DAC0832的/CS和/XFER接89C51的P2.7,/WR1和/WR2一起接在89C51的WR上,参考电压为5V,数据输入口与89C51的P0口相连,因DAC0832的输出信号形式为电流输出,为此在DAC0832的输出端接µA741,将电流信号转换为电压信号输出。用该电压信号控制LED灯的亮度。任务一制作基于DAC0832的LED灯调光器任务一制作基于DAC0832的LED灯调光器二、基于DAC0832LED灯调光器系统的程序设计本程序的重点任务有三个:(1)DAC0832数模转换程序的设计,因为ADC0832工作于单缓冲方式,特别要注意它的工作时序问题。(2)键盘检测程序的设计,由于两个按键S1、S2分别通过上拉电阻连接在单片机的P3.2(/INT0)、P3.3(/INT1)引脚,可以采用查询和中断重点两种方法进行程序的设计。键盘检测程序流程图如图4-8所示。(3)键盘修改后的数值送往LED上显示。这里的显示电路运用的是任务11的4位LED数码管显示电路。任务一制作基于DAC0832的LED灯调光器主程序的流程图如图4-7所示。任务一制作基于DAC0832的LED灯调光器开始上电检测显示初值0000DAC数模转换DAC0832初始化调用按键子程序得到修改后的数值调用显示子程序显示改变值NNYYNYYYYS1键按下?按键消抖转换数加1S1仍按下?S1释放否?转换数值已最大?返回YYYS2键按下?按键消抖S1仍按下?S1释放否?转换数值已最小?YNN转换数减1图4-7主程序的流程图图4-8按键功能检测流程图4.2.1任务提出设计单片机控制的基于ADC0832的数字电压表,本任务通过对一电位器进行电压采样,经ADC0832转换后输入给单片机,单片机处理后显示电压值。通过本任务的学习,初步掌握模数转换器件(A/D转换器)的工作原理以及在实际工作中的应用。设计制作ADC0832转换电路板,并根据电路图在实验板上完成电路联接及根据本任务提供的程序调试电路,显示电路采用前面所讲授的显示电路。4.2任务二制作基于ADC0832的数字电压表4.2.2项目分析数字电压表是一种用于测量电压的仪器,即用于测量电路某点的电压,并用数字的方式显示电压的大小。怎么来实现呢?设计思路是:首先要用模数器件(ADC0832芯片)将电路中被测点的模拟电压转变成数字量,然后将该数字量送给单片机处理,将ADC0832转换的数字量处理成跟模拟电压值对应的数码管显示编码,并通过数码管显示。任务二制作基于ADC0832的数字电压表4.2.3相关知识一、A/D转换的基本知识

A/D转换的功能是把模拟量电压转换为N位数字量。设D为N位二进制数字量,UA为电压模拟量,UREF为参考电压,无论A/D或D/A,其转换关系为:

UA=D×UREF/2N

(其中:D=D0×20+D1×21+…+DN-1×2N-1)

任务二制作基于ADC0832的数字电压表4.2.3相关知识一、A/D转换的基本知识

A/D转换的功能是把模拟量电压转换为N位数字量。设D为N位二进制数字量,UA为电压模拟量,UREF为参考电压,无论A/D或D/A,其转换关系为:

UA=D×UREF/2N

(其中:D=D0×20+D1×21+…+DN-1×2N-1)

(1)量化误差。量化误差是指零点和满度校准后,在整个转换范围内的最大误差。如8位A/D转换器基准电压VREF=5.12V时,1LSB=20mV,其量化误差为1/2LSB=10mV

(2)

转换时间。指A/D转换器完成一次A/D转换所需时间。ADC能够重复进行数据转换的速度,即在

ls内完成转换的次数叫做转换速率。转换时间是转换速率的倒数。转换时间越短,适应输入信号快速变化能力越强。任务二制作基于ADC0832的数字电压表2.A/D转换器分类

A/D转换器的种类很多,在精度、速度和价格方面千差万别,按转换原理形式可分为逐次逼近式、双积分式和V/F变换式;按信号传输形式可分为并行A/D和串行A/D。

双积分型A/D转换器,一般精度高,对周期变化干扰信号积分为零,因而具有抗干扰性好、价格便宜等优点,但转换速度慢。逐次比较型A/D转换器,在转换速度上同双积分型相比要快得多,精度较高(例如12位及12位以上的),价格较高。V/F变换型A/D转换器,突出优点是高精度,其分辨率可达16位以上,价格低廉,但转换速度不高。

A/D转换器的种类繁多,特性各异,从中选择适当的芯片时,首先要根据用户需要,合理选择转换速度、精度及分辨率以满足设计任务所要求的技术指标。但要注意到,一般情况下,位数愈多,精度愈高,其转换的时间越长。如果高速度又高精度,则芯片价格越高。任务二制作基于ADC0832的数字电压表二、51系列单片机与串行ADC0832的接口电路1.ADC0832芯片简介(1)ADC0832的主要特点ADC0832是美国国家半导体公司(Nationa1Semicondutor)生产的具有Microwire/Plus串行接口的8位逐次逼近A/D转换器,可通过三线接口与单片机连接。具有输入可配置的多通道多路器和串形输入输出方式。其多路器可由软件配置为单端或差分输入,也可以配置为伪差分输入。另外,其输入基准电压大小可以调整。在全8位分辨率下,它允许任意小的模拟电压编码间隔。由于ADC0832采用的是串行输入结构,因此封装体积小,可节省51系列单片机I/0资源,价格也较适中。其主要特点如下:8位分辨率;易于和微处理器接口或独立使用;可满量程工作;可用地址逻辑多路器选通2输入通道;单5V供电,输入范围为0~5V;输入和输出与TTL、CMOS电平兼容;时钟频率为250kHz时,其转换时间为32µs;任务二制作基于ADC0832的数字电压表图4-9ADC0832引脚图(2)ADC0832的引脚功能图4-9为ADC0832芯片引脚。l

VDD、VSS:电源接地端,VDD同时兼任UREF;l

CS:片选端,低电平有效;l

DI:数据信号输入端;l

DO:数据信号输出端;l

CLK:时钟信号输入端,要求低于600KHz;CH0、CH1:模拟信号输入端(双通道);

任务二制作基于ADC0832的数字电压表(3)ADC0832的通道选择

ADC0832工作时,选择哪个模拟通道,取决于输入时序中的配置位。同时,配置位也决定了输入是单端输入还是差分输入。当输入是差分时,要分配输入通道的极性;两个输入通道的任一个通道都可作为正极或负极。ADC0832的配置位逻辑表如表4-2所列。表4-2中:+表示输入通道的端点为正极性,一表示输入通道的端点为负极性,H或L表示高、低电平。输入配置位时,高位在前,低位在后。表4-2ADC0832配置位及通道选择配置位

通道选择

CH0CH1LL

+-LH-+HL+HH

任务二制作基于ADC0832的数字电压表(4)ADC0832转换工作时序ADC0832串行A/D转换工作时序如图4-10所示。由时序可以看出,其工作时序分两个阶段,第一阶段为起始和通道配置,由CPU发送,从ADC0832DI端输入;第二阶段为A/D转换数据输出,由ADC0832从D0端输出,CPU接收。任务二制作基于ADC0832的数字电压表2.ADC0832与单片机的硬件连接

电路如图4-11所示,单片机8051与ADC0832仅用三根线进行连接,单片机的P1.2接ADC0832的片选信号,P1.1用于产生A/D转换的时钟CLK,P1.0为一个双向I/O口位,与DI、DO端连接在一起,可用于对模拟输入进行配置及输出转换所得的数据。根据ADC0832的特点,DI端在接受主机起始和通道配置信号后关断,直至/CS再次出现下跳变,DO端在DI端有效期间始终处于三态,因此DI端和DO端可与P1.0端连接在一起,不会引起冲突。这里,模拟信号以单端方式输入,参考电压为5V,即A/D模拟量的输入范围为0~5V任务二制作基于ADC0832的数字电压表3.ADC0832软件设计

A/D转换系统在工作时单片机将通过编程产生串行时钟脉冲,并按时序发送与接收数据,以完成通道方式、通道数据的写入和转换结果的读出。由于多通道转换过程(即启动、转换、读出、再启动重复),每转换一次的过程只是通道设置不同。由表17-1可知,输入通道CH0的转换配置位为10B,输入通道CH1的转换配置位为11B。在程序中用累加器A,带进位的右循环移位指令RRC和带进位的左循环移位指令RLC来模拟SPI移位寄存器的操作。具体方法是:先将起始位和配置位送入累加器A中,然后用RRC指令将累加器的最低位(LSB)移入进位C中,再将C中的数据经P1.0传输给ADC0832,从而完成送起始位和配置位。由P1.1位先低后高的翻转来提供第一个CLOCK脉冲,然后将转换结果最高位经P1.0读人c位中,再使用RLC指令将c位中的数据移人累加器A中,重复7次这样的时序,便完成转换结果高8位的接收。这里只给出单通道A/D转换程序:任务二制作基于ADC0832的数字电压表4.2.4任务实施一、

基于ADC0832数字电压表硬件电路设计选用模数转换器ADC0832,并用其CH0通道作为模拟信号的输入通道(此处接电压表的探头),转换所得数字量由数据端DO输出到单片机AT89S51的P1.0,单片机将转换的数量进行处理,最后将测得的电压值显示在LED数码管显示器上。因ADC0832是串行接口,故单片机与ADC0832仅用三根线进行连接,单片机的P1.2接ADC0832的片选信号/CS,P1.1用于产生A/D转换的时钟CLK,P1.0为一个双向I/O口位,与DI、DO端连接在一起,可用于对模拟输入进行配置及输出转换所得的数据。这三根控制及数据线通过3位单排针J1与实验板基板的单排座连接。为了便于教学及学生调试电路,用滑动变阻器的输出PR_IN作为模拟电压信号输入,同时也可以通过J2的跳线选择外部探针输入的模拟电压信号。用跳线帽连接J2的2-3脚时,CH0通道模拟信号来自滑动变阻器的PR_IN,当跳线帽连接J2的1-2脚时,CH0通道模拟信号来自外部探针。根据ADC0832的特点,被测的模拟电压范围为0-5V。测量所得的电压值用本书制作的数码管显示电路显示。该电路模块是通过单排针跟实验板基板上的单排座与单片机对应的I/O口及电源相连,焊接时应注意单排针布局的位置。任务二制作基于ADC0832的数字电压表图4-11数字电压表模块电路原理图任务二制作基于ADC0832的数字电压表二、基于ADC0832的数字电压表的程序设计本程序的重点任务有三个:(1)

温馨提示

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

评论

0/150

提交评论