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

📄 jfp_fasong.lst

📁 非常适合实用的无线射频芯片NRF905
💻 LST
📖 第 1 页 / 共 2 页
字号:
    0097 DFBB      RCALL	_Delay
(0132) 	SpiReadSpiWrite(WTP);				// 写数据前先写写数据命令
    0098 E200      LDI	R16,0x20
    0099 DFD2      RCALL	_SpiReadSpiWrite
(0133) 	for (i=0;i<4;i++)
    009A 2744      CLR	R20
    009B C007      RJMP	0x00A3
(0134) 	{
(0135) 	SpiReadSpiWrite(TxBUF[i]);		// 待发送的32字节数据
    009C 2FE4      MOV	R30,R20
    009D 27FF      CLR	R31
    009E 0FE6      ADD	R30,R22
    009F 1FF7      ADC	R31,R23
    00A0 8100      LDD	R16,Z+0
    00A1 DFCA      RCALL	_SpiReadSpiWrite
    00A2 9543      INC	R20
    00A3 3044      CPI	R20,4
    00A4 F3B8      BCS	0x009C
(0136) 	}						
(0137) 	Hign_nrf905_CSN;
    00A5 9AC4      SBI	0x18,4
(0138) 	Delay(1);							// 关闭Spi,不允许对nrf905进行读写操作
    00A6 E001      LDI	R16,1
    00A7 E010      LDI	R17,0
    00A8 DFAA      RCALL	_Delay
(0139) 	Low_nrf905_CSN;								// 使能Spi
    00A9 98C4      CBI	0x18,4
(0140) 	SpiReadSpiWrite(WTA);				// 写地址前首先先写地址命令
    00AA E202      LDI	R16,0x22
    00AB DFC0      RCALL	_SpiReadSpiWrite
(0141) 	for (i=0;i<4;i++)					// 写 4 bytes 地址
    00AC 2744      CLR	R20
    00AD C009      RJMP	0x00B7
(0142) 	{
(0143) 	SpiReadSpiWrite(TxAddress[i]);
    00AE E680      LDI	R24,0x60
    00AF E090      LDI	R25,0
    00B0 2FE4      MOV	R30,R20
    00B1 27FF      CLR	R31
    00B2 0FE8      ADD	R30,R24
    00B3 1FF9      ADC	R31,R25
    00B4 8100      LDD	R16,Z+0
    00B5 DFB6      RCALL	_SpiReadSpiWrite
    00B6 9543      INC	R20
    00B7 3044      CPI	R20,4
    00B8 F3A8      BCS	0x00AE
(0144) 	}
(0145) 	Hign_nrf905_CSN;					// 关闭Spi
    00B9 9AC4      SBI	0x18,4
(0146) 	Hign_nrf905_TRX_CE;					// Set TRX_CE high,start Tx data transmission
    00BA 9A95      SBI	0x12,5
(0147) 	Delay(1);							// 等待DR变高
    00BB E001      LDI	R16,1
    00BC E010      LDI	R17,0
    00BD DF95      RCALL	_Delay
(0148) 	Low_nrf905_TRX_CE;							// 设置TRX_CE=0
    00BE 9895      CBI	0x12,5
    00BF 940E0118  CALL	pop_gset2
    00C1 9508      RET
(0149) }
(0150) //-------------------------------发送模式激发-----------------------------------
(0151) void SetTxMode(void)
(0152) {
(0153) 	Low_nrf905_TRX_CE;				//
_SetTxMode:
    00C2 9895      CBI	0x12,5
(0154) 	Hign_nrf905_TX_EN;				//发送使能
    00C3 9AC0      SBI	0x18,0
(0155) 	Delay(2); 				// delay for mode change(>=650us)根据晶振不同要改变
    00C4 E002      LDI	R16,2
    00C5 E010      LDI	R17,0
    00C6 DF8C      RCALL	_Delay
    00C7 9508      RET
_main:
  temp                 --> Y+0
  j                    --> Y+1
  i                    --> Y+1
    00C8 97EF      SBIW	R28,0x3F
    00C9 9721      SBIW	R28,1
(0156) }
(0157) //------------------------------主函数------------------------------------------
(0158) void main(void)
(0159) {  
(0160) 	uint i,j,temp[32];
(0161) 	DDRD=0x32;		  //
    00CA E382      LDI	R24,0x32
    00CB BB81      OUT	0x11,R24
(0162) 	DDRB=0xB3;		  //
    00CC EB83      LDI	R24,0xB3
    00CD BB87      OUT	0x17,R24
(0163) 	DDRA=0x8f;		  //
    00CE E88F      LDI	R24,0x8F
    00CF BB8A      OUT	0x1A,R24
(0164) 	PORTA = 0xff;
    00D0 EF8F      LDI	R24,0xFF
    00D1 BB8B      OUT	0x1B,R24
(0165) 	Spi_initial();
    00D2 DF96      RCALL	_Spi_initial
(0166) 	system_Init();
    00D3 DF9D      RCALL	_system_Init
(0167) 	Config905();
    00D4 DFA5      RCALL	_Config905
(0168) 	Delay(500);
    00D5 EF04      LDI	R16,0xF4
    00D6 E011      LDI	R17,1
    00D7 DF7B      RCALL	_Delay
    00D8 C03B      RJMP	0x0114
(0169) 	while(1)
(0170)  {
(0171) 	//TX();
(0172) 
(0173) //------------------------------------------------------------------------------
(0174) 	if((PINA & 0x10) == 0x00)						//有键按下
    00D9 99CC      SBIC	0x19,4
    00DA C011      RJMP	0x00EC
(0175) 	{
(0176) 	 while(!(PINA & 0x10));   			//等待按键松开  RED
    00DB 9BCC      SBIS	0x19,4
    00DC CFFE      RJMP	0x00DB
(0177) 	 TxRxBuf[0]=0x31;
    00DD E381      LDI	R24,0x31
    00DE 9380006F  STS	TxRxBuf,R24
(0178) 	 TxRxBuf[1]=0x31;
    00E0 93800070  STS	TxRxBuf+1,R24
(0179) 	 TxRxBuf[2]=0x29;
    00E2 E289      LDI	R24,0x29
    00E3 93800071  STS	TxRxBuf+2,R24
(0180) 	 TxRxBuf[3]=0x30;   
    00E5 E380      LDI	R24,0x30
    00E6 93800072  STS	TxRxBuf+3,R24
(0181) 
(0182) //------------------------------------------------------------------------------
(0183)      SetTxMode();
    00E8 DFD9      RCALL	_SetTxMode
(0184) 	 TxPacket(TxRxBuf);													
    00E9 E60F      LDI	R16,0x6F
    00EA E010      LDI	R17,0
    00EB DFA5      RCALL	_TxPacket
(0185) 	}
(0186) //------------------------------------------------------------------------------
(0187) 	if((PINA & 0x20) == 0x00)		//有键按下
    00EC 99CD      SBIC	0x19,5
    00ED C012      RJMP	0x0100
(0188) 	{
(0189) while(!(PINA & 0x20));   			//等待按键松开GREEN
    00EE 9BCD      SBIS	0x19,5
    00EF CFFE      RJMP	0x00EE
(0190) 	 TxRxBuf[0]=0x30;
    00F0 E380      LDI	R24,0x30
    00F1 9380006F  STS	TxRxBuf,R24
(0191) 	 TxRxBuf[1]=0x31;
    00F3 E381      LDI	R24,0x31
    00F4 93800070  STS	TxRxBuf+1,R24
(0192) 	 TxRxBuf[2]=0x32;
    00F6 E382      LDI	R24,0x32
    00F7 93800071  STS	TxRxBuf+2,R24
(0193) 	 TxRxBuf[3]=0x29;    
    00F9 E289      LDI	R24,0x29
    00FA 93800072  STS	TxRxBuf+3,R24
(0194) //------------------------------------------------------------------------------
(0195)      SetTxMode();			        // 设置进入发送状态
    00FC DFC5      RCALL	_SetTxMode
(0196) 	 TxPacket(TxRxBuf);			    // 装载待发送数据
    00FD E60F      LDI	R16,0x6F
    00FE E010      LDI	R17,0
    00FF DF91      RCALL	_TxPacket
(0197) 	 }
(0198) //------------------------------------------------------------------------------
(0199) 	if((PINA & 0x40) == 0x00)	    //有键按下
    0100 99CE      SBIC	0x19,6
    0101 C012      RJMP	0x0114
(0200) 	{
(0201) 	while(!(PINA & 0x40));   		//等待按键松开GREEN
    0102 9BCE      SBIS	0x19,6
    0103 CFFE      RJMP	0x0102
(0202)  	 TxRxBuf[0]=0x29;
    0104 E289      LDI	R24,0x29
    0105 9380006F  STS	TxRxBuf,R24
(0203) 	 TxRxBuf[1]=0x30;
    0107 E380      LDI	R24,0x30
    0108 93800070  STS	TxRxBuf+1,R24
(0204) 	 TxRxBuf[2]=0x31;
    010A E381      LDI	R24,0x31
    010B 93800071  STS	TxRxBuf+2,R24
(0205) 	 TxRxBuf[3]=0x32;  
    010D E382      LDI	R24,0x32
    010E 93800072  STS	TxRxBuf+3,R24
(0206) //------------------------------------------------------------------------------
(0207)      SetTxMode();                   // 设置进入发送状态
    0110 DFB1      RCALL	_SetTxMode
(0208) 	 TxPacket(TxRxBuf);             // 装载待发送数据
FILE: <library>
    0111 E60F      LDI	R16,0x6F
    0112 E010      LDI	R17,0
    0113 DF7D      RCALL	_TxPacket
    0114 CFC4      RJMP	0x00D9
    0115 96EF      ADIW	R28,0x3F
    0116 9621      ADIW	R28,1
    0117 9508      RET
pop_gset2:
    0118 E0E2      LDI	R30,2
    0119 940C0127  JMP	pop
push_gset5:
    011B 92FA      ST	R15,-Y
    011C 92EA      ST	R14,-Y
push_gset4:
    011D 92DA      ST	R13,-Y
    011E 92CA      ST	R12,-Y
push_gset3:
    011F 92BA      ST	R11,-Y
    0120 92AA      ST	R10,-Y
push_gset2:
    0121 937A      ST	R23,-Y
    0122 936A      ST	R22,-Y
push_gset1:
    0123 935A      ST	R21,-Y
    0124 934A      ST	R20,-Y
    0125 9508      RET
pop_gset1:
    0126 E0E1      LDI	R30,1
pop:
    0127 9149      LD	R20,Y+
    0128 9159      LD	R21,Y+
    0129 FDE0      SBRC	R30,0
    012A 9508      RET
    012B 9169      LD	R22,Y+
    012C 9179      LD	R23,Y+
    012D FDE1      SBRC	R30,1
    012E 9508      RET
    012F 90A9      LD	R10,Y+
    0130 90B9      LD	R11,Y+
    0131 FDE2      SBRC	R30,2
    0132 9508      RET
    0133 90C9      LD	R12,Y+
    0134 90D9      LD	R13,Y+
    0135 FDE3      SBRC	R30,3
    0136 9508      RET
    0137 90E9      LD	R14,Y+
    0138 90F9      LD	R15,Y+
    0139 9508      RET

⌨️ 快捷键说明

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