本实例代码提供了一种使用ADXL345三轴加速度计的方法,包括初始化、读取数据和处理加速度传感器信号的步骤。适合初学者快速上手。
#include
#include
#include
#include
#define uchar unsigned char
#define uint unsigned int
#define DataPort P0 //LCD1602数据端口定义
sbit SCL = P1^0; //IIC时钟引脚定义
sbit SDA = P1^1; //IIC数据引脚定义
sbit LCM_RS = P2^0; //LCD1602命令端口定义
sbit LCM_RW = P2^1; //LCD1602命令端口定义
sbit LCM_EN = P2^2; //LCD1602使能信号
#define SlaveAddress 0xA6 //器件在IIC总线中的从地址,根据ALT ADDRESS引脚状态不同而变化。当ALT ADDRESS接地时为0xA6;接电源时则为0x3A。
typedef unsigned char BYTE;
typedef unsigned short WORD;
BYTE BUF[8]; //接收数据缓存区
uchar ge, shi, bai, qian, wan; //显示变量定义
int dis_data; //整型变量
void delay(unsigned int k);
void InitLcd(); //初始化LCD1602函数声明
void Init_ADXL345(void); //ADXL345初始化函数声明
void WriteDataLCM(uchar dataW);
void WriteCommandLCM(uchar CMD, uchar Attribc);
void DisplayOneChar(uchar X, uchar Y, uchar DData);
// ADXL345相关操作函数定义
void conversion(uint temp_data);
void Single_Write_ADXL345(uchar REG_Address, uchar REG_data); //单个写入数据到ADXL345寄存器的函数声明
uchar Single_Read_ADXL345(uchar REG_Address); //从ADXL345读取内部寄存器中的一个字节的数据
void Multiple_Read_ADXL345();
//------------------------------------
//以下为IIC通信相关延迟和控制函数定义
void Delay5us();
void Delay5ms();
void ADXL345_Start();
void ADXL345_Stop();
void ADXL345_SendACK(bit ack);
bit ADXL345_RecvACK();
void ADXL345_SendByte(BYTE dat);
BYTE ADXL345_RecvByte();
void ADXL345_ReadPage();
void ADXL345_WritePage();
//以上为IIC通信相关延迟和控制函数定义
//------------------------------------