初学者:着急!求高手协助改进:16位A/D芯片与8051的连接方法及C51编程。
数据采集,选用ADS7825与8051进行数据采集(A/D转换)。
其中ADS7825的一些基本的参数:
16bit A/D,
4通道输入:通过A0(脚19)、A1(脚18)选择通道
8位数据线(D0-D7):脚21(BYTE)为低电位D0-D7输出高位(bit8-bit15MSB),为高电位时
D0-D7输出低位(bit0LSB-bit7)。
R/C!(脚22):置低位转换启动。
BUSY!(脚24):开始转换置低,转换完毕置高。用于探测转换完成。
我将
D0-D7接8051的P0口,
BYTE------->P2.7
A0--------->P1.0
A1--------->P1.1
R/C!------->P1.2
BUSY!------>P1.3
其余引脚均按照手册接好,P2.0-P2.6空着。用C51编程的片段:
#defind resulthigh xdate[0X7fff] /*高位地址*/
#defind resultlow xdate[0Xffff] /*高位地址*/
sbit A0=P1^0;
sbit A1=P1^1;
sbit convert=P1^2;
sbit BUSY=P1^3;
unit convertchanl1(void) /*通道1的采样函数*/
{A0=0;A1=0; /*选择通道1*/
A0=A0; /*废语句,等待通道建立*/
convert=0; /*启动转换*/
convert=1;
while(busy==1); /*等待转换结束*/
return((uint)(resulthigh<<8)+resultlow);/*返还16位采样值*/
}
我总觉得我这样接引脚造成编程麻烦,不但4个通道要编4个采样函数,并且总觉得整个采样
过程可能不稳定。请各位大虾们帮着看一看,提一提意见。看有没有更好的方法。感激不
尽!
发表时间:2003年2月8日23:04:00