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

📄 at45db041b.lst

📁 编程环境:keilC51 AT45DB041B为常用很不错的EEPROM芯片 本源码已经经过05年的调试,运行正常
💻 LST
字号:
C51 COMPILER V7.50   AT45DB041B                                                            10/13/2006 15:35:59 PAGE 1   


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

line level    source

   1          /*     AT45DB041B:
   2                           2.5--3.6V;SCK可达20MHz
   3                           2048页  264B/页  8页/块;
   4                           2个264B缓冲;
   5                           支持页,块擦除;
   6          */
   7          #include<reg52.h>
   8          
   9          #define uchar unsigned char
  10          #define uint unsigned int
  11          
  12          //-----------------------------------读命令;
  13          #define continuous_array_read_0 0x68
  14          #define continuous_array_read_3 0xe8
  15          #define main_memory_page_read_0 0x52
  16          #define main_memory_page_read_3 0xd2
  17          #define buffer1_read_0 0x54
  18          #define buffer1_read_3 0xd4 
  19          #define buffer2_read_0 0x56
  20          #define buffer2_read_3 0xd6
  21          #define status_register_read_0 0x57
  22          #define status_register_read_3 0xd7
  23          //------------------------------------写和檫命令
  24          #define buffer1_write 0x84
  25          #define buffer2_write 0x87
  26          #define B1_to_main_page_program_erase 0x83
  27          #define B2_to_main_page_program_erase 0x86
  28          #define B1_to_main_page_program_without_erase 0x88
  29          #define B2_to_main_page_program_without_erase 0x89
  30          #define paga_erase 0x81
  31          #define block_erase 0x50 
  32          #define main_page_program_through_B1 0x82
  33          #define main_page_program_through_B2 0x85
  34          //------------------------------------其他命令
  35          #define mian_to_B1_transfer 0x53
  36          #define mian_to_B2_transfer 0x55
  37          #define main_paga_to_buffer1_compare 0x60
  38          #define main_paga_to_buffer2_compare 0x61
  39          #define auto_page_rewrite_through_B1 0x58
  40          #define auto_page_rewrite_through_B2 0x59
  41          
  42          sbit AT45db041B_SI=P2^4;
  43          sbit AT45db041B_SCK=P2^5; 
  44          //sbit AT45db041B_nRESET=P0^0; 
  45          sbit AT45db041B_nCS=P2^7; 
  46          //sbit AT45db041B_nWP=P0^0; 
  47          sbit AT45db041B_SO=P2^6;
  48          
  49          delay(uint i)
  50          {while(--i);}
  51          
  52          void CSH(void)
  53          {
  54   1        AT45db041B_SO=1;
  55   1        AT45db041B_nCS=1;
C51 COMPILER V7.50   AT45DB041B                                                            10/13/2006 15:35:59 PAGE 2   

  56   1        AT45db041B_SCK=0;
  57   1        AT45db041B_nCS=0;
  58   1        delay(1);
  59   1      }
  60          void AT45041B_BYTE_WRITE(uchar d)
  61          {
  62   1              uchar i=0,j=8;
  63   1              while(j--)
  64   1                   {
  65   2                       AT45db041B_SI=d&0x80;
  66   2                       d<<=1;
  67   2                       AT45db041B_SCK=1;delay(1);
  68   2                       AT45db041B_SCK=0;delay(1);
  69   2                   }
  70   1               //AT45db041B_nCS=1;
  71   1               delay(1);       
  72   1      }
  73          uchar AT45041B_BYTE_READ ()
  74          {
  75   1        uchar i=0,j=8;
  76   1       // AT45db041B_SCK=1;delay(1);
  77   1       // AT45db041B_SCK=0;delay(1);
  78   1        while(j--)
  79   1             {
  80   2              i<<=1;
  81   2              if(AT45db041B_SO)i=i|0x01;
  82   2              AT45db041B_SCK=1;delay(1);
  83   2                  AT45db041B_SCK=0;delay(1);          
  84   2             } 
  85   1        //AT45db041B_nCS=1;
  86   1        return(i);
  87   1        delay(1);     
  88   1      }
  89          
  90          void main(void)
  91          {
  92   1              CSH();
  93   1              AT45041B_BYTE_WRITE(buffer1_write);
  94   1                      AT45041B_BYTE_WRITE(0x00);
  95   1                  AT45041B_BYTE_WRITE(0x00);
  96   1                  AT45041B_BYTE_WRITE(0x01);
  97   1                    AT45041B_BYTE_WRITE(0xfe);
  98   1                    AT45041B_BYTE_WRITE(0xfc);
  99   1                    AT45041B_BYTE_WRITE(0xf8);
 100   1                        AT45041B_BYTE_WRITE(0xf0);
 101   1              AT45db041B_nCS=1;delay(10);
 102   1              
 103   1      //      CSH();
 104   1      //      AT45041B_BYTE_WRITE(status_register_read_0);
 105   1      //      AT45db041B_SCK=1;delay(1);
 106   1      //      AT45db041B_SCK=0;delay(1);
 107   1      //      P0=AT45041B_BYTE_READ ();
 108   1      while(1)
 109   1              {
 110   2              CSH();
 111   2              AT45041B_BYTE_WRITE(buffer1_read_0);
 112   2                AT45041B_BYTE_WRITE(0x00);
 113   2                AT45041B_BYTE_WRITE(0x00);
 114   2                AT45041B_BYTE_WRITE(0x01);
 115   2                AT45041B_BYTE_WRITE(0x00);
 116   2                  AT45db041B_SCK=1;delay(1);  AT45db041B_SCK=0;delay(1);
 117   2                      P0=AT45041B_BYTE_READ ();delay(50000);delay(50000);delay(50000);delay(50000);delay(50000);
C51 COMPILER V7.50   AT45DB041B                                                            10/13/2006 15:35:59 PAGE 3   

 118   2                  P0=AT45041B_BYTE_READ ();delay(50000);delay(50000);delay(50000);delay(50000);delay(50000);
 119   2                  P0=AT45041B_BYTE_READ ();delay(50000);delay(50000);delay(50000);delay(50000);delay(50000);
 120   2                      P0=AT45041B_BYTE_READ ();delay(50000);delay(50000);delay(50000);delay(50000);delay(50000);
 121   2              AT45db041B_nCS=1;delay(10);
 122   2              }
 123   1      //      while(1);
 124   1      
 125   1      }


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