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

📄 spi.lst

📁 f330与mfrc522 通信 构成读卡器 上传源码和原理图。
💻 LST
📖 第 1 页 / 共 2 页
字号:
 146   1              for(i=0;i<bytes;i++)
 147   1          pBuf[i] = SPI_RW(0);    // Perform SPI_RW to read byte from nRF24L01
 148   1      
 149   1              CSN = 1;                // Set CSN high again
 150   1      
 151   1              return(status);         // return nRF24L01 status byte
 152   1      }
 153          //***********************************************
 154          //将*pBuf的bytes内容写到reg指定的寄存器
 155          /**************************************************/
 156          UCHAR SPI_Write_Buf(UCHAR reg, UCHAR *pBuf, UCHAR bytes)
 157          {
 158   1              UCHAR status,i;
 159   1      
 160   1              CSN = 0;                 // 
 161   1              status = SPI_RW(reg);    // 
 162   1              for(i=0; i<bytes; i++)   //
 163   1          SPI_RW(*pBuf++);
 164   1              CSN = 1;                 // 
 165   1              return(status);          // 
 166   1      }
 167          //***********************************************
 168          //PTR6000 置接收模式
 169          /**************************************************/
 170          void RX_Mode(void)
 171          {
 172   1              CE=0;
 173   1              SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH); // 
 174   1      
 175   1              SPI_RW_Reg(WRITE_REG + EN_AA, 0x01);      // 使能0#自动应答
 176   1      
 177   1              SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01);  // 使能0#
 178   1      
 179   1              SPI_RW_Reg(WRITE_REG + RF_CH, 40);        // 射频通道40
C51 COMPILER V6.23a  SPI                                                                   11/02/2007 08:49:05 PAGE 4   

 180   1      
 181   1              SPI_RW_Reg(WRITE_REG + RX_PW_P0, TX_PLOAD_WIDTH); //RX/TX包宽度
 182   1      
 183   1              SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07);   // TX_PWR:0dBm,1Mbps,增益
 184   1      
 185   1              SPI_RW_Reg(WRITE_REG + CONFIG, 0x0f);     //  CRC(2 bytes),上电,接收模式.
 186   1      
 187   1              CE = 1; // 进入接收方式
 188   1      
 189   1      }
 190          /**************************************************/
 191          //PTR6000 置发射模式-写数据并发射spi_tbuf[i]16字节
 192          /**************************************************/
 193          void TX_Mode(void)
 194          {
 195   1              CE=0;
 196   1              
 197   1              SPI_Write_Buf(WRITE_REG+TX_ADDR,TX_ADDRESS,TX_ADR_WIDTH);    // Writes TX_Address to nRF24L01
 198   1              SPI_Write_Buf(WRITE_REG+RX_ADDR_P0,TX_ADDRESS,TX_ADR_WIDTH); // RX_Addr0 same as TX_Adr for Auto.Ack
 199   1              SPI_Write_Buf(WR_TX_PLOAD,tx_buf,TX_PLOAD_WIDTH); // Writes data to TX payload
 200   1      
 201   1              SPI_RW_Reg(WRITE_REG + EN_AA, 0x01);      // Enable Auto.Ack:Pipe0
 202   1              SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01);  // Enable Pipe0
 203   1              SPI_RW_Reg(WRITE_REG + SETUP_RETR, 0x1a); // 500us + 86us, 10 retrans...
 204   1              SPI_RW_Reg(WRITE_REG + RF_CH, 40);        // Select RF channel 40
 205   1              SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07);   // TX_PWR:0dBm, Datarate:2Mbps, LNA:HCURR
 206   1              SPI_RW_Reg(WRITE_REG + CONFIG, 0x0e);     // Set PWR_UP bit, enable CRC(2 bytes) & Prim:TX. MAX_RT & TX
             -_DS enabled..
 207   1              CE=1;
 208   1      }
 209          /***********************************************
 210          void Tst_Ptr6(void)  //
 211              {
 212                    CE = 0;                                //进入待机模式1
 213                    Ptr_Mode = 0x0f;                       //保存当前工作方式 
 214                    SPI_RW_Reg(WRITE_REG+CONFIG,0x0f);     //
 215          //        SPI_RW_Reg(WRITE_REG+EN_AA,0X01);      //自动应答使能(默认0x3f)
 216          //        SPI_RW_Reg(WRITE_REG+EN_RXADDR,0X01);  //接收地址允许(默认0x03)
 217          //        SPI_RW_Reg(WRITE_REG+SETUP_AW,0X0f);   //收/发地址宽度(默认0x03)
 218          //    SPI_RW_Reg(WRITE_REG+SETUP_RETR,0X0f); //自动重发(默认0x03)
 219          //        SPI_RW_Reg(WRITE_REG+RF_CH,40);        //射频通道(默认0x02)
 220          //        SPI_RW_Reg(WRITE_REG+RF_SETUP,0X07);   //射频寄存器(默认0x0F)
 221                    SPI_RW_Reg(WRITE_REG+STATUS,0x0f);     //状态寄存器(默认0x0e)
 222          //        SPI_RW_Reg(WRITE_REG+OBSERVE_TX,0X0f); //发送检测寄存器(只读,默认0)
 223          //        SPI_RW_Reg(WRITE_REG+CD ,0X0f);        //载波检测(只读,默认0)
 224          
 225                SPI_Write_Buf(WRITE_REG + RX_ADDR_P0,TX_ADDRESS,TX_ADR_WIDTH);  //通道0地址"TSWX1"
 226          //        SPI_Write_Buf(WRITE_REG + RX_ADDR_P1,TX_ADDRESS, TX_ADR_WIDTH);  //通道1地址"tswx2"
 227                    SPI_Write_Buf(WRITE_REG + 0x0c, TX_ADDRESS, 1);   //通道2地址0xC3
 228                    SPI_Write_Buf(WRITE_REG + 0x0c, TX_ADDRESS, 1);   //通道3地址0xC4
 229                    SPI_Write_Buf(WRITE_REG + 0x0c, TX_ADDRESS, 1);   //通道4地址0xC5
 230                    SPI_Write_Buf(WRITE_REG + 0x0c, TX_ADDRESS, 1);   //通道5地址0xC6 
 231                    //
 232                SPI_Write_Buf(WRITE_REG+TX_ADDR,TX_ADDRESS,TX_ADR_WIDTH); //发送地址
 233                    //
 234                SPI_RW_Reg(WRITE_REG + RX_PW_P0,TX_PLOAD_WIDTH);    //通道数据宽度20
 235                    SPI_RW_Reg(WRITE_REG + RX_PW_P1,TX_PLOAD_WIDTH);    //
 236                SPI_RW_Reg(WRITE_REG + RX_PW_P2,TX_PLOAD_WIDTH);    //
 237                SPI_RW_Reg(WRITE_REG + RX_PW_P3,TX_PLOAD_WIDTH);    //
 238                    SPI_RW_Reg(WRITE_REG + RX_PW_P4,TX_PLOAD_WIDTH);    //
 239                    SPI_RW_Reg(WRITE_REG + RX_PW_P5,TX_PLOAD_WIDTH);    //
 240          
C51 COMPILER V6.23a  SPI                                                                   11/02/2007 08:49:05 PAGE 5   

 241                Read_All_Reg();          //读PTR6所有寄存器
 242                    CE = 1;              //进入接收模式      
 243                  } */
 244          /***********************************************/
 245          //读ptr6所有寄存器
 246          //***********************************************
 247          /*void Read_All_Reg(void)
 248              {
 249                    unsigned char i;
 250          
 251                for (i=0;i<40;i++)
 252          
 253                    Ptr6_reg[i] = 0;
 254          
 255                    Ptr6_reg[0] = SPI_Read(0);
 256                    Ptr6_reg[1] = SPI_Read(1);
 257                    Ptr6_reg[2] = SPI_Read(2);
 258                    Ptr6_reg[3] = SPI_Read(3);
 259                    Ptr6_reg[4] = SPI_Read(4);
 260                    Ptr6_reg[5] = SPI_Read(5);
 261                    Ptr6_reg[6] = SPI_Read(6);
 262                    Ptr6_reg[7] = SPI_Read(7);
 263                    Ptr6_reg[8] = SPI_Read(8);
 264                    Ptr6_reg[9] = SPI_Read(9);
 265                    //
 266                    SPI_Read_Buf(RX_ADDR_P0,&Ptr6_reg[10],TX_ADR_WIDTH);
 267                SPI_Read_Buf(RX_ADDR_P1,&Ptr6_reg[15],TX_ADR_WIDTH);
 268                SPI_Read_Buf(RX_ADDR_P2,&Ptr6_reg[20],1);
 269                SPI_Read_Buf(RX_ADDR_P3,&Ptr6_reg[21],1);
 270                    SPI_Read_Buf(RX_ADDR_P4,&Ptr6_reg[22],1);
 271                SPI_Read_Buf(RX_ADDR_P5,&Ptr6_reg[23],1);
 272                    SPI_Read_Buf(TX_ADDR,&Ptr6_reg[24],TX_ADR_WIDTH);
 273                //
 274                    Ptr6_reg[29] = SPI_Read(0x11);
 275                    Ptr6_reg[30] = SPI_Read(0x12);
 276                    Ptr6_reg[31] = SPI_Read(0x13);
 277                    Ptr6_reg[32] = SPI_Read(0x14);
 278                    Ptr6_reg[33] = SPI_Read(0x15);
 279                    Ptr6_reg[34] = SPI_Read(0x16);
 280                    Ptr6_reg[35] = SPI_Read(0x17); 
 281                  }  */
 282          //***********************************************/


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    448    ----
   CONSTANT SIZE    =      5    ----
   XDATA SIZE       =     80    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      3      11
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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