首页 基于51单片机和ADC0809的数据采集系统

基于51单片机和ADC0809的数据采集系统

举报
开通vip

基于51单片机和ADC0809的数据采集系统基于51单片机和ADC0809的数据采集系统 摘要:本文介绍了以51单片机为核心构成测控系统中,模拟电压采样及A/D转换方法。同时也介绍了ADC0809转换芯片的内部结构、工作时序及使用方法,并给出了基于ADC0809构成的测控系统的硬件接口电路和软件编程。 关键字:单片机,电压测量,A/D转换,ADC0809 Abstract:This article describes the core components of 51 MCU control system, the analog voltage sampli...

基于51单片机和ADC0809的数据采集系统
基于51单片机和ADC0809的数据采集系统 摘要:本文介绍了以51单片机为核心构成测控系统中,模拟电压采样及A/D转换方法。同时也介绍了ADC0809转换芯片的内部结构、工作时序及使用方法,并给出了基于ADC0809构成的测控系统的硬件接口电路和软件编程。 关键字:单片机,电压测量,A/D转换,ADC0809 Abstract:This article describes the core components of 51 MCU control system, the analog voltage sampling and A/D conversion method. Also introduce the ADC0809 converter chip's internal structure, timing and methods of work, and gives the control system based on ADC0809, including the hardware interface circuit and software programming. Key words: MCU, Voltage measurement, A/D conversion, ADC0809 一、引言: 以单片机为核心构成的测控系统,是单片机诸多应用中最为广泛的用途之一,虽然在如今的电子行业,单片机的集成度越来越高,但是了解基本的ADC0809转换芯片还是有必要的,从中也可以学习到AD转换的思想,以及实现方法。 二、系统组成 图一为AD转换的系统框图。其中模拟电压输入为VCC通过划线变阻器进行分压得到, 图一 进而输入至ADC0809的多路模拟开关的其中之一;在经过ADC0809内部结构的处理以及单片机的程序控制,最终实现AD转换。 LED显示电路由4为8段式的LED数码管显示电路,A/D转换电路由8位A/D转换器ADC0809及相关的外围电路组成。 1、单片机介绍   51单片机是对目前所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8031单片机,    HYPERLINK "http://baike.baidu.com/image/09bb4f3dd87646ab3c6d970c" \t "_blank" INCLUDEPICTURE "http://imgsrc.baidu.com/baike/abpic/item/09bb4f3dd87646ab3c6d970c.jpg" \* MERGEFORMATINET    后来随着Flash rom技术的发展,8031单片机取得了长足的进展,成为目前应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。目前很多公司都有51系列的兼容机型推出,在目前乃至今后很长的一段时间内将占有大量市场。51单片机即是基础入门的一个单片机,还是应用最广泛的一种。需要注意的是52系列的单片机一般不具备自编程能力。   当前常用的51系列单片机主要产品有:   *Intel的:80C31、80C51、87C51,80C32、80C52、87C52等;   *ATMEL的:89C51、89C52、89C2051等;   *Philips、华邦、Dallas、Siemens(Infineon)等公司的许多产品 主要功能      HYPERLINK "http://baike.baidu.com/image/7d98931047de1944213f2ed9" \t "_blank" INCLUDEPICTURE "http://imgsrc.baidu.com/baike/abpic/item/7d98931047de1944213f2ed9.jpg" \* MERGEFORMATINET    ·8位CPU·4kbytes 程序存储器(ROM) (52为8K)   ·256bytes的数据存储器(RAM) (52有384bytes的RAM)   ·32条I/O口线·111条指令,大部分为单字节指令   ·21个专用寄存器   ·2个可编程定时/计数器·5个中断源,2个优先级(52有6个)   ·一个全双工串行通信口   ·外部数据存储器寻址空间为64kB   ·外部程序存储器寻址空间为64kB   ·逻辑操作位寻址功能·双列直插40PinDIP封装   ·单一+5V电源供电   CPU:由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄存器;   RAM:用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据;   ROM:用以存放程序、一些原始数据和表格;   I/O口:四个8位并行I/O口,既可用作输入,也可用作输出;   T/C:两个定时/记数器,既可以工作在定时模式,也可以工作在记数模式;   五个中断源的中断控制系统;   一个全双工UART(通用异步接收发送器)的串行I/O口,用于实现单片机之间或单片机与微机之间的串行通信;   片内振荡器和时钟产生电路,石英晶体和微调电容需要外接。最高振荡频率为12M。 2、AD转换简述   AD转换就是模数转换,顾名思义,就是把模拟信号转换成数字信号。 2.1. AD转换器的分类   下面简要介绍常用的几种类型的基本原理及特点:积分型、逐次逼近型、并行比较型/串并行型、Σ-Δ调制型、电容阵列逐次比较型及压频变换型。   1)积分型(如TLC7135)   积分型AD工作原理是将输入电压转换成时间(脉冲宽度信号)或频率(脉冲频率),然后由定时器/计数器获得数字值。其优点是用简单电路就能获得高分辨率, 但缺点是由于转换精度依赖于积分时间,因此转换速率极低。初期的单片AD转换器大多采用积分型,现在逐次比较型已逐步成为主流。   2)逐次比较型(如ADC0808/ADC0809)   逐次比较型AD由一个比较器和DA转换器通过逐次比较逻辑构成,从MSB开始,顺序地对每一位将输入电压与内置DA转换器输出进行比较,经n次比较而输出 数字值。其电路规模属于中等。其优点是速度较高、功耗低,在低分辩率(<12位)时价格便宜,但高精度(>12位)时价格很高。   3)并行比较型/串并行比较型(如TLC5510)   并行比较型AD采用多个比较器,仅作一次比较而实行转换,又称FLash(快速)型。由于转换速率极高,n位的转换需要2n-1个比较器,因此电路规模也极大,价格也高,只适用于视频AD转换器等速度特别高的领域。   串并行比较型AD结构上介于并行型和逐次比较型之间,最典型的是由2个n/2位的并行型AD转换器配合DA转换器组成,用两次比较实行转换,所以称为 Half flash(半快速)型。还有分成三步或多步实现AD转换的叫做分级(Multistep/Subrangling)型AD,而从转换时序角度 又可称为流水线(Pipelined)型AD,现代的分级型AD中还加入了对多次转换结果作数字运算而修正特性等功能。这类AD速度比逐次比较型高,电路 规模比并行型小。   4)Σ-Δ(Sigma?/FONT>delta)调制型(如AD7705)   Σ-Δ型AD由积分器、比较器、1位DA转换器和数字滤波器等组成。原理上近似于积分型,将输入电压转换成时间(脉冲宽度)信号,用数字滤波器处理后得到数字值。电路的数字部分基本上容易单片化,因此容易做到高分辨率。主要用于音频和测量。   5)电容阵列逐次比较型   电容阵列逐次比较型AD在内置DA转换器中采用电容矩阵方式,也可称为电荷再分配型。一般的电阻阵列DA转换器中多数电阻的值必须一致,在单芯片上生成高 精度的电阻并不容易。如果用电容阵列取代电阻阵列,可以用低廉成本制成高精度单片AD转换器。最近的逐次比较型AD转换器大多为电容阵列式的。   6)压频变换型(如AD650)   压频变换型(Voltage-Frequency Converter)是通过间接转换方式实现模数转换的。其原理是首先将输入的模拟信号转换成频率,然 后用计数器将频率转换成数字量。从理论上讲这种AD的分辨率几乎可以无限增加,只要采样的时间能够满足输出频率分辨率 要求 对教师党员的评价套管和固井爆破片与爆破装置仓库管理基本要求三甲医院都需要复审吗 的累积脉冲个数的宽度。其优点是 分辩率高、功耗低、价格低,但是需要外部计数电路共同完成AD转换。 2.2. AD转换器的主要技术指标   1)分辩率(Resolution) 指数字量变化一个最小量时模拟信号的变化量,定义为满刻度与2n的比值。分辩率又称精度,通常以数字信号的位数来表示。   2) 转换速率(Conversion Rate)是指完成一次从模拟转换到数字的AD转换所需的时间的倒数。积分型AD的转换时间是毫秒级属低速AD,逐次比 较型AD是微秒级属中速AD,全并行/串并行型AD可达到纳秒级。采样时间则是另外一个概念,是指两次转换的间隔。为了保证转换的正确完成,采样速率 (Sample Rate)必须小于或等于转换速率。因此有人习惯上将转换速率在数值上等同于采样速率也是可以接受的。常用单位是ksps和Msps,表 示每秒采样千/百万次(kilo / Million Samples per Second)。   3)量化误差 (Quantizing Error) 由于AD的有限分辩率而引起的误差,即有限分辩率AD的阶梯状转移特性曲线与无限分辩率AD(理想AD)的转移特 性曲线(直线)之间的最大偏差。通常是1 个或半个最小数字量的模拟变化量,表示为1LSB、1/2LSB。   4)偏移误差(Offset Error) 输入信号为零时输出信号不为零的值,可外接电位器调至最小。   5)满刻度误差(Full Scale Error) 满度输出时对应的输入信号与理想输入信号值之差。   6)线性度(Linearity) 实际转换器的转移函数与理想直线的最大偏移,不包括以上三种误差。   其他指标还有:绝对精度(Absolute Accuracy) ,相对精度(Relative Accuracy),微分非线性,单调性和无错码,总谐波失真(Total Harmonic Distotortion缩写THD)和积分非线性。 3、ADC0809介绍 ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,可以和单片机直接接口。 ADC0809的内部结构框图见图二。由图二可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。 ADC0809的引脚结构见图三。 IN0-IN7:8条模拟量输入通道。ADC0809对输入模拟量要求:信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。 图二 图三 地址输入和控制线:4条 ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。通道选择表如下表所示。 图四 部分时序图 数字量输出及控制线:11条 ST为转换启动信号。当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。EOC为转换结束信号。当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。D7-D0为数字量输出线。 CLK为时钟输入信号线。因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ, VREF(+),VREF(-)为参考电压输入。 4、A/D转换的电路连接图 在焊接硬件电路之前,我在Proteus ISIS里进行了仿真,在第一次焊接好的电路里,LED显示太暗,我就重新 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 了如图五所示电路图。总的电路由8051单片机最小系统,LED显示,ADC0809电路构成。由于8051单片机IO口的拉电流只有100微安,而LED显示需要几毫安的电流,所以动态显示的不是很好,所以本次实验采用的共阳的LED显示灯,并通过三极管进行电流放大,从而使LED的显示会更加清楚, 图五 四、软件设计 根据图五的电路设计A/D转换的程序。程序采用单片机的定时器产生一个时钟,作为ADC0809的CLK时钟。并读取A/D的值,同时转换为十进制,后送到LED显示。单片机C语言编译软件用著名Keil C51编译器,Keil C51是德国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用,本次ADC程序就是基于Keil C编写出来的。 总的C语言程序如下所示,由LED显示模块,进制转换模块,ADC模块,主函数构成。 #include unsigned char code dispbitcode[]= {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0xf8,0x90}; // unsigned char dispbuf[4]; //unsigned int i; unsigned int j; unsigned char getdata; unsigned int temp; //unsigned int temp1; //unsigned char count; //unsigned char d; sbit ST=P3^0; // sbit OE=P3^1; sbit EOC=P3^2; sbit CLK=P3^3; sbit P34=P3^4; // ADD A-B-C sbit P35=P3^5; sbit P36=P3^6; sbit P20=P2^0; // sbit P21=P2^1; sbit P22=P2^2; sbit P23=P2^3; sbit P17=P1^7; void TimeInitial(); void Delay(unsigned int i); void TimeInitial() { TMOD=0x10; TH1=(65536-200)/256; TL1=(65536-200)%256; ET1=1; TR1=1; } void Delay(unsigned int i) // { unsigned int j; for(;i>0;i--) for(j=0;j<50;j++); } void Display() { P1=dispbitcode[dispbuf[3]];// //P17=0; // P20=0; P21=1; P22=1; P23=1; Delay(1); P1=0xff; P1=dispbitcode[dispbuf[2]]; P17=0; P20=1; P21=0; P22=1; P23=1; Delay(1); P1=0xff; P1=dispbitcode[dispbuf[1]]; P20=1; P21=1; P22=0; P23=1; Delay(1); P1=0xff; P1=dispbitcode[dispbuf[0]]; P20=1; P21=1; P22=1; P23=0; Delay(1); P1=0xff; } void AD_Transform() { ST=0; OE=0; ST=1; ST=0; P34=0; // P35=0; P36=0; while(EOC==0);// OE=1; getdata=P0; OE=0; //temp=getdata*1.0/255*5000; temp=getdata*1.0/255*500; dispbuf[0]=temp%10; dispbuf[1]=temp/10%10; dispbuf[2]=temp/100%10; dispbuf[3]=temp/1000; } void main() { TimeInitial(); EA=1; while(1) { AD_Transform(); Display(); } } void t1(void) interrupt 3 using 0 { TH1=(65536-200)/256; TL1=(65536-200)%256; CLK=~CLK; } 结论:从稳压电源输出的电源经划线变阻器分压后,接入ADC0809的模拟输入端,LED显示,但是显示的值和采样电压差距比较大,分辨率低,线性度较差等,有待改进。也深刻的认识到理论和实践总是有差距的,需要我们不断地去改进和缩小。 参考文献 [1] 夏莉英,陈雁 基于ADC0809的模拟电压采样测量方法 2008 [2] 郭天祥 新概念51单片机C语言 教程 人力资源管理pdf成真迷上我教程下载西门子数控教程protel99se入门教程fi6130z安装使用教程 -入门、提高、开发、拓展全功略 2009.9
本文档为【基于51单片机和ADC0809的数据采集系统】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_692386
暂无简介~
格式:doc
大小:273KB
软件:Word
页数:9
分类:互联网
上传时间:2014-04-10
浏览量:292