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

📄 230m.lst

📁 ADI公司射频芯片7020+ATMEGA16射频模块源程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
(0037) 					dd_port_data_tx_frame_idx++;
    052E 9180014A  LDS	R24,_dd_port_data_tx_frame_idx
    0530 5F8F      SUBI	R24,0xFF
    0531 9380014A  STS	_dd_port_data_tx_frame_idx,R24
(0038) 					
(0039) 			}
    0533 C029      RJMP	0x055D
(0040) 			else{
(0041) 			
(0042) 			      if(dd_port_data_tx_frame_idx==dd_port_data_tx_buffer[8]+9){
    0534 918001B7  LDS	R24,0x1B7
    0536 5F87      SUBI	R24,0xF7
    0537 9020014A  LDS	R2,_dd_port_data_tx_frame_idx
    0539 1628      CP	R2,R24
    053A F449      BNE	0x0544
(0043) 			      
(0044) 				      SPDR = crc_lo;
    053B 902000CC  LDS	R2,_crc_lo
    053D B82F      OUT	0x0F,R2
(0045) 				      dd_port_data_tx_frame_idx++;
    053E 9180014A  LDS	R24,_dd_port_data_tx_frame_idx
    0540 5F8F      SUBI	R24,0xFF
    0541 9380014A  STS	_dd_port_data_tx_frame_idx,R24
(0046) 					  
(0047) 			      }else if(dd_port_data_tx_frame_idx==dd_port_data_tx_buffer[8]+10){
    0543 C019      RJMP	0x055D
    0544 918001B7  LDS	R24,0x1B7
    0546 5F86      SUBI	R24,0xF6
    0547 9020014A  LDS	R2,_dd_port_data_tx_frame_idx
    0549 1628      CP	R2,R24
    054A F449      BNE	0x0554
(0048) 			        
(0049) 					     SPDR = crc_hi;
    054B 902000CB  LDS	R2,_crc_hi
    054D B82F      OUT	0x0F,R2
(0050)         				 dd_port_data_tx_frame_idx++;
    054E 9180014A  LDS	R24,_dd_port_data_tx_frame_idx
    0550 5F8F      SUBI	R24,0xFF
    0551 9380014A  STS	_dd_port_data_tx_frame_idx,R24
(0051) 						 
(0052) 			      }else{
    0553 C009      RJMP	0x055D
(0053) 			             dd_port_data_tx_frame_idx = 0;
    0554 2422      CLR	R2
    0555 9220014A  STS	_dd_port_data_tx_frame_idx,R2
(0054) 						 rf_tx_state[2]=1;
    0557 E081      LDI	R24,1
    0558 938000CA  STS	_rf_tx_state+2,R24
(0055) 						 SPCR  &= 0x3f;
    055A B18D      IN	R24,0x0D
    055B 738F      ANDI	R24,0x3F
    055C B98D      OUT	0x0D,R24
(0056) 						 //IEIP2 &= ~0x01;
(0057) 						 //SPICON &= ~0x20;
(0058) 						 
(0059) 			      }
(0060) 			   
(0061) 		    }
(0062) 			   
(0063) 			        
(0064) 	  	}		       
(0065) 				  
(0066) 			        
(0067) 					   
(0068) 					
(0069) 
(0070) 
(0071) 
(0072)         if (dd_data_port_state == DATA_PORT_RECEIVING)
    055D 91800145  LDS	R24,_dd_data_port_state
    055F 3083      CPI	R24,3
    0560 F009      BEQ	0x0562
    0561 C068      RJMP	0x05CA
(0073)         {
(0074) 			temp = SPDR;
    0562 B14F      IN	R20,0x0F
(0075) 			//SPDR = 0xFF;
(0076) 			
(0077) 			if(dd_port_data_rx_frame_idx==0){
    0563 90200149  LDS	R2,_dd_port_data_rx_frame_idx
    0565 2022      TST	R2
    0566 F459      BNE	0x0572
(0078) 			
(0079) 			     crc16(temp);
    0567 2F04      MOV	R16,R20
    0568 940E026B  CALL	_crc16
(0080) 				 dd_port_data_rx_frame_idx++;
    056A 91800149  LDS	R24,_dd_port_data_rx_frame_idx
    056C 5F8F      SUBI	R24,0xFF
    056D 93800149  STS	_dd_port_data_rx_frame_idx,R24
(0081) 				 dd_port_data_rx_payload_length=temp;
    056F 93400148  STS	_dd_port_data_rx_payload_length,R20
(0082) 				 
(0083) 			}
    0571 C058      RJMP	0x05CA
(0084) 			//else  if(dd_port_data_rx_frame_idx<(dd_port_data_rx_payload_length+1)){
(0085) 			else  if(dd_port_data_rx_frame_idx<6){
    0572 91800149  LDS	R24,_dd_port_data_rx_frame_idx
    0574 3086      CPI	R24,6
    0575 F488      BCC	0x0587
(0086) 			      
(0087) 				  dd_port_data_rx_buffer[dd_port_data_rx_frame_idx-1]=temp;
    0576 E48A      LDI	R24,0x4A
    0577 E091      LDI	R25,1
    0578 91E00149  LDS	R30,_dd_port_data_rx_frame_idx
    057A 27FF      CLR	R31
    057B 0FE8      ADD	R30,R24
    057C 1FF9      ADC	R31,R25
    057D 8340      STD	Z+0,R20
(0088) 				  crc16(temp);
    057E 2F04      MOV	R16,R20
    057F 940E026B  CALL	_crc16
(0089) 				  dd_port_data_rx_frame_idx++;
    0581 91800149  LDS	R24,_dd_port_data_rx_frame_idx
    0583 5F8F      SUBI	R24,0xFF
    0584 93800149  STS	_dd_port_data_rx_frame_idx,R24
(0090) 		    }else {
    0586 C043      RJMP	0x05CA
(0091) 				          if(dd_port_data_rx_frame_idx==(dd_port_data_rx_payload_length+1)){
    0587 91800148  LDS	R24,_dd_port_data_rx_payload_length
    0589 5F8F      SUBI	R24,0xFF
    058A 90200149  LDS	R2,_dd_port_data_rx_frame_idx
    058C 1628      CP	R2,R24
    058D F461      BNE	0x059A
(0092) 						  
(0093) 						         dd_port_data_rx_buffer[dd_port_data_rx_frame_idx-1]=temp;
    058E E48A      LDI	R24,0x4A
    058F E091      LDI	R25,1
    0590 2DE2      MOV	R30,R2
    0591 27FF      CLR	R31
    0592 0FE8      ADD	R30,R24
    0593 1FF9      ADC	R31,R25
    0594 8340      STD	Z+0,R20
(0094) 				                 dd_port_data_rx_frame_idx++;
    0595 2D82      MOV	R24,R2
    0596 5F8F      SUBI	R24,0xFF
    0597 93800149  STS	_dd_port_data_rx_frame_idx,R24
(0095) 								 
(0096) 						  }
    0599 C030      RJMP	0x05CA
(0097) 						  else{
(0098) 						         if((temp==crc_hi)&&(dd_port_data_rx_buffer[dd_port_data_rx_frame_idx-1]==crc_lo)){
    059A 902000CB  LDS	R2,_crc_hi
    059C 1542      CP	R20,R2
    059D F561      BNE	0x05CA
    059E E48A      LDI	R24,0x4A
    059F E091      LDI	R25,1
    05A0 91E00149  LDS	R30,_dd_port_data_rx_frame_idx
    05A2 27FF      CLR	R31
    05A3 0FE8      ADD	R30,R24
    05A4 1FF9      ADC	R31,R25
    05A5 8020      LDD	R2,Z+0
    05A6 903000CC  LDS	R3,_crc_lo
    05A8 1423      CP	R2,R3
    05A9 F501      BNE	0x05CA
(0099) 								 	
(0100) 						                SPCR  &= 0x3f;	// Disable SPI,Disable I2C/SPI interrupt
    05AA B18D      IN	R24,0x0D
    05AB 738F      ANDI	R24,0x3F
    05AC B98D      OUT	0x0D,R24
(0101) 						                //dd_has_received_whole_frame = TRUE;
(0102) 										uart_tx_payload_length=dd_port_data_rx_payload_length;
    05AD 90200148  LDS	R2,_dd_port_data_rx_payload_length
    05AF 922000DA  STS	_uart_tx_payload_length,R2
(0103) 										memcpy(uart_tx_buffer,&dd_port_data_rx_buffer[0], uart_tx_payload_length);
    05B1 2433      CLR	R3
    05B2 8239      STD	Y+1,R3
    05B3 8228      STD	Y+0,R2
    05B4 E42B      LDI	R18,0x4B
    05B5 E031      LDI	R19,1
    05B6 E603      LDI	R16,0x63
    05B7 E010      LDI	R17,0
    05B8 940E0743  CALL	_memcpy
(0104) 										uart_buffer_tx_idx=0;
    05BA 2422      CLR	R2
    05BB 922000DF  STS	_uart_buffer_tx_idx,R2
(0105) 						                UDR = uart_tx_buffer[uart_buffer_tx_idx++];
    05BD 2433      CLR	R3
    05BE 2D82      MOV	R24,R2
    05BF 5F8F      SUBI	R24,0xFF
    05C0 938000DF  STS	_uart_buffer_tx_idx,R24
    05C2 E683      LDI	R24,0x63
    05C3 E090      LDI	R25,0
    05C4 2DE2      MOV	R30,R2
    05C5 27FF      CLR	R31
    05C6 0FE8      ADD	R30,R24
    05C7 1FF9      ADC	R31,R25
    05C8 8020      LDD	R2,Z+0
    05C9 B82C      OUT	0x0C,R2
(0106) 								 }
(0107) 								 
(0108) 								 
(0109) 								 
(0110) 								 
(0111) 						  }
(0112) 						  
(0113) 		   }        
(0114) 								
(0115)     }
(0116) 
(0117) }
    05CA 9622      ADIW	R28,2
    05CB 940E079C  CALL	pop_gset1
    05CD 940E07D7  CALL	pop_lset
    05CF 9518      RETI
_dd_adf7021_sync_isr:
  byte                 --> Y+1
  j                    --> Y+1
  i                    --> Y+1
    05D0 940E07C0  CALL	push_lset
(0118) 
(0119) 
(0120) /*****************************************************************************
(0121)  * Function:    dd_adf7021_sync_isr
(0122)  ****************************************************************************/
(0123) void dd_adf7021_sync_isr(void)  // 8051 vector 0x0003
(0124) {
(0125)    
(0126)     unsigned char i,j,byte;
(0127)     CLI(); 		// Not needed if we're in an interrupt thread
    05D2 94F8      BCLR	7
(0128) 
(0129) 	
(0130) 	crc16_reset();
    05D3 940E0265  CALL	_crc16_reset
(0131)    
(0132) 	SPCR |= 0x40;			// Enable SPI port now for correct byte sync 
    05D5 9A6E      SBI	0x0D,6
(0133) 
(0134) 	crc16_reset();
    05D6 940E0265  CALL	_crc16_reset
(0135) 
(0136)     while((PINB&0x80)==0x80)
    05D8 B226      IN	R2,0x16
    05D9 2433      CLR	R3
    05DA FC27      SBRC	R2,7
    05DB CFFC      RJMP	0x05D8
(0137) 	{
(0138) 	}
(0139) 	while ((PINB&0x80)!=0x80)
    05DC B386      IN	R24,0x16
    05DD 7880      ANDI	R24,0x80
    05DE 3880      CPI	R24,0x80
    05DF F7E1      BNE	0x05DC
(0140) 	{
(0141) 	}
(0142)    
(0143) 	SPCR |= 0x80;          // Enable I2C/SPI interrupt	
    05E0 9A6F      SBI	0x0D,7
(0144)  
(0145) 	//SPDR = 0xFF;
(0146) 	SPSR &= ~0x80;		//to avoid the first byte 0x00;
    05E1 9877      CBI	0x0E,7
(0147)  
(0148)     dd_data_port_state = DATA_PORT_RECEIVING;
    05E2 E083      LDI	R24,3
    05E3 93800145  STS	_dd_data_port_state,R24
(0149) 	dd_data_packet_phase = PACKET_PHASE_HEADER;
    05E5 E084      LDI	R24,4
    05E6 93800144  STS	_dd_data_packet_phase,R24
(0150) 	dd_port_data_rx_frame_idx=0;
    05E8 2422      CLR	R2
    05E9 92200149  STS	_dd_port_data_rx_frame_idx,R2
(0151)   
(0152) 	//P3 ^= 0x10;
(0153) }
    05EB 940E07D7  CALL	pop_lset
    05ED 9518      RETI
_UART_RECV_DEAL:
  temp                 --> R16
    05EE 922A      ST	R2,-Y
    05EF 930A      ST	R16,-Y
    05F0 938A      ST	R24,-Y
    05F1 939A      ST	R25,-Y
    05F2 93EA      ST	R30,-Y
    05F3 93FA      ST	R31,-Y
    05F4 B62F      IN	R2,0x3F
    05F5 922A      ST	R2,-Y
(0154) 
(0155) 
(0156) 
(0157) 
(0158) 
(0159) 
(0160) 
(0161) 
(0162) 
(0163) 
(0164) 
(0165) 
(0166) 
(0167) 
(0168) 
(0169) 
(0170) 
(0171) void UART_RECV_DEAL (void)
(0172) 
(0173) {
(0174)    unsigned char  temp;
(0175)    temp=UDR;
    05F6 B10C      IN	R16,0x0C
(0176)    uart_rx_buffer[uart_buffer_rx_idx]=temp;
    05F7 EE80      LDI	R24,0xE0
    05F8 E090      LDI	R25,0
    05F9 91E000DE  LDS	R30,_uart_buffer_rx_idx
    05FB 27FF      CLR	R31
    05FC 0FE8      ADD	R30,R24
    05FD 1FF9      ADC	R31,R25
    05FE 8300      STD	Z+0,R16
(0177)    
(0178) 	  
(0179)    if(uart_buffer_rx_idx>=max_uart_buffer_size){
    05FF 918000DE  LDS	R24,_uart_buffer_rx_idx
    0601 3684      CPI	R24,0x64
    0602 F018      BCS	0x0606
(0180)    
(0181)       uart_buffer_rx_idx=0;
    0603 2422      CLR	R2
    0604 922000DE  STS	_uart_buffer_rx_idx,R2
(0182) 	  
(0183) 	  }
(0184) 	  
(0185)    time_count=0;
    0606 2422      CLR	R2
    0607 922000C7  STS	_time_count,R2
(0186)    
(0187) }
    0609 9029      LD	R2,Y+
    060A BE2F      OUT	0x3F,R2
    060B 91F9      LD	R31,Y+
    060C 91E9      LD	R30,Y+
    060D 9199      LD	R25,Y+
    060E 9189      LD	R24,Y+
    060F 9109      LD	R16,Y+
    0610 9029      LD	R2,Y+
    0611 9518      RETI
_UART_SEND_DEAL:
    0612 922A      ST	R2,-Y
    0613 923A      ST	R3,-Y
    0614 938A      ST	R24,-Y
    0615 939A      ST	R25,-Y
    0616 93EA      ST	R30,-Y
    0617 93FA      ST	R31,-Y
    0618 B62F      IN	R2,0x3F
    0619 922A      ST	R2,-Y
(0188)    
(0189) void UART_SEND_DEAL (void)
(0190) 
(0191) {
(0192)    if (uart_buffer_tx_idx < uart_tx_payload_length)
    061A 902000DA  LDS	R2,_uart_tx_payload_length
    061C 903000DF  LDS	R3,_uart_buffer_tx_idx
    061E 1432      CP	R3,R2
    061F F470      BCC	0x062E
(0193) 			{	
(0194) 				UDR = uart_tx_buffer[uart_buffer_tx_idx++];
    0620 2C23      MOV	R2,R3
    0621 2433      CLR	R3
    0622 2D82      MOV	R24,R2
    0623 5F8F      SUBI	R24,0xFF
    0624 938000DF  STS	_uart_buffer_tx_idx,R24
    0626 E683      LDI	R24,0x63
    0627 E090      LDI	R25,0
    0628 2DE2      MOV	R30,R2
    0629 27FF      CLR	R31
    062A 0FE8      ADD	R30,R24
    062B 1FF9      ADC	R31,R25
    062C 8020      LDD	R2,Z+0
    062D B82C      OUT	0x0C,R2
(0195) 			}
(0196)    
(0197) }   
    062E 9029      LD	R2,Y+
    062F BE2F      OUT	0x3F,R2
    0630 91F9      LD	R31,Y+
    0631 91E9      LD	R30,Y+
    0632 9199      LD	R25,Y+
    0633 9189      LD	R24,Y+
    0634 9039      LD	R3,Y+
    0635 9029      LD	R2,Y+
    0636 9518      RETI
(0198)    
(0199)    
(0200)    
(0201)    
(0202)    
(0203)    
(0204)    
(0205)       
(0206)      
(0207)  
(0208)  
(0209) 
(0210) 
(0211) 
(0212) 
(0213) 
(0214) 
(0215) 
(0216) 
(0217) void USART_Init(void)
(0218) {
(0219) /* 设置波特率*/
(0220) //CLI();
(0221) U

⌨️ 快捷键说明

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