• 大小: 43KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-07
  • 语言: 其他
  • 标签: 传感器  

资源简介

ADXL345模块输出X_Y轴角度,基于51单片机的源程序。

资源截图

代码片段和文件信息


/******************************************
日期:2015年10月27日   *
功能:ADXL345合成X轴和Y轴角度   *
author: @kzy    *
CPU:stc89c52rc   *
晶振:11.0592Mhz   *   *
*******************************************/

#include 
#include 
#include 
#include “serial.h“
  
sbit  SCL=P1^1;
sbit  SDA=P1^0;

typedef unsigned char uint8;
typedef unsigned int uint16;
typedef int int16;
typedef char int8;

uint8 buffer[6]={0};
int16 x_y_z_Data[3];
#define SlaveAddress 0xA6   //定义器件在IIC总线中的从地址根据ALT  ADDRESS地址引脚不同修改
                              //ALT  ADDRESS引脚接地时地址为0xA6,接电源时地址为0x3A

/*********************延时模块***************/
void delay5us();
void Delay5ms();
void delayNms(uint16 Nms);
/*********************延时模块***************/


/*************IIC模块*****************************/

void IIC_Start();
void IIC_Stop();
void IIC_SendAck(bit ack);
bit IIC_RecvAck();
void IIC_SendByte(uint8 dat);
uint8 IIC_RecvByte();
/*************IIC模块*****************************/

/*************************ADXL345模块**********************/

void ADXL345_Single_Write(uint8 REG_ADDRESSuint8 REG_DATA);
uint8  ADXL345_Single_Read(uint8 REG_ADDRESS);
void ADXL345_Multiple_Read();
void Init_ADXL345();

/*************************ADXL345模块**********************/

/*************************数据格式转换******************/

unsigned char* u32tostr(unsigned long dat); 

/*************************数据格式转换******************/

void main(void)
{
uint8 DeivceID;
float X_angleY_angleQTK;
Serial_Init();   // 11.0592Mhz
delayNms(600); //延时600ms用以ADXL345内部完成自身初始化
Init_ADXL345();

do{
DeivceID=ADXL345_Single_Read(0x00);
}while(0xE5!=DeivceID);

while(1)
{
ADXL345_Multiple_Read();
x_y_z_Data[0]= (buffer[1]<<8)+buffer[0]; //合成16位原始数据
x_y_z_Data[1]= (buffer[3]<<8)+buffer[2]; //合成16位原始数据
x_y_z_Data[2]= (buffer[5]<<8)+buffer[4]; //合成16位原始数据

Q=(float)x_y_z_Data[0]*3.9;
T=(float)x_y_z_Data[1]*3.9;
K=(float)x_y_z_Data[2]*3.9;
Q=-Q;

X_angle=(float)(((atan2(KQ)*180)/3.14159265)+180); //X轴角度值
Y_angle=(float)(((atan2(KT)*180)/3.14159265)+180);  //Y轴角度值

SendStr(“X_angle:“);
SendStr(u32tostr(X_angle));
SendStr(“\r\n“);
delayNms(100);

SendStr(“Y_angle:“);
SendStr(u32tostr(Y_angle));
SendStr(“\r\n“);
delayNms(100);

}
}


void delay5us()
{
_nop_();_nop_();_nop_();_nop_();
    _nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
}

void Delay5ms()
{
    uint16 n = 560;

    while (n--);
}

void delayNms(uint16 Nms)
{
uint16 j;
while(Nms--)
{
for(j=0;j<120;j++)
{;}
}
}


/*************IIC模块*****************************/

void IIC_Start()
{
SDA=1;
SCL=1;
 delay5us();
SDA=0;
 delay5us();
SCL=0;
}

void IIC_Stop()
{
SDA=0;
SCL=0;
 delay5us();
SDA=1;
 delay5us();
}

void IIC_SendAck(bit ack)
{
SDA=ack;
SCL=1;
 delay5us();
SCL=0;
 delay5us();
}


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2015-10-27 22:14  ADXL345模块输出X_Y轴角度\
     文件       21321  2015-10-27 22:14  ADXL345模块输出X_Y轴角度\ADXL345
     文件        6002  2015-10-27 22:14  ADXL345模块输出X_Y轴角度\adxl345.c
     文件        8263  2015-10-27 22:14  ADXL345模块输出X_Y轴角度\ADXL345.hex
     文件          61  2015-10-27 22:14  ADXL345模块输出X_Y轴角度\ADXL345.lnp
     文件       13202  2015-10-27 22:14  ADXL345模块输出X_Y轴角度\adxl345.LST
     文件       22181  2015-10-27 22:14  ADXL345模块输出X_Y轴角度\ADXL345.M51
     文件       17955  2015-10-27 22:14  ADXL345模块输出X_Y轴角度\adxl345.OBJ
     文件        1818  2015-10-27 22:14  ADXL345模块输出X_Y轴角度\ADXL345.plg
     文件       57502  2015-10-27 22:14  ADXL345模块输出X_Y轴角度\ADXL345.uvopt
     文件       13401  2015-10-27 22:05  ADXL345模块输出X_Y轴角度\ADXL345.uvproj
     文件       57474  2015-10-27 22:05  ADXL345模块输出X_Y轴角度\ADXL345_uvopt.bak
     文件           0  2015-10-27 20:39  ADXL345模块输出X_Y轴角度\ADXL345_uvproj.bak
     文件         547  2015-10-06 16:29  ADXL345模块输出X_Y轴角度\serial.c
     文件         315  2015-10-27 21:39  ADXL345模块输出X_Y轴角度\serial.h
     文件        2037  2015-10-27 22:14  ADXL345模块输出X_Y轴角度\serial.LST
     文件        4138  2015-10-27 22:14  ADXL345模块输出X_Y轴角度\serial.OBJ

评论

共有 条评论