- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机普通IO口模拟IIC多机通信,本人已测试通过
/*
说明,该程序是模拟IIC的通信思想,但也不全是,首先本人设计的不是从机与主机的通信,而是两单片机是平等的,单片机A可以向B或其他任何单片机发送数据(通过各个单片机所设置的地址来加以区分),同时单片机A可以也向B或其他任何单片机读取数据。反之单片机B或其他单片机也可以向A发送数据或读取A的数据,所以各个单片机的代码基本上是一样的,只需根据具体不同的需要调用就行。
由于本人初学单片机,代码写的并不是很好。望各位多多指教!!!
*/
//单片机A 的代码
#includereg52.h
#define uchar unsigned char
#define uint unsigned int
#define LOC_address 0x48
sbit sda=P1^0;
sbit scl=P1^1;
sbit STROBE = P1^2;
bit R_W;
bit START_flag=0;
uchar DEV_address;
void delay()
{
uint i;
for(i=0;i=100;i++);
}
void init()
{
sda=1;
scl=1;
STROBE=1;
}
void start() //启动I2C总线
{
sda = 1;
delay();
scl = 1;
delay();
sda = 0;
delay();
// 此处scl不能拉低,否则两单片机通信时时序无法保持一致
}
/*
void start_scan()
{
bit PreState;
bit NowState;
char NN = 10;
PreState = sda; //记录当前SDA状态,用作比较
while(scl == 1 NN--)
{
NowState = sda;
if(PreState == 1 NowState == 0) //如果为下降沿则为开始信号
{
START_flag = 1;
}
}
}
*/
void Send_Date(uchar j)
{
unsigned char i;
bit temp;
scl = 1;
while(STROBE);
if(STROBE==0)
{ delay();
delay();
delay();
for (i = 0 ;i 8 ;i++)
{
if((ji)0x80)temp=1;
else temp=0;
sda = temp; 、
delay();
scl = 0;
delay();
scl = 1;
delay();
}
scl = 0;
sda = 1; //释放数据线
delay();
STROBE=1;
}
STROBE=1;
}
uchar Receive_Date()
{
uchar i,j,k=0xff;
scl = 1;
STROBE=0;
delay();
if((!scl)(sda))
{
return k;
}
if(STROBE==0)
{
while(scl);
for(i=0;i8;i++)
{
while(!scl);
if(sda==1)
j=1;
else
j=0;
k=(k1)|j;
delay();
delay();
while(scl);
}
P2=k;
return k;
}
return k;
}
/*
void ChackRdd()
{
uchar i,j,k=0xff;
scl = 1;
STROBE=0;
delay();
if(!STROBE)
{
while(scl);
for(i=0;i8;i++)
{
while(!scl);
if(sda==1)
j=1;
else
j=0;
k=(k1)|j;
delay();
delay();
while(scl);
您可能关注的文档
- 办公设备维护保养规范.doc
- 加大意外险推广和销售 树立产品销售正确观念—业务人员宣导版.ppt
- 加强国际交流合作.ppt
- 加强学习型党组织建设推动攀钢科学发展.doc
- 加强幼儿教师队伍建设,确保学前教育健康发展.doc
- 加强我县流动党员管理的对策与建议.doc
- 加强技经管理,为争效益把关.doc
- 加快推进生态文明制度建设.doc
- 加拿大税制.ppt
- 动力装置用柴油机认证试验.doc
- 北师大版小学数学三年级上册《寄书》教学设计.docx
- 统编版(部编版)语文二年级上册《雪孩子》教学设计.docx
- 统编版(部编版)语文二年级上册《八角楼上》教学设计.docx
- 北师大版小学数学三年级上册《长方形周长》教学设计.docx
- 北师大版小学数学三年级上册《丰收了》教学设计.docx
- 统编版(部编版)语文二年级上册《夜宿山寺》教学设计.docx
- 统编版(部编版)语文二年级上册《风娃娃》教学设计.docx
- 统编版(部编版)语文二年级上册《朱德的扁担》教学设计.docx
- 统编版(部编版)语文二年级上册《难忘的泼水节》教学设计.docx
- 统编版(部编版)语文二年级上册《纸船和风筝》教学设计.docx
文档评论(0)