#include<reg52.h>
#include<intrins.h>
#include<stdio.h>
#include<math.h>
#define SMPLRT_DIV 0x19 //Gry filter rate:0x07(125Hz)
#define CONFIG 0x1A //0x06(5Hz)
#define GYRO_CONFIG 0x1B //Gry selfTask or not& detect range:0x18(no,2000deg/s)
#define ACCEL_CONFIG 0x1C //Ace selfTask or not& range&filter rante :0x01(no,2G,5Hz)
#define ACCEL_XOUT_H 0x3B
#define ACCEL_XOUT_L 0x3C
#define ACCEL_YOUT_H 0x3D
#define ACCEL_YOUT_L 0x3E
#define ACCEL_ZOUT_H 0x3F
#define ACCEL_ZOUT_L 0x40
#define GYRO_XOUT_H 0x43
#define GYRO_XOUT_L 0x44
#define GYRO_YOUT_H 0x45
#define GYRO_YOUT_L 0x46
#define GYRO_ZOUT_H 0x47
#define GYRO_ZOUT_L 0x48
#define PWR_MGMT_1 0x6B //Power Manage,0x00 (normal)
#define SlaveAddress 0xD0 //IIC write,+1 for read
sbit rs=P3^5;
sbit rw=P1^1;
sbit en=P3^4;
sbit SCL=P1^0; //IIC clock node
sbit SDA=P1^1; //IIC data node
sbit left=P3^6;
sbit right=P3^7;
unsigned char dis[4]=" 000";//string buffer for a single moveRate element.
unsigned char moveRate[]=" 000, 000, 000, 000, 000, 000,0;";
//32-bits in all,represent aceX,aceY,aceZ
//gryX,gryY,gryZ,opration in order
unsigned char code numTable[]="0123456789";
bit I2C_RecvACK();
/*******************************
delay period ms
********************************/
void delay(unsigned int period){
unsigned int i,j;
for(i=period;i>0;i--)
for(j=110;j>0;j--);
}
/*******************************
delay 5us
********************************/
void Delay5us()
{
_nop