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

📄 x5045.lst

📁 一个用到ZLG7289的实际项目
💻 LST
字号:
C51 COMPILER V7.50   X5045                                                                 07/24/2007 21:41:15 PAGE 1   


C51 COMPILER V7.50, 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          #include <x5045.h> 
   2          /*--------------------------------------
   3          不打开dog
   4          --------------------------------------*/
   5          void X5045Init(void)
   6          {
   7   1              EEPROMCS   = 1;
   8   1              EEPROMSI   = 1;
   9   1              EEPROMSO   = 1;
  10   1              EEPROMSCK  = 0;
  11   1              X5045WriteStatus(0x30);
  12   1      }
  13          /*--------------------------------------
  14               打开X5045片选
  15          --------------------------------------*/
  16          void X5045SpiOpen(void)
  17          {
  18   1        EEPROMCS    = 1;//WDT
  19   1        EEPROMSCK   = 0;
  20   1        EEPROMSI   = 1;//SO=SI=1,释放总线
  21   1        EEPROMSO   = 1;
  22   1        EEPROMCS    = 0;//WDT;打开X5045片选CS
  23   1      }
  24          /*--------------------------------------
  25              关闭X5045片选
  26          --------------------------------------*/
  27          void X5045SpiClose(void)
  28          {
  29   1        EEPROMCS    = 1;//关闭X5045片选CS
  30   1        EEPROMSI   = 1;//SO=SI=1,释放总线
  31   1        EEPROMSO   = 1;
  32   1        EEPROMSCK   = 0;
  33   1      }
  34          
  35          /*--------------------------------------
  36              软件使能X5045写操作
  37          --------------------------------------*/
  38          
  39          void X5045WriteEnable(void)
  40          {
  41   1        X5045SpiOpen();//打开X5045片选
  42   1      //  EEPROMWP = 1;//硬件使能X5045写操作
  43   1        X5045SpiSend(WREN);//发送使能X5045写命令
  44   1        X5045SpiClose();//关闭X5045片选
  45   1      }
  46          
  47          
  48          /*--------------------------------------
  49              软件禁止X5045写操作
  50          --------------------------------------*/
  51          void X5045WriteDisable(void)
  52          {
  53   1        X5045SpiOpen();//打开X5045片选
  54   1        X5045SpiSend(WRDI);//发送禁止X5045写命令
  55   1      //  EEPROMWP = 0;//硬件禁止X5045写操作
C51 COMPILER V7.50   X5045                                                                 07/24/2007 21:41:15 PAGE 2   

  56   1        X5045SpiClose();//关闭X5045片选
  57   1      }
  58          
  59          /*--------------------------------------
  60              X5045收发SPI协议
  61          --------------------------------------*/
  62          unsigned char X5045SpiSend(unsigned char val)
  63          {
  64   1      unsigned char i;
  65   1        ACC = val;
  66   1        for (i = 8; i > 0; i --)
  67   1        {
  68   2               CY = EEPROMSO;//取数据SO
  69   2               _rlca_();//存数据ACC.0读数据ACC.7同时进行
  70   2              
  71   2              EEPROMSI = CY;//送数据SI
  72   2              EEPROMSCK = 1;//上升沿打入数据
  73   2                  _nop_();
  74   2              EEPROMSCK  = 0;//下降沿读入数据(首次为假动作)
  75   2        }
  76   1        return ACC;
  77   1      }
  78          
  79          /*--------------------------------------
  80              写X5045一个字节
  81          --------------------------------------*/
  82          void X5045WriteByte(unsigned int addr, unsigned char val)
  83          {
  84   1      unsigned char temp;
  85   1        temp = WRITE;
  86   1        if ((addr >> 8) & 0x01) temp |= 8;
  87   1        X5045WriteEnable();//使能X5045写操作
  88   1        X5045SpiOpen();//打开X5045片选
  89   1        X5045SpiSend(temp);//发送X5045写命令及高位地址
  90   1        X5045SpiSend(addr & 0xff);//发送X5045写低位地址
  91   1        X5045SpiSend(val);//发送X5045写数据
  92   1        X5045SpiClose();//关闭X5045片选
  93   1        X5045WriteWait();//等待本次X5045写入完成
  94   1        X5045WriteDisable();//禁止X5045写操作
  95   1      }
  96          
  97          
  98          
  99          
 100          /*--------------------------------------
 101              读X5045一个字节
 102          --------------------------------------*/
 103          unsigned char X5045ReadByte(unsigned int addr)
 104          {
 105   1      unsigned char val;
 106   1        X5045SpiOpen();//打开X5045片选
 107   1        val = READ;
 108   1        if ((addr >> 8) & 0x01) val |= 8;
 109   1        X5045SpiSend(val);//发送X5045读命令及高位地址
 110   1        X5045SpiSend(addr & 0xff);//发送X5045读低位地址
 111   1        val = X5045SpiSend(0xff);//接收X5045读数据
 112   1        X5045SpiClose();//关闭X5045片选
 113   1        return val;
 114   1      }
 115          
 116          /*--------------------------------------
 117              读X5045状态
C51 COMPILER V7.50   X5045                                                                 07/24/2007 21:41:15 PAGE 3   

 118          --------------------------------------*/
 119          unsigned char X5045ReadStatus(void)
 120          {
 121   1      unsigned char val;
 122   1        X5045SpiOpen();//打开X5045片选
 123   1        X5045SpiSend(RDSR);//发送读X5045状态命令
 124   1        val = X5045SpiSend(0xff);//接收X5045状态数据
 125   1        X5045SpiClose();//关闭X5045片选
 126   1        return val;
 127   1      }
 128          /*--------------------------------------
 129              写X5045状态
 130          --------------------------------------*/
 131          void X5045WriteStatus(unsigned char val)
 132          {
 133   1        X5045SpiOpen();//打开X5045片选
 134   1        X5045SpiSend(WRSR);//发送写X5045状态命令
 135   1        X5045SpiSend(val);//发送X5045状态数据
 136   1        X5045SpiClose();//关闭X5045片选
 137   1      }
 138          
 139          /*--------------------------------------
 140              等待X5045写入完成
 141          --------------------------------------*/
 142          void X5045WriteWait(void)
 143          {
 144   1        while (X5045ReadStatus() & WIP);//WIP=0 退出
 145   1      } 


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