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

📄 main.lss

📁 MAXIM的DS3231时钟,温度都具备的芯片.驱动IC为AVRmega16或者mega32.全功能.内附全部驱动程序.绝对原创.
💻 LSS
📖 第 1 页 / 共 3 页
字号:
			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 + -