📄 i2c.#2
字号:
#include "MEMSIC.h"
bit Ack;
uint8 xdata Temp0;
uint8 xdata Temp1;
uint8 xdata Temp2;
uint8 xdata Temp3;
int8 xdata Ax;
int8 xdata Ay;
void IIC_Start (void)
{
Sda=1;
_nop_ ();
_nop_ ();
_nop_ ();
_nop_ ();
Scl=1;
_nop_ ();
_nop_ ();
_nop_ ();
_nop_ ();
Sda=0;
_nop_ ();
_nop_ ();
_nop_ ();
_nop_ ();
Scl=0;
_nop_ ();
_nop_ ();
_nop_ ();
_nop_ ();
}
void IIC_Stop (void)
{
Sda=0;
_nop_ ();
_nop_ ();
_nop_ ();
_nop_ ();
Scl=0;
_nop_ ();
_nop_ ();
_nop_ ();
_nop_ ();
Scl=1;
_nop_ ();
_nop_ ();
_nop_ ();
_nop_ ();
Sda=1;
_nop_ ();
_nop_ ();
_nop_ ();
_nop_ ();
}
void IIC_Read_Ack (void)
{
Scl=1;
_nop_ ();
_nop_ ();
_nop_ ();
_nop_ ();
if(Sda==1)
{
Ack=0;
}
else
{
Ack=1;
}
Scl=0;
_nop_ ();
_nop_ ();
_nop_ ();
_nop_ ();
}
void IIC_Write_Ack (void)
{
Sda=0;
_nop_ ();
_nop_ ();
_nop_ ();
_nop_ ();
Scl=1;
_nop_ ();
_nop_ ();
_nop_ ();
_nop_ ();
Scl=0;
_nop_ ();
_nop_ ();
_nop_ ();
_nop_ ();
}
void IIC_Write_NoAck (void)
{
Sda=1;
_nop_ ();
_nop_ ();
_nop_ ();
_nop_ ();
Scl=1;
_nop_ ();
_nop_ ();
_nop_ ();
_nop_ ();
Scl=0;
_nop_ ();
_nop_ ();
_nop_ ();
_nop_ ();
}
unsigned char IIC_Read_Byte (void)
{
uint8 bitCount;
uint8 Temp;
Sda=1;
for(bitCount=0x00;bitCount<0x08;bitCount++)
{
Scl=1;
_nop_ ();
_nop_ ();
_nop_ ();
_nop_ ();
Temp=Temp<<1;
if(Sda==1)
{
Temp+=0x01;
}
Scl=0;
_nop_ ();
_nop_ ();
_nop_ ();
_nop_ ();
}
return(Temp);
}
void IIC_Write_Byte (unsigned char a)
{
uint8 bitCount;
uint8 Temp;
for(bitCount=0x00;bitCount<0x08;bitCount++)
{
Temp=a;
if((Temp<<bitCount)&0x80)
{
Sda=1;
}
else
{
Sda=0;
}
Scl=1;
_nop_ ();
_nop_ ();
_nop_ ();
_nop_ ();
Scl=0;
}
}
void Read_Acc (void) //read acceleration
{
IIC_Start ();
IIC_Write_Byte (0x20);
IIC_Read_Ack ();
IIC_Write_Byte (0x01);
IIC_Read_Ack ();
IIC_Stop ();
IIC_Start ();
IIC_Write_Byte (0x21);
IIC_Read_Ack ();
*(&Temp0)=IIC_Read_Byte ();
IIC_Write_Ack ();
*(&Temp1)=IIC_Read_Byte ();
IIC_Write_Ack ();
*(&Temp2)=IIC_Read_Byte ();
IIC_Write_Ack ();
*(&Temp3)=IIC_Read_Byte ();
IIC_Write_NoAck ();
IIC_Stop ();
Ax=Temp0;
Ax=Ax<<8;
Ax+=Temp1;
Ay=Temp2;
Ay=Ay<<8;
Ay+=Temp3;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -