📄 main.lss
字号:
UartReceiveflag=1;
Uartshortkeyflag=1;
UCSRB&=0xef; //禁止接收
break;
default:
UartReceiveErrorflag=1;
break;
}
if(ReceiveBuffer[0]==MSGHEAD)
{
UartReceiveErrorflag=0;
if(ReceiveBuffer[1]==ReadCommand)
{
if(ReceiveCounter>2)
{
UartReceiveflag=1;
UartReadflag=1;
UCSRB&=0xef; //禁止接收
}
}
else if(ReceiveBuffer[1]==WriteCommand)
{
if(ReceiveCounter>9)
{
UartReceiveflag=1;
UartWriteflag=1;
UCSRB&=0xef; //禁止接收
}
}
}
else ReceiveCounter=0;
}
void ProcessReceiveData(void) //解析接收缓冲区中的数据
{
/*if(UartReceiveErrorflag)
{
UartReceiveErrorflag=0;
ResponseErro();
}*/
if(UartReceiveflag)
{
UartReceiveflag=0; //清接收标志
ReceiveCounter=0;
if(UartReadflag|Uartshortkeyflag)ResponseRead(); //处理读命令
else if(UartWriteflag)ResponseWrite(); //处理写命令
else systemerror=0xfa;
}
else UCSRB=0x98;//使能接收
}
void ResponseRead(void)
{
//unsigned char i;
ReadDate();
UARTSendString(NowDATE); //发送到电脑
if(Uartshortkeyflag)
{
Uartshortkeyflag=0;
if((ReceiveBuffer[0]=='s')|(ReceiveBuffer[0]=='S'))ReceiveBuffer[2]=1;
else if((ReceiveBuffer[0]=='t')|(ReceiveBuffer[0]=='T'))ReceiveBuffer[2]=2;
else if((ReceiveBuffer[0]=='m')|(ReceiveBuffer[0]=='M'))UARTSendString((unsigned char *)&"^_^");
else if((ReceiveBuffer[0]=='e')|(ReceiveBuffer[0]=='E'))UARTSendString((unsigned char *)&"^_^");
goto ShortkeyflagPro;
}
else
{
UartReadflag=0;
if(ReceiveBuffer[2]<5)
{
ShortkeyflagPro:
/*SendCounter=0;
SendBuffer[SendCounter++]=MSGHEAD;
SendBuffer[SendCounter++]=ReadCommand;
SendBuffer[SendCounter++]=ReceiveBuffer[2];*/
if(ReceiveBuffer[2]==1)
{
UARTSendString((unsigned char *)&"读取当前时间...");
ReadDate(); //读取当前时间,解释
UARTSendString(NowDATE); //发送到电脑
//for(i=0;i<7;i++)SendBuffer[SendCounter++]=RealTimeDate[i];
//UARTSendArray(SendBuffer,SendCounter);
}
else if(ReceiveBuffer[2]==2)ReadTemperatureflag=1;
else if(ReceiveBuffer[2]==2);
else if(ReceiveBuffer[2]==2);
else ResponseErro();
}
else ResponseErro();
}
}
void ResponseWrite(void)//
{
unsigned char i;
UartWriteflag=0;
if(ReceiveBuffer[2]<5)
{
if(ReceiveBuffer[2]==1)
{
for(i=0;i<7;i++)RealTimeDate[i]=ReceiveBuffer[3+i];
DS3231WriteTime();
ReadDate(); //读取当前时间,解释
UARTSendString(NowDATE); //发送到电脑
//for(i=0;i<7;i++)SendBuffer[SendCounter++]=RealTimeDate[i];
}
else if(ReceiveBuffer[2]==2);
else if(ReceiveBuffer[2]==3);
else if(ReceiveBuffer[2]==4);
}
else ResponseErro();
}
void ResponseErro(void)
{
40c: 85 e1 ldi r24, 0x15 ; 21
40e: 91 e0 ldi r25, 0x01 ; 1
410: 0e 94 f4 01 call 0x3e8 ; 0x3e8 <UARTSendString>
414: 08 95 ret
00000416 <ResponseWrite>:
416: 10 92 3b 01 sts 0x013B, r1
41a: 80 91 79 01 lds r24, 0x0179
41e: 85 30 cpi r24, 0x05 ; 5
420: 10 f5 brcc .+68 ; 0x466 <ResponseWrite+0x50>
422: 80 91 79 01 lds r24, 0x0179
426: 81 30 cpi r24, 0x01 ; 1
428: 99 f4 brne .+38 ; 0x450 <ResponseWrite+0x3a>
42a: ac ec ldi r26, 0xCC ; 204
42c: b0 e0 ldi r27, 0x00 ; 0
42e: ea e7 ldi r30, 0x7A ; 122
430: f1 e0 ldi r31, 0x01 ; 1
432: 81 91 ld r24, Z+
434: 8d 93 st X+, r24
436: 81 e0 ldi r24, 0x01 ; 1
438: e1 38 cpi r30, 0x81 ; 129
43a: f8 07 cpc r31, r24
43c: d1 f7 brne .-12 ; 0x432 <ResponseWrite+0x1c>
43e: 0e 94 77 01 call 0x2ee ; 0x2ee <DS3231WriteTime>
442: 0e 94 89 01 call 0x312 ; 0x312 <ReadDate>
446: 82 ee ldi r24, 0xE2 ; 226
448: 90 e0 ldi r25, 0x00 ; 0
44a: 0e 94 f4 01 call 0x3e8 ; 0x3e8 <UARTSendString>
44e: 08 95 ret
450: 80 91 79 01 lds r24, 0x0179
454: 82 30 cpi r24, 0x02 ; 2
456: 49 f0 breq .+18 ; 0x46a <ResponseWrite+0x54>
458: 80 91 79 01 lds r24, 0x0179
45c: 83 30 cpi r24, 0x03 ; 3
45e: 29 f0 breq .+10 ; 0x46a <ResponseWrite+0x54>
460: 80 91 79 01 lds r24, 0x0179
464: 08 95 ret
466: 0e 94 06 02 call 0x40c ; 0x40c <ResponseErro>
46a: 08 95 ret
0000046c <ResponseRead>:
46c: 0e 94 89 01 call 0x312 ; 0x312 <ReadDate>
470: 82 ee ldi r24, 0xE2 ; 226
472: 90 e0 ldi r25, 0x00 ; 0
474: 0e 94 f4 01 call 0x3e8 ; 0x3e8 <UARTSendString>
478: 80 91 37 01 lds r24, 0x0137
47c: 88 23 and r24, r24
47e: 69 f1 breq .+90 ; 0x4da <ResponseRead+0x6e>
480: 10 92 37 01 sts 0x0137, r1
484: 80 91 77 01 lds r24, 0x0177
488: 90 91 77 01 lds r25, 0x0177
48c: 83 37 cpi r24, 0x73 ; 115
48e: 11 f0 breq .+4 ; 0x494 <ResponseRead+0x28>
490: 93 35 cpi r25, 0x53 ; 83
492: 11 f4 brne .+4 ; 0x498 <ResponseRead+0x2c>
494: 81 e0 ldi r24, 0x01 ; 1
496: 09 c0 rjmp .+18 ; 0x4aa <ResponseRead+0x3e>
498: 80 91 77 01 lds r24, 0x0177
49c: 90 91 77 01 lds r25, 0x0177
4a0: 84 37 cpi r24, 0x74 ; 116
4a2: 11 f0 breq .+4 ; 0x4a8 <ResponseRead+0x3c>
4a4: 94 35 cpi r25, 0x54 ; 84
4a6: 21 f4 brne .+8 ; 0x4b0 <ResponseRead+0x44>
4a8: 82 e0 ldi r24, 0x02 ; 2
4aa: 80 93 79 01 sts 0x0179, r24
4ae: 1b c0 rjmp .+54 ; 0x4e6 <ResponseRead+0x7a>
4b0: 80 91 77 01 lds r24, 0x0177
4b4: 90 91 77 01 lds r25, 0x0177
4b8: 8d 36 cpi r24, 0x6D ; 109
4ba: 51 f0 breq .+20 ; 0x4d0 <ResponseRead+0x64>
4bc: 9d 34 cpi r25, 0x4D ; 77
4be: 41 f0 breq .+16 ; 0x4d0 <ResponseRead+0x64>
4c0: 80 91 77 01 lds r24, 0x0177
4c4: 90 91 77 01 lds r25, 0x0177
4c8: 85 36 cpi r24, 0x65 ; 101
4ca: 11 f0 breq .+4 ; 0x4d0 <ResponseRead+0x64>
4cc: 95 34 cpi r25, 0x45 ; 69
4ce: 59 f4 brne .+22 ; 0x4e6 <ResponseRead+0x7a>
4d0: 8f e1 ldi r24, 0x1F ; 31
4d2: 91 e0 ldi r25, 0x01 ; 1
4d4: 0e 94 f4 01 call 0x3e8 ; 0x3e8 <UARTSendString>
4d8: 06 c0 rjmp .+12 ; 0x4e6 <ResponseRead+0x7a>
4da: 10 92 3a 01 sts 0x013A, r1
4de: 80 91 79 01 lds r24, 0x0179
4e2: 85 30 cpi r24, 0x05 ; 5
4e4: 10 f5 brcc .+68 ; 0x52a <ResponseRead+0xbe>
4e6: 80 91 79 01 lds r24, 0x0179
4ea: 81 30 cpi r24, 0x01 ; 1
4ec: 59 f4 brne .+22 ; 0x504 <ResponseRead+0x98>
4ee: 83 e2 ldi r24, 0x23 ; 35
4f0: 91 e0 ldi r25, 0x01 ; 1
4f2: 0e 94 f4 01 call 0x3e8 ; 0x3e8 <UARTSendString>
4f6: 0e 94 89 01 call 0x312 ; 0x312 <ReadDate>
4fa: 82 ee ldi r24, 0xE2 ; 226
4fc: 90 e0 ldi r25, 0x00 ; 0
4fe: 0e 94 f4 01 call 0x3e8 ; 0x3e8 <UARTSendString>
502: 08 95 ret
504: 80 91 79 01 lds r24, 0x0179
508: 82 30 cpi r24, 0x02 ; 2
50a: 21 f4 brne .+8 ; 0x514 <ResponseRead+0xa8>
50c: 81 e0 ldi r24, 0x01 ; 1
50e: 80 93 35 01 sts 0x0135, r24
512: 08 95 ret
514: 80 91 79 01 lds r24, 0x0179
518: 82 30 cpi r24, 0x02 ; 2
51a: 49 f0 breq .+18 ; 0x52e <ResponseRead+0xc2>
51c: 80 91 79 01 lds r24, 0x0179
520: 82 30 cpi r24, 0x02 ; 2
522: 29 f0 breq .+10 ; 0x52e <ResponseRead+0xc2>
524: 0e 94 06 02 call 0x40c ; 0x40c <ResponseErro>
528: 08 95 ret
52a: 0e 94 06 02 call 0x40c ; 0x40c <ResponseErro>
52e: 08 95 ret
00000530 <ProcessReceiveData>:
530: 80 91 39 01 lds r24, 0x0139
534: 88 23 and r24, r24
536: c1 f0 breq .+48 ; 0x568 <ProcessReceiveData+0x38>
538: 10 92 39 01 sts 0x0139, r1
53c: 10 92 3c 01 sts 0x013C, r1
540: 80 91 3a 01 lds r24, 0x013A
544: 90 91 37 01 lds r25, 0x0137
548: 89 2b or r24, r25
54a: 19 f0 breq .+6 ; 0x552 <ProcessReceiveData+0x22>
54c: 0e 94 36 02 call 0x46c ; 0x46c <ResponseRead>
550: 08 95 ret
552: 80 91 3b 01 lds r24, 0x013B
556: 88 23 and r24, r24
558: 19 f0 breq .+6 ; 0x560 <ProcessReceiveData+0x30>
55a: 0e 94 0b 02 call 0x416 ; 0x416 <ResponseWrite>
55e: 08 95 ret
560: 8a ef ldi r24, 0xFA ; 250
562: 80 93 34 01 sts 0x0134, r24
566: 08 95 ret
568: 88 e9 ldi r24, 0x98 ; 152
56a: 8a b9 out 0x0a, r24 ; 10
56c: 08 95 ret
0000056e <uart>:
56e: 80 91 33 01 lds r24, 0x0133
572: 88 23 and r24, r24
574: 39 f0 breq .+14 ; 0x584 <uart+0x16>
576: 80 91 33 01 lds r24, 0x0133
57a: 88 23 and r24, r24
57c: 19 f0 breq .+6 ; 0x584 <uart+0x16>
57e: 10 92 33 01 sts 0x0133, r1
582: 08 95 ret
584: 0e 94 98 02 call 0x530 ; 0x530 <ProcessReceiveData>
588: 08 95 ret
0000058a <__vector_13>:
58a: 1f 92 push r1
58c: 0f 92 push r0
58e: 0f b6 in r0, 0x3f ; 63
590: 0f 92 push r0
592: 11 24 eor r1, r1
594: 2f 93 push r18
596: 3f 93 push r19
598: 4f 93 push r20
59a: 5f 93 push r21
59c: 6f 93 push r22
59e: 7f 93 push r23
5a0: 8f 93 push r24
5a2: 9f 93 push r25
5a4: af 93 push r26
5a6: bf 93 push r27
5a8: ef 93 push r30
5aa: ff 93 push r31
5ac: 80 91 3c 01 lds r24, 0x013C
5b0: e8 2f mov r30, r24
5b2: ff 27 eor r31, r31
5b4: 9c b1 in r25, 0x0c ; 12
5b6: e9 58 subi r30, 0x89 ; 137
5b8: fe 4f sbci r31, 0xFE ; 254
5ba: 90 83 st Z, r25
5bc: 8f 5f subi r24, 0xFF ; 255
5be: 80 93 3c 01 sts 0x013C, r24
5c2: 8c b1 in r24, 0x0c ; 12
5c4: 81 36 cpi r24, 0x61 ; 97
5c6: 31 f0 breq .+12 ; 0x5d4 <__vector_13+0x4a>
5c8: 0e 94 89 01 call 0x312 ; 0x312 <ReadDate>
5cc: 82 ee ldi r24, 0xE2 ; 226
5ce: 90 e0 ldi r25, 0x00 ; 0
5d0: 0e 94 f4 01 call 0x3e8 ; 0x3e8 <UARTSendString>
5d4: 80 91 77 01 lds r24, 0x0177
5d8: 85 35 cpi r24, 0x55 ; 85
5da: 38 f4 brcc .+14 ; 0x5ea <__vector_13+0x60>
5dc: 83 35 cpi r24, 0x53 ; 83
5de: 78 f4 brcc .+30 ; 0x5fe <__vector_13+0x74>
5e0: 85 34 cpi r24, 0x45 ; 69
5e2: 69 f0 breq .+26 ; 0x5fe <__vector_13+0x74>
5e4: 8d 34 cpi r24, 0x4D ; 77
5e6: 91 f4 brne .+36 ; 0x60c <__vector_13+0x82>
5e8: 0a c0 rjmp .+20 ; 0x5fe <__vector_13+0x74>
5ea: 8d 36 cpi r24, 0x6D ; 109
5ec: 41 f0 breq .+16 ; 0x5fe <__vector_13+0x74>
5ee: 8e 36 cpi r24, 0x6E ; 110
5f0: 18 f4 brcc .+6 ; 0x5f8 <__vector_13+0x6e>
5f2: 85 36 cpi r24, 0x65 ; 101
5f4: 59 f4 brne .+22 ; 0x60c <__vector_13+0x82>
5f6: 03 c0 rjmp .+6 ; 0x5fe <__vector_13+0x74>
5f8: 83 57 subi r24, 0x73 ; 115
5fa: 82 30 cpi r24, 0x02 ; 2
5fc: 38 f4 brcc .+14 ; 0x60c <__vector_13+0x82>
5fe: 81 e0 ldi r24, 0x01 ; 1
600: 80 93 39 01 sts 0x0139, r24
604: 80 93 37 01 sts 0x0137, r24
608: 54 98 cbi 0x0a, 4 ; 10
60a: 03 c0 rjmp .+6 ; 0x612 <__vector_13+0x88>
60c: 81 e0 ldi r24, 0x01 ; 1
60e: 80 93 38 01 sts 0x0138, r24
612: 80 91 77 01 lds r24, 0x0177
616: 8a 3f cpi r24, 0xFA ; 250
618: f9 f4 brne .+62 ; 0x658 <__vector_13+0xce>
61a: 10 92 38 01 sts 0x0138, r1
61e: 80 91 78 01 lds r24, 0x0178
622: 8f 30 cpi r24, 0x0F ; 15
624: 51 f4 brne .+20 ; 0x63a <__vector_13+0xb0>
626: 80 91 3c 01 lds r24, 0x013C
62a: 83 30 cpi r24, 0x03 ; 3
62c: b8 f0 brcs .+46 ; 0x65c <__vector_13+0xd2>
62e: 81 e0 ldi r24, 0x01 ; 1
630: 80 93 39 01 sts 0x0139, r24
634: 80 93 3a 01 sts 0x013A, r24
638: 0d c0 rjmp .+26 ; 0x654 <__vector_13+0xca>
63a: 80 91 78 01 lds r24, 0x0178
63e: 80 31 cpi r24, 0x10 ; 16
640: 69 f4 brne .+26 ; 0x65c <__vector_13+0xd2>
642: 80 91 3c 01 lds r24, 0x013C
646: 8a 30 cpi r24, 0x0A ; 10
648: 48 f0 brcs .+18 ; 0x65c <__vector_13+0xd2>
64a: 81 e0 ldi r24, 0x01 ; 1
64c: 80 93 39 01 sts 0x0139, r24
650: 80 93 3b 01 sts 0x013B, r24
654: 54 98 cbi 0x0a, 4 ; 10
656: 02 c0 rjmp .+4 ; 0x65c <__vector_13+0xd2>
658: 10 92 3c 01 sts 0x013C, r1
65c: ff 91 pop r31
65e: ef 91 pop r30
660: bf 91 pop r27
662: af 91 pop r26
664: 9f 91 pop r25
666: 8f 91 pop r24
668: 7f 91 pop r23
66a: 6f 91 pop r22
66c: 5f 91 pop r21
66e: 4f 91 pop r20
670: 3f 91 pop r19
672: 2f 91 pop r18
674: 0f 90 pop r0
676: 0f be out 0x3f, r0 ; 63
678: 0f 90 pop r0
67a: 1f 90 pop r1
67c: 18 95 reti
0000067e <UARTSendArray>:
67e: fc 01 movw r30, r24
680: 05 c0 rjmp .+10 ; 0x68c <UARTSendArray+0xe>
682: 80 81 ld r24, Z
684: 5d 9b sbis 0x0b, 5 ; 11
686: fe cf rjmp .-4 ; 0x684 <UARTSendArray+0x6>
688: 31 96 adiw r30, 0x01 ; 1
68a: 8c b9 out 0x0c, r24 ; 12
68c: 61 50 subi r22, 0x01 ; 1
68e: c8 f7 brcc .-14 ; 0x682 <UARTSendArray+0x4>
690: 5d 9b sbis 0x0b, 5 ; 11
692: fe cf rjmp .-4 ; 0x690 <UARTSendArray+0x12>
694: 8d e0 ldi r24, 0x0D ; 13
696: 8c b9 out 0x0c, r24 ; 12
698: 5d 9b sbis 0x0b, 5 ; 11
69a: fe cf rjmp .-4 ; 0x698 <UARTSendArray+0x1a>
69c: 8a e0 ldi r24, 0x0A ; 10
69e: 8c b9 out 0x0c, r24 ; 12
6a0: 08 95 ret
000006a2 <__udivmodqi4>:
6a2: 99 1b sub r25, r25
6a4: 79 e0 ldi r23, 0x09 ; 9
6a6: 04 c0 rjmp .+8 ; 0x6b0 <__udivmodqi4_ep>
000006a8 <__udivmodqi4_loop>:
6a8: 99 1f adc r25, r25
6aa: 96 17 cp r25, r22
6ac: 08 f0 brcs .+2 ; 0x6b0 <__udivmodqi4_ep>
6ae: 96 1b sub r25, r22
000006b0 <__udivmodqi4_ep>:
6b0: 88 1f adc r24, r24
6b2: 7a 95 dec r23
6b4: c9 f7 brne .-14 ; 0x6a8 <__udivmodqi4_loop>
6b6: 80 95 com r24
6b8: 08 95 ret
000006ba <_exit>:
6ba: ff cf rjmp .-2 ; 0x6ba <_exit>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -