伟杰龙电子
首页 | 产品中心 | 文章中心 | 下载中心 | 电子博客 | 电子论坛 | 开发板商城 | 各地代理 | 淘宝店 | 拍拍店 | 百度店
文章首页  |  业界动态  |  单片机  |  嵌入式系统  |  DSP  |  FPGA/CPLD  |  EDA技术  |  软件编程  |  元器件
电源技术  |  模拟电子  |  高频电子  |  无线通信  |  网络通信  |  消费电子  |  汽车电子  |  接口电路  |  职场人生
您现在的位置: 首页 >> 文章中心 >> 单片机 >> 12位A/D转换器ADS7804与51单片机的接口及程序设计
12位A/D转换器ADS7804与51单片机的接口及程序设计

来源:网络  作者:未知  人气:380  时间:2008-03-10 01:11:41


    摘要:ADS7804是美国BURR-BROWN公司推出的一种新型12位A/D转换器。文中介绍了它的特性与功能,给出了一种简洁而新颖的与51单片机的接口方法,同时给出了用C语言编写的数据采集的应用程序。
 
    关键词:模/数转换 单片机 接口 C语言 ADS7804
 
    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<reg51.h>
# include<absacc.h>
# 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<N;i++)
{ do{}whilt(!TF0);/*查询等待TF0复位*/
TF0=0; /*清溢出标志*/
TH0=th;TL0=tl; /*装载计数初值*/
Array[i]=ADS7804(); /*采样、存储*/
}
TR0=0; /*停止定时*/
}
 
    6 结束语
 
ADS7804为12位的A/D转换器,它不仅分辨率高、转换速度快,而且接口方便,电路简单、应用灵活,因而具有广泛的应用前景。笔者在DLRS-1型检波器低频接收灵敏度特性测量仪中使用了ADS7804,取得了很好的效果。
收藏此页】【打印】【关闭窗口】   

 相关产品
  WJ89S52V2.1单片机开发板 ¥380元 (2007-10-22)
  WJ430F149V2.0单片机开发板 ¥480元 (2007-11-08)
  WJ89C52V1.2单片机开发板 ¥280元 (2008-07-05)
  WJ51PV2.1 51单片机编程器 ¥180元 (2007-09-17)
  ICD2.5 PIC单片机仿真器 ¥280元 (2007-03-13)
  WJ16F877AV2.0单片机开发板 ¥380元 (2007-03-13)
 相关文章
  单片机入门  (2008-03-10 00:46:13)
  用单片机模拟I2C总线实现串行E2PROM的读写  (2008-05-24 22:45:31)
  单片机与MMC卡的接口  (2008-03-09 00:47:27)
  12位A/D转换器ADS7804与51单片机的接口及程序设计  (2008-03-10 01:11:41)
  单片机显控系统中的汉字输入  (2008-03-10 01:03:03)
  80C51单片机与MCS-51单片机的区别  (2008-05-24 22:37:06)
  基于MSP430单片机和nRF905的无线通信系统  (2008-04-28 14:21:52)
  基于单片机控制的高精密直流电流源的设计  (2008-04-28 14:28:57)
  51单片机与串行AD转换器TLC2543的接口设计  (2008-05-24 22:30:04)
  基于C8051F单片机的红外轴温探测器零点校正技术  (2008-04-28 14:13:16)
 
   MSP430并口仿真器
   ATMEL ISP下载线
   WJ89C52V1.2单片机开发板
   WJ1C6V2.0 FPGA开发板
   PIC16F877A
   SST89E516 仿真芯片
   STC89C52
   USB AVRISP/STK500下载器
   WJ430F149V2.0单片机开发板
   WJ89S52V2.1单片机开发板
   WJ89S52V2.1单片机开发板
   1602字符型液晶屏
   Altera ByteBlasterII下载线
   USB BLASTER下载线
   128*64图形液晶屏
   WJ430F149V2.0单片机开发板
   WJ1C6V2.0 FPGA开发板
   WJ89C52V1.2单片机开发板
   WJ51PV2.1 51单片机编程器
   AT89S52
   程序的书写规则(程序的编码规
   c8051f单片机使用经验总结
   纯c语言实现动态分配多维数组
   从Cygnal C8051F看8位单片机
   51单片机控制的DS1302时钟程
   几种常用单片机介绍
   DSP开发中值得注意的几个问题
   德州仪器认为DSP技术正快速推
   Linux内核技术分析
   Linux操作系统12则经典应用技
   Linux操作系统发展简史
   教你一招 Linux常见紧急情况
   嵌入式Linux操作系统的驱动程
   基于嵌入式Linux平台多协议路
   系统学习linux的十一点
   单片机入门
   89S51与89C51的不同之处
   Keil C51程序设计中几种精确
   汇编程序编写的一些原则
   用单片机模拟I2C总线实现串行
   单片机与MMC卡的接口
   12位A/D转换器ADS7804与51单
   单片机显控系统中的汉字输入
   80C51单片机与MCS-51单片机的
   用FIFO实现高速模数转换器与
   基于MSP430单片机和nRF905的
   C51编程规则讲述
   基于单片机控制的高精密直流
   8051的汇编控制指令
   51单片机与串行AD转换器TLC2
关于我们 -- 各地代理 -- 付款方式 -- 购物流程 -- 售后服务 -- 淘宝店 -- 百度店 -- 拍拍店
Copyright © 2006-2008 伟杰龙电子 All Rights Reserved 沪ICP备08014295号
陈先生:QQ: 手机:13818903490 Email:
李先生:QQ: 手机:13622090409 Email:
宋先生:QQ: 手机:15881645409 Email:
电话:021-22819431 传真:021-66341252 地址:上海市宝山区大华路1380弄37号