12位A/D转换器ADS7804与51单片机的接口及程序设计

最新更新时间:2006-05-07来源: 国外电子元器件关键字:单片机  接口  C语言  ADS7804 手机看文章 扫描二维码
随时随地手机看文章

    摘要:ADS7804是美国BURR-BROWN公司推出的一种新型12位A/D转换器。文中介绍了它的特性与功能,给出了一种简洁而新颖的与51单片机的接口方法,同时给出了用C语言编写的数据采集的应用程序。

1 基本特点

在计算机控制系统及各类用单片机(或微处理器)构成的智能仪器仪表中,外部的各种模拟信号必须通过A/D转换器变换为数字信号后才能送入计算机。与8位和16位的A/D转换器相比,12位A/D转换器以其较高的性能价格比而在仪器仪表中得到广泛的应用。

ADS7804芯片采用28脚0.3英寸PDIP(塑料双列直插式)封装,两列管脚间距为0.3英寸,比一般DIP28封装窄一倍,所以俗称瘦型DIP;ADS7804采用单5V电源供电;芯片内部含有采样保持、电压基准和时钟等电路,可极大简化用户的电路设计和硬件开锁,并可提高系统的稳定性。

ADS7804采用CMOS工艺制造,转换速度快、功耗低(最大功耗为100mW)。

该A/D转换器采用逐次逼近式工作原理,单通道输入,模拟输入电压的范围为±10V,采样速率为100kHz。

2 引脚及功能

ADS7804共有28个引脚,图1为基引脚图。这些引脚大体上可以划分为3类。

a.电源类

数字电源VDIG和模拟电源VANA通常一起接到5V电源上。数字地DGND和模拟地AGND1、AGND2通常共地。REF为参考电压端,通常对地接2.2μF钽电容,芯片内部可产生2.5V基准电压。CAP为参考电压所需电容,对地接2.2μF钽电容。

b.模数信号类

VIN为输入的模拟信号。D11~D0为数字量并行输出口,DZ(19~22脚)是为了使管脚与16位A/D转换器ADS7805兼容而设的,可悬空。

c.控制信号类

CS(输入)为片选信号,R/C(输入)为读取结果/模数转换控制信号,BUSY(输出)用于指示转换是否完成,BYTE(输入)信号用来控制从总线读出的数据是转换结果的高字节还是低字节。

3 启动A/D转换和读取转换结果

ADS7804启动转换和读取转换结果的时序比较特点,参见图2。

首先将R/C脚电平变低;然后在CS脚输入一个脉冲并在其下降沿启动A/D转换,此脉冲的宽度要求在40ns~6μs之间;这时BUSY脚电平拉低表示正在进行转换;在经过大约8μs以后,转换完成,BUSY脚电平相应变高;再把R/C脚电平拉高,这样,CS脚脉冲的下降沿即把转换结果输出到数据总线上。

因为转换结果为12位,所以对8位单片机而言,必须分两次读入,这个功能由BYTE脚实现。当BYTE脚为高电平时,数据总线上输出高字节,反之,输出低字节。

ADS7804转换得到的数字结果是以补码形式给出的,现给出几组有特定含义的值,表1所列即为ADS7804的模拟电压与其补码形式的数字输出关系,-10V~9.99512V为量程,4.88mV为电压分辨率。

表1 模拟电压和数字输出的关系

模拟输入 初码形式的数字输出
二进制 十六进制
9.99512V 0111 1111 1111 7FF
4.88mV 0000 0000 0001 001
0V 0000 0000 0000 000
-4.88mV 1111 1111 1111 FFF
-10V 1000 0000 0000 800

4 与51单片机的接口

因为ADS7804的CS信号脉冲宽度要求为40ns~6μs之间,而对于单片机而言,只要对外部设备进行读操作,即会产生RD脉冲,其宽度为6个振荡周期,如采用12MHz的晶振,其脉冲宽度为500ns,所以将ADS7804的CS脚接单片机的RD信号是再合适不过了。

至于R/C、BUSY和BYTE信号,只需连接到普通的锁存功能的端口即可,如单片机的PI口、并行口扩展芯片8155或8255等的端口。

图3是一个ADS7804与51单片机的典型接口电路。

5 C语言程序设计

Franklin C51交叉编译器是专为51系列单片机设计的一种高效的C语言编译器,使用它可以缩短开发周期,降低开发成本,而且开发出的系统易于维护,可靠性高,可移植性好。

下面介绍用C语言编写的单点和定长数据采集子程序,假设所用的晶振频率为12MHz。

单点采样子程序ADS7804()用来返回一个有符号整数形式的转换结果。

定长采样子程序DAQ()根据入口参数interval(单位为μs)给定的采样间隔采样N点,并采用查询51单片机内置定时器的方式来控制采样时序,N点采样结果存储在定位于外部存储器的数组array中。需要注意的是,赋给计数寄存器TH和TL的值是定时器从开始计数到溢出所用的时间,这个时间再加上清TF和装载计数初值所需的时间(共5个机器周期,对于12MHz晶振即为5μs)才是所要的采样间隔,这一点在程序设计中必须注意。

源程序如下:

# include

# include

# define N 128 /*定采样长度,如128点*/sbit BYTE=F1^0;

sbit RC=P1^1;

sbit BUSY=P1^2; /*定义特殊位*/

int XDATA array(N); /*在外部存储器内定义长度为N的有符号整数数组*/

int ADS7804(void)

{ uint ul,uh;int u;

RC=0; /*R/C低电平,进入转换模式*/

ul=XBYTE[0xffff]; /*产生读脉冲,启动A/D转换*/

while (BUSY= =0); /*等待转换完成*/

RC=1;BYTE=0; /*进入读模式,选择低字节*/

ul=XBYTE[0xffff]; /*读转换结果低8位*/

BYTE=1; /*选择高字节*/

uh=XBYTE[0xffff]&0x0f;/*读转换结果高4位*/

u=uh*256+ul; /*得到12位转换结果*/

if(u>=0x0800)

u=u 0xf000; /*如果为负值,则符号扩展*/

return(u); /*返回转换结果*/

}

uoid DAQ(uint interval)

{ uchar th,tl;

interval=interval-5;/*减去TF0清零和装载计数初值的时间5μs*/

th=255-(interval/256);

tl=255-(interval%256); /*计算计数初值*/

TMOD=0x01; /*定时器0,方式1 */

TH0=th; TL0=tl;/*装载计数初值*/

TR0=1;/*启动定时*/

for(I=0;i

{ do{}whilt(!TF0);/*查询等待TF0复位*/

TF0=0; /*清溢出标志*/

TH0=th;TL0=tl; /*装载计数初值*/

Array[i]=ADS7804(); /*采样、存储*/

}

TR0=0; /*停止定时*/

}

6 结束语

ADS7804为12位的A/D转换器,它不仅分辨率高、转换速度快,而且接口方便,电路简单、应用灵活,因而具有广泛的应用前景。笔者在DLRS-1型检波器低频接收灵敏度特性测量仪中使用了ADS7804,取得了很好的效果。

关键字:单片机  接口  C语言  ADS7804 编辑:赵思潇 引用地址:12位A/D转换器ADS7804与51单片机的接口及程序设计

上一篇:12位并行输出AD转换器AD7492
下一篇:500兆/秒高速A/D系统的实现

推荐阅读最新更新时间:2023-10-12 20:11

提高下一代数字电源应用性能 STM32G4微控制器问市
新数学加速器提高运算速度,节省电能 先进模拟外设允许设备集成更多的传感器和用户功能 更强的保护功能,提升数据安全性 新一代智能电子产品呈现出一些新的应用趋势:例如增加更多的传感器驱动功能,采用碳化硅、氮化镓等能效更高的功率技术来节省电能等。针对这些趋势,横跨多重电子应用领域的全球领先的半导体供应商意法半导体推出了下一代微控制器。 针对先进的数字电源应用以及消费电子和工业设备, STM32G4*新系列微控制器引入两个新的硬件数学加速器来提高应用的处理速度,利用Cordic算法和滤波函数等各种技术来提升性能和能效。数学加速器专门用于加快计算速度,例如,家电或空调的节能电机控制算法中的三角方法计算,以及信号调谐或数字电源
[传感器]
提高下一代数字电源应用性能 STM32G4<font color='red'>微控制器</font>问市
51单片机P0口上拉电阻的深入研究
如果是驱动led,那么用1K左右的就行了。如果希望亮度大一些,电阻可减小,最小不要小于200欧姆,否则电流太大;如果希望亮度小一些,电阻可增大,增加到多少呢,主要看亮度情况,以亮度合适为准,一般来说超过3K以上时,亮度就很弱了,但是对于超高亮度的LED,有时候电阻为10K时觉得亮度还能够用。通常就用1k的。 对于驱动光耦合器,如果是高电位有效,即耦合器输入端接端口和地之间,那么和LED的情况是一样的;如果是低电位有效,即耦合器输入端接端口和VCC之间,那么除了要串接一个1 4.7k之间的电阻以外,同时上拉电阻的阻值就可以用的特别大,用100k 500K之间的都行,当然用10K的也可以,但是考虑到省电问题,没有必要用那么小的
[单片机]
基于实时操作系统RTX51和AT89C52单片机实现智能交通灯的设计
介绍一种基于车流量变化动态调节时间的智能交通灯的设计方法;在进行流量统计的同时,对违章情况进行监测;根据模糊算法分配各车道的绿灯时间,实现车流动态调节。分析其中存在的多种任务,用传统的前后台编程方法实现难度较大,使用实时操作系统可简化程序设计,并使程序具有良好的可读性、可维护性和可移植性。介绍车流量检测的原理与绿灯时间分配方案。 随着城市汽车保有量的越来越多,城市的交通拥挤问题正逐渐引起人们的注意。交通灯是交管部分管理城市交通的重要工具。目前绝大部分交通灯其时间都是设定好的,不管是车流高峰还是低谷,红绿灯的时间都固定不变;还有一些交通灯能根据简单划分的时间段来调整时间,但控制起来都不是很灵活,这使得城市车流的调节不能达到最优。
[单片机]
基于实时操作系统RTX51和AT89C52<font color='red'>单片机</font>实现智能交通灯的设计
常见的工业相机电缆接口类型有多少种?
众所周知,工业相机的定义是机器视觉系统中的一个关键组件,其本质的功能就是将光信号转变成有序的电信号。若想将相机采集图像进行传输,就需要通过相机的接口来实现,将图像数据传输到我们的设备上。而工业相机电缆,就是专门用于工业相机的一种电缆产品。那么常见的工业相机电缆接口类型有哪些吗? 常见的工业相机电缆接口类型,如下: 1、USB 接口 USB 接口相机是数字相机,直接输出数字图像信号。USB 全称是 Universal Serial Bus(通用串行总线),USB 接口是 4“针”,其中 2 根为电源线、2 根为信号线。USB 是串行接口,可热拔插,连接方便。USB2.0,传输速度 480Mbps,通讯距离 5m,80%的带宽用于
[嵌入式]
简述工业相机数据输出接口优点和缺点
工业相机分为模拟相机、数字相机。其中数字相机又分为:USB2.0、USB3.0、1394A、1394B、GIGE千兆网、Camera Link等多种类型的接口。而各种接口都有其利弊。 (1)USB2.0接口 USB2.0接口的工业相机,是目前最为普通的类型。许多厂商都生产此接口的相机。连我们常用的摄像头,也都是USB2.0接口的。其优点是所有电脑都配置有USB2.0接口,方便连接,不需要采集卡;缺点是其传输速率较慢,理论速度只有480Mb(60MB),由于其糟糕的协议(Bulk-Only Transport(BOT)协议)与编码方式,数据只有30MB/S左右。 USB接口的相机通常没有坚固螺丝,因此在经常运动的设备上,可能会有
[嵌入式]
PIC单片机的EEPROM读写实例及说明
; PIC单片机的EEPROM读写实例及说明 ;**************************************************************************** ; This is a program to test the function of reading&writting for EEPROM. ; You can observe the value of register(30H--?) buy changing "VALU" and "WRC_". ; Notice that:it must be { ADDR+WRC_ =0ffh } ! ;******************
[单片机]
单片机 步进电机 驱动程序 ULN2003 28BYJ-48 5线4相电机
/*************** writer:shopping.w ******************/ #include reg52.h #define uint unsigned int #define uchar unsigned char uchar code FFW = { 0x01, 0x03, 0x02, 0x06, 0x04, 0x0c, 0x08, 0x09 }; uchar code REV = { 0x09, 0x08, 0x0c, 0x04, 0x06, 0x02, 0x03, 0x01 }; sbit K1 = P3 ^ 0; sbit K2 =
[单片机]
<font color='red'>单片机</font> 步进电机 驱动程序 ULN2003 28BYJ-48 5线4相电机
基于AT89C52单片机近距离无线通信系统电路设计
  短距离无线传输具有抗干扰性能强、可靠性高、安全性好、受地理条件限制少、安装灵活等优点,在许多领域有着广泛的应用前景。低功耗、微型化是用户对当前无线通信产品尤其是便携产品的实际需求,短距离无线通信逐渐引起广泛关注。常见的短距离无线通信有基于802.11的无线局域网WLAN、蓝牙 (blueTooth)、HomeRF及欧洲的HiperLAN(高性能无线局域网),但其硬件设计、接口方式、通信协议及软件堆栈复杂,需专门的开发系统,开发成本高、周期长,最终产品成本也高。因此这些技术在嵌入式系统中并未得到广泛应用。普通RF产品不存在这些问题,且短距离无线数据传输技术成熟,功能简单、携带方便,使其在嵌入式短程无线产品中得到了广泛应用。
[单片机]
基于AT89C52<font color='red'>单片机</font>近距离无线通信系统电路设计
小广播
最新模拟电子文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved