waittime

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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 2024-01-28 23:51  单片机入门  阅读(3)  评论(0编辑  收藏  举报