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

📄 lzkfunc.lst

📁 基于MST-G240128点阵液晶的 状态机机制 人机界面四级滚屏菜单 源代码 ,带时间片机制模拟操作系统
💻 LST
📖 第 1 页 / 共 5 页
字号:
 774                           if( EnterKeyPresCNT >= KeyPresEvtTime )// 20 times Key Press, 250mS.
 775                                     {               
 776                         if( EnterKeyPresEVT == 0 )
 777                         {
 778                            EnterKeyPresCNT = EnterKeyPresCNT - KeyPresEvtTime; 
 779                            EnterKeyPresEVT = 1;            
 780                         }
 781                                  }
 782                   }
 783                   else
 784                             {
 785                           if( EnterKeyPresCNT >= KeyPresEvtTime )// 20 times Key Press, 250mS.
 786                        EnterKeyPresEVT = 1;            
 787                           if( EnterKeyPresCNT >= KeyRelsEvtTime )  // 2  times Key Press, 25mS.   
 788                                       EnterKeyRelsEVT = 1;                   
 789          
 790                      EnterKeyPresCNT = 0;                             
 791                             }  /* End of Enter Key */
 792          
 793                   KeyScanIntvlCNT = 0;
C51 COMPILER V7.20   LZKFUNC                                                               09/04/2006 16:29:05 PAGE 14  

 794                }
 795          
 796                /*****************************************************************
 797                ***  CanBUS数据收发
 798                *****************************************************************/
 799          
 800             }
 801          
 802             /*****************************************************************
 803             *** TIMER 0 SLOT 3 
 804                  *** (1)直流励磁电压UF采样, 每周波32点(1.6kSPS);
 805                  *** (2)直流励磁电流IF采样,每周波32点(1.6kSPS);
 806             *****************************************************************/
 807                  /*
 808             uint8  xdata EmVoltSamCNT;
 809             INTUC  xdata EmVoltSamDATA[32];
 810             uint16 xdata EmVoltDATA;          // 励磁电压实测值   
 811          
 812                  uint8  xdata EmCurrSamCNT;
 813             INTUC  xdata EmCurrSamDATA[32];
 814             uint16 xdata EmCurrDATA;          // 励磁电流实测值   
 815          
 816             EmVoltSamEN
 817                  EmVoltSamOVER
 818                  EmCurrSamEN
 819                  EmCurrSamOVER
 820                  */
 821             if( TimSlotCNT == 3 )          // 32 * 0.625 = 20mS.
 822             {
 823                if( EmVoltSamEN == 1 )
 824                {
 825                   ADC0_CH_Setting(0x02);                        // AIN02 for UF.                     
 826                        AD0INT = 0;                                   // RST ADC Convert Complete Flag.
 827                        AD0INT = 0;                                   // Delay.
 828                   AD0BUSY = 1;                                  // Start ADC0    
 829                   while( AD0INT == 0 );                         // Wait for Convert Over
 830          
 831                   EmVoltSamDATA[EmVoltSamCNT].ucVAR[1] = ADC0H; // Get  High 8 Byte. 
 832                   EmVoltSamDATA[EmVoltSamCNT].ucVAR[0] = ADC0L; // Get  Low 8 Byte. 
 833                   EmVoltSamDATA[EmVoltSamCNT].uiVAR = EmVoltSamDATA[EmVoltSamCNT].uiVAR >> 4;
 834          
 835                   EmVoltSamCNT++;
 836                             if( EmVoltSamCNT >= 32 )
 837                             {
 838                                EmVoltSamCNT = 0;
 839                                EmVoltSamEN = 0;     // 等待程序重新使能            
 840                                EmVoltSamOVER = 1;   // 本轮采样结束标记,等待处理
 841                             }
 842                }               
 843          
 844                if( EmCurrSamEN == 1 )
 845                {
 846                   ADC0_CH_Setting(0x03);                        // AIN03 = IF or CurrRingEI.                     
 847                        AD0INT = 0;                                   // RST ADC Convert Complete Flag.
 848                        AD0INT = 0;                                   // Delay.
 849                   AD0BUSY = 1;                                  // Start ADC0    
 850                   while( AD0INT == 0 );                         // Wait for Convert Over
 851          
 852                   EmCurrSamDATA[EmCurrSamCNT].ucVAR[1] = ADC0H; // Get  High 8 Byte. 
 853                   EmCurrSamDATA[EmCurrSamCNT].ucVAR[0] = ADC0L; // Get  Low 8 Byte. 
 854                   EmCurrSamDATA[EmCurrSamCNT].uiVAR = EmCurrSamDATA[EmCurrSamCNT].uiVAR >> 4;
 855          
C51 COMPILER V7.20   LZKFUNC                                                               09/04/2006 16:29:05 PAGE 15  

 856                   EmCurrSamCNT++;
 857                             if( EmCurrSamCNT >= 32 )
 858                             {
 859                                EmCurrSamCNT = 0;
 860                                EmCurrSamEN = 0;     // 等待程序重新使能           
 861                                EmCurrSamOVER = 1;   // 本轮采样结束标记,等待处理
 862                             }
 863                }           
 864                          else
 865                          {
 866                             if( EmCurr_CurrRingSamEN )
 867                        {
 868                           ADC0_CH_Setting(0x03);           // AIN03 = CurrRingEI.                     
 869                                AD0INT = 0;                      // RST ADC Convert Complete Flag.
 870                                AD0INT = 0;                      // Delay.
 871                           AD0BUSY = 1;                     // Start ADC0    
 872                           while( AD0INT == 0 );            // Wait for Convert Over
 873          
 874                           EmCurr_CurrRingSamDATA[EmCurr_CurrRingSamCNT].ucVAR[1] = ADC0H; // Get  High 8 Byte. 
 875                           EmCurr_CurrRingSamDATA[EmCurr_CurrRingSamCNT].ucVAR[0] = ADC0L; // Get  Low  8 Byte. 
 876                           EmCurr_CurrRingSamDATA[EmCurr_CurrRingSamCNT].uiVAR = EmCurr_CurrRingSamDATA[EmCurr_CurrRingSamC
             -NT].uiVAR >> 4;
 877          
 878                           EmCurr_CurrRingSamCNT++;
 879                                     if( EmCurr_CurrRingSamCNT >= 32 )
 880                                     {
 881                                        EmCurr_CurrRingSamCNT = 0;
 882                                        EmCurr_CurrRingSamEN = 0;     // 等待程序重新使能           
 883                                        EmCurr_CurrRingSamOVER = 1;   // 本轮采样结束标记,等待处理
 884                                     }
 885                        }           
 886                          }    
 887             }
 888          
 889             /*****************************************************************
 890             *** TIMER 0 SLOT 4 
 891             *** (1)采样定子电压或功率因数电流环电流;
 892                  *** (2)电流采样,用于计算功率因数
 893             *****************************************************************/
 894                  /*
 895             uint8  xdata DUxDIxSamCNT;      // 采样计数
 896             INTUC  xdata DUxSamDATA[32];    // 
 897          
 898             INTUC  xdata DIxSamDATA[32];    // 
 899             DUxDIxSamOVER                   // 
 900                  */
 901             if( TimSlotCNT == 4 )                               // 
 902             {
 903                     /*****************************************************************
 904                     *** 功率因数电流环电流采样;
 905                     *****************************************************************/   
 906                if( PwrFact_CurrRingSamEN == 1 )
 907                     {
 908                             CurrRingEYSamTimSlotCNT++;              // 采样间隔4 * 0.625uS = 2.5mS.
 909                                  if( CurrRingEYSamTimSlotCNT >= 4 )
 910                                  {
 911                      CurrRingEYSamTimSlotCNT = 0;
 912          
 913                           ADC0_CH_Setting(0x00);               // AIN00 = AinDU or CurrRingEY.                     
 914                                AD0INT = 0;                          // RST ADC Convert Complete Flag.
 915                                AD0INT = 0;                          // Delay.
 916                           AD0BUSY = 1;                         // Start ADC0    
C51 COMPILER V7.20   LZKFUNC                                                               09/04/2006 16:29:05 PAGE 16  

 917                           while( AD0INT == 0 );                // Wait for Convert Over
 918                           PwrFact_CurrRingSamDATA[PwrFact_CurrRingSamTimCNT].ucVAR[1] = ADC0H;    // Get  High 8 Byte. 
 919                           PwrFact_CurrRingSamDATA[PwrFact_CurrRingSamTimCNT].ucVAR[0] = ADC0L;    // Get  Low  8 Byte. 
 920                           PwrFact_CurrRingSamDATA[PwrFact_CurrRingSamTimCNT].uiVAR = CurrRingEYDATA[CurrRingEYSamTimCNT].u
             -iVAR >> 4;
 921          
 922                           PwrFact_CurrRingSamTimCNT++;
 923                                     if( PwrFact_CurrRingSamTimCNT >= 8 )
 924                                     {
 925                                        PwrFact_CurrRingSamTimCNT = 0;
 926                                        PwrFact_CurrRingSamEN = 0;                  
 927                                        PwrFact_CurrRingSamOVER = 1;
 928                                     }
 929                        } // End of CurrRingEY Sampling.
 930                }
 931          
 932                     /*****************************************************************
 933                     *** (1)采样定子电压;
 934                          *** (2)采样定子电流;
 935                          ***    说明:优先级低于功率因数电流环方式;
 936                     *****************************************************************/   
 937                else           
 938                          {
 939                             if( PwrFact_DUxDIxSamEN == 1 )
 940                        {
 941                           ADC0_CH_Setting(0x00);                        // AIN00 = AinDU or CurrRingEY.                   
             -  
 942                                AD0INT = 0;                                   // RST ADC Convert Complete Flag.
 943                                AD0INT = 0;                                   // Delay.
 944                           AD0BUSY = 1;                                  // Start ADC0    
 945                           while( AD0INT == 0 );                         // Wait for Convert Over
 946                           DUxSamDATA[DUxDIxSamCNT].ucVAR[1] = ADC0H;    // Get  High 8 Byte. 
 947                           DUxSamDATA[DUxDIxSamCNT].ucVAR[0] = ADC0L;    // Get  Low  8 Byte. 
 948                           DUxSamDATA[DUxDIxSamCNT].uiVAR = DxSamDATA[DUxDIxSamCNT].uiVAR >> 4;
 949          
 950                           ADC0_CH_Setting(0x01);                        // AIN01 = AinDI.                     
 951                                AD0INT = 0;                                   // RST ADC Convert Complete Flag.
 952                                AD0INT = 0;                                   // Delay.
 953                           AD0BUSY = 1;                                  // Start ADC0    
 954                           while( AD0INT == 0 );                         // Wait for Convert Over
 955                           DIxSamDATA[DUxDIxSamCNT].ucVAR[1] = ADC0H;    // Get  High 8 Byte. 
 956                           DIxSamDATA[DUxDIxSamCNT].ucVAR[0] = ADC0L;    // Get  Low  8 Byte. 
 957                           DIxSamDATA[DUxDIxSamCNT].uiVAR = DIxSamDATA[DUxDIxSamCNT].uiVAR >> 4;
 958          
 959                           DUxDIxSamCNT++;
 960                                     if( DUxDIxSamCNT >= 32 )
 961                                     {
 962                                        DUxDIxSamCNT = 0;
 963                                        PwrFact_DUxDIxSamEN = 0;                  
 964                             

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -