📄 iictest.lst
字号:
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 + -