基于单片机与AD1674的数据采集

发布者:CyberJolt最新更新时间:2012-03-13 来源: 微计算机信息 关键字:数据采集  AT89s8252  AD1674 手机看文章 扫描二维码
随时随地手机看文章

1.  ATMEL89S8252与AD1674简介:

    (1)ATMEL89S8252的性能特点:

ATMEL89系列单片机与8051系列单片机兼容,这个系统对于以8051系列为基础的系统来说,十分容易进行取代。同时,对那些熟悉8051的用户来说,用ATMEL公司的89系列单片机来取代8051进行系统的设计也是轻而易举的事。

本系统采用的ATMEL89系列单片机中的AT89S8252型号,AT89S8252 采用ATMEL的高密度非易失性存储器技术制造,与工业上标准的80C51的指令系统及引脚兼容,

    片内可向下装载Flash,允许程序存储器在系统内通过SPI串行口改写或用通用的非易失性存储器编程器改写。通过把通用的8CPU与可向下装载的Flash集成在一个芯片上,AT89S8252便成为一个高效的微型计算机。它的应用范围广,可用于解决复杂的控制问题,且成本较低。

AT89S8252型单片机除了具备一般的单片机性能之外还具备如下的特点:

     8 KB Flash的存储器,可写/擦1000次

     具有2 KBEEPROM可写/擦100000次,提高了存储容量

     含有9个中断响应的能力

     含有标准型和低档型所不具备的SPI接口

     含有Watchdog定时器,它的存在可以大大提高单片机工作的可靠性

     含有双数据指针

     含有从电源下降的中断恢复

其结构图如下:

2)AD1674数模转换芯片是美国模拟器件公司的新一代产品,它是逐次逼近型的12位精度中高端产品AD1674有如下特点:(1)有参考电压基准和时钟电路,单/双极性输入;(2)全8位或16位微处理器接口;(3)250ns总线取数时间,能满足一般微处理器的时序要求;(4)高转换率,采样时间控制在10us以内,速度极快,所以此系统设计时是采用查询的方式与单片机连接的;(5)片内集成了采样保持器,保持器使数据传送的准确性得到了保证,而且避免了另加元件使系统复杂化的麻烦。

模拟电压的输入:模拟电压从13脚或14脚输入。因为在芯片内部,13,14脚之间是一个内部分压电阻,所以用13脚作输入端而将14脚悬空不会有什么危害,反之亦然。在本课题中要求双极性输入,所以要求AD1674结成双极性的方式其输入连接方式如下图所示:

与单片机的接口:AD1674 可以进行12位转换,也可以进行8位转换,由于单片机是8位的,需要进行两次转换,这里需要注意的是必须将BIT11-BIT4接到数据总线的 D7-D0,而将BIT3-BIT0采取向高位靠齐,接到接到D7-D4,分两次读取转换结果,切不可错接,如果错接的话,极易损坏芯片,

也不能正确读取转换结果。

AD1674的功能图如下:

2.  AD1674与ATMEL89S8252的接口:

模拟量经由八选一多路转换器ADG408 输入到 AD1674.AD1674可以进行12位转换,也可以进行8位转换,由于单片机是8位的,需要进行两次转换,这里需要注意的是必须将 BIT11-BIT4接到数据总线的D7-D0,而将BIT3-BIT0采取向高位靠齐,接到接到D7-D4,分两次读取转换结果。

AD1674有 5根控制线,其中CE,CS,R/C,为一般控制线,完成器件的定时、寻址、启动和读出操作,12/8和A0决定芯片的转换周期和数据输出格式。 CE,CS,R/C三者有效的次序可先可后,在本单片机系统中,12/8接地,CE与单片机的读写信号经过与或门连接。而CE,R/C由74LS373控制,CS由74LS138经过译码来控制。在下图中可以看出AD1674的地址为0x5fff74LS373的地址为0x3fff 。在启动转换或读取A/D 之前,必须将A0和R/C置成如上图所示的相应电平,然后再在CS端施加一负脉冲。AD1674的总线读取周期为250ns,可直接挂接在数据总线上。由于AD1674的转换速度极快,采用查询的方式来设计的。其中STS是转换结束标志,它可提供CPU查询A/D转换是否结束。在本系统中,STS接单片机的P13端.[page]

系统连线图如下:

3.本系统软件采用C语言开发设计而成,增强了程序的可读性和易懂性。程序清单如下:

sbit p14=P1^4;

sbit P13=P1^3;

char xdata *ad74_ls=(char xdata *)0x3fff;//373地址

char xdata *ad_1674=(char xdata *)0x5fff;

void select_channel (unsigned char ch)

{

p14=1;选中408

if(ch==0)

{

*ad74_ls=0x00; 3733位控制ADG408的通道信号

*ad_1674=0x00;//启动12

while(P13==1);等待P13变低,转换结束

*ad74_ls=0x02; //r/c1A0=0

h=*ad_1674; 读取高8

*ad74_ls=0x03; //r/c1A0=1

l=*ad_1674; }读取低4

else if(ch==1)

{ *ad74_ls=0x20;

*ad_1674=0x00;//启动12

while(P13==1);

*ad74_ls=0x22; //r/c1A0=0

h=*ad_1674;

*ad74_ls=0x23; //r/c1A0=1

l=*ad_1674;

}

else if(ch==2)

{ *ad74_ls=0x40;

*ad_1674=0x00;//启动12

while(P13==1);

*ad74_ls=0x42; //r/c1A0=0

h=*ad_1674;

*ad74_ls=0x43; //r/c1A0=1

l=*ad_1674;

}

else if(ch==3)

{ *ad74_ls=0x60;

*ad_1674=0x00;//启动12

while(P13==1);

*ad74_ls=0x62; //r/c1A0=0

h=*ad_1674;

*ad74_ls=0x63; //r/c1A0=1

l=*ad_1674;

}

else if(ch==4)

{ *ad74_ls=0x80;

*ad_1674=0x00;//启动12

while(P13==1);

*ad74_ls=0x82; //r/c1A0=0

h=*ad_1674;

*ad74_ls=0x83; //r/c1A0=1

l=*ad_1674;

}

else if(ch==5)

{ *ad74_ls=0x0A0;

*ad_1674=0x00;//启动12

while(P13==1);

*ad74_ls=0x0A2; //r/c1A0=0

h=*ad_1674;

*ad74_ls=0x0A3; //r/c1A0=1

l=*ad_1674;

}

else if(ch==6)

{ *ad74_ls=0x0C0;

*ad_1674=0x00;//启动12

while(P13==1);

*ad74_ls=0x0C2; //r/c1A0=0

h=*ad_1674;

*ad74_ls=0x0C3; //r/c1A0=1

l=*ad_1674;

}

else

{ *ad74_ls=0x0E0;

*ad_1674=0x00;//启动12

while(P13==1);

*ad74_ls=0x0E2; //r/c1A0=0

h=*ad_1674;

*ad74_1s=0xE3;

l=*ad_1674;

}

}

void main(void)

{

unsigned char i;

unsigned int hi,lo,adresult;

while(1)主循环

{

for(i=0;i<6;i++)

{

select_channel(i);

hi=(unsigned int)(h<<4);8

lo=(unsigned int)(l>>4); 4

adresult=hi+lo;

}

}

}

4.结束语

本系统经实验运行后,取得良好的效果,基本上能准确的将模拟量转换为数字量,其误差在LSB内。

参考文献:[1 ] 余永权 ATMEL89系列单片机应用技术,北京航天航空大学出版社,2000

[2 ] 徐爱钧,彭秀华 单片机高级语言C51应用程序设计,电子工业出版社 1998. 6
关键字:数据采集  AT89s8252  AD1674 引用地址:基于单片机与AD1674的数据采集

上一篇:基于单片机实现FPGA的加载配置
下一篇:扩展键盘电路及其编程

推荐阅读最新更新时间:2024-03-16 12:55

如何使数据采集系统测试速度最大化?
34970/72A数据采集系统如何使测试速度最大化? 以 DC 测量为例,来设置数据采集系统最快的测试速度 Turn off the display 关闭显示 Turn off autozero 关闭自动归零 Turn off autoranging 关闭自动量程 Delays zero 延迟为0 Turn off scaling 关闭定标 Turn off alarms 关闭警报 Use 4.5 digits mode 使用4.5位模式 即为了得到最大的传输率,有必要为每个通道设置量程,分辨率,无延迟,自动调零关闭,并且选择一个较短的积分时间( PLCs 的小数字)经试验按照以下步骤进行设置后单通道测DCV可达到 500 读
[测试测量]
USB总线数据采集设备驱动程序的设计
0 引言 随着计算机应用技术的发展,虚拟仪器、自动测试系统、自动控制等领域,均越来越多的应用计算机来进行数据处理。USB总线标准的提出,解决了计算机传统I/O接口通用性差、不易扩展、易受计算机插槽数量、地址和中断资源的限制等缺点,使计算机在测控领域的重要性与日俱增,也使USB总线在数采测控业界备受关注,并在各种测控设备中迅速发展,但专用的USB设备不能像鼠标、键盘等HID类设备一样使用Windows系统提供的标准驱动程序,而是需要开发专用的驱动程序。开发驱动程序与开发Windows应用程序完全不同,驱动程序以系统的内核模式运行,任何细小的错误都可能引起操作系统的崩溃。因此,专用设备驱动程序开发的复杂性,成为了USB总线在该领域
[测试测量]
USB总线<font color='red'>数据采集</font>设备驱动程序的设计
基于嵌入式Web Server的无线数据采集系统
  1 硬件设计   1.1 基于MCF5272芯片的嵌入式Web Server   基于MCF5272芯片的嵌入式Web Server硬件配置如下:MCF5272(Cold Fire系列)32位处理器、4M字节的两片16 1M位数据宽度FLASH、16M字节的两片16 4M位数据宽度SDRAM、两个标准RS-232串口、一个标准10/100M自适应快速以太网接口、一个BDM接口、各种状态指示和电源等。 MCF5272微处理器是迄今为止摩托罗拉推出的最高集成度的Cold Fire微处理器。这款高集成的Cold Fire微处理器将10/100MB以太网控制器和一个USB模块等通信外围设备结合起来,提高了MCF5272集成通
[单片机]
基于嵌入式Web Server的无线<font color='red'>数据采集</font>系统
浅谈工业大数据数据采集常见的工业协议
在工业大数据领域的从业者有很大一部分是传统IT从业人员,对于工业控制协议比较陌生,因此再做工业大数据采集时,对于各类工业协议有时容易搞不清楚,我简单把在做工业大数据采集时常见的几种工业协议整理了一下,以便搞清这些工业协议的概念和区别。下面就随工业控制小编一起来了解一下相关内容吧。 工业大数据是未来工业在全球市场竞争中发挥优势的关键。无论是德国工业4.0、美国工业互联网还是《中国制造2025》,各国制造业创新战略的实施基础都是工业大数据的搜集和特征分析,及以此为未来制造系统搭建的无忧环境。本书基于工业4.0的时代背景,通过深入剖析未来工业的商业模式和智能服务体系的创新技术变革,论述如何通过工业大数据的分析和应用去预测需求、预测制造
[工业控制]
基于LPC2103的三相电信号数据采集系统
基于三相异步电机驱动的液压设备凭借其运行中的诸多优点在生产实践中得到广泛应用,针对液压系统安全稳定的运行而开展的研究也越来越多。各种能够反应此类设备运转状态的特征信号中,电机的三相电信号能够充分的反应其液压故障和电机故障 ,且三相电信号具有稳定、不易受干扰的特点。因此,根据应用的需要,开发具有高便携性和实用性的三相电信号数据采集系统,完成对液压设备运行中三相电信号实时准确的采集、存储等功能,对实现基于电机驱动的液压设备状态监测以及故障诊断等工作都是十分重要和有意义的。 1 系统的硬件开发 根据三相电信号数据采集系统的应用环境,本文开发的数采系统硬件部分由模拟信号获取、调理单元,数据采集与处理单元和数据存储数据通信四大模块组成。
[单片机]
基于LPC2103的三相电信号<font color='red'>数据采集</font>系统
AT89S8252单片机实现接触式IC卡读写控制的设计
从上高中开始,我们学校用的餐卡就为接触式的IC卡,在校园里还分布着很多的IC卡电话,上大学以后学校使用的校园一卡通,为非接触式是射频式IC卡,因此对IC卡有了兴趣,在学习单片机的过程中,了解到单片机可以实现IC卡的读写控制,在参考有关资料的基础上,学习的利用单片机实现接触式的IC卡读写控制。 主要器件: 1、 AT89S8252单片机芯片,此芯片具有SPI接口,可以用来读写IC卡芯片。 2、 使用与SPI接口兼容的串行数据接口的IC卡芯片AT45D041A,支持在系统重编程,可用于数字语音、图像和数据的存储。 试验流程图: 试验电路图: 试验程序代码: //ICRdWr.h程序 #ifndef _ICRDWR_H //
[单片机]
<font color='red'>AT89S8252</font>单片机实现接触式IC卡读写控制的设计
一种实用的分布式数据采集和控制系统
一、引言 液体的液位测量在工业生产中非常普遍,应用领域也比较广,例如:自来水位的测量和控制,石油管道和储油罐的油位的测量等。高精度的传感器可用于这些测试系统中来感知传递压力、流量、 温度等信号,把这些信号变成电信号,然后经过放大、A/D转换、送入单片机处理后,最后发送到远方的PC机,这样可实现对现场的液位情况进行实时监控,从而向被控单元发出指令,采取相应的动作。整个系统的框图如下: 二、具体的实现过程 1. 放大部分:TLC4502-双路自校准低噪声高速运算放大器的应用。 集成运算放大器种类很多,在各类仪表及控制电路中要求运算放大器必须具有高精度,高共模抑制比和低温漂等性能。目前采用的精密运算放
[应用]
MB90F462在智能家居监控系统数据采集卡中的应用
随着人们对居住环境的舒适度、便捷性和安全性需求的日益提高,智能家居系统应运而生。智能家居系统的核心功能是实现家用设备运行状况的实时监测和传输,主要包括:安全防盗报警;火警、水电、煤气泄漏等实时监测和自动报警;室内温度、湿度、灯光自动调节和遥控等 。因此采集和传输各种设备的运行信息是保证智能家居系统正常运行的关键。MB90F462是Fujitsu公司生产的一款通用16位单片机,最小指令周期仅为62.5ns,适用于工业控制和高速实时数据处理等场合;同时,该芯片具有多功能定时器和多脉冲发生器,适用于交流感应电机和直流无刷电机的控制。本文利用MB90F462丰富的片内资源设计了一款智能家居系统的低速数据采集卡。   1 系统结构及功能概
[工业控制]
MB90F462在智能家居监控系统<font color='red'>数据采集</font>卡中的应用
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved