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

📄 time.lst

📁 用于GPRS远程电力抄表系统中采集器端的程序
💻 LST
字号:
C51 COMPILER V7.50   TIME                                                                  07/19/2006 10:05:17 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE TIME
OBJECT MODULE PLACED IN time.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE time.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include "SM89516A.h"
   2          #include "process.h"
   3          #include "io.h"
   4          #include "time.h"
   5          #include "datasvr.h"
   6          #include "ioport.h"
   7          #include "recframe.h"
   8          #include "common.h"
   9          
  10          //uchar idata delay_1ms;
  11          uchar idata delay_10ms;
  12          uchar idata delay_20ms;
  13          uchar idata delay_25ms;
  14          uchar idata delay_30ms;
  15          //uchar idata delay_100ms;
  16          uint  idata delay_1s;
  17          uint  idata delay_10s;
  18          unsigned long idata delay_10min;
  19          
  20          
  21          uchar bdata alarm0;
  22          sbit cut=alarm0^6;
  23          sbit open=alarm0^7;
  24          uchar bdata alarm1;
  25          uchar bdata alarm2;
  26          uchar bdata alarm3;
  27          
  28          
  29          uchar xdata Curtime[6]; //校时
  30          
  31          /************************************************************/
  32          /*函数名:time_svr2
  33          /*描述:定时2中断,25ms为一个时隙
  34          /*输入:
  35          /*输出:无
  36          /************************************************************/
  37          void time_svr2(void) interrupt 5
  38          {
  39   1          static uchar i;
  40   1              TF2=0;                                                  // 溢出标志必须由软件清零
  41   1              EXF2=0;                                                 // 捕获标志必须由软件清零
  42   1              i++;    
  43   1          if(i==h_value)
  44   1              {
  45   2                      i=0;
  46   2                      TR2=0;
  47   2                      TI=1;
  48   2              }
  49   1              
  50   1      }
  51          
  52          
  53          /************************************************************/
  54          /*函数名:time_svr0
  55          /*描述:定时0中断,定时1ms
C51 COMPILER V7.50   TIME                                                                  07/19/2006 10:05:17 PAGE 2   

  56          /*输入:
  57          /*输出:无
  58          /************************************************************/
  59          void time_svr0(void) interrupt 1
  60          {
  61   1              static uchar i=0; 
  62   1              static unsigned int j=0;
  63   1      
  64   1      
  65   1              TH0=0xfc;
  66   1              TL0=0x18;
  67   1              if(TimeStart)
  68   1                      delay_30ms++;    
  69   1      //  delay_1ms++;
  70   1          delay_10ms++;
  71   1              delay_20ms++;
  72   1              delay_25ms++;
  73   1              delay_1s++;
  74   1              delay_10s++;
  75   1              delay_10min++;
  76   1              j++;
  77   1      
  78   1      
  79   1              if(j>500)
  80   1              {
  81   2                      j=0;
  82   2                      P3_3=!P3_3; 
  83   2              }
  84   1              switch(i)
  85   1          {
  86   2                 case 0: 
  87   2                                         sccode=0xFE;
  88   2                                         port1=sccode; 
  89   2                                         i++;
  90   2                         break;
  91   2                         case 1:
  92   2                                         io_Scan1();
  93   2                         io_process(0); 
  94   2                         i++;                            
  95   2                         break;
  96   2                         case 2:
  97   2                                         sccode=0xFd;
  98   2                                         port1=sccode; 
  99   2                                         i++;
 100   2                         break;
 101   2                 case 3: 
 102   2                         io_Scan2();
 103   2                         io_process(4);
 104   2                         i++;                            
 105   2                         break;
 106   2                 case 4:
 107   2                                         sccode=0xFb;
 108   2                                         port1=sccode;        
 109   2                                         i++;
 110   2                         break;
 111   2                 case 5: 
 112   2                         io_Scan3();
 113   2                         io_process(8);
 114   2                         i++;
 115   2                         break;
 116   2                 case 6:
 117   2                                         sccode=0xF7;
C51 COMPILER V7.50   TIME                                                                  07/19/2006 10:05:17 PAGE 3   

 118   2                                         port1=sccode; 
 119   2                                         i++;
 120   2                         break;
 121   2                         case 7: 
 122   2                         io_Scan4();
 123   2                         io_process(12);
 124   2                         i=0;
 125   2                         break;           
 126   2              }
 127   1               
 128   1      }
 129          
 130          /************************************************************/
 131          /*函数名:extern_in0
 132          /*描述:外部中断0
 133          /*输入:
 134          /*输出:无
 135          /************************************************************/
 136          void extern_in0() interrupt 0
 137          {
 138   1              uchar radd_end;
 139   1              cut=1;
 140   1          //data_sav();
 141   1              R_block(WPAGE0,RPAGE0,i2c_addr_addflag,&radd_end,1);            
 142   1      
 143   1              switch(radd_end)
 144   1              {
 145   2                      case 0: 
 146   2                              W_block(WPAGE0,i2c_addr_data,&sum[0][0],96);            
 147   2                              break;
 148   2                      case 1: 
 149   2                              W_block(WPAGE1,i2c_addr_data,&sum[0][0],96);             
 150   2                              break;
 151   2              }
 152   1      }
 153          
 154          /************************************************************/
 155          /*函数名:time_svr
 156          /*描述:定时进行数据处理
 157          /*输入:
 158          /*输出:无
 159          /************************************************************/
 160          void time_svr()
 161          {
 162   1              uchar time_end;
 163   1      
 164   1              if(delay_20ms>=24) 
 165   1          {
 166   2                      delay_20ms=0;   
 167   2      
 168   2                      WDTKEY=0x1E;
 169   2                      WDTKEY=0xE1;
 170   2                      WDTC|=0x20;
 171   2              WDTKEY=0xE1;
 172   2              WDTKEY=0x1E;
 173   2      
 174   2          } 
 175   1      /*   
 176   1              if(delay_100ms>=105) 
 177   1          {           
 178   1                      delay_100ms=0;
 179   1      
C51 COMPILER V7.50   TIME                                                                  07/19/2006 10:05:17 PAGE 4   

 180   1                      brary07=P0_0;
 181   1                      brary06=P0_1;
 182   1                      brary05=P0_2;
 183   1                      brary04=P0_3;
 184   1                      brary03=P0_4;
 185   1                      brary02=P0_5;
 186   1                      brary01=P0_6;
 187   1                      brary00=P0_7;
 188   1      
 189   1                      brary17=P2_0;
 190   1                      brary16=P2_1;
 191   1                      brary15=P2_2;
 192   1                      brary14=P2_3;
 193   1                      brary13=P2_4;
 194   1                      brary12=P2_5;
 195   1                      brary11=P2_6;
 196   1                      brary10=P2_7;
 197   1      
 198   1             //ioscan();
 199   1              
 200   1           } 
 201   1      */ 
 202   1          
 203   1              if(delay_1s>=1007)   
 204   1          {
 205   2                      delay_1s=0;     
 206   2      
 207   2              ds1302read();
 208   2                  R_block(WPAGE0,RPAGE0,i2c_addr_timeflag,&time_end,1); 
 209   2                      
 210   2              if(time_end)
 211   2                              R_block(WPAGE0,RPAGE0,i2c_addr_time,Curtime,6); 
 212   2              else
 213   2                  R_block(WPAGE1,RPAGE1,i2c_addr_time,Curtime,6); 
 214   2      /*
 215   2              if(rdtime[0]<Curtime[0]||rdtime[1]<Curtime[1]||rdtime[2]<Curtime[2])
 216   2                 open=1;
 217   2                      else
 218   2                         open=0;
 219   2      */      
 220   2                      if(rdtime[0]>Curtime[0])
 221   2                      {
 222   3                              open=0;
 223   3                              alarm_ac=0;
 224   3                      }
 225   2                      else if(rdtime[0]<Curtime[0])
 226   2                              open=1;
 227   2                      else
 228   2                      {
 229   3                              if(rdtime[1]>Curtime[1])
 230   3                              {
 231   4                                      open=0;
 232   4                                      alarm_ac=0;
 233   4                              }
 234   3                              else if(rdtime[1]<Curtime[1])
 235   3                                      open=1;
 236   3                              else
 237   3                              {
 238   4                                      if(rdtime[2]>Curtime[2])
 239   4                                      {
 240   5                                              open=0;
 241   5                                              alarm_ac=0;
C51 COMPILER V7.50   TIME                                                                  07/19/2006 10:05:17 PAGE 5   

 242   5                                      }
 243   4                                      else if(rdtime[2]<Curtime[2])
 244   4                                              open=1;
 245   4                                      else
 246   4                                      {
 247   5                                              open=0;
 248   5                                              alarm_ac=0;
 249   5                                      }
 250   4                              }
 251   3                      }
 252   2                                        
 253   2              }
 254   1      
 255   1          
 256   1              if(delay_10s>=10009)   
 257   1          {
 258   2                      delay_10s=0;
 259   2      
 260   2              data_sav();
 261   2      
 262   2          }
 263   1      
 264   1      
 265   1      
 266   1      }
 267          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    651    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =      6    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      8       2
   IDATA SIZE       =     12    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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