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

📄 24c08page.lst

📁 电话单路计费系统!LCD段码显示!电话机设定自由费率,根据反极信号计费及延时计费自由设定!
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.10   24C08PAGE                                                             05/07/2006 17:33:52 PAGE 1   


C51 COMPILER V7.10, COMPILATION OF MODULE 24C08PAGE
OBJECT MODULE PLACED IN 24c08page.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE 24c08page.c OPTIMIZE(9,SPEED) BROWSE DEBUG OBJECTEXTEND CODE

line level    source

   1                            
   2          /*
   3          ****************************************************************************
   4                                  AT24C08 test program, Test ok!,Us with [delay.asm]
   5                                  Write byte Tan-wentang, 2004-08-15
   6          
   7          ****************************************************************************
   8          */
   9          
  10          //#pragma src(at24c08asm.asm)
  11          //#pragma src
  12          
  13          //#pragma CODE
  14          
  15          #include <REG2051.H>
  16          #include <intrins.H>
  17          
  18          #include "AT24C08PAGE_Ok.H"
  19          //#include "project.h"
  20          sbit SCL = P3^4;
  21          sbit SDA = P3^5;
  22          sbit WP  = P3^3;
  23          void delay_ms (unsigned char delaytime);
  24          //=========================================================================
  25          
  26          bit EETestAcknowledge (void) {
  27   1              SDA = 1;          
  28   1              delay_ms(10);
  29   1              SCL = 1;            
  30   1              delay_ms(10);
  31   1              F0 = SDA;
  32   1              delay_ms(10);
  33   1              SCL = 0;             
  34   1              return F0;                  
  35   1      }
  36          //=========================================================================
  37          
  38          unsigned char EEReadByte (void) { 
  39   1              unsigned char d = 0;
  40   1              unsigned char i;
  41   1                   
  42   1              i = 8;
  43   1              do {
  44   2                      SCL = 1;
  45   2                      d *= 2;    
  46   2                      if (SDA) d++;
  47   2                      SCL = 0;           
  48   2              delay_ms(10);
  49   2              } while (--i);
  50   1              return d;                    
  51   1      }
  52          //=========================================================================
  53          
  54          void EESendByte (unsigned char d) {
  55   1              unsigned char i;
C51 COMPILER V7.10   24C08PAGE                                                             05/07/2006 17:33:52 PAGE 2   

  56   1      
  57   1              i = 8;
  58   1              do {
  59   2                      SDA = (bit)(d & 0x80);    
  60   2              delay_ms(10);
  61   2                      SCL = 1;            
  62   2              delay_ms(10);
  63   2                      SCL = 0;            
  64   2                      d *= 2;
  65   2              } while(--i);
  66   1              return;             
  67   1      }        
  68                     
  69          //=========================================================================
  70          
  71          void EEStop (void) {
  72   1              SCL = 0;              
  73   1              delay_ms(10);
  74   1              SDA = 0;              
  75   1              delay_ms(10);
  76   1              SCL = 1;              
  77   1              delay_ms(10);
  78   1              SDA = 1;              
  79   1              return;         
  80   1      }           
  81          //=========================================================================
  82          void EEAcknowledge (void) {
  83   1              SDA = 0;              
  84   1              delay_ms(10);
  85   1              SCL = 1;              
  86   1              delay_ms(10);
  87   1              SCL = 0;              
  88   1              delay_ms(10);
  89   1              SDA = 1;              
  90   1              return;             
  91   1      }
  92          //=========================================================================
  93          void EENoAcknowledge (void) {
  94   1              SDA = 1;             
  95   1              delay_ms(10);
  96   1              SCL = 1;             
  97   1              delay_ms(10);
  98   1              SCL = 0;             
  99   1              return;            
 100   1      }
 101          //=========================================================================
 102          void EEStart (void) {
 103   1              SDA = 1;
 104   1              delay_ms(10);
 105   1              SCL = 1;             
 106   1              delay_ms(10);
 107   1              SDA = 0;             
 108   1              delay_ms(10);
 109   1              SCL = 0;             
 110   1              return;                 
 111   1      }
 112          //=========================================================================
 113          
 114          void EESendWcom (unsigned char Block, com) {
 115   1              EEStart();
 116   1              //EESendByte(0xa0); 
 117   1              EESendByte(0xa0 | com | ((Block & 0x07) * 2)); 
C51 COMPILER V7.10   24C08PAGE                                                             05/07/2006 17:33:52 PAGE 3   

 118   1      }                       
 119          
 120          //=========================================================================
 121          
 122          void EEReadPage (unsigned char *str, unsigned char Block, unsigned char StartAddr, unsigned char n) {
 123   1              WP = 0;
 124   1              EESendWcom(Block , 0x00);
 125   1              EETestAcknowledge();    
 126   1      
 127   1              EESendByte(StartAddr);                 
 128   1              EETestAcknowledge(); 
 129   1                        
 130   1              EEStart();        
 131   1              EESendWcom(Block , 0x01);
 132   1              EETestAcknowledge();  
 133   1                       
 134   1              do {
 135   2                      if (1 == n)     break;
 136   2                      if (0 == n) break;
 137   2                              
 138   2                      *str = EEReadByte();                 
 139   2                      EEAcknowledge();          
 140   2                      str++;
 141   2                      n--;  
 142   2              } while(1);
 143   1              *str = EEReadByte();       
 144   1              EENoAcknowledge();            
 145   1              EEStop();         
 146   1              WP = 1;
 147   1              //EEDelayMs(0x000a);            
 148   1      }       
 149          // 0 1 2 3 4 5 6 7 * 256 = 8 * 0x100 = 0x800 
 150          // 0 1 2 3 4 5 6 7 * 256 = 8 * 0x100 * 8 = 0x4000  
 151          //=========================================================================
 152          //;        MOV    R5, #83H     ;DATAADDR
 153          //;        MOV    R3, 2BH            ;EEPROMADDR
 154          //;        MOV    R2, 2AH            ;EEPROM BLOCK ADDR
 155          //;        MOV    R7, #01H     ;BYTE COUNT
 156          //;        LCALL  L1EE3H        
 157          //=========================================================================
 158          void EEWritePage (unsigned char *str, unsigned char Block, unsigned char StartAddr, unsigned char n) {
 159   1              WP = 0;
 160   1              EESendWcom(Block , 0x00);
 161   1              EETestAcknowledge();    
 162   1      
 163   1              EESendByte(StartAddr);                 
 164   1              EETestAcknowledge();           
 165   1                       
 166   1              do {
 167   2                      if (0 == n) break;
 168   2                      EESendByte(*str);                  
 169   2                      EETestAcknowledge();        
 170   2                      str++;
 171   2                      n--;
 172   2              } while (1);
 173   1              EEStop();         
 174   1              delay_ms(0xfe);
 175   1              WP = 1;
 176   1      }
 177          void delay_ms (unsigned char delaytime)
 178          {                                                                               //22.1184
 179   1              unsigned char i,j;
C51 COMPILER V7.10   24C08PAGE                                                             05/07/2006 17:33:52 PAGE 4   

 180   1              for (i = 0;i < delaytime;i++)
 181   1                      for (j = 0 ;j<delaytime;j++);
 182   1      }
C51 COMPILER V7.10   24C08PAGE                                                             05/07/2006 17:33:52 PAGE 5   

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION EETestAcknowledge (BEGIN)
                                           ; SOURCE LINE # 26
                                           ; SOURCE LINE # 27
0000 D2B5              SETB    SDA
                                           ; SOURCE LINE # 28
0002 7F0A              MOV     R7,#0AH
0004 120000      R     LCALL   _delay_ms
                                           ; SOURCE LINE # 29
0007 D2B4              SETB    SCL
                                           ; SOURCE LINE # 30
0009 7F0A              MOV     R7,#0AH
000B 120000      R     LCALL   _delay_ms
                                           ; SOURCE LINE # 31
000E A2B5              MOV     C,SDA
0010 92D5              MOV     F0,C
                                           ; SOURCE LINE # 32
0012 7F0A              MOV     R7,#0AH
0014 120000      R     LCALL   _delay_ms
                                           ; SOURCE LINE # 33
0017 C2B4              CLR     SCL
                                           ; SOURCE LINE # 34
0019 A2D5              MOV     C,F0
                                           ; SOURCE LINE # 35
001B         ?C0001:
001B 22                RET     
             ; FUNCTION EETestAcknowledge (END)

             ; FUNCTION EEReadByte (BEGIN)
                                           ; SOURCE LINE # 38
                                           ; SOURCE LINE # 39
0000 E4                CLR     A
0001 F500        R     MOV     d,A
                                           ; SOURCE LINE # 42
0003 750008      R     MOV     i,#08H
0006         ?C0004:
                                           ; SOURCE LINE # 43
                                           ; SOURCE LINE # 44
0006 D2B4              SETB    SCL
                                           ; SOURCE LINE # 45
0008 E500        R     MOV     A,d
000A 25E0              ADD     A,ACC
000C F500        R     MOV     d,A
                                           ; SOURCE LINE # 46
000E 30B502            JNB     SDA,?C0005
0011 0500        R     INC     d
0013         ?C0005:
                                           ; SOURCE LINE # 47
0013 C2B4              CLR     SCL
                                           ; SOURCE LINE # 48
0015 7F0A              MOV     R7,#0AH
0017 120000      R     LCALL   _delay_ms
                                           ; SOURCE LINE # 49
001A D500E9      R     DJNZ    i,?C0004
                                           ; SOURCE LINE # 50
001D AF00        R     MOV     R7,d
                                           ; SOURCE LINE # 51
001F         ?C0006:
001F 22                RET     
             ; FUNCTION EEReadByte (END)
C51 COMPILER V7.10   24C08PAGE                                                             05/07/2006 17:33:52 PAGE 6   


             ; FUNCTION _EESendByte (BEGIN)
                                           ; SOURCE LINE # 54
0000 8F00        R     MOV     d,R7
                                           ; SOURCE LINE # 57
0002 750008      R     MOV     i,#08H
0005         ?C0009:
                                           ; SOURCE LINE # 58
                                           ; SOURCE LINE # 59
0005 E500        R     MOV     A,d
0007 33                RLC     A
0008 92B5              MOV     SDA,C
                                           ; SOURCE LINE # 60
000A 7F0A              MOV     R7,#0AH
000C 120000      R     LCALL   _delay_ms
                                           ; SOURCE LINE # 61
000F D2B4              SETB    SCL
                                           ; SOURCE LINE # 62
0011 7F0A              MOV     R7,#0AH
0013 120000      R     LCALL   _delay_ms
                                           ; SOURCE LINE # 63
0016 C2B4              CLR     SCL
                                           ; SOURCE LINE # 64
0018 E500        R     MOV     A,d
001A 25E0              ADD     A,ACC
001C F500        R     MOV     d,A
                                           ; SOURCE LINE # 65
001E D500E4      R     DJNZ    i,?C0009
                                           ; SOURCE LINE # 67
0021         ?C0010:
0021 22                RET     
             ; FUNCTION _EESendByte (END)

             ; FUNCTION EEStop (BEGIN)
                                           ; SOURCE LINE # 71
                                           ; SOURCE LINE # 72
0000 C2B4              CLR     SCL

⌨️ 快捷键说明

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