MPU6050使用I2C協(xié)議讀出X軸原始數(shù)據(jù)的51單片機(jī)程序
void i2_sj_x(uchar addr,uchar Data) //往設(shè)備內(nèi)寫入數(shù)據(jù)(參數(shù) 1、寄存器地址 2、寫入的數(shù)據(jù))
{
i2_qs(); //起始信號
i2_fs(SlaveAddress); //設(shè)備地址+寫信號
i2_fs(addr); //寄存器內(nèi)部地址
i2_fs(Data); //寫入設(shè)備的數(shù)據(jù)
i2_tz(); //停止信號
}
uchar i2_sj_d(uchar addr) //讀取數(shù)據(jù)(參數(shù) 寄存器地址)
{
uchar Data;
i2_qs(); //起始信號
i2_fs(SlaveAddress); //設(shè)備地址+寫信號
i2_fs(addr); //寄存器內(nèi)部地址
i2_qs(); //起始信號
i2_fs(SlaveAddress+1); //設(shè)備地址+讀信號
Data = i2_js(); //讀取數(shù)據(jù)
i2_ack(0); //ACK應(yīng)答
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);//加速計(jì)自檢、測量范圍及高通濾波頻率
*/
}
/**************************************串口**********************************/
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ā)送中斷標(biāo)志位 (當(dāng)數(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);
}
關(guān)鍵詞:
MPU6050使I2C協(xié)議原始數(shù)據(jù)51單片
相關(guān)推薦
技術(shù)專區(qū)
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機(jī)
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線
- 開關(guān)電源
- 單片機(jī)
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩(wěn)壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機(jī)控制
- 藍(lán)牙
- PLC
- PWM
- 汽車電子
- 轉(zhuǎn)換器
- 電源管理
- 信號放大器
評論