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

📄 14.lst

📁 刚学时编的小程序
💻 LST
字号:
C51 COMPILER V8.02   14                                                                    03/12/2007 19:31:22 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE 14
OBJECT MODULE PLACED IN 14.OBJ
COMPILER INVOKED BY: d:\Keil 8\C51\BIN\C51.EXE 14.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<AT89X51.H>
   2          #include<intrins.h>
   3          
   4          #define uchar unsigned char
   5          #define uint unsigned int 
   6          #define addwr 0xa0
   7          #define addrd 0xa1
   8          
   9          sbit sda=P3^7;
  10          sbit scl=P3^6;
  11          sbit wp=P3^5;
  12          
  13          void mdelay(uchar j)
  14          {
  15   1              uint i;
  16   1              for(;j>0;j--)
  17   1              {
  18   2                      for(i=0;i<125;i--)
  19   2                      {;}
  20   2              }
  21   1      }
  22          
  23          void start(void)
  24          {
  25   1              sda=1;
  26   1              scl=1;
  27   1              _nop_();_nop_();_nop_();_nop_();
  28   1              sda=0;
  29   1              _nop_();_nop_();_nop_();_nop_();
  30   1      }
  31          
  32          void stop(void)
  33          {
  34   1              sda=0;
  35   1              scl=1;
  36   1              _nop_();_nop_();_nop_();_nop_();
  37   1              sda=1;
  38   1              _nop_();_nop_();_nop_();_nop_();
  39   1      
  40   1      }
  41          
  42          void ack(void)
  43          {
  44   1              sda=0;
  45   1              _nop_();_nop_();_nop_();_nop_();
  46   1              scl=1;
  47   1              _nop_();_nop_();_nop_();_nop_();
  48   1              scl=0;
  49   1      }
  50          
  51          void noack(void)
  52          {
  53   1              sda=1;
  54   1              _nop_();_nop_();_nop_();_nop_();
  55   1              scl=1;
C51 COMPILER V8.02   14                                                                    03/12/2007 19:31:22 PAGE 2   

  56   1              _nop_();_nop_();_nop_();_nop_();
  57   1              scl=0;
  58   1      }
  59          
  60          void send(uchar Data)
  61          {
  62   1              uchar bitcounter=8;
  63   1              uchar temp;
  64   1              do
  65   1              {
  66   2                      temp=Data;
  67   2                      scl=0;
  68   2                      _nop_();_nop_();_nop_();_nop_();
  69   2                      if((temp&0x80)==0x80)
  70   2                      sda=1;
  71   2                      else
  72   2                      sda=0;
  73   2                      scl=1;
  74   2                      temp=Data<<1;
  75   2                      Data=temp;
  76   2                      bitcounter--;
  77   2              }while(bitcounter);
  78   1              scl=0;
  79   1      }
  80          
  81          uchar read(void)
  82          {
  83   1              uchar temp=0;
  84   1              uchar temp1=0;
  85   1              uchar bitcounter=8;
  86   1              sda=1;
  87   1              do
  88   1              {
  89   2                      scl=0;
  90   2                      _nop_();_nop_();_nop_();_nop_();
  91   2                      scl=1;
  92   2                      _nop_();_nop_();_nop_();_nop_();
  93   2                      if(sda)
  94   2                      temp=temp|0x01;
  95   2                      else
  96   2                      temp=temp&0xfe;
  97   2                      if(bitcounter-1)
  98   2                      {
  99   3                              temp1=temp<<1;
 100   3                              temp=temp1;
 101   3                      }
 102   2                      bitcounter--;
 103   2              }while(bitcounter);
 104   1              return(temp);
 105   1      }
 106          
 107          void wrtorom(uchar Data[],uchar address,uchar num)
 108          {
 109   1              uchar i;
 110   1              uchar *pData;
 111   1              pData=Data;
 112   1              for(i=0;i<num;i++)
 113   1              {
 114   2                      start();
 115   2                      send(0xa0);
 116   2                      ack();
 117   2                      send(address+i);
C51 COMPILER V8.02   14                                                                    03/12/2007 19:31:22 PAGE 3   

 118   2                      ack();
 119   2                      send(*(pData+i));
 120   2                      ack();
 121   2                      stop();
 122   2                      mdelay(20);
 123   2              }
 124   1      }
 125          
 126          void rdfromrom(uchar Data[],uchar address,uchar num)
 127          {
 128   1              uchar i;
 129   1              uchar *pData;
 130   1              pData=Data;
 131   1              for(i=0;i<num;i++)
 132   1              {
 133   2                      start();
 134   2                      send(0xa0);
 135   2                      ack();
 136   2                      send(address+i);
 137   2                      ack();
 138   2                      start();
 139   2                      send(0xa1);
 140   2                      ack();
 141   2                      *(pData+i)=read();
 142   2                      scl=0;
 143   2                      noack();
 144   2                      stop();
 145   2              }
 146   1      }
 147          
 148          void main()
 149          {
 150   1              uchar number[4]={1,2,3,4};
 151   1              wp=1;
 152   1              wrtorom(number,4,4);
 153   1              mdelay(20);
 154   1              number[0]=0;
 155   1              number[1]=0;
 156   1              number[2]=0;
 157   1              number[3]=0;
 158   1              rdfromrom(number,4,4)   ;
 159   1      }
 160          
 161          
 162          
 163          
 164          
 165          
 166          
 167          
 168          
 169          
 170          
 171          
 172          
 173          
 174          
 175          
 176          
 177          
 178          
 179          
C51 COMPILER V8.02   14                                                                    03/12/2007 19:31:22 PAGE 4   

 180          
 181          
 182          
 183          
 184          
 185          
 186          
 187          
 188          
 189          
 190          
 191          
 192          
 193          
 194          
 195          
 196          
 197          
 198          
 199          
 200          
 201          
 202          
 203          
 204          
 205          
 206          
 207          
 208          
 209          
 210          
 211          
 212          
 213          
 214          
 215          
 216          
 217          
 218          
 219          
 220          
 221          
 222          
 223          
 224          
 225          
 226          
 227          
 228          
 229          


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