⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vfd.lst

📁 upd16312 vfd panel c 原程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 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 + -