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

📄 x5045v2.lst

📁 51单片机C语言程序——看门狗X25045
💻 LST
字号:
C51 COMPILER V7.50   X5045V2                                                               10/02/2005 13:48:37 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE X5045V2
OBJECT MODULE PLACED IN X5045v2.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\c51.exe X5045v2.c DB OE SMALL ROM(LARGE)

line level    source

   1          /****************************************************************/
   2          /*功能:通过SPI接口向X5045内的EEPROM写入整页(16字节)的数据                       
   3          /*版本:v1.0                           
   4          /*设计人:              
   5          /*编写日期:2005-09-25
   6          /*最后修改日期:      2005-10-02                   
   7          /*状态:passed                                    
   8          /****************************************************************/
   9          /*头文件定义*/
  10          #include <reg51.h>
  11          #include <intrins.h>
  12          /*预定义部分*/
  13          #define uchar unsigned char
  14          #define uint  unsigned int
  15          #define pagenum 16
  16          sbit XCS=P1^0;
  17          sbit XSI=P1^1;
  18          sbit XSCK=P1^2;
  19          sbit XSO=P1^3;
  20          uchar pagedata[32]=/*
  21                             {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
  22                              0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
  23                              0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
  24                              0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f};
  25                              */
  26                             {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
  27                              0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
  28                              0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
  29                              0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};
  30                              
  31          /*函数声明部分*/
  32          void    write_byte(uchar byte);
  33          uchar   read_byte();
  34          void    write_en();
  35          void    write_cmd(uchar cmd);
  36          uchar   read_status();
  37          bit     check_ready();
  38          void    write_one_data(uchar dat);
  39          uchar   read_one_data();
  40          void    write_page(uchar *page,uchar addr);
  41          uchar   *read_page(uchar addr);                
  42          /*主函数部分*/
  43          /*********************************************************************/
  44          /*函数名:main()
  45          /*功能:主函数
  46          /*输入参数:无
  47          /*返回值:无
  48          /*编写日期:
  49          /*最后修改日期:
  50          /********************************************************************/ 
  51          void main()                          
  52          {
  53   1      uchar status;
  54   1      //uchar *page;
  55   1      uint i=1000,j=100;
C51 COMPILER V7.50   X5045V2                                                               10/02/2005 13:48:37 PAGE 2   

  56   1      P1=0xff;
  57   1      XCS=0;XSI=0;XSCK=0;XSO=0;
  58   1      write_en();
  59   1      write_cmd(0x20);
  60   1      status=read_status();
  61   1      while(!check_ready());
  62   1      for(i=0;i<512/16;i++)
  63   1         {
  64   2            write_en();
  65   2            write_page(&pagedata[0],i*32);
  66   2            while(!check_ready());
  67   2            write_en();
  68   2            write_page(&pagedata[16],i*32+16);
  69   2            while(!check_ready());
  70   2         }
  71   1      while(1);
  72   1      }
  73          
  74          /*其他函数定义部分*/
  75          /*********************************************************************/
  76          /*函数名:
  77          /*功能:
  78          /*输入参数:
  79          /*返回值:
  80          /*调用函数:
  81          /*被调用函数:
  82          /*编写日期:
  83          /*最后修改日期:
  84          /********************************************************************/ 
  85          void    write_byte(uchar byte)
  86          {
  87   1      uchar i=0;
  88   1      uchar tmp;
  89   1      for(i=0;i<8;i++)
  90   1         {
  91   2            XSCK=0;
  92   2            tmp=byte&0x80;
  93   2            if(tmp!=0)
  94   2               XSI=1;
  95   2            else
  96   2               XSI=0;
  97   2            XSCK=1;
  98   2            _nop_();
  99   2            byte<<=1;
 100   2         }
 101   1      }
 102          /*********************************************************************/
 103          /*函数名:
 104          /*功能:
 105          /*输入参数:
 106          /*返回值:
 107          /*调用函数:
 108          /*被调用函数:
 109          /*编写日期:
 110          /*最后修改日期:
 111          /********************************************************************/ 
 112          uchar   read_byte()
 113          {
 114   1      uchar i;
 115   1      uchar byte=0;
 116   1      for(i=0;i<8;i++)
 117   1         {
C51 COMPILER V7.50   X5045V2                                                               10/02/2005 13:48:37 PAGE 3   

 118   2            byte<<=1;
 119   2            XSCK=0;
 120   2            _nop_();
 121   2            if(XSO==1)
 122   2               byte+=1;
 123   2            XSCK=1;
 124   2         }
 125   1      XSCK=0;
 126   1      return(byte);
 127   1      }
 128          /*********************************************************************/
 129          /*函数名:
 130          /*功能:
 131          /*输入参数:
 132          /*返回值:
 133          /*调用函数:
 134          /*被调用函数:
 135          /*编写日期:
 136          /*最后修改日期:
 137          /********************************************************************/ 
 138          void    write_en()
 139          {
 140   1      XCS=0;
 141   1      write_byte(0x06);
 142   1      XCS=1;
 143   1      }
 144          /*********************************************************************/
 145          /*函数名:
 146          /*功能:
 147          /*输入参数:
 148          /*返回值:
 149          /*调用函数:
 150          /*被调用函数:
 151          /*编写日期:
 152          /*最后修改日期:
 153          /********************************************************************/ 
 154          void    write_one_data(uchar dat)
 155          {
 156   1      XSCK=0;XCS=0;
 157   1      write_byte(0x02);
 158   1      write_byte(0x00);
 159   1      write_byte(dat);
 160   1      XCS=1;
 161   1      }
 162          /*********************************************************************/
 163          /*函数名:
 164          /*功能:
 165          /*输入参数:
 166          /*返回值:
 167          /*调用函数:
 168          /*被调用函数:
 169          /*编写日期:
 170          /*最后修改日期:
 171          /********************************************************************/ 
 172          uchar   read_one_data()
 173          {
 174   1      uchar dat;
 175   1      XSCK=0;XCS=0;
 176   1      write_byte(0x03);
 177   1      write_byte(0x00);
 178   1      dat=read_byte();
 179   1      XCS=1;
C51 COMPILER V7.50   X5045V2                                                               10/02/2005 13:48:37 PAGE 4   

 180   1      return(dat);
 181   1      }
 182          /*********************************************************************/
 183          /*函数名:
 184          /*功能:
 185          /*输入参数:
 186          /*返回值:
 187          /*调用函数:
 188          /*被调用函数:
 189          /*编写日期:
 190          /*最后修改日期:
 191          /********************************************************************/ 
 192          void    write_cmd(uchar cmd)
 193          {
 194   1      XCS=0;
 195   1      write_byte(0x01);
 196   1      write_byte(cmd);
 197   1      XCS=1;
 198   1      }
 199          /*********************************************************************/
 200          /*函数名:
 201          /*功能:
 202          /*输入参数:
 203          /*返回值:
 204          /*调用函数:
 205          /*被调用函数:
 206          /*编写日期:
 207          /*最后修改日期:
 208          /********************************************************************/ 
 209          uchar   read_status()
 210          {
 211   1      uchar status;
 212   1      XCS=0;
 213   1      write_byte(0x05);
 214   1      status=read_byte();
 215   1      XCS=1;
 216   1      return(status);
 217   1      }
 218          /*********************************************************************/
 219          /*函数名:
 220          /*功能:
 221          /*输入参数:
 222          /*返回值:
 223          /*调用函数:
 224          /*被调用函数:
 225          /*编写日期:
 226          /*最后修改日期:
 227          /********************************************************************/
 228          bit     check_ready()
 229          {
 230   1      uchar status=0xff;
 231   1      write_en();
 232   1      status=read_status();
 233   1      status=status & 0x01;
 234   1      if(!status)
 235   1              return 1;
 236   1      else
 237   1              return 0;
 238   1      }
 239          /*********************************************************************/
 240          /*函数名:
 241          /*功能:
C51 COMPILER V7.50   X5045V2                                                               10/02/2005 13:48:37 PAGE 5   

 242          /*输入参数:
 243          /*返回值:
 244          /*调用函数:
 245          /*被调用函数:
 246          /*编写日期:
 247          /*最后修改日期:
 248          /********************************************************************/ 
 249          void    write_page(uchar *page,uchar addr)
 250          {
 251   1      uchar i;
 252   1      //uchar dat;
 253   1      XSCK=0;XCS=0;
 254   1      write_byte(0x02);
 255   1      write_byte(addr);
 256   1      for(i=0;i<pagenum;i++)
 257   1         {
 258   2      //      dat=page[i]+addr;
 259   2            write_byte(page[i]);//+addr);
 260   2         }
 261   1      XCS=1;
 262   1      }
 263          /*********************************************************************/
 264          /*函数名:
 265          /*功能:
 266          /*输入参数:
 267          /*返回值:
 268          /*调用函数:
 269          /*被调用函数:
 270          /*编写日期:
 271          /*最后修改日期:
 272          /********************************************************************/ 
 273          uchar   *read_page(uchar addr)
 274          {
 275   1      uchar i;
 276   1      uchar page[pagenum];
 277   1      XSCK=0;XCS=0;
 278   1      write_byte(0x03);
 279   1      write_byte(addr);
 280   1      for(i=0;i<pagenum;i++)
 281   1         {
 282   2            page[i]=read_byte();
 283   2         }
 284   1      XCS=1;
 285   1      return(page);
 286   1      }
 287          /********************END********************/


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