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

📄 fasong.lst

📁 NRF905无线收发模块详细资料
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.06   FASONG                                                                08/12/2008 12:43:43 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE FASONG
OBJECT MODULE PLACED IN Fasong.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Fasong.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include <reg52.h>
   2          #include <ABSACC.h>
   3          #include <intrins.h>
   4          #include <stdio.h>
   5          //--------------------------------------------------------------------------------------------------------
             ---------
   6          #define uint unsigned int
   7          #define uchar unsigned char
   8          //--------------------------------------------------------------------------------------------------------
             ---------
   9          #define BYTE_BIT0       0x01
  10          #define BYTE_BIT1       0x02
  11          #define BYTE_BIT2       0x04
  12          #define BYTE_BIT3       0x08
  13          #define BYTE_BIT4       0x10
  14          #define BYTE_BIT5       0x20
  15          #define BYTE_BIT6       0x40
  16          #define BYTE_BIT7       0x80
  17          //--------------------------------------------------------------------------------------------------------
             ---------
  18          bdata unsigned  char DATA_BUF;
  19          #define DATA7   ((DATA_BUF&BYTE_BIT7) != 0)
  20          #define DATA0   ((DATA_BUF&BYTE_BIT0) != 0)
  21          sbit    flag    =DATA_BUF^7;
  22          sbit    flag1   =DATA_BUF^0;
  23          //---------------------------------------------------发送数据缓冲区---------------------------------------
             -----------
  24          #define TxRxBuf_Len 4
  25          unsigned char TxRxBuf[TxRxBuf_Len]=
  26          {
  27          0x29,0x30,0x31,0x32,
  28          };
  29          //---------------------------------------------------配置口定义-------------------------------------------
             ---------
  30          sbit    TXEN=P1^0;
  31          sbit    TRX_CE=P3^4;
  32          sbit    PWR=P1^1;
  33          sbit    MISO=P1^6;
  34          sbit    MOSI=P1^5;
  35          sbit    SCK=P1^7;
  36          sbit    CSN=P1^3;
  37          //---------------------------------------------------NRF905状态IO-----------------------------------------
             ------------
  38          sbit    AM=P1^4;
  39          sbit    DR=P3^2;
  40          sbit    CD=P1^2;
  41          //----------------------------------------------------按键------------------------------------------------
             ---
  42          sbit    KEY0=P3^6;
  43          sbit    KEY1=P3^7;
  44          //----------------------------------------------------数码管位控制----------------------------------------
             ----------------
  45          sbit    led1=P2^2;
  46          sbit    led0=P2^3;
  47          sbit    led2=P2^1;
C51 COMPILER V7.06   FASONG                                                                08/12/2008 12:43:43 PAGE 2   

  48          sbit    led3=P2^0;
  49          //--------------------------------------------------------------------------------------------------------
             ----------
  50          uchar seg[10]={0xC0,0xCF,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};         //0~~9段码
  51          //-------------------------------------------------------nrf905控制指令-----------------------------------
             ---------
  52          #define WC              0x00
  53          #define RC              0x10
  54          #define WTP             0x20
  55          #define RTP             0x21
  56          #define WTA             0x22
  57          #define RTA             0x23
  58          #define RRP             0x24
  59          //------------------------------------------------NRF905寄存器配置----------------------------------------
             ---------
  60          unsigned char idata RFConf[11]=
  61          {
  62            0x00,                             //配置命令//
  63            0x4c,                             //CH_NO,配置频段在430MHZ
  64            0x0c,                             //输出功率为10db,不重发,节电为正常模式
  65            0x44,                             //地址宽度设置,为4字节
  66            0x04,0x04,                        //接收发送有效数据长度为32字节
  67            0xCC,0xCC,0xCC,0xCC,              //接收地址
  68            0x58,                              //CRC充许,8位CRC校验,外部时钟信号不使能,16M晶振
  69          };
  70          code TxAddress[4]={0xcc,0xcc,0xcc,0xcc};
  71          char tf;
  72          //------------------------------------------------延时----------------------------------------------------
             ---------
  73          static void Delay(uchar n)
  74          {
  75   1              uint i;
  76   1              while(n--)
  77   1              for(i=0;i<80;i++);
  78   1      }
  79          //---------------------------------------------------SPI读函数--------------------------------------------
             ----------
  80          unsigned char SpiRead(void)
  81          {
  82   1              unsigned char j;
  83   1              for (j=0;j<8;j++)
  84   1              {
  85   2              DATA_BUF=DATA_BUF<<1;
  86   2                      SCK=1;
  87   2                      if (MISO)       //读取最高位,保存至最末尾,通过左移位完成整个字节
  88   2                      {
  89   3                              DATA_BUF|=BYTE_BIT0;
  90   3                      }
  91   2                      else
  92   2                      {
  93   3                              DATA_BUF&=~BYTE_BIT0;
  94   3                      }
  95   2                      SCK=0;
  96   2               }
  97   1               return DATA_BUF;
  98   1      }
  99          //-------------------------------------------------SPI写函数----------------------------------------------
             -------------
 100          void SpiWrite(unsigned char send)
 101          {
 102   1              unsigned char i;
 103   1              DATA_BUF=send;
C51 COMPILER V7.06   FASONG                                                                08/12/2008 12:43:43 PAGE 3   

 104   1              for (i=0;i<8;i++)
 105   1              {
 106   2                      if (DATA7)      //总是发送最高位
 107   2                      {
 108   3                              MOSI=1;
 109   3                      }
 110   2                      else
 111   2                      {
 112   3                              MOSI=0;
 113   3                      }
 114   2                      SCK=1;
 115   2                      DATA_BUF=DATA_BUF<<1;
 116   2                      SCK=0;
 117   2              }
 118   1      }
 119          //------------------------------------------------------初始化nRF905--------------------------------------
             --------
 120          void nRF905Init(void)
 121          {
 122   1          CSN=1;                                              // Spi  disable
 123   1              SCK=0;                                          // Spi clock line init low
 124   1              DR=0;                                           // Init DR for input
 125   1              AM=0;                                           // Init AM for input
 126   1              CD=0;                                           // Init CD for input
 127   1              PWR=1;                                  // nRF905 power on
 128   1              TRX_CE=0;                                       // Set nRF905 in standby mode
 129   1              TXEN=0;                                 // set radio in Rx mode
 130   1      }
 131          //-----------------------------------------------------初始化寄存器---------------------------------------
             ---------
 132          void Config905(void)
 133          {
 134   1              uchar i;
 135   1              CSN=0;                                          // Spi enable for write a spi command
 136   1              //SpiWrite(WC);                         // Write config command写放配置命令
 137   1              for (i=0;i<11;i++)      // Write configration words  写放配置字
 138   1              {
 139   2                 SpiWrite(RFConf[i]);
 140   2              }
 141   1              CSN=1;                                  // Disable Spi

⌨️ 快捷键说明

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