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

📄 spi.lst

📁 STC51系列单片机通过vk3x系列芯片扩展串口的源码
💻 LST
字号:
C51 COMPILER V7.06   SPI                                                                   06/19/2007 18:00:25 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE SPI
OBJECT MODULE PLACED IN spi.obj
COMPILER INVOKED BY: d:\Program Files\Keil\C51\BIN\C51.EXE code\spi.c BROWSE DEBUG OBJECTEXTEND PRINT(.\spi.lst) OBJECT(
                    -spi.obj)

stmt level    source

   1          #include "stc51reg.h"
   2          #include <intrins.h>
   3          //************************************************************
   4          void config()
   5          {
   6   1              WDT_CONTR = 0x00;       // Watchdog Timer Control Register
   7   1      
   8   1      }
   9          //初始化单片机,
  10          //***********************************************************
  11          
  12          //***********************************************************
  13          unsigned char send(unsigned char _data1,unsigned char _data2)
  14          {       unsigned char i;
  15   1              clk=0;
  16   1              ness=0;
  17   1              i=0;
  18   1      
  19   1      
  20   1         if(_data1&0x80)
  21   1                      mosi=1;
  22   1              else mosi=0;
  23   1      
  24   1              clk=1;
  25   1      
  26   1      //      if(miso==1)
  27   1      //              i[0]=i[0]+0x80;
  28   1              clk=0;
  29   1      
  30   1      
  31   1         if(_data1&0x40)
  32   1              {
  33   2                      mosi=1;
  34   2              }
  35   1              else mosi=0;
  36   1      
  37   1              clk=1;
  38   1      
  39   1      
  40   1      
  41   1      //      if(miso==1)
  42   1      //              i[0]=i[0]+0x40;
  43   1               clk=0;
  44   1      
  45   1         if(_data1&0x20)
  46   1              {
  47   2                      mosi=1;
  48   2              }
  49   1              else mosi=0;
  50   1      
  51   1              clk=1;
  52   1      
  53   1      
  54   1      
C51 COMPILER V7.06   SPI                                                                   06/19/2007 18:00:25 PAGE 2   

  55   1      //      if(miso==1)
  56   1      //              i[0]=i[0]+0x20;
  57   1              clk=0;
  58   1      
  59   1         if(_data1&0x10)
  60   1              {
  61   2                      mosi=1;
  62   2              }
  63   1              else mosi=0;
  64   1      
  65   1              clk=1;
  66   1      
  67   1      
  68   1      
  69   1      //      if(miso==1)
  70   1      //              i[0]=i[0]+0x10;
  71   1              clk=0;
  72   1      
  73   1         if(_data1&0x08)
  74   1              {
  75   2                      mosi=1;
  76   2              }
  77   1              else mosi=0;
  78   1      
  79   1              clk=1;
  80   1      
  81   1      
  82   1      
  83   1      //      if(miso==1)
  84   1      //              i[0]=i[0]+0x08;
  85   1              clk=0;
  86   1      
  87   1         if(_data1 & 0x04)
  88   1              {
  89   2                      mosi=1;
  90   2              }
  91   1              else mosi=0;
  92   1      
  93   1              clk=1;
  94   1      
  95   1      
  96   1      
  97   1      //      if(miso==1)
  98   1      //              i[0]=i[0]+0x04;
  99   1              clk=0;
 100   1      
 101   1         if(_data1&0x02)
 102   1              {
 103   2                      mosi=1;
 104   2              }
 105   1              else mosi=0;
 106   1      
 107   1              clk=1;
 108   1      
 109   1      
 110   1      //      if(miso==1)
 111   1      //              i[0]=i[0]+0x02;
 112   1              clk=0;
 113   1      
 114   1         if(_data1&0x01)
 115   1              {
 116   2                      mosi=1;
C51 COMPILER V7.06   SPI                                                                   06/19/2007 18:00:25 PAGE 3   

 117   2              }
 118   1              else mosi=0;
 119   1      
 120   1              clk=1;
 121   1      
 122   1      
 123   1      //      if(miso==1)
 124   1      //              i[0]=i[0]+0x01;
 125   1              clk=0;
 126   1      
 127   1      
 128   1         if(_data2&0x80)
 129   1              {
 130   2                      mosi=1;
 131   2              }
 132   1      
 133   1              else mosi=0;
 134   1      
 135   1              clk=1;
 136   1      
 137   1      
 138   1              if(miso)
 139   1                      i=i+128;
 140   1              clk=0;
 141   1      
 142   1         if(_data2&0x40)
 143   1              {
 144   2                      mosi=1;
 145   2              }
 146   1              else mosi=0;
 147   1      
 148   1      
 149   1              clk=1;
 150   1      
 151   1              if(miso)
 152   1                      i=i+64;
 153   1              clk=0;
 154   1      
 155   1      
 156   1         if(_data2&0x20)
 157   1                      mosi=1;
 158   1              else mosi=0;
 159   1      
 160   1              clk=1;
 161   1      
 162   1              if(miso)
 163   1                      i=i+32;
 164   1      
 165   1              clk=0;
 166   1       
 167   1       
 168   1         if(_data2&0x10)
 169   1                      mosi=1;
 170   1              else mosi=0;
 171   1      
 172   1      
 173   1              clk=1;
 174   1      
 175   1              if(miso)
 176   1                      i=i+16;
 177   1              clk=0;
 178   1       
C51 COMPILER V7.06   SPI                                                                   06/19/2007 18:00:25 PAGE 4   

 179   1       
 180   1         if(_data2&0x08)
 181   1                      mosi=1;
 182   1              else mosi=0;
 183   1      
 184   1      
 185   1              clk=1;
 186   1      
 187   1              if(miso)
 188   1                      i=i+8;
 189   1              clk=0;
 190   1      
 191   1         if(_data2&0x04)
 192   1                      mosi=1;
 193   1              else mosi=0;
 194   1      
 195   1      
 196   1              clk=1;
 197   1      
 198   1              if(miso)
 199   1                      i=i+4;
 200   1              clk=0;
 201   1      
 202   1         if(_data2&0x02)
 203   1                      mosi=1;
 204   1              else mosi=0;
 205   1      
 206   1      
 207   1              clk=1;
 208   1      
 209   1              if(miso)
 210   1                      i=i+2;
 211   1              clk=0;
 212   1      
 213   1         if(_data2&0x01)
 214   1                      mosi=1;
 215   1              else mosi=0;
 216   1      
 217   1              clk=1;
 218   1      
 219   1              if(miso)
 220   1                      i=i+1;
 221   1              clk=0;
 222   1          mosi=0;
 223   1              ness=1;
 224   1      
 225   1              return i;
 226   1      }
 227          //模拟SPI时序,data1,data2是写入的两个数据,这里仅返回第二个数据
 228          //*************************************************************************
 229          
 230          //*************************************************************************
 231          void write_reg(unsigned char port,unsigned char reg,unsigned char dat)
 232          {       
 233   1              send(0x60+port*32+reg*2,dat);
 234   1      }
 235          //写寄存器,port为子串口的路数,reg为寄存器的地址,dat为写入寄存器的数据
 236          //*************************************************************************
 237          
 238          //*************************************************************************
 239          unsigned char read_reg(unsigned char port,unsigned char reg)
 240          {
C51 COMPILER V7.06   SPI                                                                   06/19/2007 18:00:25 PAGE 5   

 241   1              return send(((port-1)<<5)+(reg<<1),0x00);
 242   1      }
 243          //读寄存器,琾ort为子串口的路数,reg为寄存器的地址,返回寄存器的值
 244          //***************************************************************************


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