📄 iic.c
字号:
/****************************************************************************/
#define I2C_C
/****************************************************************************/
/* I N C L U D E F I L E S */
/****************************************************************************/
#include "mtv212.h"
#include "io51.h"
#include "i2c.h"
sbit P37 = 0xB7;
sbit P36 = 0xB6;
sbit P35 = 0xB5;
sbit P34 = 0xB4;
sbit P33 = 0xB3;
sbit P32 = 0xB2;
sbit P31 = 0xB1;
sbit P30 = 0xB0;
//===============================================
// DEFINE GLOABL VARIANT
//===============================================
bit ack;
//================================================
void Start(BYTE adr)
{
EA = 0;
ack = 0;
P34 = 1;
P35 = 1;
P34 = 0;
P35 = 0;
Send(adr);
return;
}
//==================================================
void Send(BYTE dat)
{
BYTE idata i;
BYTE idata delay = 200;
for (i=0; i<8; i++)
{
if (dat&0x80)
{
P34 = 1;
}
else
{
P34 = 0;
}
P35 = 1;
while ((!P35) && (delay--))
{
P35 = 1;
}
dat <<= 1;
P35 = 0;
}
P34 = 1;
P35 = 1;
i=0;
while (P34)
{
i++;
if (i>200)
{
ack = 1;
break;
}
};
P35 = 0;
return;
}
//============================================================
BYTE Read(void)
{
BYTE idata recdata;
BYTE idata i;
BYTE idata delay = 200;
recdata = 0;
P34 = 1;
for (i=0; i<8; i++)
{
recdata = recdata<<1;
P35=1;
while ((!P35)&& (delay--))
{
P35=1;
}
recdata = recdata|P34;
P35=0;
P34=1;
}
P34=1;
P35=1;
P35=1;
return(recdata);
}
//=============================================================
void Stop(void)
{
P34 = 0;
P35 = 1;
P34 = 1;
P35 = 0;
EA = 1;
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -