推箱子游戏--51单片机课设计(最全)
c课程设计推箱子

c 课程设计推箱子一、教学目标本课程的教学目标是使学生掌握推箱子游戏的算法和编程技巧,培养学生的逻辑思维能力和问题解决能力。
具体目标如下:知识目标:使学生了解推箱子游戏的基本概念和算法,理解游戏编程的基本原理。
技能目标:培养学生能够独立完成推箱子游戏的编程和调试,提高学生的编程实践能力。
情感态度价值观目标:培养学生对计算机科学的兴趣和热情,培养学生的创新精神和团队合作意识。
二、教学内容本课程的教学内容主要包括推箱子游戏的基本概念、算法和编程技巧。
具体安排如下:第一章:推箱子游戏概述,介绍推箱子游戏的基本概念和特点。
第二章:推箱子游戏的算法,讲解推箱子游戏的解决方法和算法实现。
第三章:推箱子游戏的编程,介绍推箱子游戏的编程语言和编程技巧。
第四章:推箱子游戏的调试和优化,讲解如何对推箱子游戏进行调试和优化。
三、教学方法本课程的教学方法主要包括讲授法、案例分析法和实验法。
具体使用如下:讲授法:用于讲解推箱子游戏的基本概念、算法和编程技巧。
案例分析法:通过分析具体的推箱子游戏案例,使学生更好地理解和掌握相关知识。
实验法:让学生通过实际编程和调试推箱子游戏,提高学生的实践能力。
四、教学资源本课程的教学资源主要包括教材、参考书、多媒体资料和实验设备。
具体使用如下:教材和参考书:为学生提供推箱子游戏的基本概念、算法和编程技巧的学习资料。
多媒体资料:通过视频、动画等形式,为学生提供更为直观的学习资源。
实验设备:为学生提供实际编程和调试推箱子游戏的硬件支持。
五、教学评估本课程的评估方式包括平时表现、作业和考试三个部分,以保证评估的客观性和公正性。
平时表现评估:通过观察学生在课堂上的参与程度、提问回答和小组讨论表现,评估学生的学习态度和理解能力。
作业评估:通过布置相关的编程练习和推箱子游戏设计任务,评估学生的实践能力和问题解决能力。
考试评估:通过期末考试,评估学生对推箱子游戏算法和编程技巧的掌握程度。
六、教学安排本课程的教学安排将按照推箱子游戏的基本概念、算法和编程技巧的顺序进行,确保学生在有限的时间内掌握课程内容。
推箱子游戏课程设计c

推箱子游戏课程设计c一、课程目标知识目标:1. 学生能够理解推箱子游戏中的程序设计基本概念,掌握游戏规则逻辑表达方法。
2. 学生能够运用所学编程知识,设计并实现具有基本功能的推箱子游戏。
3. 学生理解并掌握游戏中坐标系统、角色移动算法和碰撞检测的相关知识。
技能目标:1. 学生通过实践操作,提高逻辑思维和问题解决能力,能够将复杂问题分解为简单步骤。
2. 学生培养独立编程能力,学会使用合适的编程语句和结构来实现游戏逻辑。
3. 学生通过小组合作,锻炼团队协作和沟通技巧,共同完成游戏设计任务。
情感态度价值观目标:1. 学生培养对计算机编程的兴趣,激发创造力和探究精神,形成积极的学习态度。
2. 学生在游戏设计过程中,学会面对挑战,培养坚持不懈和解决问题的耐心。
3. 学生通过推箱子游戏,理解编程在生活中的应用,认识到科技与日常生活紧密相关,增强社会责任感。
课程性质:本课程为信息技术课程,以实践操作为主,理论讲解为辅,注重培养学生的动手能力和实际应用能力。
学生特点:考虑到学生所在年级,课程内容设计将结合学生好奇心强、动手欲望高、团队协作意识逐步形成等特点。
教学要求:课程要求学生在掌握编程基础知识上,通过实践加深理解,鼓励创新思维和团队合作,实现游戏设计的目标。
教学过程将目标分解,确保每个学生都能达到具体的学习成果,为后续学习奠定基础。
二、教学内容1. 理论知识:- 游戏设计基本概念:游戏规则、游戏流程、角色与道具。
- 编程语言基础:变量、数据类型、运算符、控制结构(条件语句、循环语句)。
- 坐标系统与图形用户界面:理解坐标系在游戏中的应用,掌握简单图形界面的构建。
2. 实践操作:- 推箱子游戏规则设计:学习如何将游戏规则转化为程序逻辑。
- 角色移动算法:掌握角色在不同方向上的移动算法实现。
- 碰撞检测:学习如何检测角色与箱子、墙壁之间的碰撞。
3. 教学大纲:- 第一阶段:游戏设计基本概念学习,介绍推箱子游戏,引导学生分析游戏规则。
推箱子游戏--51单片机课设计(最全)

.《51单片机》课程设计题目:基于51单片机的推箱子游戏设计目录1、课程设计目的 (1)2、课程设计题目和实现目标 (1)3、设计方案 (1)4、Proteus仿真原理图 (7)5、程序设计 (9)6、调试总结 (28)7、设计心得体会 (28)参考文献 (29)附录:程序代码------------------------------------------------------------------291、课程设计目的《MCS-51单片机》课程设计是与《MCS-51单片机》课程相配套的实践教学环节。
《MCS-51单片机》是一门实践性很强的专业基础课,通过课程设计,达到进一步理解单片机的硬件、软件和综合应用方面的知识,培养实践能力和综合应用能力,开拓学习积极性、主动性,学会灵活运用已经学过的知识,并能不断接受新的知识。
培养大胆发明创造的设计理念,为今后就业打下良好的基础。
通过课程设计,掌握以下知识和技能:1.单片机应用系统的总体方案的设计;2.单片机应用系统的硬件设计;3.单片机应用系统的软件程序设计;4.单片机开发系统的应用和调试能力2、课程设计题目和实现目标2.1 课程设计题目:基于51单片机的推箱子游戏设计2.2实现目标设计一款在以51单片机为核心的硬件系统中运行的推箱子游戏。
游戏一共9关,功能包括:(1)显示游戏开机界面和游戏界面;(2)按键处理包括移动小人和移动箱子,通过移动上下左右键来控制小人的移动,通过小人推动箱子,把箱子推到指定的目的地为过关,箱子只能推不能拉;(3)用于可以任意选关,并能随时退出、进入游戏;(4)每一关都有时间计时,显示当前玩家的游戏耗时。
3、设计方案根据设计目标,整个系统框图如下:图1 系统框图3.1 控制模块选用ATMEL公司生产的AT89C52为主控芯片,它是是一个低电压,高性能CMOS 8位单片机,主要功能特性如下:1、兼容MCS51指令系统;2、8k可反复擦写(大于1000次)Flash7、2个串行中断,可编程UART串行通道;8、2个外部中断源,共8个中断源;9、2个读写中断口线,3级加密位;10、低功耗空闲和掉电模式,软件设置睡眠和唤醒功能;本次课设选用PDIP封装的 AT89C52芯片,其引脚功能如图2所示,图3为最小系统:图2 引脚功能图3 最小系统U1:AT89C52,DIPf封装;C1,C2:22pf瓷片电容C3:10uf电解电容;X1:12M晶振R1:10K金属膜电阻3.2 显示模块选用内置T6963C控制控制器的12864图形点阵液晶(以下简称Lcd12864)做为显示模块。
基于单片机设计推箱子游戏,protues仿真

南京邮电大学毕业论文题目:基于单片机设计推箱子游戏专业:学生姓名:班级学号:指导教师:指导单位:南京邮电大学通信与信息工程学院日期:年月日至年月日摘要本论文主要介绍了基于AT89C52单片机推箱子游戏设计的游戏规则、硬件结构、软件代码的编写及工作原理,基于T6963C内核的液晶模块PG160128A液晶模块的介绍,在仿真软件上模拟出推箱子游戏。
本系统是以单片机为其控制核心,以有源晶振构成的电路作为时钟信号,通过方向键的选择向单片机控制系统发出人物移动控制命令,控制系统接收命令后做出一系列必要的判断后,控制人物及箱子的移动。
论文分为两大块:一块为游戏的硬件电路组成部分,一块为软件程序设计部分。
在硬件电路里主要包括有源晶振部分、方向控制部分及液晶显示部分等与单片机的接线设计;软件编程方面主要是子程序和主程序的编写,包括:初始化代码、液晶驱动代码、方向键代码、过关判断代码等等。
关键词:单片机;推箱子;PG160128A;T6963C内核ABSTRACTThis paper mainly introduces the based on single chip microcomputer AT89C52 tuixiangzi game design rules of the game, hardware structure, software code compiling, and working principle of LCD module of T6963C kernel based PG160128A LCD module, simulate the tuixiangzi game on the simulation diagram.This system is based on single chip microcomputer as its control core, active crystals constitute the circuit as the clock signal, through the choice of the direction key issued a person move control command to the single-chip microcomputer control system, control system after the judgements made after a series of necessary receive commands, to control the movement of figures and boxes.Paper is divided into two areas: a piece of hardware circuit part of the game, a piece of software design part.In the hardware circuit mainly includes active crystals, direction control part and part, such as liquid crystal display (LCD) and the connection design of single chip microcomputer;Software programming are mainly subroutines and main program of the writing, including: the initialization code, LCD driver code, the direction key code, pass judgment and so on.Key words: single chip microcomputer; pushing; PG160128A;T6963C kernel目录第一章绪论 (1)1.1游戏总体功能的设计 (1)1.2系统框图 (1)1.3游戏设计的目的 (2)1.4游戏实现的目标 (2)1.5设计的基本要求 (2)第二章设计模块 (3)2.1控制模块 (3)2.2显示模块 (5)2.3T6963C指令集 (6)2.4Protues介绍 (8)2.5Keil uVision4编译环境介绍 (10)第三章游戏架构 (12)3.1游戏基本元素 (12)3.2推箱子方向控制键 (12)3.3游戏关卡设计 (13)第四章设计结果 (14)4.1编译 (14)4.2仿真图 (19)4.3开机画面 (20)4.4流程 (20)4.5游戏画面 (23)结束语 (26)致谢 (27)参考文献 (28)附录 (29)第一章绪论目前,在中国乃至世界,游戏产业已经逐渐成为微控制器领域的一个相当庞大以及重要的分支,而关于这方面的高级人才仍甚是缺乏,很多初学单片机的朋友都会对其庞大而复杂的机制感到困惑。
DIY-基于单片机的推箱子游戏

2.单片机推箱子小游戏HXE文件见压缩包(点击压缩包下载):基于单
片机的推箱子游戏HEX文件.rar
3.TC89C54的数据手册见:datasheet5/search_STC89C54.ht下载):LCD12864数据手
LCD液晶显示:
sbit Mcs=P3;
sbit Scs=P3 ;
sbit Enable=P3;
sbit Di=P3 ;
sbit RW=P3;
sbit LcdRst=P3;
#define LcdBus P1 (数据总线)
仿真图
这个游戏一共有20关
有小手柄的哦
参考资料:
1.单片机推箱子小游戏仿真资料见压缩包(点击压缩包下载):基于
册.rar
DIY:基于单片机的推箱子游戏
本文是电子工程师DIY:基于单片机的推箱子游戏。主要是采用
STC89C54单片机,使用LCD12864 (0108)无字库液晶屏来完成的。
引脚说明:
按键部分
sbit Up=P2;
sbit Left=P2;
sbit Right=P2 ;
sbit Down=P2;
sbitEnter=P2;
c推箱子课程设计

c 推箱子课程设计一、教学目标本课程的教学目标是使学生掌握C语言的基本语法和编程技巧,培养学生独立思考和解决问题的能力,提高学生的创新意识和团队协作能力。
具体分解为以下三个维度:1.知识目标:使学生掌握C语言的基本语法、数据类型、运算符、控制结构、函数、数组和指针等基本概念,理解面向对象编程思想。
2.技能目标:培养学生具备编写C语言程序的能力,能运用C语言解决实际问题,熟练使用C语言编程工具和调试技巧。
3.情感态度价值观目标:培养学生对计算机科学的兴趣和热情,增强学生的自信心和自主学习能力,培养学生的团队协作意识和沟通能力。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数、数组和指针等基本概念,以及面向对象编程思想。
具体安排如下:1.第1-2周:C语言概述、基本语法和数据类型。
2.第3-4周:运算符、控制结构和函数。
3.第5-6周:数组、指针和字符串。
4.第7-8周:面向对象编程(包括类与对象、继承与多态)。
5.第9-10周:综合案例分析和实战。
三、教学方法本课程采用多种教学方法相结合的方式,以激发学生的学习兴趣和主动性:1.讲授法:讲解基本概念、原理和编程技巧。
2.案例分析法:分析实际案例,引导学生运用C语言解决实际问题。
3.实验法:上机编程实践,巩固所学知识。
4.小组讨论法:分组讨论,培养学生的团队协作能力和沟通能力。
四、教学资源本课程所需教学资源包括:1.教材:《C语言程序设计》。
2.参考书:《C Primer Plus》、《C和指针》。
3.多媒体资料:教学PPT、视频教程。
4.实验设备:计算机、编程环境(如Visual Studio、Code::Blocks等)。
5.在线资源:编程、论坛、开源项目等。
五、教学评估本课程的评估方式包括平时表现、作业、考试等,以全面、客观、公正地评价学生的学习成果。
具体评估方式如下:1.平时表现:包括课堂参与度、小组讨论、提问等,占总评的20%。
课程设计推箱子

课程设计推箱子一、教学目标本课程的教学目标是使学生掌握推箱子游戏的规则和技巧,能够独立完成各种难度的推箱子游戏。
具体分解为以下三个目标:1.知识目标:使学生了解和掌握推箱子游戏的基本规则和技巧,包括如何推动箱子、如何越过障碍物、如何利用场景中的其他物品等。
2.技能目标:通过练习,使学生能够熟练掌握推箱子游戏的操作技巧,提高游戏速度和成功率。
3.情感态度价值观目标:培养学生面对挑战、克服困难的精神,增强学生的自信心和自我成就感。
二、教学内容本课程的教学内容主要包括以下几个部分:1.推箱子游戏的基本规则和技巧:如何推动箱子、如何越过障碍物、如何利用场景中的其他物品等。
2.推箱子游戏的操作技巧:如何快速准确地操作游戏角色,提高游戏速度和成功率。
3.各种难度的推箱子游戏实例:通过练习,使学生能够熟练应对各种难度的游戏挑战。
三、教学方法本课程的教学方法主要包括以下几种:1.讲授法:教师讲解推箱子游戏的基本规则和技巧,学生听讲并理解。
2.案例分析法:教师展示各种难度的推箱子游戏实例,学生分析并掌握相应的操作技巧。
3.实验法:学生通过实际操作推箱子游戏,锻炼和提高自己的操作技巧。
四、教学资源本课程的教学资源主要包括以下几种:1.教材:推箱子游戏教程,内容包括游戏规则、技巧讲解和游戏实例。
2.多媒体资料:推箱子游戏视频教程,为学生提供直观的学习材料。
3.实验设备:计算机和推箱子游戏软件,为学生提供实际操作的平台。
五、教学评估本课程的评估方式主要包括以下几个方面:1.平时表现:评估学生在课堂上的参与程度、提问回答情况等,占总成绩的30%。
2.作业:评估学生完成作业的质量、速度和准确性,占总成绩的30%。
3.考试:期末进行一次推箱子游戏考试,评估学生的游戏操作技巧和掌握程度,占总成绩的40%。
评估方式应客观、公正,能够全面反映学生的学习成果。
教师应及时给予学生反馈,帮助学生提高。
六、教学安排本课程的教学安排如下:1.教学进度:共10节课,每节课45分钟。
推箱子--java课程设计

推箱子--java课程设计一、课程目标知识目标:1. 理解并掌握Java基本语法结构,包括变量声明、数据类型、运算符和流程控制语句;2. 学会使用二维数组表示游戏地图,掌握数组的基本操作;3. 掌握面向对象编程的基本概念,包括类与对象、方法定义与调用;4. 理解“推箱子”游戏的逻辑规则,并能用Java语言实现。
技能目标:1. 能够独立设计并编写简单的“推箱子”游戏程序,实现游戏的基本功能;2. 培养学生运用计算机编程解决问题的能力,提高逻辑思维和算法设计能力;3. 学会使用调试工具,能对程序进行调试和优化,提高程序的可读性和效率。
情感态度价值观目标:1. 培养学生对编程的兴趣,激发学习计算机科学的热情;2. 培养学生良好的编程习惯,注重团队协作,学会分享与交流;3. 培养学生面对挑战的积极态度,敢于尝试,勇于克服困难。
分析课程性质、学生特点和教学要求,本课程目标旨在使学生在掌握Java编程基础知识的基础上,通过设计“推箱子”游戏,提高编程实践能力,培养创新思维和团队协作精神。
课程目标具体、可衡量,便于后续教学设计和评估。
二、教学内容1. Java基本语法- 变量声明与数据类型- 运算符与表达式- 流程控制语句(条件语句、循环语句)2. 二维数组与数组操作- 二维数组的定义与初始化- 数组的基本操作(遍历、赋值、查找)3. 面向对象编程基础- 类与对象- 方法定义与调用- 封装、继承、多态4. “推箱子”游戏逻辑设计- 游戏规则与需求分析- 地图表示与用户交互- 算法设计与实现5. 编程实践- 设计“推箱子”游戏界面- 编写游戏逻辑代码- 调试与优化程序6. 教学进度安排- 第1-2课时:复习Java基本语法- 第3-4课时:学习二维数组与数组操作- 第5-6课时:面向对象编程基础- 第7-8课时:“推箱子”游戏逻辑设计- 第9-10课时:编程实践与调试优化教学内容依据课程目标,结合课本章节,确保科学性和系统性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《51单片机》课程设计题目:基于51单片机的推箱子游戏设计目录1、课程设计目的 (1)2、课程设计题目和实现目标 (1)3、设计方案 (1)4、Proteus仿真原理图 (7)5、程序设计 (9)6、调试总结 (28)7、设计心得体会 (28)参考文献 (29)附录:程序代码------------------------------------------------------------------291、课程设计目的《MCS-51单片机》课程设计是与《MCS-51单片机》课程相配套的实践教学环节。
《MCS-51单片机》是一门实践性很强的专业基础课,通过课程设计,达到进一步理解单片机的硬件、软件和综合应用方面的知识,培养实践能力和综合应用能力,开拓学习积极性、主动性,学会灵活运用已经学过的知识,并能不断接受新的知识。
培养大胆发明创造的设计理念,为今后就业打下良好的基础。
通过课程设计,掌握以下知识和技能:1.单片机应用系统的总体方案的设计;2.单片机应用系统的硬件设计;3.单片机应用系统的软件程序设计;4.单片机开发系统的应用和调试能力2、课程设计题目和实现目标2.1 课程设计题目:基于51单片机的推箱子游戏设计2.2实现目标设计一款在以51单片机为核心的硬件系统中运行的推箱子游戏。
游戏一共9关,功能包括:(1)显示游戏开机界面和游戏界面;(2)按键处理包括移动小人和移动箱子,通过移动上下左右键来控制小人的移动,通过小人推动箱子,把箱子推到指定的目的地为过关,箱子只能推不能拉;(3)用于可以任意选关,并能随时退出、进入游戏;(4)每一关都有时间计时,显示当前玩家的游戏耗时。
3、设计方案根据设计目标,整个系统框图如下:图1 系统框图3.1 控制模块选用ATMEL公司生产的AT89C52为主控芯片,它是是一个低电压,高性能CMOS 8位单片机,主要功能特性如下:1、兼容MCS51指令系统;2、8k可反复擦写(大于1000次)Flash7、2个串行中断,可编程UART串行通道;8、2个外部中断源,共8个中断源;9、2个读写中断口线,3级加密位;10、低功耗空闲和掉电模式,软件设置睡眠和唤醒功能;本次课设选用PDIP封装的 AT89C52芯片,其引脚功能如图2所示,图3为最小系统:图2 引脚功能图3 最小系统U1:AT89C52,DIPf封装;C1,C2:22pf瓷片电容C3:10uf电解电容;X1:12M晶振R1:10K金属膜电阻3.2 显示模块选用内置T6963C控制控制器的12864图形点阵液晶(以下简称Lcd12864)做为显示模块。
T6963C控制器的最大特点具是有硬件初始值设置功能,显示驱动所需的参数,例如:占空比系数、每行驱动传输的字节数、字符的字体选择等均由引脚电平设置。
所以,液晶显示模块在上电时T6963C控制器就进行初始化设置,软件操作的主要精力就可以全部用于显示界面的设计上。
市场上出售此控制器的液晶很多,本次课设选用深圳市晶日达科技有限公司生产KXM12864F.LCD12864和单片机以模拟方式连接,即通过模拟操作时序的方法控制液晶显示。
具体的接线图如图4所示图4 显示模块RP1:1k排阻,用于做P0口的上拉电阻;LCD1:KXM12864F3.3按键模块16个轻触按键连接成4*4矩阵键盘,做为按键模块,如图5所示图5 4*4矩阵键盘最终系统的硬件系统如下:图6 硬件系统4、Proteus仿真原理图在proteus搭建的仿真原理图如下:图7 硬件系统图8 开机画面图9 游戏画面图10 游戏画面5.程序设计5.1 Lcd12864显示驱动程序图11 读写指令/数据时序图准备向Lcd12864进行操作时,首先要读取lcd12864的当前的状态,只有lcd12864不忙的时候才能读写操作和数据。
相关程序如下:/**************************************************函数名:status_bit_01()功能:状态位sta1(读/写指令),sta0(读/写数据)判断入口参数:返回值:状态值i***************************************************/unsigned char status_bit_01(){unsigned char i;P0=0xff;cd=1;rd=0;for(i=10;i>0;i--){if((P1&0x03)==0x03)break;}rd=1;return i;}/*********************************************函数名:write_data(unsigned char dat)功能:写数据入口参数:8位数据dat返回值:*********************************************/void write_data(unsigned char dat){while(status_bit_01()==0);rd=1;cd=0;wr=0;P0=dat;wr=1;cd=1;}/*********************************************函数名:write_cmd1(unsigned char cmd)功能:写命令,无参数入口参数:8位命令cmd返回值:*********************************************/void write_cmd1(unsigned char cmd){while(status_bit_01()==0);rd=1;cd=1;wr=0;P0=cmd;wr=1;cd=0;}/*********************************************函数名:write_cmd2(unsigned char cmd)功能:写单参数命令入口参数:8位数据dat,8位命令cmd返回值:*********************************************/void write_cmd2(unsigned char dat,unsigned char cmd){write_data(dat);write_cmd1(cmd);}/************************************************函数名:write_cmd2(unsigned char cmd)功能:写双参数命令入口参数:8位数据data1,8位数据data2,8位命令cmd返回值:*************************************************/void write_cmd3(unsigned char data1,unsigned char data2,unsigned char cmd) {write_data(data1);write_data(data2);write_cmd1(cmd);}图12 为Lcd12864的指令集,向Lcd12864写入相关的指令,即可控制其显示。
图12 Lcd12864的指令集使用液晶前必须对其进行初始化操作,初始化的内容包括光标指针设置,图形区首地址,图形区宽度,显示方式设置,图形方式显示,标形状设置。
相关程序如下:/************************************************函数名:init_12864()功能:初始化lcd12864入口参数:返回值:*************************************************/void init_12864(){wr=1;rd=1;cd=1;rst=1;//初始化write_cmd3(0x01,0x00,0x21);//光标指针设置write_cmd3(0x00,0x00,0x42);//图形区首地址write_cmd3(16,0x00,0x43);//图形区宽度write_cmd1(0x88);//显示方式设置,正常显示write_cmd1(0x98);//图形方式显示,不显示字母,只打点write_cmd1(0xa0);//光标形状设置1 0 1 0 0 N2 N1 N0}5.2 按键扫描程序初始P1的电平为0x0f,当有按键下时,电平发生变化,开始程序开始扫描判断哪个按键被按下,并返回按键号,相关程序如下:/********************************函数名:keys_scan()功能:按键扫描入口参数:返回值:按键号keyno*********************************/unsigned char keys_scan(){unsigned char tmp;unsigned char keyno;if(P1 != 0x0f){P1 = 0x0f;delayms(1);tmp = P1 ^ 0x0f;switch(tmp){case 1: keyno = 0;break;case 2: keyno = 1;break;case 4: keyno = 2;break;case 8: keyno = 3;break;default:keyno = 16;}P1 = 0xf0;delayms(1);tmp = (P1 >> 4)^ 0x0f;switch(tmp){case 1:keyno += 0;break;case 2:keyno += 4;break;case 4:keyno += 8;break;case 8:keyno += 12;break;}P1=0x0f;return keyno;}}5.3 游戏元素设计出现在显示画面中的游戏元素总共有6种:墙壁,箱子,小人,目的地,空白,箱子在目的地。
每个元素在液晶上以一个字符显示,即8×8的点阵。
在字模提取软件设计各个元素,并获得元素的显示码。
显示码的每8位构成字符的一行,8就行有8个字节。
其中1表示该点显示,0表示该点不显示。
图13-是在字模提取软件设计的各个元素,图13 小人图14 墙壁图15 箱子图16 目的地图17 箱子在目的地图18空白定义一个二维数组elements[][8],存储这些点阵信息。
其中第一个地址为元素代号unsigned char code elements[][8]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0空白0x3C,0x7E,0x66,0x3C,0x7E,0x99,0x3C,0x66, //1人物0x7F,0x7F,0x7F,0x00,0xEF,0xEF,0xEF,0x00, //2砖头0xFF,0xC3,0xA5,0x99,0x99,0xA5,0xC3,0xFF, //3箱子0x00,0x18,0x24,0x4A,0x52,0x24,0x18,0x00, //4目标0xFF,0xBD,0xDB,0xE7,0xE7,0xDB,0xBD,0xFF, //5箱子到达目标};5.4元素的显示由于T6963c液晶是按以列1字符(8点),行1点来定位的,所以显示时,要先定位显示字符位的列字符和行字符首地址,即行*0x80+列;再定义一个循环变量i,从0,到7,定位该字符位的8个点行,即行*0x80+列+i*0x10,定位到每个点行后,写入对应的元素字节,即elements[元素代号][i],就可以在液晶的指定字符位置上显示该元素了。