📄 dtt-110.lst
字号:
488 255,000,000,
489 000,000,000,
C51 COMPILER V7.50 DTT_110 06/29/2005 09:27:32 PAGE 9
490 000,255,000,
491 000,000,000,
492 000,000,255,
493 000,000,000,
494 255,255,000,
495 000,000,000,
496 255,000,255,
497 000,000,000,
498 000,255,255,
499 000,000,000,
500 255,255,255,
501 };
502
503 Uchar code Ptab5[][3]= {
504 255,000,000,
505 000,255,000,
506 000,000,255,
507 255,255,000,
508 255,000,255,
509 000,255,255,
510 255,255,255,
511 000,255,000,
512 000,000,255,
513 255,000,255,
514 255,000,000,
515 000,000,000,
516 000,255,000,
517 000,000,000,
518 000,000,255,
519 000,000,000,
520 255,000,000,
521 000,000,000,
522 000,255,000,
523 000,000,000,
524 000,000,255,
525 000,000,000,
526 255,255,000,
527 000,000,000,
528 255,000,255,
529 000,000,000,
530 000,255,255,
531 000,000,000,
532 255,255,255,
533 };
534
535 void Progrun(void) {
536 1 Uchar i;
537 1 if(Program<=7){ //固定七色
538 2 for(i=0; i<3; i++){
539 3 dmxdat[i] = Ptab1[Program][i];
540 3 dmxdat[3] = Maxout;
541 3 }
542 2 return;
543 2 }
544 1 if(Program==8){ //自动七色
545 2 for(i=0; i<3; i++){
546 3 dmxdat[i] = Ptab1[Step+1][i];
547 3 dmxdat[3] = Maxout;
548 3 }
549 2 dmxdat[4] = Fadetime;
550 2 Uspeed = Speed;
551 2 Step++;
C51 COMPILER V7.50 DTT_110 06/29/2005 09:27:32 PAGE 10
552 2 if(Step>=7)Step=0;
553 2 return;
554 2 }
555 1 if(Program==9){ // Auto R G B;
556 2 for(i=0; i<3; i++){
557 3 dmxdat[i] = Ptab1[Step+1][i];
558 3 dmxdat[3] = Maxout;
559 3 }
560 2 dmxdat[4] = Fadetime;
561 2 Uspeed = Speed;
562 2 Step++;
563 2 if(Step>=3)Step=0;
564 2 return;
565 2 }
566 1 if(Program==10){ //Auto Roll R G B;
567 2 for(i=0; i<3; i++){
568 3 dmxdat[i] = Ptab1[Step+1][i];
569 3 dmxdat[3] = Maxout;
570 3 }
571 2 dmxdat[4] = 50;
572 2 Uspeed = 5;
573 2 Step++;
574 2 if(Step>=3)Step=0;
575 2 return;
576 2 }
577 1 if(Program==11){ // G B P
578 2 for(i=0; i<3; i++){
579 3 dmxdat[i] = Ptab2[Step][i];
580 3 dmxdat[3] = Maxout;
581 3 }
582 2 dmxdat[4] = Fadetime;
583 2 Uspeed = Speed;
584 2 Step++;
585 2 if(Step>=3)Step=0;
586 2 return;
587 2 }
588 1 if(Program==12){ // Flash R G B
589 2 for(i=0; i<3; i++){
590 3 dmxdat[i] = Ptab3[Step][i];
591 3 dmxdat[3] = Maxout;
592 3 }
593 2 dmxdat[4] = Fadetime;
594 2 Uspeed = Speed;
595 2 Step++;
596 2 if(Step>=6)Step=0;
597 2 return;
598 2 }
599 1 if(Program==13){ //Flash 7 color
600 2 for(i=0; i<3; i++){
601 3 dmxdat[i] = Ptab4[Step][i];
602 3 dmxdat[3] = Maxout;
603 3 }
604 2 dmxdat[4] = Fadetime;
605 2 Uspeed = Speed;
606 2 Step++;
607 2 if(Step>=14)Step=0;
608 2 return;
609 2 }
610 1 if(Program==14){ //Roll 7 Color
611 2 for(i=0; i<3; i++){
612 3 dmxdat[i] = Ptab1[Step+1][i];
613 3 dmxdat[3] = Maxout;
C51 COMPILER V7.50 DTT_110 06/29/2005 09:27:32 PAGE 11
614 3 }
615 2 dmxdat[4] = 100;
616 2 Uspeed = 5;
617 2 Step++;
618 2 if(Step>=7)Step=0;
619 2 return;
620 2 }
621 1 if(Program==15){ //run all program
622 2 for(i=0; i<3; i++){
623 3 dmxdat[i] = Ptab5[Step][i];
624 3 dmxdat[3] = Maxout;
625 3 }
626 2 dmxdat[4] = Fadetime;
627 2 Uspeed = Speed;
628 2 Step++;
629 2 if(Step>=29)Step=0;
630 2 return;
631 2 }
632 1 }
633 Uchar Max(Uchar a,b){
634 1 Uint i;
635 1
636 1 i=a*b;
637 1 a=i;
638 1 b=i>>8;
639 1 if(b>0x80){
640 2 a=b+1;
641 2 return(a);
642 2 }
643 1 if(a>0x80){
644 2 a=b+1;
645 2 return(a);
646 2 }
647 1 return(a=b);
648 1 }
649 void Dmxrun(void) {
650 1 Uchar i;
651 1
652 1 if(Dmxmode==0){
653 2 for(i=0; i<3; i++){ dmxdat[i] = Ptab1[dmxdat[0]/32][i];}
654 2 return;
655 2 }
656 1 if(Dmxmode==1){
657 2 for(i=0; i<3; i++){ dmxdat[i] = Ptab1[dmxdat[0]/32][i];}
658 2 buf[3] = dmxdat[1];
659 2 return;
660 2 }
661 1 if(Dmxmode==2){
662 2 buf[0] = dmxdat[0];
663 2 buf[1] = dmxdat[1];
664 2 buf[2] = dmxdat[2];
665 2 buf[3] = 0;
666 2 return;
667 2 }
668 1 if(Dmxmode==3){
669 2 buf[0] = Max(dmxdat[0],dmxdat[3]);
670 2 buf[1] = Max(dmxdat[1],dmxdat[3]);
671 2 buf[2] = Max(dmxdat[2],dmxdat[3]);
672 2 buf[3] = 0;
673 2 return;
674 2 }
675 1 if(Dmxmode==4){
C51 COMPILER V7.50 DTT_110 06/29/2005 09:27:32 PAGE 12
676 2 buf[0] = Max(dmxdat[0],dmxdat[3]);
677 2 buf[1] = Max(dmxdat[1],dmxdat[3]);
678 2 buf[2] = Max(dmxdat[2],dmxdat[3]);
679 2 buf[3] = dmxdat[4];
680 2 return;
681 2 }
682 1 }
683
684 void Faderun(unsigned char fade){ unsigned char i;
685 1 if(Fclock==1){Fclock=0;
686 2 if(fade==0){ for(i=0;i<3;i++){out[i]=buf[i];}return;}
687 2 for(i=0;i<3;i++){
688 3 if(out[i]==buf[i])goto fade_n;
689 3 if(out[i]<buf[i]){out[i]=(buf[i]-out[i])/(fade+1)+1+out[i];goto fade_n;}
690 3 if(out[i]>buf[i]){out[i]=out[i]-((out[i]-buf[i])/(fade+1)+1);}
691 3 fade_n:;
692 3 }
693 2 }
694 1 }
695 Uchar Timerchk(void) {
696 1 Uchar i,t;
697 1 Uchar sw = 0;
698 1 Uchar sec,min,hr;
699 1 reset_3w();
700 1 wbyte_3w(0xbf); //以多字节突发方式读取时钟数据
701 1 sec = BCD2HEX(rbyte_3w()); //秒
702 1 min = BCD2HEX(rbyte_3w()); //分
703 1 hr = BCD2HEX(rbyte_3w()); //小时
704 1 reset_3w();
705 1 for(i=0; i<8; i++){
706 2 t = Timer[i*3+0x02];
707 2 if(t > 0){
708 3 t = Timer[i*3+0x00];
709 3 if(hr >= t){
710 4 t = Timer[i*3+0x01];
711 4 if(min >= t){
712 5 sw = Timer[i*3+0x02];
713 5 goto next;
714 5 }
715 4 }
716 3 return(sw);
717 3 }
718 2 next:;
719 2 }
720 1 return(0);
721 1 }
722 Uint Tempchk(void){
723 1 Uint t1;
724 1 float tmep;
725 1 t1 = Readtemp();
726 1 tmep = t1*0.0625;
727 1 t1 = tmep;
728 1 return(t1);
729 1 }
730
731 void main(void) {
732 1
733 1 Delay400Ms();
734 1 LcdReset();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -