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

📄 send8000.lst

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

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

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

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


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 + -