发布时间 : 星期二 文章ARM课程设计报告 - 图文更新完毕开始阅读ba3af20dbfd5b9f3f90f76c66137ee06eff94e7c
ARM系统设计实践课程报告
附录:
/////////// 设置屏幕上某点的亮灭函数/////////////////
void Set_Display(uint8 x,uint8 y,uint8 k) //设置(y,x)点的亮(1)或者灭(0),显示屏上横为y,竖为x,函数这样和一般坐标系就一致 {
uint8 xx,jj,kk,tt; xx=x;
kk=y/8; //在第几列 jj=y%8; //在该列的第几位
tt=0x01; if(k==1) {
if(jj!=0) {
tt=tt<<(8-jj);//找到相应的位置赋值 chDispRam[x][kk]=chDispRam[x][kk]| tt; } else {
chDispRam[x][kk-1]=chDispRam[x][kk-1]| tt; } }
else if(k==0) {
if(jj!=0) {
tt=tt<<(8-jj);//找到相应的位置赋值 tt=~tt;
chDispRam[x][kk]=chDispRam[x][kk]&tt; } else {
tt=0xfe;
chDispRam[x][kk-1]=chDispRam[x][kk-1]& tt; } }
disp_bmp(); }
////////////检测屏幕上某点的亮灭函数//////////////
8
ARM系统设计实践课程报告
uint8 Test_Light(uint8 x,uint8 y) //检测坐标(y,x)处亮(1)或者灭(0) {
uint8 xx,jj,kk,tt;
xx=x;
kk=y/8; //在第几列 jj=y%8; //在列的第几位
tt=0x80;
tt=tt>>(8-jj); //找到相应的位置赋值 chDispRam2[x][kk]=chDispRam[x][kk]&tt; return chDispRam2[x][kk]; }
///////////游戏开始后贪吃蛇初始行进函数/////////////////
void Move() //蛇初始运动方向为向右 {
while(1) {
Set_Display(SX,++SY,1); //蛇头向前一点
Judge_Food(); //直线运动,判断食物 Set_Display(SX,SY-SL,0); //蛇尾灭一个点
switch( Key_Num ) //检测是否向上或者向下的按键 {
case KEY1: //键1表示向上 Key_Num = 0; UpMove(); break;
case KEY2: //键2表示向下 Key_Num = 0; DownMove(); break; default:
Key_Num = 0; break; } } }
9
ARM系统设计实践课程报告
///////////贪吃蛇向右转向函数//////////////////
void RightMove() //向右运动 {
Judge_Direction(); sx=SX; sy=SY; sl=SL;
if(JD==1) //向上运动时 {
JD=0;
while(1) //正在向右转弯 {
if(sl!=0) {
Set_Display(SX,++SY,1);
Set_Display(sx-(sl-1),sy,0);
if((foodsignal==1)&&(sl==2)) 蛇长变长
{
SL=SL+1; sl=sl-2; } else sl--; } else break; } }
else if(JD==2) //向下运动时 {
JD=0;
while(1) //正在向右转弯 {
if(sl!=0) {
Set_Display(SX,++SY,1);
Set_Display(sx+(sl-1),sy,0);
if((foodsignal==1)&&(sl==2)) 蛇长变长
{
SL=SL+1; sl=sl-2;
10
目的是在在转弯过程中,吃到食物,目的是在在转弯过程中,吃到食物, // //ARM系统设计实践课程报告
} else sl--; } else break; } }
while(1) //转向完毕后直线行进 {
Set_Display(SX,++SY,1); //蛇头向前一点
Judge_Food(); //直线运动,判断食物 Set_Display(SX,SY-SL,0); //蛇尾灭一个点
switch( Key_Num ) //检测是否向上或者向下的按键 {
case KEY1: //键1表示向上 Key_Num = 0; UpMove(); break;
case KEY2: //键2表示向下 Key_Num = 0; DownMove(); break; default:
Key_Num = 0; break; } } }
///////////贪吃蛇向上转向函数///////////////
void UpMove() {
Judge_Direction(); sx=SX; sy=SY; sl=SL;
if(JD==3) //向左运动时 {
JD=0;
while(1) //正在向上转弯
11