在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

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

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

            作者: 時間:2016-12-01 來源:網(wǎng)絡 收藏
            void i2_sj_x(uchar addr,uchar Data) //往設備內(nèi)寫入數(shù)據(jù)(參數(shù) 1、寄存器地址 2、寫入的數(shù)據(jù))
            {
            i2_qs(); //起始信號
            i2_fs(SlaveAddress); //設備地址+寫信號
            i2_fs(addr); //寄存器內(nèi)部地址
            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); //寄存器內(nèi)部地址
            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ū)

            關閉