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

📄 at2402.lst

📁 24c02存储小时钟程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
C51 COMPILER V8.02   AT2402                                                                03/02/2009 16:30:29 PAGE 1   


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

line level    source

   1          
   2          /*********************************************************
   3          AT2402
   4          
   5          按键K1为位选数码管
   6          按键K2为加。。。。+
   7          按键K3为加。。。。-
   8          按键K4为保存。。。Save
   9          *********************************************************/
  10          #include <reg51.h>
  11          #include <intrins.h>
  12          
  13          #define OP_READ 0xa1            // 器件地址以及读取操作
  14          #define OP_WRITE 0xa0           // 器件地址以及写入操作
  15          #define MAX_ADDR 0x7f           // AT24C02最大地址
  16          
  17          //********************************************************************************
  18          unsigned char data disp_code[11]={0xc0,0xf9,0xa4,0xb0,  // 0, 1, 2, 3
  19                                          0x99,0x92,0x82,0xf8,0x80,0x90, 0xff};// 4, 5, 6, 7, 8, 9, off
  20          //********************************************************************************
  21          sbit SDA = P3^5;
  22          sbit SCL = P3^6;
  23          
  24          sbit k1=P1^0;//按键K1为位选数码管
  25          sbit k2=P1^1;//按键K2为加。。。。+
  26          sbit k3=P1^2;//按键K3为加。。。。-
  27          sbit k4=P1^3;//按键K4为保存。。。Save
  28          
  29          sbit disp_bit0=P2^0;
  30          sbit disp_bit1=P2^1;
  31          sbit disp_bit2=P2^2;
  32          sbit disp_bit3=P2^3;
  33          sbit disp_bit4=P2^4;
  34          sbit disp_bit5=P2^5;
  35          sbit disp_bit6=P2^6;
  36          sbit disp_bit7=P2^7;
  37          void start();
  38          void stop();
  39          unsigned char shin();
  40          unsigned char key_scan();
  41          bit shout(unsigned char write_data);
  42          unsigned char read_random(unsigned char random_addr);
  43          void write_byte( unsigned char addr, unsigned char write_data);
  44          
  45          void delay_1ms(unsigned char ms);
  46          //********************************************************************************
  47          bit flash_bit,flash_cpl;
  48          unsigned char eeprom_data[8],key_s,key_v,flash_number_bit,flash_500ms,disp_bit;
  49          main(void)
  50          {
  51   1              unsigned char i,key_number;
  52   1              TMOD&=0xf0;
  53   1              TMOD|=0x01;
  54   1              TH0=0xec;
  55   1              TL0=0x78;
C51 COMPILER V8.02   AT2402                                                                03/02/2009 16:30:29 PAGE 2   

  56   1              ET0=1;
  57   1              EA=1;
  58   1              flash_500ms=0x00;
  59   1              flash_cpl=1;
  60   1              flash_bit=1;
  61   1              key_number=0x00;
  62   1              disp_bit=0x00;
  63   1              SDA = 1;
  64   1              SCL = 1;
  65   1          TR0=1;      
  66   1              for(i = 0 ; i < 8; i++)         //读出显示代码到AT24Cxx
  67   1                eeprom_data[i]=read_random(i);
  68   1                
  69   1              for(;;)
  70   1              {
  71   2            key_s=key_scan();
  72   2                 if(key_s^key_v)
  73   2                  {
  74   3                        delay_1ms(10);
  75   3                        key_s=key_scan();
  76   3                        if(key_s^key_v)
  77   3                          {
  78   4                               key_v=key_s;
  79   4                                if((key_s&0x08)==0x00)
  80   4                                   {
  81   5                                        flash_bit=0;
  82   5                                        key_number=0x01;
  83   5                                        flash_number_bit=0x01;
  84   5                                        do
  85   5                                         {
  86   6                                          key_s=key_scan();
  87   6                                              if(key_s^key_v)
  88   6                                                {
  89   7                                                 delay_1ms(10);
  90   7                             key_s=key_scan();
  91   7                                                 if(key_s^key_v)
  92   7                                                   {
  93   8                                                        key_v=key_s;
  94   8                                                        if((key_s&0x08)==0x00)
  95   8                                                           {
  96   9                                                                key_number=0x02;
  97   9                                                                flash_number_bit=0x02;
  98   9                                                               }
  99   8                                                        else if((key_s&0x04)==0x00)
 100   8                                                            {
 101   9                                                                 if(++eeprom_data[0]==0x0a)
 102   9                                                                     eeprom_data[0]=0x00;
 103   9                                                                }
 104   8                                                        else if((key_s&0x02)==0x00)
 105   8                                                            {
 106   9                                                                 if(--eeprom_data[0]==0xff)
 107   9                                                                      eeprom_data[0]=0x00;
 108   9                                                                }
 109   8                                 else if((key_s&0x01)==0x00)
 110   8                                      {
 111   9                                                                       for(i=0;i<8;i++)
 112   9                                       write_byte(i, eeprom_data[i]);
 113   9                                                                       flash_bit=1;
 114   9                                                                       key_number=0x00;
 115   9                                      } 
 116   8                                                       }
 117   7                                                }
C51 COMPILER V8.02   AT2402                                                                03/02/2009 16:30:29 PAGE 3   

 118   6                                         }while(key_number==0x01);
 119   5                         do
 120   5                                          {
 121   6                                               key_s=key_scan();
 122   6                                               if(key_s^key_v)
 123   6                                                 {
 124   7                                                  delay_1ms(10);
 125   7                                                      key_s=key_scan();
 126   7                                                       if(key_s^key_v)
 127   7                                                        {
 128   8                                                         key_v=key_s;
 129   8                                                         if((key_s&0x08)==0x00)
 130   8                                                           {
 131   9                                                                key_number=0x03;
 132   9                                                                flash_number_bit=0x03;
 133   9                                                               }
 134   8                                                         else if((key_s&0x04)==0x00)
 135   8                                                            {
 136   9                                                                 if(++eeprom_data[1]==0x0a)
 137   9                                                                    eeprom_data[1]=0x00;
 138   9                                                                }
 139   8                                                         else if((key_s&0x02)==0x00)
 140   8                                                              {
 141   9                                                                       if(--eeprom_data[1]==0xff)
 142   9                                                                          eeprom_data[1]=0x00;
 143   9                                                                      }
 144   8                                                         else if((key_s&0x01)==0x00)
 145   8                                                              { for(i=0;i<8;i++)
 146   9                                                                        write_byte(i, eeprom_data[i]);
 147   9                                                                        flash_bit=1;
 148   9                                                                        key_number=0x00;
 149   9                                                                      }
 150   8                                                        }
 151   7                                                 }
 152   6                                              }while(key_number==0x02);
 153   5                          do
 154   5                                          {
 155   6                                               key_s=key_scan();
 156   6                                               if(key_s^key_v)
 157   6                                                 {
 158   7                                                  delay_1ms(10);
 159   7                                                      key_s=key_scan();
 160   7                                                       if(key_s^key_v)
 161   7                                                        {
 162   8                                                         key_v=key_s;
 163   8                                                         if((key_s&0x08)==0x00)
 164   8                                                           {
 165   9                                                                key_number=0x04;
 166   9                                                                flash_number_bit=0x04;
 167   9                                                               }
 168   8                                                         else if((key_s&0x04)==0x00)
 169   8                                                            {
 170   9                                                                 if(++eeprom_data[2]==0x0a)
 171   9                                                                    eeprom_data[2]=0x00;
 172   9                                                                }
 173   8                                                         else if((key_s&0x02)==0x00)
 174   8                                                              {
 175   9                                                                       if(--eeprom_data[2]==0xff)
 176   9                                                                          eeprom_data[2]=0x00;
 177   9                                                                      }
 178   8                                                         else if((key_s&0x01)==0x00)
 179   8                                                              { 
C51 COMPILER V8.02   AT2402                                                                03/02/2009 16:30:29 PAGE 4   

 180   9                                                                        for(i=0;i<8;i++)
 181   9                                                                        write_byte(i,eeprom_data[i]);
 182   9                                                                        flash_bit=1;
 183   9                                                                        key_number=0x00;
 184   9                                                                      }
 185   8                                                        }
 186   7                                                 }
 187   6                                              }while(key_number==0x03);
 188   5                                              do
 189   5                                          {
 190   6                                               key_s=key_scan();
 191   6                                               if(key_s^key_v)
 192   6                                                 {
 193   7                                                  delay_1ms(10);
 194   7                                                      key_s=key_scan();
 195   7                                                       if(key_s^key_v)
 196   7                                                        {
 197   8                                                         key_v=key_s;
 198   8                                                         if((key_s&0x08)==0x00)
 199   8                                                           {
 200   9                                                                key_number=0x05;
 201   9                                                                flash_number_bit=0x05;
 202   9                                                               }
 203   8                                                         else if((key_s&0x04)==0x00)
 204   8                                                            {
 205   9                                                                 if(++eeprom_data[3]==0x0a)
 206   9                                                                    eeprom_data[3]=0x00;
 207   9                                                                }
 208   8                                                         else if((key_s&0x02)==0x00)
 209   8                                                              {
 210   9                                                                       if(--eeprom_data[3]==0xff)
 211   9                                                                          eeprom_data[3]=0x00;
 212   9                                                                      }
 213   8                                                         else if((key_s&0x01)==0x00)
 214   8                                                              { 
 215   9                                                                        for(i=0;i<8;i++)
 216   9                                                                        write_byte(i,eeprom_data[i]);
 217   9                                                                        flash_bit=1;
 218   9                                                                        key_number=0x00;
 219   9                                                                      }
 220   8                                                        }
 221   7                                                 }
 222   6                                              }while(key_number==0x04);
 223   5                                              do
 224   5                                          {
 225   6                                               key_s=key_scan();
 226   6                                               if(key_s^key_v)
 227   6                                                 {
 228   7                                                  delay_1ms(10);
 229   7                                                      key_s=key_scan();
 230   7                                                       if(key_s^key_v)
 231   7                                                        {
 232   8                                                         key_v=key_s;
 233   8                                                         if((key_s&0x08)==0x00)
 234   8                                                           {
 235   9                                                                key_number=0x06;
 236   9                                                                flash_number_bit=0x06;
 237   9                                                               }
 238   8                                                         else if((key_s&0x04)==0x00)
 239   8                                                            {
 240   9                                                                 if(++eeprom_data[4]==0x0a)
 241   9                                                                    eeprom_data[4]=0x00;
C51 COMPILER V8.02   AT2402                                                                03/02/2009 16:30:29 PAGE 5   

 242   9                                                                }
 243   8                                                         else if((key_s&0x02)==0x00)
 244   8                                                              {

⌨️ 快捷键说明

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