📄 main.lss
字号:
}
}
4c6: 28 96 adiw r28, 0x08 ; 8
4c8: 0f b6 in r0, 0x3f ; 63
4ca: f8 94 cli
4cc: de bf out 0x3e, r29 ; 62
4ce: 0f be out 0x3f, r0 ; 63
4d0: cd bf out 0x3d, r28 ; 61
4d2: cf 91 pop r28
4d4: df 91 pop r29
4d6: 1f 91 pop r17
4d8: 0f 91 pop r16
4da: ff 90 pop r15
4dc: ef 90 pop r14
4de: 08 95 ret
000004e0 <TemperatureProcessing>:
//温度处理函数,按照用户设定,有温度报警时,可以有一个IO进行开启或关闭操作.
//目前软件设定是一个加热设备.低温开启IO,高温关闭IO.
//在参数设置中,可以设置是否启用温度报警IO机制
void TemperatureProcessing(void)
{
4e0: 0f 93 push r16
4e2: 1f 93 push r17
4e4: df 93 push r29
4e6: cf 93 push r28
4e8: cd b7 in r28, 0x3d ; 61
4ea: de b7 in r29, 0x3e ; 62
4ec: 2a 97 sbiw r28, 0x0a ; 10
4ee: 0f b6 in r0, 0x3f ; 63
4f0: f8 94 cli
4f2: de bf out 0x3e, r29 ; 62
4f4: 0f be out 0x3f, r0 ; 63
4f6: cd bf out 0x3d, r28 ; 61
unsigned char temp[10]={'\0'};
4f8: 8e 01 movw r16, r28
4fa: 0f 5f subi r16, 0xFF ; 255
4fc: 1f 4f sbci r17, 0xFF ; 255
4fe: 8a e0 ldi r24, 0x0A ; 10
500: f8 01 movw r30, r16
502: 11 92 st Z+, r1
504: 8a 95 dec r24
506: e9 f7 brne .-6 ; 0x502 <TemperatureProcessing+0x22>
UartSendString((unsigned char *)"当前温度是:");
508: 8f e7 ldi r24, 0x7F ; 127
50a: 90 e0 ldi r25, 0x00 ; 0
50c: 0e 94 33 04 call 0x866 ; 0x866 <UartSendString>
if(_T) //+
510: 80 91 ce 00 lds r24, 0x00CE
514: 88 23 and r24, r24
516: 09 f4 brne .+2 ; 0x51a <TemperatureProcessing+0x3a>
518: 65 c0 rjmp .+202 ; 0x5e4 <TemperatureProcessing+0x104>
{
if(TemperatrueBuffer[0]) //最高百位
51a: 80 91 ec 00 lds r24, 0x00EC
51e: 88 23 and r24, r24
520: 51 f1 breq .+84 ; 0x576 <TemperatureProcessing+0x96>
{
sprintf(temp,"%d%d%d.%d%d%d",TemperatrueBuffer[0]%256,TemperatrueBuffer[1]%256,TemperatrueBuffer[2]%256,TemperatrueBuffer[3]%256,TemperatrueBuffer[4]%256,TemperatrueBuffer[5]%256);
522: 80 91 f1 00 lds r24, 0x00F1
526: 20 91 f0 00 lds r18, 0x00F0
52a: 40 91 ef 00 lds r20, 0x00EF
52e: 60 91 ee 00 lds r22, 0x00EE
532: e0 91 ed 00 lds r30, 0x00ED
536: a0 91 ec 00 lds r26, 0x00EC
53a: 90 e0 ldi r25, 0x00 ; 0
53c: 9f 93 push r25
53e: 8f 93 push r24
540: 30 e0 ldi r19, 0x00 ; 0
542: 3f 93 push r19
544: 2f 93 push r18
546: 50 e0 ldi r21, 0x00 ; 0
548: 5f 93 push r21
54a: 4f 93 push r20
54c: 70 e0 ldi r23, 0x00 ; 0
54e: 7f 93 push r23
550: 6f 93 push r22
552: f0 e0 ldi r31, 0x00 ; 0
554: ff 93 push r31
556: ef 93 push r30
558: b0 e0 ldi r27, 0x00 ; 0
55a: bf 93 push r27
55c: af 93 push r26
55e: 8b e8 ldi r24, 0x8B ; 139
560: 90 e0 ldi r25, 0x00 ; 0
562: 9f 93 push r25
564: 8f 93 push r24
566: 1f 93 push r17
568: 0f 93 push r16
56a: 0e 94 cd 04 call 0x99a ; 0x99a <sprintf>
56e: 8d b7 in r24, 0x3d ; 61
570: 9e b7 in r25, 0x3e ; 62
572: 40 96 adiw r24, 0x10 ; 16
574: 84 c0 rjmp .+264 ; 0x67e <TemperatureProcessing+0x19e>
}
else if(TemperatrueBuffer[1]) //最高十位
576: 80 91 ed 00 lds r24, 0x00ED
57a: 88 23 and r24, r24
57c: e1 f0 breq .+56 ; 0x5b6 <TemperatureProcessing+0xd6>
{
sprintf(temp,"%d%d.%d%d%d",TemperatrueBuffer[1]%256,TemperatrueBuffer[2]%256,TemperatrueBuffer[3]%256,TemperatrueBuffer[4]%256,TemperatrueBuffer[5]%256);
57e: 80 91 f1 00 lds r24, 0x00F1
582: 20 91 f0 00 lds r18, 0x00F0
586: 40 91 ef 00 lds r20, 0x00EF
58a: 60 91 ee 00 lds r22, 0x00EE
58e: e0 91 ed 00 lds r30, 0x00ED
592: 90 e0 ldi r25, 0x00 ; 0
594: 9f 93 push r25
596: 8f 93 push r24
598: 30 e0 ldi r19, 0x00 ; 0
59a: 3f 93 push r19
59c: 2f 93 push r18
59e: 50 e0 ldi r21, 0x00 ; 0
5a0: 5f 93 push r21
5a2: 4f 93 push r20
5a4: 70 e0 ldi r23, 0x00 ; 0
5a6: 7f 93 push r23
5a8: 6f 93 push r22
5aa: f0 e0 ldi r31, 0x00 ; 0
5ac: ff 93 push r31
5ae: ef 93 push r30
5b0: 89 e9 ldi r24, 0x99 ; 153
5b2: 90 e0 ldi r25, 0x00 ; 0
5b4: 36 c0 rjmp .+108 ; 0x622 <TemperatureProcessing+0x142>
}
else //最高个位
{
sprintf(temp,"%d.%d%d%d",TemperatrueBuffer[2]%256,TemperatrueBuffer[3]%256,TemperatrueBuffer[4]%256,TemperatrueBuffer[5]%256);
5b6: 80 91 f1 00 lds r24, 0x00F1
5ba: 20 91 f0 00 lds r18, 0x00F0
5be: 40 91 ef 00 lds r20, 0x00EF
5c2: 60 91 ee 00 lds r22, 0x00EE
5c6: 90 e0 ldi r25, 0x00 ; 0
5c8: 9f 93 push r25
5ca: 8f 93 push r24
5cc: 30 e0 ldi r19, 0x00 ; 0
5ce: 3f 93 push r19
5d0: 2f 93 push r18
5d2: 50 e0 ldi r21, 0x00 ; 0
5d4: 5f 93 push r21
5d6: 4f 93 push r20
5d8: 70 e0 ldi r23, 0x00 ; 0
5da: 7f 93 push r23
5dc: 6f 93 push r22
5de: 85 ea ldi r24, 0xA5 ; 165
5e0: 90 e0 ldi r25, 0x00 ; 0
5e2: 44 c0 rjmp .+136 ; 0x66c <TemperatureProcessing+0x18c>
}
}
else //-
{
if(TemperatrueBuffer[1]) //最高十位
5e4: 80 91 ed 00 lds r24, 0x00ED
5e8: 88 23 and r24, r24
5ea: 51 f1 breq .+84 ; 0x640 <TemperatureProcessing+0x160>
{
sprintf(temp,"-%d%d.%d%d%d",TemperatrueBuffer[1]%256,TemperatrueBuffer[2]%256,TemperatrueBuffer[3]%256,TemperatrueBuffer[4]%256,TemperatrueBuffer[5]%256);
5ec: 80 91 f1 00 lds r24, 0x00F1
5f0: 20 91 f0 00 lds r18, 0x00F0
5f4: 40 91 ef 00 lds r20, 0x00EF
5f8: 60 91 ee 00 lds r22, 0x00EE
5fc: e0 91 ed 00 lds r30, 0x00ED
600: 90 e0 ldi r25, 0x00 ; 0
602: 9f 93 push r25
604: 8f 93 push r24
606: 30 e0 ldi r19, 0x00 ; 0
608: 3f 93 push r19
60a: 2f 93 push r18
60c: 50 e0 ldi r21, 0x00 ; 0
60e: 5f 93 push r21
610: 4f 93 push r20
612: 70 e0 ldi r23, 0x00 ; 0
614: 7f 93 push r23
616: 6f 93 push r22
618: f0 e0 ldi r31, 0x00 ; 0
61a: ff 93 push r31
61c: ef 93 push r30
61e: 8f ea ldi r24, 0xAF ; 175
620: 90 e0 ldi r25, 0x00 ; 0
622: 9f 93 push r25
624: 8f 93 push r24
626: 1f 93 push r17
628: 0f 93 push r16
62a: 0e 94 cd 04 call 0x99a ; 0x99a <sprintf>
62e: ed b7 in r30, 0x3d ; 61
630: fe b7 in r31, 0x3e ; 62
632: 3e 96 adiw r30, 0x0e ; 14
634: 0f b6 in r0, 0x3f ; 63
636: f8 94 cli
638: fe bf out 0x3e, r31 ; 62
63a: 0f be out 0x3f, r0 ; 63
63c: ed bf out 0x3d, r30 ; 61
63e: 24 c0 rjmp .+72 ; 0x688 <TemperatureProcessing+0x1a8>
}
else //最高个位
{
sprintf(temp,"-%d.%d%d%d",TemperatrueBuffer[2]%256,TemperatrueBuffer[3]%256,TemperatrueBuffer[4]%256,TemperatrueBuffer[5]%256);
640: 80 91 f1 00 lds r24, 0x00F1
644: 20 91 f0 00 lds r18, 0x00F0
648: 40 91 ef 00 lds r20, 0x00EF
64c: 60 91 ee 00 lds r22, 0x00EE
650: 90 e0 ldi r25, 0x00 ; 0
652: 9f 93 push r25
654: 8f 93 push r24
656: 30 e0 ldi r19, 0x00 ; 0
658: 3f 93 push r19
65a: 2f 93 push r18
65c: 50 e0 ldi r21, 0x00 ; 0
65e: 5f 93 push r21
660: 4f 93 push r20
662: 70 e0 ldi r23, 0x00 ; 0
664: 7f 93 push r23
666: 6f 93 push r22
668: 8c eb ldi r24, 0xBC ; 188
66a: 90 e0 ldi r25, 0x00 ; 0
66c: 9f 93 push r25
66e: 8f 93 push r24
670: 1f 93 push r17
672: 0f 93 push r16
674: 0e 94 cd 04 call 0x99a ; 0x99a <sprintf>
678: 8d b7 in r24, 0x3d ; 61
67a: 9e b7 in r25, 0x3e ; 62
67c: 0c 96 adiw r24, 0x0c ; 12
67e: 0f b6 in r0, 0x3f ; 63
680: f8 94 cli
682: 9e bf out 0x3e, r25 ; 62
684: 0f be out 0x3f, r0 ; 63
686: 8d bf out 0x3d, r24 ; 61
}
}
UartSendString(temp);
688: ce 01 movw r24, r28
68a: 01 96 adiw r24, 0x01 ; 1
68c: 0e 94 33 04 call 0x866 ; 0x866 <UartSendString>
UartSendString((unsigned char *)"℃");
690: 87 ec ldi r24, 0xC7 ; 199
692: 90 e0 ldi r25, 0x00 ; 0
694: 0e 94 33 04 call 0x866 ; 0x866 <UartSendString>
UartSendString((unsigned char *)"\r\n");
698: 8c e7 ldi r24, 0x7C ; 124
69a: 90 e0 ldi r25, 0x00 ; 0
69c: 0e 94 33 04 call 0x866 ; 0x866 <UartSendString>
}
6a0: 2a 96 adiw r28, 0x0a ; 10
6a2: 0f b6 in r0, 0x3f ; 63
6a4: f8 94 cli
6a6: de bf out 0x3e, r29 ; 62
6a8: 0f be out 0x3f, r0 ; 63
6aa: cd bf out 0x3d, r28 ; 61
6ac: cf 91 pop r28
6ae: df 91 pop r29
6b0: 1f 91 pop r17
6b2: 0f 91 pop r16
6b4: 08 95 ret
000006b6 <DS18B20Processing>:
void DS18B20Processing(void)
{
6b6: 80 91 cb 00 lds r24, 0x00CB
6ba: 88 23 and r24, r24
6bc: 29 f0 breq .+10 ; 0x6c8 <DS18B20Processing+0x12>
if(OneWireConnectFlag)
{
ReadTemperature();
6be: 0e 94 72 01 call 0x2e4 ; 0x2e4 <ReadTemperature>
TemperatureProcessing();
6c2: 0e 94 70 02 call 0x4e0 ; 0x4e0 <TemperatureProcessing>
6c6: 08 95 ret
}
else
{
if(EnableOneWireFlag)//如果的确设置的测温器件,那么隔ns检测一下器件是否重新连接
6c8: 80 91 ca 00 lds r24, 0x00CA
6cc: 88 23 and r24, r24
6ce: 41 f0 breq .+16 ; 0x6e0 <DS18B20Processing+0x2a>
{
if(CheckDS18B20TimeoutFlag)
6d0: 80 91 de 00 lds r24, 0x00DE
6d4: 88 23 and r24, r24
6d6: 21 f0 breq .+8 ; 0x6e0 <DS18B20Processing+0x2a>
{
CheckDS18B20TimeoutFlag=0;
6d8: 10 92 de 00 sts 0x00DE, r1
OneWireInit();
6dc: 0e 94 e5 00 call 0x1ca ; 0x1ca <OneWireInit>
6e0: 08 95 ret
000006e2 <Timer0Init>:
//--------------定时器0——5ms程序--------------
//系统时钟:11059200Hz 分频:1024
//Timer0初始化
void Timer0Init(void) //5ms
{
6e2: 13 be out 0x33, r1 ; 51
TCCR0=0x00;
TCNT0=0xcb;
6e4: 8b ec ldi r24, 0xCB ; 203
6e6: 82 bf out 0x32, r24 ; 50
OCR0=0x35;
6e8: 85 e3 ldi r24, 0x35 ; 53
6ea: 8c bf out 0x3c, r24 ; 60
TCCR0=(1<<WGM01)|(1<<CS02)|(1<<CS00);
6ec: 8d e0 ldi r24, 0x0D ; 13
6ee: 83 bf out 0x33, r24 ; 51
TIMSK|=(1<<OCIE0);
6f0: 89 b7 in r24, 0x39 ; 57
6f2: 82 60 ori r24, 0x02 ; 2
6f4: 89 bf out 0x39, r24 ; 57
}
6f6: 08 95 ret
000006f8 <__vector_10>:
//Timer0 CTC中断,此中断发生周期是:5毫秒
ISR(TIMER0_COMP_vect)
{
6f8: 1f 92 push r1
6fa: 0f 92 push r0
6fc: 0f b6 in r0, 0x3f ; 63
6fe: 0f 92 push r0
700: 11 24 eor r1, r1
702: 2f 93 push r18
704: 8f 93 push r24
706: 9f 93 push r25
if(UartTimeoutFlag)
708: 80 91 e1 00 lds r24, 0x00E1
70c: 88 23 and r24, r24
70e: 91 f0 breq .+36 ; 0x734 <__vector_10+0x3c>
{
if(WaitForUartCounter>=1)
710: 80 91 e2 00 lds r24, 0x00E2
714: 88 23 and r24, r24
716: 49 f0 breq .+18 ; 0x72a <__vector_10+0x32>
{
UartTimeoutFlag=0;
718: 10 92 e1 00 sts 0x00E1, r1
WaitForUartCounter=0;
71c: 10 92 e2 00 sts 0x00E2, r1
UartDataReadyFlag=1;
720: 81 e0 ldi r24, 0x01 ; 1
722: 80 93 e3 00 sts 0x00E3, r24
UCSRB&=~(1<<RXCIE); //禁止接收
726: 57 98 cbi 0x0a, 7 ; 10
728: 05 c0 rjmp .+10 ; 0x734 <__vector_10+0x3c>
}
else WaitForUartCounter++;
72a: 80 91 e2 00 lds r24, 0x00E2
72e: 8f 5f subi r24, 0xFF ; 255
730: 80 93 e2 00 sts 0x00E2, r24
}
if(ReadTFlag)
734: 80 91 d8 00 lds r24, 0x00D8
738: 88 23 and r24, r24
73a: 89 f0 breq .+34 ; 0x75e <__vector_10+0x66>
{
if(ReadTCounter>=ReadTCounterTimeout)
73c: 80 91 d9 00 lds r24, 0x00D9
740: 88 32 cpi r24, 0x28 ; 40
742: 40 f0 brcs .+16 ; 0x754 <__vector_10+0x5c>
{
ReadTFlag=0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -