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

📄 send8000(11.0592m).lst

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

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

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

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


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


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

⌨️ 快捷键说明

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