找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 4979|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

IIC存儲(chǔ)芯片的訪問(wèn) 24c02 24c16

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:51024 發(fā)表于 2014-8-10 12:30 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
                       
#include  
__CONFIG(0x0012);
#define scl RA3
#define sda RA4
void delay_nop()
{
   NOP();NOP();NOP();NOP();NOP();
}
void start()
{
  TRISA4=0;
  sda=1;
  delay_nop();
  scl=1;
  delay_nop();
  sda=0;
  delay_nop();
}
void stop()
{
  TRISA4=0;
  sda=0;
  delay_nop();
  scl=1;
  delay_nop();
  sda=1;
  delay_nop();
}
void respons()
{
  unsigned int i;
  TRISA4=1;
  scl=1;
  delay_nop();
  while((sda==1)&&(i<400)) i++;
  scl=0;
  delay_nop();
  
}
void init_24c16()
{
  ADCON1=0X07;
  TRISA3=0;

  TRISA4=0;
  sda=1;
  delay_nop();
  scl=1;
  delay_nop();


}
void write_byte(unsigned char date)
{
  unsigned char i,temp,temp1;
  temp=date;
  TRISA4=0;
  for(i=0;i<8;i++)
  {
scl=0;
delay_nop();
temp1=temp&0x80;
if(temp1!=0) sda=1;
else sda=0;
temp=temp<<1;
delay_nop();
scl=1;
delay_nop();  
  }
  scl=0;
  delay_nop();
  sda=1;
  delay_nop();
  
}
unsigned char read_byte()
{
  unsigned char i,k;
  TRISA4=0;
  scl=0;
  delay_nop();
  sda=1;
  delay_nop();
  for(i=0;i<8;i++)
  {
TRISA4=1;
scl=1;
delay_nop();
k=(k<<1)|sda;
scl=0;
delay_nop();  
  }
  return k;
}
void write_add(unsigned int address,unsigned chardate)
{
  unsigned char MSbyte,LSbyte;
  MSbyte=address/256;
  LSbyte=address%6;
  start();
write_byte(0xa0+(MSbyte<<1));
  respons();
  write_byte(LSbyte);
  respons();
  write_byte(date);
  respons();
  stop();

}
unsigned char read_add(unsigned int address)
{
  unsigned char date;
  unsigned char MSbyte,LSbyte;
  MSbyte=address/256;
  LSbyte=address%6;
  start();
  write_byte(0xa0+(MSbyte<<1));
  respons();
  write_byte(LSbyte);
  respons();
  start();
  write_byte(0xa1+(MSbyte<<1));
  respons();
  date=read_byte();
  stop();
  return date;
   
}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:65370 發(fā)表于 2014-8-23 19:41 | 只看該作者
一看就是很專業(yè)的樣子,新手只能慢慢努力了
回復(fù)

使用道具 舉報(bào)

板凳
ID:66032 發(fā)表于 2014-9-18 17:06 | 只看該作者
有硬件I2C不用,為什么要用軟件I2C呢?硬件I2C執(zhí)行效率更高, 代碼更優(yōu)化。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表