资源简介
用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
评论
共有 条评论