spi_config.lst

来自「菜鸟,详细NRF24E1运用,程序,电路」· LST 代码 · 共 169 行

LST
169
字号
C51 COMPILER V9.00   SPI_CONFIG                                                            11/13/2010 14:46:57 PAGE 1   


C51 COMPILER V9.00, COMPILATION OF MODULE SPI_CONFIG
OBJECT MODULE PLACED IN spi_config.OBJ
COMPILER INVOKED BY: D:\Program Files\KEIL C  V4\C51\BIN\C51.EXE spi_config.c BROWSE DEBUG OBJECTEXTEND

line level    source

*** WARNING C500 IN LINE 1 OF SPI_CONFIG.C: LICENSE ERROR (R208: RENEW LICENSE ID CODE (LIC))

   1          #include "reg24le1.h"
   2          #include "config.h"
   3          
   4          //给主SPI接口的一些状态的宏定义
   5          #define txFifoReady  (SPIMSTAT&0X01)
   6          #define rxDataReady  (SPIMSTAT&0X04)
   7          #define txFifoEmpty  (SPIMSTAT&0x02)
   8          #define rxFifoFull   (SPIMSTAT&0x08)
   9          //给从SPI接口的一些状态的宏定义
  10          #define csnHigh      (SPISSTAT&0x20)
  11          #define csnLow       (SPISSTAT&0x10)
  12          #define spiSlaveDone (SPISSTAT&0x01)
  13          
  14          
  15          //定义函数
  16          void mspiconfig()   /*SPI的配置函数*/
  17          {
  18   1      SPIMCON0=(0x01<<4)|0x01;/*配置SPI时钟为1/4·ckMCU, MSBit first, LSBit last. 使能SPI*/
  19   1      SPIMCON1=0x0f;/*禁止所有SPI中断 */
  20   1      }
  21          //配置从SPI接口的寄存器
  22          void sspiconfig()
  23          {
  24   1      SPISCON0=0x01;    //使能SLAVE SPI
  25   1      }
  26          //主机传输一个数据
  27          unsigned char transmit(unsigned char dat)
  28          {
  29   1       unsigned da;
  30   1       CSN=0;
  31   1       if(txFifoReady)
  32   1       SPIMDAT=dat;
  33   1      /* else 
  34   1       {
  35   1       while(!txFifoReady);
  36   1        SPIMDAT=dat;
  37   1       }
  38   1       if(rxDataReady)
  39   1       da=SPIMDAT     ;
  40   1       CSN=1;   */
  41   1       delay(5);
  42   1       return da;
  43   1      }
  44          //从机接受一个数据
  45          unsigned char getdat()
  46          {
  47   1      unsigned char dat;
  48   1      if(spiSlaveDone)//如果有传输
  49   1      dat=SPISDAT;
  50   1      return dat;
  51   1      }
  52          
  53          /*配置对应的IO口*/
  54          void ioconfig()
C51 COMPILER V9.00   SPI_CONFIG                                                            11/13/2010 14:46:57 PAGE 2   

  55          {
  56   1      //master spi
  57   1      P1DIR&=0xC3;/*配置P12,P13,P14,P15为输出*/
  58   1      P1DIR|=0X40;//P16为输入
  59   1      CSN=1;
  60   1      
  61   1      //slave spi
  62   1      P1DIR&=0xfe; //配置SSPI的端口方向P00输出 SCSN
  63   1      P1DIR|=0X02; //MISO
  64   1      
  65   1      P0DIR|=0X80; //MOSI
  66   1      P0DIR|=0X20; //SCLK
  67   1      
  68   1      P0DIR|=0X01; //配置P00为按键输入
  69   1      P00=1;
  70   1      LED=0;       /*低输出*/
  71   1      }
  72          /*配置串口*/
  73          void uart()
  74          {
  75   1          CLKCTRL = 0x28;                         /*设置16M时钟*/     
  76   1              CLKLFCTRL = 0x01;                       /*设置32.768K时钟*/
  77   1      
  78   1              P0DIR &= 0xF7;                          /* P03 (TxD) 输出 */
  79   1              P0DIR |= 0x10;                          // P04 (RxD) 输入 */
  80   1              P0|=0x18;        
  81   1                      
  82   1              S0CON = 0x50;  
  83   1              PCON |= 0x80;                           // SMOD = 1
  84   1              WDCON |= 0x80;                          // Select internal baud rate generator 
  85   1              
  86   1              S0RELL = 0xFB;  
  87   1              S0RELL = 0xF3;              // BAUD_38K4        
  88   1      }
  89          
  90          /*延时函数*/
  91          void delay(unsigned int dx)
  92          {
  93   1      int dj;
  94   1       for(;dx>0;dx--)
  95   1         for(dj=120;dj>0;dj--)
  96   1           {
  97   2               ;
  98   2               }
  99   1      }
 100          
 101          /*打印一个字符*/
 102          void putch(char ch)
 103          {
 104   1      S0BUF=ch;
 105   1      while(!TI0);
 106   1      TI0=0;
 107   1      }
 108          /*字符串的显示*/
 109          void puts(char *str)
 110          {
 111   1      while(*str!='\0')
 112   1      {
 113   2      putch(*str++);
 114   2      }
 115   1      }
 116          
C51 COMPILER V9.00   SPI_CONFIG                                                            11/13/2010 14:46:57 PAGE 3   

 117          unsigned char keyscan()
 118          {
 119   1      static char f=0;
 120   1      P0CON=0XD0;   //设置P00为输入
 121   1      if(!P00)
 122   1      {
 123   2      delay(5);
 124   2      if(!P00)
 125   2        {
 126   3        while(!P00);
 127   3        if(f)
 128   3        f=0;
 129   3        else
 130   3        f=1;
 131   3        return (f);
 132   3        }
 133   2      
 134   2      }
 135   1       return f;
 136   1      }
 137          
 138          
 139          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    209    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1       5
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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