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

📄 avr_iic.txt

📁 实现IIC的基本通信,单片机工作在IIC工作在主机方式下,对从机读取数据及写入数据,已经调试通过.
💻 TXT
字号:
avr单片机IIc总线编程

#define IIC_Start()          TWCR =(1<<TWINT)|(1<<TWSTA)|(1<<TWEN)
#define IIC_Stop()          TWCR =(1<<TWINT)|(1<<TWSTO)|(1<<TWEN)
#define IIC_Wait()           while(!(TWCR&(1<<TWINT)))
#define IIC_NoneAck()   TWCR =(1<<TWINT)|(1<<TWEN)
#define IIC_Ack()           TWCR =(1<<TWINT)|(1<<TWEN)|(1<<TWEA)

/*=========================================

  IicWrite(uchar ad,uchar da):ad=寄存器地址,da=数据;
  IicRead(uchar ad):           ad=寄存器地址
=========================================*/
void IicWrite(uchar ad,uchar da)
{
     IIC_Start();
     IIC_Wait();
     TWDR=0xA2;//从机地址
     IIC_Ack();
     IIC_Wait();
     TWDR=ad;
     IIC_Ack();
     IIC_Wait();
     TWDR=da;
     IIC_Ack();
     IIC_Wait();
     IIC_Stop();
}
uchar IicRead(uchar ad)
{
 unsigned char data;
 IIC_Start();
 IIC_Wait();
 TWDR = 0xA2;//从机地址
 IIC_Ack();
 IIC_Wait();
 TWDR = ad;
 IIC_Ack();
 IIC_Wait();
 
 IIC_Start();
 IIC_Wait(); 
 TWDR = 0xA3;
 IIC_Ack();
 IIC_Wait();
 IIC_NoneAck();
 IIC_Wait();
 data=TWDR; 
 IIC_Stop();
 return data;
}

单片机工作在IIC工作在主机方式下,对从机读取数据及写入数据.已经调试通过.希望大家能够补充完善.
 
 

⌨️ 快捷键说明

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