基于Freescale三轴加速度传感器LCD的贪食蛇游戏设计.docx

上传人:b****1 文档编号:1804895 上传时间:2022-10-24 格式:DOCX 页数:15 大小:18.86KB
下载 相关 举报
基于Freescale三轴加速度传感器LCD的贪食蛇游戏设计.docx_第1页
第1页 / 共15页
基于Freescale三轴加速度传感器LCD的贪食蛇游戏设计.docx_第2页
第2页 / 共15页
基于Freescale三轴加速度传感器LCD的贪食蛇游戏设计.docx_第3页
第3页 / 共15页
基于Freescale三轴加速度传感器LCD的贪食蛇游戏设计.docx_第4页
第4页 / 共15页
基于Freescale三轴加速度传感器LCD的贪食蛇游戏设计.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

基于Freescale三轴加速度传感器LCD的贪食蛇游戏设计.docx

《基于Freescale三轴加速度传感器LCD的贪食蛇游戏设计.docx》由会员分享,可在线阅读,更多相关《基于Freescale三轴加速度传感器LCD的贪食蛇游戏设计.docx(15页珍藏版)》请在冰豆网上搜索。

基于Freescale三轴加速度传感器LCD的贪食蛇游戏设计.docx

基于Freescale三轴加速度传感器LCD的贪食蛇游戏设计

//说明:

该程序是基于freescaleMCU、三轴加速度传感器、ili9320LCD所写的贪食蛇游

//戏,上传代码拥有全部的设计思路以及大部分函数主体

//=================================================================

//宏定义按键

//=================================================================

Forpersonaluseonlyinstudyandresearch;notforcommercialuse

#defineKey_Up1

#defineKey_Down4

#defineKey_Left2

Forpersonaluseonlyinstudyandresearch;notforcommercialuse

#defineKey_Right3

#defineucharunsignedchar

//=================================================================

//使用结构体定义变量使程序的名称更加的清楚

//=================================================================

struct

{

ucharX;

ucharY;

ucharYes;

}Food;//食物结构体

#defineSNAKE_Max_Long20//最大长度

struct

{

ucharX[SNAKE_Max_Long];

ucharY[SNAKE_Max_Long];

ucharLong;

ucharLife;

ucharScore;//蛇的分数

ucharLevel;//蛇的等级

}Snake;//蛇结构体

ucharKey_V_temp=0;//取出上次按键值

ucharKey_Value=0;

staticintl=0;

staticuint16KEY_Init[3]={0,0,0};

staticuint16KEY_BASE[3]={0,0,0};

score[20]={"0","10","20","30","40","50","60","70","80","90","100","110","120","130","140","150","160","170","180","190"};

intlevel[20]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};

staticconstbyteChannels[]={13,14,15};/*Contentsforthedevicecontrolregister*/

staticwordMMA_7260_OutV[3];

staticbyteSumChan;

staticbyteOutFlg;

voidMMA_7260_Init_3(void)

{

OutFlg=FALSE;/*Nomeasuredvalue*/

/*ATD0CTL4:

SMP2=0,SMP1=0,SMP0=0,PRS4=0,PRS3=0,PRS2=1,PRS1=0,PRS0=1*/

ATD0CTL4=5;/*Setsampletimeandprescaler*/

/*ATD0CTL3:

DJM=0,S8C=0,S4C=0,S2C=0,S1C=1,FIFO=0,FRZ1=0,FRZ0=0*/

ATD0CTL3=8;/*SetATDcontrolregister3*/

/*ATD0CTL0:

?

?

=0,?

?

=0,?

?

=0,?

?

=0,WRAP3=1,WRAP2=1,WRAP1=1,WRAP0=1*/

ATD0CTL0=15;/*Setwraparound*/

/*ATD0CTL1:

ETRIGSEL=0,SRES1=1,SRES0=0,SMP_DIS=1,ETRIGCH3=1,ETRIGCH2=1,ETRIGCH1=1,ETRIGCH0=1*/

ATD0CTL1=95;/*Setresolutionanddischarge*/

/*ATD0CTL2:

?

?

=0,AFFC=1,ICLKSTP=0,ETRIGLE=0,ETRIGP=0,ETRIGE=0,ASCIE=0,ACMPIE=0*/

ATD0CTL2=64;/*SetATDcontrolregister2*/

}

//-----------------------------------------------------

staticvoidMMA_7260_Measure_3(void)

{

for(SumChan=0;SumChan<3;SumChan++){

ATD0CTL5=Channels[SumChan];/*Startmeasurementofnextchannel*/

while(!

ATD0STAT0_SCF){}/*WaitforADconversioncomplete*/

MMA_7260_OutV[SumChan]=ATD0DR0;/*Savemeasuredvalue*/

}

OutFlg=TRUE;/*Measuredvaluesareavailable*/

}

//-----------------------------------------------------

byteMMA_7260_GetValue16_3(word*Values)

{

if(!

OutFlg){/*Ismeasuredvalue(s)available?

*/

return0;/*Ifnothenerror*/

}

/*Note:

Next4linesarespeedoptimized*/

*Values++=MMA_7260_OutV[0];/*Savemeasuredvaluestotheoutputbuffer*/

*Values++=MMA_7260_OutV[1];/*Savemeasuredvaluestotheoutputbuffer*/

*Values++=MMA_7260_OutV[2];/*Savemeasuredvaluestotheoutputbuffer*/

OutFlg=FALSE;

return1;/*OK*/

}

//=================================================================

////////////////////////贪食蛇游戏/////////////////////////////////

//=================================================================

//函数名称:

Trun_On_PointTrun_Off_Point(ucharx,uchary)

//函数功能:

点亮或者熄灭一个点。

用于显示蛇身体

//入口参数:

//出口参数:

//特别说明:

此Trun_On,函数换成其他的就可以兼容其他的液晶

//入8*8点阵12864等

//=================================================================

voidTrun_On_Point(ucharx,uchary,ucharcolor)

{

ili9320_Rectangle((4*(x+2)),(4*(y+2)),(4*(x+3)),(4*(y+3)),color,color);

//Bar((4*(x+2)),(4*(y+2)),(4*(x+3)),(4*(y+3)),color);

}

voidTrun_Off_Point(ucharx,uchary)

{

ili9320_Rectangle((4*(x+2)),(4*(y+2)),(4*(x+3)),(4*(y+3)),0xFFFF,0xFFFF);

}

//=================================================================

//函数名称:

voidInit_SNAKE(void)

//函数功能:

绘制游戏界面,初始化游戏等级等参数

//入口参数:

//出口参数:

//=================================================================

voidInit_SNAKE(void)

{

uchari;

//***********获取方向基准********************//

MMA_7260_Init_3();

MMA_7260_Measure_3();

MMA_7260_GetValue16_3(&KEY_BASE);

//以下语句可以通过串口检验三轴加速度数据

/*

if(Flag){

printp("GetXChannel:

%10D",KEY_BASE[0]);

printp("GetYChannel:

%10D",KEY_BASE[1]);

printp("GetZChannel:

%10D",KEY_BASE[2]);

}

*/

//***********绘制游戏界面********************//

ili9320_Rectangle(4,4,166,206,0,0);

ili9320_Rectangle(5,5,167,207,0,0);

ili9320_Rectangle(6,6,168,208,0,0);

ili9320_Rectangle(5,5,169,209,0,0);

ili9320_Rectangle(7,7,167,207,0xFFFF,0xFFFF);//绘制一个矩形框,160*240

ili9320_Write_multi_HZ_ASCII(167+10,32,32,32,"少女32.FON","少符32.FON","07电信一",0xF800);

ili9320_Write_multi_HZ_ASCII(167+10,66,32,32,"少女32.FON","少符32.FON","郑友金",0xF800);

ili9320_Write_multi_HZ_ASCII(167+10,100,32,32,"少女32.FON","少符32.FON","贪食蛇",0xF800);

//***********初始化蛇参数********************//

Snake.Long=2;//定义初始化蛇的长度

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 天文地理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1