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

📄 24c256.lst

📁 一个基于C51开发的计价秤
💻 LST
字号:
C51 COMPILER V7.50   24C256                                                                03/06/2006 15:21:09 PAGE 1   


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

line level    source

   1          //
   2          //24C32---24C2566
   3          //
   4          #include <SST89x5xxRD2.h>
   5          #include <intrins.h>
   6          #include <stdio.h>
   7          #define uchar unsigned char 
   8          #define uint unsigned int
   9          #define ulong unsigned long
  10          
  11          uchar buf[50];
  12          sbit SDA=P1^0;
  13          sbit SCL=P1^1;
  14          
  15          sbit a0=ACC^0;
  16          sbit a1=ACC^1;
  17          sbit a2=ACC^2;
  18          sbit a3=ACC^3;
  19          sbit a4=ACC^4;
  20          sbit a5=ACC^5;
  21          sbit a6=ACC^6;
  22          sbit a7=ACC^7;
  23          
  24          void delay(uchar n)
  25          {
  26   1              uchar i;
  27   1              uint j;
  28   1              for(i=0;i<n;i++)
  29   1                      for(j=0;j<1000;j++);    
  30   1      }
  31          
  32          void Wait(void)
  33               {
  34   1            _nop_();
  35   1            _nop_();
  36   1            _nop_();
  37   1            _nop_();
  38   1                _nop_();
  39   1           }
  40          
  41          void set_sda_hight(void)
  42               {
  43   1                SDA=1;
  44   1            Wait();
  45   1               }
  46          
  47          void set_sda_low(void)
  48               {
  49   1                SDA=0;
  50   1            Wait();
  51   1               }
  52          
  53          void set_scl_hight(void)
  54               {
  55   1                SCL=1;
C51 COMPILER V7.50   24C256                                                                03/06/2006 15:21:09 PAGE 2   

  56   1            Wait();
  57   1               }
  58          
  59          void set_scl_low(void)
  60               {
  61   1                SCL=0;
  62   1            Wait();
  63   1               }
  64          
  65          void Start(void)
  66          {                
  67   1              Wait();
  68   1              set_sda_hight();
  69   1              set_scl_hight();
  70   1              set_sda_low();
  71   1              set_scl_low();
  72   1      }
  73          
  74          void Stop(void)
  75          { 
  76   1              Wait();
  77   1              set_scl_low();
  78   1              set_sda_low();
  79   1              set_scl_hight();
  80   1              set_sda_hight();
  81   1              delay(10);
  82   1      }
  83          
  84          /*bit get_ack(void)
  85          {
  86                  bit result;
  87                  set_sda_hight();
  88                  set_scl_hight();
  89                  result=SDA;
  90                  set_scl_low();
  91                  return(result);
  92          }*/
  93          
  94          /*void set_ack(void)
  95          {
  96                  set_scl_low();
  97                  set_sda_low();
  98                  set_scl_hight();
  99                  set_scl_low();
 100          }*/
 101          
 102          uchar RB24(void) {
 103   1          ACC=0x00;
 104   1          set_sda_hight();
 105   1              set_scl_hight();a7=SDA;set_scl_low();
 106   1              set_scl_hight();a6=SDA;set_scl_low();
 107   1              set_scl_hight();a5=SDA;set_scl_low();
 108   1              set_scl_hight();a4=SDA;set_scl_low();
 109   1              set_scl_hight();a3=SDA;set_scl_low();
 110   1              set_scl_hight();a2=SDA;set_scl_low();
 111   1              set_scl_hight();a1=SDA;set_scl_low();
 112   1              set_scl_hight();a0=SDA;set_scl_low();
 113   1          set_sda_hight();set_scl_hight();set_scl_low();
 114   1              return(ACC);
 115   1      }
 116          
 117          
C51 COMPILER V7.50   24C256                                                                03/06/2006 15:21:09 PAGE 3   

 118          void WB24(uchar dd) {
 119   1              ACC=dd;
 120   1              SDA=a7;set_scl_hight();set_scl_low();
 121   1              SDA=a6;set_scl_hight();set_scl_low();
 122   1              SDA=a5;set_scl_hight();set_scl_low();
 123   1              SDA=a4;set_scl_hight();set_scl_low();
 124   1              SDA=a3;set_scl_hight();set_scl_low();
 125   1              SDA=a2;set_scl_hight();set_scl_low();
 126   1              SDA=a1;set_scl_hight();set_scl_low();
 127   1              SDA=a0;set_scl_hight();set_scl_low();
 128   1          set_sda_hight();set_scl_hight();
 129   1          set_scl_low();
 130   1      }
 131          
 132          uchar read_byter(uchar address)
 133          {
 134   1              uchar dd;
 135   1              Start();
 136   1              WB24(0xa0);
 137   1              WB24(address);
 138   1              Start();
 139   1              WB24(0xa1);
 140   1              dd=RB24();
 141   1              Stop();
 142   1              return(dd);
 143   1      }
 144          
 145          void write_byter(uchar address,uchar dd)
 146          {    
 147   1              Start();
 148   1              WB24(0xa0);
 149   1              WB24(address);
 150   1              WB24(dd);
 151   1              Stop();
 152   1      }
 153          
 154          void write_eeprom()
 155          {
 156   1              uchar i;
 157   1              for(i=0;i<50;i++)
 158   1              {
 159   2                      write_byter(i,i);
 160   2              }
 161   1      }
 162          
 163          void read_eeprom()
 164          {
 165   1              uchar i;
 166   1              for(i=0;i<50;i++)
 167   1              {
 168   2                      buf[i]=read_byter(i);
 169   2              }
 170   1      }
 171          main()
 172          {
 173   1              while(1)
 174   1              {
 175   2                      write_eeprom();
 176   2                      read_eeprom();
 177   2              }
 178   1      }

C51 COMPILER V7.50   24C256                                                                03/06/2006 15:21:09 PAGE 4   


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