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

📄 ds18b20.lst

📁 利用AVRM16和DX18B20温度传感器通信
💻 LST
📖 第 1 页 / 共 4 页
字号:
    034E F7D0      BCC	0x0349
    034F 23BB      TST	R27
    0350 F031      BEQ	0x0357
    0351 9536      LSR	R19
    0352 9527      ROR	R18
    0353 9517      ROR	R17
    0354 9507      ROR	R16
    0355 95BA      DEC	R27
    0356 F7D1      BNE	0x0351
    0357 9508      RET
int2fp:
    0358 2722      CLR	R18
    0359 FD17      SBRC	R17,7
    035A 9520      COM	R18
    035B 2733      CLR	R19
    035C FD27      SBRC	R18,7
    035D 9530      COM	R19
long2fp:
    035E 940E0491  CALL	savfacc1
    0360 D002      RCALL	ITOF
    0361 940C0494  JMP	restorefacc1
ITOF:
    0363 2788      CLR	R24
    0364 2333      TST	R19
    0365 F41A      BPL	0x0369
    0366 940E02ED  CALL	neg32
    0368 9580      COM	R24
    0369 2FB0      MOV	R27,R16
    036A 2BB1      OR	R27,R17
    036B 2BB2      OR	R27,R18
    036C 2BB3      OR	R27,R19
    036D F411      BNE	0x0370
    036E 940C04AD  JMP	minres
    0370 E1B6      LDI	R27,0x16
    0371 C005      RJMP	itof2
    0372 95B3      INC	R27
    0373 9536      LSR	R19
    0374 9527      ROR	R18
    0375 9517      ROR	R17
    0376 9507      ROR	R16
itof2:
    0377 2333      TST	R19
    0378 F7C9      BNE	0x0372
itof3:
    0379 2322      TST	R18
    037A F449      BNE	0x0384
    037B 50B8      SUBI	R27,0x8
    037C 2F21      MOV	R18,R17
    037D 2F10      MOV	R17,R16
    037E E000      LDI	R16,0
    037F CFF9      RJMP	itof3
    0380 95BA      DEC	R27
    0381 0F00      LSL	R16
    0382 1F11      ROL	R17
    0383 1F22      ROL	R18
    0384 F7DA      BPL	0x0380
    0385 2F3B      MOV	R19,R27
    0386 940C04D7  JMP	repack
save_floatregs:
    0388 92DA      ST	R13,-Y
    0389 92EA      ST	R14,-Y
    038A 92FA      ST	R15,-Y
    038B 938A      ST	R24,-Y
    038C 922A      ST	R2,-Y
    038D 923A      ST	R3,-Y
    038E 924A      ST	R4,-Y
    038F 939A      ST	R25,-Y
    0390 93AA      ST	R26,-Y
    0391 93BA      ST	R27,-Y
    0392 9508      RET
restore_floatregs:
    0393 91B9      LD	R27,Y+
    0394 91A9      LD	R26,Y+
    0395 9199      LD	R25,Y+
    0396 9049      LD	R4,Y+
    0397 9039      LD	R3,Y+
    0398 9029      LD	R2,Y+
    0399 9189      LD	R24,Y+
    039A 90F9      LD	R15,Y+
    039B 90E9      LD	R14,Y+
    039C 90D9      LD	R13,Y+
    039D 9508      RET
stk2arg1:
    039E 842A      LDD	R2,Y+10
    039F 843B      LDD	R3,Y+11
    03A0 844C      LDD	R4,Y+12
    03A1 859D      LDD	R25,Y+13
    03A2 9508      RET
stk2arg0:
    03A3 850E      LDD	R16,Y+14
    03A4 851F      LDD	R17,Y+15
    03A5 8928      LDD	R18,Y+16
    03A6 8939      LDD	R19,Y+17
    03A7 9508      RET
float_epilog:
    03A8 DFEA      RCALL	restore_floatregs
    03A9 920F      PUSH	R0
    03AA B60F      IN	R0,0x3F
    03AB 9628      ADIW	R28,0x8
    03AC BE0F      OUT	0x3F,R0
    03AD 900F      POP	R0
    03AE 9508      RET
float_prolog:
    03AF DFD8      RCALL	save_floatregs
    03B0 DFF2      RCALL	stk2arg0
    03B1 CFEC      RJMP	stk2arg1
add32fs:
    03B2 D002      RCALL	add32f
    03B3 940C02A4  JMP	push_arg4
add32f:
    03B5 940E03AF  CALL	float_prolog
    03B7 D012      RCALL	FADD
    03B8 940C03A8  JMP	float_epilog
sub32fs:
    03BA D002      RCALL	sub32f
    03BB 940C02A4  JMP	push_arg4
sub32f:
    03BD 940E03AF  CALL	float_prolog
    03BF D009      RCALL	FSUB
    03C0 940C03A8  JMP	float_epilog
fret2:
    03C2 2F8A      MOV	R24,R26
    03C3 2F39      MOV	R19,R25
    03C4 2D24      MOV	R18,R4
    03C5 2D13      MOV	R17,R3
    03C6 2D02      MOV	R16,R2
    03C7 940C04D7  JMP	repack
FSUB:
    03C9 5890      SUBI	R25,0x80
FADD:
    03CA 940E04C5  CALL	unpack
    03CC 3890      CPI	R25,0x80
    03CD F3C9      BEQ	0x03C7
    03CE 3830      CPI	R19,0x80
    03CF F391      BEQ	0x03C2
    03D0 2FB3      MOV	R27,R19
    03D1 1BB9      SUB	R27,R25
    03D2 F3A3      BVS	0x03C7
    03D3 F02A      BMI	0x03D9
    03D4 F439      BNE	0x03DC
    03D5 1502      CP	R16,R2
    03D6 0513      CPC	R17,R3
    03D7 0524      CPC	R18,R4
    03D8 F418      BCC	0x03DC
    03D9 940E04B9  CALL	swapacc
    03DB CFF4      RJMP	0x03D0
    03DC 31B8      CPI	R27,0x18
    03DD F018      BCS	0x03E1
    03DE 2422      CLR	R2
    03DF 2433      CLR	R3
    03E0 2444      CLR	R4
    03E1 30B8      CPI	R27,0x8
    03E2 F028      BCS	0x03E8
    03E3 2C23      MOV	R2,R3
    03E4 2C34      MOV	R3,R4
    03E5 2444      CLR	R4
    03E6 50B8      SUBI	R27,0x8
    03E7 CFF9      RJMP	0x03E1
    03E8 23BB      TST	R27
    03E9 F029      BEQ	0x03EF
    03EA 9446      LSR	R4
    03EB 9437      ROR	R3
    03EC 9427      ROR	R2
    03ED 95BA      DEC	R27
    03EE F7D9      BNE	0x03EA
    03EF 2FB8      MOV	R27,R24
    03F0 27BA      EOR	R27,R26
    03F1 F04A      BMI	0x03FB
    03F2 D018      RCALL	0x040B
    03F3 F698      BCC	0x03C7
    03F4 9527      ROR	R18
    03F5 9517      ROR	R17
    03F6 9507      ROR	R16
    03F7 5F3F      SUBI	R19,0xFF
    03F8 F673      BVC	0x03C7
    03F9 940C04A6  JMP	maxres
    03FB D013      RCALL	usub24
    03FC F411      BNE	0x03FF
    03FD 940C04AD  JMP	minres
    03FF F410      BCC	0x0402
    0400 940E04A0  CALL	negmant
    0402 2322      TST	R18
    0403 F21A      BMI	0x03C7
    0404 0F00      LSL	R16
    0405 1F11      ROL	R17
    0406 1F22      ROL	R18
    0407 5031      SUBI	R19,1
    0408 F7CB      BVC	0x0402
    0409 940C04A6  JMP	maxres
    040B 0D02      ADD	R16,R2
    040C 1D13      ADC	R17,R3
    040D 1D24      ADC	R18,R4
    040E 9508      RET
usub24:
    040F 1902      SUB	R16,R2
    0410 0913      SBC	R17,R3
    0411 0924      SBC	R18,R4
    0412 9508      RET
cmp32f:
    0413 940E03AF  CALL	float_prolog
    0415 D002      RCALL	FLTCP
    0416 940C03A8  JMP	float_epilog
FLTCP:
    0418 D002      RCALL	0x041B
    0419 23BB      TST	R27
    041A 9508      RET
    041B 2333      TST	R19
    041C F082      BMI	0x042D
    041D 2399      TST	R25
    041E F042      BMI	0x0427
    041F 1739      CP	R19,R25
    0420 F040      BCS	0x0429
    0421 F429      BNE	0x0427
    0422 1502      CP	R16,R2
    0423 0513      CPC	R17,R3
    0424 0524      CPC	R18,R4
    0425 F018      BCS	0x0429
    0426 F021      BEQ	0x042B
    0427 E0B1      LDI	R27,1
    0428 9508      RET
    0429 EFBF      LDI	R27,0xFF
    042A 9508      RET
    042B 27BB      CLR	R27
    042C 9508      RET
    042D 2399      TST	R25
    042E F7D2      BPL	0x0429
    042F 1739      CP	R19,R25
    0430 F3B0      BCS	0x0427
    0431 F7B9      BNE	0x0429
    0432 1502      CP	R16,R2
    0433 0513      CPC	R17,R3
    0434 0524      CPC	R18,R4
    0435 F388      BCS	0x0427
    0436 F3A1      BEQ	0x042B
    0437 CFF1      RJMP	0x0429
    0438 E7BF      LDI	R27,0x7F
    0439 2F3B      MOV	R19,R27
    043A 2B2B      OR	R18,R27
    043B EF0F      LDI	R16,0xFF
    043C EF1F      LDI	R17,0xFF
    043D 9508      RET
    043E 2700      CLR	R16
    043F 2711      CLR	R17
    0440 2722      CLR	R18
    0441 2733      CLR	R19
    0442 2788      CLR	R24
    0443 9508      RET
empy32fs:
    0444 D002      RCALL	empy32f
    0445 940C02A4  JMP	push_arg4
empy32f:
    0447 940E03AF  CALL	float_prolog
    0449 920F      PUSH	R0
    044A 92CF      PUSH	R12
    044B D004      RCALL	eFMUL
    044C 90CF      POP	R12
    044D 900F      POP	R0
    044E 940C03A8  JMP	float_epilog
eFMUL:
    0450 940E04C5  CALL	unpack
    0452 F359      BEQ	0x043E
    0453 3890      CPI	R25,0x80
    0454 F349      BEQ	0x043E
    0455 278A      EOR	R24,R26
    0456 9408      BSET	0
    0457 1F39      ADC	R19,R25
    0458 F2FB      BVS	0x0438
    0459 D00E      RCALL	eumul24
    045A 2D2F      MOV	R18,R15
    045B 2D1E      MOV	R17,R14
    045C 2D0D      MOV	R16,R13
    045D 2322      TST	R18
    045E F02A      BMI	0x0464
    045F 953A      DEC	R19
    0460 0CCC      LSL	R12
    0461 1F00      ROL	R16
    0462 1F11      ROL	R17
    0463 1F22      ROL	R18
    0464 5F3F      SUBI	R19,0xFF
    0465 F293      BVS	0x0438
    0466 940C04D7  JMP	repack
eumul24:
    0468 9D22      MUL	R18,R2
    0469 2CC0      MOV	R12,R0
    046A 2CD1      MOV	R13,R1
    046B 9D24      MUL	R18,R4
    046C 2CE0      MOV	R14,R0
    046D 2CF1      MOV	R15,R1
    046E 9D12      MUL	R17,R2
    046F 0CC1      ADD	R12,R1
    0470 1EDB      ADC	R13,R27
    0471 1EEB      ADC	R14,R27
    0472 1EFB      ADC	R15,R27
    0473 9D03      MUL	R16,R3
    0474 0CC1      ADD	R12,R1
    0475 1EDB      ADC	R13,R27
    0476 1EEB      ADC	R14,R27
    0477 1EFB      ADC	R15,R27
    0478 9D13      MUL	R17,R3
    0479 0CC0      ADD	R12,R0
    047A 1CD1      ADC	R13,R1
    047B 1EEB      ADC	R14,R27
    047C 1EFB      ADC	R15,R27
    047D 9D04      MUL	R16,R4
    047E 0CC0      ADD	R12,R0
    047F 1CD1      ADC	R13,R1
    0480 1EEB      ADC	R14,R27
    0481 1EFB      ADC	R15,R27
    0482 9D23      MUL	R18,R3
    0483 0CD0      ADD	R13,R0
    0484 1CE1      ADC	R14,R1
    0485 1EFB      ADC	R15,R27
    0486 9D14      MUL	R17,R4
    0487 0CD0      ADD	R13,R0
    0488 1CE1      ADC	R14,R1
    0489 1EFB      ADC	R15,R27
    048A 20CC      TST	R12
    048B F422      BPL	0x0490
    048C 9488      BCLR	0
    048D 1EDB      ADC	R13,R27
    048E 1EEB      ADC	R14,R27
    048F 1EFB      ADC	R15,R27
    0490 9508      RET
savfacc1:
    0491 938A      ST	R24,-Y
    0492 93BA      ST	R27,-Y
    0493 9508      RET
restorefacc1:
    0494 91B9      LD	R27,Y+
    0495 9189      LD	R24,Y+
    0496 9508      RET
unpackfacc1:
    0497 2F83      MOV	R24,R19
    0498 7880      ANDI	R24,0x80
    0499 0F22      LSL	R18
    049A 1F33      ROL	R19
    049B 5830      SUBI	R19,0x80
    049C 9408      BSET	0
    049D 9527      ROR	R18
    049E 3830      CPI	R19,0x80
    049F 9508      RET
negmant:
    04A0 9510      COM	R17
    04A1 9520      COM	R18
    04A2 9501      NEG	R16
    04A3 4F1F      SBCI	R17,0xFF
    04A4 4F2F      SBCI	R18,0xFF
    04A5 9508      RET
maxres:
    04A6 E7BF      LDI	R27,0x7F
    04A7 2F3B      MOV	R19,R27
    04A8 2B2B      OR	R18,R27
    04A9 EFBF      LDI	R27,0xFF
    04AA 2F0B      MOV	R16,R27
    04AB 2F1B      MOV	R17,R27
    04AC 9508      RET
minres:
    04AD 2700      CLR	R16
    04AE 2711      CLR	R17
    04AF 2722      CLR	R18
    04B0 2733      CLR	R19
    04B1 2788      CLR	R24
    04B2 9508      RET
ac1toac2:
    04B3 2F93      MOV	R25,R19
    04B4 2E20      MOV	R2,R16
    04B5 2E31      MOV	R3,R17
    04B6 2E42      MOV	R4,R18
    04B7 2FA8      MOV	R26,R24
    04B8 9508      RET
swapacc:
    04B9 922A      ST	R2,-Y
    04BA 923A      ST	R3,-Y
    04BB 924A      ST	R4,-Y
    04BC 939A      ST	R25,-Y
    04BD 93AA      ST	R26,-Y
    04BE DFF4      RCALL	ac1toac2
    04BF 9189      LD	R24,Y+
    04C0 9139      LD	R19,Y+
    04C1 9129      LD	R18,Y+
    04C2 9119      LD	R17,Y+
    04C3 9109      LD	R16,Y+
    04C4 9508      RET
unpack:
    04C5 2F83      MOV	R24,R19
    04C6 E8B0      LDI	R27,0x80
    04C7 0F22      LSL	R18
    04C8 1F33      ROL	R19
    04C9 273B      EOR	R19,R27
    04CA 0FBB      LSL	R27
    04CB 9527      ROR	R18
    04CC 7880      ANDI	R24,0x80
    04CD 2FA9      MOV	R26,R25
    04CE E8B0      LDI	R27,0x80
    04CF 0C44      LSL	R4
    04D0 1F99      ROL	R25
    04D1 279B      EOR	R25,R27
    04D2 0FBB      LSL	R27
    04D3 9447      ROR	R4
    04D4 78A0      ANDI	R26,0x80
    04D5 3830      CPI	R19,0x80
    04D6 9508      RET
repack:
    04D7 0F22      LSL	R18
    04D8 E8B0      LDI	R27,0x80
    04D9 27B3      EOR	R27,R19
    04DA 0F88      LSL	R24
    04DB 95B7      ROR	R27
    04DC 9527      ROR	R18
    04DD 2F3B      MOV	R19,R27
    04DE 9508      RET

⌨️ 快捷键说明

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