资源简介
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代码
相关资源
- 贪吃蛇源代码.fla
- 武汉理工大学 单片机课程设计 16*16点
- STM32F103RBT6驱动UC1698控制芯片的160160黑
- 贪吃蛇游戏设计(汇编语言)
- 利用译码器74HC595的点阵显示程序和电
- 16X16点阵程序(附仿真图和源程序)
- C51单片机汇编指令查询、学习工具集
- 16x16点阵(滚动显示)论文 程序
- 16*16点阵电路图附PCB
- 这是一个字模提取软件,其中可是设
- 基于51单片机的16*16点阵动态显示
- GB2312 8*8点阵字库
- 点阵字库 包含ACSII、字符、文字
- 点阵字库显示中英文
- Scratch 贪吃蛇 素材及代码
- Scratch 贪吃蛇 小游戏源码
- Scratch 好玩的贪吃蛇1.0
- Scratch 贪吃蛇.sb3 小游戏源码
- Linux点阵字库和字库生成器.rar
- as3.0贪吃蛇源码 实现了基本功能
- at89c51单片机外文翻译
- unity3d制作贪吃蛇
- 32x16LED汉子点阵显示屏
- OpenGL 3D贪吃蛇程序,很小
- 字库工具 guitool(Trial) Setup 1.13.rar
- 单片机 点阵 字模提取软件
- 桌面图标贪吃蛇游戏
- 16x2点阵字符液晶模块设计实现
- 16x16点阵程序
- 16x16点阵提取工具支持ASC字符版
评论
共有 条评论