send8000(add_com_11.0592m_car).lst

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

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

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

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

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


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

C51 COMPILER V7.06   SEND8000_ADD_COM_11_0592M_CAR_                                        02/01/2007 15:32:19 PAGE 8   


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

⌨️ 快捷键说明

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