waittime

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  6 随笔 :: 0 文章 :: 0 评论 :: 67 阅读

include <REGX52.H>

sbit SCL=P2^1;
sbit SDA=P2^0;
void IC2_Start(void)
{
SCL=1;
SDA=1;
SDA=0;
SCL=0;
}
void IC2_End(void){
SDA=0;
SCL=1;
SDA=1;
}
void I2C_Send(unsigned char Byte){
unsigned char i;
SCL=0;
for(i=0;i<8;i++){
SDA=Byte&(0x80>>i);
SCL=1;
SCL=0;
}
}
unsigned char I2C_Receive(void){
unsigned char Byte,i;
SDA=1;

for(i=0;i<8;i++){

SCL=1;
Byte=SDA|(0x00>>i);
SCL=0;
}


return Byte;

}
void Send_Ack(bit ack){
SDA=1;
SDA=ack;
SCL=1;
SCL=0;
}

bit Receive_Ack(void){
bit ack;
SDA=1;
SCL=1;
ack=SDA;
SCL=0;
return ack;
}

头文件

ifndef I2C_H

define I2C_H

void IC2_Start(void);
void IC2_End(void);
void I2C_Send(unsigned char Byte);
unsigned char I2C_Receive(void);
void Send_Ack(bit ack);
bit Receive_Ack(void);

endif

posted on   单片机入门  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
点击右上角即可分享
微信分享提示