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

📄 at24c.lst

📁 at24c.c 自己写的,也带有proteus.方便大家学习!!!
💻 LST
字号:
C51 COMPILER V8.02   AT24C                                                                 02/12/2009 21:21:07 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE AT24C
OBJECT MODULE PLACED IN AT24C.OBJ
COMPILER INVOKED BY: E:\protues_keil\keil\C51\BIN\C51.EXE AT24C.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<reg51.h>
   2          #include<intrins.h>
   3          #define uchar unsigned char 
   4          #define uint unsigned int
   5          #define nop _nop_();_nop_();_nop_();//定义空指令
   6          #define addwr 0xa0
   7          #define addrd 0xa1
   8          sbit wp=P1^2;
   9          sbit scl=P1^0;
  10          sbit sda=P1^1;
  11          uchar Number=0xaa;
  12          
  13          mdelay(char j)
  14          {
  15   1       unsigned int i;
  16   1       for(;j>0;j--)
  17   1       {
  18   2        for(i=0;i<20;i++);
  19   2       }
  20   1      }
  21          
  22          void star(void) //起始条件
  23          {scl=1;
  24   1       nop;
  25   1       sda=1;
  26   1       nop;
  27   1       sda=0;
  28   1       nop;
  29   1      }
  30          
  31          void stop(void)    //停止
  32          {
  33   1       sda=0;
  34   1       nop;
  35   1       scl=1;
  36   1       nop;
  37   1       sda=1;
  38   1       nop;
  39   1      }
  40          
  41          void ask(void)          //应答
  42          {
  43   1      
  44   1      
  45   1      scl=1;
  46   1      nop;
  47   1      sda=1;
  48   1      mdelay(20);
  49   1      scl=0;
  50   1      nop;
  51   1      }
  52          
  53          
  54          
  55          void send(uchar date)  //发送写器件地址
C51 COMPILER V8.02   AT24C                                                                 02/12/2009 21:21:07 PAGE 2   

  56          {
  57   1                      uchar i,temp;
  58   1                      temp=date;
  59   1                      for(i=0;i<8;i++)        
  60   1                      {
  61   2                              temp=temp<<1;
  62   2                              scl=0;
  63   2                              nop;
  64   2                              sda=CY;
  65   2                              nop;
  66   2                              scl=1;
  67   2                              nop;
  68   2                      }
  69   1                      scl=0;
  70   1                      nop
  71   1                      sda=1;
  72   1                      nop
  73   1      }
  74          
  75          uchar read(void)                //读一个字节
  76          {
  77   1              uchar m,k;
  78   1              scl=0;
  79   1              nop;
  80   1              sda=1;
  81   1              nop;
  82   1              for(m=0;m<8;m++)
  83   1              {
  84   2                      scl=1;
  85   2                      nop;
  86   2                      k=(k<<1)|sda;
  87   2                      scl=0;
  88   2                      nop;
  89   2              }
  90   1              return  k;
  91   1      
  92   1      }
  93          
  94          void write_rom(uchar data1,uchar add1) //写ROM
  95          { 
  96   1        star();
  97   1        nop;
  98   1        send(addwr);
  99   1        nop;
 100   1        ask();
 101   1        send(add1);
 102   1        nop;
 103   1        ask();
 104   1        nop;
 105   1        send(data1);
 106   1        nop;
 107   1        ask();
 108   1        nop;
 109   1        stop();
 110   1        nop;
 111   1        mdelay(20);
 112   1        nop;
 113   1       }
 114          
 115          
 116          void read_rom(uchar add2) //读ROM
 117          {uchar hehe;
C51 COMPILER V8.02   AT24C                                                                 02/12/2009 21:21:07 PAGE 3   

 118   1       star();
 119   1       nop;
 120   1       send(addwr);
 121   1       nop;
 122   1       ask();
 123   1       nop;
 124   1       send(add2);
 125   1       nop;
 126   1       ask();nop;
 127   1       star();nop;
 128   1       send(addrd);nop;
 129   1       ask();nop;
 130   1       hehe=read();nop;
 131   1       scl=0;
 132   1       stop();
 133   1       Number=hehe;
 134   1      }
 135          
 136          
 137          void main()
 138          {
 139   1       wp=0;
 140   1       write_rom(Number,4);
 141   1       mdelay(20);
 142   1       Number=0;
 143   1       read_rom(4);
 144   1      P2=Number;
 145   1       while(1);
 146   1      
 147   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    310    ----
   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 + -