mdk keil写的 直接导入hex文件就可以运行

单片机源程序如下:
/*********************************************************************************************
File Name : snake.c
Content : snake management module
**********************************************************************************************/
#include "snake.h"
/**********************************************************************************************
不允许被外部调用的函数,受保护的对象
**********************************************************************************************/
static void Game_CreateFood(void);
static void Game_AddSnake(void);
static void Game_Over(void) ;
static int Game_Collide(void);
static void Game_SnakeMove(void);
/**********************************************************************************************
所引用别的文件中的全局变量
**********************************************************************************************/
extern uint8 ucGameBegin_Flag;
extern uint8 ucGamePause_Flag;
extern uint8 ucGameOver_Flag;
extern INT8U ucKey;
extern INT8U ucLastKey;
extern long long time ;
/**********************************************************************************************
本文件中定义的全局变量,记录蛇的信息
**********************************************************************************************/
INT32U Snake[2][LEN]={{2,1,0},{3,3,3}};
INT32U SHead = 3;
INT32U SEnd = 0;
INT32U Row_Food;
INT32U Col_Food;
INT32U uiScore = 0;
uint16 uiLevel = 0;
INT8U ucRow;
INT8U ucCol;
INT8U ucSnakeSpeed;
/**********************************************************************************************
所取的一些游戏中需要的文字和图像的模
**********************************************************************************************/
INT8U ucGameOver[5][32] =
{
{0xC0,0x30,0x08,0x08,0x08,0x38,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,
0x07,0x18,0x20,0x20,0x22,0x1E,0x02,0x00,0x00,0x19,0x24,0x22,0x22,0x22,0x3F,0x20
},
{0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,
0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F,0x00,0x1F,0x22,0x22,0x22,0x22,0x13,0x00
},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00
},
{0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,
0x00,0x01,0x0E,0x30,0x08,0x06,0x01,0x00,0x00,0x1F,0x22,0x22,0x22,0x22,0x13,0x00
},
{0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x20,0x20,0x3F,0x21,0x20,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
}
} ;
INT8U ucFuck[3][32] =
{
{0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,
0x20,0x3F,0x20,0x00,0x03,0x00,0x00,0x00,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00
},
{0xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,0x08,0xF8,0x88,0xC0,0x28,0x18,0x08,0x00,
0x07,0x18,0x20,0x20,0x20,0x10,0x08,0x00,0x20,0x3F,0x20,0x01,0x26,0x38,0x20,0x00
},
{0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00
}
};
/*********************************************************************************************
Function : Game_CreateSnake(INT8U row, INT8U col)
Content : 创建一条蛇
Parameter : row 蛇位置的行
col 蛇位置的列
Return : none
Date : 2012/09/18
Description: 创建一条蛇
Remark :
**********************************************************************************************/
void Game_CreateSnake(INT8U row, INT8U col)
{
ucRow = row;
ucCol = col;
Snake[0][0] = row;
Snake[0][1] = row;
Snake[0][2] = row;
Snake[1][0] = col - 2;
Snake[1][1] = col - 1;
Snake[1][2] = col;
LCD2_DisPoint(row, col--);
LCD2_DisPoint(row, col--);
LCD2_DisPoint(row, col--);
SEnd = 0;
SHead = 3;
Game_CreateFood();
ucSnakeSpeed = 20;
LCD1_DisplaySco(uiScore);
LCD1_DisplayTime(time);
LCD1_ShowInt(0xcb, uiLevel);
}
/*********************************************************************************************
Function : Game_CreateFood(void)
Content : 食物生成的实现函数
Parameter : void
Return : none
Date : 2012/09/18
Description: 食物生成的实现函数
Remark :
**********************************************************************************************/
void Game_CreateFood(void)
{
TEST:
do
{
Row_Food = (int)rand() % 14 + 1;
Col_Food = (int)rand() % 30 + 1;
}while(LCD2_IfPoint(Row_Food, Col_Food));
LCD2_DisPoint(Row_Food, Col_Food);
if(!LCD2_IfPoint(Row_Food, Col_Food))
goto TEST;
return;
}
/*********************************************************************************************
Function : Game_AddSnake(void)
Content : 蛇节点的增加
Parameter : void
Return : none
Date : 2012/09/18
Description: 蛇增加一个节点,并重新随机生成一个食物
Remark :
**********************************************************************************************/
void Game_AddSnake(void)
{
switch(ucKey)
{
case UP:
{
Snake[0][SHead] = ucRow - 1;
Snake[1][SHead] = ucCol;
if(SHead + 1 == LEN)
SHead = 0;
else
SHead++;
ucRow--;
Game_CreateFood();
}break;
case DOWN:
{
Snake[0][SHead] = ucRow + 1;
Snake[1][SHead] = ucCol;
if(SHead + 1 == LEN)
SHead = 0;
else
SHead++;
ucRow++;
Game_CreateFood();
}break;
case LEFT:
{
Snake[0][SHead] = ucRow;
Snake[1][SHead] = ucCol - 1;
if(SHead + 1 == LEN)
SHead = 0;
else
SHead++;
ucCol--;
Game_CreateFood();
}break;
case RIGHT:
{
Snake[0][SHead] = ucRow;
Snake[1][SHead] = ucCol + 1;
if(SHead + 1 == LEN)
史海拾趣
ARMKEIL Microcontroller Tools公司的发展小趣事
ARMKEIL Microcontroller Tools公司的起点可以追溯到Keil公司的成立。1985年,Keil Elektronik GmbH(凯尔电子有限责任公司)在德国慕尼黑正式成立,由一群热衷于嵌入式系统开发的工程师创立。起初,公司的主要业务是开发和销售嵌入式系统的开发工具,这些工具为当时的电子工程师提供了强大的支持。随着业务的发展,Keil逐渐在嵌入式系统开发领域崭露头角。
Digital Core Design公司的发展小趣事
1996年,Core Design推出了其标志性作品《古墓丽影》。这款游戏以其独特的女主角Lara Croft和精心设计的游戏世界吸引了全球玩家的关注。Lara Croft成为游戏界最具代表性的女性角色之一,而《古墓丽影》系列也成为Core Design最成功的游戏系列之一。这款游戏的成功不仅为Core Design带来了巨大的经济收益,也使其在全球游戏市场上赢得了极高的声誉。
Advanced Milliwave Laboratories Inc公司的发展小趣事
Advanced Milliwave Laboratories Inc(AML)成立于XXXX年,最初由几位在微波技术领域具有丰富经验的专家组成。初创期,AML专注于高频微波技术的研发,通过不断的实验和创新,成功开发出多款具有高性能和稳定性的微波产品。这些产品迅速获得了市场的认可,为AML在微波技术领域奠定了坚实的基础。
台湾凯励(Carli)公司的发展小趣事
作为一家有社会责任感的企业,凯励公司始终关注环境保护和可持续发展。公司积极推广绿色生产技术和资源循环利用方案,减少生产过程中的能源消耗和废弃物排放。同时,凯励公司还积极参与社会公益活动,为社区和环境贡献自己的力量。这些举措不仅体现了凯励公司的社会责任感,也为其在电子行业树立了良好的形象。
Digital公司的发展小趣事
随着业务的不断发展和市场的不断扩大,DIALIGHT公司逐渐实现了全球化布局。他们在美国、英国、丹麦、德国、马来西亚、新加坡、澳大利亚、墨西哥和巴西等地设立了分支机构或办事处,为全球客户提供及时、高效的服务。此外,DIALIGHT还积极寻求与其他企业的合作与共赢,通过战略合作协议的签署,为双方带来新的业务机遇和合作空间。这些举措不仅增强了DIALIGHT的市场竞争力,也为其未来的发展奠定了坚实的基础。
请注意,由于篇幅限制,以上三个故事仅为DIALIGHT公司发展历程的简要概述。如需更详细的信息和更多故事,建议查阅相关资料或访问公司官网。
Dailywell Electronics Co Ltd公司的发展小趣事
随着公司实力的不断增强和业务的不断扩展,德利威电子开始实施全球化战略。2002年,公司成立了珠海富鼎厂,正式将东莞的电子产能进行移转。这一举措不仅进一步提升了公司的生产能力和产品品质,也为其进一步拓展国际市场提供了有力支持。此外,公司还在2003年和2006年分别成立了中国东莞办事处和北京办事处,进一步加强了其在中国市场的布局和服务能力。通过这些举措的实施,德利威电子逐步实现了从单一市场向全球市场的转变。
以上五个故事简要概述了德利威电子股份有限公司在电子行业中的发展历程和关键节点。这些故事不仅展示了公司的成长轨迹和实力提升过程,也反映了其在技术创新、品质管理、国际化布局等方面的努力和成就。
问答坊 | AI 解惑
|
|
单片机解密,芯片解密PCB抄板,烧录IC
深圳市南源电子科技有限公司
芯片解密/单片机解密/IC解密/PLD解密/CPLD解密:
(慎重声明:仅限合法研究用途)
单片机(MCU)解密、IC解密 、PLD解密、CPLD解密、鉴定芯片型号;成功率高,周期短,费用合理.
大量供应PIC/EMC兼容IC,性能稳定, ...…
查看全部问答>
|
wavescan 可以一下子读入批量psf吗?
cadence 中的 wavescan 能够一下子读取多个psf吗?
比如ocean产生多个corner的结果,放在不同的路径下。
sx可以实现,不过sx的结果会有一点点差别,所以不是很愿意用。
我试着找些文档,看看能否用skill/tcl等command的方式进行,不过没有找到。 ...…
查看全部问答>
|
|
|
|
|
求购闲置的DSP板子!!!!!!
大家好,小弟今年学校教这本教材: (原文件名:QQ截图未命名.gif) 引用图片所以想买个板子练练手。。。望哪位大虾有吃灰的,闲置不用的板子转让给俺,仿真器是必须!!!! 学生没有多少米,有最小系统既可,做些简单的 ...…
查看全部问答>
|
24LC02B有时候不能读写
MSP430F149与24LC02B I2C通讯,存储电机脉冲数据,每次动作结束的时候存储一次,用写进去再读出来的方法验证数据是否存储成功,当存储成功时,指示灯亮,不成功时,while循环再次写读指示灯闪烁。问题是:读写成功的机会是随机的,有时候能读写成功 ...…
查看全部问答>
|
寻创业合作伙伴
寻志同道合,愿在工控领域创业的合作伙伴。因我们是技术类人员,因此创业合作伙伴希望是市场类人员。基本要求,有创业的热情、人品端正、能吃苦,对工控行业有较深入的理解。地点:西安请将个人情况介绍发至xaqtdz@126.com, 我们见面详谈,真诚感谢 ...…
查看全部问答>
|
有关修改设备逻辑类型的问题?
在协议栈中添加了NV_INIT,不知为何第一次无法修改设备逻辑类型,总是以协调器的身份启动
而不是我配置的路由器设备启动。而没加却可以,请问下这是为什么呢?
#if defined ( BUILD_ALL_DEVICES )
// The \"Demo\" target is setup ...…
查看全部问答>
|
|
|
该怎么去入门FPGA
作为电子工程师,要入门FPGA,您可以按照以下步骤进行:学习基础知识:了解FPGA的基本原理和架构。掌握数字电路设计的基本知识,包括逻辑门、寄存器、时序等。学习硬件描述语言(HDL)如Verilog或VHDL,这是FPGA设计的主要工具。选择学习资源:阅读 ...…
查看全部问答∨
|
对于神经网络算法原理入门,请给一个学习大纲
以下是神经网络算法原理入门的学习大纲:第一阶段:Python编程基础和数学基础Python编程基础:学习Python语言的基本语法、数据类型、控制流等,掌握Python编程的基本技能。基本数学知识:复习基础的数学知识,包括线性代数、微积分和概率统计等,为 ...…
查看全部问答∨
|
对于单片机 android 编程入门,请给一个学习大纲
针对单片机和Android编程入门的学习大纲如下:第一阶段:理论基础单片机基础:了解单片机的基本概念、工作原理和应用领域。学习单片机的内部结构、I/O口、中断、定时器等基本功能。Android基础:理解Android操作系统的架构和组成部分。学习Android ...…
查看全部问答∨
|
请推荐一些smt工艺工程师入门教学
对于SMT工艺工程师入门,以下是一些推荐的学习资源:官方文档和手册:首先,你应该查阅SMT设备和工艺的官方文档和用户手册。这些文档通常包含了设备的操作指南、工艺参数设置、生产流程等信息,是入门的良好起点。在线教程和视频:在网上搜索SMT工 ...…
查看全部问答∨
|
对于单片机led灯入门,请给一个学习大纲
以下是针对电子工程师的单片机LED灯入门学习大纲:第一阶段:基础知识和准备工作了解LED原理:学习LED的基本原理、结构和工作方式,了解LED的发光机制和参数。熟悉单片机基础:复习单片机的基本原理、结构和工作方式,了解单片机的功能和应用场景。 ...…
查看全部问答∨
|
如何入门了解机器学习参数
了解机器学习参数是理解和应用机器学习算法的关键之一。以下是作为电子领域资深人士入门了解机器学习参数的建议:学习基本概念:首先,理解什么是参数和超参数。参数是模型内部可学习的变量,超参数是模型外部设置的参数。了解不同类型的机器学习算 ...…
查看全部问答∨
|
初学单片机怎么选择
作为电子工程师初学单片机,你可以根据以下几个关键因素来选择合适的单片机:学习目的和项目需求:首先要明确你的学习目的和项目需求。是为了学习基础知识,还是准备开发具体项目?需要处理的数据量和复杂度是多少?性能和功能:根据学习目的和项目 ...…
查看全部问答∨
|
对于深层神经网络训练入门,请给一个学习大纲
以下是一个适合深层神经网络训练入门的学习大纲:1. 理论基础神经网络概述:简要介绍神经网络的基本概念和结构,包括神经元、层级、权重和偏置等。深度神经网络:了解深度神经网络的概念和特点,以及它与传统神经网络的区别。2. 神经网络模型选择模 ...…
查看全部问答∨
|
对于神经网络控制入门,请给一个学习大纲
作为电子工程师,你对神经网络控制感兴趣,以下是一个适合你的神经网络控制入门学习大纲:基础概念了解控制系统的基本概念,包括反馈控制、前馈控制和闭环控制等。理解神经网络在控制系统中的作用和应用。神经网络基础学习神经网络的基本原理,包括 ...…
查看全部问答∨
|
对于fpga xilinx新手入门,请给一个学习大纲
以下是适用于新手入门Xilinx FPGA的学习大纲:了解FPGA的基本概念:了解FPGA的定义、工作原理和应用领域。学习FPGA与ASIC和微控制器的区别。熟悉Xilinx FPGA产品系列:了解Xilinx FPGA产品系列的特点和应用场景。选择适合自己项目需求的Xilinx FPGA ...…
查看全部问答∨
|
|