资源简介
C51单片机点阵贪吃蛇代码(16*16点阵和8*8点阵都有)。keil4的完整工程文件夹,可以用红外遥控器控制蛇的上下左右移动,注释清楚,内附我用到的板子原理图以供移植参考。
代码片段和文件信息
#include “reg51.h“ //此文件中定义了单片机的一些特殊功能寄存器
#include “intrins.h“
typedef unsigned int u16; //对数据类型进行声明定义
typedef unsigned char u8;
sbit IRIN=P3^2; //定义中断口 0作为接收及处理
sbit SRCLK=P3^6;
sbit RCLK=P3^5;
sbit SER=P3^4;
u8 IrValue[6]; //存储红外遥控器发来的指令数据
char ch1=‘a‘ch2=‘d‘; //ch1储存按键按下的方向,ch2储存通过判断后确定的不冲突的方向
u8 code Snake_x[]= //在位选设置x坐标(从左到右取0~15)
{
0x01 0x02 0x04 0x08 0x10 0x20 0x40 0x80 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01 0x02 0x04 0x08 0x10 0x20 0x40 0x80
};
u8 code Snake_y[]= //在段选设置y坐标(从下到上取0~15)
{
0x000x000x000x000x000x000x000x000x800x400x200x100x080x040x020x01
0x800x400x200x100x080x040x020x010x000x000x000x000x000x000x000x00
};
u8 Snakeleng=3; //蛇长为3
struct body //蛇坐标结构体
{
u8 x;
u8 y;
};
struct body Snake[15]; //设蛇最长15;
u8 FoodxFoody; //食物坐标
u8 Time; //定义模拟时序需要的变量
/*******************************************************************************
* 函 数 名 : delay
* 函数功能 : 延时函数,i=1时,大约延时10us
*******************************************************************************/
void delay(u16 i)
{
while(i--);
}
/*******************************************************************************
* 函 数 名 : Hc595SendByte(u8 dat1u8 dat2u8 dat3u8 dat4)
* 函数功能 : 通过595发送四个字节的数据
* 输 入 : dat1:第4个595输出数值
* * dat2: 第3个595输出数值
* * dat3:第2个595输出数值
* * dat4:第1个595输出数值
* 输 出 : 无
*******************************************************************************/
void Hc595SendByte(u8 dat1u8 dat2u8 dat3u8 dat4)
{
u8 a;
SRCLK = 1;
RCLK = 1;
for(a=0;a<8;a++) //发送8位数
{
SER = dat1 >> 7; //从最高位开始发送
dat1 <<= 1;
SRCLK = 0; //发送时序
_nop_();
_nop_();
SRCLK = 1;
}
for(a=0;a<8;a++) //发送8位数
{
SER = dat2 >> 7; //从最高位开始发送
dat2 <<= 1;
SRCLK = 0; //发送时序
_nop_();
_nop_();
SRCLK = 1;
}
for(a=0;a<8;a++) //发送8位数
{
SER = dat3 >> 7; //从最高位开始发送
dat3 <<= 1;
SRCLK = 0; //发送时序
_nop_();
_nop_();
SRCLK = 1;
}
for(a=0;a<8;a++) //发送8位数
{
SER = dat4 >> 7; //从最高位开始发送
dat4 <<= 1;
SRCLK = 0; //发送时序
_nop_();
_nop_();
SRCLK = 1;
}
RCLK = 0;
_nop_();
_nop_();
RCLK = 1;
}
void SnakeCuShi(void) //初始化蛇为三节
{
Snake[0].x=8;
Snake[0].y=7;
Snake[1].x=7;
Snake[1].y=7;
Snake[2].x=6;
Snake[2].y=7;
}
void SnakeXianShi(void) //蛇身显示
{
u8 i;
for(i=0;i {
Hc595SendByte(~Snake_x[Snake[i].x+16]~Snake_x[Snake[i].x]Snake_y[16+Snake[i].y] Snake_y[Snake[i].y]);
delay(100);
}
}
void SnakeYiWei() //蛇身移位函数
{
int i;
for(i=Snakeleng-1;i>0;i--) //循环读取下一个位置的坐标
{
Snake[i].x=Snake[i-1].x;// 将数组所有元素后移一个位置
Snake[i].y=Snake[i-1].y;
}
}
void
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-03-21 14:43 C51遥控贪吃蛇项目\
目录 0 2019-03-06 16:33 C51遥控贪吃蛇项目\C51遥控贪吃蛇16乘16点阵\
文件 18074 2019-02-15 17:19 C51遥控贪吃蛇项目\C51遥控贪吃蛇16乘16点阵\main.LST
文件 13541 2019-02-15 17:19 C51遥控贪吃蛇项目\C51遥控贪吃蛇16乘16点阵\main.OBJ
文件 8350 2019-02-15 17:19 C51遥控贪吃蛇项目\C51遥控贪吃蛇16乘16点阵\main.c
文件 11568 2019-02-15 17:19 C51遥控贪吃蛇项目\C51遥控贪吃蛇16乘16点阵\template
文件 16778 2019-02-15 17:19 C51遥控贪吃蛇项目\C51遥控贪吃蛇16乘16点阵\template.M51
文件 4229 2019-02-15 17:19 C51遥控贪吃蛇项目\C51遥控贪吃蛇16乘16点阵\template.hex
文件 44 2019-02-15 17:19 C51遥控贪吃蛇项目\C51遥控贪吃蛇16乘16点阵\template.lnp
文件 178 2019-03-05 22:24 C51遥控贪吃蛇项目\C51遥控贪吃蛇16乘16点阵\template.plg
文件 135125 2016-09-06 08:44 C51遥控贪吃蛇项目\C51遥控贪吃蛇16乘16点阵\template.uvgui.Administrator
文件 135127 2016-09-06 08:44 C51遥控贪吃蛇项目\C51遥控贪吃蛇16乘16点阵\template.uvgui_Administrator.bak
文件 55771 2019-03-05 22:29 C51遥控贪吃蛇项目\C51遥控贪吃蛇16乘16点阵\template.uvopt
文件 13229 2018-11-28 11:05 C51遥控贪吃蛇项目\C51遥控贪吃蛇16乘16点阵\template.uvproj
文件 55771 2019-02-15 17:20 C51遥控贪吃蛇项目\C51遥控贪吃蛇16乘16点阵\template_uvopt.bak
文件 13259 2016-09-06 08:44 C51遥控贪吃蛇项目\C51遥控贪吃蛇16乘16点阵\template_uvproj.bak
目录 0 2019-02-12 21:30 C51遥控贪吃蛇项目\C51遥控贪吃蛇8乘8点阵\
文件 5948 2018-09-01 15:06 C51遥控贪吃蛇项目\C51遥控贪吃蛇8乘8点阵\c51贪吃蛇遥控版项目.txt
文件 7138 2018-09-02 23:47 C51遥控贪吃蛇项目\C51遥控贪吃蛇8乘8点阵\lcd.LST
文件 3544 2018-09-02 23:47 C51遥控贪吃蛇项目\C51遥控贪吃蛇8乘8点阵\lcd.OBJ
文件 3603 2016-10-11 08:55 C51遥控贪吃蛇项目\C51遥控贪吃蛇8乘8点阵\lcd.c
文件 965 2016-10-11 08:55 C51遥控贪吃蛇项目\C51遥控贪吃蛇8乘8点阵\lcd.h
文件 13049 2019-02-12 21:30 C51遥控贪吃蛇项目\C51遥控贪吃蛇8乘8点阵\main.LST
文件 14522 2019-02-12 21:30 C51遥控贪吃蛇项目\C51遥控贪吃蛇8乘8点阵\main.OBJ
文件 5905 2019-02-12 21:30 C51遥控贪吃蛇项目\C51遥控贪吃蛇8乘8点阵\main.c
文件 15726 2019-02-12 21:30 C51遥控贪吃蛇项目\C51遥控贪吃蛇8乘8点阵\template
文件 20444 2019-02-12 21:30 C51遥控贪吃蛇项目\C51遥控贪吃蛇8乘8点阵\template.M51
文件 4347 2019-02-12 21:30 C51遥控贪吃蛇项目\C51遥控贪吃蛇8乘8点阵\template.hex
文件 56 2019-02-12 21:30 C51遥控贪吃蛇项目\C51遥控贪吃蛇8乘8点阵\template.lnp
文件 678 2019-02-12 21:30 C51遥控贪吃蛇项目\C51遥控贪吃蛇8乘8点阵\template.plg
文件 55830 2018-09-03 01:06 C51遥控贪吃蛇项目\C51遥控贪吃蛇8乘8点阵\template.uvopt
............此处省略5个文件信息
- 上一篇:2019年深圳杯数学建模竞赛题目.zip
- 下一篇:Shiro整合SSM代码
相关资源
- 高级贪吃蛇
- c51单片机数码管显示温度
- qt做一个贪吃蛇小游戏
- 16*16点阵设计电路图
- 基于89C51单片机的LCD音乐闹钟(详细注
- LED点阵显示汉字
- 32*64点阵LED显示屏单元板原理图
- 安卓贪吃蛇小游戏初学者
- 128*32OLED点阵屏驱动已移植GUI
- 6个16X16LED点阵 滚动显示 源代码和pr
- 16乘32点阵左右移上下移显示
- 简易c51单片机矩阵式键盘密码锁
- LCD点阵字模提取软件
- 基于51单片机的16X16点阵电子琴
- labview贪吃蛇
- 基于51单片机的16*16点阵显示汉字
- 18 8×8LED点阵屏仿电梯数字滚动显示
- 16 用74LS595与74LS154设计的16×16点阵屏
- 基于P89C51单片机的多路数据采集系统
- LED点阵屏滚动显示设计 列扫描 protu
- 80c51单片机4位数码管计算器设计
- zw_贪吃蛇游戏毕业论文地址.zip
- 16x16 LED点阵 驱动 74hc164 74hc595 参考电
- 16x16 LED点阵 驱动 74hc164 74hc595
- 64_64点阵达曼光栅的设计与实现
- TI的msp430f5529在12864液晶上通过四个按
- 微信小程序小游戏-贪吃蛇demo
- LabVIEW 点阵显示字符串
- 简易贪吃蛇
- 1602 基于89C51单片机的DS18B20恒温控制系
评论
共有 条评论