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

📄 at24.lst

📁 自己做的单片机Proteus仿真实例
💻 LST
字号:
C51 COMPILER V8.02   AT24                                                                  07/17/2012 10:52:35 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE AT24
OBJECT MODULE PLACED IN AT24.OBJ
COMPILER INVOKED BY: D:\keil\C51\BIN\C51.EXE AT24.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg51.h>
   2          #define uchar unsigned char
   3          #define uint unsigned int
   4          bit  write=0;
   5          sbit seg1=P2^0;
   6          sbit seg2=P2^1;
   7          sbit scl=P2^6;
   8          sbit sda=P2^7;
   9          uchar sec,temp,aa;
  10          uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  11          void delay()
  12          {;;;}
  13          void delayms(uint z)
  14          {
  15   1            uint i,j;
  16   1                for(i=z;i>0;i--)
  17   1                  for(j=110;j>0;j--);
  18   1      }
  19          void start()
  20          {
  21   1            sda=1;
  22   1                delay();
  23   1                scl=1;
  24   1                delay();
  25   1                sda=0;
  26   1                delay();
  27   1      }
  28          void stop()
  29          {
  30   1            sda=0;
  31   1                delay();
  32   1                scl=1;
  33   1                delay();
  34   1                sda=1;
  35   1                delay();
  36   1      }
  37          void respons()
  38          {
  39   1            uchar x;
  40   1                scl=1;
  41   1                delay();
  42   1                while((sda==1)&&(x<250))
  43   1                     x++;
  44   1            scl=0;
  45   1                delay();
  46   1      }
  47          void init()
  48          {         seg1=1;
  49   1            seg2=1;
  50   1            sda=1;
  51   1                delay();
  52   1                scl=1;
  53   1                delay();
  54   1      }
  55          void write_byte(uchar date)
C51 COMPILER V8.02   AT24                                                                  07/17/2012 10:52:35 PAGE 2   

  56          {
  57   1            uchar i,j;
  58   1                j=date;
  59   1                for(i=0;i<8;i++)
  60   1                {
  61   2                       j=j<<1;
  62   2                               scl=0;
  63   2                               delay();
  64   2                               sda=CY;
  65   2                               delay();
  66   2                               scl=1;
  67   2                               delay();
  68   2            }
  69   1                scl=0;
  70   1                delay();
  71   1                sda=1;
  72   1                delay();
  73   1      }
  74          uchar read_byte()
  75          {
  76   1            uchar i,k;
  77   1                scl=0;
  78   1                delay();
  79   1                sda=1;
  80   1                delay();
  81   1                for(i=0;i<8;i++)
  82   1                {
  83   2                       scl=1;
  84   2                               delay();
  85   2                               k=(k<<1)|sda;
  86   2                               scl=0;
  87   2                               delay();
  88   2                }
  89   1                return  k;
  90   1      }
  91          void  write_add(uchar address,uchar date)
  92          {
  93   1            start();
  94   1                write_byte(0xa0);
  95   1                respons();
  96   1                write_byte(address);
  97   1                respons();
  98   1                write_byte(date);
  99   1                respons();
 100   1                stop();
 101   1      }
 102          uchar read_add(uchar address)
 103          {
 104   1            uchar date;
 105   1                start();
 106   1                write_byte(0xa0);
 107   1                respons();
 108   1                write_byte(address);
 109   1                respons();
 110   1                start();
 111   1                write_byte(0xa1);
 112   1                respons();
 113   1                date=read_byte();
 114   1                stop();
 115   1                return date;
 116   1      }
 117          void display(uchar shi,uchar ge)
C51 COMPILER V8.02   AT24                                                                  07/17/2012 10:52:35 PAGE 3   

 118          {
 119   1            P0=0xff;
 120   1                seg1=0;
 121   1                P0=table[shi];
 122   1                delayms(5);
 123   1                seg1=1;
 124   1                P0=0xff;
 125   1                seg2=0;
 126   1                P0=table[ge];
 127   1                delayms(5);
 128   1                seg2=1;
 129   1      }
 130          void main()
 131          {
 132   1            init();
 133   1                TMOD=0x01;
 134   1                ET0=1;
 135   1                EA=1;
 136   1                TH0=(65536-50000)/256;
 137   1                TL0=(65536-50000)%256;
 138   1                TR0=1;
 139   1                while(1)
 140   1                {
 141   2                        display(sec/10,sec%10);
 142   2                                if (write==1)
 143   2                                {
 144   3                                        write=0;
 145   3                                                write_add(2,sec);
 146   3                                }
 147   2                                aa=read_add(2);
 148   2                                 if(aa==100)
 149   2                                      aa=0;
 150   2                                P1=aa;
 151   2                }
 152   1      }
 153          void ser() interrupt 1
 154          {
 155   1            
 156   1                TH0=(65536-50000)/256;
 157   1                TL0=(65536-50000)%256;
 158   1                temp++;
 159   1                if(temp==20)
 160   1                {
 161   2                        temp=0;
 162   2                                sec++;
 163   2                                write=1;
 164   2                                if(sec==100)
 165   2                                      sec=0;
 166   2                }
 167   1      }
 168          
 169          
 170          
 171          
 172          
 173          
 174          
 175          
 176                                  
 177          
 178          
 179          
C51 COMPILER V8.02   AT24                                                                  07/17/2012 10:52:35 PAGE 4   

 180          
 181          
 182          
 183          
 184          
 185          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    364    ----
   CONSTANT SIZE    =     10    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      3       1
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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