8路数据采集系统的设计与实现
【摘 要】本文提出了一种基于AT89S51和模数转换芯片ADC0809的数据采集系统的设计与实现方案。主要从硬件电路设计、数据采集程序设计2个方面进行了详细阐述,其中硬件电路设计部分结合具体芯片,详细的介绍了数据采集系统各部分硬件接口电路的设计。设计中利用51单片机控制A/D转换器构成采样模块,实现对信号的采集,采样后的数据通过LED显示出来。本论文设计并实现了一种数据采集系统,具有简单可靠、使用方便、扩展性强等特点。
【关 键 词数据采集 ADC0809 AT89S51
(一)、系统设计
一、 设计要求 1、基本要求
(1)模拟信号产生器:自制一正弦波信号发生器,利用可变电阻改变振荡频率,使频率在200Hz~2kHz范围变化,再经频率电压变换后输出相应1~5V直流电压(200Hz对应1V,2kHz对应5V)。
(2)八路数据采集器:数据采集器第1路输入自制1~5V直流电压,第2~7路分别输入来自直流源的5,4,3,2,1,0V直流电压(各路输入可由分压器产生,不要求精度),第8路备用。将各路模拟信号分别转换成8位二进制数字信号,再经并/串变换电路,用串行码送入传输线路。
(3)主控器:主控器通过串行传输线路对各路数据进行采集和显示。采集方式包括循环采集(即1路、2路……8路、……1路)和选择采集(任选一路)二种方式。显示部分能同时显示地址和相应的数据。 2、发挥部分 (1)利用电路补偿或其它方法提高可变电阻值变化与输出直流电压变化的线性关系;
(2)尽可能减少传输线数目;
(3)其它功能的改进(例如:增加传输距离,改善显示功能)。 二 、总体设计方案 1、设计思路
本设计的基本思路是:根据设计指标,首先从整体上规划好整个系统的功能和性能,然后再对系统进行划分,将比较复杂的系统分解为多个相对独立的子系统,特别注意对各个子系统与系统、子系统与子系统之间的接口关系进行精心设计以及技术指标的合理分解。然后再由子系统到部件、部件到具体元器件的选择和调试。各部件或子系统各自完成后再进行系统联调,直到完成总体目标。
并口转串口 主控电路 串口转并口 电源输入 显示输出
2、方案论证与比较 3、方案论证 方案一: 方案二:
4、方案的比较
比较方案一和方案二,可知方案二明显优于方案一,方案二电路设计简单,可靠性高,技术先进,成本低,因此选择方案二。
(二)、系统硬件电路设计
一、电源电路设计
电源部分电路由变压器、电桥、三端稳压器7805、滤波电容和整流二极管、电阻分压组成。电路的优点是:直流电源输入范围宽从7.5V—24V都可以可靠工作,电路具有短路保护作用,纹波系数小,电压稳定为5V。如图(1)所示。
图(1)5V稳压电源电路
二、AD转换和串口转并口设计
AD转换部分电路由集成电路0809完成,ADC0809是一种典型的A/D转换器,具有8路模拟输入端口,地址线(23~25脚)可决定对哪一路模拟输入作A/D转换。第22脚ALE为地址锁存控制,当输入为高电平是,对地址信号进行锁存;6脚START为测试控制,当输入一个2us宽高电平脉冲时,就A/D转换;7脚EOC为A/D转换结束标志,当A/D转换结束是,EOC输出高电平;9脚OE为A/D转换数据输出允许控制,当OE为高电平时,A/D转换数据从端口输出;10脚CP为0809的时钟输入端,利用单片机30脚的六分频晶振信号再通过74LS74二分频得到。单片机的P1、P3端口作四位LED数码管显示控制,PO端口作A/D转换数据读入用,P2端口用作0809的A/D转换控制。ADC0809由一个8位A/D转换器、一个8路模拟量开关、8路模拟量地址锁存/译码器和一个三态数据输出锁存器组成。A/D 转换器的主要技术指标是分辨率、转换误差、转换速度。 1、MCS-51与ADC0809的接口
ADC0809时钟信号由单片机的ALE信号2分频获得。ADC0809通道地址由P0 口的低3位直接与ADC0809的A、B、C相连。转换后的N个数据顺序存放到起始地址为data_addr数据存区。
串口转并口部分电路由芯片74LS165组成,与0809的连接电路如下:
2、ADC0809的时钟频率500KHZ的产生:
从单片机 ALE引脚产生的1MHZ频率,通过D触发器后变为500KHZ,然后 输入到0809中的CLK引脚中。而D触发器在74LS74芯片可以找到。如图所示:
三、主控器电路
主控器由AT89S51及其外围电路组成。其外围电路有复位电路、时钟源电路等等。 1、复位电路设计
复位电路如图(5)所示,复位电路具有上电自动复位作用。必要时可按复位键手动复位,提高了复位电路的抗干扰能力。
图(5)复位电路 2、时钟源设计
时钟源电路如图(6)所示,X1和X2之间跨接晶体振荡器和微调电容,构成一个稳定的自激振荡器,这就是单片机的时钟电路,时钟电路产生的振荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉冲信号。
主控器总体电路如图所示:
1、P0口接上拉电阻的作用是保证其工作电压。
2、P1.5 P1.6 P1.7 是外界往单片机里面写程序的3个引脚。
3、由硬件设定,一般P0.2为输入74164的数据线,P0.3为输入74164的时钟线。
4、ALE引脚置5V(即置1)是为了使单片机执行程序时从内部ROM开始查询再到外部RAM,如果为置0时则只从外面的RAM查询。 5、从7615中传送过来的串行数据输入MC-51时,可以从P0,P1,P2,P3中的任意空闲引脚中输入。
四、显示部分
这个电路主要是用74LS164完成,与显示的数码管相连。 这部分主要将数据通过串行变为并行,然后显示到数码管中。
1、80C51单片机输出的数据是串行的,需要把它变为并行的才能在数码管显示,那么就要用到74164芯片作为转换器件。74164的作用是将串行数据转换为并行数据。
2、74164输出的并行数据输进到数码管里面就可以显示了。具体的显示时间长短则要看程序设计的延时时间的长短。
3、果要显示多个数字,则要85C51单片机的时钟线控制,如图所示:
数据从SDA输入,是串行数据。当有8位数据移入到第一个芯片时,则该芯片将这8位数据从QA~QH口并行输出,再输入到数码管,从而实现了串到并的过程。但是当时钟线CLK每上跳变一次时,SDA数据便会输入一位到74164中。CLK不断跳变,SDA不断往74164压入数据,则某数字从数码数码管的左到右显示。至于在某个数码管显示多久就要看程序的延时时间了。