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

📄 at24c02_8.lst

📁 AT24C02的驱动~ 包含基本的读和写~ 还有用LCD1602显示读出来的字符和数字~
💻 LST
📖 第 1 页 / 共 2 页
字号:
  22   1              for(k=91;k>0;k--);
  23   1      }
  24          
  25          
  26          
  27          void main(void)
  28          {
  29   1              unsigned char i;
  30   1              for(i=0;i<256;i++)
  31   1              {
  32   2                      Write24C02(i,i);
  33   2                      P1=Read24C02(i);
  34   2                      delay1000ms();
  35   2              }
  36   1      }
C51 COMPILER V7.06   AT24C02_8                                                             08/01/2008 19:49:45 PAGE 7   

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION delay1ms (BEGIN)
                                           ; SOURCE LINE # 48
                                           ; SOURCE LINE # 49
                                           ; SOURCE LINE # 51
;---- Variable 'i' assigned to Register 'R7' ----
0000 7F05              MOV     R7,#05H
0002         ?C0001:
                                           ; SOURCE LINE # 52
;---- Variable 'j' assigned to Register 'R6' ----
0002 7E1C              MOV     R6,#01CH
0004         ?C0004:
                                           ; SOURCE LINE # 53
;---- Variable 'k' assigned to Register 'R5' ----
0004 7D02              MOV     R5,#02H
0006         ?C0007:
0006 DDFE              DJNZ    R5,?C0007
0008         ?C0006:
0008 DEFA              DJNZ    R6,?C0004
000A         ?C0003:
000A DFF6              DJNZ    R7,?C0001
                                           ; SOURCE LINE # 54
000C         ?C0010:
000C 22                RET     
             ; FUNCTION delay1ms (END)

             ; FUNCTION Start (BEGIN)
                                           ; SOURCE LINE # 60
                                           ; SOURCE LINE # 61
                                           ; SOURCE LINE # 62
0000 D2A1              SETB    SDA
                                           ; SOURCE LINE # 63
0002 D2A0              SETB    SCL
                                           ; SOURCE LINE # 64
0004 C2A1              CLR     SDA
                                           ; SOURCE LINE # 65
0006 C2A0              CLR     SCL
                                           ; SOURCE LINE # 66
0008 22                RET     
             ; FUNCTION Start (END)

             ; FUNCTION Stop (BEGIN)
                                           ; SOURCE LINE # 72
                                           ; SOURCE LINE # 73
                                           ; SOURCE LINE # 74
0000 C2A0              CLR     SCL
                                           ; SOURCE LINE # 75
0002 C2A1              CLR     SDA
                                           ; SOURCE LINE # 76
0004 D2A0              SETB    SCL
                                           ; SOURCE LINE # 77
0006 D2A1              SETB    SDA
                                           ; SOURCE LINE # 78
0008 22                RET     
             ; FUNCTION Stop (END)

             ; FUNCTION NoAck (BEGIN)
                                           ; SOURCE LINE # 84
                                           ; SOURCE LINE # 85
                                           ; SOURCE LINE # 86
C51 COMPILER V7.06   AT24C02_8                                                             08/01/2008 19:49:45 PAGE 8   

0000 D2A1              SETB    SDA
                                           ; SOURCE LINE # 87
0002 D2A0              SETB    SCL
                                           ; SOURCE LINE # 88
0004 C2A0              CLR     SCL
                                           ; SOURCE LINE # 89
0006 22                RET     
             ; FUNCTION NoAck (END)

             ; FUNCTION L?0039 (BEGIN)
0000 120000      R     LCALL   Start
0003 7FA0              MOV     R7,#0A0H
0005 120000      R     LCALL   _Write8Bit
             ; FUNCTION TestAck (BEGIN)
                                           ; SOURCE LINE # 95
                                           ; SOURCE LINE # 96
                                           ; SOURCE LINE # 98
0008 D2A1              SETB    SDA
                                           ; SOURCE LINE # 99
000A D2A0              SETB    SCL
                                           ; SOURCE LINE # 100
000C A2A1              MOV     C,SDA
000E 9200        R     MOV     ErrorBit,C
                                           ; SOURCE LINE # 101
0010 C2A0              CLR     SCL
                                           ; SOURCE LINE # 102
0012 A200        R     MOV     C,ErrorBit
                                           ; SOURCE LINE # 103
0014         ?C0014:
0014 22                RET     
             ; FUNCTION TestAck (END)

             ; FUNCTION _Write8Bit (BEGIN)
                                           ; SOURCE LINE # 109
;---- Variable 'input' assigned to Register 'R7' ----
                                           ; SOURCE LINE # 110
                                           ; SOURCE LINE # 112
;---- Variable 'temp' assigned to Register 'R6' ----
0000 7E08              MOV     R6,#08H
0002         ?C0015:
                                           ; SOURCE LINE # 113
                                           ; SOURCE LINE # 114
0002 EF                MOV     A,R7
0003 33                RLC     A
0004 92A1              MOV     SDA,C
                                           ; SOURCE LINE # 115
0006 D2A0              SETB    SCL
                                           ; SOURCE LINE # 116
0008 C2A0              CLR     SCL
                                           ; SOURCE LINE # 117
000A EF                MOV     A,R7
000B 25E0              ADD     A,ACC
000D FF                MOV     R7,A
                                           ; SOURCE LINE # 118
000E DEF2              DJNZ    R6,?C0015
                                           ; SOURCE LINE # 119
0010         ?C0018:
0010 22                RET     
             ; FUNCTION _Write8Bit (END)

             ; FUNCTION _Write24C02 (BEGIN)
                                           ; SOURCE LINE # 125
C51 COMPILER V7.06   AT24C02_8                                                             08/01/2008 19:49:45 PAGE 9   

;---- Variable 'address' assigned to Register 'R5' ----
;---- Variable 'ch' assigned to Register 'R4' ----
0000 AC07              MOV     R4,AR7
                                           ; SOURCE LINE # 126
                                           ; SOURCE LINE # 127
                                           ; SOURCE LINE # 128
                                           ; SOURCE LINE # 129
0002 120000      R     LCALL   L?0039
                                           ; SOURCE LINE # 130
0005 AF05              MOV     R7,AR5
0007 120000      R     LCALL   _Write8Bit
                                           ; SOURCE LINE # 131
000A 120000      R     LCALL   TestAck
                                           ; SOURCE LINE # 132
000D AF04              MOV     R7,AR4
000F 120000      R     LCALL   _Write8Bit
                                           ; SOURCE LINE # 133
0012 120000      R     LCALL   TestAck
                                           ; SOURCE LINE # 134
0015 120000      R     LCALL   Stop
                                           ; SOURCE LINE # 135
0018 020000      R     LJMP    delay1ms
             ; FUNCTION _Write24C02 (END)

             ; FUNCTION Read8Bit (BEGIN)
                                           ; SOURCE LINE # 142
                                           ; SOURCE LINE # 143
                                           ; SOURCE LINE # 144
;---- Variable 'rbyte' assigned to Register 'R7' ----
0000 E4                CLR     A
0001 FF                MOV     R7,A
                                           ; SOURCE LINE # 145
;---- Variable 'temp' assigned to Register 'R6' ----
0002 7E08              MOV     R6,#08H
0004         ?C0020:
                                           ; SOURCE LINE # 146
                                           ; SOURCE LINE # 147
0004 D2A0              SETB    SCL
                                           ; SOURCE LINE # 148
0006 EF                MOV     A,R7
0007 25E0              ADD     A,ACC
0009 FF                MOV     R7,A
                                           ; SOURCE LINE # 149
000A A2A1              MOV     C,SDA
000C E4                CLR     A
000D 33                RLC     A
000E 4207              ORL     AR7,A
                                           ; SOURCE LINE # 150
0010 C2A0              CLR     SCL
                                           ; SOURCE LINE # 151
0012 DEF0              DJNZ    R6,?C0020
0014         ?C0021:
                                           ; SOURCE LINE # 152
                                           ; SOURCE LINE # 153
0014         ?C0023:
0014 22                RET     
             ; FUNCTION Read8Bit (END)

             ; FUNCTION _Read24C02 (BEGIN)
                                           ; SOURCE LINE # 159
;---- Variable 'address' assigned to Register 'R5' ----
0000 AD07              MOV     R5,AR7
C51 COMPILER V7.06   AT24C02_8                                                             08/01/2008 19:49:45 PAGE 10  

                                           ; SOURCE LINE # 160
                                           ; SOURCE LINE # 162
                                           ; SOURCE LINE # 163
                                           ; SOURCE LINE # 164
0002 120000      R     LCALL   L?0039
                                           ; SOURCE LINE # 165
0005 AF05              MOV     R7,AR5
0007 120000      R     LCALL   _Write8Bit
                                           ; SOURCE LINE # 166
000A 120000      R     LCALL   TestAck
                                           ; SOURCE LINE # 167
000D 120000      R     LCALL   Start
                                           ; SOURCE LINE # 168
0010 7FA1              MOV     R7,#0A1H
0012 120000      R     LCALL   _Write8Bit
                                           ; SOURCE LINE # 169
0015 120000      R     LCALL   TestAck
                                           ; SOURCE LINE # 170
0018 120000      R     LCALL   Read8Bit
;---- Variable 'ch' assigned to Register 'R7' ----
                                           ; SOURCE LINE # 171
001B 120000      R     LCALL   NoAck
                                           ; SOURCE LINE # 172
001E 120000      R     LCALL   Stop
                                           ; SOURCE LINE # 173
                                           ; SOURCE LINE # 174
0021         ?C0024:
0021 22                RET     
             ; FUNCTION _Read24C02 (END)

             ; FUNCTION delay1000ms (BEGIN)
                                           ; SOURCE LINE # 17
                                           ; SOURCE LINE # 18
                                           ; SOURCE LINE # 20
;---- Variable 'i' assigned to Register 'R7' ----
0000 7F17              MOV     R7,#017H
0002         ?C0025:
                                           ; SOURCE LINE # 21
;---- Variable 'j' assigned to Register 'R6' ----
0002 7EEB              MOV     R6,#0EBH
0004         ?C0028:
                                           ; SOURCE LINE # 22
;---- Variable 'k' assigned to Register 'R5' ----
0004 7D5B              MOV     R5,#05BH
0006         ?C0031:
0006 DDFE              DJNZ    R5,?C0031
0008         ?C0030:
0008 DEFA              DJNZ    R6,?C0028
000A         ?C0027:
000A DFF6              DJNZ    R7,?C0025
                                           ; SOURCE LINE # 23
000C         ?C0034:
000C 22                RET     
             ; FUNCTION delay1000ms (END)

             ; FUNCTION main (BEGIN)
                                           ; SOURCE LINE # 27
                                           ; SOURCE LINE # 28
                                           ; SOURCE LINE # 30
;---- Variable 'i' assigned to Register 'R3' ----
0000 E4                CLR     A
0001 FB                MOV     R3,A
C51 COMPILER V7.06   AT24C02_8                                                             08/01/2008 19:49:45 PAGE 11  

0002         ?C0035:
0002 C3                CLR     C
0003 7480              MOV     A,#080H
0005 9481              SUBB    A,#081H
0007 5014              JNC     ?C0038
                                           ; SOURCE LINE # 31
                                           ; SOURCE LINE # 32
0009 AF03              MOV     R7,AR3
000B AD03              MOV     R5,AR3
000D 120000      R     LCALL   _Write24C02
                                           ; SOURCE LINE # 33
0010 AF03              MOV     R7,AR3
0012 120000      R     LCALL   _Read24C02
0015 8F90              MOV     P1,R7
                                           ; SOURCE LINE # 34
0017 120000      R     LCALL   delay1000ms
                                           ; SOURCE LINE # 35
001A 0B                INC     R3
001B 80E5              SJMP    ?C0035
                                           ; SOURCE LINE # 36
001D         ?C0038:
001D 22                RET     
             ; FUNCTION main (END)

C51 COMPILER V7.06   AT24C02_8                                                             08/01/2008 19:49:45 PAGE 12  

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


P1 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0090H  1
P2 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00A0H  1
P3 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B0H  1
IE . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00A8H  1
Start. . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
IP . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B8H  1
delay1ms . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
  j. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0006H  1
  k. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0005H  1
main . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0003H  1
Stop . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
TestAck. . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0008H  -----
  ErrorBit . . . . . . . . . . . . . .  AUTO     DATA   BIT      0000H  1
SCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0098H  1
TCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0088H  1
delay1000ms. . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
  j. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0006H  1
  k. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0005H  1
_Write8Bit . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  input. . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
  temp . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0006H  1
NoAck. . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
Read8Bit . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  temp . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0006H  1
  rbyte. . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
SDA. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A1H  1
SCL. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A0H  1
T2CON. . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00C8H  1
_Read24C02 . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  address. . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0005H  1
  ch . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
_Write24C02. . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  ch . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0004H  1
  address. . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0005H  1
PSW. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00D0H  1


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