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

📄 nrf2401.lst

📁 基于AT89C2051的SHT11温湿度传感器嵌入式程序KEIL环境
💻 LST
📖 第 1 页 / 共 2 页
字号:
 225   1      }
 226          /*************************************nRF2401_ON END *******************************/
 227          /*************************************nRF2401_OFF START*****************************/
 228          //void nRF2401_OFF()
 229          //{
 230          //      PWR_UP=0;                       // Set Power_Up low     
 231          //}
 232          /*************************************nRF2401_OFF END ******************************/
 233          /*************************************RXEN_HIGH START ******************************/
 234          void RXEN_HIGH()
 235          {
 236   1              CE=0;                           //Set CE LOW            
C51 COMPILER V7.00  NRF2401                                                                06/07/2007 23:38:38 PAGE 5   

 237   1              CS=1;                           //Set CS HIGH--confige mode
 238   1              Data=1;                         //Set Data HIGH
 239   1              DoSPIClock();           //Make one SPIClock cycle
 240   1              CS=0;                           //Set CS LOW            
 241   1              CE=1;                           //Set CE HIGH--active mode
 242   1      }
 243          /*************************************RXEN_HIGH  END *******************************/
 244          /*************************************TXEN_LOW  START ******************************/           
 245          void TXEN_LOW()
 246          {
 247   1              CE=0;                           //Set CE LOW                    
 248   1              CS=1;                           //Set CS HIGH--confige mode
 249   1              Data=0;                         //Set Data LOW
 250   1              DoSPIClock();           //Make one SPIClock cycle
 251   1              CS=0;                           //Set CS LOW            
 252   1              CE=1;                           //Set CE HIGH--active mode
 253   1      }
 254          
 255          /*************************************TXEN_LOW   END *******************************/
 256          /*************************************delay_n   START *****************************/    
 257          void delay_n(uchar n)
 258          {
 259   1              uchar  x;
 260   1              uchar  y;
 261   1              for(x=0;x<n;x++)
 262   1                      {
 263   2                      //for(y=0;y<100;y++)
 264   2                      for(y=0;y<130;y++)/////jia
 265   2                      _nop_();
 266   2                      }
 267   1      }
 268          /*************************************delay_n   END *******************************/
 269          /*************************************ShockBurst START *****************************/
 270          void BuildShockWord(Data1)
 271          {
 272   1              TXData[0]=0xcc;         //MSB    ;RX receiver 1 address   High byte
 273   1              TXData[1]=0xcc;         //MSB-1  ;RX receiver 1 address   High byte
 274   1              TXData[2]=0xcc;         //MSB-2  ;RX receiver 1 address   Low byte
 275   1              TXData[3]=0xcc;         //MSB-3  ;RX receiver 1 address   Low  byte
 276   1              TXData[4]=Data1;        //MSB-4  ;Data byte 9
 277   1              TXData[5]=0x02;         //MSB-5  ;Data byte 8
 278   1              TXData[6]=0x03;         //MSB-6  ;Data byte 7
 279   1              TXData[7]=0x04;         //MSB-7  ;Data byte 6
 280   1              TXData[8]=0x05;         //MSB-8  ;Data byte 5
 281   1              TXData[9]=0x06;         //MSB-9  ;Data byte 4
 282   1              TXData[10]=0x07;        //MSB-10 ;Data byte 3
 283   1              TXData[11]=0x08;        //MSB-11 ;Data byte 2
 284   1              TXData[12]=0x09;        //MSB-12 ;Data byte 1
 285   1              TXData[13]=0x10;        //MSB-13 ;Data byte 0   
 286   1      }
 287          /************************************* BuildShockWord END *******************************/
 288          /************************************* ShockBurst   START *******************************/
 289          void ShockBurst()
 290          {
 291   1              CS=0;                                   //Pull CS low
 292   1              CE=1;                                   //Enable CE     active mode
 293   1              for (ByteCnt=0;ByteCnt<14;ByteCnt++)
 294   1              {
 295   2                      tempi=TXData[ByteCnt];
 296   2                      for (BitCnt=0;BitCnt<8;BitCnt++)
 297   2                      {
 298   3                              if (bflag==1)   //Check if first bit is HIGH
C51 COMPILER V7.00  NRF2401                                                                06/07/2007 23:38:38 PAGE 6   

 299   3                                      Data=1;         //Set Data high
 300   3                              else
 301   3                                      Data=0;         //Set Data low
 302   3                              tempi=tempi<<1; //Left Shift to get next bit
 303   3                              DoSPIClock();
 304   3                              //SendData();   //Call SendData
 305   3                      }
 306   2              }
 307   1              CE=0;                                   //Disable CE (TX Starts!)--standby mode
 308   1              Data=0;                                 //Set Data low
 309   1      }
 310          /************************************* ShockBurst END ***********************************/
 311          /************************************* SendData     START *******************************
 312                          
 313          void SendData()
 314          {
 315                  for (BitCnt=0;BitCnt<8;BitCnt++)
 316                          {
 317                          if (bflag==1)           //Check if first bit is HIGH
 318                                  Data=1;                 //Set Data high
 319                          else
 320                                  Data=0;                 //Set Data low
 321                          tempi=tempi<<1;         //Left Shift to get next bit
 322                          DoSPIClock();           //Call "DoClock" to generate a clock pulse
 323                          }
 324          }
 325          
 326          ************************************** SendData END *************************************/
 327          /************************************* CheckButtons START *******************************/      
 328          /*
 329          void CheckButtons_jia()
 330          {
 331                  uchar xx;
 332                  P0=0xff;
 333                  Temp=P0&0x0f;                   //read key value from port P0
 334                  if (Temp!=0x0f)
 335                  {
 336                          delay_n(10);
 337                          Temp=P0&0x0f;                   //read key value from port P0
 338                          if (Temp!=0x0f)
 339                          {
 340                                  xx=Temp;
 341                                  Temp=Temp<<4;
 342                                  Data1=Temp;             //put the button Data in dada package
 343                                  P0=Data1;               //Turn On the LED
 344                                  TXEN_LOW();             //set TX mode
 345                                  BuildShockWord(Data1);
 346                                  ShockBurst();
 347                                  TxData(xx);
 348                                  delay_n(500);
 349                                  P0=0xff;                //close LED display
 350                                  RXEN_HIGH();
 351          
 352                                  while((P0&0x0f)!=0x0f);
 353                           }
 354                   }
 355          }
 356          */
 357          void CheckButtons()
 358          {
 359   1              uchar xx;
 360   1              P0=0xff;
C51 COMPILER V7.00  NRF2401                                                                06/07/2007 23:38:38 PAGE 7   

 361   1              Temp=P0&0xaa;                   //read key value from port P0
 362   1              if (Temp!=0xaa)
 363   1              {
 364   2                      delay_n(10);
 365   2                      Temp=P0&0xaa;                   //read key value from port P0
 366   2                      if (Temp!=0xaa)
 367   2                      {
 368   3                              xx=Temp;
 369   3                              Temp=Temp>>1;
 370   3                              Data1=Temp;             //put the button Data in dada package
 371   3                              P0=Data1;               //Turn On the LED
 372   3                              TXEN_LOW();             //set TX mode
 373   3                              BuildShockWord(Data1);
 374   3                              ShockBurst();
 375   3                              TxData(xx);
*** ERROR C267 IN LINE 375 OF NRF2401.C: 'TxData': requires ANSI-style prototype
 376   3                              delay_n(500);
 377   3                              P0=0xff;                //close LED display
 378   3                              RXEN_HIGH();
 379   3      
 380   3                              while((P0&0xaa)!=0xaa);
 381   3                       }
 382   2               }
 383   1      }
 384          /************************************* CheckButtons END *********************************/
 385          /************************************* ReceiveShock START *******************************/
 386          /*
 387          void ReceiveShock_jia()
 388          {
 389                  uchar xx;
 390                  Data=1;                                 //Set Data tri state
 391                  Temp=0;
 392                  for (ByteCnt=0;ByteCnt<10;ByteCnt++)
 393                  {
 394                          for(BitCnt=0;BitCnt<8;BitCnt++)
 395                          {
 396                                  Temp=Temp<<1;   //shift left to receive next bit
 397                                  CLK1=1;                 //set clock high
 398                                  _nop_();        
 399                                  _nop_();                //wait one clk cycle
 400                                  Data=1;
 401                                  if(Data==1)             //check if Data=high            
 402                                          Temp|=0x01;     //yes - set bit high
 403                                  CLK1=0;                 //set clock low
 404                                  _nop_();                //wait one clk cycle
 405                          }
 406                          _nop_();
 407                          RXData[ByteCnt]=Temp;
 408                          DR1=1;
 409                          if(DR1!=1)                      //check if DR1 is not still high
 410                          {               
 411                                  _nop_();
 412                                  P0=RXData[0];   //Turn On the LED
 413                                  xx=(RXData[0]>>4)&0x0f;
 414                                  TxData(xx);
 415                                  delay_n(500);
 416                          P0=0xff;
 417                          }
 418                   }
 419          }
 420          */
 421          void ReceiveShock()
C51 COMPILER V7.00  NRF2401                                                                06/07/2007 23:38:38 PAGE 8   

 422          {
 423   1              uchar xx;
 424   1              Data=1;                                 //Set Data tri state
 425   1              Temp=0;
 426   1              for (ByteCnt=0;ByteCnt<10;ByteCnt++)
 427   1              {
 428   2                      for(BitCnt=0;BitCnt<8;BitCnt++)
 429   2                      {
 430   3                              Temp=Temp<<1;   //shift left to receive next bit
 431   3                              CLK1=1;                 //set clock high
 432   3                              _nop_();        
 433   3                              _nop_();                //wait one clk cycle
 434   3                              Data=1;
 435   3                              if(Data==1)             //check if Data=high            
 436   3                                      Temp|=0x01;     //yes - set bit high
 437   3                              CLK1=0;                 //set clock low
 438   3                              _nop_();                //wait one clk cycle
 439   3                      }
 440   2                      _nop_();
 441   2                      RXData[ByteCnt]=Temp;
 442   2                      DR1=1;
 443   2                      if(DR1!=1)                      //check if DR1 is not still high
 444   2                      {               
 445   3                              _nop_();
 446   3                              P0=RXData[0];   //Turn On the LED
 447   3                              xx=RXData[0]<<1;//
*** ERROR C193 IN LINE 447 OF NRF2401.C: '<<': bad operand type
 448   3                              TxData(xx);
 449   3                              delay_n(500);
 450   3                      P0=0xff;
 451   3                      }
 452   2               }
 453   1      }
 454          /************************************* ReceiveShock END *********************************/      

C51 COMPILATION COMPLETE.  1 WARNING(S),  2 ERROR(S)

⌨️ 快捷键说明

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