标签:
松翰C程序检单例程
#include "define.h"
#include "sn8p2501b.h"
//------------------------------------------延时
void delay(void)
{
for(Z=15;Z!=0;Z--)
{};
}
//------------------------------------------开始
void start_i2c(void)
{
P_SCL=1;
delay();
P_SDA=1;
delay();
P_SDA=0;
delay();
P_SCL=0;
delay();
}
//------------------------------------------停止
void stop_i2c(void)
{
P_SDA=0;
P_SCL=1;
delay();
P_SDA=1;
}
//------------------------------------------应答信号
void ack_i2c(void)
{
delay();
P_SDA=0;
delay();
P_SCL=1;
delay();
P_SCL=0;
delay();
P_SDA=1;
}
//------------------------------------------非应答信号
void noack_i2c(void)
{
P_SDA=1;
P_SCL=1;
delay();
P_SCL=0;
}
//------------------------------------------写
void write_i2c(unsigned int writer_data)
{
unsigned int i;
for(i=0;i<8;i++)
{
FC=0;
writer_data=writer_data<<1;
if(FC) P_SDA=1;
else P_SDA=0;
delay();
P_SCL=1;
delay();
P_SCL=0;
}
}
//------------------------------------------读
unsigned int read_i2c(void)
{
unsigned int i,j,k;
i=0;
for(j=0;j<8;j++)
{
k++;
i=i<<1;
delay();
P_SDA=1;
delay();