资源简介
重力加速度ADXL345模块 51程序写得比较详细,调试通过

代码片段和文件信息
/*
* ADXL345模块
*
* 用途:ADXL345模块IIC测试程序
*
* 作者 日期 备注
* Huafeng Lin 2010/12/10 新增
* Huafeng Lin 2010/12/11 修改
*
*/
#include
#include //Keil library
#include //Keil library
#include
#define uchar unsigned char
#define uint unsigned int
#define DataPort P2 //LCD1602数据端口
sbit SCL=P0^4; //IIC时钟引脚定义
sbit SDA=P0^3; //IIC数据引脚定义
sbit LCM_RS=P0^2; //LCD1602命令端口
sbit LCM_RW=P0^1; //LCD1602命令端口
sbit LCM_EN=P0^0; //LCD1602命令端口
#define SlaveAddress 0xA6 //定义器件在IIC总线中的从地址根据ALT ADDRESS地址引脚不同修改
//ALT ADDRESS引脚接地时地址为0xA6,接电源时地址为0x3A
typedef unsigned char BYTE;
typedef unsigned short WORD;
BYTE BUF[8]; //接收数据缓存区
uchar geshibaiqianwan; //显示变量
int dis_data; //变量
void delay(unsigned int k);
void InitLcd(); //初始化lcd1602
void Init_ADXL345(void); //初始化ADXL345
void WriteDataLCM(uchar dataW);
void WriteCommandLCM(uchar CMDuchar Attribc);
void DisplayOneChar(uchar Xuchar Yuchar DData);
void conversion(uint temp_data);
void Single_Write_ADXL345(uchar REG_Addressuchar REG_data); //单个写入数据
uchar Single_Read_ADXL345(uchar REG_Address); //单个读取内部寄存器数据
void Multiple_Read_ADXL345(); //连续的读取内部寄存器数据
//------------------------------------
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();
//-----------------------------------
//*********************************************************
void conversion(uint temp_data)
{
wan=temp_data/10000+0x30 ;
temp_data=temp_data%10000; //取余运算
qian=temp_data/1000+0x30 ;
temp_data=temp_data%1000; //取余运算
bai=temp_data/100+0x30 ;
temp_data=temp_data%100; //取余运算
shi=temp_data/10+0x30 ;
temp_data=temp_data%10; //取余运算
ge=temp_data+0x30;
}
/*******************************/
void delay(unsigned int k)
{
unsigned int ij;
for(i=0;i {
for(j=0;j<121;j++)
{;}}
}
/*******************************/
void WaitForEnable(void)
{
DataPort=0xff;
LCM_RS=0;LCM_RW=1;_nop_();
LCM_EN=1;_nop_();_nop_();
while(DataPort&0x80);
LCM_EN=0;
}
/*******************************/
void WriteCommandLCM(uchar CMDuchar Attribc)
{
if(Attribc)WaitForEnable();
LCM_RS=0;LCM_RW=0;_nop_();
DataPort=CMD;_nop_();
LCM_EN=1;_nop_();_nop_();LCM_EN=0;
}
/*******************************/
void WriteDataLCM(uchar dataW)
{
WaitForEnable();
LCM_RS=1;LCM_RW=0;_nop_();
DataPort=dataW;_nop_();
LCM_EN=1;_nop_();_nop_();LCM_EN=0;
}
/***********************************
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 19451 2011-06-11 00:02 C51\ADXL345
文件 4698 2011-06-11 00:02 C51\ADXL345.hex
文件 43 2011-06-11 00:02 C51\ADXL345.lnp
文件 23358 2011-06-11 00:02 C51\ADXL345.M51
文件 189 2014-04-09 11:45 C51\ADXL345.plg
....... 55212 2014-04-09 11:45 C51\ADXL345.uvopt
文件 13240 2011-06-10 22:33 C51\ADXL345.uvproj
....... 55212 2011-06-11 00:03 C51\ADXL345_uvopt.bak
文件 0 2011-06-10 22:26 C51\ADXL345_uvproj.bak
文件 12394 2011-06-11 00:02 C51\Main.c
文件 20811 2011-06-11 00:02 C51\Main.LST
文件 21921 2011-06-11 00:02 C51\Main.OBJ
目录 0 2014-04-09 11:45 C51
----------- --------- ---------- ----- ----
226529 13
- 上一篇:turbo译码_LTE
- 下一篇:算法设计报告
相关资源
- 51 单片机 红外避障小车 大集合136
- STC8951系列单片机中方指南
- 基于MCS_51单片机的工业屏柜散热方案
- MCS_51单片机与8255A的接口设计
- 飞思卡尔单片机MC9S12XS12G128驱动(硬件
- 51单片机PWM程序,占空比、周期可调整
- 单片机和adc0809数字电压表
- PIC单片机完成的电子密码锁
- 单片机、ADC0808809设计简易数字电压表
- 51单片机多功能自行车测速仪
- 单片机做的6位时分秒数字钟
- 单片机电子时钟 闹钟 日历
- 音乐代码转换软件 单片机编程时用
- 单片机课程设计 篮球计分器
- 00
- 用51单片机实现G代码翻译
- 简易的电阻电容测量电路
- 单片机与温度传感器DS18B20的程序设计
- 51单片机基于protues的几个仿真实例
- 基于52单片机的直流电压测量
- 38k单片机红外发送代码、keil
- 51单片机PCB设计图
- PC -- 单片机的串口数据传输系统设计
- 51单片机控制舵机程序
- 武汉理工大学 单片机课程设计 16*16点
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
- MP3文件ID3v2ID3v2APEv2标签读取
- 课程作业:模拟仓库管理系统
- 浙江工业大学2005-2006学年单片机习题
评论
共有 条评论