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

📄 24-2.lst

📁 89C51读写24C02采用89C51, 24C读写
💻 LST
字号:
C51 COMPILER V7.06   24_2                                                                  08/13/2005 21:09:08 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE 24_2
OBJECT MODULE PLACED IN 24-2.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 24-2.c DEBUG OBJECTEXTEND

stmt level    source

   1          //24C读写,11.0592M,经过测试ok
   2          #include<reg51.h>
   3          #include<intrins.h>
   4          #include<stdio.h>
   5          #include<string.h>
   6          #define uchar  unsigned char
   7          #define uint  unsigned int
   8           
   9          
  10          uchar  d10[4];
  11          void del05s();
  12           void delay();
  13          void  ask();
  14          void stop();
  15          void start();
  16          uchar rdby();
  17          void waddr();
  18          void wrby(uchar x);
  19          uchar  raddr();
  20          uchar read(uchar address);
  21          void write(uchar address,uchar dat);
  22          void d5ms();
  23          void w8addr(uchar x);
  24           
  25          sbit ESDA=P1^3;
  26          sbit ECLK=P1^2;
  27          sbit KEY=P3^7;
  28           
  29           
  30          sbit    ACC0=ACC^0;
  31          sbit    ACC1=ACC^1;
  32          sbit    ACC2=ACC^2;
  33          sbit    ACC3=ACC^3;
  34          sbit    ACC4=ACC^4;
  35          sbit    ACC5=ACC^5;
  36          sbit    ACC6=ACC^6;
  37          sbit    ACC7=ACC^7;
  38          
  39          
  40          uchar code ledcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,//0-9
  41                             0x88,0x83,0xa7,0xa1,0x86,0x8e};//数码字型表A-F
  42          //
  43          
  44          //
  45          void main()
  46          
  47          {   unsigned int i,j,k;
  48   1        uchar re,re1,re2;
  49   1      
  50   1       
  51   1        while(1)
  52   1             {
  53   2      
  54   2      
  55   2               P0=0xff;
C51 COMPILER V7.06   24_2                                                                  08/13/2005 21:09:08 PAGE 2   

  56   2         
  57   2               j=0;
  58   2                
  59   2      
  60   2                for (k=0;k<256;k++) { //256=0xff
  61   3                 write(k,k);}
  62   2             
  63   2                 for (k=0;k<256;k++){
  64   3                 re=read(k);
  65   3                 re1=re%0x10; //取高4位
  66   3                 re2=re>>4;//  取低4位
  67   3                  for (j=0;j<5;j++)
  68   3              
  69   3              {
  70   4            
  71   4               P0=ledcode[re1];
  72   4               P2=0xfe;
  73   4               delay();
  74   4                       P0=ledcode[re2];
  75   4               P2=0xfd;
  76   4                       delay();
  77   4           
  78   4              
  79   4           
  80   4               }
  81   3             P2=0xff;delay();delay();
  82   3             //del05s();
  83   3              
  84   3              }         }
  85   1      
  86   1      }
*** WARNING C280 IN LINE 47 OF 24-2.C: 'i': unreferenced local variable
  87          
  88          
  89          void delay()
  90          {unsigned int kk=0x5ff;//0xff
  91   1          do{_nop_();kk--;}
  92   1          while(kk!=0);
  93   1         // ES=0;
  94   1         // KEY=1;
  95   1         // if(KEY==0){SBUF=0x99;while(TI==0){;}TI=0;}
  96   1         // ES=1;
  97   1      }
  98          void del05s()
  99          {unsigned int kk=0xefff;//
 100   1          do{_nop_();kk--;}
 101   1          while(kk!=0);
 102   1      }
 103           
 104          void  ask()
 105              {
 106   1           unsigned int i=0xffff;
 107   1           ESDA=1;_nop_();ECLK=1;_nop_();
 108   1           do
 109   1           {i--;
 110   2           if(ESDA!=1)
 111   2              {ECLK=0;i=0;}
 112   2            }
 113   1            while(i!=0);
 114   1             }
 115          /*###################################*/
 116          void stop()
C51 COMPILER V7.06   24_2                                                                  08/13/2005 21:09:08 PAGE 3   

 117           {
 118   1          ECLK=0; _nop_();
 119   1          ESDA=0; _nop_();
 120   1          ECLK=1; _nop_();
 121   1          ESDA=1;_nop_();
 122   1          ECLK=0;_nop_();
 123   1          }
 124          /*  */
 125          /*###################################*/
 126          /*24c start  */
 127          void start()
 128           {
 129   1        ESDA=1;_nop_();
 130   1        ECLK=1;_nop_();
 131   1        ESDA=0;_nop_();
 132   1        ECLK=0;_nop_();
 133   1        }
 134          /*###################################*/
 135          /*24c rdby  */
 136          uchar rdby()
 137           {      ESDA=1;
 138   1       ECLK=1;_nop_();ACC7=ESDA;ECLK=0;_nop_();
 139   1       ECLK=1;_nop_();ACC6=ESDA;ECLK=0;_nop_();
 140   1       ECLK=1;_nop_();ACC5=ESDA;ECLK=0;_nop_();
 141   1       ECLK=1;_nop_();ACC4=ESDA;ECLK=0;_nop_();
 142   1       ECLK=1;_nop_();ACC3=ESDA;ECLK=0;_nop_();
 143   1       ECLK=1;_nop_();ACC2=ESDA;ECLK=0;_nop_();
 144   1       ECLK=1;_nop_();ACC1=ESDA;ECLK=0;_nop_();
 145   1       ECLK=1;_nop_();ACC0=ESDA;ECLK=0;_nop_();
 146   1        return(ACC);
 147   1      }
 148          /*###################################*/
 149          /*24c waddr  */
 150           void waddr()
 151           {
 152   1        start();
 153   1        wrby(0xa0);
 154   1        ask();}
 155          /*###################################*/
 156          /*24c raddr  */
 157           uchar  raddr()
 158           {
 159   1        start();
 160   1        wrby(0xa1);
 161   1        ask();
 162   1        ACC=rdby();
 163   1        stop();
 164   1        return(ACC);
 165   1      }
 166          /*###################################*/
 167          void wrby(uchar x)
 168          
 169          {       ACC=x;
 170   1              ESDA=ACC7;ECLK=1;_nop_();ECLK=0;_nop_();
 171   1              ESDA=ACC6;ECLK=1;_nop_();ECLK=0;_nop_();
 172   1              ESDA=ACC5;ECLK=1;_nop_();ECLK=0;_nop_();
 173   1              ESDA=ACC4;ECLK=1;_nop_();ECLK=0;_nop_();
 174   1              ESDA=ACC3;ECLK=1;_nop_();ECLK=0;_nop_();
 175   1              ESDA=ACC2;ECLK=1;_nop_();ECLK=0;_nop_();
 176   1              ESDA=ACC1;ECLK=1;_nop_();ECLK=0;_nop_();
 177   1              ESDA=ACC0;ECLK=1;_nop_();ECLK=0;_nop_();
 178   1       ESDA=1;_nop_();ECLK=1;
C51 COMPILER V7.06   24_2                                                                  08/13/2005 21:09:08 PAGE 4   

 179   1       }
 180          /*####################################*/
 181          //-----------------------------------------------------
 182          //从指定的地址中读出一个字节数据涵
 183          //-----------------------------------------------------
 184          uchar read(uchar address)
 185          
 186            {     waddr();
 187   1              w8addr(address);
 188   1              //ACC=raddr();
 189   1        return(raddr());
 190   1        }
 191            
 192          //-----------------------------------------------------
 193          //向指定的地址中写入一个字节数据涵数
 194          //----------------------------------------------------- 
 195          void write(uchar address,uchar dat)
 196             {    //EWP=0;
 197   1          waddr();
 198   1         w8addr(address);
 199   1          wrby(dat);
 200   1          ask();
 201   1          stop();
 202   1          d5ms();
 203   1          //EWP=1;
 204   1         }
 205          /* 延时*/
 206          void d5ms()
 207           { uchar a, b;
 208   1         for (a=0;a<=15;a++)
 209   1         {
 210   2           for (b=0;b<0x7f;b++)
 211   2               {;}
 212   2         }
 213   1       }
 214           
 215          
 216          void w8addr(uchar  x)
 217                { 
 218   1                  wrby(x );
 219   1                  ask();
 220   1                   
 221   1              }
 222          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    478    ----
   CONSTANT SIZE    =     16    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      4      11
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  1 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -