• 大小: 3KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-05-24
  • 语言: C/C++
  • 标签: IIC  单片机  存储器  

资源简介

基于pic单片机和FM24c256存储器的数据发送与接收。

资源截图

代码片段和文件信息

#include
#define       uchar unsigned char
#define       SCL               RC4
#define       SDA               RC3
#define       SCL_HIGH()        RC4=1
#define       SCL_LOW()         RC4=0
#define       SDA_HIGH()        RC3=1
#define       SDA_LOW()         RC3=0
#define       SDA_IO            TRISC3
unsigned char  read_byte();
void delay(uchar tt)
{
   uchar ij;
   for(i=tt;i>0;i--)
      for(j=114;j>0;j--);
}
void  i2cstart()
{
    SDA_HIGH();
    NOP();
    SCL_HIGH();
    NOP();
    NOP();
    NOP();
    NOP();
    NOP();
    SDA_LOW();
    NOP();
    NOP();
    NOP();
    NOP();
    NOP();
    SCL_LOW();
    NOP();
    NOP();
}
void i2cstop()
{
   SDA_LOW();
   NOP();
   SCL_HIGH();
   NOP();
   NOP();
   NOP();
   NOP();
   NOP();
   SDA_HIGH();
   NOP();
   NOP();
   NOP();
   NOP();
   NOP();
}
void ack()//这是有存储器发过来的ACK   只要象征性的有就可以
{
  // static bit F1;
    //SDA_IO=1;
   // SDA_LOW();
    SCL_HIGH();
    NOP();
    NOP();
    NOP();
    NOP();
    NOP();    
   // F1=SDA;
    NOP();
    NOP();
    SCL_LOW(); 
    NOP();

  NOP(); 
 //  SDA_IO=0;
  // if(F1)return 1;
  // else  return 0; 
}
void i2c_ack(uchar a)//这是单片机发个存储器的ACK  当一个数据的时候选1.多数据的时候选0
{  
   if(a==1)SDA_HIGH();
   else  SDA_LOW();
   SCL_HIGH();
   NOP();
   NOP();
   NOP();
   NOP();
   NOP();
   SCL_LOW();
   NOP();
   NOP();
   NOP();
   NOP();
   NOP();
   NOP();
}
void write_byte(uchar date)
{
   uchar i;
   SCL_LOW();
   for(i=0;i<8;i++)
   {
     if(((date<

评论

共有 条评论