📄 ds18b20.lst
字号:
0201 8056 LDD R5,6+Z
0202 925A ST R5,-Y
0203 924A ST R4,-Y
0204 923A ST R3,-Y
0205 922A ST R2,-Y
0206 E904 LDI R16,0x94
0207 E010 LDI R17,0
0208 940E04A4 CALL lpm32
020A 933A ST R19,-Y
020B 932A ST R18,-Y
020C 931A ST R17,-Y
020D 930A ST R16,-Y
020E 940E03CF CALL cmp32f
0210 F0CC BLT 0x022A
0211 01FE MOVW R30,R28
0212 8023 LDD R2,3+Z
0213 8034 LDD R3,4+Z
0214 8045 LDD R4,5+Z
0215 8056 LDD R5,6+Z
0216 925A ST R5,-Y
0217 924A ST R4,-Y
0218 923A ST R3,-Y
0219 922A ST R2,-Y
021A E904 LDI R16,0x94
021B E010 LDI R17,0
021C 940E04A4 CALL lpm32
021E 933A ST R19,-Y
021F 932A ST R18,-Y
0220 931A ST R17,-Y
0221 930A ST R16,-Y
0222 940E033A CALL sub32f
0224 940E02D8 CALL fp2int
0226 01A8 MOVW R20,R16
0227 5040 SUBI R20,0
0228 4850 SBCI R21,0x80
0229 C008 RJMP 0x0232
022A 01FE MOVW R30,R28
022B 8103 LDD R16,3+Z
022C 8114 LDD R17,4+Z
022D 8125 LDD R18,5+Z
022E 8136 LDD R19,6+Z
022F 940E02D8 CALL fp2int
0231 01A8 MOVW R20,R16
0232 01BA MOVW R22,R20
(0140) temppt=Num_BCD(t);//将实际温度的10倍转换成BCD码
0233 018B MOVW R16,R22
0234 DF72 RCALL _Num_BCD
0235 0158 MOVW R10,R16
(0141) for(i=0;i<3;i++) //将转换后的BCD码存入显示数组
0236 2744 CLR R20
0237 C00C RJMP 0x0244
(0142) {
(0143) temp[i]=*(temppt+i);
0238 2FE4 MOV R30,R20
0239 27FF CLR R31
023A 0DEA ADD R30,R10
023B 1DFB ADC R31,R11
023C 8020 LDD R2,0+Z
023D 01CE MOVW R24,R28
023E 2FE4 MOV R30,R20
023F 27FF CLR R31
0240 0FE8 ADD R30,R24
0241 1FF9 ADC R31,R25
0242 8220 STD R2,0+Z
0243 9543 INC R20
0244 3043 CPI R20,3
0245 F390 BCS 0x0238
(0144) }
(0145) for(i=0;i<3;i++) //显示温度
0246 2744 CLR R20
0247 C012 RJMP 0x025A
(0146) {
(0147) if(i==1)
0248 3041 CPI R20,1
0249 F419 BNE 0x024D
(0148) {
(0149) temp[1]+=16; //如果是各位,则加上小数点(数码管的译码数组有所改变,读者可以看10_DS18B20文件夹下的SMG.C文件)
024A 8189 LDD R24,1+Y
024B 5F80 SUBI R24,0xF0
024C 8389 STD R24,1+Y
(0150) }
(0151) One_smg_display(temp[i],i+1);
024D 2F24 MOV R18,R20
024E 5F2F SUBI R18,0xFF
024F 01CE MOVW R24,R28
0250 2FE4 MOV R30,R20
0251 27FF CLR R31
0252 0FE8 ADD R30,R24
0253 1FF9 ADC R31,R25
0254 8100 LDD R16,0+Z
0255 DE74 RCALL _One_smg_display
(0152) Delayms(5);
0256 E005 LDI R16,5
0257 E010 LDI R17,0
0258 DE35 RCALL _Delayms
0259 9543 INC R20
025A 3043 CPI R20,3
025B F360 BCS 0x0248
025C CF72 RJMP 0x01CF
(0153) }
(0154) }
(0155) }
FILE: <library>
025D 9627 ADIW R28,7
025E 9508 RET
mod16u:
025F 9468 BSET 6
0260 C001 RJMP xdiv16u
div16u:
0261 94E8 BCLR 6
xdiv16u:
0262 92EA ST R14,-Y
0263 92FA ST R15,-Y
0264 938A ST R24,-Y
0265 24EE CLR R14
0266 24FF CLR R15
0267 E180 LDI R24,0x10
0268 0F00 LSL R16
0269 1F11 ROL R17
026A 1CEE ROL R14
026B 1CFF ROL R15
026C 16E2 CP R14,R18
026D 06F3 CPC R15,R19
026E F018 BCS 0x0272
026F 1AE2 SUB R14,R18
0270 0AF3 SBC R15,R19
0271 9503 INC R16
0272 958A DEC R24
0273 F7A1 BNE 0x0268
0274 F416 BRTC 0x0277
0275 2D0E MOV R16,R14
0276 2D1F MOV R17,R15
0277 9189 LD R24,Y+
0278 90F9 LD R15,Y+
0279 90E9 LD R14,Y+
027A 9508 RET
mod16s:
027B 9468 BSET 6
027C C001 RJMP 0x027E
div16s:
027D 94E8 BCLR 6
027E 92DA ST R13,-Y
027F 2ED1 MOV R13,R17
0280 26D3 EOR R13,R19
0281 FF17 SBRS R17,7
0282 C004 RJMP 0x0287
0283 9510 COM R17
0284 9500 COM R16
0285 5F0F SUBI R16,0xFF
0286 4F1F SBCI R17,0xFF
0287 FF37 SBRS R19,7
0288 C004 RJMP 0x028D
0289 9530 COM R19
028A 9520 COM R18
028B 5F2F SUBI R18,0xFF
028C 4F3F SBCI R19,0xFF
028D 940E0262 CALL xdiv16u
028F F036 BRTS 0x0296
0290 FED7 SBRS R13,7
0291 C004 RJMP 0x0296
0292 9510 COM R17
0293 9500 COM R16
0294 5F0F SUBI R16,0xFF
0295 4F1F SBCI R17,0xFF
0296 90D9 LD R13,Y+
0297 9508 RET
empy16s:
0298 920A ST R0,-Y
0299 921A ST R1,-Y
029A 938A ST R24,-Y
029B 939A ST R25,-Y
029C 9F02 MUL R16,R18
029D 01C0 MOVW R24,R0
029E 9F12 MUL R17,R18
029F 0D90 ADD R25,R0
02A0 9F03 MUL R16,R19
02A1 0D90 ADD R25,R0
02A2 018C MOVW R16,R24
02A3 9199 LD R25,Y+
02A4 9189 LD R24,Y+
02A5 9019 LD R1,Y+
02A6 9009 LD R0,Y+
02A7 9508 RET
int2fp:
02A8 2722 CLR R18
02A9 FD17 SBRC R17,7
02AA 9520 COM R18
02AB 2733 CLR R19
02AC FD27 SBRC R18,7
02AD 9530 COM R19
long2fp:
02AE 940E0320 CALL savfacc1
02B0 D002 RCALL ITOF
02B1 940C0323 JMP restorefacc1
ITOF:
02B3 2788 CLR R24
02B4 2333 TST R19
02B5 F41A BPL 0x02B9
02B6 940E04B8 CALL neg32
02B8 9580 COM R24
02B9 2FB0 MOV R27,R16
02BA 2BB1 OR R27,R17
02BB 2BB2 OR R27,R18
02BC 2BB3 OR R27,R19
02BD F411 BNE 0x02C0
02BE 940C039D JMP minres
02C0 E1B6 LDI R27,0x16
02C1 C005 RJMP 0x02C7
02C2 95B3 INC R27
02C3 9536 LSR R19
02C4 9527 ROR R18
02C5 9517 ROR R17
02C6 9507 ROR R16
02C7 2333 TST R19
02C8 F7C9 BNE 0x02C2
02C9 2322 TST R18
02CA F449 BNE 0x02D4
02CB 50B8 SUBI R27,0x8
02CC 2F21 MOV R18,R17
02CD 2F10 MOV R17,R16
02CE E000 LDI R16,0
02CF CFF9 RJMP 0x02C9
02D0 95BA DEC R27
02D1 0F00 LSL R16
02D2 1F11 ROL R17
02D3 1F22 ROL R18
02D4 F7DA BPL 0x02D0
02D5 2F3B MOV R19,R27
02D6 940C03C7 JMP repack
fp2int:
02D8 940E0320 CALL savfacc1
02DA D014 RCALL 0x02EF
02DB 2F02 MOV R16,R18
02DC 2F13 MOV R17,R19
02DD FD87 SBRC R24,7
02DE C002 RJMP 0x02E1
02DF 940C0323 JMP restorefacc1
02E1 9510 COM R17
02E2 9501 NEG R16
02E3 4F1F SBCI R17,0xFF
02E4 940C0323 JMP restorefacc1
fp2long:
02E6 940E0320 CALL savfacc1
02E8 D008 RCALL 0x02F1
02E9 FF87 SBRS R24,7
02EA C002 RJMP 0x02ED
02EB 940E04B8 CALL neg32
02ED 940C0323 JMP restorefacc1
02EF E0BE LDI R27,0xE
02F0 C001 RJMP 0x02F2
02F1 E1BE LDI R27,0x1E
02F2 940E0326 CALL unpackfacc1
02F4 F069 BEQ 0x0302
02F5 1BB3 SUB R27,R19
02F6 F009 BEQ 0x02F8
02F7 F472 BPL 0x0306
02F8 2388 TST R24
02F9 F022 BMI 0x02FE
02FA E010 LDI R17,0
02FB EA00 LDI R16,0xA0
02FC 940C04A4 JMP lpm32
02FE E010 LDI R17,0
02FF EA06 LDI R16,0xA6
0300 940C04A4 JMP lpm32
0302 E010 LDI R17,0
0303 EA04 LDI R16,0xA4
0304 940C04A4 JMP lpm32
0306 9533 INC R19
0307 F3D2 BMI 0x0302
0308 E030 LDI R19,0
0309 50B8 SUBI R27,0x8
030A F452 BPL 0x0315
030B 5FB8 SUBI R27,0xF8
030C 2F32 MOV R19,R18
030D 2F21 MOV R18,R17
030E 2F10 MOV R17,R16
030F E800 LDI R16,0x80
0310 C006 RJMP 0x0317
0311 2F01 MOV R16,R17
0312 2F12 MOV R17,R18
0313 E020 LDI R18,0
0314 50B8 SUBI R27,0x8
0315 30B8 CPI R27,0x8
0316 F7D0 BCC 0x0311
0317 23BB TST R27
0318 F031 BEQ 0x031F
0319 9536 LSR R19
031A 9527 ROR R18
031B 9517 ROR R17
031C 9507 ROR R16
031D 95BA DEC R27
031E F7D1 BNE 0x0319
031F 9508 RET
savfacc1:
0320 938A ST R24,-Y
0321 93BA ST R27,-Y
0322 9508 RET
restorefacc1:
0323 91B9 LD R27,Y+
0324 9189 LD R24,Y+
0325 9508 RET
unpackfacc1:
0326 2F83 MOV R24,R19
0327 7880 ANDI R24,0x80
0328 0F22 LSL R18
0329 1F33 ROL R19
032A 5830 SUBI R19,0x80
032B 9408 BSET 0
032C 9527 ROR R18
032D 3830 CPI R19,0x80
032E 9508 RET
add32fs:
032F D002 RCALL add32f
0330 940C044B JMP push_arg4
add32f:
0332 940E047C CALL float_prolog
0334 D012 RCALL FADD
0335 940C0475 JMP float_epilog
sub32fs:
0337 D002 RCALL sub32f
0338 940C044B JMP push_arg4
sub32f:
033A 940E047C CALL float_prolog
033C D009 RCALL FSUB
033D 940C0475 JMP float_epilog
fret2:
033F 2F8A MOV R24,R26
0340 2F39 MOV R19,R25
0341 2D24 MOV R18,R4
0342 2D13 MOV R17,R3
0343 2D02 MOV R16,R2
0344 940C03C7 JMP repack
FSUB:
0346 5890 SUBI R25,0x80
FADD:
0347 940E03B5 CALL unpack
0349 3890 CPI R25,0x80
034A F3C9 BEQ 0x0344
034B 3830 CPI R19,0x80
034C F391 BEQ 0x033F
034D 2FB3 MOV R27,R19
034E 1BB9 SUB R27,R25
034F F3A3 BVS 0x0344
0350 F02A BMI 0x0356
0351 F439 BNE 0x0359
0352 1502 CP R16,R2
0353 0513 CPC R17,R3
0354 0524 CPC R18,R4
0355 F418 BCC 0x0359
0356 940E03A9 CALL swapacc
0358 CFF4 RJMP 0x034D
0359 31B8 CPI R27,0x18
035A F018 BCS 0x035E
035B 2422 CLR R2
035C 2433 CLR R3
035D 2444 CLR R4
035E 30B8 CPI R27,0x8
035F F028 BCS 0x0365
0360 2C23 MOV R2,R3
0361 2C34 MOV R3,R4
0362 2444 CLR R4
0363 50B8 SUBI R27,0x8
0364 CFF9 RJMP 0x035E
0365 23BB TST R27
0366 F029 BEQ 0x036C
0367 9446 LSR R4
0368 9437 ROR R3
0369 9427 ROR R2
036A 95BA DEC R27
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -