• 大小: 46KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-06
  • 语言: 其他
  • 标签: 倾角测量  

资源简介

用ADXL345传感器,在12864上实时显示所测的角度,和加速度,程序里显示的是y轴的倾角,如有需要,可以根据程序作修改显示任意轴的角度。

资源截图

代码片段和文件信息

#include  
#include                    //Keil library  
#include “lcd.h“
#define   uchar unsigned char 
#define   uint  unsigned int
#define  CPU_F ((double)8000000)
#define  delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))
#define  delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))
#define   SlaveAddress   0xA6     //定义器件在IIC总线中的从地址根据ALT  ADDRESS地址引脚不同修改
                              //ALT  ADDRESS引脚接地时地址为0xA6,接电源时地址为0x3A

#define      SDA_L P2OUT&=~BIT1//EEPROM 数据线低
#define      SDA_H P2OUT|=BIT1//数据线高
#define      SDA_OUT    P2DIR|=BIT1//设置数据线为输出状态
#define      SDA_IN      P2DIR&=~BIT1//设置数据线为输入状态
#define      SDA_DATE P2IN & BIT1//读入 SDA 线的状态
#define      SCL_L P2OUT&=~BIT0//串行时钟线低
#define      SCL_H P2OUT|=BIT0//时钟高
#define      SCL_OUT    P2DIR|=BIT0//设置时钟线为输出状态
#define TRUE 1
#define FALSE 0
uchar devid; 
uchar err; 
typedef unsigned char  BYTE;
typedef unsigned short WORD;

BYTE BUF[8];                         //接收数据缓存区      

char as_Xjiasu[6]as_Yjiasu[6]as_Zjiasu[6]; //定义3轴静态重力加速度值的ASCII码值
char as_Xangel[4]as_Yangel[4]as_Zangel[4]; //定义3轴角度值的ASCII码值
char data_xyz[3];
char jiasu_xyz[3]angel_xyz[3];  //存放XYZ 轴的静态重力加速度,角度值
/*** *
函数名称:start 
功        能:完成 IIC 的起始条件操作 
参        数:无 
返回值    :无 
**/ 
void start() 

SCL_OUT; 
SDA_OUT; 
SDA_H; 
SCL_H; 
delay_us(2); 
SDA_L; 
delay_us(2);
SCL_L; 

/*** *
函数名称:stop 
功        能:完成 IIC 的终止条件操作 
参        数:无 
返回值    :无 
**/ 
void stop(void) 

SCL_OUT; 
SDA_OUT; 
SDA_L; 
SCL_H; 
delay_us(2);
SDA_H; 
delay_us(2);
SCL_L; 

/*** *
函数名称:mack 
功        能:完成 IIC 的主机应答操作 
参        数:无 
返回值    :无 
**/ 
void mack(void) 

SDA_OUT; 
 SCL_OUT; 
SDA_L; 
SCL_H; 
delay_us(2);
SCL_L; 
SDA_H;
}
/*** *
函数名称:mnack 
功        能:完成 IIC 的主机无应答操作 
参        数:无 
返回值    :无 
**/ 
void mnack(void) 

SDA_OUT; 
SCL_OUT; 
SDA_H; 
delay_us(2);
SCL_H; 
delay_us(2);
SCL_L; 
SDA_L;
}
/*判断应答或非应答子程序  */ 
void cack() 

SDA_IN; 
SCL_OUT; 
SCL_L; 
delay_us(2);
SCL_H; 
err=0; 
if(SDA_DATE)err=1; 
SCL_L; 
SDA_OUT;
}
/*** *
函数名称:write1byte 
功        能:向 IIC 总线发送一个字节的数据 
参        数:wdata--发送的数据 
返回值    :无 
**/ 
void write1byte(uchar byte1) 

unsigned char i=8; 
SDA_OUT; 
SCL_OUT; 
while(i--) 

delay_us(4); 
if(byte1 & 0x80) 
{SDA_H;} 
else 
{SDA_L;} 
delay_us(2); 
SCL_H; 
delay_us(2);
SCL_L; 
byte1<<=1;
}

/*** *
函数名称:read1byte 
功        能:从 IIC 总线读取一个字节 
参        数:无 
返回值    :读取的数据 
**/ 
uchar read1byte(void) 

unsigned char i; 
unsigned char ddata=0; 
signed    char temp; 
SCL_OUT; 
SDA_IN; 
for(i=0;i<8;i++) 

ddata<<=1; 
delay_us(4);
SCL_H; 
temp=SDA_DATE; 
if(temp) ddata++; 
delay_us(4);
SCL_L; 

return ddata;
}
//******单字节写入*** *
void Single_Write_ADXL345(uchar REG_Addressuchar REG_data)
{
start(); //起始信号
write1byte(SlaveAddress); //发送设备地址+写信号
cack();
write1byte(REG_Address); //内部寄存器地址,请参考中文 pdf22

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2013-08-28 13:07  qingjiaochuangganqi\
     目录           0  2013-08-24 21:02  qingjiaochuangganqi\Debug\
     目录           0  2013-08-24 21:29  qingjiaochuangganqi\Debug\Exe\
     文件       33497  2013-08-28 13:07  qingjiaochuangganqi\Debug\Exe\qingjiaochuanganqi.d43
     目录           0  2013-08-28 14:35  qingjiaochuangganqi\Debug\List\
     目录           0  2013-08-28 13:07  qingjiaochuangganqi\Debug\Obj\
     文件       54649  2013-08-28 13:07  qingjiaochuangganqi\Debug\Obj\angel.r43
     文件       12840  2013-08-28 13:07  qingjiaochuangganqi\Debug\Obj\lcd.r43
     文件       11094  2013-08-28 13:07  qingjiaochuangganqi\Debug\Obj\main.r43
     文件         273  2013-08-28 13:07  qingjiaochuangganqi\Debug\Obj\qingjiaochuanganqi.pbd
     文件        8480  2013-08-25 09:33  qingjiaochuangganqi\angel.c
     文件         936  2013-08-28 13:07  qingjiaochuangganqi\angle.h
     文件        3363  2013-08-27 10:13  qingjiaochuangganqi\lcd.c
     文件         292  2013-08-27 10:13  qingjiaochuangganqi\lcd.h
     文件        1144  2013-08-28 13:07  qingjiaochuangganqi\main.c
     文件           0  2013-08-25 09:31  qingjiaochuangganqi\path.txt
     文件        4200  2013-08-28 13:07  qingjiaochuangganqi\qingjiaochuanganqi.dep
     文件       20123  2013-08-24 21:17  qingjiaochuangganqi\qingjiaochuanganqi.ewd
     文件       50458  2013-08-24 21:17  qingjiaochuangganqi\qingjiaochuanganqi.ewp
     文件         172  2013-08-24 21:17  qingjiaochuangganqi\qingjiaochuangganqi.eww
     目录           0  2013-08-24 22:07  qingjiaochuangganqi\settings\
     文件        1299  2013-08-28 13:03  qingjiaochuangganqi\settings\qingjiaochuanganqi.cspy.bat
     文件        4995  2013-08-28 13:07  qingjiaochuangganqi\settings\qingjiaochuanganqi.dbgdt
     文件        1238  2013-08-28 13:07  qingjiaochuangganqi\settings\qingjiaochuanganqi.dni
     文件        3309  2013-08-28 13:07  qingjiaochuangganqi\settings\qingjiaochuangganqi.wsdt

评论

共有 条评论

相关资源