重力感应贪吃蛇(C51 MPU6050 8*8LED点阵)

重力感应贪吃蛇(C51 MPU6050 8*8LED点阵)

本文讲述如何从无到有用C51做一个重力感应的贪吃蛇,包括元件选型、原理图PCB绘制和代码编写。

所需元件及其选型

元件 封装 数量
89C52 双列直插DIP40 1
MPU6050 8引脚(实际只用到4个) 1
8*8LED点阵屏 18引脚(2个起固定作用) 1
74HC595 贴片SOP16 1
CH340 贴片SOP16 1
12M晶振 HC-49S 2
USB母座 6脚(USB-A) 1
排阻10k 0603 8P4R 4
电阻10k 贴片0603 2
电阻33R 贴片0603 2
电阻47k 贴片0603 1
电阻4.7k 贴片0603 1
电容22P 贴片0603 3
电容33P 贴片0603 2
电容103 贴片0603 1
电容104 贴片0603 2
电解电容10u 插件 1
电解电容470u 插件 1
SS14肖特基二极管 SMA 1
A1SHB SOT-23 1
贴片LED 0603 1
轻触开关 6*6*5 1
按钮开关 8*8 1

原理图绘制

C51外围电路

这里写图片描述
//上拉电阻画得比较丑,大家意会一下。。。

复位晶振电路

这里写图片描述

USB下载电路/电源电路

这里写图片描述
实不相瞒,最难的这部分电路是从网上抄的- -

MPU6050插座电路

这里写图片描述

代码部分

驱动程序

  • IIC&MPU6050

这个比较简单的,网上有很多资料,不赘述。
拿P1的0和1做IIC通信的时钟线和数据线,配置一下MPU6050的寄存器:

sbit SCL=P1^0;
sbit SDA=P1^1;

#define SMPLRT_DIV      0x19
#define CONFIG          0x1A
#define GYRO_CONFIG     0x1B
#define ACCEL_CONFIG    0x1C
#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
#define WHO_AM_I        0x75
  • 7
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值