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

📄 send8000(add_com).lst

📁 基于89c2051开发的ptr8000一对多无线通信程序.
💻 LST
📖 第 1 页 / 共 2 页
字号:
 207   2        comsbuf[13]=P3;
 208   2        RLED=0;
 209   2       }
 210   1      }
 211          
 212          void Ptimer1(void) interrupt 3 using 1
 213          {
 214   1              TH1=(65536-46080)/256;  /* Fosc=733728MHz/4=1.8432MHz */
 215   1              TL1=(65536-46080)%256;  /* 50ms timer interrupt */
 216   1              TR1=1;
 217   1              if(++tim_cnt==20)
 218   1              {
 219   2                      tim_cnt=0;
 220   2                      Flag_scd=1;
 221   2                      if(tim_scd++==60)
 222   2                      {
 223   3                              tim_scd=0;
 224   3                              if(tim_mnt++==60)
 225   3                              {
 226   4                                      tim_mnt=0;
 227   4                                      if(tim_hur++==24) tim_hur=0;
 228   4                              }
 229   3                      }
 230   2              }
 231   1      }
 232          
 233          
 234          /************************************************************************************************/
 235          main()
 236          {       
 237   1              uchar i;
 238   1              for(i=0;i<4;i++) comsbuf[i]=TX_ADDRESS[i];
 239   1              comsbuf[4]=RX_ADDRESS_0;
C51 COMPILER V7.06   SEND8000_ADD_COM_                                                     01/19/2007 16:22:27 PAGE 5   

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

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

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


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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -