基于51系列单片机串行多通道数据采集系统设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于51系列单片机串行多通道数据采集系统设计(南京铁道职业技术学院,江苏苏州,黄克亚215137)

【摘要】:摘要:本文详细介绍了11通道12位串行AD转换芯片器TLC2543的结构、主要特点、工作原理与编程要点。给出了TLC2543与51系列单片机的硬件接口电路和软件控制程序,并在Proteus软件中进行系统仿真。

【关键词】:单片机、TLC2543 、C语言、仿真

引言:51系列单片机因其优越的性能,较低的价格,灵活方便的控制方法获得广泛应用,但是作为数字系统的单片机要想处理现实中广泛存在模拟量就必须进行AD转换。目前AD转换芯片有很多,但大多数是精度不高,占用单片机太多的I/O口,使其应用受到很大的限制。本论文所讨论的是基于11通道、12位串行AD转换芯片TLC2543数据采集系统的实现。

1 TLC2543的特点及引脚

TLC2543是12 bit串行A/D转换器,使用开关电容逐次逼近技术完成A/D转换过程.由于是串行输入结构,能够节省51系列单片机的I/O资源.其特点有:

1)12 bit分辨率A/D转换器;

2)在工作温度范围内10us转换时间;

3)11个模拟输入通道;

4)3路内置自测试方式;

5)采样率为66啊kb/s

6)线性误差±1LSB(max);

7)有转换结束(EOC)输出;

8)具有单、双极性输出;

9)可编程的MSB或LSB前导;

10)可编程的输出数据长度.

TLC2543的引脚排列如图1所示.

图l中AIN0~AINl0为模拟输入端;CS为片选端;DIN为串行数据输入端;DOUT为A/D转换结果的三态串行输出端;EOC为转换结束端;CLK为I/O时钟;REF+为正基准电压端;REF-为负基准电压端;VCC为电源;GND为地.

2 TLC2543的使用方法

2.1控制字的格式

控制字为从DATA INPUT端串行输人的8位数据,它规定了TLC2543要转换的模拟量通道、转换后的输出数据长度、输出数据的格式。其中高4位(D7~04)决定通道号,对于0通道至10通道,该4位分别为

(0000—1010H,当为1011—1101时,用于对TLC2543的自检测,当为11l0时,TLC2543进入休眠状态。低4位决定输出数据长度及格式,其中D3、D2决定输出数据长度,01表示输出数据长度为8位.11表示输出数据长度为16位,其他为12位。Dl决定输出数据是高位先送出,还是低位先送出,为0表示高位先进出。D0决定输出数据是单极性(二进制)还是双极性(2的补码),若为单极性,该位为0,反之为1。2.2TLC2543的内部寄存器

从编程角度看,TLC2543内部寄存器有输入数据寄存器与输出数据寄存器。输入数据寄存器存放从DA TA INPUT端移入的控制字。输出数据寄存器存放转换好的数据,以供从DA TA OUT端移出。

2.3 转换过程

上电后,片选CS必须从高到低,才能开始一次工作周期,此时EOC为高,输入数据寄存器被置为0,输出数据寄存器的内容是随机的。

开始时,片选为CS高,I/O CLOCK、DATA INPUT被禁止,DATA OUT呈高阻状态,EOC为高。使CS 变低,I/O CLOCK、DATA INPUT使能,DATA OUT脱离高阻状态。12个时钟信号从I/O CLOCK端依次加入,随着时钟信号的加入,控制字从DA TA INPUT一位一位地在时钟信号的上升沿时被送入TLC2543(高位先送入),同时上一周期转换的A/D数据,即输出数据寄存器中的数据从DATA OUT一位一位地移出。

TLC2543收到第4个时钟信号后,通道号也已收到,因此,此时TLC2543开始对选定通道的模拟量进行采样,并保持到第12个时钟的下降沿。在第12个时钟下降沿,EOC变低,开始对本次采样的模拟量进行A/D转换,转换时间约需10μs,转转完成EOC变高,转转的数据在输出数据寄存器中,待下一个工作周期输出。此后,可以进行新的工作周期。

3TLC2543与51系列单片机接口

目前使用的51系列单片机没有SPI或相同的接口能力,为了与TLC2543接口,可以根据上节所给出的编程要点,利用软件合成SPI操作,完成A/D数据的采集。为较好演示采集系统的控制方式,我们在单片机仿真软件Proteus中进行了电路图设计和编写程序,并验证了设计的是完全可行的。电路如图2所示,图中给出了TLC2543与51系列接口的一种方式。TLC2543与单片机之间只用4根线,转换结束EOC未接入单片机,这是基于二个工作周期之间的单片机指令一般大于10μs,转换已经完成,不必判断EOC,也可以通过试验或计算指令执行时间确定转换是否结束,这样可以省去一根接线。下一节将根据此电路进行A/D采集程序的设计。需要说明的是,图2给出原理图,为了使电路简捷,只画了单个通道模拟量的输入,有关电源、参考电压、去耦等电路未画出。同时为了使开发人员了解转换结果并验证正确性,我们还放置了电压表和数码管显示电路。

4数据采集程序设计

根据TLC2543的工作原理及图2电路,可以进行A/D采集程序的设计。设TLC2543工作于输出数据为12位、高位先送出、输出数据为二进制的格式,这样控制字的高4位为通道号,低4位均为0。以下是采集一个通道的TLC2543A/D转换子程序,值得注意的是,每次读取的数据是上一次采样的数据,所以第一次读得数应当丢弃。采用C语言编写,数据处理及数码管动态显示子程序略去。

#include"reg51.h"

sbit cs=P1^0;

sbit clk=P1^1;

sbit din=P1^2;

sbit dout=P1^3; unsigned char conword; unsigned int advalue=0; bit cy;sbit bit7=B^7; readad( )//读AD函数{

char i;

unsigned char value=0; conword=0x00;

clk=0;

cs=1; cs=0;

B=conword;

//写命令字并读高8位数据

for(i=8;i>0;i--)

{

cy=dout;

din=bit7;

clk=1;

B=B<<1;

clk=0;

value=value<<1;

if(cy==1) value++;

}

advalue=value;

advalue=advalue<<4;

value=0x00;

//读低四位数据

for(i=4;i>0;i--)

{

cy=dout;

value=value<<1;

if(cy==1) value++;

clk=1;

clk=0;

}

P2=value;

advalue=advalue+value;

cs=1;

【参考文献】

[1] Texas Instruments Incorporated.TLC2543 Application Report [G] TI Company

[2] 何立民[M] Mcs一51单片机应用系统北京:北京航空航天大学出版社1999.

相关文档
最新文档