<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > MPU6050使用I2C協(xié)議讀出X軸原始數(shù)據(jù)的51單片機程序

          MPU6050使用I2C協(xié)議讀出X軸原始數(shù)據(jù)的51單片機程序

          作者: 時間:2016-12-01 來源:網絡 收藏
          void i2_sj_x(uchar addr,uchar Data) //往設備內寫入數(shù)據(jù)(參數(shù) 1、寄存器地址 2、寫入的數(shù)據(jù))
          {
          i2_qs(); //起始信號
          i2_fs(SlaveAddress); //設備地址+寫信號
          i2_fs(addr); //寄存器內部地址
          i2_fs(Data); //寫入設備的數(shù)據(jù)
          i2_tz(); //停止信號
          }
          uchar i2_sj_d(uchar addr) //讀取數(shù)據(jù)(參數(shù) 寄存器地址)
          {
          uchar Data;
          i2_qs(); //起始信號
          i2_fs(SlaveAddress); //設備地址+寫信號
          i2_fs(addr); //寄存器內部地址
          i2_qs(); //起始信號
          i2_fs(SlaveAddress+1); //設備地址+讀信號
          Data = i2_js(); //讀取數(shù)據(jù)
          i2_ack(0); //ACK應答
          i2_tz(); //停止信號
          return Data; //返回讀取的數(shù)據(jù)
          }
          //*******************I2C操作協(xié)議******************************
          void mup6050()
          {
          i2_sj_x(PWR_MGMT_1, 0x00);
          i2_sj_x(SMPLRT_DIV, 0x07);
          i2_sj_x(CONFIG, 0x06);
          i2_sj_x(GYRO_CONFIG, 0x18);
          i2_sj_x(ACCEL_CONFIG, 0x01);
          /*
          Single_WriteI2C(PWR_MGMT_1, 0x00); //解除休眠狀態(tài)
          Single_WriteI2C(SMPLRT_DIV, 0x07); //陀螺儀采集頻率
          Single_WriteI2C(CONFIG, 0x06);//低通濾波頻率
          Single_WriteI2C(GYRO_CONFIG, 0x18);//陀螺儀自檢及測量范圍
          Single_WriteI2C(ACCEL_CONFIG, 0x01);//加速計自檢、測量范圍及高通濾波頻率
          */
          }
          /**************************************串口**********************************/
          void CSH (void) //初始化串口
          {
          SCON = 0x50; // SCON: 模式 1, 8-bit UART, 使能接收
          TMOD |= 0x20; // TMOD: timer 1, mode 2, 8-bit 重裝
          TH1 = 0xFD; // TH1: 重裝值 9600 波特率 晶振 11.0592MHz
          TR1 = 1; // TR1: timer 1 打開
          EA = 1; //打開總中斷
          //ES = 1; //打開串口中斷
          }
          void SendByte(unsigned char dat) //發(fā)送一個字符
          {
          SBUF = dat; //SBUF 串行數(shù)據(jù)緩沖器
          while(!TI); //TI發(fā)送中斷標志位 (當數(shù)據(jù)發(fā)送完畢后由硬件置 1 否則等待硬件置 1)
          TI = 0;
          }
          /************************************************************************************/
          void main(void)
          {
          uchar dat1,dat2,i;
          mup6050();
          CSH();
          /*
          i2_sj_x(3,0x0f); //數(shù)據(jù)寫入24c02
          DelayMs(50);
          dat = i2_sj_d(3); //從24c02中讀取數(shù)據(jù)
          */
          //P1 = dat; //使用8個LED顯示讀出的數(shù)據(jù)
          while(1)
          {
          dat1 = i2_sj_d(GYRO_XOUT_H);
          dat2 = i2_sj_d(GYRO_XOUT_H+1);
          P1 = dat1;
          for(i=0;i<100;i++)
          DelayMs(10);
          P1 = dat2;
          for(i=0;i<100;i++)
          DelayMs(10);
          SendByte(dat1);
          SendByte(dat2);
          }
          }
          上一頁 1 2 下一頁

          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();