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

📄 2402.lst

📁 51单片机实验例程
💻 LST
📖 第 1 页 / 共 2 页
字号:
                     160             USING   0
                     161                             ; SOURCE LINE # 44
0000 8F00     F      162             MOV     sla?145,R7
0002 8D00     F      163             MOV     suba?146,R5
0004 8B00     F      164             MOV     s?147,R3
0006 8A00     F      165             MOV     s?147+01H,R2
0008 8900     F      166             MOV     s?147+02H,R1
                     167     ; {
                     168                             ; SOURCE LINE # 45
                     169     ;    unsigned char i;
                     170     ; 
                     171     ;    Start_I2c();                  /*启动总线*/
                     172                             ; SOURCE LINE # 48
000A 120000   F      173             LCALL   Start_I2c
                     174     ;    SendByte(sla);                /*发送器件地址*/
                     175                             ; SOURCE LINE # 49
000D AF00     F      176             MOV     R7,sla?145
000F 120000   F      177             LCALL   _SendByte
                     178     ;    if(ack==0)return(0);
                     179                             ; SOURCE LINE # 50
0012 200002   F      180             JB      ack,?C0008
0015 C3              181             CLR     C
0016 22              182             RET     
0017                 183     ?C0008:
                     184     ;    SendByte(suba);               /*发送器件子地址*/
                     185                             ; SOURCE LINE # 51
0017 AF00     F      186             MOV     R7,suba?146
0019 120000   F      187             LCALL   _SendByte
                     188     ;    if(ack==0)return(0);
                     189                             ; SOURCE LINE # 52
A51 MACRO ASSEMBLER  2402                                                                 09/16/2009 23:41:27 PAGE     4

001C 200002   F      190             JB      ack,?C0010
001F C3              191             CLR     C
0020 22              192             RET     
0021                 193     ?C0010:
                     194     ; 
                     195     ;    Start_I2c();                 /*重新启动总线*/
                     196                             ; SOURCE LINE # 54
0021 120000   F      197             LCALL   Start_I2c
                     198     ;    SendByte(sla+1);
                     199                             ; SOURCE LINE # 55
0024 E500     F      200             MOV     A,sla?145
0026 04              201             INC     A
0027 FF              202             MOV     R7,A
0028 120000   F      203             LCALL   _SendByte
                     204     ;    if(ack==0)return(0);
                     205                             ; SOURCE LINE # 56
002B 200002   F      206             JB      ack,?C0011
002E C3              207             CLR     C
002F 22              208             RET     
0030                 209     ?C0011:
                     210     ;    for(i=0;i<no-1;i++)
                     211                             ; SOURCE LINE # 57
0030 E4              212             CLR     A
0031 F500     F      213             MOV     i?149,A
0033                 214     ?C0012:
0033 E500     F      215             MOV     A,no?148
0035 14              216             DEC     A
0036 FF              217             MOV     R7,A
0037 E500     F      218             MOV     A,i?149
0039 C3              219             CLR     C
003A 9F              220             SUBB    A,R7
003B 5021            221             JNC     ?C0013
                     222     ;    {   
                     223                             ; SOURCE LINE # 58
                     224     ;      *s=RcvByte();               /*发送数据*/
                     225                             ; SOURCE LINE # 59
003D 120000   F      226             LCALL   RcvByte
0040 AB00     F      227             MOV     R3,s?147
0042 AA00     F      228             MOV     R2,s?147+01H
0044 A900     F      229             MOV     R1,s?147+02H
0046 EF              230             MOV     A,R7
0047 120000   F      231             LCALL   ?C?CSTPTR
                     232     ;       Ack_I2c(0);                /*发送就答位*/  
                     233                             ; SOURCE LINE # 60
004A C200     F      234             CLR     ?Ack_I2c?BIT
004C 120000   F      235             LCALL   Ack_I2c
                     236     ;      s++;
                     237                             ; SOURCE LINE # 61
004F 7401            238             MOV     A,#01H
0051 2500     F      239             ADD     A,s?147+02H
0053 F500     F      240             MOV     s?147+02H,A
0055 E4              241             CLR     A
0056 3500     F      242             ADDC    A,s?147+01H
0058 F500     F      243             MOV     s?147+01H,A
                     244     ;    } 
                     245                             ; SOURCE LINE # 62
005A 0500     F      246             INC     i?149
005C 80D5            247             SJMP    ?C0012
005E                 248     ?C0013:
                     249     ;    *s=RcvByte();
                     250                             ; SOURCE LINE # 63
005E 120000   F      251             LCALL   RcvByte
0061 AB00     F      252             MOV     R3,s?147
0063 AA00     F      253             MOV     R2,s?147+01H
0065 A900     F      254             MOV     R1,s?147+02H
0067 EF              255             MOV     A,R7
A51 MACRO ASSEMBLER  2402                                                                 09/16/2009 23:41:27 PAGE     5

0068 120000   F      256             LCALL   ?C?CSTPTR
                     257     ;    Ack_I2c(1);                   /*发送非应位*/
                     258                             ; SOURCE LINE # 64
006B D200     F      259             SETB    ?Ack_I2c?BIT
006D 120000   F      260             LCALL   Ack_I2c
                     261     ;    Stop_I2c();                   /*结束总线*/ 
                     262                             ; SOURCE LINE # 65
0070 120000   F      263             LCALL   Stop_I2c
                     264     ;    return(1);
                     265                             ; SOURCE LINE # 66
0073 D3              266             SETB    C
                     267     ; }
                     268                             ; SOURCE LINE # 67
0074                 269     ?C0009:
0074 22              270             RET     
                     271     ; END OF _IRcvStr
                     272     
                     273             END
A51 MACRO ASSEMBLER  2402                                                                 09/16/2009 23:41:27 PAGE     6

SYMBOL TABLE LISTING
------ ----- -------


N A M E             T Y P E  V A L U E   ATTRIBUTES

?ACK_I2C?BIT . . .  B ADDR   -----       EXT
?C0001 . . . . . .  C ADDR   0017H   R   SEG=?PR?_ISENDSTR?2402
?C0002 . . . . . .  C ADDR   0050H   R   SEG=?PR?_ISENDSTR?2402
?C0003 . . . . . .  C ADDR   0021H   R   SEG=?PR?_ISENDSTR?2402
?C0004 . . . . . .  C ADDR   0024H   R   SEG=?PR?_ISENDSTR?2402
?C0005 . . . . . .  C ADDR   004CH   R   SEG=?PR?_ISENDSTR?2402
?C0007 . . . . . .  C ADDR   003DH   R   SEG=?PR?_ISENDSTR?2402
?C0008 . . . . . .  C ADDR   0017H   R   SEG=?PR?_IRCVSTR?2402
?C0009 . . . . . .  C ADDR   0074H   R   SEG=?PR?_IRCVSTR?2402
?C0010 . . . . . .  C ADDR   0021H   R   SEG=?PR?_IRCVSTR?2402
?C0011 . . . . . .  C ADDR   0030H   R   SEG=?PR?_IRCVSTR?2402
?C0012 . . . . . .  C ADDR   0033H   R   SEG=?PR?_IRCVSTR?2402
?C0013 . . . . . .  C ADDR   005EH   R   SEG=?PR?_IRCVSTR?2402
?C?CLDPTR. . . . .  C ADDR   -----       EXT
?C?CSTPTR. . . . .  C ADDR   -----       EXT
?DT?_IRCVSTR?2402.  D SEG    0007H       REL=UNIT
?DT?_ISENDSTR?2402  D SEG    0007H       REL=UNIT
?PR?_IRCVSTR?2402.  C SEG    0075H       REL=UNIT
?PR?_ISENDSTR?2402  C SEG    0051H       REL=UNIT
?_IRCVSTR?BYTE . .  D ADDR   0000H   R   SEG=?DT?_IRCVSTR?2402
?_ISENDSTR?BYTE. .  D ADDR   0000H   R   SEG=?DT?_ISENDSTR?2402
ACK. . . . . . . .  B ADDR   -----       EXT
ACK_I2C. . . . . .  C ADDR   -----       EXT
I?044. . . . . . .  D ADDR   0006H   R   SEG=?DT?_ISENDSTR?2402
I?149. . . . . . .  D ADDR   0006H   R   SEG=?DT?_IRCVSTR?2402
NO?043 . . . . . .  D ADDR   0005H   R   SEG=?DT?_ISENDSTR?2402
NO?148 . . . . . .  D ADDR   0005H   R   SEG=?DT?_IRCVSTR?2402
RCVBYTE. . . . . .  C ADDR   -----       EXT
S?042. . . . . . .  D ADDR   0002H   R   SEG=?DT?_ISENDSTR?2402
S?147. . . . . . .  D ADDR   0002H   R   SEG=?DT?_IRCVSTR?2402
SLA?040. . . . . .  D ADDR   0000H   R   SEG=?DT?_ISENDSTR?2402
SLA?145. . . . . .  D ADDR   0000H   R   SEG=?DT?_IRCVSTR?2402
START_I2C. . . . .  C ADDR   -----       EXT
STOP_I2C . . . . .  C ADDR   -----       EXT
SUBA?041 . . . . .  D ADDR   0001H   R   SEG=?DT?_ISENDSTR?2402
SUBA?146 . . . . .  D ADDR   0001H   R   SEG=?DT?_IRCVSTR?2402
_2402. . . . . . .  N NUMB   -----       
_IRCVSTR . . . . .  C ADDR   0000H   R   SEG=?PR?_IRCVSTR?2402
_ISENDSTR. . . . .  C ADDR   0000H   R   SEG=?PR?_ISENDSTR?2402
_SENDBYTE. . . . .  C ADDR   -----       EXT


REGISTER BANK(S) USED: 0 

ASSEMBLY COMPLETE.  0 WARNING(S), 0 ERROR(S)

⌨️ 快捷键说明

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