找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 18032|回复: 12
收起左侧

51单片机读取陀螺仪GPS模块串口MPU6050模块的实例程序

  [复制链接]
ID:98074 发表于 2015-12-2 21:28 | 显示全部楼层 |阅读模式
这是我给我的小车上写的陀螺仪GPS模块源程,用的是导航模块 JY-901。

原理图

原理图

陀螺仪GPS模块源程序.rar

50.97 KB, 下载次数: 182, 下载积分: 黑币 -5

源程序

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的积分奖励!

查看全部评分

回复

使用道具 举报

ID:1 发表于 2015-12-2 22:22 | 显示全部楼层
楼主的程序:
  1. //51单片机读取串口MPU6050模块的实例程序
  2. //            BY:君悦智控
  3. //测试平台:
  4. //                51单片机开发板YL-39,芯片STC89C52
  5. //注意:
  6. //    1.51单片机的下载串口只有一个,同时又需要接MPU6050,因此在下载的时候需要拔下MPU6050的TX线,等程序下载成功以后再插上。
  7. //接线方法:
  8. //     51单片机                  JY901模块
  9. //                +5V                ----        VCC
  10. //                TX                (不接)        RX
  11. //                RX                ----        TX
  12. //                GND                ----        GND
  13. ///////////////////////////////////////////////////////
  14. /*预处理命令*/
  15. #include <reg52.h>                   //包含单片机寄存器的头文件
  16. #include <stdio.h>
  17. #include "JY901.h"

  18. void delay_ms(unsigned short i)
  19. {
  20. unsigned short k;
  21.         while(i--)
  22.         for (k=0;k<100;k++);
  23. }

  24. void main(void)
  25. {
  26.         unsigned char i=0;
  27.         TMOD=0x20;                   //用定时器设置串口波特率           9600
  28.         TH1=0xfd;
  29.         TL1=0xfd;
  30.         TR1=1;
  31.         TI=1;
  32.         REN=1;          //串口初始化
  33.         SM0=0;
  34.         SM1=1;
  35.         EA=1;           //开启总中断
  36.         ES=1;
  37.         printf("STC89S52 Read JY901 module demo\r\n");
  38.         printf("-------------BY:JYZK-------------\r\n");
  39.         printf("---http://RobotControl.taobao.com---\r\n");
  40.         while(1)
  41.         {
  42.                 delay_ms(10);
  43.                 printf("Time:20%d-%d-%d %d:%d:%.3f\r\n",(short)stcTime.ucYear,(short)stcTime.ucMonth,
  44.                                 (short)stcTime.ucDay,(short)stcTime.ucHour,(short)stcTime.ucMinute,(float)stcTime.ucSecond+(float)stcTime.usMiliSecond/1000);

  45.                 printf("Acc:%.3f %.3f %.3f\r\n",(float)stcAcc.a[0]/32768*16,(float)stcAcc.a[1]/32768*16,(float)stcAcc.a[2]/32768*16);

  46.                 printf("Gyro:%.3f %.3f %.3f\r\n",(float)stcGyro.w[0]/32768*2000,(float)stcGyro.w[1]/32768*2000,(float)stcGyro.w[2]/32768*2000);

  47.                 printf("Angle:%.3f %.3f %.3f\r\n",(float)stcAngle.Angle[0]/32768*180,(float)stcAngle.Angle[1]/32768*180,(float)stcAngle.Angle[2]/32768*180);

  48.                 printf("Mag:%d %d %d\r\n",stcMag.h[0],stcMag.h[1],stcMag.h[2]);

  49.                 printf("Pressure:%lx Height%.2f\r\n",stcPress.lPressure,(float)stcPress.lAltitude/100);

  50.                 printf("DStatus:%d %d %d %d\r\n",stcDStatus.sDStatus[0],stcDStatus.sDStatus[1],stcDStatus.sDStatus[2],stcDStatus.sDStatus[3]);

  51.                 printf("Longitude:%ldDeg%.5fm Lattitude:%ldDeg%.5fm\r\n",stcLonLat.lLon/10000000,(double)(stcLonLat.lLon % 10000000)/1e5,stcLonLat.lLat/10000000,(double)(stcLonLat.lLat % 10000000)/1e5);

  52.                 printf("GPSHeight:%.1fm GPSYaw:%.1fDeg GPSV:%.3fkm/h\r\n\r\n",(float)stcGPSV.sGPSHeight/10,(float)stcGPSV.sGPSYaw/10,(float)stcGPSV.lGPSVelocity/1000);
  53.                        
  54.         }       
  55. }
  56.           
  57. void ser() interrupt 4
  58. {
  59.         if (RI)
  60.         {          
  61.                 RI=0;
  62.                  CopeSerialData(SBUF);            
  63.           }
  64.           
  65.    
  66. }
复制代码
回复

使用道具 举报

ID:130538 发表于 2016-8-19 10:13 | 显示全部楼层
不错。好东西
回复

使用道具 举报

ID:123712 发表于 2017-1-8 23:06 | 显示全部楼层
谢谢楼主分享资料,很不错,正在学习
回复

使用道具 举报

ID:222998 发表于 2017-7-28 20:42 | 显示全部楼层
二楼好人一生平安
回复

使用道具 举报

ID:223225 发表于 2017-7-29 16:11 | 显示全部楼层
谢谢楼主分享资料,很不错,正在学习
回复

使用道具 举报

ID:222908 发表于 2017-8-3 20:41 | 显示全部楼层
谢谢分享
回复

使用道具 举报

ID:191542 发表于 2017-8-24 00:31 | 显示全部楼层
mpu6050驱动电压是3.3v以下啊,51单片机怎么驱动啊?
回复

使用道具 举报

ID:199188 发表于 2017-9-2 15:20 | 显示全部楼层
好东西,学习学习
回复

使用道具 举报

ID:239056 发表于 2017-10-25 10:30 | 显示全部楼层
好东西,谢谢分享
回复

使用道具 举报

ID:243036 发表于 2017-10-26 09:54 | 显示全部楼层
51单片机用串口接6050读到的数据是不是16进制的呢?我看卖家给的例程是case 0x55这样的包头,51能识别吗?
回复

使用道具 举报

ID:370943 发表于 2018-9-26 11:42 | 显示全部楼层
前来学习这个模块
回复

使用道具 举报

ID:407114 发表于 2019-8-27 11:29 | 显示全部楼层
谢谢楼主
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表