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

📄 comm.lst

📁 SPWM三相波形发生器
💻 LST
📖 第 1 页 / 共 2 页
字号:
 180   3                              if((Volume>0x30)&&(Volume<=0x37))
 181   3                              {
 182   4                                      Volume = Volume - 1;
 183   4                                      tempbuf[8] = Volume;
 184   4                                      ModemSend(tempbuf);
 185   4                              }
 186   3                      }
 187   2              }
 188   1      }
 189          
 190          void int_ex1(void) interrupt DEF_INT_EX1
 191          {
 192   1              Vol_Rec = 1;
 193   1      }
 194          
 195          _IntAsync()             interrupt DEF_INT_ASYNC
 196          {
 197   1              if ( RI == 0 )
 198   1          {
 199   2                      TI = 0;
 200   2                  PUB_Async_TI = 1;
 201   2                      PUB_CountTT++;
 202   2                              if (PUB_CountTT >= DEF_COMMBUFF_LEN)    PUB_CountTT = 0;
 203   2                      if ( PUB_CountTH != PUB_CountTT )
 204   2                      {
 205   3      
 206   3                              PUB_ByteTT = PUB_CommBuffT[PUB_CountTT];
 207   3                              ACC = PUB_ByteTT;
 208   3                              TB8 = P;
 209   3                              if ( PUB_CommParity == DEF_PARITY_ODD )
 210   3                                      TB8 = TB8 ^ 0x01;
 211   3                              if ( PUB_CommParity == DEF_PARITY_2STOP )
 212   3                                      TB8 = 1;
 213   3                              SBUF = PUB_ByteTT;
 214   3                      }
 215   2          }
 216   1          else
 217   1          {
 218   2              RI = 0;
 219   2              PUB_Async_RecData = SBUF;
 220   2                      PUB_Async_RI = 0;
 221   2                      switch ( PUB_CommParity )
 222   2                      {
 223   3                              case DEF_PARITY_ODD:
 224   3                                      ACC = PUB_Async_RecData;
 225   3                                      if ( (P^0x01) == RB8  )
 226   3                                              PUB_Async_RI = 1;
 227   3                                      break;
 228   3                              case DEF_PARITY_EVEN:
 229   3                                      ACC = PUB_Async_RecData;
 230   3                                      if ( P == RB8  )
 231   3                                              PUB_Async_RI = 1;
 232   3                                      break;
 233   3                              case DEF_PARITY_2STOP:
 234   3                                      ACC = PUB_Async_RecData;
 235   3                                      if (  RB8 ==1 )
 236   3                                              PUB_Async_RI = 1;
 237   3                                      break;
 238   3                              default:
 239   3                                      PUB_Async_RI = 1;
 240   3                      }
 241   2      //              if ( PUB_Async_RI )
C51 COMPILER V7.08   COMM                                                                  12/25/2004 18:50:53 PAGE 5   

 242   2                      {
 243   3                              PUB_CommBuffR[PUB_CountRH] = PUB_Async_RecData;
 244   3                              PUB_CountRH++;
 245   3                              if (PUB_CountRH >= DEF_COMMBUFF_LEN-1)  PUB_CountRH = 0;
 246   3                      }
 247   2              }
 248   1      }
 249          
 250          void   _AsyncOpen(uint Baud, uchar Parity)
 251          {
 252   1              uchar THData;
 253   1          uchar cc;
 254   1      
 255   1          ES = 0;
 256   1              RI = TI =0;
 257   1      
 258   1          THData = 0xfe;
 259   1          switch ( Baud )
 260   1          {
 261   2                      case 19200:  THData = 0xfe; break;
 262   2                      case  9600:  THData = 0xfe; break;
 263   2                      case  4800:  THData = 0xfc; break;
 264   2                      case  2400:  THData = 0xf8; break;
 265   2                      case  1200:  THData = 0xf0; break;
 266   2          }
 267   1              if (Baud==19200)
 268   1                      PCON|= 0x80;
 269   1              else
 270   1                      PCON&= 0x7f;
 271   1          PUB_CommParity = Parity;
 272   1          TR1  = 0x00;
 273   1          cc = TMOD;
 274   1          TMOD = (cc & 0x0f) | 0x20;
 275   1      //    if (Parity==DEF_PARITY_NON)
 276   1                      SCON = 0x40;
 277   1      //    else 
 278   1      //              SCON = 0xc0;
 279   1          TR1  = 0x00;
 280   1          TH1  = THData;
 281   1          TL1  = TH1;
 282   1          REN  = 0x01;
 283   1          RI   = 0x00;
 284   1          TI   = 0x00;
 285   1          TR1  = 0x01;
 286   1          ES = 1;
 287   1          PUB_Async_RI = 0;
 288   1          PUB_Async_TI = 1;
 289   1      
 290   1              PUB_CountRH = PUB_CountRT = 0;
 291   1              PUB_CountTH = PUB_CountTT = 0;
 292   1          return;
 293   1      }
 294          
 295          bit  _AsyncPutTest(void)
 296          {
 297   1              return PUB_Async_TI;
 298   1      }
 299          
 300          void _AsyncPut(uchar ucValue)
 301          {
 302   1      
 303   1              if ( PUB_Async_TI == 0)
C51 COMPILER V7.08   COMM                                                                  12/25/2004 18:50:53 PAGE 6   

 304   1                      return;
 305   1              ES = 0;
 306   1              if (PUB_CountTH == PUB_CountTT)
 307   1              {
 308   2                      PUB_ByteTT = ucValue;
 309   2                      ACC = PUB_ByteTT;
 310   2                      TB8 = P;
 311   2                      if ( PUB_CommParity == DEF_PARITY_ODD )
 312   2                              TB8 = TB8 ^ 0x01;
 313   2                      if ( PUB_CommParity == DEF_PARITY_2STOP )
 314   2                              TB8 = 1;
 315   2                      SBUF = ucValue;
 316   2              }
 317   1      
 318   1              PUB_CommBuffT[PUB_CountTH] = ucValue;
 319   1              PUB_CountTH++;
 320   1              if (PUB_CountTH >= DEF_COMMBUFF_LEN)    PUB_CountTH = 0;
 321   1              if (PUB_CountTH == PUB_CountTT)
 322   1                      PUB_Async_TI = 0;
 323   1              ES = 1;
 324   1          return;
 325   1      }
 326          
 327          
 328          bit  _AsyncGetTest(void)
 329          {
 330   1              if ( PUB_CountRH != PUB_CountRT )
 331   1                      return 1;
 332   1              else
 333   1                      return 0;
 334   1      }
 335          
 336          uchar  _AsyncGet(void)
 337          {
 338   1              uchar cc;
 339   1      
 340   1              while ( PUB_CountRH == PUB_CountRT );
 341   1              ES = 0;
 342   1              cc = PUB_CommBuffR[PUB_CountRT];
 343   1              PUB_CountRT++;
 344   1              if (PUB_CountRT >= DEF_COMMBUFF_LEN-1)  PUB_CountRT = 0;
 345   1              ES = 1;
 346   1              return cc;
 347   1      }
 348          
 349          
 350          
 351          
 352          
 353          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    969    ----
   CONSTANT SIZE    =     61    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1       5
   IDATA SIZE       =     72    ----
   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 + -