📄 dds.lst
字号:
426 void music()
427 {
428 1 flag=0;
429 1 detect();
430 1 if(flag==5)
431 1 {
432 2 flag=0;
433 2 clrscreen();
434 2 while(flag!=6)
435 2 {
436 3 detect();
437 3 if(key==2)
438 3 key=0;
439 3 if(key==5)
440 3 key=0;
441 3 write_com(0x90);
442 3 hzkdis(song[key]);
443 3 //for(i=0;song[key][i]!='\0';i++)
444 3 //{
445 3 // write_date(song[key][i]);
446 3 // }
447 3 if(flag==5)
448 3 {
449 4 InitialSound();
450 4 switch(key)
451 4 {
452 5 case 0:Play(tale,0,3,300);break;
453 5 case 1:Play(Love,0,3,340);break;
454 5 }
455 4 ring_song=key;
456 4 while(!esc);
457 4 }
458 3 }
459 2 clrscreen();
460 2 //write_order(0x01);
461 2 key=1;
462 2 }
463 1 }
464
465 //星期
466 //(百年%4*5天+年+年/4+月星期表+日+2天)%7
467 unsigned char getweek(unsigned year,unsigned char month,unsigned char day)
468 {
469 1 unsigned week;
470 1 unsigned char moontab1[]={3,6,0,3,5,1,3,6,2,4,0,2},moontab2[]={4,0,0,3,5,1,3,6,2,4,0,2};
471 1 if((0==year%400)||(0==year%4&&0!=year%100))
472 1 week=((year/100)%4*5+year%100+(year%100)/4+moontab1[month-1]+day+2)%7;
473 1 else
474 1 week=((year/100)%4*5+year%100+(year%100)/4+moontab2[month-1]+day+2)%7;
475 1 return week;
476 1 }
477 void pagerili(unsigned char k)
478 {
479 1 unsigned char fline=(k-1)*21+7-rili_week+1;
480 1 unsigned char j;
481 1 unsigned char line[]={0x91,0x89,0x99};
482 1 if(k==0)
483 1 {
484 2 write_com(0x90);
485 2 write_data(time[rili_set[0]/10]);
486 2 write_data(time[rili_set[0]%10]);
487 2 write_data(time[rili_set[1]/10]);
C51 COMPILER V7.06 DDS 04/21/2009 14:42:16 PAGE 9
488 2 write_data(time[rili_set[1]%10]);
489 2 hzkdis("年");
490 2 write_data(time[rili_set[2]/10]);
491 2 write_data(time[rili_set[2]%10]);
492 2 hzkdis("月");
493 2 return;
494 2 }
495 1 write_com(0x80);
496 1 hzkdis("周一二三四五六日");
497 1 for(j=0;j<3;j++)
498 1 {
499 2 write_com(line[j]);
500 2 /* if(j==0&&k==1)
501 2 {
502 2 for(i=1;i<=8-rili_week;i++)
503 2 {
504 2 write_com(0x90+rili_week);
505 2 write_data(' ');
506 2 write_data(time[i]);
507 2 }
508 2 continue;
509 2 }*/
510 2 for(i=1;i<=7&&(fline+j*7+i-7)<=rili_monthday;i++)
511 2 {
512 3 if((fline+i+j*7)<17)
513 3 write_data(' ');
514 3 else
515 3 write_data(time[(fline+i+j*7-7)/10]);
516 3 if((fline+i+j*7)<8)
517 3 write_data(' ');
518 3 else
519 3 write_data(time[(fline+i+j*7-7)%10]);
520 3 }
521 2
522 2 }
523 1 }
524
525 void rilidis()
526 {
527 1 rili_year=rili_set[0]*100+rili_set[1];
528 1 rili_month=rili_set[2];
529 1 rili_week=getweek(rili_year,rili_month,1);
530 1 if(rili_month==4||rili_month==6||rili_month==9||rili_month==11)
531 1 rili_monthday=30;
532 1 else if(rili_month==2)
533 1 {
534 2 if(rili_year%400==0||(rili_year%4==0&&rili_year%100!=0))
535 2 rili_monthday=29;
536 2 else
537 2 rili_monthday=28;
538 2 }
539 1 else rili_monthday=31;
540 1 pagerili(0);
541 1 flag=0;
542 1 while(flag!=6)
543 1 {
544 2 detect();
545 2 if(flag==1)
546 2 {
547 3 flag=0;
548 3 if(sum<3)
549 3 sum++;
C51 COMPILER V7.06 DDS 04/21/2009 14:42:16 PAGE 10
550 3 }
551 2 if(flag==2)
552 2 {
553 3 flag=0;
554 3 if(sum>0)
555 3 sum--;
556 3 }
557 2 pagerili(sum);
558 2 }
559 1 }
560
561 void rili()
562 {
563 1 unsigned char rili_setsign=0;
564 1 flag=0;
565 1 detect();
566 1 if(flag==5)
567 1 {
568 2 flag=0;
569 2 while(flag!=6)
570 2 {
571 3 write_com(0x80);
572 3 write_data(time[rili_set[0]/10]);
573 3 write_data(time[rili_set[0]%10]);
574 3 write_data(time[rili_set[1]/10]);
575 3 write_data(time[rili_set[1]%10]);
576 3 hzkdis("年");
577 3 write_data(time[rili_set[2]/10]);
578 3 write_data(time[rili_set[2]%10]);
579 3 hzkdis("月");
580 3 detect();
581 3 if(flag==1)
582 3 {
583 4 flag=0;
584 4 rili_set[rili_setsign]+=1;
585 4 }
586 3 else if(flag==2)
587 3 {
588 4 flag=0;
589 4 if(rili_set[rili_setsign]>0)
590 4 rili_set[rili_setsign]-=1;
591 4 }
592 3 else if(flag==3)
593 3 {
594 4 flag=0;
595 4 rili_setsign++;
596 4 if(rili_setsign==3)
597 4 rili_setsign=0;
598 4 }
599 3 else if(flag==4)
600 3 {
601 4 flag=0;
602 4 rili_set[rili_setsign]+=10;
603 4 }
604 3 else if(flag==5)
605 3 {
606 4 rilidis();
607 4 flag=6;
608 4 }
609 3 if(rili_setsign==0||rili_setsign==1)
610 3 {
611 4 if(rili_set[rili_setsign]>=100)
C51 COMPILER V7.06 DDS 04/21/2009 14:42:16 PAGE 11
612 4 rili_set[rili_setsign]=0;
613 4 }
614 3 else if(rili_setsign==2)
615 3 {
616 4 if(rili_set[rili_setsign]>12||rili_set[rili_setsign]<1)
617 4 rili_set[rili_setsign]=1;
618 4 }
619 3 }
620 2 rili_set[0]=rili_set[1]=0;
621 2 rili_set[2]=1;
622 2 sum=0;
623 2 key=4;
624 2 clrscreen();
625 2 }
626 1 }
627
628
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 4644 ----
CONSTANT SIZE = 2151 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 24 97
IDATA SIZE = 48 ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -