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

📄 main.lst

📁 RFID模块发射接收的C源代码
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V9.00   MAIN                                                                  08/21/2012 11:13:53 PAGE 1   


C51 COMPILER V9.00, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*********************************************************************
   2          功能:
   3                  RFID READER接收程序
   4          说明:
   5                  收到数据显示灯闪烁一下,并通过串口上显示ID值
   6          **********************************************************************/
   7          
   8          #include <reg24le1.h>
   9          #include <stdint.h>
  10          #include "API.h"
  11          
  12          //#define       PIN24
  13          #define PIN32
  14          //#define       PIN48
  15          
  16          #ifdef  PIN24
              sbit S3  = P0^6;                                // 1/0=未按/按下
              sbit S2  = P0^4;                                // 1/0=未按/按下
              sbit S1  = P0^3;                                // 1/0=未按/按下
              
              sbit LED3 = P0^2;                                       // 1/0=灭/亮
              sbit LED2 = P0^1;                               // 1/0=灭/亮
              sbit LED1 = P0^0;                               // 1/0=灭/亮
              
              #define p0dir   0xd8
              #define p1dir   0xff
              #endif
  28          
  29          #ifdef  PIN32
  30          sbit S3  = P1^4;                                // 1/0=未按/按下
  31          sbit S2  = P1^3;                                // 1/0=未按/按下
  32          sbit S1  = P1^2;                                // 1/0=未按/按下
  33          
  34          sbit LED3 = P0^2;                               // 1/0=灭/亮
  35          sbit LED2 = P0^1;                               // 1/0=灭/亮
  36          sbit LED1 = P0^0;                               // 1/0=灭/亮
  37          
  38          #define p0dir   0xf0
  39          #define p1dir   0xff
  40          #endif
  41          
  42          #ifdef  PIN48
              sbit S3  = P0^7;                                // 1/0=未按/按下
              sbit S2  = P0^6;                                // 1/0=未按/按下
              sbit S1  = P0^5;                                // 1/0=未按/按下
              
              sbit LED3 = P0^2;                               // 1/0=灭/亮
              sbit LED2 = P0^1;                               // 1/0=灭/亮
              sbit LED1 = P0^0;                               // 1/0=灭/亮
              
              #define p0dir   0xf0
              #define p1dir   0x02
              #endif
  54          
  55          #define INTERRUPT_RFIRQ 9
C51 COMPILER V9.00   MAIN                                                                  08/21/2012 11:13:53 PAGE 2   

  56          
  57          #define TX_ADR_WIDTH    6                                       // RF收发地址共5 bytes 
  58          #define TX_PLOAD_WIDTH  20                                      // 数据包长度为20 bytes
  59          
  60          uint8_t const TX_ADDRESS[TX_ADR_WIDTH]  = {0x34,0x56,0x78,0x90,0x12,0x26}; // 定义RF收发地址
  61          
  62          uint8_t data id_buf[TX_PLOAD_WIDTH]={ 1,2, 3, 4, 5, 6,7};    //typedef unsigned int uint8_t               
  63          
  64          uint8_t data rx_buf[TX_PLOAD_WIDTH];
  65          
  66          uint8_t bdata sta;
  67          sbit    RX_DR   =sta^6;
  68          sbit    TX_DS   =sta^5;
  69          sbit    MAX_RT  =sta^4;
  70          /**************************************************
  71          功能:延时
  72          **************************************************/
  73          void delay(uint16_t x)
  74          {
  75   1          uint16_t i,j;
  76   1          i=0;
  77   1          for(i=0;i<x;i++)
  78   1          {
  79   2             j=108;
  80   2             while(j--);
  81   2          }
  82   1      }
  83          /**************************************************
  84          功能:硬件SPI读写
  85          **************************************************/
  86          uint8_t SPI_RW(uint8_t value)
  87          {
  88   1        SPIRDAT = value;
  89   1        while(!(SPIRSTAT & 0x02));                                    // 等待SPI传输完成  
  90   1        return SPIRDAT;                                               // 返回读出值
  91   1      }
  92          /**************************************************
  93          功能:写RF寄存器,读RF状态值
  94          **************************************************/
  95          uint8_t SPI_RW_Reg(uint8_t reg, uint8_t value)
  96          {
  97   1              uint8_t status;
  98   1      
  99   1              RFCSN = 0;                      
 100   1              status = SPI_RW(reg);                                           // 选择RF寄存器
 101   1              SPI_RW(value);                                                  // 写入数据
 102   1              RFCSN = 1;                      
 103   1      
 104   1              return(status);                                                 // 返回RF状态值
 105   1      }
 106          /**************************************************
 107          功能:读RF寄存器
 108          **************************************************/
 109          uint8_t SPI_Read(uint8_t reg)
 110          {
 111   1              uint8_t reg_val;
 112   1      
 113   1              RFCSN = 0;                                      
 114   1              SPI_RW(reg);                                                    // 选择RF寄存器
 115   1              reg_val = SPI_RW(0);                                            // 读出数据
 116   1              RFCSN = 1;                                      
 117   1      
C51 COMPILER V9.00   MAIN                                                                  08/21/2012 11:13:53 PAGE 3   

 118   1              return(reg_val);                                                // 返回RF状态值
 119   1      }
 120          /**************************************************
 121          功能:读RF寄存器多字节数据到缓冲区
 122          **************************************************/
 123          uint8_t SPI_Read_Buf(uint8_t reg, uint8_t *pBuf, uint8_t bytes)
 124          {
 125   1              uint8_t status,byte_ctr;
 126   1      
 127   1              RFCSN = 0;                              
 128   1              status = SPI_RW(reg);                                   // 选择RF寄存器
 129   1      
 130   1              for(byte_ctr=0;byte_ctr<bytes;byte_ctr++)
 131   1               pBuf[byte_ctr] = SPI_RW(0);                            // 连接读出数据
 132   1      
 133   1              RFCSN = 1;                          
 134   1      
 135   1              return(status);                                         // 返回RF状态值
 136   1      }
 137          /**************************************************
 138          功能:把缓冲区的多字节数据写到RF寄存器
 139          **************************************************/
 140          uint8_t SPI_Write_Buf(uint8_t reg, uint8_t *pBuf, uint8_t bytes)
 141          {
 142   1              uint8_t status,byte_ctr;
 143   1      
 144   1              RFCSN = 0;                              
 145   1              status = SPI_RW(reg);                                           // 选择RF寄存器
 146   1              for(byte_ctr=0; byte_ctr<bytes; byte_ctr++) // 连接写入数据
 147   1              SPI_RW(*pBuf++);
 148   1              RFCSN = 1;                                      
 149   1              return(status);                                                 // 返回RF状态值
 150   1      }
 151          
 152          /**************************************************
 153          功能:设置为接收模式
 154          **************************************************/

⌨️ 快捷键说明

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