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

📄 lcd1602+at24c02.lst

📁 AT24C02的驱动~ 包含基本的读和写~ 还有用LCD1602显示读出来的字符和数字~
💻 LST
📖 第 1 页 / 共 3 页
字号:
0008 22                RET     
             ; FUNCTION Start (END)

             ; FUNCTION Stop (BEGIN)
                                           ; SOURCE LINE # 72
                                           ; SOURCE LINE # 73
                                           ; SOURCE LINE # 74
0000 C2A3              CLR     SCL
                                           ; SOURCE LINE # 75
0002 C2A4              CLR     SDA
                                           ; SOURCE LINE # 76
0004 D2A3              SETB    SCL
                                           ; SOURCE LINE # 77
0006 D2A4              SETB    SDA
                                           ; SOURCE LINE # 78
0008 22                RET     
             ; FUNCTION Stop (END)

             ; FUNCTION NoAck (BEGIN)
                                           ; SOURCE LINE # 84
                                           ; SOURCE LINE # 85
                                           ; SOURCE LINE # 86
0000 D2A4              SETB    SDA
                                           ; SOURCE LINE # 87
0002 D2A3              SETB    SCL
                                           ; SOURCE LINE # 88
0004 C2A3              CLR     SCL
                                           ; SOURCE LINE # 89
0006 22                RET     
             ; FUNCTION NoAck (END)

             ; FUNCTION L?0052 (BEGIN)
0000 120000      R     LCALL   Start
0003 7FA0              MOV     R7,#0A0H
0005 120000      R     LCALL   _Write8Bit
C51 COMPILER V7.06   LCD1602_AT24C02                                                       08/01/2008 19:44:45 PAGE 13  

             ; FUNCTION TestAck (BEGIN)
                                           ; SOURCE LINE # 95
                                           ; SOURCE LINE # 96
                                           ; SOURCE LINE # 98
0008 D2A4              SETB    SDA
                                           ; SOURCE LINE # 99
000A D2A3              SETB    SCL
                                           ; SOURCE LINE # 100
000C A2A4              MOV     C,SDA
000E 9200        R     MOV     ErrorBit,C
                                           ; SOURCE LINE # 101
0010 C2A3              CLR     SCL
                                           ; SOURCE LINE # 102
0012 A200        R     MOV     C,ErrorBit
                                           ; SOURCE LINE # 103
0014         ?C0025:
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         ?C0026:
                                           ; SOURCE LINE # 113
                                           ; SOURCE LINE # 114
0002 EF                MOV     A,R7
0003 33                RLC     A
0004 92A4              MOV     SDA,C
                                           ; SOURCE LINE # 115
0006 D2A3              SETB    SCL
                                           ; SOURCE LINE # 116
0008 C2A3              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,?C0026
                                           ; SOURCE LINE # 119
0010         ?C0029:
0010 22                RET     
             ; FUNCTION _Write8Bit (END)

             ; FUNCTION _Write24C02 (BEGIN)
                                           ; SOURCE LINE # 125
;---- 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?0052
                                           ; SOURCE LINE # 130
0005 AF05              MOV     R7,AR5
0007 120000      R     LCALL   _Write8Bit
                                           ; SOURCE LINE # 131
000A 120000      R     LCALL   TestAck
C51 COMPILER V7.06   LCD1602_AT24C02                                                       08/01/2008 19:44:45 PAGE 14  

                                           ; 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         ?C0031:
                                           ; SOURCE LINE # 146
                                           ; SOURCE LINE # 147
0004 D2A3              SETB    SCL
                                           ; SOURCE LINE # 148
0006 EF                MOV     A,R7
0007 25E0              ADD     A,ACC
0009 FF                MOV     R7,A
                                           ; SOURCE LINE # 149
000A A2A4              MOV     C,SDA
000C E4                CLR     A
000D 33                RLC     A
000E 4207              ORL     AR7,A
                                           ; SOURCE LINE # 150
0010 C2A3              CLR     SCL
                                           ; SOURCE LINE # 151
0012 DEF0              DJNZ    R6,?C0031
0014         ?C0032:
                                           ; SOURCE LINE # 152
                                           ; SOURCE LINE # 153
0014         ?C0034:
0014 22                RET     
             ; FUNCTION Read8Bit (END)

             ; FUNCTION _Read24C02 (BEGIN)
                                           ; SOURCE LINE # 159
;---- Variable 'address' assigned to Register 'R5' ----
0000 AD07              MOV     R5,AR7
                                           ; SOURCE LINE # 160
                                           ; SOURCE LINE # 162
                                           ; SOURCE LINE # 163
                                           ; SOURCE LINE # 164
0002 120000      R     LCALL   L?0052
                                           ; 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
C51 COMPILER V7.06   LCD1602_AT24C02                                                       08/01/2008 19:44:45 PAGE 15  

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         ?C0035:
0021 22                RET     
             ; FUNCTION _Read24C02 (END)

             ; FUNCTION _delay (BEGIN)
                                           ; SOURCE LINE # 10
;---- Variable 'x' assigned to Register 'R7' ----
;---- Variable 'z' assigned to Register 'R3' ----
;---- Variable 'y' assigned to Register 'R5' ----
                                           ; SOURCE LINE # 11
                                           ; SOURCE LINE # 12
;---- Variable 'tempz' assigned to Register 'R3' ----
0000         ?C0038:
                                           ; SOURCE LINE # 13
;---- Variable 'tempy' assigned to Register 'R6' ----
0000 AE05              MOV     R6,AR5
0002         ?C0041:
;---- Variable 'tempx' assigned to Register 'R4' ----
0002 AC07              MOV     R4,AR7
0004         ?C0042:
0004 DCFE              DJNZ    R4,?C0042
0006         ?C0039:
0006 DEFA              DJNZ    R6,?C0041
0008 DBF6              DJNZ    R3,?C0038
                                           ; SOURCE LINE # 14
000A 22                RET     
             ; FUNCTION _delay (END)

             ; FUNCTION main (BEGIN)
                                           ; SOURCE LINE # 18
                                           ; SOURCE LINE # 19
                                           ; SOURCE LINE # 23
;---- Variable 'i' assigned to Register 'R2' ----
0000 7A20              MOV     R2,#020H
                                           ; SOURCE LINE # 24
0002 120000      R     LCALL   lcd_init
                                           ; SOURCE LINE # 25
0005 C200        R     CLR     ?_lcd_pos?BIT
0007 E4                CLR     A
0008 FF                MOV     R7,A
0009 120000      R     LCALL   _lcd_pos
000C         ?C0045:
                                           ; SOURCE LINE # 26
                                           ; SOURCE LINE # 27
                                           ; SOURCE LINE # 28
000C AF02              MOV     R7,AR2
000E 0A                INC     R2
000F 120000      R     LCALL   _Read24C02
;---- Variable 'temp_char' assigned to Register 'R1' ----
C51 COMPILER V7.06   LCD1602_AT24C02                                                       08/01/2008 19:44:45 PAGE 16  

0012 A907              MOV     R1,AR7
                                           ; SOURCE LINE # 29
0014 BAFA02            CJNE    R2,#0FAH,?C0047
0017 7A20              MOV     R2,#020H
0019         ?C0047:
                                           ; SOURCE LINE # 30
0019 AF01              MOV     R7,AR1
001B 120000      R     LCALL   _printc
                                           ; SOURCE LINE # 31
001E 7B96              MOV     R3,#096H
0020 7D19              MOV     R5,#019H
0022 7F14              MOV     R7,#014H
0024 120000      R     LCALL   _delay
                                           ; SOURCE LINE # 32
0027 EA                MOV     A,R2
0028 540F              ANL     A,#0FH
002A 70E0              JNZ     ?C0045
002C D200        R     SETB    ?_lcd_pos?BIT
002E FF                MOV     R7,A
002F 120000      R     LCALL   _lcd_pos
0032 EA                MOV     A,R2
0033 541F              ANL     A,#01FH
0035 70D5              JNZ     ?C0045
0037 C200        R     CLR     ?_lcd_pos?BIT
0039 FF                MOV     R7,A
003A 120000      R     LCALL   _lcd_pos
                                           ; SOURCE LINE # 33
003D 80CD              SJMP    ?C0045
             ; FUNCTION main (END)

C51 COMPILER V7.06   LCD1602_AT24C02                                                       08/01/2008 19:44:45 PAGE 17  

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


P0 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0080H  1
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
_lcd_wcmd. . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  cmd. . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  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   0002H  1
  temp_char. . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0001H  1
_lcd_wdat. . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  Data . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  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
_Write8Bit . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  input. . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
  temp . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0006H  1
_lcd_pos . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  x. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0006H  1
  y. . . . . . . . . . . . . . . . . .  AUTO     DATA   BIT      0000H  1
lcd_init . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
NoAck. . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
ep . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A2H  1
Read8Bit . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  temp . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0006H  1
  rbyte. . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
SDA. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A4H  1
io . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0080H  1
lcd_busy . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
bz . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0087H  1
SCL. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A3H  1
rs . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A0H  1
T2CON. . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00C8H  1
rw . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A1H  1
_Read24C02 . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  address. . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0005H  1
  ch . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
_delay . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  x. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
  y. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0005H  1
  z. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0003H  1
  tempx. . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0004H  1
  tempy. . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0006H  1
  tempz. . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0003H  1
_printc. . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  CHAR . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
_Write24C02. . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  ch . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0004H  1
C51 COMPILER V7.06   LCD1602_AT24C02                                                       08/01/2008 19:44:45 PAGE 18  

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


  address. . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0005H  1
PSW. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00D0H  1


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    318    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       2
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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