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

📄 usart3_step_lcd.lst

📁 1. 熟悉AVR-atmega128单片机串口通信功能; 2. 掌握步进电机控制方法。 3. 初步掌握GCC的一般编程技巧。 4. 掌握AVR单片机中断、时钟的设置方法
💻 LST
📖 第 1 页 / 共 5 页
字号:
							         {speed=70;TransmitByte(data);data=ReceiveByte();
                                                 
									while(1){if(dir)go_step_1phase(speed);
									    else {dir=1;break;}}
									break;}
							else if(data=='3')
							         {speed=80;TransmitByte(data);data=ReceiveByte();
                                                 
									while(1){if(dir)go_step_1phase(speed);
									    else {dir=1;break;}}
									break;}
							else   {TransmitByte('\r');TransmitByte('\n');break;}
							
					      break;   }
					  
					  else if((data=='\r')&&(data=='\n'))
						{
							TransmitByte('\r');
							TransmitByte('\n');
							break;
						}
						
					  else break;
			case 'b':
			case 'B':TransmitByte(data);
			          print_Message((unsigned char *)M_SELECT);
			          data=ReceiveByte();
					  if(data=='1')
					    {   TransmitByte(data); 
					        print_Message((unsigned char *)M_Backward_JIASU);
					        data=ReceiveByte();
							if (data=='1')
							         {speed=50;TransmitByte(data);data=ReceiveByte();
                                                 
									while(1){if(dir)go_step_2phase(speed);
									    else {dir=1;break;}}
									break;}
							          
							else if(data=='2')
							        {speed=40;TransmitByte(data);data=ReceiveByte();
                                                 
									while(1){if(dir)go_step_2phase(speed);
									    else {dir=1;break;}}
									break;}
									 
							else if(data=='3')
							        {speed=30;TransmitByte(data);data=ReceiveByte();
                                                 
									while(1){if(dir)go_step_2phase(speed);
									    else {dir=1;break;}}
									break;}
							else   {TransmitByte('\r');TransmitByte('\n');break;}
							
					    break;}    
					  
					  else if(data=='2')
					     {TransmitByte(data);
						   print_Message((unsigned char *)M_Backward_JIANSU);
					        data=ReceiveByte();
							if (data=='1')
							       {speed=60;TransmitByte(data);data=ReceiveByte();
                                    while(1){if(dir)go_step_2phase(speed);
									    else {dir=1;break;}}
									break;}
							else if(data=='2')
							       {speed=70;TransmitByte(data);data=ReceiveByte();
                                    while(1){if(dir)go_step_2phase(speed);
									    else {dir=1;break;}}
									break;}
							else if(data=='3')
						        	{speed=80;TransmitByte(data);data=ReceiveByte();
                                    while(1){if(dir)go_step_2phase(speed);
									    else {dir=1;break;}}
									break;}
							else   {TransmitByte('\r');TransmitByte('\n');break;}
							
					     break;}
					  
					  else if((data=='\r')&&(data=='\n'))
						{
							TransmitByte('\r');
							TransmitByte('\n');
							break;
						}
						
					  else break;
			
			case 's':
			case 'S':TransmitByte(data);delay(1000,1000);
			          print_Message((unsigned char *)M_SELECT1);
					  data=ReceiveByte();
					  if(data=='1')
					          {TransmitByte(data);			
					             print_Message((unsigned char *)SPEED);
					             i=0;
					             data=ReceiveByte();array[0]=data;
					             TransmitByte(data);data=ReceiveByte();array[1]=data;
					             TransmitByte(data);data=ReceiveByte();array[2]=data;
					             TransmitByte(data);data=ReceiveByte();
					             for(j=0;j<3;j++){array[j]=To_Numeric(array[j]);}
					             speed=array[0]*100+array[1]*10+array[2];
					             while(1){if(dir)go_step_1phase(speed);
									    else {dir=1;break;}}	
                                 }
                      else if(data=='2')
					             {TransmitByte(data);			
					             print_Message((unsigned char *)SPEED);
					             i=0;
					             data=ReceiveByte();array[0]=data;
					             TransmitByte(data);data=ReceiveByte();array[1]=data;
					             TransmitByte(data);data=ReceiveByte();array[2]=data;
					             TransmitByte(data);data=ReceiveByte();
					             for(j=0;j<3;j++){array[j]=To_Numeric(array[j]);}
					             speed=array[0]*100+array[1]*10+array[2];
					             while(1){if(dir)go_step_2phase(speed);
									    else {dir=1;break;}}	
                                 
					  	         }
					TransmitByte('\r');TransmitByte('\n');        
						         print_prompt();	
                      break;
            case  't':
			case  'T':TransmitByte(data);
                      print_Message((unsigned char *)M_SELECT1);
					  data=ReceiveByte();
					  if(data=='1')
					          {TransmitByte(data);
			                     print_Message((unsigned char *)HOUR);
								 data=ReceiveByte();hour1=data;
					             TransmitByte(data);data=ReceiveByte();hour2=data;
								 TransmitByte(data);data=ReceiveByte();
								 
								  print_Message((unsigned char *)MINUTE);
								 data=ReceiveByte();minute1=data;
					             TransmitByte(data);data=ReceiveByte();minute2=data;
								 TransmitByte(data);data=ReceiveByte();
								 
								 print_Message((unsigned char *)SECOND);
								 data=ReceiveByte();second1=data;
					             TransmitByte(data);data=ReceiveByte();second2=To_Numeric(data)+1+'0';
								 TransmitByte(data);data=ReceiveByte();
								 
                                 print_Message((unsigned char *)SPEED);
					             i=0;
					             data=ReceiveByte();array[0]=data;
					             TransmitByte(data);data=ReceiveByte();array[1]=data;
					             TransmitByte(data);data=ReceiveByte();array[2]=data;
					             TransmitByte(data);data=ReceiveByte();
					             for(j=0;j<3;j++){array[j]=To_Numeric(array[j]);}
					             speed=array[0]*100+array[1]*10+array[2];
								 initialize_timer();
								 }
                      else if(data=='2')
					             {TransmitByte(data);
			                     print_Message((unsigned char *)HOUR);
								 data=ReceiveByte();hour1=data;
					             TransmitByte(data);data=ReceiveByte();hour2=data;
								 TransmitByte(data);data=ReceiveByte();
								 
								  print_Message((unsigned char *)MINUTE);
								 data=ReceiveByte();minute1=data;
					             TransmitByte(data);data=ReceiveByte();minute2=data;
								 TransmitByte(data);data=ReceiveByte();
								 
								 print_Message((unsigned char *)SECOND);
								 data=ReceiveByte();second1=data;
					             TransmitByte(data);data=ReceiveByte();second2=To_Numeric(data)+1+'0';
								 TransmitByte(data);data=ReceiveByte();
								 
                                 print_Message((unsigned char *)SPEED);
					             i=0;
					             data=ReceiveByte();array[0]=data;
					             TransmitByte(data);data=ReceiveByte();array[1]=data;
					             TransmitByte(data);data=ReceiveByte();array[2]=data;
					             TransmitByte(data);data=ReceiveByte();
					             for(j=0;j<3;j++){array[j]=To_Numeric(array[j]);}
					             speed=array[0]*100+array[1]*10+array[2];
                                 initialize_timer3();
                                }
					TransmitByte('\r');TransmitByte('\n');        
						         print_prompt();	
                      break;
			case 'h':
			case 'H':TransmitByte(data);
					  print_Message((unsigned char *)M_Help);
					  print_prompt();
					  break;
			case 'q':
			case 'Q':TransmitByte(data);print_Message((unsigned char *)M_thank);
			          TransmitByte('\r');TransmitByte('\n');break;
			default :TransmitByte(data);break;
		}
	}
}

void print_logo(void)
{
	unsigned int i;
	for(i=0;;i++)
	{
		if(PRG_RDB(logo+i)=='\0')
			break;
		TransmitByte(PRG_RDB(logo+i));
	}
	print_prompt();
}

void print_prompt(void)
{
	unsigned int i;
	for(i=0;;i++)
	{
		if(PRG_RDB(prompt+i)=='\0')
			break;
		TransmitByte(PRG_RDB(prompt+i));
	}
}


void print_Message(unsigned char *message)
{unsigned int i;
for(i=0;;i++)
{if(PRG_RDB(message+i)=='\0')
break;
TransmitByte(PRG_RDB(message+i));
}
}

unsigned int To_Numeric(unsigned char in_data)
  {if(in_data=='0')
     494:	98 2f       	mov	r25, r24
     496:	80 33       	cpi	r24, 0x30	; 48
     498:	99 f0       	breq	.+38     	; 0x4c0 <To_Numeric+0x2c>
  return 0;
  else if((in_data<='9')&&(in_data>='1'))
     49a:	81 53       	subi	r24, 0x31	; 49
     49c:	89 30       	cpi	r24, 0x09	; 9
     49e:	20 f4       	brcc	.+8      	; 0x4a8 <To_Numeric+0x14>
  return(unsigned int)(in_data-'1'+1);
     4a0:	89 2f       	mov	r24, r25
     4a2:	99 27       	eor	r25, r25
     4a4:	c0 97       	sbiw	r24, 0x30	; 48
     4a6:	08 95       	ret
  else if((in_data<='f')&&(in_data>='a'))
     4a8:	89 2f       	mov	r24, r25
     4aa:	81 56       	subi	r24, 0x61	; 97
     4ac:	86 30       	cpi	r24, 0x06	; 6
     4ae:	58 f0       	brcs	.+22     	; 0x4c6 <To_Numeric+0x32>
  return(unsigned int)(in_data-'a'+10); 
  else if((in_data<='F')&&(in_data>='A'))
     4b0:	89 2f       	mov	r24, r25
     4b2:	81 54       	subi	r24, 0x41	; 65
     4b4:	86 30       	cpi	r24, 0x06	; 6
     4b6:	60 f4       	brcc	.+24     	; 0x4d0 <To_Numeric+0x3c>
  return(unsigned int)(in_data-'A'+10);
     4b8:	89 2f       	mov	r24, r25
     4ba:	99 27       	eor	r25, r25
     4bc:	c7 97       	sbiw	r24, 0x37	; 55
     4be:	08 95       	ret
     4c0:	80 e0       	ldi	r24, 0x00	; 0
     4c2:	90 e0       	ldi	r25, 0x00	; 0
     4c4:	08 95       	ret
     4c6:	89 2f       	mov	r24, r25
     4c8:	99 27       	eor	r25, r25
     4ca:	87 55       	subi	r24, 0x57	; 87
     4cc:	90 40       	sbci	r25, 0x00	; 0
     4ce:	08 95       	ret
else
return 0; }
     4d0:	80 e0       	ldi	r24, 0x00	; 0
     4d2:	90 e0       	ldi	r25, 0x00	; 0
     4d4:	08 95       	ret

000004d6 <__vector_16>:
     4d6:	1f 92       	push	r1
     4d8:	0f 92       	push	r0
     4da:	0f b6       	in	r0, 0x3f	; 63
     4dc:	0f 92       	push	r0
     4de:	11 24       	eor	r1, r1
     4e0:	1f 93       	push	r17
     4e2:	2f 93       	push	r18
     4e4:	3f 93       	push	r19
     4e6:	4f 93       	push	r20
     4e8:	5f 93       	push	r21
     4ea:	6f 93       	push	r22
     4ec:	7f 93       	push	r23
     4ee:	8f 93       	push	r24
     4f0:	9f 93       	push	r25
     4f2:	af 93       	push	r26
     4f4:	bf 93       	push	r27
     4f6:	ef 93       	push	r30
     4f8:	ff 93       	push	r31
     4fa:	80 ef       	ldi	r24, 0xF0	; 240
     4fc:	82 bf       	out	0x32, r24	; 50
     4fe:	80 91 00 01 	lds	r24, 0x0100
     502:	80 33       	cpi	r24, 0x30	; 48
     504:	31 f0       	breq	.+12     	; 0x512 <__vector_16+0x3c>
     506:	80 91 00 01 	lds	r24, 0x0100
     50a:	81 50       	subi	r24, 0x01	; 1
     50c:	80 93 00 01 	sts	0x0100, r24
     510:	b2 c0       	rjmp	.+356    	; 0x676 <__vector_16+0x1a0>
     512:	80 91 00 01 	lds	r24, 0x0100
     516:	80 33       	cpi	r24, 0x30	; 48
     518:	81 f1       	breq	.+96     	; 0x57a <__vector_16+0xa4>
     51a:	80 91 00 01 	lds	r24, 0x0100
     51e:	80 33       	cpi	r24, 0x30	; 48
     520:	09 f4       	brne	.+2      	; 0x524 <__vector_16+0x4e>
     522:	96 c0       	rjmp	.+300    	; 0x650 <__vector_16+0x17a>
     524:	80 91 00 01 	lds	r24, 0x0100
     528:	80 33       	cpi	r24, 0x30	; 48
     52a:	09 f4       	brne	.+2      	; 0x52e <__vector_16+0x58>
     52c:	72 c0       	rjmp	.+228    	; 0x612 <__vector_16+0x13c>
     52e:	80 91 00 01 	lds	r24, 0x0100
     532:	80 33       	cpi	r24, 0x30	; 48
     534:	09 f4       	brne	.+2      	; 0x538 <__vector_16+0x62>
     536:	4d c0       	rjmp	.+154    	; 0x5d2 <__vector_16+0xfc>
     538:	80 91 00 01 	lds	r24, 0x0100
     53c:	80 33       	cpi	r24, 0x30	; 48
     53e:	51 f1       	breq	.+84     	; 0x594 <__vector_16+0xbe>
     540:	80 e3       	ldi	r24, 0x30	; 48
     542:	80 93 00 01 	sts	0x0100, r24
     546:	80 91 00 01 	lds	r24, 0x0100
     54a:	80 93 01 01 	sts	0x0101, r24
     54e:	80 91 01 01 	lds	r24, 0x0101
     552:	80 93 02 01 	sts	0x0102, r24
     556:	80 91 02 01 	lds	r24, 0x0102
     55a:	80 93 03 01 	sts	0x0103, r24
     55e:	80 91 03 01 	lds	r24, 0x0103
     562:	80 93 04 01 	sts	0x0104, r24
     566:	80 91 04 01 	lds	r24, 0x0104
     56a:	80 93 05 01 	sts	0x0105, r24
     56e:	80 91 11 01 	lds	r24, 0x0111
     572:	99 27       	eor	r25, r25
     574:	0e 94 1c 02 	call	0x438 <go_step_1phase>
     578:	fa cf       	rjmp	.-12     	; 0x56e <__vector_16+0x98>
     57a:	80 91 01 01 	lds	r24, 0x0101
     57e:	80 33       	cpi	r24, 0x30	; 48
     580:	61 f2       	breq	.-104    	; 0x51a <__vector_16+0x44>
     582:	80 91 01 01 	lds	r24, 0x0101
     586:	0e 94 4a 02 	call	0x494 <To_Numeric>
     58a:	81 5d       	subi	r24, 0xD1	; 209
     58c:	80 93 01 01 	sts	0x0101, r24
     590:	89 e3       	ldi	r24, 0x39	; 57
     592:	bc cf       	rjmp	.-136    	; 0x50c <__vector_16+0x36>

⌨️ 快捷键说明

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