最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

ads1115

来源:动视网 责编:小OO 时间:2025-10-06 22:34:40
文档

ads1115

#include#defineSCL_OUTP2DIR|=BIT0;#defineSDA_OUTP2DIR|=BIT1;#defineSDA_INP2DIR&=~BIT1;#defineSCL_0P2OUT&=~BIT0;#defineSCL_1P2OUT|=BIT0;#defineSDA_0P2OUT&=~BIT1;#defineSDA_1P2OUT|=BIT1;#definechannel_00#definechannel_11#definechannel_22#definechannel
推荐度:
导读#include#defineSCL_OUTP2DIR|=BIT0;#defineSDA_OUTP2DIR|=BIT1;#defineSDA_INP2DIR&=~BIT1;#defineSCL_0P2OUT&=~BIT0;#defineSCL_1P2OUT|=BIT0;#defineSDA_0P2OUT&=~BIT1;#defineSDA_1P2OUT|=BIT1;#definechannel_00#definechannel_11#definechannel_22#definechannel
#include

#define SCL_OUT P2DIR |= BIT0;

#define SDA_OUT P2DIR |= BIT1;

#define SDA_IN P2DIR &= ~BIT1;

#define SCL_0 P2OUT &= ~BIT0;

#define SCL_1 P2OUT |= BIT0;

#define SDA_0 P2OUT &= ~BIT1;

#define SDA_1 P2OUT |= BIT1;

#define channel_0 0

#define channel_1 1

#define channel_2 2

#define channel_3 3

unsigned char initdata[4] = {0};

unsigned char initdata[15] = {0};

void delay_us(unsigned char d)

{

while(--d);

}

/**************开始ADC通道****************/

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

void startAD1com()

{

SDA_0;

SCL_1;

delay_us(100);

SDA_1;

delay_us(20);

SDA_0;

delay_us(20);

SCL_0;

delay_us(10);

}

/**************停止ADC通道****************/

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

void stopAD1com()

{

SDA_0;

delau_us(10);

SCL_1;

delay_us(20);

SDA_1;

delay_us(10);

//SCL_0;

//delay_us(20);

}

/**************单字节SPI通道****************/

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

void send_byte(unsigned char byte)

{

unsigned char i;

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

{

SDA_0;

if((byte << i) & 0x80) SDA_1;

delay_us(5);

SCL_1;

delay_us(10);

SCL_0;

delay_us(10);

}

delay_us(5);

SDA_1;

delay_us(5);

SCL_1;

delay_us(10);

SCL_0;

delay_us(10);

}

/**************?****************/

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

void confige1115A(unsigned char channel_co)

{

unsigned char i;

unsigned char channel;

switch(channel_co)

{

case 0: channel = 0xc0;//0通道

case 1: channel = 0xD0;//1通道

case 2: channel = 0xE0; //2通道

case 3: channel = 0xF0; //3通道

}

initdata[0] = 0x90; //地址+写命令

initdata[1] = 0x01; //指向配置寄存器

//initdata[2] = 0x82; //配置字高字节

initdata[2] = channel + 0x06;//配置高字节

initdata[3] = 0xE3; //配置低字节

P2DIR |= 0x02; //SDA脚设置推挽

SCL_1;

startAD1com();

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

{

send_byte(initdata[i]);

delay_us(20);

}

stopAD1com();

P2DIR &= ~0x02;//SDA1 脚设置漏开

}

/**************读取一个字节***************/

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

unsigned char byte()

{

unsigned char temp=0;

unsigned char i;

P2DIR &= ~0x02;//SDA1 脚设置漏开

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

{

temp = temp << 1;

SCL_0;

delay_us(10);

SCL_1;

_NOP();

delay_us(5);

if(P2IN & 0x02) temp |= 0x01;

_NOP();

delay_us(10);

}

SCL_0;

delay_us(5);

P2DIR |= 0x02; //SDA1脚设置推挽

SDA_0;

delay_us(5);

SCL_1;

delay_us(20);

SCL_0;

delay_us(5);

SDA_1;

P2OUT &= ~0x02;//SDA1 脚设置漏开

return temp;

}

/***********指向转换结果寄存器************/

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

void point_ster()

{

unsigned char i=0;

P2DIR |= 0x02;//SDA1 脚设置推挽

SCL_0;

startAD1com();

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

{

send_byte(initdata[i]);

delay_us(20);

}

stopAD1com();

delay_us(10);

}

/**************读

取AD转换值***************/

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

unsigned int read1115()

{

unsigned char tL,tH;

unsigned int result;

initdata[0] = 0x91;//地址+读命令

P2DIR |= 0x02;//SDA1脚设置推挽

SCl_1;

startAD1com();

delay_us(10);

send_byte(initdata[0]);

P2DIR &= ~0x02;//SDA1脚设置漏开

delay_us(20);

tH = read_byte();

delay_us(10);

tL = read_byte();

stopAD1com();

result = tH + tL;

return result;

}

/*************模拟量转化数字量************/

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

unsigned int AD_1115(unsigned char channel_Ad)

{

unsigned int result_gd;

confige1115A(channel_Ad);

delay_us(1000);

point_ster();

delay_us(10);

result_gd = read1115();

return result_gd;

}

文档

ads1115

#include#defineSCL_OUTP2DIR|=BIT0;#defineSDA_OUTP2DIR|=BIT1;#defineSDA_INP2DIR&=~BIT1;#defineSCL_0P2OUT&=~BIT0;#defineSCL_1P2OUT|=BIT0;#defineSDA_0P2OUT&=~BIT1;#defineSDA_1P2OUT|=BIT1;#definechannel_00#definechannel_11#definechannel_22#definechannel
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top