• 大小: 32KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-11
  • 语言: 其他
  • 标签: MPU6050  

资源简介

使用IO口模拟IIC协议,读出三轴加速度和三轴角速度,并显示,实测可用

资源截图

代码片段和文件信息

#include 

//#include “nrf.h“

#define CPU_F ((double)8000000)
#define delayus(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))  //宏定义延时函数
#define delayms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))
#include “cry1602.h“
#define SCL1 P2OUT |=BIT0
#define SCL0 P2OUT &=~BIT0

#define SDA1 P2OUT |=BIT1 //IIC数据引脚
#define SDA0 P2OUT &=~BIT1
#define SDAIN P2DIR &=~BIT1
#define SDAOUT P2DIR |=BIT1
#define SDADATA (P2IN & BIT1)
//****************************************
// 定义MPU6050内部地址
//****************************************
#define SMPLRT_DIV 0x19 //陀螺仪采样率,典型值:0x07(125Hz)
#define CONFIG 0x1A //低通滤波频率,典型值:0x06(5Hz)
#define GYRO_CONFIG 0x1B //陀螺仪自检及测量范围,典型值:0x18(不自检,2000deg/s)
#define ACCEL_CONFIG 0x1C //加速计自检、测量范围及高通滤波频率,典型值:0x01(不自检,2G,5Hz)
#define ACCEL_XOUT_H 0x3B
#define ACCEL_XOUT_L 0x3C
#define ACCEL_YOUT_H 0x3D
#define ACCEL_YOUT_L 0x3E
#define ACCEL_ZOUT_H 0x3F
#define ACCEL_ZOUT_L 0x40
#define TEMP_OUT_H 0x41
#define TEMP_OUT_L 0x42
#define GYRO_XOUT_H 0x43
#define GYRO_XOUT_L 0x44
#define GYRO_YOUT_H 0x45
#define GYRO_YOUT_L 0x46
#define GYRO_ZOUT_H 0x47
#define GYRO_ZOUT_L 0x48
#define PWR_MGMT_1 0x6B //电源管理,典型值:0x00(正常启用)
#define WHO_AM_I 0x75 //IIC地址寄存器(默认数值0x68,只读)
#define SlaveAddress 0xD0 //IIC写入时的地址字节数据,+1为读取
uchar dis[4]; //显示数字(-511至512)的字符数组
int dis_data;

//**************************************
//I2C起始信号
//**************************************
void I2C_Start()
{
    SDA1;                    //拉高数据线
    SCL1;                    //拉高时钟线
    delayus(5);                 //延时
    SDA0;                    //产生下降沿
    delayus(5);                  //延时
    SCL0;                    //拉低时钟线
}
//**************************************
//I2C停止信号
//**************************************
void I2C_Stop()
{
    SDA0;                    //拉低数据线
    SCL1;                    //拉高时钟线
    delayus(5);                   //延时
    SDA1;                    //产生上升沿
    delayus(5);                  //延时
}
//**************************************
//I2C发送应答信号
//入口参数:ack (0:ACK 1:NAK)
//**************************************
void I2C_SendACK(uchar ack)
{
    SDAOUT;
    if(ack) SDA1;
       else SDA0;
//    SDA = ack;                  //写应答信号
    SCL1;                    //拉高时钟线
    delayus(5);                  //延时
    SCL0;                    //拉低时钟线
    delayus(5);                  //延时
}
//**************************************
//I2C接收应答信号
//**************************************
uchar I2C_RecvACK()
{
    uchar cy;
    SCL1;                    //拉高时钟线
    SDAIN;
    delayus(5);                 //延时
    if(SDADATA)
    {
        cy=1;
    }
      else 
      {
          cy=0;
      }
//    cy = SDA;                   //读应答信号
    SCL0;                    //拉低时钟线
    delayus(5);                //延时
    SDAOUT; 
    return cy;
    
}
//**************************************
//向I2C总线发送一个字节数据
//***********

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2013-02-27 18:45  陀螺仪\
     目录           0  2013-02-27 18:31  陀螺仪\Debug\
     目录           0  2013-02-27 18:36  陀螺仪\Debug\Exe\
     文件       25406  2013-02-27 18:45  陀螺仪\Debug\Exe\sz.d43
     文件        4533  2013-02-27 18:45  陀螺仪\Debug\Exe\sz.txt
     目录           0  2013-02-27 18:52  陀螺仪\Debug\List\
     目录           0  2013-02-27 18:45  陀螺仪\Debug\Obj\
     文件         478  2013-02-27 18:45  陀螺仪\Debug\Obj\main.pbi
     文件       39442  2013-02-27 18:45  陀螺仪\Debug\Obj\main.r43
     文件         163  2013-02-27 18:45  陀螺仪\Debug\Obj\sz.pbd
     文件        2303  2013-02-27 18:45  陀螺仪\cry1602.h
     文件        8332  2012-08-16 11:03  陀螺仪\main.c
     文件        3399  2012-07-30 14:51  陀螺仪\nrf.h
     目录           0  2013-02-27 18:31  陀螺仪\settings\
     文件         841  2013-02-27 18:36  陀螺仪\settings\sz.cspy.bat
     文件          63  2012-08-16 11:04  陀螺仪\settings\sz.dbgdt
     文件         486  2013-02-27 18:36  陀螺仪\settings\sz.dni
     文件        2783  2013-02-27 18:45  陀螺仪\settings\sz.wsdt
     文件        2486  2013-02-27 18:45  陀螺仪\sz.dep
     文件       50198  2013-02-27 18:36  陀螺仪\sz.ewp
     文件         156  2012-07-11 16:34  陀螺仪\sz.eww

评论

共有 条评论