📄 main.lss
字号:
3dc: 9a 95 dec r25
3de: f1 f7 brne .-4 ; 0x3dc <Reset_DS18B20+0x40>
3e0: 82 95 swap r24
3e2: 8f 70 andi r24, 0x0F ; 15
3e4: 80 95 com r24
3e6: 81 70 andi r24, 0x01 ; 1
3e8: 99 27 eor r25, r25
3ea: 08 95 ret
000003ec <Write_DS18B20>:
//写命令或数据到温度芯片DS18B20(发送一个字节)*****************************//
void Write_DS18B20(uchar data)
{
3ec: 98 2f mov r25, r24
uchar i=0;
Set_DS18B20_dq_DDR();
3ee: 8c 9a sbi 0x11, 4 ; 17
3f0: 20 e0 ldi r18, 0x00 ; 0
3f2: 65 e1 ldi r22, 0x15 ; 21
3f4: 55 ef ldi r21, 0xF5 ; 245
3f6: 40 e0 ldi r20, 0x00 ; 0
3f8: 3a e0 ldi r19, 0x0A ; 10
for(i=0;i<8;i++)
{
if(data&0x01)
3fa: 90 ff sbrs r25, 0
3fc: 07 c0 rjmp .+14 ; 0x40c <Write_DS18B20+0x20>
{
Clr_DS18B20_dq();
3fe: 94 98 cbi 0x12, 4 ; 18
*/
void
_delay_loop_1(uint8_t __count)
{
__asm__ volatile (
400: 86 2f mov r24, r22
402: 8a 95 dec r24
404: f1 f7 brne .-4 ; 0x402 <Write_DS18B20+0x16>
_delay_us(8);
Set_DS18B20_dq();
406: 94 9a sbi 0x12, 4 ; 18
*/
void
_delay_loop_1(uint8_t __count)
{
__asm__ volatile (
408: 85 2f mov r24, r21
40a: 06 c0 rjmp .+12 ; 0x418 <Write_DS18B20+0x2c>
_delay_us(92);
}
else
{
Clr_DS18B20_dq();
40c: 94 98 cbi 0x12, 4 ; 18
*/
void
_delay_loop_1(uint8_t __count)
{
__asm__ volatile (
40e: 84 2f mov r24, r20
410: 8a 95 dec r24
412: f1 f7 brne .-4 ; 0x410 <Write_DS18B20+0x24>
_delay_us(98);
Set_DS18B20_dq();
414: 94 9a sbi 0x12, 4 ; 18
*/
void
_delay_loop_1(uint8_t __count)
{
__asm__ volatile (
416: 83 2f mov r24, r19
418: 8a 95 dec r24
41a: f1 f7 brne .-4 ; 0x418 <Write_DS18B20+0x2c>
41c: 2f 5f subi r18, 0xFF ; 255
41e: 28 30 cpi r18, 0x08 ; 8
420: 11 f0 breq .+4 ; 0x426 <Write_DS18B20+0x3a>
_delay_us(4);
}
data>>=1;
422: 96 95 lsr r25
424: ea cf rjmp .-44 ; 0x3fa <Write_DS18B20+0xe>
426: 08 95 ret
00000428 <Read_DS18B20>:
}
}
//从温度芯片DS18B20读配置或数据(接收一个字节)*****************************//
uchar Read_DS18B20(void)
{
428: 8c 9a sbi 0x11, 4 ; 17
42a: 90 e0 ldi r25, 0x00 ; 0
42c: 20 e0 ldi r18, 0x00 ; 0
42e: 55 e1 ldi r21, 0x15 ; 21
430: 4a e0 ldi r20, 0x0A ; 10
432: 3a eb ldi r19, 0xBA ; 186
uchar data=0,i=0;
Set_DS18B20_dq_DDR();
for(i=0;i<8;i++)
{
data>>=1;
434: 96 95 lsr r25
Clr_DS18B20_dq();
436: 94 98 cbi 0x12, 4 ; 18
*/
void
_delay_loop_1(uint8_t __count)
{
__asm__ volatile (
438: 85 2f mov r24, r21
43a: 8a 95 dec r24
43c: f1 f7 brne .-4 ; 0x43a <Read_DS18B20+0x12>
_delay_us(8);
Set_DS18B20_dq();
43e: 94 9a sbi 0x12, 4 ; 18
*/
void
_delay_loop_1(uint8_t __count)
{
__asm__ volatile (
440: 84 2f mov r24, r20
442: 8a 95 dec r24
444: f1 f7 brne .-4 ; 0x442 <Read_DS18B20+0x1a>
_delay_us(4);
if(In_DS18B20_dq())
446: 84 99 sbic 0x10, 4 ; 16
data|=0x80;
448: 90 68 ori r25, 0x80 ; 128
*/
void
_delay_loop_1(uint8_t __count)
{
__asm__ volatile (
44a: 83 2f mov r24, r19
44c: 8a 95 dec r24
44e: f1 f7 brne .-4 ; 0x44c <Read_DS18B20+0x24>
450: 2f 5f subi r18, 0xFF ; 255
452: 28 30 cpi r18, 0x08 ; 8
454: 79 f7 brne .-34 ; 0x434 <Read_DS18B20+0xc>
_delay_us(70);
// data>>=1;
}
return(data);
}
456: 89 2f mov r24, r25
458: 99 27 eor r25, r25
45a: 08 95 ret
0000045c <Get_Temperature>:
//读取温度****************************************************************//
void Get_Temperature()
{
45c: 0e 94 ce 01 call 0x39c ; 0x39c <Reset_DS18B20>
Reset_DS18B20(); // 总线复位
Write_DS18B20(DS18B20_skip_rom);
460: 8c ec ldi r24, 0xCC ; 204
462: 0e 94 f6 01 call 0x3ec ; 0x3ec <Write_DS18B20>
Write_DS18B20(DS18B20_read_ram);
466: 8e eb ldi r24, 0xBE ; 190
468: 0e 94 f6 01 call 0x3ec ; 0x3ec <Write_DS18B20>
temp_low=Read_DS18B20(); // 温度的低8位
46c: 0e 94 14 02 call 0x428 ; 0x428 <Read_DS18B20>
470: 80 93 74 00 sts 0x0074, r24
temp_high=Read_DS18B20(); // 温度的高8位
474: 0e 94 14 02 call 0x428 ; 0x428 <Read_DS18B20>
478: 80 93 72 00 sts 0x0072, r24
Reset_DS18B20();
47c: 0e 94 ce 01 call 0x39c ; 0x39c <Reset_DS18B20>
Write_DS18B20(DS18B20_skip_rom);
480: 8c ec ldi r24, 0xCC ; 204
482: 0e 94 f6 01 call 0x3ec ; 0x3ec <Write_DS18B20>
Write_DS18B20(DS18B20_convert_tem);
486: 84 e4 ldi r24, 0x44 ; 68
488: 0e 94 f6 01 call 0x3ec ; 0x3ec <Write_DS18B20>
48c: 08 95 ret
0000048e <Convert_Temperature>:
}
//将得到的数据转换成摄氏度************************************************//
int Convert_Temperature(void)
{
48e: 80 91 72 00 lds r24, 0x0072
492: 20 91 74 00 lds r18, 0x0074
496: 87 ff sbrs r24, 7
498: 13 c0 rjmp .+38 ; 0x4c0 <Convert_Temperature+0x32>
int T_Value;
uchar flag=0;
if(temp_high>127)
{
temp_high = 256-temp_high;
49a: 81 95 neg r24
49c: 80 93 72 00 sts 0x0072, r24
temp_low = 256-temp_low;
4a0: 21 95 neg r18
4a2: 20 93 74 00 sts 0x0074, r18
flag=1;
}
T_Value = (temp_high*256+temp_low)/16;
4a6: 99 27 eor r25, r25
4a8: 98 2f mov r25, r24
4aa: 88 27 eor r24, r24
4ac: 82 0f add r24, r18
4ae: 91 1d adc r25, r1
4b0: 60 e1 ldi r22, 0x10 ; 16
4b2: 70 e0 ldi r23, 0x00 ; 0
4b4: 0e 94 9d 03 call 0x73a ; 0x73a <__divmodhi4>
if(flag)
{
T_Value=(-1)*T_Value;
4b8: 70 95 com r23
4ba: 61 95 neg r22
4bc: 7f 4f sbci r23, 0xFF ; 255
4be: 09 c0 rjmp .+18 ; 0x4d2 <Convert_Temperature+0x44>
4c0: 99 27 eor r25, r25
4c2: 98 2f mov r25, r24
4c4: 88 27 eor r24, r24
4c6: 82 0f add r24, r18
4c8: 91 1d adc r25, r1
4ca: 60 e1 ldi r22, 0x10 ; 16
4cc: 70 e0 ldi r23, 0x00 ; 0
4ce: 0e 94 9d 03 call 0x73a ; 0x73a <__divmodhi4>
}
return T_Value;
}
4d2: cb 01 movw r24, r22
4d4: 08 95 ret
000004d6 <main>:
#include"DS18B20.c"
int main(void)
{
4d6: 0e 94 7f 00 call 0xfe ; 0xfe <disp_Initial>
uchar temp;
disp_Initial();
while(1)
{
Reset_DS18B20();
4da: 0e 94 ce 01 call 0x39c ; 0x39c <Reset_DS18B20>
Get_Temperature();
4de: 0e 94 2e 02 call 0x45c ; 0x45c <Get_Temperature>
temp=Convert_Temperature();
4e2: 0e 94 47 02 call 0x48e ; 0x48e <Convert_Temperature>
PrintInt(temp);
4e6: 99 27 eor r25, r25
4e8: aa 27 eor r26, r26
4ea: bb 27 eor r27, r27
4ec: bc 01 movw r22, r24
4ee: cd 01 movw r24, r26
4f0: 0e 94 84 00 call 0x108 ; 0x108 <PrintInt>
delay(20);
4f4: 84 e1 ldi r24, 0x14 ; 20
4f6: 0e 94 47 00 call 0x8e ; 0x8e <delay>
4fa: ef cf rjmp .-34 ; 0x4da <main+0x4>
000004fc <__subsf3>:
4fc: 50 58 subi r21, 0x80 ; 128
000004fe <__addsf3>:
4fe: 19 2e mov r1, r25
500: 84 d0 rcall .+264 ; 0x60a <__fp_split3>
502: 01 d0 rcall .+2 ; 0x506 <__addsf3x>
504: 6a c0 rjmp .+212 ; 0x5da <__fp_merge>
00000506 <__addsf3x>:
506: ba 17 cp r27, r26
508: 62 07 cpc r22, r18
50a: 73 07 cpc r23, r19
50c: 84 07 cpc r24, r20
50e: 95 07 cpc r25, r21
510: b1 f1 breq .+108 ; 0x57e <__addsf3x+0x78>
512: 88 f4 brcc .+34 ; 0x536 <__addsf3x+0x30>
514: 0e f4 brtc .+2 ; 0x518 <__addsf3x+0x12>
516: 10 94 com r1
518: 0b 2e mov r0, r27
51a: ba 2f mov r27, r26
51c: a0 2d mov r26, r0
51e: 06 2e mov r0, r22
520: 62 2f mov r22, r18
522: 20 2d mov r18, r0
524: 07 2e mov r0, r23
526: 73 2f mov r23, r19
528: 30 2d mov r19, r0
52a: 08 2e mov r0, r24
52c: 84 2f mov r24, r20
52e: 40 2d mov r20, r0
530: 09 2e mov r0, r25
532: 95 2f mov r25, r21
534: 50 2d mov r21, r0
536: ff 27 eor r31, r31
538: 55 23 and r21, r21
53a: b9 f0 breq .+46 ; 0x56a <__addsf3x+0x64>
53c: 59 1b sub r21, r25
53e: 49 f0 breq .+18 ; 0x552 <__addsf3x+0x4c>
540: 57 3e cpi r21, 0xE7 ; 231
542: 98 f0 brcs .+38 ; 0x56a <__addsf3x+0x64>
544: 46 95 lsr r20
546: 37 95 ror r19
548: 27 95 ror r18
54a: a7 95 ror r26
54c: f0 40 sbci r31, 0x00 ; 0
54e: 53 95 inc r21
550: c9 f7 brne .-14 ; 0x544 <__addsf3x+0x3e>
552: 76 f0 brts .+28 ; 0x570 <__addsf3x+0x6a>
554: ba 0f add r27, r26
556: 62 1f adc r22, r18
558: 73 1f adc r23, r19
55a: 84 1f adc r24, r20
55c: 30 f4 brcc .+12 ; 0x56a <__addsf3x+0x64>
55e: 87 95 ror r24
560: 77 95 ror r23
562: 67 95 ror r22
564: b7 95 ror r27
566: f0 40 sbci r31, 0x00 ; 0
568: 93 95 inc r25
56a: 17 fa bst r1, 7
56c: 0f 2e mov r0, r31
56e: 08 95 ret
570: bf 1b sub r27, r31
572: bb 27 eor r27, r27
574: ba 0b sbc r27, r26
576: 62 0b sbc r22, r18
578: 73 0b sbc r23, r19
57a: 84 0b sbc r24, r20
57c: f6 cf rjmp .-20 ; 0x56a <__addsf3x+0x64>
57e: de f6 brtc .-74 ; 0x536 <__addsf3x+0x30>
580: 70 c0 rjmp .+224 ; 0x662 <__fp_zerox>
00000582 <__fixsfsi>:
582: 97 fb bst r25, 7
584: 4e d0 rcall .+156 ; 0x622 <__fp_split1>
586: 9f 37 cpi r25, 0x7F ; 127
588: 38 f0 brcs .+14 ; 0x598 <__fixsfsi+0x16>
58a: fe e9 ldi r31, 0x9E ; 158
58c: f9 1b sub r31, r25
58e: 98 2f mov r25, r24
590: 87 2f mov r24, r23
592: 76 2f mov r23, r22
594: 6b 2f mov r22, r27
596: 05 c0 rjmp .+10 ; 0x5a2 <__fixsfsi+0x20>
598: 61 c0 rjmp .+194 ; 0x65c <__fp_zero>
59a: 96 95 lsr r25
59c: 87 95 ror r24
59e: 77 95 ror r23
5a0: 67 95 ror r22
5a2: f1 50 subi r31, 0x01 ; 1
5a4: d0 f7 brcc .-12 ; 0x59a <__fixsfsi+0x18>
5a6: 3e f4 brtc .+14 ; 0x5b6 <__fp_lneg+0xe>
000005a8 <__fp_lneg>:
5a8: 90 95 com r25
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -