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

📄 text.lst

📁 我自己的项目
💻 LST
字号:
C51 COMPILER V7.02b   TEXT                                                                 04/25/2003 13:52:13 PAGE 1   


C51 COMPILER V7.02b, COMPILATION OF MODULE TEXT
OBJECT MODULE PLACED IN Text.OBJ
COMPILER INVOKED BY: D:\KEIL_704\C51\BIN\C51.EXE Text.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include <stdio.h>
   2          #include <reg51.h>
   3          
   4          #define WriteDeviceAddress 0xa0
   5          #define ReadDeviceAddress  0xa1
   6          
   7          sbit SCL=P3^5;
   8          sbit SDA=P3^7;
   9          sbit WRITEOK=P1^0;
  10          sbit READOK=P1^1;
  11          sbit COMPAREOK=P1^2;
  12          sbit COMPAREERROR=P1^3;
  13          sbit led4=P1^4;
  14          sbit led5=P1^5;
  15          sbit led6=P1^6;
  16          
  17          void W_Ok_Delay(unsigned int number){
  18   1           unsigned long temp;
  19   1           for(;number!=0;number--){
  20   2              for(temp=3000;temp!=0;temp--){}
  21   2              WRITEOK=!WRITEOK;
  22   2           }
  23   1      } 
  24          
  25          void R_Ok_Delay(unsigned int number){
  26   1           unsigned long temp;
  27   1           for(;number!=0;number--){
  28   2              for(temp=3000;temp!=0;temp--){}
  29   2              READOK=!READOK;
  30   2           }
  31   1      }     
  32          
  33          void Compare_Ok_Delay(unsigned int number){
  34   1           unsigned long temp;
  35   1           for(;number!=0;number--){
  36   2              for(temp=3000;temp!=0;temp--){}
  37   2              COMPAREOK=!COMPAREOK;
  38   2           }
  39   1      } 
  40           
  41          void Start(){
  42   1           SDA=1;
  43   1           SCL=1;
  44   1           SDA=0;
  45   1           SCL=0;
  46   1      }
  47          
  48          void Stop(){
  49   1           SCL=0;
  50   1           SDA=0;
  51   1           SCL=1;
  52   1           SDA=1;
  53   1      }
  54          
  55          void Ack(){
C51 COMPILER V7.02b   TEXT                                                                 04/25/2003 13:52:13 PAGE 2   

  56   1           SDA=0;
  57   1           SCL=1;
  58   1           SCL=0;
  59   1           SDA=1;
  60   1      }
  61          
  62          void NoAck(){
  63   1           SDA=1;
  64   1           SCL=1;
  65   1           SCL=0;
  66   1           //SDA=0;    
  67   1      }
  68          
  69          //void TestAck(){
  70          //     bit Errorbit;
  71          //     SDA=1;
  72          //     SCL=1;
  73          //     Errorbit=SDA;
  74          //     SCL=0;
  75          //     return(Errorbit);
  76          //}
  77          
  78          Write8Bit(unsigned char input){
  79   1             unsigned char temp;
  80   1             for(temp=8;temp!=0;temp--){
  81   2                 SDA=(bit)(input&0x80);
  82   2                 SCL=1;
  83   2                 SCL=0;
  84   2                 input=input<<1;
  85   2                }
  86   1      }
  87          
  88          void Write24C01(unsigned char RomAddress,unsigned char Data[],
  89                          unsigned char Number){
  90   1             unsigned char *Wdata;
  91   1             Wdata=Data;
  92   1             Start();
  93   1             Write8Bit(WriteDeviceAddress);
  94   1             Ack();       
  95   1             Write8Bit(RomAddress);
  96   1             Ack();
  97   1             for(;Number!=0;Number--){
  98   2                 Write8Bit(*Wdata);
  99   2                 Ack();
 100   2                 Wdata++;
 101   2                 }
 102   1             Stop();
 103   1             W_Ok_Delay(10);
 104   1      }              
 105          
 106          Read8Bit(){
 107   1            unsigned char temp,rbyte=0;
 108   1            for(temp=8;temp!=0;temp--){
 109   2                SCL=1;
 110   2                rbyte=rbyte<<1;      
 111   2                rbyte=rbyte|((unsigned char)(SDA));
 112   2                SCL=0;
 113   2               }
 114   1             return(rbyte);
 115   1      }            
 116                 
 117          void Read24C01(unsigned char RomAddress,unsigned char RamAddress[],
C51 COMPILER V7.02b   TEXT                                                                 04/25/2003 13:52:13 PAGE 3   

 118                         unsigned char Number){
 119   1             Start();
 120   1             Write8Bit(WriteDeviceAddress);
 121   1             Ack();
 122   1             Write8Bit(RomAddress);
 123   1             Ack();
 124   1             Start();
 125   1             Write8Bit(ReadDeviceAddress);
 126   1             Ack();       
 127   1             for(;Number!=1;Number--){
 128   2                *RamAddress=Read8Bit();
 129   2                Ack();
 130   2                RamAddress++;   
 131   2                }
 132   1               
 133   1             *RamAddress=Read8Bit();
 134   1             NoAck();
 135   1             Stop();
 136   1             R_Ok_Delay(10);
 137   1      }  
 138                          
 139          void Compare(unsigned char Compare1[],unsigned char Compare2[],
 140                       unsigned char Number){
 141   1             unsigned char *Cdata1;
 142   1             unsigned char *Cdata2;
 143   1             Cdata1=Compare1;
 144   1             Cdata2=Compare2;             
 145   1             for(;Number!=0;Number--){
 146   2                 if(*Cdata1!=*Cdata2) break;
 147   2                 Cdata1++;
 148   2                 Cdata2++;
 149   2                 Compare_Ok_Delay(2);
 150   2             }
 151   1      }        
 152          
 153          void main(void){
 154   1      
 155   1          unsigned char SendBufer[8]={0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88};
 156   1          unsigned char ReceiveBufer[8]={0,0,0,0,0,0,0,0};
 157   1          Write24C01(0x00,SendBufer,8);  
 158   1          Read24C01(0x00,ReceiveBufer,8);
 159   1          Write24C01(0x10,ReceiveBufer,8); 
 160   1         
 161   1          Compare(SendBufer,ReceiveBufer,8);
 162   1          while(1);
 163   1      }       


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