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

📄 1.lst

📁 用c语言编写的SPI总线在单片机中的应用源代码
💻 LST
字号:
C51 COMPILER V7.00  1                                                                      04/27/2006 18:35:06 PAGE 1   


C51 COMPILER V7.00, COMPILATION OF MODULE 1
OBJECT MODULE PLACED IN 1.OBJ
COMPILER INVOKED BY: C:\安装程序\keil\C51\BIN\C51.EXE 1.C BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include<reg51.h>
   2          #include<intrins.h>
   3          sbit SCK=P1^0;//将p1口摸仪时钟输出
   4          sbit MOSI=P1^1;//将P1.1口模拟主机输出
   5          sbit MISO=P1^2;//将p1.2口模拟主机输入
   6          sbit CS1=P1^3;//将P1.3模拟片选
   7          #define delayNOP();{_nop_();_nop_();_nop_();_nop_();};
   8          //---------------------------------------------------------
   9          //函数名称:SPISENDBYTE
  10          //入口参数:CH
  11          //函数功能:发送一个字符
  12          //-----------------------------------------------------------
  13          void SPISendByte(unsigned char ch)
  14          {unsigned char idata n=8;//向SDA上发送一位数据字节,共8位
  15   1      SCK=1;//时钟置高
  16   1      CS1=0;//选择从机
  17   1      while(n--)
  18   1        {delayNOP();
  19   2         SCK=0;//时钟置低
  20   2        if((ch&0x80)==0x80)//若发送的数据等于1,则发送位1
  21   2          {MOSI=1;//传送位1
  22   3          }
  23   2        else
  24   2          {MOSI=0;//否则传送0
  25   3          }
  26   2        delayNOP();
  27   2        ch=ch<<1;//数据左移一位
  28   2        SCK=1;//时钟置高
  29   2        }
  30   1      }
  31          //-------------------------------------------------------------------
  32          //函数名称SPIreceiveByte
  33          //返回接收的数据
  34          //函数功能:接受1BYTE子程序
  35          //--------------------------------------------------------------------
  36          unsigned char SPIreceiveByte()
  37          {
  38   1        unsigned char idata n=8;//从MISO线上读取上一字节,共8位
  39   1        unsigned char tdata;
  40   1        SCK=1;//时钟为高
  41   1        CS1=0;//选择从机
  42   1        while(n--)
  43   1        {  delayNOP();
  44   2           SCK=0;//时钟为低
  45   2               delayNOP();
  46   2               tdata=tdata<<1;//左移一位,或_crol_(temp,1)
  47   2               if(MISO==1)
  48   2                  tdata=tdata|0x01;//若接收到的位为1,则数据的最后的一位置1
  49   2               else
  50   2              tdata=tdata&0xfe;//否则数据的最后一位置0
  51   2               SCK=1;
  52   2        }
  53   1        return(tdata);
  54   1      }
  55          //---------------------------------------------------------------------------
C51 COMPILER V7.00  1                                                                      04/27/2006 18:35:06 PAGE 2   

  56          //函数名称:SPIsend-receiveByte
  57          //入口参数:CH
  58          //返回接收的数据
  59          //函数功能:串行输入/输出子程序
  60          //----------------------------------------------------------------------------
  61          //unsigned char SPIsendByte(unsigned char ch)
  62          //{ 
  63           // unsigned char idata n=8;//从MISO线上读取上一数据字节,共8位
  64           // unsigned char tdata;
  65            //SCK=1;//时钟为高
  66            //CS1=0;//选择从机
  67           // while(n--)
  68           // {delayNOP();
  69             //  SCK=0;//时钟为低
  70                  // delayNOP();
  71              // tdata=tdata<<1;//左移一位
  72                   // if(MISO==1)
  73                     // tdata=tdata|0x01;//若接收到的位为1,则数据的最后一位置1
  74                    //else
  75                     // tdata=tdata&0xfe;//否则数据的最后一位置0
  76                //if((ch&0x80)==0x80)
  77                    //{ MOSI=1;//传送位1
  78                    //}
  79                  // else
  80                   // {MOSI=0;//否则传送位0
  81                   // }
  82                     // ch=ch<<1;//数据左移1位
  83                     // SCK=1;
  84           // }
  85          //return(tdata);
  86          //} 
  87          
  88          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =     87    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----       2
   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 + -