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

📄 iictest.lst

📁 I2C C51模块程序。在C51项目中加入该模块程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 275   2              }
 276   1           while(i);
 277   1            return(nn);
 278   1          }
 279              
 280          void mbytwra(uchar slaw,uchar gg[],uchar n) /*write one byte*/
 281                {   uchar poll2=20,poll3=20;
 282   1             do{ 
 283   2                   if(--poll2==0)
 284   2                    goto err; 
 285   2               do{ 
 286   3                   if(--poll3==0)
 287   3                   goto  err;
 288   3                 sta();
 289   3                 wrbyt(slaw);
 290   3                 cack();
 291   3                 }
 292   2               while(F0==1);
 293   2               wrbyt(gg[n]);
 294   2               cack();
 295   2               }
 296   1             while(F0==1);
 297   1      err:   ;         
 298   1             }
 299                 
 300           void mbytwr(uchar slaw,uchar ff[],uchar number) /*send n bytes to slave device*/
 301                 {
 302   1              uchar  idata k,polling1=50;
 303   1              do
C51 COMPILER V6.14  IICTEST                                                                08/15/2007 14:49:51 PAGE 6   

 304   1                {
 305   2                  if(--polling1==0)
 306   2                  goto  WReer;
 307   2                  sta();
 308   2                  wrbyt(slaw);
 309   2                  cack();
 310   2                 }
 311   1                while(F0==1);
 312   1            
 313   1                for(k=0;k<number;k++)
 314   1                   {wrbyt(ff[k]);
 315   2                    cack();
 316   2                    if(F0==1)
 317   2                    mbytwra(slaw,ff,k);
 318   2                    }
 319   1              stop();
 320   1       WReer: ;      
 321   1              }
 322          
 323           void mbytrd(uchar slar,uchar qq[],uchar number)   /*recieve n bytes for slave device*/
 324                 {uchar idata data0,i,polling1=50;
 325   1              do{ polling1--;
 326   2                  if(polling1==0)
 327   2                    goto RDeer;
 328   2                  sta();
 329   2                  wrbyt(slar);
 330   2                  cack();
 331   2                 }
 332   1              while(F0==1);
 333   1              for(i=0;i<(number-1);i++)
 334   1                {data0=rdbyt();
 335   2                 qq[i]=data0;
 336   2                 mack();
 337   2                }
 338   1               data0=rdbyt();
 339   1               qq[i]=data0;
 340   1               mnack();
 341   1      RDeer:   stop();
 342   1            }
C51 COMPILER V6.14  IICTEST                                                                08/15/2007 14:49:51 PAGE 7   

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION Com0045 (BEGIN)
0000         L?0070:
0000         L?0071:
0000 7BA0              MOV     R3,#0A0H
0002 7A86              MOV     R2,#086H
0004 7901              MOV     R1,#01H
0006 7800              MOV     R0,#00H
0008 AF00        R     MOV     R7,timr_cnt+03H
000A AE00        R     MOV     R6,timr_cnt+02H
000C AD00        R     MOV     R5,timr_cnt+01H
000E AC00        R     MOV     R4,timr_cnt
0010 1100        E     ACALL   ?C?ULDIV
0012 AC00              MOV     R4,AR0
0014 AD01              MOV     R5,AR1
0016 AE02              MOV     R6,AR2
0018 AF03              MOV     R7,AR3
001A E4                CLR     A
001B 7B10              MOV     R3,#010H
001D 7A27              MOV     R2,#027H
001F F9                MOV     R1,A
0020 F8                MOV     R0,A
0021 1100        E     ACALL   ?C?ULDIV
0023 AC00              MOV     R4,AR0
0025 AD01              MOV     R5,AR1
0027 AE02              MOV     R6,AR2
0029 AF03              MOV     R7,AR3
002B E4                CLR     A
002C 7BE8              MOV     R3,#0E8H
002E 7A03              MOV     R2,#03H
0030         L?0072:
0030 F9                MOV     R1,A
0031 F8                MOV     R0,A
0032         L?0073:
0032 1100        E     ACALL   ?C?ULDIV
0034 AC00              MOV     R4,AR0
0036 AD01              MOV     R5,AR1
0038 AE02              MOV     R6,AR2
003A AF03              MOV     R7,AR3
003C E4                CLR     A
003D 22                RET     
003E         L?0074:
003E         L?0075:
003E 1100        R     ACALL   _disp
0040 AF03              MOV     R7,AR3
0042 1100        R     ACALL   _disp
0044 D2B2              SETB    P3_2
0046 7F50              MOV     R7,#050H
0048 7E00              MOV     R6,#00H
004A 1100        R     ACALL   _delay_xx
004C C2B2              CLR     P3_2
004E 22                RET     
004F         L?0076:
004F         L?0077:
004F 7BA0              MOV     R3,#0A0H
0051 7A86              MOV     R2,#086H
0053 7901              MOV     R1,#01H
0055 7800              MOV     R0,#00H
0057         L?0078:
0057 AF00        R     MOV     R7,timr_cnt+03H
C51 COMPILER V6.14  IICTEST                                                                08/15/2007 14:49:51 PAGE 8   

0059 AE00        R     MOV     R6,timr_cnt+02H
005B AD00        R     MOV     R5,timr_cnt+01H
005D AC00        R     MOV     R4,timr_cnt
005F 22                RET     
0060         L?0079:
0060 1100        R     ACALL   rdbyt
0062 7800        R     MOV     R0,#LOW data0
0064 EF                MOV     A,R7
0065 F6                MOV     @R0,A
0066 AB00        R     MOV     R3,qq
0068 AA00        R     MOV     R2,qq+01H
006A A900        R     MOV     R1,qq+02H
006C 08                INC     R0
006D E6                MOV     A,@R0
006E F582              MOV     DPL,A
0070 758300            MOV     DPH,#00H
0073 EF                MOV     A,R7
0074 0100        E     AJMP    ?C?CSTOPTR
0076         L?0080:
0076 E4                CLR     A
0077 FF                MOV     R7,A
0078 1100        R     ACALL   _disp
007A E4                CLR     A
007B FF                MOV     R7,A
007C 1100        R     ACALL   _disp
007E D2B2              SETB    P3_2
0080 22                RET     
             ; FUNCTION Com0045 (END)

             ; FUNCTION delay_us (BEGIN)
                                           ; SOURCE LINE # 33
                                           ; SOURCE LINE # 34
                                           ; SOURCE LINE # 37
0000 22                RET     
             ; FUNCTION delay_us (END)

             ; FUNCTION _delay_xx (BEGIN)
                                           ; SOURCE LINE # 39
;---- Variable 'del' assigned to Register 'R6/R7' ----
                                           ; SOURCE LINE # 40
                                           ; SOURCE LINE # 42
;---- Variable 'i' assigned to Register 'R4/R5' ----
0000 E4                CLR     A
0001 FD                MOV     R5,A
0002 FC                MOV     R4,A
0003         ?C0002:
0003 C3                CLR     C
0004 ED                MOV     A,R5
0005 9F                SUBB    A,R7
0006 EC                MOV     A,R4
0007 9E                SUBB    A,R6
0008 5007              JNC     ?C0005
000A 0D                INC     R5
000B BD0001            CJNE    R5,#00H,?C0066
000E 0C                INC     R4
000F         ?C0066:
000F 80F2              SJMP    ?C0002
                                           ; SOURCE LINE # 43
0011         ?C0005:
0011 22                RET     
             ; FUNCTION _delay_xx (END)

C51 COMPILER V6.14  IICTEST                                                                08/15/2007 14:49:51 PAGE 9   

             ; FUNCTION _disp (BEGIN)
                                           ; SOURCE LINE # 46
;---- Variable 'distemp' assigned to Register 'R7' ----
                                           ; SOURCE LINE # 49
                                           ; SOURCE LINE # 52
0000 C2B1              CLR     P3_1
                                           ; SOURCE LINE # 53
;---- Variable 'bit_cnt' assigned to Register 'R6' ----
0002 7E08              MOV     R6,#08H
0004         ?C0006:
                                           ; SOURCE LINE # 54
                                           ; SOURCE LINE # 56
0004 EF                MOV     A,R7
0005 13                RRC     A
0006 92B0              MOV     P3_0,C
                                           ; SOURCE LINE # 57
0008 1100        R     ACALL   delay_us
                                           ; SOURCE LINE # 58
000A D2B1              SETB    P3_1
                                           ; SOURCE LINE # 59
000C 1100        R     ACALL   delay_us
                                           ; SOURCE LINE # 60
000E C2B1              CLR     P3_1
                                           ; SOURCE LINE # 61
0010 EF                MOV     A,R7
0011 C3                CLR     C
0012 13                RRC     A
0013 FF                MOV     R7,A
                                           ; SOURCE LINE # 62
0014 DEEE              DJNZ    R6,?C0006
                                           ; SOURCE LINE # 63
0016         ?C0009:
0016 22                RET     
             ; FUNCTION _disp (END)

             ; FUNCTION dis_send (BEGIN)
                                           ; SOURCE LINE # 66
                                           ; SOURCE LINE # 71
0000 C200        R     CLR     tim0_int_f
                                           ; SOURCE LINE # 72
0002 1100        R     ACALL   L?0076
0004 1100        E     ACALL   ?C?ULDIV
0006 8F00        R     MOV     shi_wan,R7
                                           ; SOURCE LINE # 73
0008 1100        R     ACALL   L?0076
000A 1100        R     ACALL   L?0073
000C 7B10              MOV     R3,#010H
000E 7A27              MOV     R2,#027H
0010 F9                MOV     R1,A
0011 F8                MOV     R0,A
0012 1100        E     ACALL   ?C?ULDIV
0014 8F00        R     MOV     wan_wei,R7
                                           ; SOURCE LINE # 74
0016 1100        R     ACALL   L?0077
0018 1100        R     ACALL   L?0073
001A 7B10              MOV     R3,#010H
001C 7A27              MOV     R2,#027H
001E 1100        R     ACALL   L?0072
0020 7BE8              MOV     R3,#0E8H
0022 7A03              MOV     R2,#03H
0024 F9                MOV     R1,A
0025 F8                MOV     R0,A
C51 COMPILER V6.14  IICTEST                                                                08/15/2007 14:49:51 PAGE 10  

0026 1100        E     ACALL   ?C?ULDIV
0028 8F00        R     MOV     qian_wei,R7
                                           ; SOURCE LINE # 75
002A 1100        R     ACALL   L?0070
002C 7B64              MOV     R3,#064H
002E FA                MOV     R2,A
002F F9                MOV     R1,A
0030 F8                MOV     R0,A
0031 1100        E     ACALL   ?C?ULDIV
0033 8F00        R     MOV     bai_wei,R7
                                           ; SOURCE LINE # 76
0035 1100        R     ACALL   L?0070
0037 7B64              MOV     R3,#064H
0039 FA                MOV     R2,A
003A 1100        R     ACALL   L?0072
003C 7B0A              MOV     R3,#0AH
003E FA                MOV     R2,A
003F F9                MOV     R1,A
0040 F8                MOV     R0,A
0041 1100        E     ACALL   ?C?ULDIV
0043 8F00        R     MOV     shi_wei,R7
                                           ; SOURCE LINE # 77
0045 1100        R     ACALL   L?0071
0047 7B64              MOV     R3,#064H
0049 FA                MOV     R2,A
004A 1100        R     ACALL   L?0072
004C 7B0A              MOV     R3,#0AH

⌨️ 快捷键说明

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