资源描述:
《基于MSP430F5529俄罗斯方块游戏程序.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、/*基于MSP430F5529俄罗斯方块游戏程序*///作者: 詹磊//功能: 基于MSP430F5529俄罗斯方块游戏程序//说明: 运行环境:TI官方MSP-EXP5529开发板(外接4个带上拉电阻独立按键)// 非原创,思路是从51单片机上移植过来的// 底层液晶驱动是TI官方提供的LCDAPI// 游戏算法部分的底层程序多处已经修改,与原版会有较大的差别//版本: 测试版V1.0(基本能流畅运行,但需要进一步的美化和优化)#
2、include"MSP430F5529.h"#include"LCD_102x64.h"#include"main.h"#include"Key.h"#defineMAXHANG20 //游戏显示行数#defineMAXLIE 16 //游戏显示列数#defineMapWide 48 //地图宽#defineMapHigh 60
3、 //地图高#defineON 0#defineOFF 1#defineBIT(n) (1<<(n))volatileuintcubeMap[MAXHANG]; //地图显示存存typedefstruct{ ucharconst*box; //方块图形字模数据指针 ucharcube:4; //方块形态(占用4个位域)
4、 ucharstate:4; //方块状态(占用4个位域) charrow; //方块所在行 charcolumn; //方块所在列 }block;blockthis;ucharliang=11;ucharSpeed=1,Score=0;uinttimeA=0;uchardownflag=0;uchar
5、randomNumber=0;constucharcube[]={/*■ ■■■*/0,4,0xe,0, 0,2,6,2, 0,7,2,0, 4,6,4,0,/*■ ■■■*/0,8,0xe,0, 0,4,4,0xc, 0,0,0xe,2, 0,6,4,4,/*■■■ ■*/0,0xe,8,0, 0,4,4,6, 0,1,7,0, 6,2,2,0,/*■■ ■■*/0,0xc,6,0, 0,2,6,4, 0,6,3,0, 2,6,4,0,/*
6、 ■■ ■■*/0,6,0xc,0, 0,4,6,2, 0,3,6,0, 4,6,2,0,/*■■■■*/0,0xf,0,0, 4,4,4,4, 0,0,0xf,0, 2,2,2,2,/*■■ ■■*/0,6,6,0, 0,6,6,0, 0,6,6,0, 0,6,6,0};voiddelay_ms(uintz)//毫秒级延时函数{ uinti,m; for(i=z;i>0;i--) for(m=4500;m>0;m--)
7、 { _NOP(); }}//-------------------------------------------////函数名:八位LED灯控制函数//入口:Number:Number哪位为一则哪位LED点亮//出口:Void//功能://-------------------------------------------//voidDigitalLedControl(ucharNumber){ if(Number&BIT7) P
8、1OUT
9、=BIT0; else P1OUT&=~BIT0; if(Number&BIT6) P8OUT
10、=BIT1; else P8OUT&=~BIT1; if(Number&BIT5) P8OUT
11、=BIT2; else P8OUT&=~BIT2; if(Number&BIT4) P1OUT
12、=BIT1; else P1OUT&=~BIT1