您的位置 首页 测评

avr单片机IIc总线编程

#defineIIC_Start()TWCR=(1TWINT)

#define IIC_Start() TWCR =(1<#define IIC_Stop()TWCR =(1<#define IIC_Wait() while(!(TWCR&(1<#define IIC_NoneAck() TWCR =(1<#define IIC_Ack()TWCR =(1<

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

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作业在主机方法下,对从机读取数据及写入数据.现已调试经过.期望我们可以弥补完善.

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ceping/273191.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部