好的开始时成功的一半 ——ADXL345 测角度 一、硬件准备 杜邦线 5.1K 电阻 最小单片机系统(P1 带上拉电阻) 89C51 GY-29-ADXL345 加速度计 1602 液晶显示器 二、程序 在最后! 三、电气连接 这个连接时对ADXL345不熟的非常有用 四、测试 效果图 后记: 发现网上有许多的关于测角度的资料都不是很全,在这里总结一下。 人人为我,我为人人! 程序: /******************************************************************** * 文件名 :GY-29 ADXL345 测角度,角度值显示 * 创建人 :飞翔的猫 * 描述 : 该文件实现了用 GY-29 ADXL345 角度的采集,并在数码管上显示出来。 使用单片机 STC89C51 *晶振 :11.0592M *显示 :LCD1602 *编译环境 :Keil u Vision4 *时间 :2013 年 8 月 13 日 *QQ :361301011 ****************************************/ #inclu de #inclu de //Keil library #inclu de //Keil library #inclu de #define u char u nsigned char #define u int u nsigned 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; //变量 int data_xyz[3]; 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); void conversion(uint temp_data); void Single_Write_ADXL345(uchar REG_Address,uchar REG_data); //单个写入数据 uchar Single_Read_ADXL345(uchar REG_Address); //单个读取内部寄存器数据 void...