⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ads1110.c

📁 ads1110的应用程序
💻 C
字号:
//时间:2003年9月14日
#include <reg52.h>
#include <intrins.h>

//void sent(unsigned char);
//void cominitial(void);

sbit SDA=P2^4;          /*I2C的SDA线定义*/
sbit SCL=P2^5;      	/*I2C的SCL线定义*/
unsigned char idata H_AD,L_AD;
//发起始位
void start(void)
{
	SDA=1;
	SCL=1;
	SDA=0;
	SCL=0;
}
//发停止位
void stop(void)
{
   	SDA=0;
   	SCL=1;
   	SDA=1;
   	SCL=0;
 }
//发非应答位
void mnack(void)
{
   	SDA=1;
   	SCL=1;
   	SDA=0;
   	SCL=0;
}
//发应答位
void mack(void)
{
	SDA=0;
  	SCL=1;
  	SCL=0;
  	SDA=1;
}
//应答位测试
bit cack(void)
{
  	bit samp;
  	samp=0;
  	SDA=1;
  	SCL=1;
  	samp=SDA;
  	SCL=0;
  	return (samp);
}
//发一字节数据
void wrbyte(unsigned char w_data)
{
  	unsigned char i,buf;
  	for (i=0;i<8;i++)
    {
      	buf=0x80&w_data;
      	w_data=_crol_(w_data,1);
      	if (buf==0x80)                          /*发送位为1*/
        {
          	SDA=1;
        }
		SCL=1;
        SCL=0;
        SDA=0;
    }
 }
//收一字节数据
unsigned char rdbyte(void)
{
  	unsigned char buf1,i;
  	bit temp;
  	buf1=0;
  	for (i=0;i<8;i++)
    {
      	SDA=1;
      	SCL=1;
      	temp=SDA;
      	if (temp==1)                             /*接收位是1*/
        {
         	buf1=0x80|buf1;
         	buf1=_crol_(buf1,1);
        }
      	else                                     /*接收位是0*/
        {
         	buf1=0x7f&buf1;
         	buf1=_crol_(buf1,1);
        }
     	SCL=0;
  	}
   	return (buf1);
}

//读取AD转换值
void ReadADC(void)
{
  	unsigned char i;
  //	unsigned int adcnumber;

	i=20;
  	start();                 /*发起始位*/
  	do{

  		wrbyte(0x91);//ED0的读地址
		i--;
  	} while (cack()==1 && i>0);

  	H_AD=rdbyte();
  	mack(); //发应答位
  	L_AD=rdbyte();
  	mnack();//发非应答位
  	stop();
  //	adcnumber=temp1*256+temp2;
//	return adcnumber;
}
//设置ADS1100
void SetADC(unsigned char writedata)
{
	unsigned char i;
  //	unsigned int adcnumber;

	i=20;
  	start();                 /*发起始位*/
  	do{

  		wrbyte(0x90);
		i--;
  	} while (cack()==1 && i>0);
	i=20;
	do{

  		wrbyte(writedata);		
  	} while (cack()==1 && i>0);

	stop();
}
/*void main()
{
unsigned int temp_main;
cominitial();
SetADC(0x84);//0x84 14bit;0x8c 16bit;
while(1)
{
temp_main=ReadADC();
sent(temp_main);
sent(temp_main>>8);
//Delay(10);
}
}			   */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -