📄 vfd.lst
字号:
548 6 ALARM_ON_OFF_1&=ALARM_ON_OFF;
549 6 }
550 5 else
551 5 { ALARM_ON_OFF=1;
552 6 ALARM_ON_OFF<<=(DISP_SW-2);
553 6 ALARM_ON_OFF_1|=ALARM_ON_OFF;
554 6 }
555 5
556 5 }
557 4 if(DISP_SW>9)
558 4 { ALARM_ON_OFF=ALARM_ON_OFF_2;
559 5 ALARM_ON_OFF>>=(DISP_SW-10);
560 5 if(ALARM_ON_OFF^0)
561 5 { ALARM_ON_OFF=1;
562 6 ALARM_ON_OFF<<=(DISP_SW-10);
563 6 ALARM_ON_OFF=~ALARM_ON_OFF;
564 6 ALARM_ON_OFF_2&=ALARM_ON_OFF;
565 6 }
566 5 else
567 5 { ALARM_ON_OFF=1;
568 6 ALARM_ON_OFF<<=(DISP_SW-10);
569 6 ALARM_ON_OFF_2|=ALARM_ON_OFF;
570 6 }
571 5 }
572 4 break;
573 4 case EDIT_BG_HOUR:
574 4 BG_HOUR=ALARM_ARRAY[DISP_SW-2][0];
575 4 BG_HOUR++;
576 4 if(BG_HOUR>=24)
577 4 BG_HOUR=0;
578 4 ALARM_ARRAY[DISP_SW-2][0]=BG_HOUR;
579 4 break;
580 4 case EDIT_BG_MINUTE:
581 4 BG_MINUTE=ALARM_ARRAY[DISP_SW-2][1];
582 4 BG_MINUTE++;
583 4 if(BG_MINUTE>60)
584 4 BG_MINUTE=0;
585 4 ALARM_ARRAY[DISP_SW-2][1]=BG_MINUTE;
586 4 break;
587 4 case EDIT_END_HOUR:
588 4 END_HOUR=ALARM_ARRAY[DISP_SW-2][2];
589 4 END_HOUR++;
590 4 if(END_HOUR>=24)
591 4 END_HOUR=0;
592 4 ALARM_ARRAY[DISP_SW-2][2]=END_HOUR;
593 4 break;
594 4 case EDIT_END_MINUTE:
595 4 END_MINUTE=ALARM_ARRAY[DISP_SW-2][3];
596 4 END_MINUTE++;
C51 COMPILER V5.02, VFD 11/07/00 14:15:37 PAGE 10
597 4 if(END_MINUTE>60)
598 4 END_MINUTE=0;
599 4 ALARM_ARRAY[DISP_SW-2][3]=END_MINUTE;
600 4 break;
601 4 };//END SWITCH(TIME_EDIT)
602 3 break;
603 3 case KEY_EN_ALARM:
604 3 ALARM_ENABLE=~ALARM_ENABLE;
605 3 break;
606 3 case KEY_ALARM_STOP:
607 3 ALARM_ON=0;
608 3 break;
609 3 default:
610 3 break;
611 3 };//END OF SWITCH(bKEY)
612 2 };//END IF(NO_2_SWIP)
613 1 }//END OF KEY PROCESS
614 void ALARM_MAKE(void)
615 { BYTE TEMP99;
616 1 if(ALARM_ENABLE)
617 1 if(ALARM_ON)
618 1 { ALARM_OUT1=1;
619 2 TEMP99=SECOND&0X01;
620 2 if(TEMP99)
621 2 if(COUNT1)
622 2 ALARM_OUT2=1;
623 2 else ALARM_OUT2=0;
624 2 }
625 1 else
626 1 { ALARM_OUT1=0;
627 2 ALARM_OUT2=0;
628 2 };
629 1 }//END OF ALARM_MAKE
630
631 BYTE GET_KEY_VAL(void)
632 { BYTE TEMP66=0;
633 1 if(KEY_ARRAY[0])
634 1 { while(KEY_ARRAY[0])
635 2 { TEMP66++;
636 3 KEY_ARRAY[0]>>=1;
637 3 };
638 2 };
639 1 if(KEY_ARRAY[1])
640 1 { TEMP66=8;
641 2 while(KEY_ARRAY[1])
642 2 { TEMP66++;
643 3 KEY_ARRAY[1]>>=1;
644 3 };
645 2 };
646 1 if(KEY_ARRAY[2])
647 1 { TEMP66=16;
648 2 while(KEY_ARRAY[2])
649 2 { TEMP66++;
650 3 KEY_ARRAY[2]>>=1;
651 3 };
652 2 };
653 1 return(TEMP66);
654 1 }
655 void DELAY_TIME(BYTE TEMP44)
656 {
657 1 BYTE TEMP45;
658 1 for(TEMP44=0;TEMP44<120;TEMP44++)
659 1 for(TEMP45=0;TEMP45<249;TEMP45++);
660 1 }
661 void DELAY_100uS(void)
662 {
663 1 BYTE X;
C51 COMPILER V5.02, VFD 11/07/00 14:15:37 PAGE 11
664 1 X = 0;
665 1 X = 0;
666 1 for(X=0;X<30;X++)
667 1 { ; ; }
668 1 }
669 BYTE GET_IR_KEY(void)
670 { BYTE data I,J,bCOUNT;
671 1 BYTE K;
672 1 //9mS low 4.5mS high (NEC FORMATER)
673 1 for ( bCOUNT = 0 ; !IR ; bCOUNT++ ) DELAY_100uS();
674 1 if ( ( bCOUNT > 93 ) || ( bCOUNT < 87) ) return(KEY_NO_KEY);
675 1
676 1 for ( bCOUNT = 0 ; IR ; bCOUNT++ ) DELAY_100uS();
677 1 if ( bCOUNT > 48 ) return(KEY_NO_KEY);
678 1
679 1 //contiun key 9mS low 2.25mS high 0.56mS low
680 1 if ( ( bCOUNT > 19 ) && ( bCOUNT<24) )
681 1 { for ( bCOUNT = 0 ; !IR ; bCOUNT++ ) DELAY_100uS();
682 2 if(bCOUNT>4||bCOUNT<2)
683 2 if ( ( mSECOND - PRE_mSECOND ) < 21)//IF TIME > 180mS KEY invalid
684 2 return(PRE_KEY);
685 2 }
686 1 //a new key 0 is low 0.56 high 0.56
687 1 // 1 is low 0.56 high 1.69
688 1
689 1 for ( bCOUNT = 0 ; !IR ; bCOUNT++ ) DELAY_100uS(); //TIME VALUE IS VALID
690 1 //READ IR KEY VALUE
691 1 for(K=0;K<4;K++)
692 1 {
693 2 J=0;
694 2 for(I=0;I<8;I++)
695 2 { for ( bCOUNT=0 ; (!IR)&&(bCOUNT<8) ; bCOUNT++ ) DELAY_100uS(); //BYPASS LOW SIGNAL
696 3 if(bCOUNT==0) //IT MAYBE CAUSE BY NOISE
697 3 {
698 4 I--;
699 4 continue;
700 4 }
701 3 for ( bCOUNT=0 ; IR && (bCOUNT<20); bCOUNT++ ) DELAY_100uS();
702 3 if(bCOUNT==0) //IT MAYBE CAUSE BY NOISE
703 3 {
704 4 I--;
705 4 continue;
706 4 }
707 3 J>>=1;
708 3 if(bCOUNT>=9) //bCOUNT>9 IS '1' bCOUNT<9 IS '0'
709 3 {
710 4 J|=0x80;
711 4 if(bCOUNT>20) return(KEY_NO_KEY);
712 4 }
713 3 }
714 2 IR_KEY_ARRAY[K]=J;
715 2 }
716 1
717 1 #ifdef CUSTOMER_CODE
if(IR_KEY_ARRAY[0]!=CUSTOMER_CODE1)
return(KEY_NO_KEY);
if(IR_KEY_ARRAY[1]^CUSTOMER_CODE1)
return(KEY_NO_KEY);
#endif
723 1 if(!(IR_KEY_ARRAY[3]^IR_KEY_ARRAY[4]))
724 1 return(KEY_NO_KEY);
725 1
726 1 switch(IR_KEY_ARRAY[3])
727 1 {
728 2 case IR_N1:
729 2 IR_KEY=KEY_N1;
730 2 break;
C51 COMPILER V5.02, VFD 11/07/00 14:15:37 PAGE 12
731 2 case IR_N2:
732 2 IR_KEY=KEY_N2;
733 2 break;
734 2 case IR_N3:
735 2 IR_KEY=KEY_N3;
736 2 break;
737 2 case IR_N4:
738 2 IR_KEY=KEY_N4;
739 2 break;
740 2 case IR_N5:
741 2 IR_KEY=KEY_N5;
742 2 break;
743 2 case IR_N6:
744 2 IR_KEY=KEY_N6;
745 2 break;
746 2 case IR_N7:
747 2 IR_KEY=KEY_N7;
748 2 break;
749 2 case IR_N8:
750 2 IR_KEY=KEY_N8;
751 2 break;
752 2 case IR_N9:
753 2 IR_KEY=KEY_N9;
754 2 break;
755 2 case IR_N10:
756 2 IR_KEY=KEY_N10;
757 2 break;
758 2 case IR_N10_PLUS:
759 2 IR_KEY=KEY_N10_PLUS;
760 2 break;
761 2 case IR_MODE:
762 2 IR_KEY=KEY_MODE;
763 2 break;
764 2 case IR_SET:
765 2 IR_KEY=KEY_SET;
766 2 break;
767 2 case IR_CHANGE:
768 2 IR_KEY=KEY_CHANGE;
769 2 break;
770 2 case IR_EN_ALARM:
771 2 IR_KEY=KEY_EN_ALARM;
772 2 break;
773 2 case IR_ALARM_STOP:
774 2 IR_KEY=KEY_ALARM_STOP;
775 2 break;
776 2 default:
777 2 IR_KEY=KEY_NO_KEY;
778 2 break;
779 2 };//END OF SWITCH(IR[3])
780 1 EX0=1;
781 1 PRE_KEY=IR_KEY;
782 1 IR_MARK=1;//IR DO NOT PROCESS
783 1 PRE_mSECOND=mSECOND;
784 1 }
C51 COMPILER V5.02, VFD 11/07/00 14:15:37 PAGE 13
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION timer0 (BEGIN)
0000 C0E0 PUSH ACC
0002 C0D0 PUSH PSW
0004 75D008 MOV PSW,#08H
; SOURCE LINE # 21
; SOURCE LINE # 22
0007 C28C CLR TR0
; SOURCE LINE # 23
0009 758CD8 MOV TH0,#0D8H
; SOURCE LINE # 24
000C 758AF0 MOV TL0,#0F0H
; SOURCE LINE # 25
000F D28C SETB TR0
; SOURCE LINE # 26
0011 7800 R MOV R0,#mSECOND
0013 06 INC @R0
; SOURCE LINE # 27
0014 E6 MOV A,@R0
0015 FF MOV R7,A
0016 B43202 CJNE A,#032H,?C0001
0019 C200 R CLR COUNT2
001B ?C0001:
; SOURCE LINE # 28
001B EF MOV A,R7
001C C3 CLR C
001D 9428 SUBB A,#028H
001F 4006 JC ?C0003
0021 EF MOV A,R7
0022 D3 SETB C
0023 943C SUBB A,#03CH
0025 4002 JC ?C0002
0027 ?C0003:
; SOURCE LINE # 29
0027 D200 R SETB COUNT1
0029 ?C0002:
; SOURCE LINE # 30
0029 EF MOV A,R7
002A D3 SETB C
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -