unsigned char BUF[10]; //接收数据缓存区
signed int T_X,T_Y,T_Z;
unsigned char readkey()
{
unsigned char keytemp,KEY=0;
P0=0x0f;
keytemp=P0;
if(keytemp==0x0f) return 0xff;
else KEY=keytemp;
P0=0xf0;
keytemp=P0;
if(keytemp==0xf0) return 0xff;
else KEY=KEY|keytemp;
switch(KEY)
{
case 0xEE: KEY=1;break;
case 0xDE: KEY=2;break;
case 0xBE: KEY=3;break;
case 0x7E: KEY=4;break;
case 0xED: KEY=5;break;
case 0xDD: KEY=6;break;
case 0xBD: KEY=7;break;
case 0x7D: KEY=8;break;
case 0xEB: KEY=9;break;
case 0xDB: KEY=10;break;
case 0xBB: KEY=11;break;
case 0x7B: KEY=12;break;
case 0xE7: KEY=13;break;
case 0xD7: KEY=14;break;
case 0xB7: KEY=15;break;
case 0x77: KEY=16;break;
default:KEY=0;
}
return(KEY);
}
void main()
{ unsigned char i,key,keytemp;
signed int volt,Angle; //装AD转换结果
float VDF;
P0M0=0xff;
P0M1=0x00; //设置P0口为强上拉输
void Init_MPU9250(void);
void READ_MPU9250_ACCEL(unsigned char *BUF,signed int *T_X,signed int *T_Y,signed int *T_Z);
void READ_MPU9250_GYRO(unsigned char *BUF,signed int *T_X,signed int *T_Y,signed int *T_Z);
void READ_MPU9250_MAG(unsigned char *BUF,signed int *T_X,signed int *T_Y,signed int *T_Z);
void MPU9250_Read_Average(signed int *x,signed int *y,signed int *z,unsigned char times,unsigned char ACCEL_or_GYRO_or_MAG);
unsigned int MPU9250_Get_Angle(float x,float y,float z,unsigned char Z_or_X_or_Y);
void LCD1602_MPU9250XYZ(signed int T_X,signed int T_Y,signed int T_Z);
signed int MPU9250_Get_ZAngle(float x,float y,float z);
void Delayms(unsigned int n);