send8000(add_com_11.0592m).lst

来自「基于89c2051开发的ptr8000一对多无线通信程序.」· LST 代码 · 共 448 行 · 第 1/2 页

LST
448
字号
 207   2        triggle=1;
 208   2        comsbuf[13]=P3;
 209   2        RLED=0;
 210   2       }
 211   1      }
 212          
 213          void Ptimer1(void) interrupt 3 using 1
 214          {
 215   1              TH1=(65536-46080)/256;  /* Fosc=733728MHz/4=1.8432MHz */
 216   1              TL1=(65536-46080)%256;  /* 50ms timer interrupt */
 217   1              TR1=1;
 218   1              if(++tim_cnt==20)
 219   1              {
 220   2                      tim_cnt=0;
 221   2                      Flag_scd=1;
 222   2                      if(tim_scd++==60)
 223   2                      {
 224   3                              tim_scd=0;
 225   3                              if(tim_mnt++==60)
 226   3                              {
 227   4                                      tim_mnt=0;
 228   4                                      if(tim_hur++==24) tim_hur=0;
 229   4                              }
 230   3                      }
 231   2              }
 232   1      }
 233          
 234          
 235          /************************************************************************************************/
 236          main()
 237          {       
 238   1              uchar i;
C51 COMPILER V7.06   SEND8000_ADD_COM_11_0592M_                                            01/19/2007 16:36:53 PAGE 5   

 239   1              for(i=0;i<4;i++) comsbuf[i]=TX_ADDRESS[i];
 240   1              comsbuf[4]=RX_ADDRESS_0;
 241   1              comsbuf[5]=RX_ADDRESS_1;
 242   1              comsbuf[6]=RX_ADDRESS_2;
 243   1              comsbuf[7]=RX_ADDRESS_3;
 244   1              comsbuf[8]=0xff;
 245   1              comsbuf[9]=0xd7;
 246   1              comsbuf[10]=0x06;
 247   1              comsbuf[11]='S';
 248   1              comsbuf[14]=0x00;
 249   1              comsbuf[15]='E';
 250   1      
 251   1              /*IO口模式设置00准双向;01推挽;10高阻输入;11开漏 */
 252   1              //P0M1=0x00;    /* P0M1: 00000000   键盘 双向*/
 253   1              //P0M2=0x0F;    /* P0M2: 00001111   LED  推挽*/
 254   1              //P1M1=0x2C;    /* P1M1: 00101100   P1.2/P1.3配置为开漏,外接上拉电阻;P1.5(RST)仅能为输入(高阻);*/
 255   1              //P1M2=0x0C;    /* P1M2: 00001100   中断1,串口为准双向;*/
 256   1              //P2M1=0x00;    /* P2M1: 00000000   */
 257   1              //P2M2=0x00;    /* P2M2: 00000000   */
 258   1              //P3M1=0x00;    /* IO口模式设置: 准双向口00,使用内部时钟 */
 259   1              //P3M2=0x00;
 260   1              
 261   1              //P0=0xFF;      /* 初化P0口 */
 262   1              //P1=0xFF;                      
 263   1              //P2=0xFF;      /*  */
 264   1              //P3=0xFF;      /*  */
 265   1                                                      
 266   1              //DIVM=2;       /* 降低工作频率,以便程序移植 */
 267   1              TR0   = 1;
 268   1          IE    = 0x82;          //Enable timer0.
 269   1      
 270   1              uart_init();    /* 串口初始化9600BPS */
 271   1              Spi_init();                             /* 初始化SPI端口 */
 272   1      
 273   1              ChangeMode(Standby);    /* nRF905进入待机SPI通讯模式 */
 274   1              //Delayus(1000);
 275   1              Delayms(1);
 276   1              Config905();                    /* 配置nRF905 */
 277   1                                      
 278   1              //TMOD|=0x10;                           /* Timer1 mode set Mode1 */
 279   1              //TH1=(65536-46080)/256;        /* Fosc=1.8432MHz,50ms timer interrupt */
 280   1              //TL1=(65536-46080)%256;
 281   1              //ET1=1;TR1=1;
 282   1              //EA=1;
 283   1              
 284   1              //eeprom_read(E2ADRSYS,Databuf,16);     /* 读取本系统地址及参数 */
 285   1              //ADDRESS = BUFADR;
 286   1              //if(ADDRESS==0xFF)     /* 地址为0xFF时,初始化地址为1 */
 287   1              //{
 288   1              //      BUFADR = ADDRESS = 0x01;        /* 本系统地址存储为0x01 */
 289   1              //      for(i=1;i<16;i++)Databuf[i]=i;
 290   1              //      eeprom_write(E2ADRSYS,Databuf,16);      /* 存储本系统地址及参数 */
 291   1              //}
 292   1              //mscom_snd(Databuf,16);
 293   1      
 294   1              RF905_Read(RC,Databuf);
 295   1              //mscom_snd(Databuf,16);
 296   1              ChangeMode(RXMode);             /**/
 297   1      
 298   1              while(1)
 299   1              {       
 300   2                      while(RF_DR && RF_AM)
C51 COMPILER V7.06   SEND8000_ADD_COM_11_0592M_                                            01/19/2007 16:36:53 PAGE 6   

 301   2                      {
 302   3                              ChangeMode(Standby);
 303   3                              Delayms(1);
 304   3                              RF905_Read(RRP,Databuf);
 305   3                              ChangeMode(RXMode);     
 306   3                              //Delayus(300);
 307   3                              //Delayms(1);
 308   3                              //mscom_snd(Databuf,16);
 309   3                  if(Databuf[15]=='E' && Databuf[14]==0x00 && Databuf[11]=='S')
 310   3                              {
 311   4                   triggle1=1;
 312   4                              }
 313   3                      }
 314   2              if(triggle1)
 315   2              {
 316   3               //triggle=0;
 317   3               triggle1=0;
 318   3                       ChangeMode(TXMode);    
 319   3                       //Delayus(3100);
 320   3                       Delayms(3);
 321   3                       RF905_Write(WTA,TX_ADDRESS);
 322   3                       //RF905_Write(WTP,Databuf);    
 323   3                       RF905_Write(WTP,comsbuf);      
 324   3                       ChangeMode(TXData);    
 325   3                       //mscom_snd(TX_ADDRESS,4);
 326   3                       //mscom_snd(Databuf,16);
 327   3                       //Delayus(650);                        // ensure nRF905 have began TX 
 328   3                       //Delayms(2);
 329   3                       while(!RF_DR);
 330   3                       ChangeMode(RXMode);                    
 331   3              }
 332   2              if(trigglecom)
 333   2              {
 334   3               trigglecom=0;
 335   3                       mscom_snd(comsbuf,16);
 336   3              }
 337   2                      /*
 338   2              switch (URT_rcv)
 339   2                      {
 340   2                       case 0x00:
 341   2                              for(i=0;i<16;i++) Databuf[i]=i;
 342   2                              //eeprom_write(E2ADRSYS,Databuf,16);
 343   2                              //eeprom_read(E2ADRSYS,Databuf,16);
 344   2                              //mscom_snd(Databuf,16);
 345   2                              URT_rcv =0x10;
 346   2                              break;
 347   2                       case 0x01:
 348   2                              ChangeMode(Standby);
 349   2                              Delayus(3100);
 350   2                              RF905_Read(RC,Databuf);
 351   2                              ChangeMode(RXMode);             
 352   2                              mscom_snd(Databuf,16);
 353   2                              URT_rcv =0x10;
 354   2                              break;
 355   2                       case 0x02:
 356   2                              ChangeMode(TXMode);     
 357   2                              Delayus(3100);
 358   2                              RF905_Write(WTA,TX_ADDRESS);
 359   2                              RF905_Write(WTP,Databuf);       
 360   2                              ChangeMode(TXData);     
 361   2                              //mscom_snd(TX_ADDRESS,4);
 362   2                              //mscom_snd(Databuf,16);
C51 COMPILER V7.06   SEND8000_ADD_COM_11_0592M_                                            01/19/2007 16:36:53 PAGE 7   

 363   2                              Delayus(650);                   // ensure nRF905 have began TX 
 364   2                              ChangeMode(RXMode);                     
 365   2                              URT_rcv =0x10;
 366   2                              break;
 367   2                       case 0x03:
 368   2                              ChangeMode(Standby);
 369   2                              RF905_Read(RTP,Databuf);
 370   2                              Delayus(650);
 371   2                              ChangeMode(RXMode);             
 372   2                              mscom_snd(Databuf,16);
 373   2                              URT_rcv =0x10;
 374   2                              break;
 375   2                       case 0x04:
 376   2                              ChangeMode(Standby);    
 377   2                              RF905_Read(RRP,Databuf);
 378   2                              Delayus(650);
 379   2                              ChangeMode(RXMode);             
 380   2                              //mscom_snd(Databuf,16);
 381   2                              URT_rcv =0x10;
 382   2                              break;
 383   2                   case 0x05:
 384   2                              for(i=0;i<16;i++) Databuf[i]=15-i;
 385   2                              //eeprom_write(E2ADRSYS,Databuf,16);
 386   2                              //eeprom_read(E2ADRSYS,Databuf,16);
 387   2                              //mscom_snd(Databuf,16);
 388   2                              URT_rcv =0x10;
 389   2                              break;
 390   2               case 0x06:
 391   2                              for(i=0;i<16;i++) Databuf[i]=0x06;
 392   2                              //eeprom_write(E2ADRSYS,Databuf,16);
 393   2                              //eeprom_read(E2ADRSYS,Databuf,16);
 394   2                              //mscom_snd(Databuf,16);
 395   2                              URT_rcv =0x10;
 396   2                              break;
 397   2                       case 0x07:
 398   2                              ChangeMode(PowerDown);
 399   2                              URT_rcv =0x10;
 400   2                       default:
 401   2                              ChangeMode(RXMode);                     
 402   2                              URT_rcv =0x10;
 403   2                              break;
 404   2                      }
 405   2              */
 406   2              }
 407   1      }       
 408          
 409          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    639    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      6       5
   IDATA SIZE       =     65    ----
   BIT SIZE         =      4    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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