📄 main.lst
字号:
C51 COMPILER V7.06 MAIN 09/23/2008 04:07:57 PAGE 6
304 2 if(buttonplay)
305 2 {
306 3 buttonplay=0;
307 3 if((button==0x04)&&(i<=1)) return 0; //p2.2
308 3 else if(button==0x04||button==0x08) return 1;
309 3 }
310 2 LCD_WriteData(0x00,i-1,64+i*8-j+2);
311 2 LCD_WriteData(0x00,i-1,64+i*8-j+1);
312 2
313 2 }
314 1 return 1;
315 1 }
316
317 //=============================================
318 //斜线移动:向右下移动
319 //=============================================
320 uchar Ball_MoveRightDown(uint speed)
321 {
322 1 uchar i,j,wdata;
323 1 for(i=0;i<8;i++)//向右下移动
324 1 {
325 2 wdata=0x03;
326 2 for(j=0;j<8;j+=2)
327 2 {
328 3 if(j)
329 3 {
330 4 LCD_WriteData(0x00,i,64+i*8+j-2);//CLR
331 4 LCD_WriteData(0x00,i,64+i*8+j-1);
332 4 }
333 3 LCD_WriteData(wdata,i,64+i*8+j);
334 3 LCD_WriteData(wdata,i,64+i*8+j+1);
335 3 wdata=wdata<<2;
336 3 Delay_x10ms(speed*10);
337 3 if(i==7&&j>=4) j=10;
338 3 }
339 2 if(buttonplay)
340 2 {
341 3 buttonplay=0;
342 3 if((button==0x01)&&(i>=7)) return 0; //p2.0
343 3 else if(button==0x01||button==0x02) return 2;
344 3 }
345 2 LCD_WriteData(0x00,i,64+i*8+j-2);
346 2 LCD_WriteData(0x00,i,64+i*8+j-1);
347 2 }
348 1 return 2;
349 1 }
350
351 //=============================================
352 //水平移动
353 //0:-->
354 //1:<--
355 //=============================================
356 uchar Ball_MoveP(uchar Data,uchar direction,uchar hang,uint speed)
357 {
358 1 int i;
359 1 if(direction)
360 1 {
361 2 for(i=0;i<62;i++)//-->
362 2 {
363 3 if(i){
364 4 LCD_WriteData(0,hang,64+i-2);LCD_WriteData(0,hang,64+i-1);}
365 3 if(buttonplay)
C51 COMPILER V7.06 MAIN 09/23/2008 04:07:57 PAGE 7
366 3 {
367 4 buttonplay=0;
368 4 if((button==0x02)&&(i>=51)) return 0; //p2.1
369 4 else if(button==0x02) return 2;
370 4 }
371 3 LCD_WriteData(Data,hang,64+i);LCD_WriteData(Data,hang,64+i+1);
372 3 Delay_x10ms(speed*10);
373 3 i++;
374 3 }
375 2 LCD_WriteData(0,hang,64+i-2);LCD_WriteData(0,hang,64+i-1);
376 2 return 2;
377 2 }
378 1 else
379 1 {
380 2 for(i=62;i>0;i--)//<--
381 2 {
382 3 if(i!=62){
383 4 LCD_WriteData(0,hang,64+i+2);LCD_WriteData(0,hang,64+i+1);}
384 3 if(buttonplay)
385 3 {
386 4 buttonplay=0;
387 4 if((button==0x04)&(i<=10)) return 0;
388 4 else if(button==0x04) return 1;
389 4 }
390 3 LCD_WriteData(Data,hang,64+i);LCD_WriteData(Data,hang,64+i-1);
391 3 Delay_x10ms(speed*10);
392 3 i--;
393 3 }
394 2 LCD_WriteData(0,hang,64+i+2);LCD_WriteData(0,hang,64+i+1);
395 2 return 1;
396 2 }
397 1 }
398
399 void Delay_x10ms(uchar DelayTime) //*******ms延时*****//
400 {
401 1 unsigned char i,j,k;
402 1 for(i=0;i<DelayTime;i++){
403 2 if(buttonplay) break;
404 2 for(j=0;j<10;j++){
405 3 if(buttonplay) break;
406 3 for(k=0;k<45;k++) {if(buttonplay) break;}
407 3 } }
408 1 }
409
410 /*******************************
411 双人游戏
412 ********************************/
413 uchar doubleplay()
414 {
415 1 uchar i,flag,sendball=0;
416 1 uchar a[3]={0,0,0},b[3]={0,0,0};
417 1 LCD_CLR(L);LCD_CLR(R);
418 1 //画边框
419 1 for(i=0;i<8;i++){//球与信息分割线
420 2 LCD_WriteData(0xFF,i,63);}
421 1 for(i=1;i<7;i++){
422 2 LCD_WriteData(0xFF,i,127);}//右边线
423 1 put_chinese(chinese[20],0,4,0);//甲
424 1 put_chinese(chinese[21],2,4,0);//乙
425 1 for(;;)
426 1 {
427 2 LCD_CLR(R);
C51 COMPILER V7.06 MAIN 09/23/2008 04:07:57 PAGE 8
428 2 LCD_WriteData(0xFF,0,127);
429 2 LCD_WriteData(0xFF,7,127);
430 2 for(i=0;i<8;i++){//球与信息分割线
431 3 LCD_WriteData(0xFF,i,63);}
432 2 for(i=0;i<8;i++){
433 3 LCD_WriteData(0xFF,i,127);}//右边线
434 2 infodisplay();
*** WARNING C209 IN LINE 434 OF MAIN.C: 'infodisplay': too few actual parameters
435 2 double_modle_1(sendball);
436 2 sendball++;
437 2 if(sendball>=4) sendball=0;
438 2 infodisplay();
*** WARNING C209 IN LINE 438 OF MAIN.C: 'infodisplay': too few actual parameters
439 2 //比分局分控制
440 2 if((gamenum.mark1>=11)&&((gamenum.mark1-gamenum.mark2)>=2))
441 2 {
442 3 a[gamenum.game1]=gamenum.mark1;
443 3 b[gamenum.game1]=gamenum.mark2;
444 3 gamenum.game1++;
445 3 gamenum.mark1=0;
446 3 gamenum.mark2=0;
447 3 put_chinese(chinese[20],0,64,1);
448 3 put_chinese(chinese[13],0,80,1);
449 3 enter();LCD_CLR(R);
450 3 }
451 2 else if((gamenum.mark2>=11)&&((gamenum.mark2-gamenum.mark1)>=2))
452 2 {
453 3 a[gamenum.game1]=gamenum.mark1;
454 3 b[gamenum.game1]=gamenum.mark2;
455 3 gamenum.game2++;
456 3 gamenum.mark1=0;
457 3 gamenum.mark2=0;
458 3 put_chinese(chinese[21],0,64,1);
459 3 put_chinese(chinese[13],0,80,1);
460 3 enter();LCD_CLR(R);
461 3 }
462 2 if(gamenum.game2>=2) {flag=1;break;}
463 2 else if(gamenum.game1>=2) {flag=0;break;}
464 2 }
465 1 infoflash(a,b,flag);
466 1 Delay_x10ms(1000);
467 1 return 1;
468 1 }
469
470 uchar Read_P2()
471 {
472 1 P2=0xFF;
473 1 return(P2&0x0F);
474 1 }
475 void infoflash(uchar* a,uchar* b,uchar flag)
476 {
477 1 uchar i;
478 1 put_picture_half(Bmp1,R);
479 1 LCD_CLR(L);
480 1 put_chinese(chinese[20],4,0,0);//甲
481 1 put_chinese(chinese[21],6,0,0);//乙
482 1 if(flag) put_chinese(chinese[21],0,8,1);
483 1 else put_chinese(chinese[20],0,8,1);
484 1 put_chinese(chinese[13],0,24,1);put_chinese(chinese[14],0,40,1);//shengli
485 1 put_num(num10[1],2,20,1);
486 1 put_num(num10[2],2,36,1);
487 1 put_num(num10[3],2,52,1);
C51 COMPILER V7.06 MAIN 09/23/2008 04:07:57 PAGE 9
488 1 for(i=0;i<3;i++){
489 2 if(a[i]>9)
490 2 put_num(num10[1],4,16+i*16,0);//甲
491 2 else put_num(num10[0],4,16+i*16,0);
492 2 if(a[i]>9)
493 2 put_num(num10[a[i]-10],4,16+i*16+8,0);
494 2 else put_num(num10[a[i]],4,16+i*16+8,0);
495 2 if(b[i]>9)
496 2 put_num(num10[1],6,16+i*16,0);//乙
497 2 else put_num(num10[0],6,16+i*16,0);
498 2 if(b[i]>9)
499 2 put_num(num10[b[i]-10],6,16+i*16+8,0);
500 2 else put_num(num10[b[i]],6,16+i*16+8,0);}
501 1 enter();
502 1 }
503 void double_modle_1(uchar send_id)
504 {
505 1 uchar state=0;
506 1 bit moveflag;
507 1 uchar direction;
508 1 put_chinese(chinese[17],4,24,0);//发球
509 1 put_chinese(chinese[16],4,40,0);
510 1 P3=0xFF;
511 1 switch(send_id)
512 1 {
513 2 case 0://甲1发球
514 2 moveflag=P3^4;
515 2 if(moveflag) direction=2;
516 2 else direction=0;
517 2 put_num(num10[10],0,53,0);//甲
518 2 put_num(num10[11],2,53,0);
519 2 put_chinese(chinese[20],4,0,0);
520 2 put_num(num10[1],4,16,0);
521 2 do
522 2 {
523 3 button=Read_P2();
524 3 }while(!(button==0x04));
525 2 break;
526 2 case 1://甲2发球
527 2 moveflag=P3^4;
528 2 if(moveflag) direction=5;
529 2 else direction=6;
530 2 put_num(num10[10],0,53,0);//甲
531 2 put_num(num10[11],2,53,0);
532 2 put_chinese(chinese[20],4,0,0);
533 2 put_num(num10[2],4,16,0);
534 2 do
535 2 {
536 3 button=Read_P2();
537 3 }while(!(button==0x08));
538 2 break;
539 2 case 2://乙1发球
540 2 moveflag=P3^7;
541 2 if(moveflag) direction=4;
542 2 else direction=1;
543 2 put_num(num10[10],2,53,0);//乙
544 2 put_num(num10[11],0,53,0);
545 2 put_chinese(chinese[21],4,0,0);
546 2 put_num(num10[1],4,16,0);
547 2 do
548 2 {
549 3 button=Read_P2();
C51 COMPILER V7.06 MAIN 09/23/2008 04:07:57 PAGE 10
550 3 }while(!(button==0x02));
551 2 break;
552 2 case 3://乙2发球
553 2 moveflag=P3^7;
554 2 if(moveflag) direction=3;
555 2 else direction=7;
556 2 put_num(num10[10],2,53,0);//乙
557 2 put_num(num10[11],0,53,0);
558 2 put_chinese(chinese[21],4,0,0);
559 2 put_num(num10[2],4,16,0);
560 2 do
561 2 {
562 3 button=Read_P2();
563 3 }while(!(button==0x01));
564 2 break;
565 2 }
566 1 while(!state)
567 1 {
568 2
569 2 switch(direction)
570 2 {
571 3 case 0:
572 3 state=Ball_MoveP(0x03,1,0,speed);
573 3 P3=0xFF;
574 3 moveflag=P3^7;
575 3 switch(state)
576 3 {
577 4 case 0:
578 4 if(moveflag) direction=4;
579 4 else direction=1;
580 4 break;
581 4 //case 1://甲犯规,乙得分
582 4 // gamenum.mark2++;
583 4 // put_chinese(chinese[20],6,10,1);
584 4 // break;
585 4 case 2://乙犯规,甲得分
586 4 gamenum.mark1++;
587 4 put_chinese(chinese[21],6,10,1);//yi
588 4 break;
589 4 }
590 3 break;
591 3 case 1:
592 3 state=Ball_MoveP(0x03,0,0,speed);
593 3 P3=0xFF;
594 3 moveflag=P3^7;
595 3 switch(state)
596 3 {
597 4 case 0:
598 4 if(moveflag) direction=2;
599 4 else direction=0;
600 4 break;
601 4 case 1://甲犯规,乙得分
602 4 gamenum.mark2++;
603 4 put_chinese(chinese[20],6,10,1);//jia
604 4 break;
605 4 //case 2://乙犯规,甲得分
606 4 // gamenum.mark1++;
607 4 // put_chinese(chinese[21],6,10,1);
608 4 // break;
609 4 }
610 3 break;
611 3 case 2:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -