最新文章专题视频专题问答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
当前位置: 首页 - 正文

AT24C 程序

来源:动视网 责编:小OO 时间:2025-09-25 12:59:55
文档

AT24C 程序

#include#includeunsignedcharcodenumtab[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};ucharn_data[]={1,3,5,7,9};/************************************************************************/voiddelay(inti){}/************************************
推荐度:
导读#include#includeunsignedcharcodenumtab[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};ucharn_data[]={1,3,5,7,9};/************************************************************************/voiddelay(inti){}/************************************
#include

#include

unsigned char code numtab[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};

uchar n_data[]={1,3,5,7,9};

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

void delay(int i)

{

}

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

void iic_delay()

{  

  _nop_();

  _nop_();

  _nop_();

  _nop_();

}

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

void iic_start()

{

  SDA = 1;

  SCL = 1;

  iic_delay();

  SDA = 0;

  iic_delay();

  SCL = 0;

}

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

void iic_stop()

{

  SDA=0;

  SCL=0;

  iic_delay();

  SCL=1;

  iic_delay();

  SDA=1;

}

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

/* 发送ACK信号

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

void ack()

{

  SDA=0;

  iic_delay();

  SCL=1;

  iic_delay();

  SCL=0;

}

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

/* 发送NOACK信号 */

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

void iic_noack()

{

  SDA=1;

  iic_delay();

  SCL=1;

  iic_delay();

  SCL=0;

}

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

等待ACK信号

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

void iic_wait_ack()

{

  uchar tt=200;

  SDA=1;

  iic_delay();

  SCL=1;

  iic_delay();

  while(SDA && tt--){}

  SCL=0;

}

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

向iic设备发送一个字节 

说明:CY是溢出位

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

void iic_send_byte(uchar sbyte)

{

  uchar i;

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

  {

  

  }

}

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

MCU从iic设备接收一个字节

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

uchar iic_receive_byte()

{

  uchar i;

  uchar ddata=0;

  SCL=0;

  iic_delay();

  SDA=1;

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

  {

  }

  SCL=0;

  return ddata;

}

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

向iic设备写入N个字节

说明:write_data,写入字节的数组

 Address,从address处开始写入

 n,写入的字节数

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

void AT24C_W(uchar data[], uchar address, uchar n)

{

  uchar i;

 每页最多32字节

  iic_start();

  iic_send_byte(0xa0);  器件地址

  iic_wait_ack();

iic_send_byte(address>>8); 传高8位地址

  iic_wait_ack(); 

  iic_send_byte(address & 0xff);  //传低8位地址

  iic_wait_ack();

  for(i=0; i  {

 i]);

 iic_wait_ack();

  }

  iic_stop();

}

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

从iic设备读取N个字节

说明:read_data ,存放字节的数组 ;

address,指定从address处开始读取 

num,读取的字节数

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

void AT24C_R(uchar data[], uchar address, uchar n)

{

  uchar i;

  uchar *pp;

 不能大于32,会从头覆盖字节

  pp = data;

  iic_start();

  iic_send_byte(0xa0);

  iic_wait_ack();

iic_send_byte(address>>8);

  iic_wait_ack();

  iic_send_byte(address & 0xff);

  iic_wait_ack();

  iic_start();

  iic_send_byte(0xa1);

  iic_wait_ack();

  for (i=0; i  {

 pp = iic_receive_byte();

 pp++; 

 i <

 ack();

  

  }

  iic_noack();

  iic_stop();  

}

void main()

{

   //数码管的段位

   //数码管的数据位

 

}

文档

AT24C 程序

#include#includeunsignedcharcodenumtab[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};ucharn_data[]={1,3,5,7,9};/************************************************************************/voiddelay(inti){}/************************************
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top