第08章模数转换课件.ppt
A/D与D/A接口能够把模拟量转换为数字量的器件称为模数转换器(ADC)。能够把数字量转换为模拟量的器件称为数模转换器(DAC)。D/A与A/D转换是计算机用于工业控制等领域的一项重要技术,其在控制系统中的作用如下图所示。它主要由以下几个部件组成:,ADC0809 电路连接图,针对右图实现编程控制,学习导引,硬件结构决定着程序设计,在程序设计时应该考虑的问题ADC0809的功能是什么?如何编程控制ADC0809?ADC0809实现模数转换的基本原理是什么?ADC0809的引脚功能是什么?ADC0809的内部结构?ADC0809的控制步骤?在掌握ADC0809编程控制的基本知识后,接下来呢如何确定ADC0809的端口地址?如何对ADC0809进行读写操作?,以 应用 简介 ADC0809 功能,基本转换原理?,8位计数式A/D转换原理,逐次逼近式A/D转换原理(0809采用),ADC主要有以下性能指标:(1)分辨率 分辨率表明了A/D转换器能够分辨最小的模拟信号的能力,即V/2n(n为转换的数据宽度).分辨率仅表明了A/D转换器在理论上可以达到的精度。(2)转换精度 转换精度是A/D转换器实际输出值和理想输出值的误差,可用绝对精度或相对精度来表示。绝对精度:绝对精度等于实际转换结果与理论转换结果之差,通常以数字量的最小有效位(LSB)的分数值来表示。例如,1LSB,1/2LSB,1/4LSB等。相对精度:相对精度是绝对精度与模拟电压满量程的百分比.,(3)转换时间 转换时间是指模拟信号输入启动转换到转换结束,输出达到最终值并稳定所经历的时间.A/D转换芯片ADC0809 主要技术指标如下:*分辨率:8位;*转换方法:逐次逼近法;*转换时间:100s;*输入模拟电压范围:8路模拟电压均为05V;*电源电压:5V。,图 ADC0809引脚图,ADC0809的引脚,和CPU三总线相连的引脚 D7D0:8位数字量输出引脚。ADDA、ADDB、ADDC:通道地址选择信号,其中,ADDA为低位,ADDC为高位。ADDC、ADDB、ADDA 的111000对应IN7IN0。START:A/D转换启动信号。当START引脚出现一个宽度不小于100us的高电平时,使逐次逼近寄存器清0,并启动0809开始转换。ALE:地址锁存允许信号,当引脚出现一个宽度不小于100us的高电平时,锁存ADDA、ADDB、ADDC通道地址选择信号。OE:允许输出信号,当OE1时,打开0809内部的输出 锁存器,把ADC的转换结果送往数据总线D0D7。EOC:转换结束指示。该引脚在转换开始及转换中间均为低电平。转换结束后,EOC呈现高电平,该引脚可用于向CPU提出中断请求。,其他引脚 IN0IN7:8路模拟输入,具体由ADDA、ADDB、ADDC 三位地址编码选择其中的一路。VREF(+)、VREF():二个参考电压输入引脚,通常参考电压从VREF(+)端引入,而VREF()与模拟地AGND相连。当VREF(+)接5V时,输入电压范围为0V5V。CLK:时钟输入信号,要求频率不高于1280kHz。GND:ADC的数字接地端。,ADC0809内部结构,图 ADC0809的时序图ADC0809的一次转换分为以下4个阶段:1,在ALE信号的作用下,地址引脚ADDCADDA上的信号被锁存。随后,由地址引脚选择的模拟信号被多路开关接通,进入ADC0809;2,在启动脉冲START的作用下,A/D转换开始。,3,转换完成后,ADC0809转换结束信号EOC由低电平变为高电平,该信号可以作为状态信号由CPU查询,也可以作为中断请求信号通知CPU一次A/D转换已经完成。4,CPU在查询式I/O程序或中断服务程序中执行读ADC0809 数据端口的指令,该指令经地址译码电路产生高电平,OE有效信号,打开输出三态缓冲器,转换结果通过系统 数据总线进入CPU。,图 ADC0809的时序图,构思:ADC0809电路连接,ADC0809采取三总线方式与CPU相连ADC0809的数据线连接?ADC0809三根地址线的连接?ADC0809的控制线和状态线呢?必须使START引脚输入高电平才可以启动转换;必须使ALE引脚输入高电平才可以锁存地址信号,选中被转换的INn引脚。(注:这两个引脚可以被CPU同时控制)若想将转换数据传送到数据总线,从而进入到CPU,必须使OE引脚输入1(当然由CPU控制输入),该信号如何控制?EOC引脚如何使用?程序控制方式与EOC引脚有什么关联?ADC0809有片选信号么?如何确定0809的端口地址?ADC0809的其他引脚:CLK,REF+,REF-,电路连接雏形,设计:ADC0809 硬件电路连接,#define IN0_ADRXBYTE0 xc000/11xx xxxx xxxx x000Bmain()unsigned char temp;while(1)IN0_ADR=x;/写入什么数无所谓.关键是发出写操作,/该操作会使START与ALE信号有效,/锁定对IN0引脚输入并转换delay();temp=IN0_ADR;,如何编程控制,启动两路转换,与CPU的又一连接方案 ADC0809的接口设计需考虑的问题如下:ADDA、ADDB、ADDC三端可直接连接到CPU地址总线 A0、A1、A2端,但此种方法占用的I/O口地址多。每一个模拟输入端对应一个口地址,8个模拟输入端占用8个口 地址,对于微机系统外设资源的占用太多,因而一般 ADDA、ADDB、ADDC分别接在数据总线的D0、D1、D2 端,通过数据线输出一个控制字作为模拟通道选择的控制信号。ALE信号为启动ADC0809选择开关的控制信号,该控制信号可以和启动转换信号START同时有效。,针对上一 连接方案 的 硬件连线图,如果引入了中断,程序如何?,电路板ADC0809模块电路设计,1A,2A:时钟输入端,脉冲下降沿有效1clear,2clear:异步清0端1QA1QD,2QA2QD:输出端VCC:电源端GND:地端,引脚功能:,CLK信号的生成CLK:时钟输入信号,要求频率不高于640kHz实际设计中,通常采用 将ALE信号分频 方式来获得本电路板中使用了一片74ls393芯片74ls393芯片是 双四位二进制 计数器,74ls393内部结构,74LS393真值表,注:H1L0,74LS393电路连线设计,对ALE信号做2分频,对ALE信号做4分频,注:ALE在每个机器周期内输出两个脉冲,即它的输出频率为:晶振频率/12*2,电路板 ADC0809连线,连接数据总线JP20或JP23,译码电路生成控制信号,使用中断时,连引脚INT0或INT1,连地址总线JP22,连74ls393输出,