• 大小: 90KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-02
  • 语言: 其他
  • 标签: adxl345  

资源简介

基于adxl345加速度传感器的计步器,并实现gps定位,已经实测通过

资源截图

代码片段和文件信息

#include “adxl345.h“
#include “oled.h“
sbit   SCL=P1^0;      //IIC时钟引脚定义                                         
sbit    SDA=P1^1;      //IIC数据引脚定义
 /* ***********清零按键设置 ********/
sbit key1 = P1^6; 
sbit key2 = P1^7;
sbit key3 = P1^3;
#define SlaveAddress   0xA6   /*定义器件在IIC总线中的从地址根据ALT  ADDRESS地址引脚不同修改ALT  ADDRESS引脚接地时地址为0xA6,接电源时地址为0x3A*/
long bushuzong;  //步数
uchar BUF[8];                         //接收数据缓存区      
uchar geshibaiqianwan;           //显示变量
int  dis_data;                       //变量
int c;
int s;
int h=30.5;
void  Multiple_Read_ADXL345();        //连续的读取内部寄存器数据
#define RdCommand 0x01          //定义ISP的操作命令
#define PrgCommand 0x02
#define EraseCommand 0x03 
#define Error 1
#define Ok 0
#define WaitTime 0x01      //定义CPU的等待时间
sfr ISP_DATA=0xe2;         //寄存器申明
sfr ISP_ADDRH=0xe3;
sfr ISP_ADDRL=0xe4;
sfr ISP_CMD=0xe5;
sfr ISP_TRIG=0xe6;
sfr ISP_CONTR=0xe7;
uchar a_a;
/**************打开 ISPIAP 功能 ********* */
void ISP_IAP_enable(void)
{
 EA = 0;                  //关中断
 ISP_CONTR = ISP_CONTR & 0x18;        // 00011000 
 ISP_CONTR = ISP_CONTR | WaitTime;    // 写入硬件延时 
 ISP_CONTR = ISP_CONTR | 0x80;         // ISPEN=1 
}
/************** 关闭 ISPIAP 功能 *************** */
void ISP_IAP_disable(void)
{
 ISP_CONTR = ISP_CONTR & 0x7f;           // ISPEN = 0
 ISP_TRIG = 0x00;
 EA   =   1;           // 开中断
}
/*****************公用的触发代码********* */
void ISPgoon(void)
{
 ISP_IAP_enable();        //打开 ISPIAP 功能 
 ISP_TRIG = 0x46;     //触发ISP_IAP命令字节1
 ISP_TRIG = 0xb9;            //触发ISP_IAP命令字节2 
 _nop_();
}
/**********字节读 *********** */
unsigned char byte_read(unsigned int byte_addr)
{
EA = 0;
 ISP_ADDRH = (unsigned char)(byte_addr >> 8);    // 地址赋值 
 ISP_ADDRL = (unsigned char)(byte_addr & 0x00ff);
 ISP_CMD   = ISP_CMD & 0xf8;      //清除低3位  
 ISP_CMD   = ISP_CMD | RdCommand;    // 写入读命令 
 ISPgoon();           //触发执行  
 ISP_IAP_disable();       // 关闭ISPIAP功能 
 EA  = 1;
 return (ISP_DATA);       // 返回读到的数据 
}
/************ 扇区擦除*********** */
void SectorErase(unsigned int sector_addr)
{
 unsigned int iSectorAddr;
 iSectorAddr = (sector_addr & 0xfe00);    // 取扇区地址 
 ISP_ADDRH = (unsigned char)(iSectorAddr >> 8);
 ISP_ADDRL = 0x00;
 ISP_CMD = ISP_CMD & 0xf8;      //清空低3位  
 ISP_CMD = ISP_CMD | EraseCommand;    //擦除命令3 
 ISPgoon();        //触发执行  
 ISP_IAP_disable();     //关闭ISPIAP功能
}
/********** 字节写 ******* */
void byte_write(unsigned int byte_addr unsigned char original_data)
{
 EA  = 0;
//  SectorErase(byte_addr);
 ISP_ADDRH = (unsigned char)(byte_addr >> 8);  // 取地址 
 ISP_ADDRL = (unsigned char)(byte_addr & 0x00ff);
 ISP_CMD  = ISP_CMD & 0xf8;    // 清低3位 
 ISP_CMD  = ISP_CMD | PrgCommand;  //写命令2 
 ISP_DATA = original_data;   //写入数据准备
 ISPgoon();       //触发执行 
 ISP_IAP_disable();     //关闭IAP功能 
 EA =1;
}
/**********把数据保存到单片机内部eeprom中**************/
void write_eeprom() //保存数据
{
SectorErase(0x2000);
byte_write(

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-04-12 14:05  adxl345计步器oled显示 - gps\
     文件       12387  2018-03-25 21:49  adxl345计步器oled显示 - gps\adxl345.c
     文件         233  2018-03-25 21:47  adxl345计步器oled显示 - gps\adxl345.h
     文件       20334  2018-04-12 14:05  adxl345计步器oled显示 - gps\adxl345.LST
     文件       27760  2018-04-12 14:05  adxl345计步器oled显示 - gps\adxl345.OBJ
     文件        1479  2018-03-25 22:05  adxl345计步器oled显示 - gps\gps.c
     文件         299  2018-03-25 21:22  adxl345计步器oled显示 - gps\gps.h
     文件        3503  2018-04-12 14:05  adxl345计步器oled显示 - gps\gps.LST
     文件        5324  2018-04-12 14:05  adxl345计步器oled显示 - gps\gps.OBJ
     文件         240  2018-03-25 22:35  adxl345计步器oled显示 - gps\main.c
     文件        1297  2018-04-12 14:05  adxl345计步器oled显示 - gps\main.LST
     文件        3203  2018-04-12 14:05  adxl345计步器oled显示 - gps\main.OBJ
     文件        7590  2018-03-25 14:03  adxl345计步器oled显示 - gps\oled.c
     文件         578  2018-03-24 15:09  adxl345计步器oled显示 - gps\oled.h
     文件       12049  2018-04-12 14:05  adxl345计步器oled显示 - gps\oled.LST
     文件       11721  2018-04-12 14:05  adxl345计步器oled显示 - gps\oled.OBJ
     文件       42299  2018-04-12 14:05  adxl345计步器oled显示 - gps\template
     文件        1098  2018-04-12 14:05  adxl345计步器oled显示 - gps\template.build_log.htm
     文件       13313  2018-04-12 14:05  adxl345计步器oled显示 - gps\template.hex
     文件          85  2018-04-12 14:05  adxl345计步器oled显示 - gps\template.lnp
     文件       48557  2018-04-12 14:05  adxl345计步器oled显示 - gps\template.M51
     文件         192  2017-06-08 22:20  adxl345计步器oled显示 - gps\template.plg
     文件       87968  2018-04-12 14:05  adxl345计步器oled显示 - gps\template.uvgui.Administrator
     文件       70964  2016-10-11 08:55  adxl345计步器oled显示 - gps\template.uvgui_Administrator.bak
     文件        6181  2018-03-25 18:06  adxl345计步器oled显示 - gps\template.uvopt
     文件       14334  2018-03-25 18:06  adxl345计步器oled显示 - gps\template.uvproj
     文件       56837  2017-06-08 22:02  adxl345计步器oled显示 - gps\template_uvopt.bak
     文件       13769  2016-10-11 08:55  adxl345计步器oled显示 - gps\template_uvproj.bak

评论

共有 条评论