文档详情

2013年全国大学生电子设计大赛本科C题倒立摆程序.doc

发布:2020-02-22约1.65万字共22页下载文档
文本预览下载声明
#includestc/STC12C5A60S2.h #include math.h #include stdio.h #include INTRINS.H typedef unsigned char uchar; typedef unsigned short ushort; typedef unsigned int uint; sbit bmq=P1^5; sbit sn=P1^2; sbit l1=P1^0; sbit l2=P1^1; sbit j1=P0^0; sbit j2=P0^1; sbit j3=P0^2; sbit j4=P0^3; sbit j5=P0^4; sbit j6=P0^5; sbit j7=P0^6; sbit j8=P0^7; unsigned char tttt=0; unsigned char step=0; #define unchar unsigned char #define unint unsigned int #define clear 0x01 #define home 0x02 #define f_set 0x30 #define dis_on 0x0f #define in_mode 0x06 sbit P_RS=P2^2; sbit P_RW=P2^1; sbit P_E= P2^0; sbit SCL=P1^6; //IIC时钟引脚定义 sbit SDA=P1^7; //IIC数据引脚定义 char s[15]; //**************************************** // 定义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为读取 //**************************************** //函数声明 //**************************************** //MPU6050操作函数 void InitMPU6050(); //初始化MPU6050 void Delay5us(); void I2C_Start(); void I2C_Stop(); void I2C_SendACK(bit ack); bit I2C_RecvACK(); void I2C_SendByte(uchar dat); uchar I2C_RecvByte(); void I2C_ReadPage(); void I2C_WritePage(); uchar Single_ReadI2C(uchar REG_Address); //读取I2C数据 void Single_WriteI2C(uchar REG_Address,uchar REG_data); //向I2C写入数据 //******************
显示全部
相似文档