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

📄 pwm32.lss

📁 本人用AVR mega32写的一个关于输出32路PWM的程序
💻 LSS
📖 第 1 页 / 共 5 页
字号:
     4b4:	8f 5f       	subi	r24, 0xFF	; 255
     4b6:	80 93 0a 01 	sts	0x010A, r24
							         break;
     4ba:	b8 c0       	rjmp	.+368    	; 0x62c <__stack+0x12d>
								 }
								 else                                //出错
							     {
                      		         RxCounter=0;
     4bc:	10 92 0a 01 	sts	0x010A, r1
								     UART_ERROR_FLAG=1;
     4c0:	80 91 8c 02 	lds	r24, 0x028C
     4c4:	88 60       	ori	r24, 0x08	; 8
     4c6:	80 93 8c 02 	sts	0x028C, r24
							     	 break;
     4ca:	b0 c0       	rjmp	.+352    	; 0x62c <__stack+0x12d>
							     }

							}
							/***************2222****************/
							else
							{
							    HStartTime=data;
     4cc:	8a 81       	ldd	r24, Y+2	; 0x02
     4ce:	80 93 62 02 	sts	0x0262, r24
							    RxCounter++;
     4d2:	80 91 0a 01 	lds	r24, 0x010A
     4d6:	8f 5f       	subi	r24, 0xFF	; 255
     4d8:	80 93 0a 01 	sts	0x010A, r24
							    break;
     4dc:	a7 c0       	rjmp	.+334    	; 0x62c <__stack+0x12d>
							}
						}
	                    case 3:
		                {
						   
                            /***************1111****************/
						    if(DL_OVER_FLAG)
     4de:	80 91 8c 02 	lds	r24, 0x028C
     4e2:	80 71       	andi	r24, 0x10	; 16
     4e4:	88 23       	and	r24, r24
     4e6:	b9 f1       	breq	.+110    	; 0x556 <__stack+0x57>
							{
							    if(data==0x02)
     4e8:	8a 81       	ldd	r24, Y+2	; 0x02
     4ea:	82 30       	cpi	r24, 0x02	; 2
     4ec:	61 f5       	brne	.+88     	; 0x546 <__stack+0x47>
								{ 
								    DL_REALY_OVER=1;
     4ee:	80 91 8c 02 	lds	r24, 0x028C
     4f2:	80 62       	ori	r24, 0x20	; 32
     4f4:	80 93 8c 02 	sts	0x028C, r24
									SET_UART_DADA_DISPOSE;
     4f8:	80 91 8c 02 	lds	r24, 0x028C
     4fc:	8e 7f       	andi	r24, 0xFE	; 254
     4fe:	80 93 8c 02 	sts	0x028C, r24
									BigStepNum[ModeBuffer] = ((unsigned int)(BigStepBuffer0))*256 +BigStepBuffer1;//记录步长
     502:	80 91 b2 02 	lds	r24, 0x02B2
     506:	28 2f       	mov	r18, r24
     508:	33 27       	eor	r19, r19
     50a:	c9 01       	movw	r24, r18
     50c:	82 0f       	add	r24, r18
     50e:	93 1f       	adc	r25, r19
     510:	fc 01       	movw	r30, r24
     512:	e4 57       	subi	r30, 0x74	; 116
     514:	fe 4f       	sbci	r31, 0xFE	; 254
     516:	80 91 89 02 	lds	r24, 0x0289
     51a:	28 2f       	mov	r18, r24
     51c:	33 27       	eor	r19, r19
     51e:	80 e0       	ldi	r24, 0x00	; 0
     520:	91 e0       	ldi	r25, 0x01	; 1
     522:	28 9f       	mul	r18, r24
     524:	a0 01       	movw	r20, r0
     526:	29 9f       	mul	r18, r25
     528:	50 0d       	add	r21, r0
     52a:	38 9f       	mul	r19, r24
     52c:	50 0d       	add	r21, r0
     52e:	11 24       	eor	r1, r1
     530:	9a 01       	movw	r18, r20
     532:	80 91 64 01 	lds	r24, 0x0164
     536:	99 27       	eor	r25, r25
     538:	82 0f       	add	r24, r18
     53a:	93 1f       	adc	r25, r19
     53c:	91 83       	std	Z+1, r25	; 0x01
     53e:	80 83       	st	Z, r24
							        RxCounter=0;
     540:	10 92 0a 01 	sts	0x010A, r1
							        break;
     544:	73 c0       	rjmp	.+230    	; 0x62c <__stack+0x12d>
								 }
						    	else
								{
							        RxCounter=0;
     546:	10 92 0a 01 	sts	0x010A, r1
							    	UART_ERROR_FLAG=1;
     54a:	80 91 8c 02 	lds	r24, 0x028C
     54e:	88 60       	ori	r24, 0x08	; 8
     550:	80 93 8c 02 	sts	0x028C, r24
							        break;
     554:	6b c0       	rjmp	.+214    	; 0x62c <__stack+0x12d>
                                 }
							}   
							/***************2222****************/                                 
						    else if((data==0)||(data>10))       //出错
     556:	8a 81       	ldd	r24, Y+2	; 0x02
     558:	88 23       	and	r24, r24
     55a:	21 f0       	breq	.+8      	; 0x564 <__stack+0x65>
     55c:	8a 81       	ldd	r24, Y+2	; 0x02
     55e:	8b 30       	cpi	r24, 0x0B	; 11
     560:	08 f4       	brcc	.+2      	; 0x564 <__stack+0x65>
     562:	08 c0       	rjmp	.+16     	; 0x574 <__stack+0x75>
							{
                      		    RxCounter=0;
     564:	10 92 0a 01 	sts	0x010A, r1
								UART_ERROR_FLAG=1;
     568:	80 91 8c 02 	lds	r24, 0x028C
     56c:	88 60       	ori	r24, 0x08	; 8
     56e:	80 93 8c 02 	sts	0x028C, r24
								break;
     572:	5c c0       	rjmp	.+184    	; 0x62c <__stack+0x12d>
							}
							else
							{
                                ModeBuffer=data-1;          //从0开始计数
     574:	8a 81       	ldd	r24, Y+2	; 0x02
     576:	81 50       	subi	r24, 0x01	; 1
     578:	80 93 b2 02 	sts	0x02B2, r24
							    RxCounter++;
     57c:	80 91 0a 01 	lds	r24, 0x010A
     580:	8f 5f       	subi	r24, 0xFF	; 255
     582:	80 93 0a 01 	sts	0x010A, r24
							    break;
     586:	52 c0       	rjmp	.+164    	; 0x62c <__stack+0x12d>
							}

	                    }
						case 4:
						{

							    RxCounter++;
     588:	80 91 0a 01 	lds	r24, 0x010A
     58c:	8f 5f       	subi	r24, 0xFF	; 255
     58e:	80 93 0a 01 	sts	0x010A, r24
						        BigStepBuffer1=data;
     592:	8a 81       	ldd	r24, Y+2	; 0x02
     594:	80 93 64 01 	sts	0x0164, r24
							    break;
     598:	49 c0       	rjmp	.+146    	; 0x62c <__stack+0x12d>

						}
						case 5:
						{
	
							     RxCounter++;
     59a:	80 91 0a 01 	lds	r24, 0x010A
     59e:	8f 5f       	subi	r24, 0xFF	; 255
     5a0:	80 93 0a 01 	sts	0x010A, r24
						         BigStepBuffer0=data;
     5a4:	8a 81       	ldd	r24, Y+2	; 0x02
     5a6:	80 93 89 02 	sts	0x0289, r24
							     break;
     5aa:	40 c0       	rjmp	.+128    	; 0x62c <__stack+0x12d>
						 }
	                     case 6:case 7:case 8:case 9:case 10:case 11:
	                     case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:
	                     case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 31:
	                     case 32:case 33:case 34:case 35:case 36:case 37:
		                 {
						     StepData[RxCounter-6]=data;
     5ac:	80 91 0a 01 	lds	r24, 0x010A
     5b0:	99 27       	eor	r25, r25
     5b2:	fc 01       	movw	r30, r24
     5b4:	e6 56       	subi	r30, 0x66	; 102
     5b6:	fe 4f       	sbci	r31, 0xFE	; 254
     5b8:	8a 81       	ldd	r24, Y+2	; 0x02
     5ba:	80 83       	st	Z, r24
							 RxCounter++;
     5bc:	80 91 0a 01 	lds	r24, 0x010A
     5c0:	8f 5f       	subi	r24, 0xFF	; 255
     5c2:	80 93 0a 01 	sts	0x010A, r24
							 break;
     5c6:	32 c0       	rjmp	.+100    	; 0x62c <__stack+0x12d>
	                     }
						 case 38:
						 {
							 RxCounter=0;
     5c8:	10 92 0a 01 	sts	0x010A, r1
						     checksum=ModeBuffer+BigStepBuffer0+BigStepBuffer1+ LStartTime+ HStartTime+1;
     5cc:	90 91 b2 02 	lds	r25, 0x02B2
     5d0:	80 91 89 02 	lds	r24, 0x0289
     5d4:	98 0f       	add	r25, r24
     5d6:	80 91 64 01 	lds	r24, 0x0164
     5da:	98 0f       	add	r25, r24
     5dc:	80 91 b1 02 	lds	r24, 0x02B1
     5e0:	98 0f       	add	r25, r24
     5e2:	80 91 62 02 	lds	r24, 0x0262
     5e6:	89 0f       	add	r24, r25
     5e8:	8f 5f       	subi	r24, 0xFF	; 255
     5ea:	8b 83       	std	Y+3, r24	; 0x03
							 for(unsigned char LcvCounter=0;LcvCounter<32;LcvCounter++)
     5ec:	1c 82       	std	Y+4, r1	; 0x04
     5ee:	8c 81       	ldd	r24, Y+4	; 0x04
     5f0:	80 32       	cpi	r24, 0x20	; 32
     5f2:	68 f4       	brcc	.+26     	; 0x60e <__stack+0x10f>
							 {
							     checksum+=StepData[LcvCounter];
     5f4:	8c 81       	ldd	r24, Y+4	; 0x04
     5f6:	99 27       	eor	r25, r25
     5f8:	fc 01       	movw	r30, r24
     5fa:	e0 56       	subi	r30, 0x60	; 96
     5fc:	fe 4f       	sbci	r31, 0xFE	; 254
     5fe:	9b 81       	ldd	r25, Y+3	; 0x03
     600:	80 81       	ld	r24, Z
     602:	89 0f       	add	r24, r25
     604:	8b 83       	std	Y+3, r24	; 0x03
     606:	8c 81       	ldd	r24, Y+4	; 0x04
     608:	8f 5f       	subi	r24, 0xFF	; 255
     60a:	8c 83       	std	Y+4, r24	; 0x04
     60c:	f0 cf       	rjmp	.-32     	; 0x5ee <__stack+0xef>
							 }
							 if(checksum!=data)
     60e:	9b 81       	ldd	r25, Y+3	; 0x03
     610:	8a 81       	ldd	r24, Y+2	; 0x02
     612:	98 17       	cp	r25, r24
     614:	31 f0       	breq	.+12     	; 0x622 <__stack+0x123>
							 {
								 UART_ERROR_FLAG=1;
     616:	80 91 8c 02 	lds	r24, 0x028C
     61a:	88 60       	ori	r24, 0x08	; 8
     61c:	80 93 8c 02 	sts	0x028C, r24
     620:	05 c0       	rjmp	.+10     	; 0x62c <__stack+0x12d>
							 }
							 else
							 {
							     //AckToPc();
							     SET_UART_DADA_DISPOSE;
     622:	80 91 8c 02 	lds	r24, 0x028C
     626:	8e 7f       	andi	r24, 0xFE	; 254
     628:	80 93 8c 02 	sts	0x028C, r24
							 }
							 break;
						}
		            }

			}


			//实时处理
			if(IS_DOWN_LOAD_DISABLE)
     62c:	80 91 8c 02 	lds	r24, 0x028C
     630:	82 70       	andi	r24, 0x02	; 2
     632:	88 23       	and	r24, r24
     634:	09 f0       	breq	.+2      	; 0x638 <__stack+0x139>
     636:	6f c0       	rjmp	.+222    	; 0x716 <__stack+0x217>
			{
                REAL_TIME_FLAG=1;
     638:	80 91 8c 02 	lds	r24, 0x028C
     63c:	80 64       	ori	r24, 0x40	; 64
     63e:	80 93 8c 02 	sts	0x028C, r24
				switch(RxCounter)
     642:	80 91 0a 01 	lds	r24, 0x010A
     646:	28 2f       	mov	r18, r24
     648:	33 27       	eor	r19, r19
     64a:	38 87       	std	Y+8, r19	; 0x08
     64c:	2f 83       	std	Y+7, r18	; 0x07
     64e:	4f 81       	ldd	r20, Y+7	; 0x07
     650:	58 85       	ldd	r21, Y+8	; 0x08
     652:	41 32       	cpi	r20, 0x21	; 33
     654:	51 05       	cpc	r21, r1
     656:	5c f4       	brge	.+22     	; 0x66e <__stack+0x16f>
     658:	8f 81       	ldd	r24, Y+7	; 0x07
     65a:	98 85       	ldd	r25, Y+8	; 0x08
     65c:	81 30       	cpi	r24, 0x01	; 1
     65e:	91 05       	cpc	r25, r1
     660:	24 f5       	brge	.+72     	; 0x6aa <__stack+0x1ab>
     662:	2f 81       	ldd	r18, Y+7	; 0x07
     664:	38 85       	ldd	r19, Y+8	; 0x08
     666:	21 15       	cp	r18, r1
     668:	31 05       	cpc	r19, r1
     66a:	39 f0       	breq	.+14     	; 0x67a <__stack+0x17b>
     66c:	54 c0       	rjmp	.+168    	; 0x716 <__stack+0x217>
     66e:	4f 81       	ldd	r20, Y+7	; 0x07
     670:	58 85       	ldd	r21, Y+8	; 0x08
     672:	41 32       	cpi	r20, 0x21	; 33
     674:	51 05       	cpc	r21, r1
     676:	39 f1       	breq	.+78     	; 0x6c6 <__stack+0x1c7>
     678:	4e c0       	rjmp	.+156    	; 0x716 <__stack+0x217>
				{
				    case 0:
                    {
					    RUN_FLAG=0;                   //不知有无必要?
     67a:	80 91 c0 01 	lds	r24, 0x01C0
     67e:	8e 7f       	andi	r24, 0xFE	; 254
     680:	80 93 c0 01 	sts	0x01C0, r24
						if(data==0xFF)
     684:	8a 81       	ldd	r24, Y+2	; 0x02
     686:	8f 3f       	cpi	r24, 0xFF	; 255
     688:	59 f4       	brne	.+22     	; 0x6a0 <__stack+0x1a1>
				        {
						    RUN_FLAG=0;               //实时控制时关闭跑
     68a:	80 91 c0 01 	lds	r24, 0x01C0
     68e:	8e 7f       	andi	r24, 0xFE	; 254
     690:	80 93 c0 01 	sts	0x01C0, r24
                      	    RxCounter++;
     694:	80 91 0a 01 	lds	r24, 0x010A
     698:	8f 5f       	subi	r24, 0xFF	; 255
     69a:	80 93 0a 01 	sts	0x010A, r24
						    break;
     69e:	3b c0       	rjmp	.+118    	; 0x716 <__stack+0x217>
						}
						else
				        {
                      	    RxCounter=0;
     6a0:	10 92 0a 01 	sts	0x010A, r1
							NackToPc( );
     6a4:	0e 94 64 0c 	call	0x18c8 <NackToPc>
						    break;
     6a8:	36 c0       	rjmp	.+108    	; 0x716 <__stack+0x217>
						}
					}
                    case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:
					case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:
					case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 30:
					case 31:case 32:
					{
						StepData[RxCounter-1]=data;
     6aa:	80 91 0a 01 	lds	r24, 0x010A
     6ae:	99 27       	eor	r25, r25
     6b0:	fc 01       	movw	r30, r24
     6b2:	e1 56       	subi	r30, 0x61	; 97
     6b4:	fe 4f       	sbci	r31, 0xFE	; 254
     6b6:	8a 81       	ldd	r24, Y+2	; 0x02
     6b8:	80 83       	st	Z, r24
					    RxCounter++;
     6ba:	80 91 0a 01 	lds	r24, 0x010A
     6be:	8f 5f       	subi	r24, 0xFF	; 255
     6c0:	80 93 0a 01 	sts	0x010A, r24
						break;
     6c4:	28 c0       	rjmp	.+80     	; 0x716 <__stack+0x217>
					}
					case 33:
					{
						for(unsigned char LcvCounter=0;LcvCounter<32;LcvCounter++)
     6c6:	1c 82       	std	Y+4, r1	; 0x04
     6c8:	8c 81       	ldd	r24, Y+4	; 0x04
     6ca:	80 32       	cpi	r24, 0x20	; 32
     6cc:	68 f4       	brcc	.+26     	; 0x6e8 <__stack+0x1e9>
						{
							checksum+=StepData[LcvCounter];
     6ce:	8c 81       	ldd	r24, Y+4	; 0x04
     6d0:	99 27       	eor	r25, r25
     6d2:	fc 01       	movw	r30, r24
     6d4:	e0 56       	subi	r30, 0x60	; 96
     6d6:	fe 4f       	sbci	r31, 0xFE	; 254
     6d8:	9b 81       	ldd	r25, Y+3	; 0x03
     6da:	80 81       	ld	r24, Z
     6dc:	89 0f       	add	r24, r25
     6de:	8b 83       	std	Y+3, r24	; 0x03
     6e0:	8c 81       	ldd	r24, Y+4	; 0x04
     6e2:	8f 5f       	subi	r24, 0xFF	; 255
     6e4:	8c 83       	std	Y+4, r24	; 0x04
     6e6:	f0 cf       	rjmp	.-32     	; 0x6c8 <__stack+0x1c9>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -