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

📄 main.lst

📁 C8051F020的全面应用,包括两个UART口、SPI、I2C
💻 LST
📖 第 1 页 / 共 2 页
字号:
 173   2                      {
 174   2                              IsTxBusy = TRUE;
 175   2                              SBUF = *(BYTE *)(pTX_Buf + PacketIdx);
 176   2                              PacketIdx ++;
 177   2                      }
C51 COMPILER V7.10   MAIN                                                                  06/05/2006 11:06:47 PAGE 4   

 178   2                      else
 179   2                      {
 180   2                              IsTxBusy = FALSE;
 181   2                              SBUF0 = 0x55;
 182   2                      }*/
 183   2          }
 184   1      }
 185          
 186          void serial1_int(void) interrupt 20 using 2
 187          {
 188   1              if((SCON1&0x01)==1)
 189   1          {
 190   2              SCON1 &= 0xFE;
 191   2                      if(Com1SaveEn)
 192   2                      {
 193   3                              Com1RecBuf[Com1RecBufIdx++] = SBUF1;    
 194   3                              if(Com1RecBufIdx==RecBufLen)
 195   3                                      {
 196   4                                              Com1SaveEn = 0;
 197   4                                              Com1RecComplete = 1;
 198   4                                      }       
 199   3                      }
 200   2                      else
 201   2                      {
 202   3                              Com1RecBuf[0] = Com1RecBuf[1];
 203   3                              Com1RecBuf[1] = SBUF1;
 204   3                              if(Com1RecBuf[0]==0xEB&&Com1RecBuf[1]==0x90)
 205   3                                      {
 206   4                                              Com1SaveEn = 1;
 207   4                                              Com1RecBufIdx = 2;
 208   4                                      }
 209   3                      }
 210   2          }
 211   1          if((SCON1&0x02)==1)
 212   1          {
 213   2              SCON1 &= 0xFD;
 214   2      /*              if (PacketIdx < TxPacketLen)    // Downlink Packet is unique to 32 Bytes.
 215   2                      {
 216   2                              IsTxBusy = TRUE;
 217   2                              SBUF = *(BYTE *)(pTX_Buf + PacketIdx);
 218   2                              PacketIdx ++;
 219   2                      }
 220   2                      else
 221   2                      {
 222   2                              IsTxBusy = FALSE;
 223   2                              SBUF1 = 0x55;
 224   2                      }*/
 225   2          }
 226   1      }
 227          
 228          /*process data received from com0 or com1*/
 229          void ComDataProcess(uchar *ComRecDataAdr, uchar *ComSendDataAdr)
 230          {
 231   1              uchar idata i,temp;
 232   1              uchar idata *point;
 233   1              uchar idata PlanNum, StageNum, TotalStage;
 234   1      
 235   1              uint idata PageAdr;
 236   1              uchar idata Colum, length;
 237   1      
 238   1              point = ComRecDataAdr;
 239   1              for(i=0;i<RecBufLen;i++)
C51 COMPILER V7.10   MAIN                                                                  06/05/2006 11:06:47 PAGE 5   

 240   1              {
 241   2                      ComProcessBuf[i] = *(point+i);
 242   2              }
 243   1      
 244   1              temp = ComProcessBuf[2];
 245   1              for(i=3;i<RecBufLen-1;i++)
 246   1              {
 247   2                      temp ^= ComProcessBuf[i];
 248   2              }
 249   1      
 250   1              if(temp==ComProcessBuf[RecBufLen-1])  /*valid data frame, process data received*/
 251   1              {
 252   2                      switch (ComProcessBuf[2])
 253   2                      {
 254   3                      case WritePlans:        /*write plans to Flash*/
 255   3                              RunMode = IsSetMode;
 256   3                              PlanNum = ComProcessBuf[3];
 257   3                              TotalStage = ComProcessBuf[4];
 258   3                              StageNum = ComProcessBuf[5];
 259   3                              PageAdr = PlanStartAddr + (uint)(PlanNum*10) + (uint)(StageNum/10);
 260   3                              Colum = (StageNum%10)*25;
 261   3                              length = 25;
 262   3                              FlashWE();
 263   3                              FlashPW(PageAdr, Colum, length, ComProcessBuf+6);
 264   3                              if(StageNum==0x00)
 265   3                              {
 266   4                                      PageAdr = PlanStartAddr + (uint)(PlanNum*10);
 267   4                                      Colum = 250;
 268   4                                      length = 1;
 269   4                                      *point = TotalStage;
 270   4                                      FlashPW(PageAdr, Colum, length, point);
 271   4                              }
 272   3                              break;
 273   3              
 274   3                      case ReadPlans: /*read plans from Flash and send*/
 275   3                              PlanNum = ComProcessBuf[3];
 276   3                              StageNum = ComProcessBuf[5];
 277   3                              PageAdr = PlanStartAddr + (uint)(PlanNum*10) + (uint)(StageNum/10);
 278   3                              Colum = (StageNum%10)*25;
 279   3                              length = 25;
 280   3                              FlashWE();
 281   3                              FlashRDB(PageAdr, Colum, length, ComSendDataAdr+6);
 282   3                              for(i=0;i<6;i++)
 283   3                              {
 284   4                                      *(ComSendDataAdr+i) = *(ComProcessBuf+i);
 285   4                              }
 286   3                              temp = *(ComSendDataAdr+2);
 287   3                              for(i=3;i<RecBufLen-1;i++)
 288   3                              {
 289   4                                      temp ^= *(ComSendDataAdr+i);
 290   4                              }
 291   3                              *(ComSendDataAdr+RecBufLen-1) = temp;
 292   3                              if(Com0RecComplete)
 293   3                              {
 294   4                                      TI0 = 1;
 295   4                              }
 296   3                              if(Com1RecComplete)
 297   3                              {
 298   4                                      SCON1 |= 0x02;
 299   4                              }
 300   3                              break;
 301   3                      case WriteFaultTables:
C51 COMPILER V7.10   MAIN                                                                  06/05/2006 11:06:47 PAGE 6   

 302   3                              break;
 303   3                      case ReadFaultTables:
 304   3                              break;
 305   3                      case WriteUserInfo:
 306   3                              break;
 307   3                      case ReadUserInfo:
 308   3                              break;
 309   3                      case WriteHardwareInfo:
 310   3                              break;
 311   3                      case ReadHardwareInfo:
 312   3                              break;
 313   3                      case WriteRunInfo:
 314   3                              break;
 315   3                      case ReadRunInfo:
 316   3                              break;
 317   3                      case WriteCalender:
 318   3                              break;
 319   3                      case ReadCalender:
 320   3                              break;
 321   3                      case DelLog:
 322   3                              break;
 323   3                      case ReadLog:
 324   3                              break;
 325   3                      case WriteDatetoPlan:
 326   3                              break;
 327   3                      case WritePhasetoVehicleDect:
 328   3                              break;
 329   3                      default:
 330   3                              break;
 331   3                      }
 332   2              }
 333   1              else /*invalid data frame*/
 334   1              {
 335   2              }
 336   1      }
 337          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1839    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =    424    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      34
   IDATA SIZE       =   ----      21
   BIT SIZE         =      6       2
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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