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

📄 upsd_i2c.lst

📁 ST uPSD32XX I2C This example demo code is provided as is and has no warranty, implied or otherwise.
💻 LST
📖 第 1 页 / 共 2 页
字号:
003B E4                CLR     A
003C 3400        R     ADDC    A,#HIGH i2c_xmit_buf
003E F583              MOV     DPH,A
0040 E0                MOVX    A,@DPTR
0041 F5DE              MOV     S2DAT,A
                                           ; SOURCE LINE # 73
0043 120000      R     LCALL   i2c_wait_for_int
                                           ; SOURCE LINE # 74
0046 53DCDF            ANL     S2CON,#0DFH
                                           ; SOURCE LINE # 75
0049 0500        R     INC     i+01H
004B E500        R     MOV     A,i+01H
004D 70D4              JNZ     ?C0004
004F 0500        R     INC     i
0051         ?C0023:
0051 80D0              SJMP    ?C0004
0053         ?C0005:
                                           ; SOURCE LINE # 76
0053 43DC10            ORL     S2CON,#010H
                                           ; SOURCE LINE # 77
0056 7400        R     MOV     A,#LOW i2c_xmit_buf
0058 2500        R     ADD     A,i+01H
005A F582              MOV     DPL,A
005C E4                CLR     A
005D 3400        R     ADDC    A,#HIGH i2c_xmit_buf
005F F583              MOV     DPH,A
0061 E0                MOVX    A,@DPTR
0062 F5DE              MOV     S2DAT,A
                                           ; SOURCE LINE # 78
0064 120000      R     LCALL   i2c_wait_for_int
                                           ; SOURCE LINE # 79
0067 75DEFF            MOV     S2DAT,#0FFH
                                           ; SOURCE LINE # 80
006A 22                RET     
             ; FUNCTION _upsd_i2c_xmit (END)

             ; FUNCTION _upsd_i2c_rcv (BEGIN)
                                           ; SOURCE LINE # 88
0000 8F00        R     MOV     i2c_address,R7
0002 8D00        R     MOV     start_address,R5
0004 8B00        R     MOV     data_len,R3
0006         ?C0008:
                                           ; SOURCE LINE # 89
0006 E5DD              MOV     A,S2STA
0008 20E3FB            JB      ACC.3,?C0008
000B         ?C0009:
                                           ; SOURCE LINE # 90
000B D200        R     SETB    i2c_master
C51 COMPILER V7.00  UPSD_I2C                                                               11/13/2002 09:49:12 PAGE 6   

                                           ; SOURCE LINE # 91
000D C200        R     CLR     i2c_xmitr
                                           ; SOURCE LINE # 94
000F 8500DE      R     MOV     S2DAT,i2c_address
                                           ; SOURCE LINE # 95
0012 43DC40            ORL     S2CON,#040H
                                           ; SOURCE LINE # 96
                                           ; SOURCE LINE # 97
                                           ; SOURCE LINE # 98
0015 120000      R     LCALL   L?0027
                                           ; SOURCE LINE # 99
0018 53DCDF            ANL     S2CON,#0DFH
                                           ; SOURCE LINE # 100
001B 43DC10            ORL     S2CON,#010H
                                           ; SOURCE LINE # 101
001E 8500DE      R     MOV     S2DAT,start_address
                                           ; SOURCE LINE # 102
0021 120000      R     LCALL   i2c_wait_for_int
                                           ; SOURCE LINE # 103
0024 75DEFF            MOV     S2DAT,#0FFH
                                           ; SOURCE LINE # 106
0027 E500        R     MOV     A,i2c_address
0029 4401              ORL     A,#01H
002B F5DE              MOV     S2DAT,A
                                           ; SOURCE LINE # 107
                                           ; SOURCE LINE # 108
                                           ; SOURCE LINE # 109
                                           ; SOURCE LINE # 110
                                           ; SOURCE LINE # 111
002D 120000      R     LCALL   ?C0026
                                           ; SOURCE LINE # 112
0030 53DCDF            ANL     S2CON,#0DFH
                                           ; SOURCE LINE # 113
0033 75DEFF            MOV     S2DAT,#0FFH
                                           ; SOURCE LINE # 114
0036 43DC04            ORL     S2CON,#04H
                                           ; SOURCE LINE # 115
0039 120000      R     LCALL   i2c_wait_for_int
                                           ; SOURCE LINE # 117
003C E4                CLR     A
003D F500        R     MOV     i,A
003F F500        R     MOV     i+01H,A
0041         ?C0010:
0041 E500        R     MOV     A,data_len
0043 24FF              ADD     A,#0FFH
0045 FF                MOV     R7,A
0046 E4                CLR     A
0047 34FF              ADDC    A,#0FFH
0049 FE                MOV     R6,A
004A C3                CLR     C
004B E500        R     MOV     A,i+01H
004D 9F                SUBB    A,R7
004E E500        R     MOV     A,i
0050 9E                SUBB    A,R6
0051 501E              JNC     ?C0011
                                           ; SOURCE LINE # 118
0053 85DD00      R     MOV     dummybyte,S2STA
                                           ; SOURCE LINE # 119
0056 7400        R     MOV     A,#LOW i2c_rcv_buf
0058 2500        R     ADD     A,i+01H
005A F582              MOV     DPL,A
005C E4                CLR     A
C51 COMPILER V7.00  UPSD_I2C                                                               11/13/2002 09:49:12 PAGE 7   

005D 3400        R     ADDC    A,#HIGH i2c_rcv_buf
005F F583              MOV     DPH,A
0061 E5DE              MOV     A,S2DAT
0063 F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 120
0064 120000      R     LCALL   i2c_wait_for_int
                                           ; SOURCE LINE # 121
0067 0500        R     INC     i+01H
0069 E500        R     MOV     A,i+01H
006B 70D4              JNZ     ?C0010
006D 0500        R     INC     i
006F         ?C0024:
006F 80D0              SJMP    ?C0010
0071         ?C0011:
                                           ; SOURCE LINE # 122
0071 53DCFB            ANL     S2CON,#0FBH
                                           ; SOURCE LINE # 123
0074 7400        R     MOV     A,#LOW i2c_rcv_buf
0076 2500        R     ADD     A,i+01H
0078 F582              MOV     DPL,A
007A E4                CLR     A
007B 3400        R     ADDC    A,#HIGH i2c_rcv_buf
007D F583              MOV     DPH,A
007F E5DE              MOV     A,S2DAT
0081 F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 124
0082 120000      R     LCALL   i2c_wait_for_int
                                           ; SOURCE LINE # 125
0085 85DD00      R     MOV     dummybyte,S2STA
                                           ; SOURCE LINE # 126
0088 0500        R     INC     i+01H
008A E500        R     MOV     A,i+01H
008C 7002              JNZ     ?C0025
008E 0500        R     INC     i
0090         ?C0025:
                                           ; SOURCE LINE # 127
0090 2400        R     ADD     A,#LOW i2c_rcv_buf
0092 F582              MOV     DPL,A
0094 E4                CLR     A
0095 3400        R     ADDC    A,#HIGH i2c_rcv_buf
0097 F583              MOV     DPH,A
0099 E5DE              MOV     A,S2DAT
009B F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 128
009C 22                RET     
             ; FUNCTION _upsd_i2c_rcv (END)

             ; FUNCTION L?0026 (BEGIN)
0000 43DC40            ORL     S2CON,#040H
0003 53DCEF            ANL     S2CON,#0EFH
0006         L?0027:
0006 43DC20            ORL     S2CON,#020H
0009 53DCFB            ANL     S2CON,#0FBH
             ; FUNCTION i2c_wait_for_int (BEGIN)
                                           ; SOURCE LINE # 136
                                           ; SOURCE LINE # 137
000C D200        R     SETB    i2cwait
                                           ; SOURCE LINE # 138
000E E4                CLR     A
000F F500        R     MOV     i2c_timeout,A
0011         ?C0014:
                                           ; SOURCE LINE # 139
C51 COMPILER V7.00  UPSD_I2C                                                               11/13/2002 09:49:12 PAGE 8   

0011 300016      R     JNB     i2cwait,?C0017
                                           ; SOURCE LINE # 140
0014 E500        R     MOV     A,i2c_timeout
0016 C3                CLR     C
0017 940A              SUBB    A,#0AH
0019 4004              JC      ?C0016
                                           ; SOURCE LINE # 141
001B D200        R     SETB    i2c_timeout_flag
                                           ; SOURCE LINE # 142
001D C200        R     CLR     i2cwait
                                           ; SOURCE LINE # 143
001F         ?C0016:
                                           ; SOURCE LINE # 144
001F 7F01              MOV     R7,#01H
0021 7E00              MOV     R6,#00H
0023 120000      E     LCALL   _timer0_delay
                                           ; SOURCE LINE # 145
0026 0500        R     INC     i2c_timeout
                                           ; SOURCE LINE # 146
0028 80E7              SJMP    ?C0014
                                           ; SOURCE LINE # 147
002A         ?C0017:
002A 22                RET     
             ; FUNCTION i2c_wait_for_int (END)

             ; FUNCTION i2c_isr (BEGIN)
0000 C0E0              PUSH    ACC
0002 C0D0              PUSH    PSW
0004 75D010            MOV     PSW,#010H
                                           ; SOURCE LINE # 154
                                           ; SOURCE LINE # 155
0007 E5DD              MOV     A,S2STA
0009 5404              ANL     A,#04H
000B FF                MOV     R7,A
000C BF0105            CJNE    R7,#01H,?C0018
                                           ; SOURCE LINE # 158
000F 75DEFF            MOV     S2DAT,#0FFH
                                           ; SOURCE LINE # 159
0012 D200        R     SETB    bus_lost_flag
                                           ; SOURCE LINE # 160
0014         ?C0018:
                                           ; SOURCE LINE # 161
0014 E5DD              MOV     A,S2STA
0016 5402              ANL     A,#02H
0018 FF                MOV     R7,A
0019 BF0105            CJNE    R7,#01H,?C0019
                                           ; SOURCE LINE # 164
001C 75DEFF            MOV     S2DAT,#0FFH
                                           ; SOURCE LINE # 165
001F D200        R     SETB    slave_nack_flag
                                           ; SOURCE LINE # 166
0021         ?C0019:
                                           ; SOURCE LINE # 167
0021 A200        R     MOV     C,i2c_xmitr
0023 8200        R     ANL     C,i2c_master
0025 5002              JNC     ?C0020
                                           ; SOURCE LINE # 168
0027 C200        R     CLR     i2cwait
                                           ; SOURCE LINE # 169
0029         ?C0020:
                                           ; SOURCE LINE # 170
0029 A200        R     MOV     C,i2c_master
C51 COMPILER V7.00  UPSD_I2C                                                               11/13/2002 09:49:12 PAGE 9   

002B B000        R     ANL     C,/i2c_xmitr
002D 5002              JNC     ?C0022
                                           ; SOURCE LINE # 171
002F C200        R     CLR     i2cwait
                                           ; SOURCE LINE # 172
                                           ; SOURCE LINE # 173
0031         ?C0022:
0031 D0D0              POP     PSW
0033 D0E0              POP     ACC
0035 32                RETI    
             ; FUNCTION i2c_isr (END)



MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    382    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =    512    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      4       5
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      7    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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