资源描述:
《基于单片机的贪食蛇设计.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于单片机的贪食蛇设计一题目要求:使用8051单片机和点阵显示屏实现贪吃蛇的基本功能二题目分析:1,贪吃蛇的基本功能:A,能够蛇形移动B,能够任意改变方向C,能够吃到食物并增长D,撞到四边的墙蛇死F,吃到自己蛇死E,放置新的食物2,拓展部分:A,能够过关B,在游戏开始和结束都显示一些相关花样C,过关能显示关数D,增加串口通信功能F,增加红外遥控功能3,贪吃蛇关键算法分析:A,蛇身的形成:使用20个RAM来存储蛇身X坐标,20个RAM来存储蛇身Y坐标显示时只须将X坐标输出到行,Y坐标输出列即可B,蛇的方向:使用
2、两个存储单元分别来存储代表方向的X坐标和Y坐标向上:X=0,Y=1向下:X=0,Y=-1向左:X=-1,Y=0向右:X=1,Y=0C,蛇的移动:只须将蛇头的X坐标和Y坐标分别与方向的X坐标和Y坐标相加-38-原来蛇身各节的前一节X从标和Y坐标分别与后一节的X坐标和Y坐标交换即可D,吃食物:只要判断蛇头的X,Y坐标是否与食物的X,Y坐标相同,相同则判断吃到食物,反之,没吃到食物F,吃到食物蛇增长一节:当判断为吃到食物后只须让蛇移动时多交换一次即可实现G,判断蛇是否撞墙:只要判断蛇头的X坐标或Y坐标是否等于点阵最
3、外边时的X或Y坐标H,判断蛇是否吃到自己:只须将蛇头X,Y坐标与每一节蛇身的X,Y坐标进行比较如果相等到则视为吃到自己I,放置新的食物:根据游戏者控制蛇吃到食物的时间的不同而产生的坐标,是随机的食物三功能描述:开机即显示“SNAKE”,当按下KEY5则显示蛇的形状,再按下KEY5进入游戏,即可开始游戏,此时即可通按下KEY1,KEY2,KEY3,KEY4来控制上,下,左,右,此时按下KEY5可退出游戏,上述按键也可用红外遥控来实现.此时吃到食物即可增长一节,撞到边框即蛇死,吃到自己蛇死,死亡则显示”GAMEO
4、VER”,长到20节即过一关,并显示关数,10过完则重新开始.-38-四系统硬件设计:系统主原理图:-38-五系统软件设计:A流程序图设计1,系统主流程图:-38-2,按键子程序流程图:-38-3,蛇移动子程序流程图:4,判断蛇是否死亡子程序流程图:-38-5,蛇吃食物子程序流程图:-38-6,过关子程序流程图:-38-7,蛇显示子程序流程图:-38-六程序清单:-38-;=====================================================================
5、============================;红外遥控--串口--贪吃蛇;---------2008/9/1--------------------;=================================================================================================;硬件:P0,P2显示码输出---行,P1.0-P1.3接74LS154为点阵列扫描信号;P1.4-P1.7为4个独立键盘;P3.2INT0为启停键;P3.3
6、INT1为红外接收;P3.0P3.1为串口;=================================================================================================;字节定义区;=================================================================================================SNAKE_TAIL_XEQU27H;蛇尾X坐标暂存器SNAKE_T
7、AIL_YEQU28H;蛇尾Y坐标暂存器FOOD_XEQU29H;食物X坐标FOOD_YEQU2AH;食物Y坐标SNAKE_CHANGEQU2BH;蛇的节数PUT_FOODEQU2CH;放食物随机码产生器PASS_NUMEQU2DH;过关数目TIMEEQU2EH;过关时间调节暂存器TIME_400EQU32H;400延时XXEQU33H;方向X坐标暂存YYEQU34H;方向Y坐标暂存XEQU35H;方向X坐标YEQU36H;方向Y坐标SNAKE_TOU_XEQU40H;蛇头X坐标存储单元SNAKE_TOU_Y
8、EQU54H;蛇头Y坐标存储单元SNAKE_SHEN1_XEQU41H;蛇身第一节X坐标存储单元SNAKE_SHEN1_YEQU55H;蛇身第一节Y坐标存储单元SNAKE_SHEN2_XEQU42H;蛇身第二节X坐标存储单元SNAKE_SHEN2_YEQU56H;蛇身第二节Y坐标存储单元H_Y_8EQU37H;Y坐标大于8的寄存器L_Y_8EQU38H;Y坐标小于8的寄存器IR_COM1EQU39H