craftyfox 发表于 2007-3-22 16:23:14

哪位有ADS1100代码 ?

如题,哪位有,共享一下下,老是搞不定,快被老板逼疯了……在搜索里也找不到

谢谢

craftyfox 发表于 2007-3-22 16:35:29

我QQ:30121990

哪个好心人,搞不定就要失业了,都是做这行的,就同情一下下吧,大虾!

xzyang 发表于 2007-3-22 16:45:00

C51的

#include <reg52.h>



#include<absacc.h>

#include <intrins.h>

#define uchar unsigned char



#define buff1 DBYTE

sbit SDA=P3^4;

sbit SCL=P3^5;



uchar *temp;

/********************************************

内部函数,延时1

********************************************/

void Delay()

{

   // {P10=1;_nop_();P10=0;}

    _nop_();

   _nop_(); /*根据晶振频率制定延时时间*/

}

/********************************************

内部函数,I2C开始

********************************************/

void Start()

{EA=0;

   SDA=1;

   SCL=1;

   Delay();

   SDA=0;

   Delay();

   SCL=0;

}

/********************************************

内部函数,I2C结束

********************************************/

void Stop()

{

   SDA=0;

   SCL=0;

   Delay();

   SCL=1;

   Delay();

   SDA=1;

   Delay();

   EA=1;

}

/********************************************

内部函数,输出ACK ,每个字节传输完成,输出ack=0,结束读书据,ack=1;

********************************************/



void WriteACK(uchar ack)

{

   SDA=ack;

   Delay();

   SCL=1;

   Delay();

   SCL=0;

}

/********************************************

内部函数,等待ACK

********************************************/

void WaitACK()

{uchar errtime=20;

   SDA=1;

   Delay(); /*读ACK*/

   SCL=1;

   Delay();

   while(SDA)

   {errtime--;

      if(!errtime) Stop();

   }

   SCL=0;

   Delay();

}

/********************************************

内部函数.输出数据字节

入口:B=数据

********************************************/

void writebyte(uchar wdata)

{

   uchar i;

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

   {

       if(wdata&0x80) SDA=1;

       else SDA=0;

       wdata<<=1;

       SCL=1;

       Delay();

       SCL=0;

   }

   WaitACK();   //I2C器件或通讯出错,将会退出I2C通讯

}

/********************************************

内部函数.输入数据

出口:B

********************************************/

uchar Readbyte()

{

   uchar i,bytedata;

   SDA=1;

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

   {

      SCL=1;

      bytedata<<=1;

      bytedata|=SDA;

      SCL=0;

      Delay();

   }

   return(bytedata);

}

/********************************************

初始化ads1100----------外部调用

********************************************/

void wr_ads1100(uchar mdata)

{ Start();

writebyte(0x90);

writebyte(mdata);

Stop();

}

/********************************************

读数据----------------外部调用

********************************************/

void Rd_ads1100(void) /*多字节*/

{

   temp=&buff1;

   Start();

   writebyte(0x91); /*写命令*/

   *temp=Readbyte();

   WriteACK(0);

   *(temp+1)=Readbyte();

   WriteACK(1);

   Stop();

}

craftyfox 发表于 2007-3-22 16:50:26

谢谢xzyang老哥啦,嘻嘻~~!!!!

free 精神~~||

craftyfox 发表于 2007-3-22 16:56:28

希望COPY程序的同志顶一下哦,不顶下次没得用了

hjxiaoxiao 发表于 2013-4-6 15:30:37

{:smile:}顶一下   准备用ads1100玩玩不知道能不能实现想要的
页: [1]
查看完整版本: 哪位有ADS1100代码 ?