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

📄 x5045.lst

📁 51单片机用c语言实例 包括ad
💻 LST
字号:
C51 COMPILER V7.09   X5045                                                                 07/06/2006 14:15:55 PAGE 1   


C51 COMPILER V7.09, COMPILATION OF MODULE X5045
OBJECT MODULE PLACED IN X5045.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE X5045.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /**********************************************************
   2           * 文件名称: X5045.C
   3           * 功能描述: 通过单片机的SPI接口读写X5045;
   4           **********************************************************/
   5          
   6          #include "sst89x5x4.h"
   7          
   8          sbit CS = P1^4;
   9          
  10          void Delay(unsigned int j)
  11          {
  12   1              unsigned int i;
  13   1              unsigned char k;
  14   1              for(i=0; i<j; i++)
  15   1                      for(k=0; k<10; k++);
  16   1      }
  17          // 处理主从控制器间的字节传输
  18          unsigned char SST_MasterIO(unsigned char HW_SPI_out)
  19          {
  20   1              unsigned char temp;
  21   1              SPDR = HW_SPI_out;
  22   1              do
  23   1              {
  24   2                      temp = SPSR & 0x80;
  25   2              } while (temp != 0x80);         // 判断 SPIF 标志位
  26   1              SPSR = SPSR & 0x7F;                     // 清除 SPIF
  27   1              return SPDR;
  28   1      }
  29          // 读取状态寄存器
  30          unsigned char Read_Status_Register()
  31          {
  32   1              unsigned char byte = 0;
  33   1              CS = 0;                                         // 使能设备
  34   1              SST_MasterIO(0x05);                     // 发送 RDSR 命令
  35   1              byte = SST_MasterIO(0x00);      // 接收字节
  36   1              CS = 1;                                         // 禁止设备
  37   1              return byte;
  38   1      }
  39          // 写状态寄存器(看门狗设置)
  40          void WRSR(unsigned char byte)
  41          {
  42   1              CS = 0;                                         // 使能设备
  43   1              SST_MasterIO(0x01);                     // 发送 WRSR 命令
  44   1              SST_MasterIO(byte);                     // 写入的状态字
  45   1              CS = 1;                                         // 禁止设备
  46   1      }
  47          // 使能写操作
  48          void WREN()
  49          {
  50   1              CS = 0;                                         // 使能设备
  51   1              SST_MasterIO(0x06);                     // 发送 WREN 命令
  52   1              CS = 1;                                         // 禁止设备
  53   1      }
  54          // 禁止写操作
  55          void WRDI()
C51 COMPILER V7.09   X5045                                                                 07/06/2006 14:15:55 PAGE 2   

  56          {
  57   1              CS = 0;                                         // 使能设备
  58   1              SST_MasterIO(0x04);                     // 发送 WRDI 命令
  59   1              CS = 1;                                         // 禁止设备
  60   1      }
  61          // 读操作
  62          unsigned char Read(unsigned char Addr)
  63          {
  64   1              unsigned char byte = 0;
  65   1              CS = 0;                                         // 使能设备
  66   1              SST_MasterIO(0x03);                     // 发送 READ 命令
  67   1              SST_MasterIO(Addr);                     // 发送读取数据的地址
  68   1              byte = SST_MasterIO(0x00);      // 接收字节
  69   1              CS = 1;                                         // 禁止设备
  70   1              return byte;
  71   1      }
  72          // 读多个数据(1--16)
  73          void Read_Cont(unsigned char Addr, unsigned char no_bytes, unsigned char DataArray[])
  74          {
  75   1              unsigned char j = 0;
  76   1              CS = 0;
  77   1              SST_MasterIO(0x03);                                             // 读命令
  78   1              SST_MasterIO(Addr);                                             // 地址
  79   1              for (j = 0; j < no_bytes; j++)                  // 读取no_bytes个数据
  80   1              {
  81   2                      DataArray[j] = SST_MasterIO(0x00);      // 接收数据并存储
  82   2              }
  83   1              CS = 1;
  84   1      }
  85          // 写一个字节
  86          unsigned char Byte_Write(unsigned char Addr, unsigned char byte)
  87          {
  88   1              WREN();
  89   1              Delay(1);
  90   1              CS = 0;                                         // 使能设备
  91   1              SST_MasterIO(0x02);                     // 发送 Write 命令
  92   1              SST_MasterIO(Addr);                     // 发送读取数据的地址地址
  93   1              SST_MasterIO(byte);                     // 写一个字节
  94   1              CS = 1;                                         // 禁止设备
  95   1      }
*** WARNING C173 IN LINE 95 OF X5045.C: missing return-expression
  96          
  97          
  98          void main(void)
  99          {
 100   1              unsigned char R_Byte[16], i;
 101   1              SPCR = 0x51;            // 设置 SPI 的控制寄存器
 102   1              //SPCR: bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
 103   1              //      SPIE SPE  DORD MSTR CPOL CPHA SPR1 SPR0
 104   1              for(i=0; i<16; i++)
 105   1              {
 106   2                      Byte_Write(i, i);                       // 写0--16到地址00开始的连续16个单元中
 107   2                      Delay(80);
 108   2              }
 109   1              Read_Cont(0x00, 16, R_Byte);    // 读取地址00开始的连续16个单元中的数
 110   1              while(1);
 111   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    230    ----
   CONSTANT SIZE    =   ----    ----
C51 COMPILER V7.09   X5045                                                                 07/06/2006 14:15:55 PAGE 3   

   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      20
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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